Alsa-devel
Threads by month
- ----- 2025 -----
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- 16 participants
- 51106 discussions

25 Jan '22
Attempt to write various invalid values for control types we know about and
check that something sensible happens. The ABI isn't quite as clearly
defined as one might like, rather than generating an error when an invalid
value is written many devices will silently rewrite the value into one that
is valid for the control. The exact value chosen is not predictable so in
the case the write succeeds we just check that the value we read back is
one that is valid for the control.
Signed-off-by: Mark Brown <broonie(a)kernel.org>
---
tools/testing/selftests/alsa/mixer-test.c | 222 +++++++++++++++++++++-
1 file changed, 221 insertions(+), 1 deletion(-)
diff --git a/tools/testing/selftests/alsa/mixer-test.c b/tools/testing/selftests/alsa/mixer-test.c
index 17f158d7a767..15e05b241468 100644
--- a/tools/testing/selftests/alsa/mixer-test.c
+++ b/tools/testing/selftests/alsa/mixer-test.c
@@ -13,6 +13,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
+#include <limits.h>
#include <string.h>
#include <getopt.h>
#include <stdarg.h>
@@ -26,7 +27,7 @@
#include "../kselftest.h"
-#define TESTS_PER_CONTROL 3
+#define TESTS_PER_CONTROL 4
struct card_data {
snd_ctl_t *handle;
@@ -679,6 +680,224 @@ void test_ctl_write_valid(struct ctl_data *ctl)
ctl->card->card, ctl->elem);
}
+bool test_ctl_write_invalid_value(struct ctl_data *ctl,
+ snd_ctl_elem_value_t *val)
+{
+ int err;
+ long val_read;
+
+ /* Ideally this will fail... */
+ err = snd_ctl_elem_write(ctl->card->handle, val);
+ if (err < 0)
+ return false;
+
+ /* ...but some devices will clamp to an in range value */
+ err = snd_ctl_elem_read(ctl->card->handle, val);
+ if (err < 0) {
+ ksft_print_msg("%s failed to read: %s\n",
+ ctl->name, snd_strerror(err));
+ return true;
+ }
+
+ return !ctl_value_valid(ctl, val);
+}
+
+bool test_ctl_write_invalid_boolean(struct ctl_data *ctl)
+{
+ int err, i;
+ long val_read;
+ bool fail = false;
+ snd_ctl_elem_value_t *val;
+ snd_ctl_elem_value_alloca(&val);
+
+ for (i = 0; i < snd_ctl_elem_info_get_count(ctl->info); i++) {
+ snd_ctl_elem_value_copy(val, ctl->def_val);
+ snd_ctl_elem_value_set_boolean(val, i, 2);
+
+ if (test_ctl_write_invalid_value(ctl, val))
+ fail = true;
+ }
+
+ return !fail;
+}
+
+bool test_ctl_write_invalid_integer(struct ctl_data *ctl)
+{
+ int i;
+ bool fail = false;
+ snd_ctl_elem_value_t *val;
+ snd_ctl_elem_value_alloca(&val);
+
+ for (i = 0; i < snd_ctl_elem_info_get_count(ctl->info); i++) {
+ if (snd_ctl_elem_info_get_min(ctl->info) != LONG_MIN) {
+ /* Just under range */
+ snd_ctl_elem_value_copy(val, ctl->def_val);
+ snd_ctl_elem_value_set_integer(val, i,
+ snd_ctl_elem_info_get_min(ctl->info) - 1);
+
+ if (test_ctl_write_invalid_value(ctl, val))
+ fail = true;
+
+ /* Minimum representable value */
+ snd_ctl_elem_value_copy(val, ctl->def_val);
+ snd_ctl_elem_value_set_integer(val, i, LONG_MIN);
+
+ if (test_ctl_write_invalid_value(ctl, val))
+ fail = true;
+ }
+
+ if (snd_ctl_elem_info_get_max(ctl->info) != LONG_MAX) {
+ /* Just over range */
+ snd_ctl_elem_value_copy(val, ctl->def_val);
+ snd_ctl_elem_value_set_integer(val, i,
+ snd_ctl_elem_info_get_max(ctl->info) + 1);
+
+ if (test_ctl_write_invalid_value(ctl, val))
+ fail = true;
+
+ /* Maximum representable value */
+ snd_ctl_elem_value_copy(val, ctl->def_val);
+ snd_ctl_elem_value_set_integer(val, i, LONG_MAX);
+
+ if (test_ctl_write_invalid_value(ctl, val))
+ fail = true;
+ }
+ }
+
+ return !fail;
+}
+
+bool test_ctl_write_invalid_integer64(struct ctl_data *ctl)
+{
+ int i;
+ bool fail = false;
+ snd_ctl_elem_value_t *val;
+ snd_ctl_elem_value_alloca(&val);
+
+ for (i = 0; i < snd_ctl_elem_info_get_count(ctl->info); i++) {
+ if (snd_ctl_elem_info_get_min64(ctl->info) != LLONG_MIN) {
+ /* Just under range */
+ snd_ctl_elem_value_copy(val, ctl->def_val);
+ snd_ctl_elem_value_set_integer64(val, i,
+ snd_ctl_elem_info_get_min64(ctl->info) - 1);
+
+ if (test_ctl_write_invalid_value(ctl, val))
+ fail = true;
+
+ /* Minimum representable value */
+ snd_ctl_elem_value_copy(val, ctl->def_val);
+ snd_ctl_elem_value_set_integer(val, i, LLONG_MIN);
+
+ if (test_ctl_write_invalid_value(ctl, val))
+ fail = true;
+ }
+
+ if (snd_ctl_elem_info_get_max64(ctl->info) != LLONG_MAX) {
+ /* Just over range */
+ snd_ctl_elem_value_copy(val, ctl->def_val);
+ snd_ctl_elem_value_set_integer64(val, i,
+ snd_ctl_elem_info_get_max64(ctl->info) + 1);
+
+ if (test_ctl_write_invalid_value(ctl, val))
+ fail = true;
+
+ /* Maximum representable value */
+ snd_ctl_elem_value_copy(val, ctl->def_val);
+ snd_ctl_elem_value_set_integer(val, i, LLONG_MAX);
+
+ if (test_ctl_write_invalid_value(ctl, val))
+ fail = true;
+ }
+ }
+
+ return !fail;
+}
+
+bool test_ctl_write_invalid_enumerated(struct ctl_data *ctl)
+{
+ int err, i;
+ unsigned int val_read;
+ bool fail = false;
+ snd_ctl_elem_value_t *val;
+ snd_ctl_elem_value_alloca(&val);
+
+ snd_ctl_elem_value_set_id(val, ctl->id);
+
+ for (i = 0; i < snd_ctl_elem_info_get_count(ctl->info); i++) {
+ /* One beyond maximum */
+ snd_ctl_elem_value_copy(val, ctl->def_val);
+ snd_ctl_elem_value_set_enumerated(val, i,
+ snd_ctl_elem_info_get_items(ctl->info));
+
+ if (test_ctl_write_invalid_value(ctl, val))
+ fail = true;
+
+ /* Maximum representable value */
+ snd_ctl_elem_value_copy(val, ctl->def_val);
+ snd_ctl_elem_value_set_enumerated(val, i, UINT_MAX);
+
+ if (test_ctl_write_invalid_value(ctl, val))
+ fail = true;
+
+ }
+
+ return !fail;
+}
+
+
+void test_ctl_write_invalid(struct ctl_data *ctl)
+{
+ bool pass;
+ int err;
+
+ /* If the control is turned off let's be polite */
+ if (snd_ctl_elem_info_is_inactive(ctl->info)) {
+ ksft_print_msg("%s is inactive\n", ctl->name);
+ ksft_test_result_skip("write_invalid.%d.%d\n",
+ ctl->card->card, ctl->elem);
+ return;
+ }
+
+ if (!snd_ctl_elem_info_is_writable(ctl->info)) {
+ ksft_print_msg("%s is not writeable\n", ctl->name);
+ ksft_test_result_skip("write_invalid.%d.%d\n",
+ ctl->card->card, ctl->elem);
+ return;
+ }
+
+ switch (snd_ctl_elem_info_get_type(ctl->info)) {
+ case SND_CTL_ELEM_TYPE_BOOLEAN:
+ pass = test_ctl_write_invalid_boolean(ctl);
+ break;
+
+ case SND_CTL_ELEM_TYPE_INTEGER:
+ pass = test_ctl_write_invalid_integer(ctl);
+ break;
+
+ case SND_CTL_ELEM_TYPE_INTEGER64:
+ pass = test_ctl_write_invalid_integer64(ctl);
+ break;
+
+ case SND_CTL_ELEM_TYPE_ENUMERATED:
+ pass = test_ctl_write_invalid_enumerated(ctl);
+ break;
+
+ default:
+ /* No tests for this yet */
+ ksft_test_result_skip("write_invalid.%d.%d\n",
+ ctl->card->card, ctl->elem);
+ return;
+ }
+
+ /* Restore the default value to minimise disruption */
+ err = write_and_verify(ctl, ctl->def_val, NULL);
+ if (err < 0)
+ pass = false;
+
+ ksft_test_result(pass, "write_invalid.%d.%d\n",
+ ctl->card->card, ctl->elem);
+}
+
int main(void)
{
struct ctl_data *ctl;
@@ -697,6 +916,7 @@ int main(void)
test_ctl_get_value(ctl);
test_ctl_write_default(ctl);
test_ctl_write_valid(ctl);
+ test_ctl_write_invalid(ctl);
}
ksft_exit_pass();
--
2.30.2
3
4

[PATCH v2][next] ALSA: usb-audio: scarlett2: Use struct_size() helper in scarlett2_usb()
by Gustavo A. R. Silva 25 Jan '22
by Gustavo A. R. Silva 25 Jan '22
25 Jan '22
Make use of the struct_size() helper instead of an open-coded version,
in order to avoid any potential type mistakes or integer overflows that,
in the worst scenario, could lead to heap overflows.
Also, address the following sparse warnings:
sound/usb/mixer_scarlett_gen2.c:1064:28: warning: using sizeof on a flexible structure
sound/usb/mixer_scarlett_gen2.c:1065:29: warning: using sizeof on a flexible structure
Link: https://github.com/KSPP/linux/issues/174
Signed-off-by: Gustavo A. R. Silva <gustavoars(a)kernel.org>
---
Changes in v2:
- Use correct format specifier %zu for type size_t argument.
sound/usb/mixer_scarlett_gen2.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/sound/usb/mixer_scarlett_gen2.c b/sound/usb/mixer_scarlett_gen2.c
index 53ebabf42472..7ff8a4817c67 100644
--- a/sound/usb/mixer_scarlett_gen2.c
+++ b/sound/usb/mixer_scarlett_gen2.c
@@ -1061,9 +1061,9 @@ static int scarlett2_usb(
{
struct scarlett2_data *private = mixer->private_data;
struct usb_device *dev = mixer->chip->dev;
- u16 req_buf_size = sizeof(struct scarlett2_usb_packet) + req_size;
- u16 resp_buf_size = sizeof(struct scarlett2_usb_packet) + resp_size;
struct scarlett2_usb_packet *req, *resp = NULL;
+ size_t req_buf_size = struct_size(req, data, req_size);
+ size_t resp_buf_size = struct_size(resp, data, resp_size);
int err;
req = kmalloc(req_buf_size, GFP_KERNEL);
@@ -1111,7 +1111,7 @@ static int scarlett2_usb(
usb_audio_err(
mixer->chip,
"Scarlett Gen 2/3 USB response result cmd %x was %d "
- "expected %d\n",
+ "expected %zu\n",
cmd, err, resp_buf_size);
err = -EINVAL;
goto unlock;
--
2.27.0
3
2

Re: [PATCH] driver core: platform: Rename platform_get_irq_optional() to platform_get_irq_silent()
by Andy Shevchenko 25 Jan '22
by Andy Shevchenko 25 Jan '22
25 Jan '22
On Thu, Jan 20, 2022 at 08:57:18AM +0100, Uwe Kleine-König wrote:
> On Wed, Jan 19, 2022 at 08:51:29PM +0200, Andy Shevchenko wrote:
> > On Sat, Jan 15, 2022 at 04:45:39PM +0100, Uwe Kleine-König wrote:
> > > On Fri, Jan 14, 2022 at 03:04:38PM +0200, Andy Shevchenko wrote:
> > > > On Thu, Jan 13, 2022 at 08:43:58PM +0100, Uwe Kleine-König wrote:
> > > > > > It'd certainly be good to name anything that doesn't correspond to one
> > > > > > of the existing semantics for the API (!) something different rather
> > > > > > than adding yet another potentially overloaded meaning.
> > > > >
> > > > > It seems we're (at least) three who agree about this. Here is a patch
> > > > > fixing the name.
> > > >
> > > > And similar number of people are on the other side.
> > >
> > > If someone already opposed to the renaming (and not only the name) I
> > > must have missed that.
> > >
> > > So you think it's a good idea to keep the name
> > > platform_get_irq_optional() despite the "not found" value returned by it
> > > isn't usable as if it were a normal irq number?
> >
> > I meant that on the other side people who are in favour of Sergey's patch.
> > Since that I commented already that I opposed the renaming being a standalone
> > change.
> >
> > Do you agree that we have several issues with platform_get_irq*() APIs?
> >
> > 1. The unfortunate naming
>
> unfortunate naming for the currently implemented semantic, yes.
Yes.
> > 2. The vIRQ0 handling: a) WARN() followed by b) returned value 0
>
> I'm happy with the vIRQ0 handling. Today platform_get_irq() and it's
> silent variant returns either a valid and usuable irq number or a
> negative error value. That's totally fine.
It might return 0.
Actually it seems that the WARN() can only be issued in two cases:
- SPARC with vIRQ0 in one of the array member
- fallback to ACPI for GPIO IRQ resource with index 0
But the latter is bogus, because it would mean a bug in the ACPI code.
The bottom line here is the SPARC case. Anybody familiar with the platform
can shed a light on this. If there is no such case, we may remove warning
along with ret = 0 case from platfrom_get_irq().
> > 3. The specific cookie for "IRQ not found, while no error happened" case
>
> Not sure what you mean here. I have no problem that a situation I can
> cope with is called an error for the query function. I just do error
> handling and continue happily. So the part "while no error happened" is
> irrelevant to me.
I meant that instead of using special error code, 0 is very much good for
the cases when IRQ is not found. It allows to distinguish -ENXIO from the
low layer from -ENXIO with this magic meaning.
> Additionally I see the problems:
>
> 4. The semantic as implemented in Sergey's patch isn't better than the
> current one.
I disagree on this. See above on why.
> platform_get_irq*() is still considerably different from
> (clk|gpiod)_get* because the not-found value for the _optional variant
> isn't usuable for the irq case. For clk and gpio I get rid of a whole if
> branch, for irq I only change the if-condition. (And if that change is
> considered good or bad seems to be subjective.)
You are mixing up two things:
- semantics of the pointer
- semantics of the cookie
Like I said previously the mistake is in putting an equal sign between apples
and oranges (or in terms of Python, which is a good example here, None and
False objects, where in both case 0 is magic and Python `if X`, `while `X` will
work in the same way, the `typeof(X)` is different semantically).
> For the idea to add a warning to platform_get_irq_optional for all but
> -ENXIO (and -EPROBE_DEFER), I see the problem:
>
> 5. platform_get_irq*() issuing an error message is only correct most of
> the time and given proper error handling in the caller (which might be
> able to handle not only -ENXIO but maybe also -EINVAL[1]) the error message
> is irritating. Today platform_get_irq() emits an error message for all
> but -EPROBE_DEFER. As soon as we find a driver that handles -EINVAL we
> need a function platform_get_irq_variant1 to be silent for -EINVAL,
> -EPROBE_DEFER and -ENXIO (or platform_get_irq_variant2 that is only
> silent for -EINVAL and -EPROBE_DEFER?)
>
> IMHO a query function should always be silent and let the caller do the
> error handling. And if it's only because
>
> mydev: IRQ index 0 not found
>
> is worse than
>
> mydev: neither TX irq not a muxed RX/TX irq found
>
> . Also "index 0" is irritating for devices that are expected to have
> only a single irq (i.e. the majority of all devices).
Yeah, ack the #5.
> Yes, I admit, we can safe some code by pushing the error message in a
> query function. But that doesn't only have advantages.
> [1] Looking through the source I wonder: What are the errors that can happen
> in platform_get_irq*()? (calling everything but a valid irq number
> an error) Looking at many callers, they only seem to expect "not
> found" and some "probe defer" (even platform_get_irq() interprets
> everything but -EPROBE_DEFER as "IRQ index %u not found\n".)
> IMHO before we should consider to introduce a platform_get_irq*()
> variant with improved semantics, some cleanup in the internals of
> the irq lookup are necessary.
--
With Best Regards,
Andy Shevchenko
4
4
On Sun, 23 Jan 2022, Geert Uytterhoeven wrote:
> Below is the list of build error/warning regressions/improvements in
> v5.17-rc1[1] compared to v5.16[2].
>
> Summarized:
> - build errors: +17/-2
> - build warnings: +23/-25
>
> Note that there may be false regressions, as some logs are incomplete.
> Still, they're build errors/warnings.
>
> Happy fixing! ;-)
>
> Thanks to the linux-next team for providing the build service.
>
> [1] http://kisskb.ellerman.id.au/kisskb/branch/linus/head/e783362eb54cd99b2cac8… (all 99 configs)
> [2] http://kisskb.ellerman.id.au/kisskb/branch/linus/head/df0cc57e057f18e44dac8… (98 out of 99 configs)
>
>
> *** ERRORS ***
>
> 17 error regressions:
> + /kisskb/src/arch/powerpc/kernel/stacktrace.c: error: implicit declaration of function 'nmi_cpu_backtrace' [-Werror=implicit-function-declaration]: => 171:2
> + /kisskb/src/arch/powerpc/kernel/stacktrace.c: error: implicit declaration of function 'nmi_trigger_cpumask_backtrace' [-Werror=implicit-function-declaration]: => 226:2
powerpc-gcc5/skiroot_defconfig
> + /kisskb/src/arch/sparc/mm/srmmu.c: error: cast between incompatible function types from 'void (*)(long unsigned int)' to 'void (*)(long unsigned int, long unsigned int, long unsigned int, long unsigned int, long unsigned int)' [-Werror=cast-function-type]: => 1756:13, 1639:13
> + /kisskb/src/arch/sparc/mm/srmmu.c: error: cast between incompatible function types from 'void (*)(struct mm_struct *)' to 'void (*)(long unsigned int, long unsigned int, long unsigned int, long unsigned int, long unsigned int)' [-Werror=cast-function-type]: => 1674:29, 1662:29
> + /kisskb/src/arch/sparc/mm/srmmu.c: error: cast between incompatible function types from 'void (*)(struct mm_struct *, long unsigned int)' to 'void (*)(long unsigned int, long unsigned int, long unsigned int, long unsigned int, long unsigned int)' [-Werror=cast-function-type]: => 1767:21
> + /kisskb/src/arch/sparc/mm/srmmu.c: error: cast between incompatible function types from 'void (*)(struct vm_area_struct *, long unsigned int)' to 'void (*)(long unsigned int, long unsigned int, long unsigned int, long unsigned int, long unsigned int)' [-Werror=cast-function-type]: => 1741:29, 1726:29
> + /kisskb/src/arch/sparc/mm/srmmu.c: error: cast between incompatible function types from 'void (*)(struct vm_area_struct *, long unsigned int, long unsigned int)' to 'void (*)(long unsigned int, long unsigned int, long unsigned int, long unsigned int, long unsigned int)' [-Werror=cast-function-type]: => 1694:29, 1711:29
sparc64-gcc11/sparc-allmodconfig
> + /kisskb/src/arch/um/include/asm/processor-generic.h: error: called object is not a function or function pointer: => 103:18
> + /kisskb/src/drivers/vfio/pci/vfio_pci_rdwr.c: error: assignment makes pointer from integer without a cast [-Werror=int-conversion]: => 324:9, 317:9
> + /kisskb/src/drivers/vfio/pci/vfio_pci_rdwr.c: error: implicit declaration of function 'ioport_map' [-Werror=implicit-function-declaration]: => 317:11
> + /kisskb/src/drivers/vfio/pci/vfio_pci_rdwr.c: error: implicit declaration of function 'ioport_unmap' [-Werror=implicit-function-declaration]: => 338:15
um-x86_64/um-allyesconfig
> + /kisskb/src/drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_topology.c: error: control reaches end of non-void function [-Werror=return-type]: => 1560:1
um-x86_64/um-all{mod,yes}config
> + /kisskb/src/drivers/net/ethernet/freescale/fec_mpc52xx.c: error: passing argument 2 of 'mpc52xx_fec_set_paddr' discards 'const' qualifier from pointer target type [-Werror=discarded-qualifiers]: => 659:29
powerpc-gcc5/ppc32_allmodconfig
> + /kisskb/src/drivers/pinctrl/pinctrl-thunderbay.c: error: assignment discards 'const' qualifier from pointer target type [-Werror=discarded-qualifiers]: => 815:8, 815:29
arm64-gcc5.4/arm64-allmodconfig
arm64-gcc8/arm64-allmodconfig
> + /kisskb/src/lib/test_printf.c: error: "PTR" redefined [-Werror]: => 247:0, 247
> + /kisskb/src/sound/pci/ca0106/ca0106.h: error: "PTR" redefined [-Werror]: => 62, 62:0
mips-gcc8/mips-allmodconfig
mipsel/mips-allmodconfig
> + error: arch/powerpc/kvm/book3s_64_entry.o: relocation truncated to fit: R_PPC64_REL14 (stub) against symbol `machine_check_common' defined in .text section in arch/powerpc/kernel/head_64.o: => (.text+0x3e4)
powerpc-gcc5/powerpc-allyesconfig
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert(a)linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
7
9
Skickat från Yahoo Mail på Android
1
0

25 Jan '22
On Sun, Jan 23, 2022 at 6:54 PM Uwe Kleine-König
<u.kleine-koenig(a)pengutronix.de> wrote:
> The value returned by an spi driver's remove function is mostly ignored.
> (Only an error message is printed if the value is non-zero that the
> error is ignored.)
>
> So change the prototype of the remove function to return no value. This
> way driver authors are not tempted to assume that passing an error to
> the upper layer is a good idea. All drivers are adapted accordingly.
> There is no intended change of behaviour, all callbacks were prepared to
> return 0 before.
>
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig(a)pengutronix.de>
> drivers/spi/spi-slave-system-control.c | 3 +--
> drivers/spi/spi-slave-time.c | 3 +--
> drivers/spi/spi.c | 11 ++---------
> drivers/spi/spidev.c | 4 +---
Reviewed-by: Geert Uytterhoeven <geert+renesas(a)glider.be>
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert(a)linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
1
0
On Sun, 23 Jan 2022 18:52:01 +0100
Uwe Kleine-König <u.kleine-koenig(a)pengutronix.de> wrote:
> The value returned by an spi driver's remove function is mostly ignored.
> (Only an error message is printed if the value is non-zero that the
> error is ignored.)
>
> So change the prototype of the remove function to return no value. This
> way driver authors are not tempted to assume that passing an error to
> the upper layer is a good idea. All drivers are adapted accordingly.
> There is no intended change of behaviour, all callbacks were prepared to
> return 0 before.
>
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig(a)pengutronix.de>
For iio drivers.
Acked-by: Jonathan Cameron <Jonathan.Cameron(a)huawei.com>
As you mention in the cover letter we'll be wanting an immutable
branch somewhere to pull into subsystem trees.
Soon is good if possible as otherwise we'll end up with a bunch of merge
conflicts getting resolved in next.
Thanks,
Jonathan
> ---
> drivers/bus/moxtet.c | 4 +---
> drivers/char/tpm/st33zp24/spi.c | 4 +---
> drivers/char/tpm/tpm_tis_spi_main.c | 3 +--
> drivers/clk/clk-lmk04832.c | 4 +---
> drivers/gpio/gpio-74x164.c | 4 +---
> drivers/gpio/gpio-max3191x.c | 4 +---
> drivers/gpio/gpio-max7301.c | 4 +---
> drivers/gpio/gpio-mc33880.c | 4 +---
> drivers/gpio/gpio-pisosr.c | 4 +---
> drivers/gpu/drm/panel/panel-abt-y030xx067a.c | 4 +---
> drivers/gpu/drm/panel/panel-ilitek-ili9322.c | 4 +---
> drivers/gpu/drm/panel/panel-ilitek-ili9341.c | 3 +--
> drivers/gpu/drm/panel/panel-innolux-ej030na.c | 4 +---
> drivers/gpu/drm/panel/panel-lg-lb035q02.c | 4 +---
> drivers/gpu/drm/panel/panel-lg-lg4573.c | 4 +---
> drivers/gpu/drm/panel/panel-nec-nl8048hl11.c | 4 +---
> drivers/gpu/drm/panel/panel-novatek-nt39016.c | 4 +---
> drivers/gpu/drm/panel/panel-samsung-db7430.c | 3 +--
> drivers/gpu/drm/panel/panel-samsung-ld9040.c | 4 +---
> drivers/gpu/drm/panel/panel-samsung-s6d27a1.c | 3 +--
> drivers/gpu/drm/panel/panel-samsung-s6e63m0-spi.c | 3 +--
> drivers/gpu/drm/panel/panel-sitronix-st7789v.c | 4 +---
> drivers/gpu/drm/panel/panel-sony-acx565akm.c | 4 +---
> drivers/gpu/drm/panel/panel-tpo-td028ttec1.c | 4 +---
> drivers/gpu/drm/panel/panel-tpo-td043mtea1.c | 4 +---
> drivers/gpu/drm/panel/panel-tpo-tpg110.c | 3 +--
> drivers/gpu/drm/panel/panel-widechips-ws2401.c | 3 +--
> drivers/gpu/drm/tiny/hx8357d.c | 4 +---
> drivers/gpu/drm/tiny/ili9163.c | 4 +---
> drivers/gpu/drm/tiny/ili9225.c | 4 +---
> drivers/gpu/drm/tiny/ili9341.c | 4 +---
> drivers/gpu/drm/tiny/ili9486.c | 4 +---
> drivers/gpu/drm/tiny/mi0283qt.c | 4 +---
> drivers/gpu/drm/tiny/repaper.c | 4 +---
> drivers/gpu/drm/tiny/st7586.c | 4 +---
> drivers/gpu/drm/tiny/st7735r.c | 4 +---
> drivers/hwmon/adcxx.c | 4 +---
> drivers/hwmon/adt7310.c | 3 +--
> drivers/hwmon/max1111.c | 3 +--
> drivers/hwmon/max31722.c | 4 +---
> drivers/iio/accel/bma400_spi.c | 4 +---
> drivers/iio/accel/bmc150-accel-spi.c | 4 +---
> drivers/iio/accel/bmi088-accel-spi.c | 4 +---
> drivers/iio/accel/kxsd9-spi.c | 4 +---
> drivers/iio/accel/mma7455_spi.c | 4 +---
> drivers/iio/accel/sca3000.c | 4 +---
> drivers/iio/adc/ad7266.c | 4 +---
> drivers/iio/adc/ltc2496.c | 4 +---
> drivers/iio/adc/mcp320x.c | 4 +---
> drivers/iio/adc/mcp3911.c | 4 +---
> drivers/iio/adc/ti-adc12138.c | 4 +---
> drivers/iio/adc/ti-ads7950.c | 4 +---
> drivers/iio/adc/ti-ads8688.c | 4 +---
> drivers/iio/adc/ti-tlc4541.c | 4 +---
> drivers/iio/amplifiers/ad8366.c | 4 +---
> drivers/iio/common/ssp_sensors/ssp_dev.c | 4 +---
> drivers/iio/dac/ad5360.c | 4 +---
> drivers/iio/dac/ad5380.c | 4 +---
> drivers/iio/dac/ad5446.c | 4 +---
> drivers/iio/dac/ad5449.c | 4 +---
> drivers/iio/dac/ad5504.c | 4 +---
> drivers/iio/dac/ad5592r.c | 4 +---
> drivers/iio/dac/ad5624r_spi.c | 4 +---
> drivers/iio/dac/ad5686-spi.c | 4 +---
> drivers/iio/dac/ad5761.c | 4 +---
> drivers/iio/dac/ad5764.c | 4 +---
> drivers/iio/dac/ad5791.c | 4 +---
> drivers/iio/dac/ad8801.c | 4 +---
> drivers/iio/dac/ltc1660.c | 4 +---
> drivers/iio/dac/ltc2632.c | 4 +---
> drivers/iio/dac/mcp4922.c | 4 +---
> drivers/iio/dac/ti-dac082s085.c | 4 +---
> drivers/iio/dac/ti-dac7311.c | 3 +--
> drivers/iio/frequency/adf4350.c | 4 +---
> drivers/iio/gyro/bmg160_spi.c | 4 +---
> drivers/iio/gyro/fxas21002c_spi.c | 4 +---
> drivers/iio/health/afe4403.c | 4 +---
> drivers/iio/magnetometer/bmc150_magn_spi.c | 4 +---
> drivers/iio/magnetometer/hmc5843_spi.c | 4 +---
> drivers/iio/potentiometer/max5487.c | 4 +---
> drivers/iio/pressure/ms5611_spi.c | 4 +---
> drivers/iio/pressure/zpa2326_spi.c | 4 +---
> drivers/input/keyboard/applespi.c | 4 +---
> drivers/input/misc/adxl34x-spi.c | 4 +---
> drivers/input/touchscreen/ads7846.c | 4 +---
> drivers/input/touchscreen/cyttsp4_spi.c | 4 +---
> drivers/input/touchscreen/tsc2005.c | 4 +---
> drivers/leds/leds-cr0014114.c | 4 +---
> drivers/leds/leds-dac124s085.c | 4 +---
> drivers/leds/leds-el15203000.c | 4 +---
> drivers/leds/leds-spi-byte.c | 4 +---
> drivers/media/spi/cxd2880-spi.c | 4 +---
> drivers/media/spi/gs1662.c | 4 +---
> drivers/media/tuners/msi001.c | 3 +--
> drivers/mfd/arizona-spi.c | 4 +---
> drivers/mfd/da9052-spi.c | 3 +--
> drivers/mfd/ezx-pcap.c | 4 +---
> drivers/mfd/madera-spi.c | 4 +---
> drivers/mfd/mc13xxx-spi.c | 3 +--
> drivers/mfd/rsmu_spi.c | 4 +---
> drivers/mfd/stmpe-spi.c | 4 +---
> drivers/mfd/tps65912-spi.c | 4 +---
> drivers/misc/ad525x_dpot-spi.c | 3 +--
> drivers/misc/eeprom/eeprom_93xx46.c | 4 +---
> drivers/misc/lattice-ecp3-config.c | 4 +---
> drivers/misc/lis3lv02d/lis3lv02d_spi.c | 4 +---
> drivers/mmc/host/mmc_spi.c | 3 +--
> drivers/mtd/devices/mchp23k256.c | 4 +---
> drivers/mtd/devices/mchp48l640.c | 4 +---
> drivers/mtd/devices/mtd_dataflash.c | 4 +---
> drivers/mtd/devices/sst25l.c | 4 +---
> drivers/net/can/m_can/tcan4x5x-core.c | 4 +---
> drivers/net/can/spi/hi311x.c | 4 +---
> drivers/net/can/spi/mcp251x.c | 4 +---
> drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c | 4 +---
> drivers/net/dsa/b53/b53_spi.c | 4 +---
> drivers/net/dsa/microchip/ksz8795_spi.c | 4 +---
> drivers/net/dsa/microchip/ksz9477_spi.c | 4 +---
> drivers/net/dsa/sja1105/sja1105_main.c | 6 ++----
> drivers/net/dsa/vitesse-vsc73xx-spi.c | 6 ++----
> drivers/net/ethernet/asix/ax88796c_main.c | 4 +---
> drivers/net/ethernet/micrel/ks8851_spi.c | 4 +---
> drivers/net/ethernet/microchip/enc28j60.c | 4 +---
> drivers/net/ethernet/microchip/encx24j600.c | 4 +---
> drivers/net/ethernet/qualcomm/qca_spi.c | 4 +---
> drivers/net/ethernet/vertexcom/mse102x.c | 4 +---
> drivers/net/ethernet/wiznet/w5100-spi.c | 4 +---
> drivers/net/ieee802154/adf7242.c | 4 +---
> drivers/net/ieee802154/at86rf230.c | 4 +---
> drivers/net/ieee802154/ca8210.c | 6 ++----
> drivers/net/ieee802154/cc2520.c | 4 +---
> drivers/net/ieee802154/mcr20a.c | 4 +---
> drivers/net/ieee802154/mrf24j40.c | 4 +---
> drivers/net/phy/spi_ks8995.c | 4 +---
> drivers/net/wan/slic_ds26522.c | 3 +--
> drivers/net/wireless/intersil/p54/p54spi.c | 4 +---
> drivers/net/wireless/marvell/libertas/if_spi.c | 4 +---
> drivers/net/wireless/microchip/wilc1000/spi.c | 4 +---
> drivers/net/wireless/st/cw1200/cw1200_spi.c | 4 +---
> drivers/net/wireless/ti/wl1251/spi.c | 4 +---
> drivers/net/wireless/ti/wlcore/spi.c | 4 +---
> drivers/nfc/nfcmrvl/spi.c | 3 +--
> drivers/nfc/st-nci/spi.c | 4 +---
> drivers/nfc/st95hf/core.c | 4 +---
> drivers/nfc/trf7970a.c | 4 +---
> drivers/platform/chrome/cros_ec_spi.c | 4 +---
> drivers/platform/olpc/olpc-xo175-ec.c | 4 +---
> drivers/rtc/rtc-ds1302.c | 3 +--
> drivers/rtc/rtc-ds1305.c | 4 +---
> drivers/rtc/rtc-ds1343.c | 4 +---
> drivers/spi/spi-mem.c | 6 ++----
> drivers/spi/spi-slave-system-control.c | 3 +--
> drivers/spi/spi-slave-time.c | 3 +--
> drivers/spi/spi-tle62x0.c | 3 +--
> drivers/spi/spi.c | 11 ++---------
> drivers/spi/spidev.c | 4 +---
> drivers/staging/fbtft/fbtft.h | 3 +--
> drivers/staging/pi433/pi433_if.c | 4 +---
> drivers/staging/wfx/bus_spi.c | 3 +--
> drivers/tty/serial/max3100.c | 5 ++---
> drivers/tty/serial/max310x.c | 3 +--
> drivers/tty/serial/sc16is7xx.c | 4 +---
> drivers/usb/gadget/udc/max3420_udc.c | 4 +---
> drivers/usb/host/max3421-hcd.c | 3 +--
> drivers/video/backlight/ams369fg06.c | 3 +--
> drivers/video/backlight/corgi_lcd.c | 3 +--
> drivers/video/backlight/ili922x.c | 3 +--
> drivers/video/backlight/l4f00242t03.c | 3 +--
> drivers/video/backlight/lms501kf03.c | 3 +--
> drivers/video/backlight/ltv350qv.c | 3 +--
> drivers/video/backlight/tdo24m.c | 3 +--
> drivers/video/backlight/tosa_lcd.c | 4 +---
> drivers/video/backlight/vgg2432a4.c | 4 +---
> drivers/video/fbdev/omap/lcd_mipid.c | 4 +---
> .../omap2/omapfb/displays/panel-lgphilips-lb035q02.c | 4 +---
> .../omap2/omapfb/displays/panel-nec-nl8048hl11.c | 4 +---
> .../omap2/omapfb/displays/panel-sony-acx565akm.c | 4 +---
> .../omap2/omapfb/displays/panel-tpo-td028ttec1.c | 4 +---
> .../omap2/omapfb/displays/panel-tpo-td043mtea1.c | 4 +---
> include/linux/spi/spi.h | 2 +-
> sound/pci/hda/cs35l41_hda_spi.c | 4 +---
> sound/soc/codecs/adau1761-spi.c | 3 +--
> sound/soc/codecs/adau1781-spi.c | 3 +--
> sound/soc/codecs/cs35l41-spi.c | 4 +---
> sound/soc/codecs/pcm3168a-spi.c | 4 +---
> sound/soc/codecs/pcm512x-spi.c | 3 +--
> sound/soc/codecs/tlv320aic32x4-spi.c | 4 +---
> sound/soc/codecs/tlv320aic3x-spi.c | 4 +---
> sound/soc/codecs/wm0010.c | 4 +---
> sound/soc/codecs/wm8804-spi.c | 3 +--
> sound/spi/at73c213.c | 4 +---
> 191 files changed, 197 insertions(+), 545 deletions(-)
>
> diff --git a/drivers/bus/moxtet.c b/drivers/bus/moxtet.c
> index fd87a59837fa..5eb0fe73ddc4 100644
> --- a/drivers/bus/moxtet.c
> +++ b/drivers/bus/moxtet.c
> @@ -815,7 +815,7 @@ static int moxtet_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int moxtet_remove(struct spi_device *spi)
> +static void moxtet_remove(struct spi_device *spi)
> {
> struct moxtet *moxtet = spi_get_drvdata(spi);
>
> @@ -828,8 +828,6 @@ static int moxtet_remove(struct spi_device *spi)
> device_for_each_child(moxtet->dev, NULL, __unregister);
>
> mutex_destroy(&moxtet->lock);
> -
> - return 0;
> }
>
> static const struct of_device_id moxtet_dt_ids[] = {
> diff --git a/drivers/char/tpm/st33zp24/spi.c b/drivers/char/tpm/st33zp24/spi.c
> index ccd9e42b8eab..22d184884694 100644
> --- a/drivers/char/tpm/st33zp24/spi.c
> +++ b/drivers/char/tpm/st33zp24/spi.c
> @@ -381,13 +381,11 @@ static int st33zp24_spi_probe(struct spi_device *dev)
> * @param: client, the spi_device description (TPM SPI description).
> * @return: 0 in case of success.
> */
> -static int st33zp24_spi_remove(struct spi_device *dev)
> +static void st33zp24_spi_remove(struct spi_device *dev)
> {
> struct tpm_chip *chip = spi_get_drvdata(dev);
>
> st33zp24_remove(chip);
> -
> - return 0;
> }
>
> static const struct spi_device_id st33zp24_spi_id[] = {
> diff --git a/drivers/char/tpm/tpm_tis_spi_main.c b/drivers/char/tpm/tpm_tis_spi_main.c
> index aaa59a00eeae..184396b3af50 100644
> --- a/drivers/char/tpm/tpm_tis_spi_main.c
> +++ b/drivers/char/tpm/tpm_tis_spi_main.c
> @@ -254,13 +254,12 @@ static int tpm_tis_spi_driver_probe(struct spi_device *spi)
>
> static SIMPLE_DEV_PM_OPS(tpm_tis_pm, tpm_pm_suspend, tpm_tis_spi_resume);
>
> -static int tpm_tis_spi_remove(struct spi_device *dev)
> +static void tpm_tis_spi_remove(struct spi_device *dev)
> {
> struct tpm_chip *chip = spi_get_drvdata(dev);
>
> tpm_chip_unregister(chip);
> tpm_tis_remove(chip);
> - return 0;
> }
>
> static const struct spi_device_id tpm_tis_spi_id[] = {
> diff --git a/drivers/clk/clk-lmk04832.c b/drivers/clk/clk-lmk04832.c
> index 8f02c0b88000..f416f8bc2898 100644
> --- a/drivers/clk/clk-lmk04832.c
> +++ b/drivers/clk/clk-lmk04832.c
> @@ -1544,14 +1544,12 @@ static int lmk04832_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int lmk04832_remove(struct spi_device *spi)
> +static void lmk04832_remove(struct spi_device *spi)
> {
> struct lmk04832 *lmk = spi_get_drvdata(spi);
>
> clk_disable_unprepare(lmk->oscin);
> of_clk_del_provider(spi->dev.of_node);
> -
> - return 0;
> }
> static const struct spi_device_id lmk04832_id[] = {
> { "lmk04832", LMK04832 },
> diff --git a/drivers/gpio/gpio-74x164.c b/drivers/gpio/gpio-74x164.c
> index 4a55cdf089d6..e00c33310517 100644
> --- a/drivers/gpio/gpio-74x164.c
> +++ b/drivers/gpio/gpio-74x164.c
> @@ -163,15 +163,13 @@ static int gen_74x164_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int gen_74x164_remove(struct spi_device *spi)
> +static void gen_74x164_remove(struct spi_device *spi)
> {
> struct gen_74x164_chip *chip = spi_get_drvdata(spi);
>
> gpiod_set_value_cansleep(chip->gpiod_oe, 0);
> gpiochip_remove(&chip->gpio_chip);
> mutex_destroy(&chip->lock);
> -
> - return 0;
> }
>
> static const struct spi_device_id gen_74x164_spi_ids[] = {
> diff --git a/drivers/gpio/gpio-max3191x.c b/drivers/gpio/gpio-max3191x.c
> index 51cd6f98d1c7..161c4751c5f7 100644
> --- a/drivers/gpio/gpio-max3191x.c
> +++ b/drivers/gpio/gpio-max3191x.c
> @@ -443,14 +443,12 @@ static int max3191x_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int max3191x_remove(struct spi_device *spi)
> +static void max3191x_remove(struct spi_device *spi)
> {
> struct max3191x_chip *max3191x = spi_get_drvdata(spi);
>
> gpiochip_remove(&max3191x->gpio);
> mutex_destroy(&max3191x->lock);
> -
> - return 0;
> }
>
> static int __init max3191x_register_driver(struct spi_driver *sdrv)
> diff --git a/drivers/gpio/gpio-max7301.c b/drivers/gpio/gpio-max7301.c
> index 5862d73bf325..11813f41d460 100644
> --- a/drivers/gpio/gpio-max7301.c
> +++ b/drivers/gpio/gpio-max7301.c
> @@ -64,11 +64,9 @@ static int max7301_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int max7301_remove(struct spi_device *spi)
> +static void max7301_remove(struct spi_device *spi)
> {
> __max730x_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id max7301_id[] = {
> diff --git a/drivers/gpio/gpio-mc33880.c b/drivers/gpio/gpio-mc33880.c
> index 31d2be1bebc8..cd9b16dbe1a9 100644
> --- a/drivers/gpio/gpio-mc33880.c
> +++ b/drivers/gpio/gpio-mc33880.c
> @@ -134,7 +134,7 @@ static int mc33880_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mc33880_remove(struct spi_device *spi)
> +static void mc33880_remove(struct spi_device *spi)
> {
> struct mc33880 *mc;
>
> @@ -142,8 +142,6 @@ static int mc33880_remove(struct spi_device *spi)
>
> gpiochip_remove(&mc->chip);
> mutex_destroy(&mc->lock);
> -
> - return 0;
> }
>
> static struct spi_driver mc33880_driver = {
> diff --git a/drivers/gpio/gpio-pisosr.c b/drivers/gpio/gpio-pisosr.c
> index 8e04054cf07e..81a47ae09ff8 100644
> --- a/drivers/gpio/gpio-pisosr.c
> +++ b/drivers/gpio/gpio-pisosr.c
> @@ -163,15 +163,13 @@ static int pisosr_gpio_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int pisosr_gpio_remove(struct spi_device *spi)
> +static void pisosr_gpio_remove(struct spi_device *spi)
> {
> struct pisosr_gpio *gpio = spi_get_drvdata(spi);
>
> gpiochip_remove(&gpio->chip);
>
> mutex_destroy(&gpio->lock);
> -
> - return 0;
> }
>
> static const struct spi_device_id pisosr_gpio_id_table[] = {
> diff --git a/drivers/gpu/drm/panel/panel-abt-y030xx067a.c b/drivers/gpu/drm/panel/panel-abt-y030xx067a.c
> index f043b484055b..ed626fdc08e8 100644
> --- a/drivers/gpu/drm/panel/panel-abt-y030xx067a.c
> +++ b/drivers/gpu/drm/panel/panel-abt-y030xx067a.c
> @@ -293,15 +293,13 @@ static int y030xx067a_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int y030xx067a_remove(struct spi_device *spi)
> +static void y030xx067a_remove(struct spi_device *spi)
> {
> struct y030xx067a *priv = spi_get_drvdata(spi);
>
> drm_panel_remove(&priv->panel);
> drm_panel_disable(&priv->panel);
> drm_panel_unprepare(&priv->panel);
> -
> - return 0;
> }
>
> static const struct drm_display_mode y030xx067a_modes[] = {
> diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9322.c b/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
> index 8e84df9a0033..3dfafa585127 100644
> --- a/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
> +++ b/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
> @@ -896,14 +896,12 @@ static int ili9322_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ili9322_remove(struct spi_device *spi)
> +static void ili9322_remove(struct spi_device *spi)
> {
> struct ili9322 *ili = spi_get_drvdata(spi);
>
> ili9322_power_off(ili);
> drm_panel_remove(&ili->panel);
> -
> - return 0;
> }
>
> /*
> diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9341.c b/drivers/gpu/drm/panel/panel-ilitek-ili9341.c
> index 2c3378a259b1..a07ef26234e5 100644
> --- a/drivers/gpu/drm/panel/panel-ilitek-ili9341.c
> +++ b/drivers/gpu/drm/panel/panel-ilitek-ili9341.c
> @@ -728,7 +728,7 @@ static int ili9341_probe(struct spi_device *spi)
> return -1;
> }
>
> -static int ili9341_remove(struct spi_device *spi)
> +static void ili9341_remove(struct spi_device *spi)
> {
> const struct spi_device_id *id = spi_get_device_id(spi);
> struct ili9341 *ili = spi_get_drvdata(spi);
> @@ -741,7 +741,6 @@ static int ili9341_remove(struct spi_device *spi)
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> }
> - return 0;
> }
>
> static void ili9341_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/panel/panel-innolux-ej030na.c b/drivers/gpu/drm/panel/panel-innolux-ej030na.c
> index c558de3f99be..e3b1daa0cb72 100644
> --- a/drivers/gpu/drm/panel/panel-innolux-ej030na.c
> +++ b/drivers/gpu/drm/panel/panel-innolux-ej030na.c
> @@ -219,15 +219,13 @@ static int ej030na_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ej030na_remove(struct spi_device *spi)
> +static void ej030na_remove(struct spi_device *spi)
> {
> struct ej030na *priv = spi_get_drvdata(spi);
>
> drm_panel_remove(&priv->panel);
> drm_panel_disable(&priv->panel);
> drm_panel_unprepare(&priv->panel);
> -
> - return 0;
> }
>
> static const struct drm_display_mode ej030na_modes[] = {
> diff --git a/drivers/gpu/drm/panel/panel-lg-lb035q02.c b/drivers/gpu/drm/panel/panel-lg-lb035q02.c
> index f3183b68704f..9d0d4faa3f58 100644
> --- a/drivers/gpu/drm/panel/panel-lg-lb035q02.c
> +++ b/drivers/gpu/drm/panel/panel-lg-lb035q02.c
> @@ -203,14 +203,12 @@ static int lb035q02_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int lb035q02_remove(struct spi_device *spi)
> +static void lb035q02_remove(struct spi_device *spi)
> {
> struct lb035q02_device *lcd = spi_get_drvdata(spi);
>
> drm_panel_remove(&lcd->panel);
> drm_panel_disable(&lcd->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id lb035q02_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-lg-lg4573.c b/drivers/gpu/drm/panel/panel-lg-lg4573.c
> index 8e5160af1de5..cf246d15b7b6 100644
> --- a/drivers/gpu/drm/panel/panel-lg-lg4573.c
> +++ b/drivers/gpu/drm/panel/panel-lg-lg4573.c
> @@ -266,14 +266,12 @@ static int lg4573_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int lg4573_remove(struct spi_device *spi)
> +static void lg4573_remove(struct spi_device *spi)
> {
> struct lg4573 *ctx = spi_get_drvdata(spi);
>
> lg4573_display_off(ctx);
> drm_panel_remove(&ctx->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id lg4573_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c b/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c
> index 6e5ab1debc8b..81c5c541a351 100644
> --- a/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c
> +++ b/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c
> @@ -212,15 +212,13 @@ static int nl8048_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int nl8048_remove(struct spi_device *spi)
> +static void nl8048_remove(struct spi_device *spi)
> {
> struct nl8048_panel *lcd = spi_get_drvdata(spi);
>
> drm_panel_remove(&lcd->panel);
> drm_panel_disable(&lcd->panel);
> drm_panel_unprepare(&lcd->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id nl8048_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-novatek-nt39016.c b/drivers/gpu/drm/panel/panel-novatek-nt39016.c
> index d036853db865..f58cfb10b58a 100644
> --- a/drivers/gpu/drm/panel/panel-novatek-nt39016.c
> +++ b/drivers/gpu/drm/panel/panel-novatek-nt39016.c
> @@ -292,7 +292,7 @@ static int nt39016_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int nt39016_remove(struct spi_device *spi)
> +static void nt39016_remove(struct spi_device *spi)
> {
> struct nt39016 *panel = spi_get_drvdata(spi);
>
> @@ -300,8 +300,6 @@ static int nt39016_remove(struct spi_device *spi)
>
> nt39016_disable(&panel->drm_panel);
> nt39016_unprepare(&panel->drm_panel);
> -
> - return 0;
> }
>
> static const struct drm_display_mode kd035g6_display_modes[] = {
> diff --git a/drivers/gpu/drm/panel/panel-samsung-db7430.c b/drivers/gpu/drm/panel/panel-samsung-db7430.c
> index ead479719f00..04640c5256a8 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-db7430.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-db7430.c
> @@ -314,12 +314,11 @@ static int db7430_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int db7430_remove(struct spi_device *spi)
> +static void db7430_remove(struct spi_device *spi)
> {
> struct db7430 *db = spi_get_drvdata(spi);
>
> drm_panel_remove(&db->panel);
> - return 0;
> }
>
> /*
> diff --git a/drivers/gpu/drm/panel/panel-samsung-ld9040.c b/drivers/gpu/drm/panel/panel-samsung-ld9040.c
> index c4b388850a13..01eb211f32f7 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-ld9040.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-ld9040.c
> @@ -358,14 +358,12 @@ static int ld9040_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ld9040_remove(struct spi_device *spi)
> +static void ld9040_remove(struct spi_device *spi)
> {
> struct ld9040 *ctx = spi_get_drvdata(spi);
>
> ld9040_power_off(ctx);
> drm_panel_remove(&ctx->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id ld9040_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-samsung-s6d27a1.c b/drivers/gpu/drm/panel/panel-samsung-s6d27a1.c
> index 1696ceb36aa0..2adb223a895c 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-s6d27a1.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-s6d27a1.c
> @@ -291,12 +291,11 @@ static int s6d27a1_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int s6d27a1_remove(struct spi_device *spi)
> +static void s6d27a1_remove(struct spi_device *spi)
> {
> struct s6d27a1 *ctx = spi_get_drvdata(spi);
>
> drm_panel_remove(&ctx->panel);
> - return 0;
> }
>
> static const struct of_device_id s6d27a1_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e63m0-spi.c b/drivers/gpu/drm/panel/panel-samsung-s6e63m0-spi.c
> index c178d962b0d5..d99afcc672ca 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-s6e63m0-spi.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-s6e63m0-spi.c
> @@ -62,10 +62,9 @@ static int s6e63m0_spi_probe(struct spi_device *spi)
> s6e63m0_spi_dcs_write, false);
> }
>
> -static int s6e63m0_spi_remove(struct spi_device *spi)
> +static void s6e63m0_spi_remove(struct spi_device *spi)
> {
> s6e63m0_remove(&spi->dev);
> - return 0;
> }
>
> static const struct of_device_id s6e63m0_spi_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7789v.c b/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
> index 61e565524542..bbc4569cbcdc 100644
> --- a/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
> +++ b/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
> @@ -387,13 +387,11 @@ static int st7789v_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int st7789v_remove(struct spi_device *spi)
> +static void st7789v_remove(struct spi_device *spi)
> {
> struct st7789v *ctx = spi_get_drvdata(spi);
>
> drm_panel_remove(&ctx->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id st7789v_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-sony-acx565akm.c b/drivers/gpu/drm/panel/panel-sony-acx565akm.c
> index ba0b3ead150f..0d7541a33f87 100644
> --- a/drivers/gpu/drm/panel/panel-sony-acx565akm.c
> +++ b/drivers/gpu/drm/panel/panel-sony-acx565akm.c
> @@ -655,7 +655,7 @@ static int acx565akm_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int acx565akm_remove(struct spi_device *spi)
> +static void acx565akm_remove(struct spi_device *spi)
> {
> struct acx565akm_panel *lcd = spi_get_drvdata(spi);
>
> @@ -666,8 +666,6 @@ static int acx565akm_remove(struct spi_device *spi)
>
> drm_panel_disable(&lcd->panel);
> drm_panel_unprepare(&lcd->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id acx565akm_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c b/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c
> index ba0c00d1a001..4dbf8b88f264 100644
> --- a/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c
> +++ b/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c
> @@ -350,15 +350,13 @@ static int td028ttec1_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int td028ttec1_remove(struct spi_device *spi)
> +static void td028ttec1_remove(struct spi_device *spi)
> {
> struct td028ttec1_panel *lcd = spi_get_drvdata(spi);
>
> drm_panel_remove(&lcd->panel);
> drm_panel_disable(&lcd->panel);
> drm_panel_unprepare(&lcd->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id td028ttec1_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c b/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c
> index 1866cdb8f9c1..cf4609bb9b1d 100644
> --- a/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c
> +++ b/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c
> @@ -463,7 +463,7 @@ static int td043mtea1_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int td043mtea1_remove(struct spi_device *spi)
> +static void td043mtea1_remove(struct spi_device *spi)
> {
> struct td043mtea1_panel *lcd = spi_get_drvdata(spi);
>
> @@ -472,8 +472,6 @@ static int td043mtea1_remove(struct spi_device *spi)
> drm_panel_unprepare(&lcd->panel);
>
> sysfs_remove_group(&spi->dev.kobj, &td043mtea1_attr_group);
> -
> - return 0;
> }
>
> static const struct of_device_id td043mtea1_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-tpo-tpg110.c b/drivers/gpu/drm/panel/panel-tpo-tpg110.c
> index e3791dad6830..0b1f5a11a055 100644
> --- a/drivers/gpu/drm/panel/panel-tpo-tpg110.c
> +++ b/drivers/gpu/drm/panel/panel-tpo-tpg110.c
> @@ -450,12 +450,11 @@ static int tpg110_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int tpg110_remove(struct spi_device *spi)
> +static void tpg110_remove(struct spi_device *spi)
> {
> struct tpg110 *tpg = spi_get_drvdata(spi);
>
> drm_panel_remove(&tpg->panel);
> - return 0;
> }
>
> static const struct of_device_id tpg110_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-widechips-ws2401.c b/drivers/gpu/drm/panel/panel-widechips-ws2401.c
> index 8bc976f54b80..236f3cb2b594 100644
> --- a/drivers/gpu/drm/panel/panel-widechips-ws2401.c
> +++ b/drivers/gpu/drm/panel/panel-widechips-ws2401.c
> @@ -407,12 +407,11 @@ static int ws2401_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ws2401_remove(struct spi_device *spi)
> +static void ws2401_remove(struct spi_device *spi)
> {
> struct ws2401 *ws = spi_get_drvdata(spi);
>
> drm_panel_remove(&ws->panel);
> - return 0;
> }
>
> /*
> diff --git a/drivers/gpu/drm/tiny/hx8357d.c b/drivers/gpu/drm/tiny/hx8357d.c
> index 9b33c05732aa..ebb025543f8d 100644
> --- a/drivers/gpu/drm/tiny/hx8357d.c
> +++ b/drivers/gpu/drm/tiny/hx8357d.c
> @@ -263,14 +263,12 @@ static int hx8357d_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int hx8357d_remove(struct spi_device *spi)
> +static void hx8357d_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void hx8357d_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/ili9163.c b/drivers/gpu/drm/tiny/ili9163.c
> index bcc181351236..fc8ed245b0bc 100644
> --- a/drivers/gpu/drm/tiny/ili9163.c
> +++ b/drivers/gpu/drm/tiny/ili9163.c
> @@ -193,14 +193,12 @@ static int ili9163_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ili9163_remove(struct spi_device *spi)
> +static void ili9163_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void ili9163_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/ili9225.c b/drivers/gpu/drm/tiny/ili9225.c
> index 976d3209f164..cc92eb9f2a07 100644
> --- a/drivers/gpu/drm/tiny/ili9225.c
> +++ b/drivers/gpu/drm/tiny/ili9225.c
> @@ -411,14 +411,12 @@ static int ili9225_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ili9225_remove(struct spi_device *spi)
> +static void ili9225_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void ili9225_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/ili9341.c b/drivers/gpu/drm/tiny/ili9341.c
> index 37e0c33399c8..5b8cc770ee7b 100644
> --- a/drivers/gpu/drm/tiny/ili9341.c
> +++ b/drivers/gpu/drm/tiny/ili9341.c
> @@ -225,14 +225,12 @@ static int ili9341_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ili9341_remove(struct spi_device *spi)
> +static void ili9341_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void ili9341_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/ili9486.c b/drivers/gpu/drm/tiny/ili9486.c
> index e9a63f4b2993..6d655e18e0aa 100644
> --- a/drivers/gpu/drm/tiny/ili9486.c
> +++ b/drivers/gpu/drm/tiny/ili9486.c
> @@ -243,14 +243,12 @@ static int ili9486_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ili9486_remove(struct spi_device *spi)
> +static void ili9486_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void ili9486_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/mi0283qt.c b/drivers/gpu/drm/tiny/mi0283qt.c
> index 023de49e7a8e..5e060f6910bb 100644
> --- a/drivers/gpu/drm/tiny/mi0283qt.c
> +++ b/drivers/gpu/drm/tiny/mi0283qt.c
> @@ -233,14 +233,12 @@ static int mi0283qt_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int mi0283qt_remove(struct spi_device *spi)
> +static void mi0283qt_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void mi0283qt_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/repaper.c b/drivers/gpu/drm/tiny/repaper.c
> index 97a775c48cea..beeeb170d0b1 100644
> --- a/drivers/gpu/drm/tiny/repaper.c
> +++ b/drivers/gpu/drm/tiny/repaper.c
> @@ -1140,14 +1140,12 @@ static int repaper_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int repaper_remove(struct spi_device *spi)
> +static void repaper_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void repaper_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/st7586.c b/drivers/gpu/drm/tiny/st7586.c
> index 51b9b9fb3ead..3f38faa1cd8c 100644
> --- a/drivers/gpu/drm/tiny/st7586.c
> +++ b/drivers/gpu/drm/tiny/st7586.c
> @@ -360,14 +360,12 @@ static int st7586_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int st7586_remove(struct spi_device *spi)
> +static void st7586_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void st7586_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/st7735r.c b/drivers/gpu/drm/tiny/st7735r.c
> index fc40dd10efa8..29d618093e94 100644
> --- a/drivers/gpu/drm/tiny/st7735r.c
> +++ b/drivers/gpu/drm/tiny/st7735r.c
> @@ -247,14 +247,12 @@ static int st7735r_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int st7735r_remove(struct spi_device *spi)
> +static void st7735r_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void st7735r_shutdown(struct spi_device *spi)
> diff --git a/drivers/hwmon/adcxx.c b/drivers/hwmon/adcxx.c
> index e5bc5ce09f4e..de37bce24fa6 100644
> --- a/drivers/hwmon/adcxx.c
> +++ b/drivers/hwmon/adcxx.c
> @@ -194,7 +194,7 @@ static int adcxx_probe(struct spi_device *spi)
> return status;
> }
>
> -static int adcxx_remove(struct spi_device *spi)
> +static void adcxx_remove(struct spi_device *spi)
> {
> struct adcxx *adc = spi_get_drvdata(spi);
> int i;
> @@ -205,8 +205,6 @@ static int adcxx_remove(struct spi_device *spi)
> device_remove_file(&spi->dev, &ad_input[i].dev_attr);
>
> mutex_unlock(&adc->lock);
> -
> - return 0;
> }
>
> static const struct spi_device_id adcxx_ids[] = {
> diff --git a/drivers/hwmon/adt7310.c b/drivers/hwmon/adt7310.c
> index c40cac16af68..832d9ec64934 100644
> --- a/drivers/hwmon/adt7310.c
> +++ b/drivers/hwmon/adt7310.c
> @@ -88,10 +88,9 @@ static int adt7310_spi_probe(struct spi_device *spi)
> &adt7310_spi_ops);
> }
>
> -static int adt7310_spi_remove(struct spi_device *spi)
> +static void adt7310_spi_remove(struct spi_device *spi)
> {
> adt7x10_remove(&spi->dev, spi->irq);
> - return 0;
> }
>
> static const struct spi_device_id adt7310_id[] = {
> diff --git a/drivers/hwmon/max1111.c b/drivers/hwmon/max1111.c
> index 5fcfd57df61e..4c5487aeb3cf 100644
> --- a/drivers/hwmon/max1111.c
> +++ b/drivers/hwmon/max1111.c
> @@ -254,7 +254,7 @@ static int max1111_probe(struct spi_device *spi)
> return err;
> }
>
> -static int max1111_remove(struct spi_device *spi)
> +static void max1111_remove(struct spi_device *spi)
> {
> struct max1111_data *data = spi_get_drvdata(spi);
>
> @@ -265,7 +265,6 @@ static int max1111_remove(struct spi_device *spi)
> sysfs_remove_group(&spi->dev.kobj, &max1110_attr_group);
> sysfs_remove_group(&spi->dev.kobj, &max1111_attr_group);
> mutex_destroy(&data->drvdata_lock);
> - return 0;
> }
>
> static const struct spi_device_id max1111_ids[] = {
> diff --git a/drivers/hwmon/max31722.c b/drivers/hwmon/max31722.c
> index 4cf4fe6809a3..93e048ee4955 100644
> --- a/drivers/hwmon/max31722.c
> +++ b/drivers/hwmon/max31722.c
> @@ -100,7 +100,7 @@ static int max31722_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int max31722_remove(struct spi_device *spi)
> +static void max31722_remove(struct spi_device *spi)
> {
> struct max31722_data *data = spi_get_drvdata(spi);
> int ret;
> @@ -111,8 +111,6 @@ static int max31722_remove(struct spi_device *spi)
> if (ret)
> /* There is nothing we can do about this ... */
> dev_warn(&spi->dev, "Failed to put device in stand-by mode\n");
> -
> - return 0;
> }
>
> static int __maybe_unused max31722_suspend(struct device *dev)
> diff --git a/drivers/iio/accel/bma400_spi.c b/drivers/iio/accel/bma400_spi.c
> index 9f622e37477b..9040a717b247 100644
> --- a/drivers/iio/accel/bma400_spi.c
> +++ b/drivers/iio/accel/bma400_spi.c
> @@ -87,11 +87,9 @@ static int bma400_spi_probe(struct spi_device *spi)
> return bma400_probe(&spi->dev, regmap, id->name);
> }
>
> -static int bma400_spi_remove(struct spi_device *spi)
> +static void bma400_spi_remove(struct spi_device *spi)
> {
> bma400_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id bma400_spi_ids[] = {
> diff --git a/drivers/iio/accel/bmc150-accel-spi.c b/drivers/iio/accel/bmc150-accel-spi.c
> index 11559567cb39..80007cc2d044 100644
> --- a/drivers/iio/accel/bmc150-accel-spi.c
> +++ b/drivers/iio/accel/bmc150-accel-spi.c
> @@ -35,11 +35,9 @@ static int bmc150_accel_probe(struct spi_device *spi)
> true);
> }
>
> -static int bmc150_accel_remove(struct spi_device *spi)
> +static void bmc150_accel_remove(struct spi_device *spi)
> {
> bmc150_accel_core_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct acpi_device_id bmc150_accel_acpi_match[] = {
> diff --git a/drivers/iio/accel/bmi088-accel-spi.c b/drivers/iio/accel/bmi088-accel-spi.c
> index 758ad2f12896..06d99d9949f3 100644
> --- a/drivers/iio/accel/bmi088-accel-spi.c
> +++ b/drivers/iio/accel/bmi088-accel-spi.c
> @@ -56,11 +56,9 @@ static int bmi088_accel_probe(struct spi_device *spi)
> true);
> }
>
> -static int bmi088_accel_remove(struct spi_device *spi)
> +static void bmi088_accel_remove(struct spi_device *spi)
> {
> bmi088_accel_core_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id bmi088_accel_id[] = {
> diff --git a/drivers/iio/accel/kxsd9-spi.c b/drivers/iio/accel/kxsd9-spi.c
> index 441e6b764281..57c451cfb9e5 100644
> --- a/drivers/iio/accel/kxsd9-spi.c
> +++ b/drivers/iio/accel/kxsd9-spi.c
> @@ -32,11 +32,9 @@ static int kxsd9_spi_probe(struct spi_device *spi)
> spi_get_device_id(spi)->name);
> }
>
> -static int kxsd9_spi_remove(struct spi_device *spi)
> +static void kxsd9_spi_remove(struct spi_device *spi)
> {
> kxsd9_common_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id kxsd9_spi_id[] = {
> diff --git a/drivers/iio/accel/mma7455_spi.c b/drivers/iio/accel/mma7455_spi.c
> index ecf690692dcc..b746031551a3 100644
> --- a/drivers/iio/accel/mma7455_spi.c
> +++ b/drivers/iio/accel/mma7455_spi.c
> @@ -22,11 +22,9 @@ static int mma7455_spi_probe(struct spi_device *spi)
> return mma7455_core_probe(&spi->dev, regmap, id->name);
> }
>
> -static int mma7455_spi_remove(struct spi_device *spi)
> +static void mma7455_spi_remove(struct spi_device *spi)
> {
> mma7455_core_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id mma7455_spi_ids[] = {
> diff --git a/drivers/iio/accel/sca3000.c b/drivers/iio/accel/sca3000.c
> index 43ecacbdc95a..83c81072511e 100644
> --- a/drivers/iio/accel/sca3000.c
> +++ b/drivers/iio/accel/sca3000.c
> @@ -1524,7 +1524,7 @@ static int sca3000_stop_all_interrupts(struct sca3000_state *st)
> return ret;
> }
>
> -static int sca3000_remove(struct spi_device *spi)
> +static void sca3000_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct sca3000_state *st = iio_priv(indio_dev);
> @@ -1535,8 +1535,6 @@ static int sca3000_remove(struct spi_device *spi)
> sca3000_stop_all_interrupts(st);
> if (spi->irq)
> free_irq(spi->irq, indio_dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id sca3000_id[] = {
> diff --git a/drivers/iio/adc/ad7266.c b/drivers/iio/adc/ad7266.c
> index 1d345d66742d..c17d9b5fbaf6 100644
> --- a/drivers/iio/adc/ad7266.c
> +++ b/drivers/iio/adc/ad7266.c
> @@ -479,7 +479,7 @@ static int ad7266_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad7266_remove(struct spi_device *spi)
> +static void ad7266_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad7266_state *st = iio_priv(indio_dev);
> @@ -488,8 +488,6 @@ static int ad7266_remove(struct spi_device *spi)
> iio_triggered_buffer_cleanup(indio_dev);
> if (!IS_ERR(st->reg))
> regulator_disable(st->reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad7266_id[] = {
> diff --git a/drivers/iio/adc/ltc2496.c b/drivers/iio/adc/ltc2496.c
> index dd956a7c216e..5a55f79f2574 100644
> --- a/drivers/iio/adc/ltc2496.c
> +++ b/drivers/iio/adc/ltc2496.c
> @@ -78,13 +78,11 @@ static int ltc2496_probe(struct spi_device *spi)
> return ltc2497core_probe(dev, indio_dev);
> }
>
> -static int ltc2496_remove(struct spi_device *spi)
> +static void ltc2496_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
>
> ltc2497core_remove(indio_dev);
> -
> - return 0;
> }
>
> static const struct of_device_id ltc2496_of_match[] = {
> diff --git a/drivers/iio/adc/mcp320x.c b/drivers/iio/adc/mcp320x.c
> index 8d1cff28cae0..b4c69acb33e3 100644
> --- a/drivers/iio/adc/mcp320x.c
> +++ b/drivers/iio/adc/mcp320x.c
> @@ -459,15 +459,13 @@ static int mcp320x_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mcp320x_remove(struct spi_device *spi)
> +static void mcp320x_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct mcp320x *adc = iio_priv(indio_dev);
>
> iio_device_unregister(indio_dev);
> regulator_disable(adc->reg);
> -
> - return 0;
> }
>
> static const struct of_device_id mcp320x_dt_ids[] = {
> diff --git a/drivers/iio/adc/mcp3911.c b/drivers/iio/adc/mcp3911.c
> index 13535f148c4c..1cb4590fe412 100644
> --- a/drivers/iio/adc/mcp3911.c
> +++ b/drivers/iio/adc/mcp3911.c
> @@ -321,7 +321,7 @@ static int mcp3911_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mcp3911_remove(struct spi_device *spi)
> +static void mcp3911_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct mcp3911 *adc = iio_priv(indio_dev);
> @@ -331,8 +331,6 @@ static int mcp3911_remove(struct spi_device *spi)
> clk_disable_unprepare(adc->clki);
> if (adc->vref)
> regulator_disable(adc->vref);
> -
> - return 0;
> }
>
> static const struct of_device_id mcp3911_dt_ids[] = {
> diff --git a/drivers/iio/adc/ti-adc12138.c b/drivers/iio/adc/ti-adc12138.c
> index 6eb62b564dae..59d75d09604f 100644
> --- a/drivers/iio/adc/ti-adc12138.c
> +++ b/drivers/iio/adc/ti-adc12138.c
> @@ -503,7 +503,7 @@ static int adc12138_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int adc12138_remove(struct spi_device *spi)
> +static void adc12138_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct adc12138 *adc = iio_priv(indio_dev);
> @@ -514,8 +514,6 @@ static int adc12138_remove(struct spi_device *spi)
> regulator_disable(adc->vref_n);
> regulator_disable(adc->vref_p);
> clk_disable_unprepare(adc->cclk);
> -
> - return 0;
> }
>
> static const struct of_device_id adc12138_dt_ids[] = {
> diff --git a/drivers/iio/adc/ti-ads7950.c b/drivers/iio/adc/ti-ads7950.c
> index a7efa3eada2c..e3658b969c5b 100644
> --- a/drivers/iio/adc/ti-ads7950.c
> +++ b/drivers/iio/adc/ti-ads7950.c
> @@ -662,7 +662,7 @@ static int ti_ads7950_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ti_ads7950_remove(struct spi_device *spi)
> +static void ti_ads7950_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ti_ads7950_state *st = iio_priv(indio_dev);
> @@ -672,8 +672,6 @@ static int ti_ads7950_remove(struct spi_device *spi)
> iio_triggered_buffer_cleanup(indio_dev);
> regulator_disable(st->reg);
> mutex_destroy(&st->slock);
> -
> - return 0;
> }
>
> static const struct spi_device_id ti_ads7950_id[] = {
> diff --git a/drivers/iio/adc/ti-ads8688.c b/drivers/iio/adc/ti-ads8688.c
> index 2e24717d7f55..22c2583eedd0 100644
> --- a/drivers/iio/adc/ti-ads8688.c
> +++ b/drivers/iio/adc/ti-ads8688.c
> @@ -479,7 +479,7 @@ static int ads8688_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ads8688_remove(struct spi_device *spi)
> +static void ads8688_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ads8688_state *st = iio_priv(indio_dev);
> @@ -489,8 +489,6 @@ static int ads8688_remove(struct spi_device *spi)
>
> if (!IS_ERR(st->reg))
> regulator_disable(st->reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ads8688_id[] = {
> diff --git a/drivers/iio/adc/ti-tlc4541.c b/drivers/iio/adc/ti-tlc4541.c
> index 403b787f9f7e..2406eda9dfc6 100644
> --- a/drivers/iio/adc/ti-tlc4541.c
> +++ b/drivers/iio/adc/ti-tlc4541.c
> @@ -224,7 +224,7 @@ static int tlc4541_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int tlc4541_remove(struct spi_device *spi)
> +static void tlc4541_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct tlc4541_state *st = iio_priv(indio_dev);
> @@ -232,8 +232,6 @@ static int tlc4541_remove(struct spi_device *spi)
> iio_device_unregister(indio_dev);
> iio_triggered_buffer_cleanup(indio_dev);
> regulator_disable(st->reg);
> -
> - return 0;
> }
>
> static const struct of_device_id tlc4541_dt_ids[] = {
> diff --git a/drivers/iio/amplifiers/ad8366.c b/drivers/iio/amplifiers/ad8366.c
> index cfcf18a0bce8..1134ae12e531 100644
> --- a/drivers/iio/amplifiers/ad8366.c
> +++ b/drivers/iio/amplifiers/ad8366.c
> @@ -298,7 +298,7 @@ static int ad8366_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad8366_remove(struct spi_device *spi)
> +static void ad8366_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad8366_state *st = iio_priv(indio_dev);
> @@ -308,8 +308,6 @@ static int ad8366_remove(struct spi_device *spi)
>
> if (!IS_ERR(reg))
> regulator_disable(reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad8366_id[] = {
> diff --git a/drivers/iio/common/ssp_sensors/ssp_dev.c b/drivers/iio/common/ssp_sensors/ssp_dev.c
> index 1aee87100038..eafaf4529df5 100644
> --- a/drivers/iio/common/ssp_sensors/ssp_dev.c
> +++ b/drivers/iio/common/ssp_sensors/ssp_dev.c
> @@ -586,7 +586,7 @@ static int ssp_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ssp_remove(struct spi_device *spi)
> +static void ssp_remove(struct spi_device *spi)
> {
> struct ssp_data *data = spi_get_drvdata(spi);
>
> @@ -608,8 +608,6 @@ static int ssp_remove(struct spi_device *spi)
> mutex_destroy(&data->pending_lock);
>
> mfd_remove_devices(&spi->dev);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/iio/dac/ad5360.c b/drivers/iio/dac/ad5360.c
> index 2d3b14c407d8..ecbc6a51d60f 100644
> --- a/drivers/iio/dac/ad5360.c
> +++ b/drivers/iio/dac/ad5360.c
> @@ -521,7 +521,7 @@ static int ad5360_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5360_remove(struct spi_device *spi)
> +static void ad5360_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad5360_state *st = iio_priv(indio_dev);
> @@ -531,8 +531,6 @@ static int ad5360_remove(struct spi_device *spi)
> kfree(indio_dev->channels);
>
> regulator_bulk_disable(st->chip_info->num_vrefs, st->vref_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5360_ids[] = {
> diff --git a/drivers/iio/dac/ad5380.c b/drivers/iio/dac/ad5380.c
> index e38860a6a9f3..82e1d9bd773e 100644
> --- a/drivers/iio/dac/ad5380.c
> +++ b/drivers/iio/dac/ad5380.c
> @@ -488,11 +488,9 @@ static int ad5380_spi_probe(struct spi_device *spi)
> return ad5380_probe(&spi->dev, regmap, id->driver_data, id->name);
> }
>
> -static int ad5380_spi_remove(struct spi_device *spi)
> +static void ad5380_spi_remove(struct spi_device *spi)
> {
> ad5380_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5380_spi_ids[] = {
> diff --git a/drivers/iio/dac/ad5446.c b/drivers/iio/dac/ad5446.c
> index 1c9b54c012a7..14cfabacbea5 100644
> --- a/drivers/iio/dac/ad5446.c
> +++ b/drivers/iio/dac/ad5446.c
> @@ -491,11 +491,9 @@ static int ad5446_spi_probe(struct spi_device *spi)
> &ad5446_spi_chip_info[id->driver_data]);
> }
>
> -static int ad5446_spi_remove(struct spi_device *spi)
> +static void ad5446_spi_remove(struct spi_device *spi)
> {
> ad5446_remove(&spi->dev);
> -
> - return 0;
> }
>
> static struct spi_driver ad5446_spi_driver = {
> diff --git a/drivers/iio/dac/ad5449.c b/drivers/iio/dac/ad5449.c
> index f5e93c6acc9d..bad9bdaafa94 100644
> --- a/drivers/iio/dac/ad5449.c
> +++ b/drivers/iio/dac/ad5449.c
> @@ -330,7 +330,7 @@ static int ad5449_spi_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5449_spi_remove(struct spi_device *spi)
> +static void ad5449_spi_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad5449 *st = iio_priv(indio_dev);
> @@ -338,8 +338,6 @@ static int ad5449_spi_remove(struct spi_device *spi)
> iio_device_unregister(indio_dev);
>
> regulator_bulk_disable(st->chip_info->num_channels, st->vref_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5449_spi_ids[] = {
> diff --git a/drivers/iio/dac/ad5504.c b/drivers/iio/dac/ad5504.c
> index b631261efa97..8507573aa13e 100644
> --- a/drivers/iio/dac/ad5504.c
> +++ b/drivers/iio/dac/ad5504.c
> @@ -336,7 +336,7 @@ static int ad5504_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5504_remove(struct spi_device *spi)
> +static void ad5504_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad5504_state *st = iio_priv(indio_dev);
> @@ -345,8 +345,6 @@ static int ad5504_remove(struct spi_device *spi)
>
> if (!IS_ERR(st->reg))
> regulator_disable(st->reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5504_id[] = {
> diff --git a/drivers/iio/dac/ad5592r.c b/drivers/iio/dac/ad5592r.c
> index 6bfd7951e18c..0f7abfa75bec 100644
> --- a/drivers/iio/dac/ad5592r.c
> +++ b/drivers/iio/dac/ad5592r.c
> @@ -130,11 +130,9 @@ static int ad5592r_spi_probe(struct spi_device *spi)
> return ad5592r_probe(&spi->dev, id->name, &ad5592r_rw_ops);
> }
>
> -static int ad5592r_spi_remove(struct spi_device *spi)
> +static void ad5592r_spi_remove(struct spi_device *spi)
> {
> ad5592r_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5592r_spi_ids[] = {
> diff --git a/drivers/iio/dac/ad5624r_spi.c b/drivers/iio/dac/ad5624r_spi.c
> index 3c98941b9f99..371e812850eb 100644
> --- a/drivers/iio/dac/ad5624r_spi.c
> +++ b/drivers/iio/dac/ad5624r_spi.c
> @@ -293,7 +293,7 @@ static int ad5624r_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5624r_remove(struct spi_device *spi)
> +static void ad5624r_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad5624r_state *st = iio_priv(indio_dev);
> @@ -301,8 +301,6 @@ static int ad5624r_remove(struct spi_device *spi)
> iio_device_unregister(indio_dev);
> if (!IS_ERR(st->reg))
> regulator_disable(st->reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5624r_id[] = {
> diff --git a/drivers/iio/dac/ad5686-spi.c b/drivers/iio/dac/ad5686-spi.c
> index 2628810fdbb1..d26fb29b6b04 100644
> --- a/drivers/iio/dac/ad5686-spi.c
> +++ b/drivers/iio/dac/ad5686-spi.c
> @@ -95,11 +95,9 @@ static int ad5686_spi_probe(struct spi_device *spi)
> ad5686_spi_write, ad5686_spi_read);
> }
>
> -static int ad5686_spi_remove(struct spi_device *spi)
> +static void ad5686_spi_remove(struct spi_device *spi)
> {
> ad5686_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5686_spi_id[] = {
> diff --git a/drivers/iio/dac/ad5761.c b/drivers/iio/dac/ad5761.c
> index e37e095e94fc..4cb8471db81e 100644
> --- a/drivers/iio/dac/ad5761.c
> +++ b/drivers/iio/dac/ad5761.c
> @@ -394,7 +394,7 @@ static int ad5761_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5761_remove(struct spi_device *spi)
> +static void ad5761_remove(struct spi_device *spi)
> {
> struct iio_dev *iio_dev = spi_get_drvdata(spi);
> struct ad5761_state *st = iio_priv(iio_dev);
> @@ -403,8 +403,6 @@ static int ad5761_remove(struct spi_device *spi)
>
> if (!IS_ERR_OR_NULL(st->vref_reg))
> regulator_disable(st->vref_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5761_id[] = {
> diff --git a/drivers/iio/dac/ad5764.c b/drivers/iio/dac/ad5764.c
> index ae089b9145cb..d235a8047ba0 100644
> --- a/drivers/iio/dac/ad5764.c
> +++ b/drivers/iio/dac/ad5764.c
> @@ -332,7 +332,7 @@ static int ad5764_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5764_remove(struct spi_device *spi)
> +static void ad5764_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad5764_state *st = iio_priv(indio_dev);
> @@ -341,8 +341,6 @@ static int ad5764_remove(struct spi_device *spi)
>
> if (st->chip_info->int_vref == 0)
> regulator_bulk_disable(ARRAY_SIZE(st->vref_reg), st->vref_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5764_ids[] = {
> diff --git a/drivers/iio/dac/ad5791.c b/drivers/iio/dac/ad5791.c
> index 7b4579d73d18..2b14914b4050 100644
> --- a/drivers/iio/dac/ad5791.c
> +++ b/drivers/iio/dac/ad5791.c
> @@ -428,7 +428,7 @@ static int ad5791_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5791_remove(struct spi_device *spi)
> +static void ad5791_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad5791_state *st = iio_priv(indio_dev);
> @@ -439,8 +439,6 @@ static int ad5791_remove(struct spi_device *spi)
>
> if (!IS_ERR(st->reg_vss))
> regulator_disable(st->reg_vss);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5791_id[] = {
> diff --git a/drivers/iio/dac/ad8801.c b/drivers/iio/dac/ad8801.c
> index 5ecfdad54dec..6be35c92d435 100644
> --- a/drivers/iio/dac/ad8801.c
> +++ b/drivers/iio/dac/ad8801.c
> @@ -193,7 +193,7 @@ static int ad8801_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad8801_remove(struct spi_device *spi)
> +static void ad8801_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad8801_state *state = iio_priv(indio_dev);
> @@ -202,8 +202,6 @@ static int ad8801_remove(struct spi_device *spi)
> if (state->vrefl_reg)
> regulator_disable(state->vrefl_reg);
> regulator_disable(state->vrefh_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad8801_ids[] = {
> diff --git a/drivers/iio/dac/ltc1660.c b/drivers/iio/dac/ltc1660.c
> index f6ec9bf5815e..c76233c9bb72 100644
> --- a/drivers/iio/dac/ltc1660.c
> +++ b/drivers/iio/dac/ltc1660.c
> @@ -206,15 +206,13 @@ static int ltc1660_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ltc1660_remove(struct spi_device *spi)
> +static void ltc1660_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ltc1660_priv *priv = iio_priv(indio_dev);
>
> iio_device_unregister(indio_dev);
> regulator_disable(priv->vref_reg);
> -
> - return 0;
> }
>
> static const struct of_device_id ltc1660_dt_ids[] = {
> diff --git a/drivers/iio/dac/ltc2632.c b/drivers/iio/dac/ltc2632.c
> index 53e4b887d372..aed46c80757e 100644
> --- a/drivers/iio/dac/ltc2632.c
> +++ b/drivers/iio/dac/ltc2632.c
> @@ -372,7 +372,7 @@ static int ltc2632_probe(struct spi_device *spi)
> return iio_device_register(indio_dev);
> }
>
> -static int ltc2632_remove(struct spi_device *spi)
> +static void ltc2632_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ltc2632_state *st = iio_priv(indio_dev);
> @@ -381,8 +381,6 @@ static int ltc2632_remove(struct spi_device *spi)
>
> if (st->vref_reg)
> regulator_disable(st->vref_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ltc2632_id[] = {
> diff --git a/drivers/iio/dac/mcp4922.c b/drivers/iio/dac/mcp4922.c
> index 0ae414ee1716..cb9e60e71b91 100644
> --- a/drivers/iio/dac/mcp4922.c
> +++ b/drivers/iio/dac/mcp4922.c
> @@ -172,7 +172,7 @@ static int mcp4922_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mcp4922_remove(struct spi_device *spi)
> +static void mcp4922_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct mcp4922_state *state;
> @@ -180,8 +180,6 @@ static int mcp4922_remove(struct spi_device *spi)
> iio_device_unregister(indio_dev);
> state = iio_priv(indio_dev);
> regulator_disable(state->vref_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id mcp4922_id[] = {
> diff --git a/drivers/iio/dac/ti-dac082s085.c b/drivers/iio/dac/ti-dac082s085.c
> index 6beda2193683..4e1156e6deb2 100644
> --- a/drivers/iio/dac/ti-dac082s085.c
> +++ b/drivers/iio/dac/ti-dac082s085.c
> @@ -313,7 +313,7 @@ static int ti_dac_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ti_dac_remove(struct spi_device *spi)
> +static void ti_dac_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ti_dac_chip *ti_dac = iio_priv(indio_dev);
> @@ -321,8 +321,6 @@ static int ti_dac_remove(struct spi_device *spi)
> iio_device_unregister(indio_dev);
> mutex_destroy(&ti_dac->lock);
> regulator_disable(ti_dac->vref);
> -
> - return 0;
> }
>
> static const struct of_device_id ti_dac_of_id[] = {
> diff --git a/drivers/iio/dac/ti-dac7311.c b/drivers/iio/dac/ti-dac7311.c
> index 99f275829ec2..e10d17e60ed3 100644
> --- a/drivers/iio/dac/ti-dac7311.c
> +++ b/drivers/iio/dac/ti-dac7311.c
> @@ -292,7 +292,7 @@ static int ti_dac_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ti_dac_remove(struct spi_device *spi)
> +static void ti_dac_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ti_dac_chip *ti_dac = iio_priv(indio_dev);
> @@ -300,7 +300,6 @@ static int ti_dac_remove(struct spi_device *spi)
> iio_device_unregister(indio_dev);
> mutex_destroy(&ti_dac->lock);
> regulator_disable(ti_dac->vref);
> - return 0;
> }
>
> static const struct of_device_id ti_dac_of_id[] = {
> diff --git a/drivers/iio/frequency/adf4350.c b/drivers/iio/frequency/adf4350.c
> index 3d9eba716b69..f3521330f6fb 100644
> --- a/drivers/iio/frequency/adf4350.c
> +++ b/drivers/iio/frequency/adf4350.c
> @@ -589,7 +589,7 @@ static int adf4350_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int adf4350_remove(struct spi_device *spi)
> +static void adf4350_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct adf4350_state *st = iio_priv(indio_dev);
> @@ -604,8 +604,6 @@ static int adf4350_remove(struct spi_device *spi)
>
> if (!IS_ERR(reg))
> regulator_disable(reg);
> -
> - return 0;
> }
>
> static const struct of_device_id adf4350_of_match[] = {
> diff --git a/drivers/iio/gyro/bmg160_spi.c b/drivers/iio/gyro/bmg160_spi.c
> index 745962e1e423..fc2e453527b9 100644
> --- a/drivers/iio/gyro/bmg160_spi.c
> +++ b/drivers/iio/gyro/bmg160_spi.c
> @@ -27,11 +27,9 @@ static int bmg160_spi_probe(struct spi_device *spi)
> return bmg160_core_probe(&spi->dev, regmap, spi->irq, id->name);
> }
>
> -static int bmg160_spi_remove(struct spi_device *spi)
> +static void bmg160_spi_remove(struct spi_device *spi)
> {
> bmg160_core_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id bmg160_spi_id[] = {
> diff --git a/drivers/iio/gyro/fxas21002c_spi.c b/drivers/iio/gyro/fxas21002c_spi.c
> index 77ceebef4e34..c3ac169facf9 100644
> --- a/drivers/iio/gyro/fxas21002c_spi.c
> +++ b/drivers/iio/gyro/fxas21002c_spi.c
> @@ -34,11 +34,9 @@ static int fxas21002c_spi_probe(struct spi_device *spi)
> return fxas21002c_core_probe(&spi->dev, regmap, spi->irq, id->name);
> }
>
> -static int fxas21002c_spi_remove(struct spi_device *spi)
> +static void fxas21002c_spi_remove(struct spi_device *spi)
> {
> fxas21002c_core_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id fxas21002c_spi_id[] = {
> diff --git a/drivers/iio/health/afe4403.c b/drivers/iio/health/afe4403.c
> index 273f16dcaff8..856ec901b091 100644
> --- a/drivers/iio/health/afe4403.c
> +++ b/drivers/iio/health/afe4403.c
> @@ -570,7 +570,7 @@ static int afe4403_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int afe4403_remove(struct spi_device *spi)
> +static void afe4403_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct afe4403_data *afe = iio_priv(indio_dev);
> @@ -586,8 +586,6 @@ static int afe4403_remove(struct spi_device *spi)
> ret = regulator_disable(afe->regulator);
> if (ret)
> dev_warn(afe->dev, "Unable to disable regulator\n");
> -
> - return 0;
> }
>
> static const struct spi_device_id afe4403_ids[] = {
> diff --git a/drivers/iio/magnetometer/bmc150_magn_spi.c b/drivers/iio/magnetometer/bmc150_magn_spi.c
> index c6ed3ea8460a..4c570412d65c 100644
> --- a/drivers/iio/magnetometer/bmc150_magn_spi.c
> +++ b/drivers/iio/magnetometer/bmc150_magn_spi.c
> @@ -29,11 +29,9 @@ static int bmc150_magn_spi_probe(struct spi_device *spi)
> return bmc150_magn_probe(&spi->dev, regmap, spi->irq, id->name);
> }
>
> -static int bmc150_magn_spi_remove(struct spi_device *spi)
> +static void bmc150_magn_spi_remove(struct spi_device *spi)
> {
> bmc150_magn_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id bmc150_magn_spi_id[] = {
> diff --git a/drivers/iio/magnetometer/hmc5843_spi.c b/drivers/iio/magnetometer/hmc5843_spi.c
> index 89cf59a62c28..a99dd9b33e95 100644
> --- a/drivers/iio/magnetometer/hmc5843_spi.c
> +++ b/drivers/iio/magnetometer/hmc5843_spi.c
> @@ -74,11 +74,9 @@ static int hmc5843_spi_probe(struct spi_device *spi)
> id->driver_data, id->name);
> }
>
> -static int hmc5843_spi_remove(struct spi_device *spi)
> +static void hmc5843_spi_remove(struct spi_device *spi)
> {
> hmc5843_common_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id hmc5843_id[] = {
> diff --git a/drivers/iio/potentiometer/max5487.c b/drivers/iio/potentiometer/max5487.c
> index 007c2bd324cb..42723c996c9f 100644
> --- a/drivers/iio/potentiometer/max5487.c
> +++ b/drivers/iio/potentiometer/max5487.c
> @@ -112,7 +112,7 @@ static int max5487_spi_probe(struct spi_device *spi)
> return iio_device_register(indio_dev);
> }
>
> -static int max5487_spi_remove(struct spi_device *spi)
> +static void max5487_spi_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> int ret;
> @@ -123,8 +123,6 @@ static int max5487_spi_remove(struct spi_device *spi)
> ret = max5487_write_cmd(spi, MAX5487_COPY_AB_TO_NV);
> if (ret)
> dev_warn(&spi->dev, "Failed to save wiper regs to NV regs\n");
> -
> - return 0;
> }
>
> static const struct spi_device_id max5487_id[] = {
> diff --git a/drivers/iio/pressure/ms5611_spi.c b/drivers/iio/pressure/ms5611_spi.c
> index 9fa2dcd71760..7ccd960ced5d 100644
> --- a/drivers/iio/pressure/ms5611_spi.c
> +++ b/drivers/iio/pressure/ms5611_spi.c
> @@ -107,11 +107,9 @@ static int ms5611_spi_probe(struct spi_device *spi)
> spi_get_device_id(spi)->driver_data);
> }
>
> -static int ms5611_spi_remove(struct spi_device *spi)
> +static void ms5611_spi_remove(struct spi_device *spi)
> {
> ms5611_remove(spi_get_drvdata(spi));
> -
> - return 0;
> }
>
> static const struct of_device_id ms5611_spi_matches[] = {
> diff --git a/drivers/iio/pressure/zpa2326_spi.c b/drivers/iio/pressure/zpa2326_spi.c
> index 85201a4bae44..ee8ed77536ca 100644
> --- a/drivers/iio/pressure/zpa2326_spi.c
> +++ b/drivers/iio/pressure/zpa2326_spi.c
> @@ -57,11 +57,9 @@ static int zpa2326_probe_spi(struct spi_device *spi)
> spi->irq, ZPA2326_DEVICE_ID, regmap);
> }
>
> -static int zpa2326_remove_spi(struct spi_device *spi)
> +static void zpa2326_remove_spi(struct spi_device *spi)
> {
> zpa2326_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id zpa2326_spi_ids[] = {
> diff --git a/drivers/input/keyboard/applespi.c b/drivers/input/keyboard/applespi.c
> index eda1b23002b5..d1f5354d5ea2 100644
> --- a/drivers/input/keyboard/applespi.c
> +++ b/drivers/input/keyboard/applespi.c
> @@ -1858,7 +1858,7 @@ static void applespi_drain_reads(struct applespi_data *applespi)
> spin_unlock_irqrestore(&applespi->cmd_msg_lock, flags);
> }
>
> -static int applespi_remove(struct spi_device *spi)
> +static void applespi_remove(struct spi_device *spi)
> {
> struct applespi_data *applespi = spi_get_drvdata(spi);
>
> @@ -1871,8 +1871,6 @@ static int applespi_remove(struct spi_device *spi)
> applespi_drain_reads(applespi);
>
> debugfs_remove_recursive(applespi->debugfs_root);
> -
> - return 0;
> }
>
> static void applespi_shutdown(struct spi_device *spi)
> diff --git a/drivers/input/misc/adxl34x-spi.c b/drivers/input/misc/adxl34x-spi.c
> index 6e51c9bc619f..91e44d4c66f7 100644
> --- a/drivers/input/misc/adxl34x-spi.c
> +++ b/drivers/input/misc/adxl34x-spi.c
> @@ -87,13 +87,11 @@ static int adxl34x_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int adxl34x_spi_remove(struct spi_device *spi)
> +static void adxl34x_spi_remove(struct spi_device *spi)
> {
> struct adxl34x *ac = spi_get_drvdata(spi);
>
> adxl34x_remove(ac);
> -
> - return 0;
> }
>
> static int __maybe_unused adxl34x_spi_suspend(struct device *dev)
> diff --git a/drivers/input/touchscreen/ads7846.c b/drivers/input/touchscreen/ads7846.c
> index a25a77dd9a32..bed68a68f330 100644
> --- a/drivers/input/touchscreen/ads7846.c
> +++ b/drivers/input/touchscreen/ads7846.c
> @@ -1411,13 +1411,11 @@ static int ads7846_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ads7846_remove(struct spi_device *spi)
> +static void ads7846_remove(struct spi_device *spi)
> {
> struct ads7846 *ts = spi_get_drvdata(spi);
>
> ads7846_stop(ts);
> -
> - return 0;
> }
>
> static struct spi_driver ads7846_driver = {
> diff --git a/drivers/input/touchscreen/cyttsp4_spi.c b/drivers/input/touchscreen/cyttsp4_spi.c
> index 2aec41eb76b7..5d7db84f2749 100644
> --- a/drivers/input/touchscreen/cyttsp4_spi.c
> +++ b/drivers/input/touchscreen/cyttsp4_spi.c
> @@ -164,12 +164,10 @@ static int cyttsp4_spi_probe(struct spi_device *spi)
> return PTR_ERR_OR_ZERO(ts);
> }
>
> -static int cyttsp4_spi_remove(struct spi_device *spi)
> +static void cyttsp4_spi_remove(struct spi_device *spi)
> {
> struct cyttsp4 *ts = spi_get_drvdata(spi);
> cyttsp4_remove(ts);
> -
> - return 0;
> }
>
> static struct spi_driver cyttsp4_spi_driver = {
> diff --git a/drivers/input/touchscreen/tsc2005.c b/drivers/input/touchscreen/tsc2005.c
> index a2f55920b9b2..555dfe98b3c4 100644
> --- a/drivers/input/touchscreen/tsc2005.c
> +++ b/drivers/input/touchscreen/tsc2005.c
> @@ -64,11 +64,9 @@ static int tsc2005_probe(struct spi_device *spi)
> tsc2005_cmd);
> }
>
> -static int tsc2005_remove(struct spi_device *spi)
> +static void tsc2005_remove(struct spi_device *spi)
> {
> tsc200x_remove(&spi->dev);
> -
> - return 0;
> }
>
> #ifdef CONFIG_OF
> diff --git a/drivers/leds/leds-cr0014114.c b/drivers/leds/leds-cr0014114.c
> index d03cfd3c0bfb..c87686bd7c18 100644
> --- a/drivers/leds/leds-cr0014114.c
> +++ b/drivers/leds/leds-cr0014114.c
> @@ -266,14 +266,12 @@ static int cr0014114_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int cr0014114_remove(struct spi_device *spi)
> +static void cr0014114_remove(struct spi_device *spi)
> {
> struct cr0014114 *priv = spi_get_drvdata(spi);
>
> cancel_delayed_work_sync(&priv->work);
> mutex_destroy(&priv->lock);
> -
> - return 0;
> }
>
> static const struct of_device_id cr0014114_dt_ids[] = {
> diff --git a/drivers/leds/leds-dac124s085.c b/drivers/leds/leds-dac124s085.c
> index 20dc9b9d7dea..cf5fb1195f87 100644
> --- a/drivers/leds/leds-dac124s085.c
> +++ b/drivers/leds/leds-dac124s085.c
> @@ -85,15 +85,13 @@ static int dac124s085_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int dac124s085_remove(struct spi_device *spi)
> +static void dac124s085_remove(struct spi_device *spi)
> {
> struct dac124s085 *dac = spi_get_drvdata(spi);
> int i;
>
> for (i = 0; i < ARRAY_SIZE(dac->leds); i++)
> led_classdev_unregister(&dac->leds[i].ldev);
> -
> - return 0;
> }
>
> static struct spi_driver dac124s085_driver = {
> diff --git a/drivers/leds/leds-el15203000.c b/drivers/leds/leds-el15203000.c
> index f9eb59a25570..7e7b617bcd56 100644
> --- a/drivers/leds/leds-el15203000.c
> +++ b/drivers/leds/leds-el15203000.c
> @@ -315,13 +315,11 @@ static int el15203000_probe(struct spi_device *spi)
> return el15203000_probe_dt(priv);
> }
>
> -static int el15203000_remove(struct spi_device *spi)
> +static void el15203000_remove(struct spi_device *spi)
> {
> struct el15203000 *priv = spi_get_drvdata(spi);
>
> mutex_destroy(&priv->lock);
> -
> - return 0;
> }
>
> static const struct of_device_id el15203000_dt_ids[] = {
> diff --git a/drivers/leds/leds-spi-byte.c b/drivers/leds/leds-spi-byte.c
> index f1964c96fb15..2bc5c99daf51 100644
> --- a/drivers/leds/leds-spi-byte.c
> +++ b/drivers/leds/leds-spi-byte.c
> @@ -130,13 +130,11 @@ static int spi_byte_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int spi_byte_remove(struct spi_device *spi)
> +static void spi_byte_remove(struct spi_device *spi)
> {
> struct spi_byte_led *led = spi_get_drvdata(spi);
>
> mutex_destroy(&led->mutex);
> -
> - return 0;
> }
>
> static struct spi_driver spi_byte_driver = {
> diff --git a/drivers/media/spi/cxd2880-spi.c b/drivers/media/spi/cxd2880-spi.c
> index 6f2a66bc87fb..6be4e5528879 100644
> --- a/drivers/media/spi/cxd2880-spi.c
> +++ b/drivers/media/spi/cxd2880-spi.c
> @@ -625,7 +625,7 @@ cxd2880_spi_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int
> +static void
> cxd2880_spi_remove(struct spi_device *spi)
> {
> struct cxd2880_dvb_spi *dvb_spi = spi_get_drvdata(spi);
> @@ -643,8 +643,6 @@ cxd2880_spi_remove(struct spi_device *spi)
>
> kfree(dvb_spi);
> pr_info("cxd2880_spi remove ok.\n");
> -
> - return 0;
> }
>
> static const struct spi_device_id cxd2880_spi_id[] = {
> diff --git a/drivers/media/spi/gs1662.c b/drivers/media/spi/gs1662.c
> index f86ef1ca1288..75c21a93e6d0 100644
> --- a/drivers/media/spi/gs1662.c
> +++ b/drivers/media/spi/gs1662.c
> @@ -458,13 +458,11 @@ static int gs_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int gs_remove(struct spi_device *spi)
> +static void gs_remove(struct spi_device *spi)
> {
> struct v4l2_subdev *sd = spi_get_drvdata(spi);
>
> v4l2_device_unregister_subdev(sd);
> -
> - return 0;
> }
>
> static struct spi_driver gs_driver = {
> diff --git a/drivers/media/tuners/msi001.c b/drivers/media/tuners/msi001.c
> index 44247049a319..ad6c72c1ed04 100644
> --- a/drivers/media/tuners/msi001.c
> +++ b/drivers/media/tuners/msi001.c
> @@ -472,7 +472,7 @@ static int msi001_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int msi001_remove(struct spi_device *spi)
> +static void msi001_remove(struct spi_device *spi)
> {
> struct v4l2_subdev *sd = spi_get_drvdata(spi);
> struct msi001_dev *dev = sd_to_msi001_dev(sd);
> @@ -486,7 +486,6 @@ static int msi001_remove(struct spi_device *spi)
> v4l2_device_unregister_subdev(&dev->sd);
> v4l2_ctrl_handler_free(&dev->hdl);
> kfree(dev);
> - return 0;
> }
>
> static const struct spi_device_id msi001_id_table[] = {
> diff --git a/drivers/mfd/arizona-spi.c b/drivers/mfd/arizona-spi.c
> index 9fe06dda3782..03620c8efe34 100644
> --- a/drivers/mfd/arizona-spi.c
> +++ b/drivers/mfd/arizona-spi.c
> @@ -206,13 +206,11 @@ static int arizona_spi_probe(struct spi_device *spi)
> return arizona_dev_init(arizona);
> }
>
> -static int arizona_spi_remove(struct spi_device *spi)
> +static void arizona_spi_remove(struct spi_device *spi)
> {
> struct arizona *arizona = spi_get_drvdata(spi);
>
> arizona_dev_exit(arizona);
> -
> - return 0;
> }
>
> static const struct spi_device_id arizona_spi_ids[] = {
> diff --git a/drivers/mfd/da9052-spi.c b/drivers/mfd/da9052-spi.c
> index 5faf3766a5e2..b79a57b45c1e 100644
> --- a/drivers/mfd/da9052-spi.c
> +++ b/drivers/mfd/da9052-spi.c
> @@ -55,12 +55,11 @@ static int da9052_spi_probe(struct spi_device *spi)
> return da9052_device_init(da9052, id->driver_data);
> }
>
> -static int da9052_spi_remove(struct spi_device *spi)
> +static void da9052_spi_remove(struct spi_device *spi)
> {
> struct da9052 *da9052 = spi_get_drvdata(spi);
>
> da9052_device_exit(da9052);
> - return 0;
> }
>
> static const struct spi_device_id da9052_spi_id[] = {
> diff --git a/drivers/mfd/ezx-pcap.c b/drivers/mfd/ezx-pcap.c
> index 70fa18b04ad2..2280f756f422 100644
> --- a/drivers/mfd/ezx-pcap.c
> +++ b/drivers/mfd/ezx-pcap.c
> @@ -392,7 +392,7 @@ static int pcap_add_subdev(struct pcap_chip *pcap,
> return ret;
> }
>
> -static int ezx_pcap_remove(struct spi_device *spi)
> +static void ezx_pcap_remove(struct spi_device *spi)
> {
> struct pcap_chip *pcap = spi_get_drvdata(spi);
> unsigned long flags;
> @@ -412,8 +412,6 @@ static int ezx_pcap_remove(struct spi_device *spi)
> irq_set_chip_and_handler(i, NULL, NULL);
>
> destroy_workqueue(pcap->workqueue);
> -
> - return 0;
> }
>
> static int ezx_pcap_probe(struct spi_device *spi)
> diff --git a/drivers/mfd/madera-spi.c b/drivers/mfd/madera-spi.c
> index e860f5ff0933..da84eb50e53a 100644
> --- a/drivers/mfd/madera-spi.c
> +++ b/drivers/mfd/madera-spi.c
> @@ -112,13 +112,11 @@ static int madera_spi_probe(struct spi_device *spi)
> return madera_dev_init(madera);
> }
>
> -static int madera_spi_remove(struct spi_device *spi)
> +static void madera_spi_remove(struct spi_device *spi)
> {
> struct madera *madera = spi_get_drvdata(spi);
>
> madera_dev_exit(madera);
> -
> - return 0;
> }
>
> static const struct spi_device_id madera_spi_ids[] = {
> diff --git a/drivers/mfd/mc13xxx-spi.c b/drivers/mfd/mc13xxx-spi.c
> index 4d8913d647e6..f803527e5819 100644
> --- a/drivers/mfd/mc13xxx-spi.c
> +++ b/drivers/mfd/mc13xxx-spi.c
> @@ -166,10 +166,9 @@ static int mc13xxx_spi_probe(struct spi_device *spi)
> return mc13xxx_common_init(&spi->dev);
> }
>
> -static int mc13xxx_spi_remove(struct spi_device *spi)
> +static void mc13xxx_spi_remove(struct spi_device *spi)
> {
> mc13xxx_common_exit(&spi->dev);
> - return 0;
> }
>
> static struct spi_driver mc13xxx_spi_driver = {
> diff --git a/drivers/mfd/rsmu_spi.c b/drivers/mfd/rsmu_spi.c
> index fec2b4ec477c..d2f3d8f1e05a 100644
> --- a/drivers/mfd/rsmu_spi.c
> +++ b/drivers/mfd/rsmu_spi.c
> @@ -220,13 +220,11 @@ static int rsmu_spi_probe(struct spi_device *client)
> return rsmu_core_init(rsmu);
> }
>
> -static int rsmu_spi_remove(struct spi_device *client)
> +static void rsmu_spi_remove(struct spi_device *client)
> {
> struct rsmu_ddata *rsmu = spi_get_drvdata(client);
>
> rsmu_core_exit(rsmu);
> -
> - return 0;
> }
>
> static const struct spi_device_id rsmu_spi_id[] = {
> diff --git a/drivers/mfd/stmpe-spi.c b/drivers/mfd/stmpe-spi.c
> index 6c5915016be5..ad8055a0e286 100644
> --- a/drivers/mfd/stmpe-spi.c
> +++ b/drivers/mfd/stmpe-spi.c
> @@ -102,13 +102,11 @@ stmpe_spi_probe(struct spi_device *spi)
> return stmpe_probe(&spi_ci, id->driver_data);
> }
>
> -static int stmpe_spi_remove(struct spi_device *spi)
> +static void stmpe_spi_remove(struct spi_device *spi)
> {
> struct stmpe *stmpe = spi_get_drvdata(spi);
>
> stmpe_remove(stmpe);
> -
> - return 0;
> }
>
> static const struct of_device_id stmpe_spi_of_match[] = {
> diff --git a/drivers/mfd/tps65912-spi.c b/drivers/mfd/tps65912-spi.c
> index d701926aa46e..bba38fbc781d 100644
> --- a/drivers/mfd/tps65912-spi.c
> +++ b/drivers/mfd/tps65912-spi.c
> @@ -50,13 +50,11 @@ static int tps65912_spi_probe(struct spi_device *spi)
> return tps65912_device_init(tps);
> }
>
> -static int tps65912_spi_remove(struct spi_device *spi)
> +static void tps65912_spi_remove(struct spi_device *spi)
> {
> struct tps65912 *tps = spi_get_drvdata(spi);
>
> tps65912_device_exit(tps);
> -
> - return 0;
> }
>
> static const struct spi_device_id tps65912_spi_id_table[] = {
> diff --git a/drivers/misc/ad525x_dpot-spi.c b/drivers/misc/ad525x_dpot-spi.c
> index a9e75d80ad36..263055bda48b 100644
> --- a/drivers/misc/ad525x_dpot-spi.c
> +++ b/drivers/misc/ad525x_dpot-spi.c
> @@ -90,10 +90,9 @@ static int ad_dpot_spi_probe(struct spi_device *spi)
> spi_get_device_id(spi)->name);
> }
>
> -static int ad_dpot_spi_remove(struct spi_device *spi)
> +static void ad_dpot_spi_remove(struct spi_device *spi)
> {
> ad_dpot_remove(&spi->dev);
> - return 0;
> }
>
> static const struct spi_device_id ad_dpot_spi_id[] = {
> diff --git a/drivers/misc/eeprom/eeprom_93xx46.c b/drivers/misc/eeprom/eeprom_93xx46.c
> index 1f15399e5cb4..b630625b3024 100644
> --- a/drivers/misc/eeprom/eeprom_93xx46.c
> +++ b/drivers/misc/eeprom/eeprom_93xx46.c
> @@ -555,14 +555,12 @@ static int eeprom_93xx46_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int eeprom_93xx46_remove(struct spi_device *spi)
> +static void eeprom_93xx46_remove(struct spi_device *spi)
> {
> struct eeprom_93xx46_dev *edev = spi_get_drvdata(spi);
>
> if (!(edev->pdata->flags & EE_READONLY))
> device_remove_file(&spi->dev, &dev_attr_erase);
> -
> - return 0;
> }
>
> static struct spi_driver eeprom_93xx46_driver = {
> diff --git a/drivers/misc/lattice-ecp3-config.c b/drivers/misc/lattice-ecp3-config.c
> index 98828030b5a4..bac4df2e5231 100644
> --- a/drivers/misc/lattice-ecp3-config.c
> +++ b/drivers/misc/lattice-ecp3-config.c
> @@ -211,13 +211,11 @@ static int lattice_ecp3_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int lattice_ecp3_remove(struct spi_device *spi)
> +static void lattice_ecp3_remove(struct spi_device *spi)
> {
> struct fpga_data *data = spi_get_drvdata(spi);
>
> wait_for_completion(&data->fw_loaded);
> -
> - return 0;
> }
>
> static const struct spi_device_id lattice_ecp3_id[] = {
> diff --git a/drivers/misc/lis3lv02d/lis3lv02d_spi.c b/drivers/misc/lis3lv02d/lis3lv02d_spi.c
> index 9e40dfb60742..203a108b8883 100644
> --- a/drivers/misc/lis3lv02d/lis3lv02d_spi.c
> +++ b/drivers/misc/lis3lv02d/lis3lv02d_spi.c
> @@ -96,15 +96,13 @@ static int lis302dl_spi_probe(struct spi_device *spi)
> return lis3lv02d_init_device(&lis3_dev);
> }
>
> -static int lis302dl_spi_remove(struct spi_device *spi)
> +static void lis302dl_spi_remove(struct spi_device *spi)
> {
> struct lis3lv02d *lis3 = spi_get_drvdata(spi);
> lis3lv02d_joystick_disable(lis3);
> lis3lv02d_poweroff(lis3);
>
> lis3lv02d_remove_fs(&lis3_dev);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/mmc/host/mmc_spi.c b/drivers/mmc/host/mmc_spi.c
> index a576181e9db0..106dd204b1a7 100644
> --- a/drivers/mmc/host/mmc_spi.c
> +++ b/drivers/mmc/host/mmc_spi.c
> @@ -1489,7 +1489,7 @@ static int mmc_spi_probe(struct spi_device *spi)
> }
>
>
> -static int mmc_spi_remove(struct spi_device *spi)
> +static void mmc_spi_remove(struct spi_device *spi)
> {
> struct mmc_host *mmc = dev_get_drvdata(&spi->dev);
> struct mmc_spi_host *host = mmc_priv(mmc);
> @@ -1507,7 +1507,6 @@ static int mmc_spi_remove(struct spi_device *spi)
> spi->max_speed_hz = mmc->f_max;
> mmc_spi_put_pdata(spi);
> mmc_free_host(mmc);
> - return 0;
> }
>
> static const struct spi_device_id mmc_spi_dev_ids[] = {
> diff --git a/drivers/mtd/devices/mchp23k256.c b/drivers/mtd/devices/mchp23k256.c
> index a8b31bddf14b..008df9d8898d 100644
> --- a/drivers/mtd/devices/mchp23k256.c
> +++ b/drivers/mtd/devices/mchp23k256.c
> @@ -209,13 +209,11 @@ static int mchp23k256_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int mchp23k256_remove(struct spi_device *spi)
> +static void mchp23k256_remove(struct spi_device *spi)
> {
> struct mchp23k256_flash *flash = spi_get_drvdata(spi);
>
> WARN_ON(mtd_device_unregister(&flash->mtd));
> -
> - return 0;
> }
>
> static const struct of_device_id mchp23k256_of_table[] = {
> diff --git a/drivers/mtd/devices/mchp48l640.c b/drivers/mtd/devices/mchp48l640.c
> index 231a10790196..a3fd426df74b 100644
> --- a/drivers/mtd/devices/mchp48l640.c
> +++ b/drivers/mtd/devices/mchp48l640.c
> @@ -341,13 +341,11 @@ static int mchp48l640_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int mchp48l640_remove(struct spi_device *spi)
> +static void mchp48l640_remove(struct spi_device *spi)
> {
> struct mchp48l640_flash *flash = spi_get_drvdata(spi);
>
> WARN_ON(mtd_device_unregister(&flash->mtd));
> -
> - return 0;
> }
>
> static const struct of_device_id mchp48l640_of_table[] = {
> diff --git a/drivers/mtd/devices/mtd_dataflash.c b/drivers/mtd/devices/mtd_dataflash.c
> index 734878abaa23..134e27328597 100644
> --- a/drivers/mtd/devices/mtd_dataflash.c
> +++ b/drivers/mtd/devices/mtd_dataflash.c
> @@ -916,7 +916,7 @@ static int dataflash_probe(struct spi_device *spi)
> return status;
> }
>
> -static int dataflash_remove(struct spi_device *spi)
> +static void dataflash_remove(struct spi_device *spi)
> {
> struct dataflash *flash = spi_get_drvdata(spi);
>
> @@ -925,8 +925,6 @@ static int dataflash_remove(struct spi_device *spi)
> WARN_ON(mtd_device_unregister(&flash->mtd));
>
> kfree(flash);
> -
> - return 0;
> }
>
> static struct spi_driver dataflash_driver = {
> diff --git a/drivers/mtd/devices/sst25l.c b/drivers/mtd/devices/sst25l.c
> index 7f124c1bfa40..8813994ce9f4 100644
> --- a/drivers/mtd/devices/sst25l.c
> +++ b/drivers/mtd/devices/sst25l.c
> @@ -398,13 +398,11 @@ static int sst25l_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int sst25l_remove(struct spi_device *spi)
> +static void sst25l_remove(struct spi_device *spi)
> {
> struct sst25l_flash *flash = spi_get_drvdata(spi);
>
> WARN_ON(mtd_device_unregister(&flash->mtd));
> -
> - return 0;
> }
>
> static struct spi_driver sst25l_driver = {
> diff --git a/drivers/net/can/m_can/tcan4x5x-core.c b/drivers/net/can/m_can/tcan4x5x-core.c
> index 04687b15b250..41645a24384c 100644
> --- a/drivers/net/can/m_can/tcan4x5x-core.c
> +++ b/drivers/net/can/m_can/tcan4x5x-core.c
> @@ -388,7 +388,7 @@ static int tcan4x5x_can_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int tcan4x5x_can_remove(struct spi_device *spi)
> +static void tcan4x5x_can_remove(struct spi_device *spi)
> {
> struct tcan4x5x_priv *priv = spi_get_drvdata(spi);
>
> @@ -397,8 +397,6 @@ static int tcan4x5x_can_remove(struct spi_device *spi)
> tcan4x5x_power_enable(priv->power, 0);
>
> m_can_class_free_dev(priv->cdev.net);
> -
> - return 0;
> }
>
> static const struct of_device_id tcan4x5x_of_match[] = {
> diff --git a/drivers/net/can/spi/hi311x.c b/drivers/net/can/spi/hi311x.c
> index cfcc14fe3e42..664b8f14d7b0 100644
> --- a/drivers/net/can/spi/hi311x.c
> +++ b/drivers/net/can/spi/hi311x.c
> @@ -948,7 +948,7 @@ static int hi3110_can_probe(struct spi_device *spi)
> return dev_err_probe(dev, ret, "Probe failed\n");
> }
>
> -static int hi3110_can_remove(struct spi_device *spi)
> +static void hi3110_can_remove(struct spi_device *spi)
> {
> struct hi3110_priv *priv = spi_get_drvdata(spi);
> struct net_device *net = priv->net;
> @@ -960,8 +960,6 @@ static int hi3110_can_remove(struct spi_device *spi)
> clk_disable_unprepare(priv->clk);
>
> free_candev(net);
> -
> - return 0;
> }
>
> static int __maybe_unused hi3110_can_suspend(struct device *dev)
> diff --git a/drivers/net/can/spi/mcp251x.c b/drivers/net/can/spi/mcp251x.c
> index 025e07cb7439..d23edaf22420 100644
> --- a/drivers/net/can/spi/mcp251x.c
> +++ b/drivers/net/can/spi/mcp251x.c
> @@ -1427,7 +1427,7 @@ static int mcp251x_can_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mcp251x_can_remove(struct spi_device *spi)
> +static void mcp251x_can_remove(struct spi_device *spi)
> {
> struct mcp251x_priv *priv = spi_get_drvdata(spi);
> struct net_device *net = priv->net;
> @@ -1442,8 +1442,6 @@ static int mcp251x_can_remove(struct spi_device *spi)
> clk_disable_unprepare(priv->clk);
>
> free_candev(net);
> -
> - return 0;
> }
>
> static int __maybe_unused mcp251x_can_suspend(struct device *dev)
> diff --git a/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c b/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
> index b5986df6eca0..65c9b31666a6 100644
> --- a/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
> +++ b/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
> @@ -1966,7 +1966,7 @@ static int mcp251xfd_probe(struct spi_device *spi)
> return err;
> }
>
> -static int mcp251xfd_remove(struct spi_device *spi)
> +static void mcp251xfd_remove(struct spi_device *spi)
> {
> struct mcp251xfd_priv *priv = spi_get_drvdata(spi);
> struct net_device *ndev = priv->ndev;
> @@ -1975,8 +1975,6 @@ static int mcp251xfd_remove(struct spi_device *spi)
> mcp251xfd_unregister(priv);
> spi->max_speed_hz = priv->spi_max_speed_hz_orig;
> free_candev(ndev);
> -
> - return 0;
> }
>
> static int __maybe_unused mcp251xfd_runtime_suspend(struct device *device)
> diff --git a/drivers/net/dsa/b53/b53_spi.c b/drivers/net/dsa/b53/b53_spi.c
> index 2b88f03e5252..0e54b2a0c211 100644
> --- a/drivers/net/dsa/b53/b53_spi.c
> +++ b/drivers/net/dsa/b53/b53_spi.c
> @@ -314,7 +314,7 @@ static int b53_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int b53_spi_remove(struct spi_device *spi)
> +static void b53_spi_remove(struct spi_device *spi)
> {
> struct b53_device *dev = spi_get_drvdata(spi);
>
> @@ -322,8 +322,6 @@ static int b53_spi_remove(struct spi_device *spi)
> b53_switch_remove(dev);
>
> spi_set_drvdata(spi, NULL);
> -
> - return 0;
> }
>
> static void b53_spi_shutdown(struct spi_device *spi)
> diff --git a/drivers/net/dsa/microchip/ksz8795_spi.c b/drivers/net/dsa/microchip/ksz8795_spi.c
> index 866767b70d65..673589dc88ab 100644
> --- a/drivers/net/dsa/microchip/ksz8795_spi.c
> +++ b/drivers/net/dsa/microchip/ksz8795_spi.c
> @@ -87,7 +87,7 @@ static int ksz8795_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ksz8795_spi_remove(struct spi_device *spi)
> +static void ksz8795_spi_remove(struct spi_device *spi)
> {
> struct ksz_device *dev = spi_get_drvdata(spi);
>
> @@ -95,8 +95,6 @@ static int ksz8795_spi_remove(struct spi_device *spi)
> ksz_switch_remove(dev);
>
> spi_set_drvdata(spi, NULL);
> -
> - return 0;
> }
>
> static void ksz8795_spi_shutdown(struct spi_device *spi)
> diff --git a/drivers/net/dsa/microchip/ksz9477_spi.c b/drivers/net/dsa/microchip/ksz9477_spi.c
> index e3cb0e6c9f6f..940bb9665f15 100644
> --- a/drivers/net/dsa/microchip/ksz9477_spi.c
> +++ b/drivers/net/dsa/microchip/ksz9477_spi.c
> @@ -65,7 +65,7 @@ static int ksz9477_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ksz9477_spi_remove(struct spi_device *spi)
> +static void ksz9477_spi_remove(struct spi_device *spi)
> {
> struct ksz_device *dev = spi_get_drvdata(spi);
>
> @@ -73,8 +73,6 @@ static int ksz9477_spi_remove(struct spi_device *spi)
> ksz_switch_remove(dev);
>
> spi_set_drvdata(spi, NULL);
> -
> - return 0;
> }
>
> static void ksz9477_spi_shutdown(struct spi_device *spi)
> diff --git a/drivers/net/dsa/sja1105/sja1105_main.c b/drivers/net/dsa/sja1105/sja1105_main.c
> index b513713be610..c2a47c6693b8 100644
> --- a/drivers/net/dsa/sja1105/sja1105_main.c
> +++ b/drivers/net/dsa/sja1105/sja1105_main.c
> @@ -3346,18 +3346,16 @@ static int sja1105_probe(struct spi_device *spi)
> return dsa_register_switch(priv->ds);
> }
>
> -static int sja1105_remove(struct spi_device *spi)
> +static void sja1105_remove(struct spi_device *spi)
> {
> struct sja1105_private *priv = spi_get_drvdata(spi);
>
> if (!priv)
> - return 0;
> + return;
>
> dsa_unregister_switch(priv->ds);
>
> spi_set_drvdata(spi, NULL);
> -
> - return 0;
> }
>
> static void sja1105_shutdown(struct spi_device *spi)
> diff --git a/drivers/net/dsa/vitesse-vsc73xx-spi.c b/drivers/net/dsa/vitesse-vsc73xx-spi.c
> index 645398901e05..3110895358d8 100644
> --- a/drivers/net/dsa/vitesse-vsc73xx-spi.c
> +++ b/drivers/net/dsa/vitesse-vsc73xx-spi.c
> @@ -159,18 +159,16 @@ static int vsc73xx_spi_probe(struct spi_device *spi)
> return vsc73xx_probe(&vsc_spi->vsc);
> }
>
> -static int vsc73xx_spi_remove(struct spi_device *spi)
> +static void vsc73xx_spi_remove(struct spi_device *spi)
> {
> struct vsc73xx_spi *vsc_spi = spi_get_drvdata(spi);
>
> if (!vsc_spi)
> - return 0;
> + return;
>
> vsc73xx_remove(&vsc_spi->vsc);
>
> spi_set_drvdata(spi, NULL);
> -
> - return 0;
> }
>
> static void vsc73xx_spi_shutdown(struct spi_device *spi)
> diff --git a/drivers/net/ethernet/asix/ax88796c_main.c b/drivers/net/ethernet/asix/ax88796c_main.c
> index e7a9f9863258..bf70481bb1ca 100644
> --- a/drivers/net/ethernet/asix/ax88796c_main.c
> +++ b/drivers/net/ethernet/asix/ax88796c_main.c
> @@ -1102,7 +1102,7 @@ static int ax88796c_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ax88796c_remove(struct spi_device *spi)
> +static void ax88796c_remove(struct spi_device *spi)
> {
> struct ax88796c_device *ax_local = dev_get_drvdata(&spi->dev);
> struct net_device *ndev = ax_local->ndev;
> @@ -1112,8 +1112,6 @@ static int ax88796c_remove(struct spi_device *spi)
> netif_info(ax_local, probe, ndev, "removing network device %s %s\n",
> dev_driver_string(&spi->dev),
> dev_name(&spi->dev));
> -
> - return 0;
> }
>
> #ifdef CONFIG_OF
> diff --git a/drivers/net/ethernet/micrel/ks8851_spi.c b/drivers/net/ethernet/micrel/ks8851_spi.c
> index 0303e727e99f..d167d93e4c12 100644
> --- a/drivers/net/ethernet/micrel/ks8851_spi.c
> +++ b/drivers/net/ethernet/micrel/ks8851_spi.c
> @@ -452,11 +452,9 @@ static int ks8851_probe_spi(struct spi_device *spi)
> return ks8851_probe_common(netdev, dev, msg_enable);
> }
>
> -static int ks8851_remove_spi(struct spi_device *spi)
> +static void ks8851_remove_spi(struct spi_device *spi)
> {
> ks8851_remove_common(&spi->dev);
> -
> - return 0;
> }
>
> static const struct of_device_id ks8851_match_table[] = {
> diff --git a/drivers/net/ethernet/microchip/enc28j60.c b/drivers/net/ethernet/microchip/enc28j60.c
> index 634ac7649c43..db5a3edb4c3c 100644
> --- a/drivers/net/ethernet/microchip/enc28j60.c
> +++ b/drivers/net/ethernet/microchip/enc28j60.c
> @@ -1612,15 +1612,13 @@ static int enc28j60_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int enc28j60_remove(struct spi_device *spi)
> +static void enc28j60_remove(struct spi_device *spi)
> {
> struct enc28j60_net *priv = spi_get_drvdata(spi);
>
> unregister_netdev(priv->netdev);
> free_irq(spi->irq, priv);
> free_netdev(priv->netdev);
> -
> - return 0;
> }
>
> static const struct of_device_id enc28j60_dt_ids[] = {
> diff --git a/drivers/net/ethernet/microchip/encx24j600.c b/drivers/net/ethernet/microchip/encx24j600.c
> index b90efc80fb59..dc1840cb5b10 100644
> --- a/drivers/net/ethernet/microchip/encx24j600.c
> +++ b/drivers/net/ethernet/microchip/encx24j600.c
> @@ -1093,7 +1093,7 @@ static int encx24j600_spi_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int encx24j600_spi_remove(struct spi_device *spi)
> +static void encx24j600_spi_remove(struct spi_device *spi)
> {
> struct encx24j600_priv *priv = dev_get_drvdata(&spi->dev);
>
> @@ -1101,8 +1101,6 @@ static int encx24j600_spi_remove(struct spi_device *spi)
> kthread_stop(priv->kworker_task);
>
> free_netdev(priv->ndev);
> -
> - return 0;
> }
>
> static const struct spi_device_id encx24j600_spi_id_table[] = {
> diff --git a/drivers/net/ethernet/qualcomm/qca_spi.c b/drivers/net/ethernet/qualcomm/qca_spi.c
> index 955cce644392..3c5494afd3c0 100644
> --- a/drivers/net/ethernet/qualcomm/qca_spi.c
> +++ b/drivers/net/ethernet/qualcomm/qca_spi.c
> @@ -1001,7 +1001,7 @@ qca_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int
> +static void
> qca_spi_remove(struct spi_device *spi)
> {
> struct net_device *qcaspi_devs = spi_get_drvdata(spi);
> @@ -1011,8 +1011,6 @@ qca_spi_remove(struct spi_device *spi)
>
> unregister_netdev(qcaspi_devs);
> free_netdev(qcaspi_devs);
> -
> - return 0;
> }
>
> static const struct spi_device_id qca_spi_id[] = {
> diff --git a/drivers/net/ethernet/vertexcom/mse102x.c b/drivers/net/ethernet/vertexcom/mse102x.c
> index 89a31783fbb4..25739b182ac7 100644
> --- a/drivers/net/ethernet/vertexcom/mse102x.c
> +++ b/drivers/net/ethernet/vertexcom/mse102x.c
> @@ -731,7 +731,7 @@ static int mse102x_probe_spi(struct spi_device *spi)
> return 0;
> }
>
> -static int mse102x_remove_spi(struct spi_device *spi)
> +static void mse102x_remove_spi(struct spi_device *spi)
> {
> struct mse102x_net *mse = dev_get_drvdata(&spi->dev);
> struct mse102x_net_spi *mses = to_mse102x_spi(mse);
> @@ -741,8 +741,6 @@ static int mse102x_remove_spi(struct spi_device *spi)
>
> mse102x_remove_device_debugfs(mses);
> unregister_netdev(mse->ndev);
> -
> - return 0;
> }
>
> static const struct of_device_id mse102x_match_table[] = {
> diff --git a/drivers/net/ethernet/wiznet/w5100-spi.c b/drivers/net/ethernet/wiznet/w5100-spi.c
> index 7779a36da3c8..7c52796273a4 100644
> --- a/drivers/net/ethernet/wiznet/w5100-spi.c
> +++ b/drivers/net/ethernet/wiznet/w5100-spi.c
> @@ -461,11 +461,9 @@ static int w5100_spi_probe(struct spi_device *spi)
> return w5100_probe(&spi->dev, ops, priv_size, mac, spi->irq, -EINVAL);
> }
>
> -static int w5100_spi_remove(struct spi_device *spi)
> +static void w5100_spi_remove(struct spi_device *spi)
> {
> w5100_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id w5100_spi_ids[] = {
> diff --git a/drivers/net/ieee802154/adf7242.c b/drivers/net/ieee802154/adf7242.c
> index 7db9cbd0f5de..6afdf1622944 100644
> --- a/drivers/net/ieee802154/adf7242.c
> +++ b/drivers/net/ieee802154/adf7242.c
> @@ -1304,7 +1304,7 @@ static int adf7242_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int adf7242_remove(struct spi_device *spi)
> +static void adf7242_remove(struct spi_device *spi)
> {
> struct adf7242_local *lp = spi_get_drvdata(spi);
>
> @@ -1316,8 +1316,6 @@ static int adf7242_remove(struct spi_device *spi)
> ieee802154_unregister_hw(lp->hw);
> mutex_destroy(&lp->bmux);
> ieee802154_free_hw(lp->hw);
> -
> - return 0;
> }
>
> static const struct of_device_id adf7242_of_match[] = {
> diff --git a/drivers/net/ieee802154/at86rf230.c b/drivers/net/ieee802154/at86rf230.c
> index 7d67f41387f5..a4734323dc29 100644
> --- a/drivers/net/ieee802154/at86rf230.c
> +++ b/drivers/net/ieee802154/at86rf230.c
> @@ -1759,7 +1759,7 @@ static int at86rf230_probe(struct spi_device *spi)
> return rc;
> }
>
> -static int at86rf230_remove(struct spi_device *spi)
> +static void at86rf230_remove(struct spi_device *spi)
> {
> struct at86rf230_local *lp = spi_get_drvdata(spi);
>
> @@ -1769,8 +1769,6 @@ static int at86rf230_remove(struct spi_device *spi)
> ieee802154_free_hw(lp->hw);
> at86rf230_debugfs_remove();
> dev_dbg(&spi->dev, "unregistered at86rf230\n");
> -
> - return 0;
> }
>
> static const struct of_device_id at86rf230_of_match[] = {
> diff --git a/drivers/net/ieee802154/ca8210.c b/drivers/net/ieee802154/ca8210.c
> index ece6ff6049f6..b499bbe4d48f 100644
> --- a/drivers/net/ieee802154/ca8210.c
> +++ b/drivers/net/ieee802154/ca8210.c
> @@ -831,7 +831,7 @@ static void ca8210_rx_done(struct cas_control *cas_ctl)
> finish:;
> }
>
> -static int ca8210_remove(struct spi_device *spi_device);
> +static void ca8210_remove(struct spi_device *spi_device);
>
> /**
> * ca8210_spi_transfer_complete() - Called when a single spi transfer has
> @@ -3048,7 +3048,7 @@ static void ca8210_test_interface_clear(struct ca8210_priv *priv)
> *
> * Return: 0 or linux error code
> */
> -static int ca8210_remove(struct spi_device *spi_device)
> +static void ca8210_remove(struct spi_device *spi_device)
> {
> struct ca8210_priv *priv;
> struct ca8210_platform_data *pdata;
> @@ -3088,8 +3088,6 @@ static int ca8210_remove(struct spi_device *spi_device)
> if (IS_ENABLED(CONFIG_IEEE802154_CA8210_DEBUGFS))
> ca8210_test_interface_clear(priv);
> }
> -
> - return 0;
> }
>
> /**
> diff --git a/drivers/net/ieee802154/cc2520.c b/drivers/net/ieee802154/cc2520.c
> index 89c046b204e0..1e1f40f628a0 100644
> --- a/drivers/net/ieee802154/cc2520.c
> +++ b/drivers/net/ieee802154/cc2520.c
> @@ -1213,7 +1213,7 @@ static int cc2520_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int cc2520_remove(struct spi_device *spi)
> +static void cc2520_remove(struct spi_device *spi)
> {
> struct cc2520_private *priv = spi_get_drvdata(spi);
>
> @@ -1222,8 +1222,6 @@ static int cc2520_remove(struct spi_device *spi)
>
> ieee802154_unregister_hw(priv->hw);
> ieee802154_free_hw(priv->hw);
> -
> - return 0;
> }
>
> static const struct spi_device_id cc2520_ids[] = {
> diff --git a/drivers/net/ieee802154/mcr20a.c b/drivers/net/ieee802154/mcr20a.c
> index 8dc04e2590b1..a3af52a8e6dd 100644
> --- a/drivers/net/ieee802154/mcr20a.c
> +++ b/drivers/net/ieee802154/mcr20a.c
> @@ -1335,7 +1335,7 @@ mcr20a_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mcr20a_remove(struct spi_device *spi)
> +static void mcr20a_remove(struct spi_device *spi)
> {
> struct mcr20a_local *lp = spi_get_drvdata(spi);
>
> @@ -1343,8 +1343,6 @@ static int mcr20a_remove(struct spi_device *spi)
>
> ieee802154_unregister_hw(lp->hw);
> ieee802154_free_hw(lp->hw);
> -
> - return 0;
> }
>
> static const struct of_device_id mcr20a_of_match[] = {
> diff --git a/drivers/net/ieee802154/mrf24j40.c b/drivers/net/ieee802154/mrf24j40.c
> index ff83e00b77af..ee4cfbf2c5cc 100644
> --- a/drivers/net/ieee802154/mrf24j40.c
> +++ b/drivers/net/ieee802154/mrf24j40.c
> @@ -1356,7 +1356,7 @@ static int mrf24j40_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mrf24j40_remove(struct spi_device *spi)
> +static void mrf24j40_remove(struct spi_device *spi)
> {
> struct mrf24j40 *devrec = spi_get_drvdata(spi);
>
> @@ -1366,8 +1366,6 @@ static int mrf24j40_remove(struct spi_device *spi)
> ieee802154_free_hw(devrec->hw);
> /* TODO: Will ieee802154_free_device() wait until ->xmit() is
> * complete? */
> -
> - return 0;
> }
>
> static const struct of_device_id mrf24j40_of_match[] = {
> diff --git a/drivers/net/phy/spi_ks8995.c b/drivers/net/phy/spi_ks8995.c
> index 8b5445a724ce..ff37f8ba6758 100644
> --- a/drivers/net/phy/spi_ks8995.c
> +++ b/drivers/net/phy/spi_ks8995.c
> @@ -517,7 +517,7 @@ static int ks8995_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ks8995_remove(struct spi_device *spi)
> +static void ks8995_remove(struct spi_device *spi)
> {
> struct ks8995_switch *ks = spi_get_drvdata(spi);
>
> @@ -526,8 +526,6 @@ static int ks8995_remove(struct spi_device *spi)
> /* assert reset */
> if (ks->pdata && gpio_is_valid(ks->pdata->reset_gpio))
> gpiod_set_value(gpio_to_desc(ks->pdata->reset_gpio), 1);
> -
> - return 0;
> }
>
> /* ------------------------------------------------------------------------ */
> diff --git a/drivers/net/wan/slic_ds26522.c b/drivers/net/wan/slic_ds26522.c
> index 8e3b1c717c10..6063552cea9b 100644
> --- a/drivers/net/wan/slic_ds26522.c
> +++ b/drivers/net/wan/slic_ds26522.c
> @@ -194,10 +194,9 @@ static int slic_ds26522_init_configure(struct spi_device *spi)
> return 0;
> }
>
> -static int slic_ds26522_remove(struct spi_device *spi)
> +static void slic_ds26522_remove(struct spi_device *spi)
> {
> pr_info("DS26522 module uninstalled\n");
> - return 0;
> }
>
> static int slic_ds26522_probe(struct spi_device *spi)
> diff --git a/drivers/net/wireless/intersil/p54/p54spi.c b/drivers/net/wireless/intersil/p54/p54spi.c
> index ab0fe8565851..f99b7ba69fc3 100644
> --- a/drivers/net/wireless/intersil/p54/p54spi.c
> +++ b/drivers/net/wireless/intersil/p54/p54spi.c
> @@ -669,7 +669,7 @@ static int p54spi_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int p54spi_remove(struct spi_device *spi)
> +static void p54spi_remove(struct spi_device *spi)
> {
> struct p54s_priv *priv = spi_get_drvdata(spi);
>
> @@ -684,8 +684,6 @@ static int p54spi_remove(struct spi_device *spi)
> mutex_destroy(&priv->mutex);
>
> p54_free_common(priv->hw);
> -
> - return 0;
> }
>
>
> diff --git a/drivers/net/wireless/marvell/libertas/if_spi.c b/drivers/net/wireless/marvell/libertas/if_spi.c
> index cd9f8ecf171f..ff1c7ec8c450 100644
> --- a/drivers/net/wireless/marvell/libertas/if_spi.c
> +++ b/drivers/net/wireless/marvell/libertas/if_spi.c
> @@ -1195,7 +1195,7 @@ static int if_spi_probe(struct spi_device *spi)
> return err;
> }
>
> -static int libertas_spi_remove(struct spi_device *spi)
> +static void libertas_spi_remove(struct spi_device *spi)
> {
> struct if_spi_card *card = spi_get_drvdata(spi);
> struct lbs_private *priv = card->priv;
> @@ -1212,8 +1212,6 @@ static int libertas_spi_remove(struct spi_device *spi)
> if (card->pdata->teardown)
> card->pdata->teardown(spi);
> free_if_spi_card(card);
> -
> - return 0;
> }
>
> static int if_spi_suspend(struct device *dev)
> diff --git a/drivers/net/wireless/microchip/wilc1000/spi.c b/drivers/net/wireless/microchip/wilc1000/spi.c
> index 2c2ed4b09efd..d2db52289399 100644
> --- a/drivers/net/wireless/microchip/wilc1000/spi.c
> +++ b/drivers/net/wireless/microchip/wilc1000/spi.c
> @@ -240,7 +240,7 @@ static int wilc_bus_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int wilc_bus_remove(struct spi_device *spi)
> +static void wilc_bus_remove(struct spi_device *spi)
> {
> struct wilc *wilc = spi_get_drvdata(spi);
> struct wilc_spi *spi_priv = wilc->bus_data;
> @@ -248,8 +248,6 @@ static int wilc_bus_remove(struct spi_device *spi)
> clk_disable_unprepare(wilc->rtc_clk);
> wilc_netdev_cleanup(wilc);
> kfree(spi_priv);
> -
> - return 0;
> }
>
> static const struct of_device_id wilc_of_match[] = {
> diff --git a/drivers/net/wireless/st/cw1200/cw1200_spi.c b/drivers/net/wireless/st/cw1200/cw1200_spi.c
> index 271ed2ce2d7f..fe0d220da44d 100644
> --- a/drivers/net/wireless/st/cw1200/cw1200_spi.c
> +++ b/drivers/net/wireless/st/cw1200/cw1200_spi.c
> @@ -423,7 +423,7 @@ static int cw1200_spi_probe(struct spi_device *func)
> }
>
> /* Disconnect Function to be called by SPI stack when device is disconnected */
> -static int cw1200_spi_disconnect(struct spi_device *func)
> +static void cw1200_spi_disconnect(struct spi_device *func)
> {
> struct hwbus_priv *self = spi_get_drvdata(func);
>
> @@ -435,8 +435,6 @@ static int cw1200_spi_disconnect(struct spi_device *func)
> }
> }
> cw1200_spi_off(dev_get_platdata(&func->dev));
> -
> - return 0;
> }
>
> static int __maybe_unused cw1200_spi_suspend(struct device *dev)
> diff --git a/drivers/net/wireless/ti/wl1251/spi.c b/drivers/net/wireless/ti/wl1251/spi.c
> index 5b894bd6237e..9df38726e8b0 100644
> --- a/drivers/net/wireless/ti/wl1251/spi.c
> +++ b/drivers/net/wireless/ti/wl1251/spi.c
> @@ -327,14 +327,12 @@ static int wl1251_spi_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int wl1251_spi_remove(struct spi_device *spi)
> +static void wl1251_spi_remove(struct spi_device *spi)
> {
> struct wl1251 *wl = spi_get_drvdata(spi);
>
> wl1251_free_hw(wl);
> regulator_disable(wl->vio);
> -
> - return 0;
> }
>
> static struct spi_driver wl1251_spi_driver = {
> diff --git a/drivers/net/wireless/ti/wlcore/spi.c b/drivers/net/wireless/ti/wlcore/spi.c
> index 354a7e1c3315..7eae1ec2eb2b 100644
> --- a/drivers/net/wireless/ti/wlcore/spi.c
> +++ b/drivers/net/wireless/ti/wlcore/spi.c
> @@ -546,13 +546,11 @@ static int wl1271_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int wl1271_remove(struct spi_device *spi)
> +static void wl1271_remove(struct spi_device *spi)
> {
> struct wl12xx_spi_glue *glue = spi_get_drvdata(spi);
>
> platform_device_unregister(glue->core);
> -
> - return 0;
> }
>
> static struct spi_driver wl1271_spi_driver = {
> diff --git a/drivers/nfc/nfcmrvl/spi.c b/drivers/nfc/nfcmrvl/spi.c
> index 5b833a9a83f8..a38e2fcdfd39 100644
> --- a/drivers/nfc/nfcmrvl/spi.c
> +++ b/drivers/nfc/nfcmrvl/spi.c
> @@ -174,12 +174,11 @@ static int nfcmrvl_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int nfcmrvl_spi_remove(struct spi_device *spi)
> +static void nfcmrvl_spi_remove(struct spi_device *spi)
> {
> struct nfcmrvl_spi_drv_data *drv_data = spi_get_drvdata(spi);
>
> nfcmrvl_nci_unregister_dev(drv_data->priv);
> - return 0;
> }
>
> static const struct of_device_id of_nfcmrvl_spi_match[] __maybe_unused = {
> diff --git a/drivers/nfc/st-nci/spi.c b/drivers/nfc/st-nci/spi.c
> index 4e723992e74c..169eacc0a32a 100644
> --- a/drivers/nfc/st-nci/spi.c
> +++ b/drivers/nfc/st-nci/spi.c
> @@ -263,13 +263,11 @@ static int st_nci_spi_probe(struct spi_device *dev)
> return r;
> }
>
> -static int st_nci_spi_remove(struct spi_device *dev)
> +static void st_nci_spi_remove(struct spi_device *dev)
> {
> struct st_nci_spi_phy *phy = spi_get_drvdata(dev);
>
> ndlc_remove(phy->ndlc);
> -
> - return 0;
> }
>
> static struct spi_device_id st_nci_spi_id_table[] = {
> diff --git a/drivers/nfc/st95hf/core.c b/drivers/nfc/st95hf/core.c
> index b23f47936473..ed704bb77226 100644
> --- a/drivers/nfc/st95hf/core.c
> +++ b/drivers/nfc/st95hf/core.c
> @@ -1198,7 +1198,7 @@ static int st95hf_probe(struct spi_device *nfc_spi_dev)
> return ret;
> }
>
> -static int st95hf_remove(struct spi_device *nfc_spi_dev)
> +static void st95hf_remove(struct spi_device *nfc_spi_dev)
> {
> int result = 0;
> unsigned char reset_cmd = ST95HF_COMMAND_RESET;
> @@ -1236,8 +1236,6 @@ static int st95hf_remove(struct spi_device *nfc_spi_dev)
> /* disable regulator */
> if (stcontext->st95hf_supply)
> regulator_disable(stcontext->st95hf_supply);
> -
> - return 0;
> }
>
> /* Register as SPI protocol driver */
> diff --git a/drivers/nfc/trf7970a.c b/drivers/nfc/trf7970a.c
> index 29ca9c328df2..21d68664fe08 100644
> --- a/drivers/nfc/trf7970a.c
> +++ b/drivers/nfc/trf7970a.c
> @@ -2144,7 +2144,7 @@ static int trf7970a_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int trf7970a_remove(struct spi_device *spi)
> +static void trf7970a_remove(struct spi_device *spi)
> {
> struct trf7970a *trf = spi_get_drvdata(spi);
>
> @@ -2160,8 +2160,6 @@ static int trf7970a_remove(struct spi_device *spi)
> regulator_disable(trf->regulator);
>
> mutex_destroy(&trf->lock);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/platform/chrome/cros_ec_spi.c b/drivers/platform/chrome/cros_ec_spi.c
> index 713c58687721..8493af0f680e 100644
> --- a/drivers/platform/chrome/cros_ec_spi.c
> +++ b/drivers/platform/chrome/cros_ec_spi.c
> @@ -786,13 +786,11 @@ static int cros_ec_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int cros_ec_spi_remove(struct spi_device *spi)
> +static void cros_ec_spi_remove(struct spi_device *spi)
> {
> struct cros_ec_device *ec_dev = spi_get_drvdata(spi);
>
> cros_ec_unregister(ec_dev);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/platform/olpc/olpc-xo175-ec.c b/drivers/platform/olpc/olpc-xo175-ec.c
> index 0d46706afd2d..4823bd2819f6 100644
> --- a/drivers/platform/olpc/olpc-xo175-ec.c
> +++ b/drivers/platform/olpc/olpc-xo175-ec.c
> @@ -648,7 +648,7 @@ static struct olpc_ec_driver olpc_xo175_ec_driver = {
> .ec_cmd = olpc_xo175_ec_cmd,
> };
>
> -static int olpc_xo175_ec_remove(struct spi_device *spi)
> +static void olpc_xo175_ec_remove(struct spi_device *spi)
> {
> if (pm_power_off == olpc_xo175_ec_power_off)
> pm_power_off = NULL;
> @@ -657,8 +657,6 @@ static int olpc_xo175_ec_remove(struct spi_device *spi)
>
> platform_device_unregister(olpc_ec);
> olpc_ec = NULL;
> -
> - return 0;
> }
>
> static int olpc_xo175_ec_probe(struct spi_device *spi)
> diff --git a/drivers/rtc/rtc-ds1302.c b/drivers/rtc/rtc-ds1302.c
> index 2f83adef966e..6d66ab5a8b17 100644
> --- a/drivers/rtc/rtc-ds1302.c
> +++ b/drivers/rtc/rtc-ds1302.c
> @@ -185,10 +185,9 @@ static int ds1302_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ds1302_remove(struct spi_device *spi)
> +static void ds1302_remove(struct spi_device *spi)
> {
> spi_set_drvdata(spi, NULL);
> - return 0;
> }
>
> #ifdef CONFIG_OF
> diff --git a/drivers/rtc/rtc-ds1305.c b/drivers/rtc/rtc-ds1305.c
> index 9ef107b99b65..ed9360486953 100644
> --- a/drivers/rtc/rtc-ds1305.c
> +++ b/drivers/rtc/rtc-ds1305.c
> @@ -720,7 +720,7 @@ static int ds1305_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ds1305_remove(struct spi_device *spi)
> +static void ds1305_remove(struct spi_device *spi)
> {
> struct ds1305 *ds1305 = spi_get_drvdata(spi);
>
> @@ -730,8 +730,6 @@ static int ds1305_remove(struct spi_device *spi)
> devm_free_irq(&spi->dev, spi->irq, ds1305);
> cancel_work_sync(&ds1305->work);
> }
> -
> - return 0;
> }
>
> static struct spi_driver ds1305_driver = {
> diff --git a/drivers/rtc/rtc-ds1343.c b/drivers/rtc/rtc-ds1343.c
> index f14ed6c96437..ed5a6ba89a3e 100644
> --- a/drivers/rtc/rtc-ds1343.c
> +++ b/drivers/rtc/rtc-ds1343.c
> @@ -434,11 +434,9 @@ static int ds1343_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ds1343_remove(struct spi_device *spi)
> +static void ds1343_remove(struct spi_device *spi)
> {
> dev_pm_clear_wake_irq(&spi->dev);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/spi/spi-mem.c b/drivers/spi/spi-mem.c
> index 37f4443ce9a0..e9d83d65873b 100644
> --- a/drivers/spi/spi-mem.c
> +++ b/drivers/spi/spi-mem.c
> @@ -854,15 +854,13 @@ static int spi_mem_probe(struct spi_device *spi)
> return memdrv->probe(mem);
> }
>
> -static int spi_mem_remove(struct spi_device *spi)
> +static void spi_mem_remove(struct spi_device *spi)
> {
> struct spi_mem_driver *memdrv = to_spi_mem_drv(spi->dev.driver);
> struct spi_mem *mem = spi_get_drvdata(spi);
>
> if (memdrv->remove)
> - return memdrv->remove(mem);
> -
> - return 0;
> + memdrv->remove(mem);
> }
>
> static void spi_mem_shutdown(struct spi_device *spi)
> diff --git a/drivers/spi/spi-slave-system-control.c b/drivers/spi/spi-slave-system-control.c
> index 169f3d595f60..d37cfe995a63 100644
> --- a/drivers/spi/spi-slave-system-control.c
> +++ b/drivers/spi/spi-slave-system-control.c
> @@ -132,13 +132,12 @@ static int spi_slave_system_control_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int spi_slave_system_control_remove(struct spi_device *spi)
> +static void spi_slave_system_control_remove(struct spi_device *spi)
> {
> struct spi_slave_system_control_priv *priv = spi_get_drvdata(spi);
>
> spi_slave_abort(spi);
> wait_for_completion(&priv->finished);
> - return 0;
> }
>
> static struct spi_driver spi_slave_system_control_driver = {
> diff --git a/drivers/spi/spi-slave-time.c b/drivers/spi/spi-slave-time.c
> index f2e07a392d68..f56c1afb8534 100644
> --- a/drivers/spi/spi-slave-time.c
> +++ b/drivers/spi/spi-slave-time.c
> @@ -106,13 +106,12 @@ static int spi_slave_time_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int spi_slave_time_remove(struct spi_device *spi)
> +static void spi_slave_time_remove(struct spi_device *spi)
> {
> struct spi_slave_time_priv *priv = spi_get_drvdata(spi);
>
> spi_slave_abort(spi);
> wait_for_completion(&priv->finished);
> - return 0;
> }
>
> static struct spi_driver spi_slave_time_driver = {
> diff --git a/drivers/spi/spi-tle62x0.c b/drivers/spi/spi-tle62x0.c
> index f8ad0709d015..a565352f6381 100644
> --- a/drivers/spi/spi-tle62x0.c
> +++ b/drivers/spi/spi-tle62x0.c
> @@ -288,7 +288,7 @@ static int tle62x0_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int tle62x0_remove(struct spi_device *spi)
> +static void tle62x0_remove(struct spi_device *spi)
> {
> struct tle62x0_state *st = spi_get_drvdata(spi);
> int ptr;
> @@ -298,7 +298,6 @@ static int tle62x0_remove(struct spi_device *spi)
>
> device_remove_file(&spi->dev, &dev_attr_status_show);
> kfree(st);
> - return 0;
> }
>
> static struct spi_driver tle62x0_driver = {
> diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
> index 4599b121d744..ead9a132dcb9 100644
> --- a/drivers/spi/spi.c
> +++ b/drivers/spi/spi.c
> @@ -404,15 +404,8 @@ static void spi_remove(struct device *dev)
> {
> const struct spi_driver *sdrv = to_spi_driver(dev->driver);
>
> - if (sdrv->remove) {
> - int ret;
> -
> - ret = sdrv->remove(to_spi_device(dev));
> - if (ret)
> - dev_warn(dev,
> - "Failed to unbind driver (%pe), ignoring\n",
> - ERR_PTR(ret));
> - }
> + if (sdrv->remove)
> + sdrv->remove(to_spi_device(dev));
>
> dev_pm_domain_detach(dev, true);
> }
> diff --git a/drivers/spi/spidev.c b/drivers/spi/spidev.c
> index a5cceca8b82b..9468f74308bd 100644
> --- a/drivers/spi/spidev.c
> +++ b/drivers/spi/spidev.c
> @@ -803,7 +803,7 @@ static int spidev_probe(struct spi_device *spi)
> return status;
> }
>
> -static int spidev_remove(struct spi_device *spi)
> +static void spidev_remove(struct spi_device *spi)
> {
> struct spidev_data *spidev = spi_get_drvdata(spi);
>
> @@ -820,8 +820,6 @@ static int spidev_remove(struct spi_device *spi)
> if (spidev->users == 0)
> kfree(spidev);
> mutex_unlock(&device_list_lock);
> -
> - return 0;
> }
>
> static struct spi_driver spidev_spi_driver = {
> diff --git a/drivers/staging/fbtft/fbtft.h b/drivers/staging/fbtft/fbtft.h
> index 6a7545b5bcd2..b68f5f9b7c78 100644
> --- a/drivers/staging/fbtft/fbtft.h
> +++ b/drivers/staging/fbtft/fbtft.h
> @@ -286,12 +286,11 @@ static int fbtft_driver_probe_spi(struct spi_device *spi) \
> return fbtft_probe_common(_display, spi, NULL); \
> } \
> \
> -static int fbtft_driver_remove_spi(struct spi_device *spi) \
> +static void fbtft_driver_remove_spi(struct spi_device *spi) \
> { \
> struct fb_info *info = spi_get_drvdata(spi); \
> \
> fbtft_remove_common(&spi->dev, info); \
> - return 0; \
> } \
> \
> static struct spi_driver fbtft_driver_spi_driver = { \
> diff --git a/drivers/staging/pi433/pi433_if.c b/drivers/staging/pi433/pi433_if.c
> index 68c09fa016ed..1d31c35875e3 100644
> --- a/drivers/staging/pi433/pi433_if.c
> +++ b/drivers/staging/pi433/pi433_if.c
> @@ -1264,7 +1264,7 @@ static int pi433_probe(struct spi_device *spi)
> return retval;
> }
>
> -static int pi433_remove(struct spi_device *spi)
> +static void pi433_remove(struct spi_device *spi)
> {
> struct pi433_device *device = spi_get_drvdata(spi);
>
> @@ -1284,8 +1284,6 @@ static int pi433_remove(struct spi_device *spi)
>
> kfree(device->rx_buffer);
> kfree(device);
> -
> - return 0;
> }
>
> static const struct of_device_id pi433_dt_ids[] = {
> diff --git a/drivers/staging/wfx/bus_spi.c b/drivers/staging/wfx/bus_spi.c
> index 55ffcd7c42e2..fa0ff66a457d 100644
> --- a/drivers/staging/wfx/bus_spi.c
> +++ b/drivers/staging/wfx/bus_spi.c
> @@ -232,12 +232,11 @@ static int wfx_spi_probe(struct spi_device *func)
> return wfx_probe(bus->core);
> }
>
> -static int wfx_spi_remove(struct spi_device *func)
> +static void wfx_spi_remove(struct spi_device *func)
> {
> struct wfx_spi_priv *bus = spi_get_drvdata(func);
>
> wfx_release(bus->core);
> - return 0;
> }
>
> /* For dynamic driver binding, kernel does not use OF to match driver. It only
> diff --git a/drivers/tty/serial/max3100.c b/drivers/tty/serial/max3100.c
> index 3c92d4e01488..516cff362434 100644
> --- a/drivers/tty/serial/max3100.c
> +++ b/drivers/tty/serial/max3100.c
> @@ -805,7 +805,7 @@ static int max3100_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int max3100_remove(struct spi_device *spi)
> +static void max3100_remove(struct spi_device *spi)
> {
> struct max3100_port *s = spi_get_drvdata(spi);
> int i;
> @@ -828,13 +828,12 @@ static int max3100_remove(struct spi_device *spi)
> for (i = 0; i < MAX_MAX3100; i++)
> if (max3100s[i]) {
> mutex_unlock(&max3100s_lock);
> - return 0;
> + return;
> }
> pr_debug("removing max3100 driver\n");
> uart_unregister_driver(&max3100_uart_driver);
>
> mutex_unlock(&max3100s_lock);
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/tty/serial/max310x.c b/drivers/tty/serial/max310x.c
> index dde0824b2fa5..3112b4a05448 100644
> --- a/drivers/tty/serial/max310x.c
> +++ b/drivers/tty/serial/max310x.c
> @@ -1487,10 +1487,9 @@ static int max310x_spi_probe(struct spi_device *spi)
> return max310x_probe(&spi->dev, devtype, regmap, spi->irq);
> }
>
> -static int max310x_spi_remove(struct spi_device *spi)
> +static void max310x_spi_remove(struct spi_device *spi)
> {
> max310x_remove(&spi->dev);
> - return 0;
> }
>
> static const struct spi_device_id max310x_id_table[] = {
> diff --git a/drivers/tty/serial/sc16is7xx.c b/drivers/tty/serial/sc16is7xx.c
> index 64e7e6c8145f..25d67b8c4db7 100644
> --- a/drivers/tty/serial/sc16is7xx.c
> +++ b/drivers/tty/serial/sc16is7xx.c
> @@ -1440,11 +1440,9 @@ static int sc16is7xx_spi_probe(struct spi_device *spi)
> return sc16is7xx_probe(&spi->dev, devtype, regmap, spi->irq);
> }
>
> -static int sc16is7xx_spi_remove(struct spi_device *spi)
> +static void sc16is7xx_spi_remove(struct spi_device *spi)
> {
> sc16is7xx_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id sc16is7xx_spi_id_table[] = {
> diff --git a/drivers/usb/gadget/udc/max3420_udc.c b/drivers/usb/gadget/udc/max3420_udc.c
> index d2a2b20cc1ad..7d9bd16190c0 100644
> --- a/drivers/usb/gadget/udc/max3420_udc.c
> +++ b/drivers/usb/gadget/udc/max3420_udc.c
> @@ -1292,7 +1292,7 @@ static int max3420_probe(struct spi_device *spi)
> return err;
> }
>
> -static int max3420_remove(struct spi_device *spi)
> +static void max3420_remove(struct spi_device *spi)
> {
> struct max3420_udc *udc = spi_get_drvdata(spi);
> unsigned long flags;
> @@ -1304,8 +1304,6 @@ static int max3420_remove(struct spi_device *spi)
> kthread_stop(udc->thread_task);
>
> spin_unlock_irqrestore(&udc->lock, flags);
> -
> - return 0;
> }
>
> static const struct of_device_id max3420_udc_of_match[] = {
> diff --git a/drivers/usb/host/max3421-hcd.c b/drivers/usb/host/max3421-hcd.c
> index 30de85a707fe..99a5523a79fb 100644
> --- a/drivers/usb/host/max3421-hcd.c
> +++ b/drivers/usb/host/max3421-hcd.c
> @@ -1926,7 +1926,7 @@ max3421_probe(struct spi_device *spi)
> return retval;
> }
>
> -static int
> +static void
> max3421_remove(struct spi_device *spi)
> {
> struct max3421_hcd *max3421_hcd;
> @@ -1947,7 +1947,6 @@ max3421_remove(struct spi_device *spi)
> free_irq(spi->irq, hcd);
>
> usb_put_hcd(hcd);
> - return 0;
> }
>
> static const struct of_device_id max3421_of_match_table[] = {
> diff --git a/drivers/video/backlight/ams369fg06.c b/drivers/video/backlight/ams369fg06.c
> index 8a4361e95a11..522dd81110b8 100644
> --- a/drivers/video/backlight/ams369fg06.c
> +++ b/drivers/video/backlight/ams369fg06.c
> @@ -506,12 +506,11 @@ static int ams369fg06_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ams369fg06_remove(struct spi_device *spi)
> +static void ams369fg06_remove(struct spi_device *spi)
> {
> struct ams369fg06 *lcd = spi_get_drvdata(spi);
>
> ams369fg06_power(lcd, FB_BLANK_POWERDOWN);
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/video/backlight/corgi_lcd.c b/drivers/video/backlight/corgi_lcd.c
> index 33f5d80495e6..0a57033ae31d 100644
> --- a/drivers/video/backlight/corgi_lcd.c
> +++ b/drivers/video/backlight/corgi_lcd.c
> @@ -542,7 +542,7 @@ static int corgi_lcd_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int corgi_lcd_remove(struct spi_device *spi)
> +static void corgi_lcd_remove(struct spi_device *spi)
> {
> struct corgi_lcd *lcd = spi_get_drvdata(spi);
>
> @@ -550,7 +550,6 @@ static int corgi_lcd_remove(struct spi_device *spi)
> lcd->bl_dev->props.brightness = 0;
> backlight_update_status(lcd->bl_dev);
> corgi_lcd_set_power(lcd->lcd_dev, FB_BLANK_POWERDOWN);
> - return 0;
> }
>
> static struct spi_driver corgi_lcd_driver = {
> diff --git a/drivers/video/backlight/ili922x.c b/drivers/video/backlight/ili922x.c
> index 328aba9cddad..e7b6bd827986 100644
> --- a/drivers/video/backlight/ili922x.c
> +++ b/drivers/video/backlight/ili922x.c
> @@ -526,10 +526,9 @@ static int ili922x_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ili922x_remove(struct spi_device *spi)
> +static void ili922x_remove(struct spi_device *spi)
> {
> ili922x_poweroff(spi);
> - return 0;
> }
>
> static struct spi_driver ili922x_driver = {
> diff --git a/drivers/video/backlight/l4f00242t03.c b/drivers/video/backlight/l4f00242t03.c
> index 46f97d1c3d21..cc763cf15f53 100644
> --- a/drivers/video/backlight/l4f00242t03.c
> +++ b/drivers/video/backlight/l4f00242t03.c
> @@ -223,12 +223,11 @@ static int l4f00242t03_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int l4f00242t03_remove(struct spi_device *spi)
> +static void l4f00242t03_remove(struct spi_device *spi)
> {
> struct l4f00242t03_priv *priv = spi_get_drvdata(spi);
>
> l4f00242t03_lcd_power_set(priv->ld, FB_BLANK_POWERDOWN);
> - return 0;
> }
>
> static void l4f00242t03_shutdown(struct spi_device *spi)
> diff --git a/drivers/video/backlight/lms501kf03.c b/drivers/video/backlight/lms501kf03.c
> index f949b66dce1b..5c46df8022bf 100644
> --- a/drivers/video/backlight/lms501kf03.c
> +++ b/drivers/video/backlight/lms501kf03.c
> @@ -364,12 +364,11 @@ static int lms501kf03_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int lms501kf03_remove(struct spi_device *spi)
> +static void lms501kf03_remove(struct spi_device *spi)
> {
> struct lms501kf03 *lcd = spi_get_drvdata(spi);
>
> lms501kf03_power(lcd, FB_BLANK_POWERDOWN);
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/video/backlight/ltv350qv.c b/drivers/video/backlight/ltv350qv.c
> index 5cbf621e48bd..b6d373af6e3f 100644
> --- a/drivers/video/backlight/ltv350qv.c
> +++ b/drivers/video/backlight/ltv350qv.c
> @@ -255,12 +255,11 @@ static int ltv350qv_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ltv350qv_remove(struct spi_device *spi)
> +static void ltv350qv_remove(struct spi_device *spi)
> {
> struct ltv350qv *lcd = spi_get_drvdata(spi);
>
> ltv350qv_power(lcd, FB_BLANK_POWERDOWN);
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/video/backlight/tdo24m.c b/drivers/video/backlight/tdo24m.c
> index 0de044dcafd5..fc6fbaf85594 100644
> --- a/drivers/video/backlight/tdo24m.c
> +++ b/drivers/video/backlight/tdo24m.c
> @@ -397,12 +397,11 @@ static int tdo24m_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int tdo24m_remove(struct spi_device *spi)
> +static void tdo24m_remove(struct spi_device *spi)
> {
> struct tdo24m *lcd = spi_get_drvdata(spi);
>
> tdo24m_power(lcd, FB_BLANK_POWERDOWN);
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/video/backlight/tosa_lcd.c b/drivers/video/backlight/tosa_lcd.c
> index 38765544345b..23d6c6bf0f54 100644
> --- a/drivers/video/backlight/tosa_lcd.c
> +++ b/drivers/video/backlight/tosa_lcd.c
> @@ -232,15 +232,13 @@ static int tosa_lcd_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int tosa_lcd_remove(struct spi_device *spi)
> +static void tosa_lcd_remove(struct spi_device *spi)
> {
> struct tosa_lcd_data *data = spi_get_drvdata(spi);
>
> i2c_unregister_device(data->i2c);
>
> tosa_lcd_tg_off(data);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/video/backlight/vgg2432a4.c b/drivers/video/backlight/vgg2432a4.c
> index 3567b45f9ba9..bfc1913e8b55 100644
> --- a/drivers/video/backlight/vgg2432a4.c
> +++ b/drivers/video/backlight/vgg2432a4.c
> @@ -233,11 +233,9 @@ static int vgg2432a4_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int vgg2432a4_remove(struct spi_device *spi)
> +static void vgg2432a4_remove(struct spi_device *spi)
> {
> ili9320_remove(spi_get_drvdata(spi));
> -
> - return 0;
> }
>
> static void vgg2432a4_shutdown(struct spi_device *spi)
> diff --git a/drivers/video/fbdev/omap/lcd_mipid.c b/drivers/video/fbdev/omap/lcd_mipid.c
> index a75ae0c9b14c..03cff39d392d 100644
> --- a/drivers/video/fbdev/omap/lcd_mipid.c
> +++ b/drivers/video/fbdev/omap/lcd_mipid.c
> @@ -570,14 +570,12 @@ static int mipid_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int mipid_spi_remove(struct spi_device *spi)
> +static void mipid_spi_remove(struct spi_device *spi)
> {
> struct mipid_device *md = dev_get_drvdata(&spi->dev);
>
> mipid_disable(&md->panel);
> kfree(md);
> -
> - return 0;
> }
>
> static struct spi_driver mipid_spi_driver = {
> diff --git a/drivers/video/fbdev/omap2/omapfb/displays/panel-lgphilips-lb035q02.c b/drivers/video/fbdev/omap2/omapfb/displays/panel-lgphilips-lb035q02.c
> index 1bec7a4422e8..aab67721263d 100644
> --- a/drivers/video/fbdev/omap2/omapfb/displays/panel-lgphilips-lb035q02.c
> +++ b/drivers/video/fbdev/omap2/omapfb/displays/panel-lgphilips-lb035q02.c
> @@ -316,7 +316,7 @@ static int lb035q02_panel_spi_probe(struct spi_device *spi)
> return r;
> }
>
> -static int lb035q02_panel_spi_remove(struct spi_device *spi)
> +static void lb035q02_panel_spi_remove(struct spi_device *spi)
> {
> struct panel_drv_data *ddata = spi_get_drvdata(spi);
> struct omap_dss_device *dssdev = &ddata->dssdev;
> @@ -328,8 +328,6 @@ static int lb035q02_panel_spi_remove(struct spi_device *spi)
> lb035q02_disconnect(dssdev);
>
> omap_dss_put_device(in);
> -
> - return 0;
> }
>
> static const struct of_device_id lb035q02_of_match[] = {
> diff --git a/drivers/video/fbdev/omap2/omapfb/displays/panel-nec-nl8048hl11.c b/drivers/video/fbdev/omap2/omapfb/displays/panel-nec-nl8048hl11.c
> index dff9ebbadfc0..be9910ff6e62 100644
> --- a/drivers/video/fbdev/omap2/omapfb/displays/panel-nec-nl8048hl11.c
> +++ b/drivers/video/fbdev/omap2/omapfb/displays/panel-nec-nl8048hl11.c
> @@ -327,7 +327,7 @@ static int nec_8048_probe(struct spi_device *spi)
> return r;
> }
>
> -static int nec_8048_remove(struct spi_device *spi)
> +static void nec_8048_remove(struct spi_device *spi)
> {
> struct panel_drv_data *ddata = dev_get_drvdata(&spi->dev);
> struct omap_dss_device *dssdev = &ddata->dssdev;
> @@ -341,8 +341,6 @@ static int nec_8048_remove(struct spi_device *spi)
> nec_8048_disconnect(dssdev);
>
> omap_dss_put_device(in);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/video/fbdev/omap2/omapfb/displays/panel-sony-acx565akm.c b/drivers/video/fbdev/omap2/omapfb/displays/panel-sony-acx565akm.c
> index 8d8b5ff7d43c..a909b5385ca5 100644
> --- a/drivers/video/fbdev/omap2/omapfb/displays/panel-sony-acx565akm.c
> +++ b/drivers/video/fbdev/omap2/omapfb/displays/panel-sony-acx565akm.c
> @@ -857,7 +857,7 @@ static int acx565akm_probe(struct spi_device *spi)
> return r;
> }
>
> -static int acx565akm_remove(struct spi_device *spi)
> +static void acx565akm_remove(struct spi_device *spi)
> {
> struct panel_drv_data *ddata = dev_get_drvdata(&spi->dev);
> struct omap_dss_device *dssdev = &ddata->dssdev;
> @@ -874,8 +874,6 @@ static int acx565akm_remove(struct spi_device *spi)
> acx565akm_disconnect(dssdev);
>
> omap_dss_put_device(in);
> -
> - return 0;
> }
>
> static const struct of_device_id acx565akm_of_match[] = {
> diff --git a/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td028ttec1.c b/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td028ttec1.c
> index 595ebd8bd5dc..3c0f887d3092 100644
> --- a/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td028ttec1.c
> +++ b/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td028ttec1.c
> @@ -425,7 +425,7 @@ static int td028ttec1_panel_probe(struct spi_device *spi)
> return r;
> }
>
> -static int td028ttec1_panel_remove(struct spi_device *spi)
> +static void td028ttec1_panel_remove(struct spi_device *spi)
> {
> struct panel_drv_data *ddata = dev_get_drvdata(&spi->dev);
> struct omap_dss_device *dssdev = &ddata->dssdev;
> @@ -439,8 +439,6 @@ static int td028ttec1_panel_remove(struct spi_device *spi)
> td028ttec1_panel_disconnect(dssdev);
>
> omap_dss_put_device(in);
> -
> - return 0;
> }
>
> static const struct of_device_id td028ttec1_of_match[] = {
> diff --git a/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td043mtea1.c b/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td043mtea1.c
> index afac1d9445aa..58bbba7c037f 100644
> --- a/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td043mtea1.c
> +++ b/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td043mtea1.c
> @@ -564,7 +564,7 @@ static int tpo_td043_probe(struct spi_device *spi)
> return r;
> }
>
> -static int tpo_td043_remove(struct spi_device *spi)
> +static void tpo_td043_remove(struct spi_device *spi)
> {
> struct panel_drv_data *ddata = dev_get_drvdata(&spi->dev);
> struct omap_dss_device *dssdev = &ddata->dssdev;
> @@ -580,8 +580,6 @@ static int tpo_td043_remove(struct spi_device *spi)
> omap_dss_put_device(in);
>
> sysfs_remove_group(&spi->dev.kobj, &tpo_td043_attr_group);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/include/linux/spi/spi.h b/include/linux/spi/spi.h
> index 7ab3fed7b804..c84e61b99c7b 100644
> --- a/include/linux/spi/spi.h
> +++ b/include/linux/spi/spi.h
> @@ -280,7 +280,7 @@ struct spi_message;
> struct spi_driver {
> const struct spi_device_id *id_table;
> int (*probe)(struct spi_device *spi);
> - int (*remove)(struct spi_device *spi);
> + void (*remove)(struct spi_device *spi);
> void (*shutdown)(struct spi_device *spi);
> struct device_driver driver;
> };
> diff --git a/sound/pci/hda/cs35l41_hda_spi.c b/sound/pci/hda/cs35l41_hda_spi.c
> index 9f8123893cc8..50eb6c0e6658 100644
> --- a/sound/pci/hda/cs35l41_hda_spi.c
> +++ b/sound/pci/hda/cs35l41_hda_spi.c
> @@ -28,11 +28,9 @@ static int cs35l41_hda_spi_probe(struct spi_device *spi)
> devm_regmap_init_spi(spi, &cs35l41_regmap_spi));
> }
>
> -static int cs35l41_hda_spi_remove(struct spi_device *spi)
> +static void cs35l41_hda_spi_remove(struct spi_device *spi)
> {
> cs35l41_hda_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id cs35l41_hda_spi_id[] = {
> diff --git a/sound/soc/codecs/adau1761-spi.c b/sound/soc/codecs/adau1761-spi.c
> index 655689c9778a..7c9242c2ff94 100644
> --- a/sound/soc/codecs/adau1761-spi.c
> +++ b/sound/soc/codecs/adau1761-spi.c
> @@ -45,10 +45,9 @@ static int adau1761_spi_probe(struct spi_device *spi)
> id->driver_data, adau1761_spi_switch_mode);
> }
>
> -static int adau1761_spi_remove(struct spi_device *spi)
> +static void adau1761_spi_remove(struct spi_device *spi)
> {
> adau17x1_remove(&spi->dev);
> - return 0;
> }
>
> static const struct spi_device_id adau1761_spi_id[] = {
> diff --git a/sound/soc/codecs/adau1781-spi.c b/sound/soc/codecs/adau1781-spi.c
> index bb5613574786..1a09633d5a88 100644
> --- a/sound/soc/codecs/adau1781-spi.c
> +++ b/sound/soc/codecs/adau1781-spi.c
> @@ -45,10 +45,9 @@ static int adau1781_spi_probe(struct spi_device *spi)
> id->driver_data, adau1781_spi_switch_mode);
> }
>
> -static int adau1781_spi_remove(struct spi_device *spi)
> +static void adau1781_spi_remove(struct spi_device *spi)
> {
> adau17x1_remove(&spi->dev);
> - return 0;
> }
>
> static const struct spi_device_id adau1781_spi_id[] = {
> diff --git a/sound/soc/codecs/cs35l41-spi.c b/sound/soc/codecs/cs35l41-spi.c
> index 6dfd5459aa20..169221a5b09f 100644
> --- a/sound/soc/codecs/cs35l41-spi.c
> +++ b/sound/soc/codecs/cs35l41-spi.c
> @@ -55,13 +55,11 @@ static int cs35l41_spi_probe(struct spi_device *spi)
> return cs35l41_probe(cs35l41, pdata);
> }
>
> -static int cs35l41_spi_remove(struct spi_device *spi)
> +static void cs35l41_spi_remove(struct spi_device *spi)
> {
> struct cs35l41_private *cs35l41 = spi_get_drvdata(spi);
>
> cs35l41_remove(cs35l41);
> -
> - return 0;
> }
>
> #ifdef CONFIG_OF
> diff --git a/sound/soc/codecs/pcm3168a-spi.c b/sound/soc/codecs/pcm3168a-spi.c
> index ecd379f308e6..b5b08046f545 100644
> --- a/sound/soc/codecs/pcm3168a-spi.c
> +++ b/sound/soc/codecs/pcm3168a-spi.c
> @@ -26,11 +26,9 @@ static int pcm3168a_spi_probe(struct spi_device *spi)
> return pcm3168a_probe(&spi->dev, regmap);
> }
>
> -static int pcm3168a_spi_remove(struct spi_device *spi)
> +static void pcm3168a_spi_remove(struct spi_device *spi)
> {
> pcm3168a_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id pcm3168a_spi_id[] = {
> diff --git a/sound/soc/codecs/pcm512x-spi.c b/sound/soc/codecs/pcm512x-spi.c
> index 7cf559b47e1c..4d29e7196380 100644
> --- a/sound/soc/codecs/pcm512x-spi.c
> +++ b/sound/soc/codecs/pcm512x-spi.c
> @@ -26,10 +26,9 @@ static int pcm512x_spi_probe(struct spi_device *spi)
> return pcm512x_probe(&spi->dev, regmap);
> }
>
> -static int pcm512x_spi_remove(struct spi_device *spi)
> +static void pcm512x_spi_remove(struct spi_device *spi)
> {
> pcm512x_remove(&spi->dev);
> - return 0;
> }
>
> static const struct spi_device_id pcm512x_spi_id[] = {
> diff --git a/sound/soc/codecs/tlv320aic32x4-spi.c b/sound/soc/codecs/tlv320aic32x4-spi.c
> index a8958cd1c692..03cce8d6404f 100644
> --- a/sound/soc/codecs/tlv320aic32x4-spi.c
> +++ b/sound/soc/codecs/tlv320aic32x4-spi.c
> @@ -46,11 +46,9 @@ static int aic32x4_spi_probe(struct spi_device *spi)
> return aic32x4_probe(&spi->dev, regmap);
> }
>
> -static int aic32x4_spi_remove(struct spi_device *spi)
> +static void aic32x4_spi_remove(struct spi_device *spi)
> {
> aic32x4_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id aic32x4_spi_id[] = {
> diff --git a/sound/soc/codecs/tlv320aic3x-spi.c b/sound/soc/codecs/tlv320aic3x-spi.c
> index 494e84402232..deed6ec7e081 100644
> --- a/sound/soc/codecs/tlv320aic3x-spi.c
> +++ b/sound/soc/codecs/tlv320aic3x-spi.c
> @@ -35,11 +35,9 @@ static int aic3x_spi_probe(struct spi_device *spi)
> return aic3x_probe(&spi->dev, regmap, id->driver_data);
> }
>
> -static int aic3x_spi_remove(struct spi_device *spi)
> +static void aic3x_spi_remove(struct spi_device *spi)
> {
> aic3x_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id aic3x_spi_id[] = {
> diff --git a/sound/soc/codecs/wm0010.c b/sound/soc/codecs/wm0010.c
> index 28b4656c4e14..1bef1c500c8e 100644
> --- a/sound/soc/codecs/wm0010.c
> +++ b/sound/soc/codecs/wm0010.c
> @@ -969,7 +969,7 @@ static int wm0010_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int wm0010_spi_remove(struct spi_device *spi)
> +static void wm0010_spi_remove(struct spi_device *spi)
> {
> struct wm0010_priv *wm0010 = spi_get_drvdata(spi);
>
> @@ -980,8 +980,6 @@ static int wm0010_spi_remove(struct spi_device *spi)
>
> if (wm0010->irq)
> free_irq(wm0010->irq, wm0010);
> -
> - return 0;
> }
>
> static struct spi_driver wm0010_spi_driver = {
> diff --git a/sound/soc/codecs/wm8804-spi.c b/sound/soc/codecs/wm8804-spi.c
> index 9a8da1511c34..628568724c20 100644
> --- a/sound/soc/codecs/wm8804-spi.c
> +++ b/sound/soc/codecs/wm8804-spi.c
> @@ -24,10 +24,9 @@ static int wm8804_spi_probe(struct spi_device *spi)
> return wm8804_probe(&spi->dev, regmap);
> }
>
> -static int wm8804_spi_remove(struct spi_device *spi)
> +static void wm8804_spi_remove(struct spi_device *spi)
> {
> wm8804_remove(&spi->dev);
> - return 0;
> }
>
> static const struct of_device_id wm8804_of_match[] = {
> diff --git a/sound/spi/at73c213.c b/sound/spi/at73c213.c
> index 76c0e37a838c..56d2c712e257 100644
> --- a/sound/spi/at73c213.c
> +++ b/sound/spi/at73c213.c
> @@ -1001,7 +1001,7 @@ static int snd_at73c213_probe(struct spi_device *spi)
> return retval;
> }
>
> -static int snd_at73c213_remove(struct spi_device *spi)
> +static void snd_at73c213_remove(struct spi_device *spi)
> {
> struct snd_card *card = dev_get_drvdata(&spi->dev);
> struct snd_at73c213 *chip = card->private_data;
> @@ -1066,8 +1066,6 @@ static int snd_at73c213_remove(struct spi_device *spi)
>
> ssc_free(chip->ssc);
> snd_card_free(card);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
2
1
On 2022-01-23 18:52, Uwe Kleine-König wrote:
> The value returned by an spi driver's remove function is mostly ignored.
> (Only an error message is printed if the value is non-zero that the
> error is ignored.)
>
> So change the prototype of the remove function to return no value. This
> way driver authors are not tempted to assume that passing an error to
> the upper layer is a good idea. All drivers are adapted accordingly.
> There is no intended change of behaviour, all callbacks were prepared to
> return 0 before.
>
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig(a)pengutronix.de>
Acked-by: Claudius Heine <ch(a)denx.de>
> ---
> drivers/bus/moxtet.c | 4 +---
> drivers/char/tpm/st33zp24/spi.c | 4 +---
> drivers/char/tpm/tpm_tis_spi_main.c | 3 +--
> drivers/clk/clk-lmk04832.c | 4 +---
> drivers/gpio/gpio-74x164.c | 4 +---
> drivers/gpio/gpio-max3191x.c | 4 +---
> drivers/gpio/gpio-max7301.c | 4 +---
> drivers/gpio/gpio-mc33880.c | 4 +---
> drivers/gpio/gpio-pisosr.c | 4 +---
> drivers/gpu/drm/panel/panel-abt-y030xx067a.c | 4 +---
> drivers/gpu/drm/panel/panel-ilitek-ili9322.c | 4 +---
> drivers/gpu/drm/panel/panel-ilitek-ili9341.c | 3 +--
> drivers/gpu/drm/panel/panel-innolux-ej030na.c | 4 +---
> drivers/gpu/drm/panel/panel-lg-lb035q02.c | 4 +---
> drivers/gpu/drm/panel/panel-lg-lg4573.c | 4 +---
> drivers/gpu/drm/panel/panel-nec-nl8048hl11.c | 4 +---
> drivers/gpu/drm/panel/panel-novatek-nt39016.c | 4 +---
> drivers/gpu/drm/panel/panel-samsung-db7430.c | 3 +--
> drivers/gpu/drm/panel/panel-samsung-ld9040.c | 4 +---
> drivers/gpu/drm/panel/panel-samsung-s6d27a1.c | 3 +--
> drivers/gpu/drm/panel/panel-samsung-s6e63m0-spi.c | 3 +--
> drivers/gpu/drm/panel/panel-sitronix-st7789v.c | 4 +---
> drivers/gpu/drm/panel/panel-sony-acx565akm.c | 4 +---
> drivers/gpu/drm/panel/panel-tpo-td028ttec1.c | 4 +---
> drivers/gpu/drm/panel/panel-tpo-td043mtea1.c | 4 +---
> drivers/gpu/drm/panel/panel-tpo-tpg110.c | 3 +--
> drivers/gpu/drm/panel/panel-widechips-ws2401.c | 3 +--
> drivers/gpu/drm/tiny/hx8357d.c | 4 +---
> drivers/gpu/drm/tiny/ili9163.c | 4 +---
> drivers/gpu/drm/tiny/ili9225.c | 4 +---
> drivers/gpu/drm/tiny/ili9341.c | 4 +---
> drivers/gpu/drm/tiny/ili9486.c | 4 +---
> drivers/gpu/drm/tiny/mi0283qt.c | 4 +---
> drivers/gpu/drm/tiny/repaper.c | 4 +---
> drivers/gpu/drm/tiny/st7586.c | 4 +---
> drivers/gpu/drm/tiny/st7735r.c | 4 +---
> drivers/hwmon/adcxx.c | 4 +---
> drivers/hwmon/adt7310.c | 3 +--
> drivers/hwmon/max1111.c | 3 +--
> drivers/hwmon/max31722.c | 4 +---
> drivers/iio/accel/bma400_spi.c | 4 +---
> drivers/iio/accel/bmc150-accel-spi.c | 4 +---
> drivers/iio/accel/bmi088-accel-spi.c | 4 +---
> drivers/iio/accel/kxsd9-spi.c | 4 +---
> drivers/iio/accel/mma7455_spi.c | 4 +---
> drivers/iio/accel/sca3000.c | 4 +---
> drivers/iio/adc/ad7266.c | 4 +---
> drivers/iio/adc/ltc2496.c | 4 +---
> drivers/iio/adc/mcp320x.c | 4 +---
> drivers/iio/adc/mcp3911.c | 4 +---
> drivers/iio/adc/ti-adc12138.c | 4 +---
> drivers/iio/adc/ti-ads7950.c | 4 +---
> drivers/iio/adc/ti-ads8688.c | 4 +---
> drivers/iio/adc/ti-tlc4541.c | 4 +---
> drivers/iio/amplifiers/ad8366.c | 4 +---
> drivers/iio/common/ssp_sensors/ssp_dev.c | 4 +---
> drivers/iio/dac/ad5360.c | 4 +---
> drivers/iio/dac/ad5380.c | 4 +---
> drivers/iio/dac/ad5446.c | 4 +---
> drivers/iio/dac/ad5449.c | 4 +---
> drivers/iio/dac/ad5504.c | 4 +---
> drivers/iio/dac/ad5592r.c | 4 +---
> drivers/iio/dac/ad5624r_spi.c | 4 +---
> drivers/iio/dac/ad5686-spi.c | 4 +---
> drivers/iio/dac/ad5761.c | 4 +---
> drivers/iio/dac/ad5764.c | 4 +---
> drivers/iio/dac/ad5791.c | 4 +---
> drivers/iio/dac/ad8801.c | 4 +---
> drivers/iio/dac/ltc1660.c | 4 +---
> drivers/iio/dac/ltc2632.c | 4 +---
> drivers/iio/dac/mcp4922.c | 4 +---
> drivers/iio/dac/ti-dac082s085.c | 4 +---
> drivers/iio/dac/ti-dac7311.c | 3 +--
> drivers/iio/frequency/adf4350.c | 4 +---
> drivers/iio/gyro/bmg160_spi.c | 4 +---
> drivers/iio/gyro/fxas21002c_spi.c | 4 +---
> drivers/iio/health/afe4403.c | 4 +---
> drivers/iio/magnetometer/bmc150_magn_spi.c | 4 +---
> drivers/iio/magnetometer/hmc5843_spi.c | 4 +---
> drivers/iio/potentiometer/max5487.c | 4 +---
> drivers/iio/pressure/ms5611_spi.c | 4 +---
> drivers/iio/pressure/zpa2326_spi.c | 4 +---
> drivers/input/keyboard/applespi.c | 4 +---
> drivers/input/misc/adxl34x-spi.c | 4 +---
> drivers/input/touchscreen/ads7846.c | 4 +---
> drivers/input/touchscreen/cyttsp4_spi.c | 4 +---
> drivers/input/touchscreen/tsc2005.c | 4 +---
> drivers/leds/leds-cr0014114.c | 4 +---
> drivers/leds/leds-dac124s085.c | 4 +---
> drivers/leds/leds-el15203000.c | 4 +---
> drivers/leds/leds-spi-byte.c | 4 +---
> drivers/media/spi/cxd2880-spi.c | 4 +---
> drivers/media/spi/gs1662.c | 4 +---
> drivers/media/tuners/msi001.c | 3 +--
> drivers/mfd/arizona-spi.c | 4 +---
> drivers/mfd/da9052-spi.c | 3 +--
> drivers/mfd/ezx-pcap.c | 4 +---
> drivers/mfd/madera-spi.c | 4 +---
> drivers/mfd/mc13xxx-spi.c | 3 +--
> drivers/mfd/rsmu_spi.c | 4 +---
> drivers/mfd/stmpe-spi.c | 4 +---
> drivers/mfd/tps65912-spi.c | 4 +---
> drivers/misc/ad525x_dpot-spi.c | 3 +--
> drivers/misc/eeprom/eeprom_93xx46.c | 4 +---
> drivers/misc/lattice-ecp3-config.c | 4 +---
> drivers/misc/lis3lv02d/lis3lv02d_spi.c | 4 +---
> drivers/mmc/host/mmc_spi.c | 3 +--
> drivers/mtd/devices/mchp23k256.c | 4 +---
> drivers/mtd/devices/mchp48l640.c | 4 +---
> drivers/mtd/devices/mtd_dataflash.c | 4 +---
> drivers/mtd/devices/sst25l.c | 4 +---
> drivers/net/can/m_can/tcan4x5x-core.c | 4 +---
> drivers/net/can/spi/hi311x.c | 4 +---
> drivers/net/can/spi/mcp251x.c | 4 +---
> drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c | 4 +---
> drivers/net/dsa/b53/b53_spi.c | 4 +---
> drivers/net/dsa/microchip/ksz8795_spi.c | 4 +---
> drivers/net/dsa/microchip/ksz9477_spi.c | 4 +---
> drivers/net/dsa/sja1105/sja1105_main.c | 6 ++----
> drivers/net/dsa/vitesse-vsc73xx-spi.c | 6 ++----
> drivers/net/ethernet/asix/ax88796c_main.c | 4 +---
> drivers/net/ethernet/micrel/ks8851_spi.c | 4 +---
> drivers/net/ethernet/microchip/enc28j60.c | 4 +---
> drivers/net/ethernet/microchip/encx24j600.c | 4 +---
> drivers/net/ethernet/qualcomm/qca_spi.c | 4 +---
> drivers/net/ethernet/vertexcom/mse102x.c | 4 +---
> drivers/net/ethernet/wiznet/w5100-spi.c | 4 +---
> drivers/net/ieee802154/adf7242.c | 4 +---
> drivers/net/ieee802154/at86rf230.c | 4 +---
> drivers/net/ieee802154/ca8210.c | 6 ++----
> drivers/net/ieee802154/cc2520.c | 4 +---
> drivers/net/ieee802154/mcr20a.c | 4 +---
> drivers/net/ieee802154/mrf24j40.c | 4 +---
> drivers/net/phy/spi_ks8995.c | 4 +---
> drivers/net/wan/slic_ds26522.c | 3 +--
> drivers/net/wireless/intersil/p54/p54spi.c | 4 +---
> drivers/net/wireless/marvell/libertas/if_spi.c | 4 +---
> drivers/net/wireless/microchip/wilc1000/spi.c | 4 +---
> drivers/net/wireless/st/cw1200/cw1200_spi.c | 4 +---
> drivers/net/wireless/ti/wl1251/spi.c | 4 +---
> drivers/net/wireless/ti/wlcore/spi.c | 4 +---
> drivers/nfc/nfcmrvl/spi.c | 3 +--
> drivers/nfc/st-nci/spi.c | 4 +---
> drivers/nfc/st95hf/core.c | 4 +---
> drivers/nfc/trf7970a.c | 4 +---
> drivers/platform/chrome/cros_ec_spi.c | 4 +---
> drivers/platform/olpc/olpc-xo175-ec.c | 4 +---
> drivers/rtc/rtc-ds1302.c | 3 +--
> drivers/rtc/rtc-ds1305.c | 4 +---
> drivers/rtc/rtc-ds1343.c | 4 +---
> drivers/spi/spi-mem.c | 6 ++----
> drivers/spi/spi-slave-system-control.c | 3 +--
> drivers/spi/spi-slave-time.c | 3 +--
> drivers/spi/spi-tle62x0.c | 3 +--
> drivers/spi/spi.c | 11 ++---------
> drivers/spi/spidev.c | 4 +---
> drivers/staging/fbtft/fbtft.h | 3 +--
> drivers/staging/pi433/pi433_if.c | 4 +---
> drivers/staging/wfx/bus_spi.c | 3 +--
> drivers/tty/serial/max3100.c | 5 ++---
> drivers/tty/serial/max310x.c | 3 +--
> drivers/tty/serial/sc16is7xx.c | 4 +---
> drivers/usb/gadget/udc/max3420_udc.c | 4 +---
> drivers/usb/host/max3421-hcd.c | 3 +--
> drivers/video/backlight/ams369fg06.c | 3 +--
> drivers/video/backlight/corgi_lcd.c | 3 +--
> drivers/video/backlight/ili922x.c | 3 +--
> drivers/video/backlight/l4f00242t03.c | 3 +--
> drivers/video/backlight/lms501kf03.c | 3 +--
> drivers/video/backlight/ltv350qv.c | 3 +--
> drivers/video/backlight/tdo24m.c | 3 +--
> drivers/video/backlight/tosa_lcd.c | 4 +---
> drivers/video/backlight/vgg2432a4.c | 4 +---
> drivers/video/fbdev/omap/lcd_mipid.c | 4 +---
> .../omap2/omapfb/displays/panel-lgphilips-lb035q02.c | 4 +---
> .../omap2/omapfb/displays/panel-nec-nl8048hl11.c | 4 +---
> .../omap2/omapfb/displays/panel-sony-acx565akm.c | 4 +---
> .../omap2/omapfb/displays/panel-tpo-td028ttec1.c | 4 +---
> .../omap2/omapfb/displays/panel-tpo-td043mtea1.c | 4 +---
> include/linux/spi/spi.h | 2 +-
> sound/pci/hda/cs35l41_hda_spi.c | 4 +---
> sound/soc/codecs/adau1761-spi.c | 3 +--
> sound/soc/codecs/adau1781-spi.c | 3 +--
> sound/soc/codecs/cs35l41-spi.c | 4 +---
> sound/soc/codecs/pcm3168a-spi.c | 4 +---
> sound/soc/codecs/pcm512x-spi.c | 3 +--
> sound/soc/codecs/tlv320aic32x4-spi.c | 4 +---
> sound/soc/codecs/tlv320aic3x-spi.c | 4 +---
> sound/soc/codecs/wm0010.c | 4 +---
> sound/soc/codecs/wm8804-spi.c | 3 +--
> sound/spi/at73c213.c | 4 +---
> 191 files changed, 197 insertions(+), 545 deletions(-)
>
> diff --git a/drivers/bus/moxtet.c b/drivers/bus/moxtet.c
> index fd87a59837fa..5eb0fe73ddc4 100644
> --- a/drivers/bus/moxtet.c
> +++ b/drivers/bus/moxtet.c
> @@ -815,7 +815,7 @@ static int moxtet_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int moxtet_remove(struct spi_device *spi)
> +static void moxtet_remove(struct spi_device *spi)
> {
> struct moxtet *moxtet = spi_get_drvdata(spi);
>
> @@ -828,8 +828,6 @@ static int moxtet_remove(struct spi_device *spi)
> device_for_each_child(moxtet->dev, NULL, __unregister);
>
> mutex_destroy(&moxtet->lock);
> -
> - return 0;
> }
>
> static const struct of_device_id moxtet_dt_ids[] = {
> diff --git a/drivers/char/tpm/st33zp24/spi.c b/drivers/char/tpm/st33zp24/spi.c
> index ccd9e42b8eab..22d184884694 100644
> --- a/drivers/char/tpm/st33zp24/spi.c
> +++ b/drivers/char/tpm/st33zp24/spi.c
> @@ -381,13 +381,11 @@ static int st33zp24_spi_probe(struct spi_device *dev)
> * @param: client, the spi_device description (TPM SPI description).
> * @return: 0 in case of success.
> */
> -static int st33zp24_spi_remove(struct spi_device *dev)
> +static void st33zp24_spi_remove(struct spi_device *dev)
> {
> struct tpm_chip *chip = spi_get_drvdata(dev);
>
> st33zp24_remove(chip);
> -
> - return 0;
> }
>
> static const struct spi_device_id st33zp24_spi_id[] = {
> diff --git a/drivers/char/tpm/tpm_tis_spi_main.c b/drivers/char/tpm/tpm_tis_spi_main.c
> index aaa59a00eeae..184396b3af50 100644
> --- a/drivers/char/tpm/tpm_tis_spi_main.c
> +++ b/drivers/char/tpm/tpm_tis_spi_main.c
> @@ -254,13 +254,12 @@ static int tpm_tis_spi_driver_probe(struct spi_device *spi)
>
> static SIMPLE_DEV_PM_OPS(tpm_tis_pm, tpm_pm_suspend, tpm_tis_spi_resume);
>
> -static int tpm_tis_spi_remove(struct spi_device *dev)
> +static void tpm_tis_spi_remove(struct spi_device *dev)
> {
> struct tpm_chip *chip = spi_get_drvdata(dev);
>
> tpm_chip_unregister(chip);
> tpm_tis_remove(chip);
> - return 0;
> }
>
> static const struct spi_device_id tpm_tis_spi_id[] = {
> diff --git a/drivers/clk/clk-lmk04832.c b/drivers/clk/clk-lmk04832.c
> index 8f02c0b88000..f416f8bc2898 100644
> --- a/drivers/clk/clk-lmk04832.c
> +++ b/drivers/clk/clk-lmk04832.c
> @@ -1544,14 +1544,12 @@ static int lmk04832_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int lmk04832_remove(struct spi_device *spi)
> +static void lmk04832_remove(struct spi_device *spi)
> {
> struct lmk04832 *lmk = spi_get_drvdata(spi);
>
> clk_disable_unprepare(lmk->oscin);
> of_clk_del_provider(spi->dev.of_node);
> -
> - return 0;
> }
> static const struct spi_device_id lmk04832_id[] = {
> { "lmk04832", LMK04832 },
> diff --git a/drivers/gpio/gpio-74x164.c b/drivers/gpio/gpio-74x164.c
> index 4a55cdf089d6..e00c33310517 100644
> --- a/drivers/gpio/gpio-74x164.c
> +++ b/drivers/gpio/gpio-74x164.c
> @@ -163,15 +163,13 @@ static int gen_74x164_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int gen_74x164_remove(struct spi_device *spi)
> +static void gen_74x164_remove(struct spi_device *spi)
> {
> struct gen_74x164_chip *chip = spi_get_drvdata(spi);
>
> gpiod_set_value_cansleep(chip->gpiod_oe, 0);
> gpiochip_remove(&chip->gpio_chip);
> mutex_destroy(&chip->lock);
> -
> - return 0;
> }
>
> static const struct spi_device_id gen_74x164_spi_ids[] = {
> diff --git a/drivers/gpio/gpio-max3191x.c b/drivers/gpio/gpio-max3191x.c
> index 51cd6f98d1c7..161c4751c5f7 100644
> --- a/drivers/gpio/gpio-max3191x.c
> +++ b/drivers/gpio/gpio-max3191x.c
> @@ -443,14 +443,12 @@ static int max3191x_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int max3191x_remove(struct spi_device *spi)
> +static void max3191x_remove(struct spi_device *spi)
> {
> struct max3191x_chip *max3191x = spi_get_drvdata(spi);
>
> gpiochip_remove(&max3191x->gpio);
> mutex_destroy(&max3191x->lock);
> -
> - return 0;
> }
>
> static int __init max3191x_register_driver(struct spi_driver *sdrv)
> diff --git a/drivers/gpio/gpio-max7301.c b/drivers/gpio/gpio-max7301.c
> index 5862d73bf325..11813f41d460 100644
> --- a/drivers/gpio/gpio-max7301.c
> +++ b/drivers/gpio/gpio-max7301.c
> @@ -64,11 +64,9 @@ static int max7301_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int max7301_remove(struct spi_device *spi)
> +static void max7301_remove(struct spi_device *spi)
> {
> __max730x_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id max7301_id[] = {
> diff --git a/drivers/gpio/gpio-mc33880.c b/drivers/gpio/gpio-mc33880.c
> index 31d2be1bebc8..cd9b16dbe1a9 100644
> --- a/drivers/gpio/gpio-mc33880.c
> +++ b/drivers/gpio/gpio-mc33880.c
> @@ -134,7 +134,7 @@ static int mc33880_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mc33880_remove(struct spi_device *spi)
> +static void mc33880_remove(struct spi_device *spi)
> {
> struct mc33880 *mc;
>
> @@ -142,8 +142,6 @@ static int mc33880_remove(struct spi_device *spi)
>
> gpiochip_remove(&mc->chip);
> mutex_destroy(&mc->lock);
> -
> - return 0;
> }
>
> static struct spi_driver mc33880_driver = {
> diff --git a/drivers/gpio/gpio-pisosr.c b/drivers/gpio/gpio-pisosr.c
> index 8e04054cf07e..81a47ae09ff8 100644
> --- a/drivers/gpio/gpio-pisosr.c
> +++ b/drivers/gpio/gpio-pisosr.c
> @@ -163,15 +163,13 @@ static int pisosr_gpio_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int pisosr_gpio_remove(struct spi_device *spi)
> +static void pisosr_gpio_remove(struct spi_device *spi)
> {
> struct pisosr_gpio *gpio = spi_get_drvdata(spi);
>
> gpiochip_remove(&gpio->chip);
>
> mutex_destroy(&gpio->lock);
> -
> - return 0;
> }
>
> static const struct spi_device_id pisosr_gpio_id_table[] = {
> diff --git a/drivers/gpu/drm/panel/panel-abt-y030xx067a.c b/drivers/gpu/drm/panel/panel-abt-y030xx067a.c
> index f043b484055b..ed626fdc08e8 100644
> --- a/drivers/gpu/drm/panel/panel-abt-y030xx067a.c
> +++ b/drivers/gpu/drm/panel/panel-abt-y030xx067a.c
> @@ -293,15 +293,13 @@ static int y030xx067a_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int y030xx067a_remove(struct spi_device *spi)
> +static void y030xx067a_remove(struct spi_device *spi)
> {
> struct y030xx067a *priv = spi_get_drvdata(spi);
>
> drm_panel_remove(&priv->panel);
> drm_panel_disable(&priv->panel);
> drm_panel_unprepare(&priv->panel);
> -
> - return 0;
> }
>
> static const struct drm_display_mode y030xx067a_modes[] = {
> diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9322.c b/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
> index 8e84df9a0033..3dfafa585127 100644
> --- a/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
> +++ b/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
> @@ -896,14 +896,12 @@ static int ili9322_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ili9322_remove(struct spi_device *spi)
> +static void ili9322_remove(struct spi_device *spi)
> {
> struct ili9322 *ili = spi_get_drvdata(spi);
>
> ili9322_power_off(ili);
> drm_panel_remove(&ili->panel);
> -
> - return 0;
> }
>
> /*
> diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9341.c b/drivers/gpu/drm/panel/panel-ilitek-ili9341.c
> index 2c3378a259b1..a07ef26234e5 100644
> --- a/drivers/gpu/drm/panel/panel-ilitek-ili9341.c
> +++ b/drivers/gpu/drm/panel/panel-ilitek-ili9341.c
> @@ -728,7 +728,7 @@ static int ili9341_probe(struct spi_device *spi)
> return -1;
> }
>
> -static int ili9341_remove(struct spi_device *spi)
> +static void ili9341_remove(struct spi_device *spi)
> {
> const struct spi_device_id *id = spi_get_device_id(spi);
> struct ili9341 *ili = spi_get_drvdata(spi);
> @@ -741,7 +741,6 @@ static int ili9341_remove(struct spi_device *spi)
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> }
> - return 0;
> }
>
> static void ili9341_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/panel/panel-innolux-ej030na.c b/drivers/gpu/drm/panel/panel-innolux-ej030na.c
> index c558de3f99be..e3b1daa0cb72 100644
> --- a/drivers/gpu/drm/panel/panel-innolux-ej030na.c
> +++ b/drivers/gpu/drm/panel/panel-innolux-ej030na.c
> @@ -219,15 +219,13 @@ static int ej030na_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ej030na_remove(struct spi_device *spi)
> +static void ej030na_remove(struct spi_device *spi)
> {
> struct ej030na *priv = spi_get_drvdata(spi);
>
> drm_panel_remove(&priv->panel);
> drm_panel_disable(&priv->panel);
> drm_panel_unprepare(&priv->panel);
> -
> - return 0;
> }
>
> static const struct drm_display_mode ej030na_modes[] = {
> diff --git a/drivers/gpu/drm/panel/panel-lg-lb035q02.c b/drivers/gpu/drm/panel/panel-lg-lb035q02.c
> index f3183b68704f..9d0d4faa3f58 100644
> --- a/drivers/gpu/drm/panel/panel-lg-lb035q02.c
> +++ b/drivers/gpu/drm/panel/panel-lg-lb035q02.c
> @@ -203,14 +203,12 @@ static int lb035q02_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int lb035q02_remove(struct spi_device *spi)
> +static void lb035q02_remove(struct spi_device *spi)
> {
> struct lb035q02_device *lcd = spi_get_drvdata(spi);
>
> drm_panel_remove(&lcd->panel);
> drm_panel_disable(&lcd->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id lb035q02_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-lg-lg4573.c b/drivers/gpu/drm/panel/panel-lg-lg4573.c
> index 8e5160af1de5..cf246d15b7b6 100644
> --- a/drivers/gpu/drm/panel/panel-lg-lg4573.c
> +++ b/drivers/gpu/drm/panel/panel-lg-lg4573.c
> @@ -266,14 +266,12 @@ static int lg4573_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int lg4573_remove(struct spi_device *spi)
> +static void lg4573_remove(struct spi_device *spi)
> {
> struct lg4573 *ctx = spi_get_drvdata(spi);
>
> lg4573_display_off(ctx);
> drm_panel_remove(&ctx->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id lg4573_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c b/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c
> index 6e5ab1debc8b..81c5c541a351 100644
> --- a/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c
> +++ b/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c
> @@ -212,15 +212,13 @@ static int nl8048_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int nl8048_remove(struct spi_device *spi)
> +static void nl8048_remove(struct spi_device *spi)
> {
> struct nl8048_panel *lcd = spi_get_drvdata(spi);
>
> drm_panel_remove(&lcd->panel);
> drm_panel_disable(&lcd->panel);
> drm_panel_unprepare(&lcd->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id nl8048_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-novatek-nt39016.c b/drivers/gpu/drm/panel/panel-novatek-nt39016.c
> index d036853db865..f58cfb10b58a 100644
> --- a/drivers/gpu/drm/panel/panel-novatek-nt39016.c
> +++ b/drivers/gpu/drm/panel/panel-novatek-nt39016.c
> @@ -292,7 +292,7 @@ static int nt39016_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int nt39016_remove(struct spi_device *spi)
> +static void nt39016_remove(struct spi_device *spi)
> {
> struct nt39016 *panel = spi_get_drvdata(spi);
>
> @@ -300,8 +300,6 @@ static int nt39016_remove(struct spi_device *spi)
>
> nt39016_disable(&panel->drm_panel);
> nt39016_unprepare(&panel->drm_panel);
> -
> - return 0;
> }
>
> static const struct drm_display_mode kd035g6_display_modes[] = {
> diff --git a/drivers/gpu/drm/panel/panel-samsung-db7430.c b/drivers/gpu/drm/panel/panel-samsung-db7430.c
> index ead479719f00..04640c5256a8 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-db7430.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-db7430.c
> @@ -314,12 +314,11 @@ static int db7430_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int db7430_remove(struct spi_device *spi)
> +static void db7430_remove(struct spi_device *spi)
> {
> struct db7430 *db = spi_get_drvdata(spi);
>
> drm_panel_remove(&db->panel);
> - return 0;
> }
>
> /*
> diff --git a/drivers/gpu/drm/panel/panel-samsung-ld9040.c b/drivers/gpu/drm/panel/panel-samsung-ld9040.c
> index c4b388850a13..01eb211f32f7 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-ld9040.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-ld9040.c
> @@ -358,14 +358,12 @@ static int ld9040_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ld9040_remove(struct spi_device *spi)
> +static void ld9040_remove(struct spi_device *spi)
> {
> struct ld9040 *ctx = spi_get_drvdata(spi);
>
> ld9040_power_off(ctx);
> drm_panel_remove(&ctx->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id ld9040_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-samsung-s6d27a1.c b/drivers/gpu/drm/panel/panel-samsung-s6d27a1.c
> index 1696ceb36aa0..2adb223a895c 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-s6d27a1.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-s6d27a1.c
> @@ -291,12 +291,11 @@ static int s6d27a1_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int s6d27a1_remove(struct spi_device *spi)
> +static void s6d27a1_remove(struct spi_device *spi)
> {
> struct s6d27a1 *ctx = spi_get_drvdata(spi);
>
> drm_panel_remove(&ctx->panel);
> - return 0;
> }
>
> static const struct of_device_id s6d27a1_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e63m0-spi.c b/drivers/gpu/drm/panel/panel-samsung-s6e63m0-spi.c
> index c178d962b0d5..d99afcc672ca 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-s6e63m0-spi.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-s6e63m0-spi.c
> @@ -62,10 +62,9 @@ static int s6e63m0_spi_probe(struct spi_device *spi)
> s6e63m0_spi_dcs_write, false);
> }
>
> -static int s6e63m0_spi_remove(struct spi_device *spi)
> +static void s6e63m0_spi_remove(struct spi_device *spi)
> {
> s6e63m0_remove(&spi->dev);
> - return 0;
> }
>
> static const struct of_device_id s6e63m0_spi_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7789v.c b/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
> index 61e565524542..bbc4569cbcdc 100644
> --- a/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
> +++ b/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
> @@ -387,13 +387,11 @@ static int st7789v_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int st7789v_remove(struct spi_device *spi)
> +static void st7789v_remove(struct spi_device *spi)
> {
> struct st7789v *ctx = spi_get_drvdata(spi);
>
> drm_panel_remove(&ctx->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id st7789v_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-sony-acx565akm.c b/drivers/gpu/drm/panel/panel-sony-acx565akm.c
> index ba0b3ead150f..0d7541a33f87 100644
> --- a/drivers/gpu/drm/panel/panel-sony-acx565akm.c
> +++ b/drivers/gpu/drm/panel/panel-sony-acx565akm.c
> @@ -655,7 +655,7 @@ static int acx565akm_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int acx565akm_remove(struct spi_device *spi)
> +static void acx565akm_remove(struct spi_device *spi)
> {
> struct acx565akm_panel *lcd = spi_get_drvdata(spi);
>
> @@ -666,8 +666,6 @@ static int acx565akm_remove(struct spi_device *spi)
>
> drm_panel_disable(&lcd->panel);
> drm_panel_unprepare(&lcd->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id acx565akm_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c b/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c
> index ba0c00d1a001..4dbf8b88f264 100644
> --- a/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c
> +++ b/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c
> @@ -350,15 +350,13 @@ static int td028ttec1_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int td028ttec1_remove(struct spi_device *spi)
> +static void td028ttec1_remove(struct spi_device *spi)
> {
> struct td028ttec1_panel *lcd = spi_get_drvdata(spi);
>
> drm_panel_remove(&lcd->panel);
> drm_panel_disable(&lcd->panel);
> drm_panel_unprepare(&lcd->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id td028ttec1_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c b/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c
> index 1866cdb8f9c1..cf4609bb9b1d 100644
> --- a/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c
> +++ b/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c
> @@ -463,7 +463,7 @@ static int td043mtea1_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int td043mtea1_remove(struct spi_device *spi)
> +static void td043mtea1_remove(struct spi_device *spi)
> {
> struct td043mtea1_panel *lcd = spi_get_drvdata(spi);
>
> @@ -472,8 +472,6 @@ static int td043mtea1_remove(struct spi_device *spi)
> drm_panel_unprepare(&lcd->panel);
>
> sysfs_remove_group(&spi->dev.kobj, &td043mtea1_attr_group);
> -
> - return 0;
> }
>
> static const struct of_device_id td043mtea1_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-tpo-tpg110.c b/drivers/gpu/drm/panel/panel-tpo-tpg110.c
> index e3791dad6830..0b1f5a11a055 100644
> --- a/drivers/gpu/drm/panel/panel-tpo-tpg110.c
> +++ b/drivers/gpu/drm/panel/panel-tpo-tpg110.c
> @@ -450,12 +450,11 @@ static int tpg110_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int tpg110_remove(struct spi_device *spi)
> +static void tpg110_remove(struct spi_device *spi)
> {
> struct tpg110 *tpg = spi_get_drvdata(spi);
>
> drm_panel_remove(&tpg->panel);
> - return 0;
> }
>
> static const struct of_device_id tpg110_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-widechips-ws2401.c b/drivers/gpu/drm/panel/panel-widechips-ws2401.c
> index 8bc976f54b80..236f3cb2b594 100644
> --- a/drivers/gpu/drm/panel/panel-widechips-ws2401.c
> +++ b/drivers/gpu/drm/panel/panel-widechips-ws2401.c
> @@ -407,12 +407,11 @@ static int ws2401_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ws2401_remove(struct spi_device *spi)
> +static void ws2401_remove(struct spi_device *spi)
> {
> struct ws2401 *ws = spi_get_drvdata(spi);
>
> drm_panel_remove(&ws->panel);
> - return 0;
> }
>
> /*
> diff --git a/drivers/gpu/drm/tiny/hx8357d.c b/drivers/gpu/drm/tiny/hx8357d.c
> index 9b33c05732aa..ebb025543f8d 100644
> --- a/drivers/gpu/drm/tiny/hx8357d.c
> +++ b/drivers/gpu/drm/tiny/hx8357d.c
> @@ -263,14 +263,12 @@ static int hx8357d_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int hx8357d_remove(struct spi_device *spi)
> +static void hx8357d_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void hx8357d_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/ili9163.c b/drivers/gpu/drm/tiny/ili9163.c
> index bcc181351236..fc8ed245b0bc 100644
> --- a/drivers/gpu/drm/tiny/ili9163.c
> +++ b/drivers/gpu/drm/tiny/ili9163.c
> @@ -193,14 +193,12 @@ static int ili9163_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ili9163_remove(struct spi_device *spi)
> +static void ili9163_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void ili9163_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/ili9225.c b/drivers/gpu/drm/tiny/ili9225.c
> index 976d3209f164..cc92eb9f2a07 100644
> --- a/drivers/gpu/drm/tiny/ili9225.c
> +++ b/drivers/gpu/drm/tiny/ili9225.c
> @@ -411,14 +411,12 @@ static int ili9225_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ili9225_remove(struct spi_device *spi)
> +static void ili9225_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void ili9225_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/ili9341.c b/drivers/gpu/drm/tiny/ili9341.c
> index 37e0c33399c8..5b8cc770ee7b 100644
> --- a/drivers/gpu/drm/tiny/ili9341.c
> +++ b/drivers/gpu/drm/tiny/ili9341.c
> @@ -225,14 +225,12 @@ static int ili9341_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ili9341_remove(struct spi_device *spi)
> +static void ili9341_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void ili9341_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/ili9486.c b/drivers/gpu/drm/tiny/ili9486.c
> index e9a63f4b2993..6d655e18e0aa 100644
> --- a/drivers/gpu/drm/tiny/ili9486.c
> +++ b/drivers/gpu/drm/tiny/ili9486.c
> @@ -243,14 +243,12 @@ static int ili9486_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ili9486_remove(struct spi_device *spi)
> +static void ili9486_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void ili9486_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/mi0283qt.c b/drivers/gpu/drm/tiny/mi0283qt.c
> index 023de49e7a8e..5e060f6910bb 100644
> --- a/drivers/gpu/drm/tiny/mi0283qt.c
> +++ b/drivers/gpu/drm/tiny/mi0283qt.c
> @@ -233,14 +233,12 @@ static int mi0283qt_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int mi0283qt_remove(struct spi_device *spi)
> +static void mi0283qt_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void mi0283qt_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/repaper.c b/drivers/gpu/drm/tiny/repaper.c
> index 97a775c48cea..beeeb170d0b1 100644
> --- a/drivers/gpu/drm/tiny/repaper.c
> +++ b/drivers/gpu/drm/tiny/repaper.c
> @@ -1140,14 +1140,12 @@ static int repaper_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int repaper_remove(struct spi_device *spi)
> +static void repaper_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void repaper_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/st7586.c b/drivers/gpu/drm/tiny/st7586.c
> index 51b9b9fb3ead..3f38faa1cd8c 100644
> --- a/drivers/gpu/drm/tiny/st7586.c
> +++ b/drivers/gpu/drm/tiny/st7586.c
> @@ -360,14 +360,12 @@ static int st7586_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int st7586_remove(struct spi_device *spi)
> +static void st7586_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void st7586_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/st7735r.c b/drivers/gpu/drm/tiny/st7735r.c
> index fc40dd10efa8..29d618093e94 100644
> --- a/drivers/gpu/drm/tiny/st7735r.c
> +++ b/drivers/gpu/drm/tiny/st7735r.c
> @@ -247,14 +247,12 @@ static int st7735r_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int st7735r_remove(struct spi_device *spi)
> +static void st7735r_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void st7735r_shutdown(struct spi_device *spi)
> diff --git a/drivers/hwmon/adcxx.c b/drivers/hwmon/adcxx.c
> index e5bc5ce09f4e..de37bce24fa6 100644
> --- a/drivers/hwmon/adcxx.c
> +++ b/drivers/hwmon/adcxx.c
> @@ -194,7 +194,7 @@ static int adcxx_probe(struct spi_device *spi)
> return status;
> }
>
> -static int adcxx_remove(struct spi_device *spi)
> +static void adcxx_remove(struct spi_device *spi)
> {
> struct adcxx *adc = spi_get_drvdata(spi);
> int i;
> @@ -205,8 +205,6 @@ static int adcxx_remove(struct spi_device *spi)
> device_remove_file(&spi->dev, &ad_input[i].dev_attr);
>
> mutex_unlock(&adc->lock);
> -
> - return 0;
> }
>
> static const struct spi_device_id adcxx_ids[] = {
> diff --git a/drivers/hwmon/adt7310.c b/drivers/hwmon/adt7310.c
> index c40cac16af68..832d9ec64934 100644
> --- a/drivers/hwmon/adt7310.c
> +++ b/drivers/hwmon/adt7310.c
> @@ -88,10 +88,9 @@ static int adt7310_spi_probe(struct spi_device *spi)
> &adt7310_spi_ops);
> }
>
> -static int adt7310_spi_remove(struct spi_device *spi)
> +static void adt7310_spi_remove(struct spi_device *spi)
> {
> adt7x10_remove(&spi->dev, spi->irq);
> - return 0;
> }
>
> static const struct spi_device_id adt7310_id[] = {
> diff --git a/drivers/hwmon/max1111.c b/drivers/hwmon/max1111.c
> index 5fcfd57df61e..4c5487aeb3cf 100644
> --- a/drivers/hwmon/max1111.c
> +++ b/drivers/hwmon/max1111.c
> @@ -254,7 +254,7 @@ static int max1111_probe(struct spi_device *spi)
> return err;
> }
>
> -static int max1111_remove(struct spi_device *spi)
> +static void max1111_remove(struct spi_device *spi)
> {
> struct max1111_data *data = spi_get_drvdata(spi);
>
> @@ -265,7 +265,6 @@ static int max1111_remove(struct spi_device *spi)
> sysfs_remove_group(&spi->dev.kobj, &max1110_attr_group);
> sysfs_remove_group(&spi->dev.kobj, &max1111_attr_group);
> mutex_destroy(&data->drvdata_lock);
> - return 0;
> }
>
> static const struct spi_device_id max1111_ids[] = {
> diff --git a/drivers/hwmon/max31722.c b/drivers/hwmon/max31722.c
> index 4cf4fe6809a3..93e048ee4955 100644
> --- a/drivers/hwmon/max31722.c
> +++ b/drivers/hwmon/max31722.c
> @@ -100,7 +100,7 @@ static int max31722_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int max31722_remove(struct spi_device *spi)
> +static void max31722_remove(struct spi_device *spi)
> {
> struct max31722_data *data = spi_get_drvdata(spi);
> int ret;
> @@ -111,8 +111,6 @@ static int max31722_remove(struct spi_device *spi)
> if (ret)
> /* There is nothing we can do about this ... */
> dev_warn(&spi->dev, "Failed to put device in stand-by mode\n");
> -
> - return 0;
> }
>
> static int __maybe_unused max31722_suspend(struct device *dev)
> diff --git a/drivers/iio/accel/bma400_spi.c b/drivers/iio/accel/bma400_spi.c
> index 9f622e37477b..9040a717b247 100644
> --- a/drivers/iio/accel/bma400_spi.c
> +++ b/drivers/iio/accel/bma400_spi.c
> @@ -87,11 +87,9 @@ static int bma400_spi_probe(struct spi_device *spi)
> return bma400_probe(&spi->dev, regmap, id->name);
> }
>
> -static int bma400_spi_remove(struct spi_device *spi)
> +static void bma400_spi_remove(struct spi_device *spi)
> {
> bma400_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id bma400_spi_ids[] = {
> diff --git a/drivers/iio/accel/bmc150-accel-spi.c b/drivers/iio/accel/bmc150-accel-spi.c
> index 11559567cb39..80007cc2d044 100644
> --- a/drivers/iio/accel/bmc150-accel-spi.c
> +++ b/drivers/iio/accel/bmc150-accel-spi.c
> @@ -35,11 +35,9 @@ static int bmc150_accel_probe(struct spi_device *spi)
> true);
> }
>
> -static int bmc150_accel_remove(struct spi_device *spi)
> +static void bmc150_accel_remove(struct spi_device *spi)
> {
> bmc150_accel_core_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct acpi_device_id bmc150_accel_acpi_match[] = {
> diff --git a/drivers/iio/accel/bmi088-accel-spi.c b/drivers/iio/accel/bmi088-accel-spi.c
> index 758ad2f12896..06d99d9949f3 100644
> --- a/drivers/iio/accel/bmi088-accel-spi.c
> +++ b/drivers/iio/accel/bmi088-accel-spi.c
> @@ -56,11 +56,9 @@ static int bmi088_accel_probe(struct spi_device *spi)
> true);
> }
>
> -static int bmi088_accel_remove(struct spi_device *spi)
> +static void bmi088_accel_remove(struct spi_device *spi)
> {
> bmi088_accel_core_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id bmi088_accel_id[] = {
> diff --git a/drivers/iio/accel/kxsd9-spi.c b/drivers/iio/accel/kxsd9-spi.c
> index 441e6b764281..57c451cfb9e5 100644
> --- a/drivers/iio/accel/kxsd9-spi.c
> +++ b/drivers/iio/accel/kxsd9-spi.c
> @@ -32,11 +32,9 @@ static int kxsd9_spi_probe(struct spi_device *spi)
> spi_get_device_id(spi)->name);
> }
>
> -static int kxsd9_spi_remove(struct spi_device *spi)
> +static void kxsd9_spi_remove(struct spi_device *spi)
> {
> kxsd9_common_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id kxsd9_spi_id[] = {
> diff --git a/drivers/iio/accel/mma7455_spi.c b/drivers/iio/accel/mma7455_spi.c
> index ecf690692dcc..b746031551a3 100644
> --- a/drivers/iio/accel/mma7455_spi.c
> +++ b/drivers/iio/accel/mma7455_spi.c
> @@ -22,11 +22,9 @@ static int mma7455_spi_probe(struct spi_device *spi)
> return mma7455_core_probe(&spi->dev, regmap, id->name);
> }
>
> -static int mma7455_spi_remove(struct spi_device *spi)
> +static void mma7455_spi_remove(struct spi_device *spi)
> {
> mma7455_core_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id mma7455_spi_ids[] = {
> diff --git a/drivers/iio/accel/sca3000.c b/drivers/iio/accel/sca3000.c
> index 43ecacbdc95a..83c81072511e 100644
> --- a/drivers/iio/accel/sca3000.c
> +++ b/drivers/iio/accel/sca3000.c
> @@ -1524,7 +1524,7 @@ static int sca3000_stop_all_interrupts(struct sca3000_state *st)
> return ret;
> }
>
> -static int sca3000_remove(struct spi_device *spi)
> +static void sca3000_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct sca3000_state *st = iio_priv(indio_dev);
> @@ -1535,8 +1535,6 @@ static int sca3000_remove(struct spi_device *spi)
> sca3000_stop_all_interrupts(st);
> if (spi->irq)
> free_irq(spi->irq, indio_dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id sca3000_id[] = {
> diff --git a/drivers/iio/adc/ad7266.c b/drivers/iio/adc/ad7266.c
> index 1d345d66742d..c17d9b5fbaf6 100644
> --- a/drivers/iio/adc/ad7266.c
> +++ b/drivers/iio/adc/ad7266.c
> @@ -479,7 +479,7 @@ static int ad7266_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad7266_remove(struct spi_device *spi)
> +static void ad7266_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad7266_state *st = iio_priv(indio_dev);
> @@ -488,8 +488,6 @@ static int ad7266_remove(struct spi_device *spi)
> iio_triggered_buffer_cleanup(indio_dev);
> if (!IS_ERR(st->reg))
> regulator_disable(st->reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad7266_id[] = {
> diff --git a/drivers/iio/adc/ltc2496.c b/drivers/iio/adc/ltc2496.c
> index dd956a7c216e..5a55f79f2574 100644
> --- a/drivers/iio/adc/ltc2496.c
> +++ b/drivers/iio/adc/ltc2496.c
> @@ -78,13 +78,11 @@ static int ltc2496_probe(struct spi_device *spi)
> return ltc2497core_probe(dev, indio_dev);
> }
>
> -static int ltc2496_remove(struct spi_device *spi)
> +static void ltc2496_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
>
> ltc2497core_remove(indio_dev);
> -
> - return 0;
> }
>
> static const struct of_device_id ltc2496_of_match[] = {
> diff --git a/drivers/iio/adc/mcp320x.c b/drivers/iio/adc/mcp320x.c
> index 8d1cff28cae0..b4c69acb33e3 100644
> --- a/drivers/iio/adc/mcp320x.c
> +++ b/drivers/iio/adc/mcp320x.c
> @@ -459,15 +459,13 @@ static int mcp320x_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mcp320x_remove(struct spi_device *spi)
> +static void mcp320x_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct mcp320x *adc = iio_priv(indio_dev);
>
> iio_device_unregister(indio_dev);
> regulator_disable(adc->reg);
> -
> - return 0;
> }
>
> static const struct of_device_id mcp320x_dt_ids[] = {
> diff --git a/drivers/iio/adc/mcp3911.c b/drivers/iio/adc/mcp3911.c
> index 13535f148c4c..1cb4590fe412 100644
> --- a/drivers/iio/adc/mcp3911.c
> +++ b/drivers/iio/adc/mcp3911.c
> @@ -321,7 +321,7 @@ static int mcp3911_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mcp3911_remove(struct spi_device *spi)
> +static void mcp3911_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct mcp3911 *adc = iio_priv(indio_dev);
> @@ -331,8 +331,6 @@ static int mcp3911_remove(struct spi_device *spi)
> clk_disable_unprepare(adc->clki);
> if (adc->vref)
> regulator_disable(adc->vref);
> -
> - return 0;
> }
>
> static const struct of_device_id mcp3911_dt_ids[] = {
> diff --git a/drivers/iio/adc/ti-adc12138.c b/drivers/iio/adc/ti-adc12138.c
> index 6eb62b564dae..59d75d09604f 100644
> --- a/drivers/iio/adc/ti-adc12138.c
> +++ b/drivers/iio/adc/ti-adc12138.c
> @@ -503,7 +503,7 @@ static int adc12138_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int adc12138_remove(struct spi_device *spi)
> +static void adc12138_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct adc12138 *adc = iio_priv(indio_dev);
> @@ -514,8 +514,6 @@ static int adc12138_remove(struct spi_device *spi)
> regulator_disable(adc->vref_n);
> regulator_disable(adc->vref_p);
> clk_disable_unprepare(adc->cclk);
> -
> - return 0;
> }
>
> static const struct of_device_id adc12138_dt_ids[] = {
> diff --git a/drivers/iio/adc/ti-ads7950.c b/drivers/iio/adc/ti-ads7950.c
> index a7efa3eada2c..e3658b969c5b 100644
> --- a/drivers/iio/adc/ti-ads7950.c
> +++ b/drivers/iio/adc/ti-ads7950.c
> @@ -662,7 +662,7 @@ static int ti_ads7950_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ti_ads7950_remove(struct spi_device *spi)
> +static void ti_ads7950_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ti_ads7950_state *st = iio_priv(indio_dev);
> @@ -672,8 +672,6 @@ static int ti_ads7950_remove(struct spi_device *spi)
> iio_triggered_buffer_cleanup(indio_dev);
> regulator_disable(st->reg);
> mutex_destroy(&st->slock);
> -
> - return 0;
> }
>
> static const struct spi_device_id ti_ads7950_id[] = {
> diff --git a/drivers/iio/adc/ti-ads8688.c b/drivers/iio/adc/ti-ads8688.c
> index 2e24717d7f55..22c2583eedd0 100644
> --- a/drivers/iio/adc/ti-ads8688.c
> +++ b/drivers/iio/adc/ti-ads8688.c
> @@ -479,7 +479,7 @@ static int ads8688_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ads8688_remove(struct spi_device *spi)
> +static void ads8688_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ads8688_state *st = iio_priv(indio_dev);
> @@ -489,8 +489,6 @@ static int ads8688_remove(struct spi_device *spi)
>
> if (!IS_ERR(st->reg))
> regulator_disable(st->reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ads8688_id[] = {
> diff --git a/drivers/iio/adc/ti-tlc4541.c b/drivers/iio/adc/ti-tlc4541.c
> index 403b787f9f7e..2406eda9dfc6 100644
> --- a/drivers/iio/adc/ti-tlc4541.c
> +++ b/drivers/iio/adc/ti-tlc4541.c
> @@ -224,7 +224,7 @@ static int tlc4541_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int tlc4541_remove(struct spi_device *spi)
> +static void tlc4541_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct tlc4541_state *st = iio_priv(indio_dev);
> @@ -232,8 +232,6 @@ static int tlc4541_remove(struct spi_device *spi)
> iio_device_unregister(indio_dev);
> iio_triggered_buffer_cleanup(indio_dev);
> regulator_disable(st->reg);
> -
> - return 0;
> }
>
> static const struct of_device_id tlc4541_dt_ids[] = {
> diff --git a/drivers/iio/amplifiers/ad8366.c b/drivers/iio/amplifiers/ad8366.c
> index cfcf18a0bce8..1134ae12e531 100644
> --- a/drivers/iio/amplifiers/ad8366.c
> +++ b/drivers/iio/amplifiers/ad8366.c
> @@ -298,7 +298,7 @@ static int ad8366_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad8366_remove(struct spi_device *spi)
> +static void ad8366_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad8366_state *st = iio_priv(indio_dev);
> @@ -308,8 +308,6 @@ static int ad8366_remove(struct spi_device *spi)
>
> if (!IS_ERR(reg))
> regulator_disable(reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad8366_id[] = {
> diff --git a/drivers/iio/common/ssp_sensors/ssp_dev.c b/drivers/iio/common/ssp_sensors/ssp_dev.c
> index 1aee87100038..eafaf4529df5 100644
> --- a/drivers/iio/common/ssp_sensors/ssp_dev.c
> +++ b/drivers/iio/common/ssp_sensors/ssp_dev.c
> @@ -586,7 +586,7 @@ static int ssp_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ssp_remove(struct spi_device *spi)
> +static void ssp_remove(struct spi_device *spi)
> {
> struct ssp_data *data = spi_get_drvdata(spi);
>
> @@ -608,8 +608,6 @@ static int ssp_remove(struct spi_device *spi)
> mutex_destroy(&data->pending_lock);
>
> mfd_remove_devices(&spi->dev);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/iio/dac/ad5360.c b/drivers/iio/dac/ad5360.c
> index 2d3b14c407d8..ecbc6a51d60f 100644
> --- a/drivers/iio/dac/ad5360.c
> +++ b/drivers/iio/dac/ad5360.c
> @@ -521,7 +521,7 @@ static int ad5360_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5360_remove(struct spi_device *spi)
> +static void ad5360_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad5360_state *st = iio_priv(indio_dev);
> @@ -531,8 +531,6 @@ static int ad5360_remove(struct spi_device *spi)
> kfree(indio_dev->channels);
>
> regulator_bulk_disable(st->chip_info->num_vrefs, st->vref_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5360_ids[] = {
> diff --git a/drivers/iio/dac/ad5380.c b/drivers/iio/dac/ad5380.c
> index e38860a6a9f3..82e1d9bd773e 100644
> --- a/drivers/iio/dac/ad5380.c
> +++ b/drivers/iio/dac/ad5380.c
> @@ -488,11 +488,9 @@ static int ad5380_spi_probe(struct spi_device *spi)
> return ad5380_probe(&spi->dev, regmap, id->driver_data, id->name);
> }
>
> -static int ad5380_spi_remove(struct spi_device *spi)
> +static void ad5380_spi_remove(struct spi_device *spi)
> {
> ad5380_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5380_spi_ids[] = {
> diff --git a/drivers/iio/dac/ad5446.c b/drivers/iio/dac/ad5446.c
> index 1c9b54c012a7..14cfabacbea5 100644
> --- a/drivers/iio/dac/ad5446.c
> +++ b/drivers/iio/dac/ad5446.c
> @@ -491,11 +491,9 @@ static int ad5446_spi_probe(struct spi_device *spi)
> &ad5446_spi_chip_info[id->driver_data]);
> }
>
> -static int ad5446_spi_remove(struct spi_device *spi)
> +static void ad5446_spi_remove(struct spi_device *spi)
> {
> ad5446_remove(&spi->dev);
> -
> - return 0;
> }
>
> static struct spi_driver ad5446_spi_driver = {
> diff --git a/drivers/iio/dac/ad5449.c b/drivers/iio/dac/ad5449.c
> index f5e93c6acc9d..bad9bdaafa94 100644
> --- a/drivers/iio/dac/ad5449.c
> +++ b/drivers/iio/dac/ad5449.c
> @@ -330,7 +330,7 @@ static int ad5449_spi_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5449_spi_remove(struct spi_device *spi)
> +static void ad5449_spi_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad5449 *st = iio_priv(indio_dev);
> @@ -338,8 +338,6 @@ static int ad5449_spi_remove(struct spi_device *spi)
> iio_device_unregister(indio_dev);
>
> regulator_bulk_disable(st->chip_info->num_channels, st->vref_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5449_spi_ids[] = {
> diff --git a/drivers/iio/dac/ad5504.c b/drivers/iio/dac/ad5504.c
> index b631261efa97..8507573aa13e 100644
> --- a/drivers/iio/dac/ad5504.c
> +++ b/drivers/iio/dac/ad5504.c
> @@ -336,7 +336,7 @@ static int ad5504_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5504_remove(struct spi_device *spi)
> +static void ad5504_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad5504_state *st = iio_priv(indio_dev);
> @@ -345,8 +345,6 @@ static int ad5504_remove(struct spi_device *spi)
>
> if (!IS_ERR(st->reg))
> regulator_disable(st->reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5504_id[] = {
> diff --git a/drivers/iio/dac/ad5592r.c b/drivers/iio/dac/ad5592r.c
> index 6bfd7951e18c..0f7abfa75bec 100644
> --- a/drivers/iio/dac/ad5592r.c
> +++ b/drivers/iio/dac/ad5592r.c
> @@ -130,11 +130,9 @@ static int ad5592r_spi_probe(struct spi_device *spi)
> return ad5592r_probe(&spi->dev, id->name, &ad5592r_rw_ops);
> }
>
> -static int ad5592r_spi_remove(struct spi_device *spi)
> +static void ad5592r_spi_remove(struct spi_device *spi)
> {
> ad5592r_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5592r_spi_ids[] = {
> diff --git a/drivers/iio/dac/ad5624r_spi.c b/drivers/iio/dac/ad5624r_spi.c
> index 3c98941b9f99..371e812850eb 100644
> --- a/drivers/iio/dac/ad5624r_spi.c
> +++ b/drivers/iio/dac/ad5624r_spi.c
> @@ -293,7 +293,7 @@ static int ad5624r_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5624r_remove(struct spi_device *spi)
> +static void ad5624r_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad5624r_state *st = iio_priv(indio_dev);
> @@ -301,8 +301,6 @@ static int ad5624r_remove(struct spi_device *spi)
> iio_device_unregister(indio_dev);
> if (!IS_ERR(st->reg))
> regulator_disable(st->reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5624r_id[] = {
> diff --git a/drivers/iio/dac/ad5686-spi.c b/drivers/iio/dac/ad5686-spi.c
> index 2628810fdbb1..d26fb29b6b04 100644
> --- a/drivers/iio/dac/ad5686-spi.c
> +++ b/drivers/iio/dac/ad5686-spi.c
> @@ -95,11 +95,9 @@ static int ad5686_spi_probe(struct spi_device *spi)
> ad5686_spi_write, ad5686_spi_read);
> }
>
> -static int ad5686_spi_remove(struct spi_device *spi)
> +static void ad5686_spi_remove(struct spi_device *spi)
> {
> ad5686_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5686_spi_id[] = {
> diff --git a/drivers/iio/dac/ad5761.c b/drivers/iio/dac/ad5761.c
> index e37e095e94fc..4cb8471db81e 100644
> --- a/drivers/iio/dac/ad5761.c
> +++ b/drivers/iio/dac/ad5761.c
> @@ -394,7 +394,7 @@ static int ad5761_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5761_remove(struct spi_device *spi)
> +static void ad5761_remove(struct spi_device *spi)
> {
> struct iio_dev *iio_dev = spi_get_drvdata(spi);
> struct ad5761_state *st = iio_priv(iio_dev);
> @@ -403,8 +403,6 @@ static int ad5761_remove(struct spi_device *spi)
>
> if (!IS_ERR_OR_NULL(st->vref_reg))
> regulator_disable(st->vref_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5761_id[] = {
> diff --git a/drivers/iio/dac/ad5764.c b/drivers/iio/dac/ad5764.c
> index ae089b9145cb..d235a8047ba0 100644
> --- a/drivers/iio/dac/ad5764.c
> +++ b/drivers/iio/dac/ad5764.c
> @@ -332,7 +332,7 @@ static int ad5764_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5764_remove(struct spi_device *spi)
> +static void ad5764_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad5764_state *st = iio_priv(indio_dev);
> @@ -341,8 +341,6 @@ static int ad5764_remove(struct spi_device *spi)
>
> if (st->chip_info->int_vref == 0)
> regulator_bulk_disable(ARRAY_SIZE(st->vref_reg), st->vref_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5764_ids[] = {
> diff --git a/drivers/iio/dac/ad5791.c b/drivers/iio/dac/ad5791.c
> index 7b4579d73d18..2b14914b4050 100644
> --- a/drivers/iio/dac/ad5791.c
> +++ b/drivers/iio/dac/ad5791.c
> @@ -428,7 +428,7 @@ static int ad5791_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5791_remove(struct spi_device *spi)
> +static void ad5791_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad5791_state *st = iio_priv(indio_dev);
> @@ -439,8 +439,6 @@ static int ad5791_remove(struct spi_device *spi)
>
> if (!IS_ERR(st->reg_vss))
> regulator_disable(st->reg_vss);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5791_id[] = {
> diff --git a/drivers/iio/dac/ad8801.c b/drivers/iio/dac/ad8801.c
> index 5ecfdad54dec..6be35c92d435 100644
> --- a/drivers/iio/dac/ad8801.c
> +++ b/drivers/iio/dac/ad8801.c
> @@ -193,7 +193,7 @@ static int ad8801_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad8801_remove(struct spi_device *spi)
> +static void ad8801_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad8801_state *state = iio_priv(indio_dev);
> @@ -202,8 +202,6 @@ static int ad8801_remove(struct spi_device *spi)
> if (state->vrefl_reg)
> regulator_disable(state->vrefl_reg);
> regulator_disable(state->vrefh_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad8801_ids[] = {
> diff --git a/drivers/iio/dac/ltc1660.c b/drivers/iio/dac/ltc1660.c
> index f6ec9bf5815e..c76233c9bb72 100644
> --- a/drivers/iio/dac/ltc1660.c
> +++ b/drivers/iio/dac/ltc1660.c
> @@ -206,15 +206,13 @@ static int ltc1660_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ltc1660_remove(struct spi_device *spi)
> +static void ltc1660_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ltc1660_priv *priv = iio_priv(indio_dev);
>
> iio_device_unregister(indio_dev);
> regulator_disable(priv->vref_reg);
> -
> - return 0;
> }
>
> static const struct of_device_id ltc1660_dt_ids[] = {
> diff --git a/drivers/iio/dac/ltc2632.c b/drivers/iio/dac/ltc2632.c
> index 53e4b887d372..aed46c80757e 100644
> --- a/drivers/iio/dac/ltc2632.c
> +++ b/drivers/iio/dac/ltc2632.c
> @@ -372,7 +372,7 @@ static int ltc2632_probe(struct spi_device *spi)
> return iio_device_register(indio_dev);
> }
>
> -static int ltc2632_remove(struct spi_device *spi)
> +static void ltc2632_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ltc2632_state *st = iio_priv(indio_dev);
> @@ -381,8 +381,6 @@ static int ltc2632_remove(struct spi_device *spi)
>
> if (st->vref_reg)
> regulator_disable(st->vref_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ltc2632_id[] = {
> diff --git a/drivers/iio/dac/mcp4922.c b/drivers/iio/dac/mcp4922.c
> index 0ae414ee1716..cb9e60e71b91 100644
> --- a/drivers/iio/dac/mcp4922.c
> +++ b/drivers/iio/dac/mcp4922.c
> @@ -172,7 +172,7 @@ static int mcp4922_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mcp4922_remove(struct spi_device *spi)
> +static void mcp4922_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct mcp4922_state *state;
> @@ -180,8 +180,6 @@ static int mcp4922_remove(struct spi_device *spi)
> iio_device_unregister(indio_dev);
> state = iio_priv(indio_dev);
> regulator_disable(state->vref_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id mcp4922_id[] = {
> diff --git a/drivers/iio/dac/ti-dac082s085.c b/drivers/iio/dac/ti-dac082s085.c
> index 6beda2193683..4e1156e6deb2 100644
> --- a/drivers/iio/dac/ti-dac082s085.c
> +++ b/drivers/iio/dac/ti-dac082s085.c
> @@ -313,7 +313,7 @@ static int ti_dac_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ti_dac_remove(struct spi_device *spi)
> +static void ti_dac_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ti_dac_chip *ti_dac = iio_priv(indio_dev);
> @@ -321,8 +321,6 @@ static int ti_dac_remove(struct spi_device *spi)
> iio_device_unregister(indio_dev);
> mutex_destroy(&ti_dac->lock);
> regulator_disable(ti_dac->vref);
> -
> - return 0;
> }
>
> static const struct of_device_id ti_dac_of_id[] = {
> diff --git a/drivers/iio/dac/ti-dac7311.c b/drivers/iio/dac/ti-dac7311.c
> index 99f275829ec2..e10d17e60ed3 100644
> --- a/drivers/iio/dac/ti-dac7311.c
> +++ b/drivers/iio/dac/ti-dac7311.c
> @@ -292,7 +292,7 @@ static int ti_dac_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ti_dac_remove(struct spi_device *spi)
> +static void ti_dac_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ti_dac_chip *ti_dac = iio_priv(indio_dev);
> @@ -300,7 +300,6 @@ static int ti_dac_remove(struct spi_device *spi)
> iio_device_unregister(indio_dev);
> mutex_destroy(&ti_dac->lock);
> regulator_disable(ti_dac->vref);
> - return 0;
> }
>
> static const struct of_device_id ti_dac_of_id[] = {
> diff --git a/drivers/iio/frequency/adf4350.c b/drivers/iio/frequency/adf4350.c
> index 3d9eba716b69..f3521330f6fb 100644
> --- a/drivers/iio/frequency/adf4350.c
> +++ b/drivers/iio/frequency/adf4350.c
> @@ -589,7 +589,7 @@ static int adf4350_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int adf4350_remove(struct spi_device *spi)
> +static void adf4350_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct adf4350_state *st = iio_priv(indio_dev);
> @@ -604,8 +604,6 @@ static int adf4350_remove(struct spi_device *spi)
>
> if (!IS_ERR(reg))
> regulator_disable(reg);
> -
> - return 0;
> }
>
> static const struct of_device_id adf4350_of_match[] = {
> diff --git a/drivers/iio/gyro/bmg160_spi.c b/drivers/iio/gyro/bmg160_spi.c
> index 745962e1e423..fc2e453527b9 100644
> --- a/drivers/iio/gyro/bmg160_spi.c
> +++ b/drivers/iio/gyro/bmg160_spi.c
> @@ -27,11 +27,9 @@ static int bmg160_spi_probe(struct spi_device *spi)
> return bmg160_core_probe(&spi->dev, regmap, spi->irq, id->name);
> }
>
> -static int bmg160_spi_remove(struct spi_device *spi)
> +static void bmg160_spi_remove(struct spi_device *spi)
> {
> bmg160_core_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id bmg160_spi_id[] = {
> diff --git a/drivers/iio/gyro/fxas21002c_spi.c b/drivers/iio/gyro/fxas21002c_spi.c
> index 77ceebef4e34..c3ac169facf9 100644
> --- a/drivers/iio/gyro/fxas21002c_spi.c
> +++ b/drivers/iio/gyro/fxas21002c_spi.c
> @@ -34,11 +34,9 @@ static int fxas21002c_spi_probe(struct spi_device *spi)
> return fxas21002c_core_probe(&spi->dev, regmap, spi->irq, id->name);
> }
>
> -static int fxas21002c_spi_remove(struct spi_device *spi)
> +static void fxas21002c_spi_remove(struct spi_device *spi)
> {
> fxas21002c_core_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id fxas21002c_spi_id[] = {
> diff --git a/drivers/iio/health/afe4403.c b/drivers/iio/health/afe4403.c
> index 273f16dcaff8..856ec901b091 100644
> --- a/drivers/iio/health/afe4403.c
> +++ b/drivers/iio/health/afe4403.c
> @@ -570,7 +570,7 @@ static int afe4403_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int afe4403_remove(struct spi_device *spi)
> +static void afe4403_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct afe4403_data *afe = iio_priv(indio_dev);
> @@ -586,8 +586,6 @@ static int afe4403_remove(struct spi_device *spi)
> ret = regulator_disable(afe->regulator);
> if (ret)
> dev_warn(afe->dev, "Unable to disable regulator\n");
> -
> - return 0;
> }
>
> static const struct spi_device_id afe4403_ids[] = {
> diff --git a/drivers/iio/magnetometer/bmc150_magn_spi.c b/drivers/iio/magnetometer/bmc150_magn_spi.c
> index c6ed3ea8460a..4c570412d65c 100644
> --- a/drivers/iio/magnetometer/bmc150_magn_spi.c
> +++ b/drivers/iio/magnetometer/bmc150_magn_spi.c
> @@ -29,11 +29,9 @@ static int bmc150_magn_spi_probe(struct spi_device *spi)
> return bmc150_magn_probe(&spi->dev, regmap, spi->irq, id->name);
> }
>
> -static int bmc150_magn_spi_remove(struct spi_device *spi)
> +static void bmc150_magn_spi_remove(struct spi_device *spi)
> {
> bmc150_magn_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id bmc150_magn_spi_id[] = {
> diff --git a/drivers/iio/magnetometer/hmc5843_spi.c b/drivers/iio/magnetometer/hmc5843_spi.c
> index 89cf59a62c28..a99dd9b33e95 100644
> --- a/drivers/iio/magnetometer/hmc5843_spi.c
> +++ b/drivers/iio/magnetometer/hmc5843_spi.c
> @@ -74,11 +74,9 @@ static int hmc5843_spi_probe(struct spi_device *spi)
> id->driver_data, id->name);
> }
>
> -static int hmc5843_spi_remove(struct spi_device *spi)
> +static void hmc5843_spi_remove(struct spi_device *spi)
> {
> hmc5843_common_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id hmc5843_id[] = {
> diff --git a/drivers/iio/potentiometer/max5487.c b/drivers/iio/potentiometer/max5487.c
> index 007c2bd324cb..42723c996c9f 100644
> --- a/drivers/iio/potentiometer/max5487.c
> +++ b/drivers/iio/potentiometer/max5487.c
> @@ -112,7 +112,7 @@ static int max5487_spi_probe(struct spi_device *spi)
> return iio_device_register(indio_dev);
> }
>
> -static int max5487_spi_remove(struct spi_device *spi)
> +static void max5487_spi_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> int ret;
> @@ -123,8 +123,6 @@ static int max5487_spi_remove(struct spi_device *spi)
> ret = max5487_write_cmd(spi, MAX5487_COPY_AB_TO_NV);
> if (ret)
> dev_warn(&spi->dev, "Failed to save wiper regs to NV regs\n");
> -
> - return 0;
> }
>
> static const struct spi_device_id max5487_id[] = {
> diff --git a/drivers/iio/pressure/ms5611_spi.c b/drivers/iio/pressure/ms5611_spi.c
> index 9fa2dcd71760..7ccd960ced5d 100644
> --- a/drivers/iio/pressure/ms5611_spi.c
> +++ b/drivers/iio/pressure/ms5611_spi.c
> @@ -107,11 +107,9 @@ static int ms5611_spi_probe(struct spi_device *spi)
> spi_get_device_id(spi)->driver_data);
> }
>
> -static int ms5611_spi_remove(struct spi_device *spi)
> +static void ms5611_spi_remove(struct spi_device *spi)
> {
> ms5611_remove(spi_get_drvdata(spi));
> -
> - return 0;
> }
>
> static const struct of_device_id ms5611_spi_matches[] = {
> diff --git a/drivers/iio/pressure/zpa2326_spi.c b/drivers/iio/pressure/zpa2326_spi.c
> index 85201a4bae44..ee8ed77536ca 100644
> --- a/drivers/iio/pressure/zpa2326_spi.c
> +++ b/drivers/iio/pressure/zpa2326_spi.c
> @@ -57,11 +57,9 @@ static int zpa2326_probe_spi(struct spi_device *spi)
> spi->irq, ZPA2326_DEVICE_ID, regmap);
> }
>
> -static int zpa2326_remove_spi(struct spi_device *spi)
> +static void zpa2326_remove_spi(struct spi_device *spi)
> {
> zpa2326_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id zpa2326_spi_ids[] = {
> diff --git a/drivers/input/keyboard/applespi.c b/drivers/input/keyboard/applespi.c
> index eda1b23002b5..d1f5354d5ea2 100644
> --- a/drivers/input/keyboard/applespi.c
> +++ b/drivers/input/keyboard/applespi.c
> @@ -1858,7 +1858,7 @@ static void applespi_drain_reads(struct applespi_data *applespi)
> spin_unlock_irqrestore(&applespi->cmd_msg_lock, flags);
> }
>
> -static int applespi_remove(struct spi_device *spi)
> +static void applespi_remove(struct spi_device *spi)
> {
> struct applespi_data *applespi = spi_get_drvdata(spi);
>
> @@ -1871,8 +1871,6 @@ static int applespi_remove(struct spi_device *spi)
> applespi_drain_reads(applespi);
>
> debugfs_remove_recursive(applespi->debugfs_root);
> -
> - return 0;
> }
>
> static void applespi_shutdown(struct spi_device *spi)
> diff --git a/drivers/input/misc/adxl34x-spi.c b/drivers/input/misc/adxl34x-spi.c
> index 6e51c9bc619f..91e44d4c66f7 100644
> --- a/drivers/input/misc/adxl34x-spi.c
> +++ b/drivers/input/misc/adxl34x-spi.c
> @@ -87,13 +87,11 @@ static int adxl34x_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int adxl34x_spi_remove(struct spi_device *spi)
> +static void adxl34x_spi_remove(struct spi_device *spi)
> {
> struct adxl34x *ac = spi_get_drvdata(spi);
>
> adxl34x_remove(ac);
> -
> - return 0;
> }
>
> static int __maybe_unused adxl34x_spi_suspend(struct device *dev)
> diff --git a/drivers/input/touchscreen/ads7846.c b/drivers/input/touchscreen/ads7846.c
> index a25a77dd9a32..bed68a68f330 100644
> --- a/drivers/input/touchscreen/ads7846.c
> +++ b/drivers/input/touchscreen/ads7846.c
> @@ -1411,13 +1411,11 @@ static int ads7846_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ads7846_remove(struct spi_device *spi)
> +static void ads7846_remove(struct spi_device *spi)
> {
> struct ads7846 *ts = spi_get_drvdata(spi);
>
> ads7846_stop(ts);
> -
> - return 0;
> }
>
> static struct spi_driver ads7846_driver = {
> diff --git a/drivers/input/touchscreen/cyttsp4_spi.c b/drivers/input/touchscreen/cyttsp4_spi.c
> index 2aec41eb76b7..5d7db84f2749 100644
> --- a/drivers/input/touchscreen/cyttsp4_spi.c
> +++ b/drivers/input/touchscreen/cyttsp4_spi.c
> @@ -164,12 +164,10 @@ static int cyttsp4_spi_probe(struct spi_device *spi)
> return PTR_ERR_OR_ZERO(ts);
> }
>
> -static int cyttsp4_spi_remove(struct spi_device *spi)
> +static void cyttsp4_spi_remove(struct spi_device *spi)
> {
> struct cyttsp4 *ts = spi_get_drvdata(spi);
> cyttsp4_remove(ts);
> -
> - return 0;
> }
>
> static struct spi_driver cyttsp4_spi_driver = {
> diff --git a/drivers/input/touchscreen/tsc2005.c b/drivers/input/touchscreen/tsc2005.c
> index a2f55920b9b2..555dfe98b3c4 100644
> --- a/drivers/input/touchscreen/tsc2005.c
> +++ b/drivers/input/touchscreen/tsc2005.c
> @@ -64,11 +64,9 @@ static int tsc2005_probe(struct spi_device *spi)
> tsc2005_cmd);
> }
>
> -static int tsc2005_remove(struct spi_device *spi)
> +static void tsc2005_remove(struct spi_device *spi)
> {
> tsc200x_remove(&spi->dev);
> -
> - return 0;
> }
>
> #ifdef CONFIG_OF
> diff --git a/drivers/leds/leds-cr0014114.c b/drivers/leds/leds-cr0014114.c
> index d03cfd3c0bfb..c87686bd7c18 100644
> --- a/drivers/leds/leds-cr0014114.c
> +++ b/drivers/leds/leds-cr0014114.c
> @@ -266,14 +266,12 @@ static int cr0014114_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int cr0014114_remove(struct spi_device *spi)
> +static void cr0014114_remove(struct spi_device *spi)
> {
> struct cr0014114 *priv = spi_get_drvdata(spi);
>
> cancel_delayed_work_sync(&priv->work);
> mutex_destroy(&priv->lock);
> -
> - return 0;
> }
>
> static const struct of_device_id cr0014114_dt_ids[] = {
> diff --git a/drivers/leds/leds-dac124s085.c b/drivers/leds/leds-dac124s085.c
> index 20dc9b9d7dea..cf5fb1195f87 100644
> --- a/drivers/leds/leds-dac124s085.c
> +++ b/drivers/leds/leds-dac124s085.c
> @@ -85,15 +85,13 @@ static int dac124s085_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int dac124s085_remove(struct spi_device *spi)
> +static void dac124s085_remove(struct spi_device *spi)
> {
> struct dac124s085 *dac = spi_get_drvdata(spi);
> int i;
>
> for (i = 0; i < ARRAY_SIZE(dac->leds); i++)
> led_classdev_unregister(&dac->leds[i].ldev);
> -
> - return 0;
> }
>
> static struct spi_driver dac124s085_driver = {
> diff --git a/drivers/leds/leds-el15203000.c b/drivers/leds/leds-el15203000.c
> index f9eb59a25570..7e7b617bcd56 100644
> --- a/drivers/leds/leds-el15203000.c
> +++ b/drivers/leds/leds-el15203000.c
> @@ -315,13 +315,11 @@ static int el15203000_probe(struct spi_device *spi)
> return el15203000_probe_dt(priv);
> }
>
> -static int el15203000_remove(struct spi_device *spi)
> +static void el15203000_remove(struct spi_device *spi)
> {
> struct el15203000 *priv = spi_get_drvdata(spi);
>
> mutex_destroy(&priv->lock);
> -
> - return 0;
> }
>
> static const struct of_device_id el15203000_dt_ids[] = {
> diff --git a/drivers/leds/leds-spi-byte.c b/drivers/leds/leds-spi-byte.c
> index f1964c96fb15..2bc5c99daf51 100644
> --- a/drivers/leds/leds-spi-byte.c
> +++ b/drivers/leds/leds-spi-byte.c
> @@ -130,13 +130,11 @@ static int spi_byte_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int spi_byte_remove(struct spi_device *spi)
> +static void spi_byte_remove(struct spi_device *spi)
> {
> struct spi_byte_led *led = spi_get_drvdata(spi);
>
> mutex_destroy(&led->mutex);
> -
> - return 0;
> }
>
> static struct spi_driver spi_byte_driver = {
> diff --git a/drivers/media/spi/cxd2880-spi.c b/drivers/media/spi/cxd2880-spi.c
> index 6f2a66bc87fb..6be4e5528879 100644
> --- a/drivers/media/spi/cxd2880-spi.c
> +++ b/drivers/media/spi/cxd2880-spi.c
> @@ -625,7 +625,7 @@ cxd2880_spi_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int
> +static void
> cxd2880_spi_remove(struct spi_device *spi)
> {
> struct cxd2880_dvb_spi *dvb_spi = spi_get_drvdata(spi);
> @@ -643,8 +643,6 @@ cxd2880_spi_remove(struct spi_device *spi)
>
> kfree(dvb_spi);
> pr_info("cxd2880_spi remove ok.\n");
> -
> - return 0;
> }
>
> static const struct spi_device_id cxd2880_spi_id[] = {
> diff --git a/drivers/media/spi/gs1662.c b/drivers/media/spi/gs1662.c
> index f86ef1ca1288..75c21a93e6d0 100644
> --- a/drivers/media/spi/gs1662.c
> +++ b/drivers/media/spi/gs1662.c
> @@ -458,13 +458,11 @@ static int gs_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int gs_remove(struct spi_device *spi)
> +static void gs_remove(struct spi_device *spi)
> {
> struct v4l2_subdev *sd = spi_get_drvdata(spi);
>
> v4l2_device_unregister_subdev(sd);
> -
> - return 0;
> }
>
> static struct spi_driver gs_driver = {
> diff --git a/drivers/media/tuners/msi001.c b/drivers/media/tuners/msi001.c
> index 44247049a319..ad6c72c1ed04 100644
> --- a/drivers/media/tuners/msi001.c
> +++ b/drivers/media/tuners/msi001.c
> @@ -472,7 +472,7 @@ static int msi001_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int msi001_remove(struct spi_device *spi)
> +static void msi001_remove(struct spi_device *spi)
> {
> struct v4l2_subdev *sd = spi_get_drvdata(spi);
> struct msi001_dev *dev = sd_to_msi001_dev(sd);
> @@ -486,7 +486,6 @@ static int msi001_remove(struct spi_device *spi)
> v4l2_device_unregister_subdev(&dev->sd);
> v4l2_ctrl_handler_free(&dev->hdl);
> kfree(dev);
> - return 0;
> }
>
> static const struct spi_device_id msi001_id_table[] = {
> diff --git a/drivers/mfd/arizona-spi.c b/drivers/mfd/arizona-spi.c
> index 9fe06dda3782..03620c8efe34 100644
> --- a/drivers/mfd/arizona-spi.c
> +++ b/drivers/mfd/arizona-spi.c
> @@ -206,13 +206,11 @@ static int arizona_spi_probe(struct spi_device *spi)
> return arizona_dev_init(arizona);
> }
>
> -static int arizona_spi_remove(struct spi_device *spi)
> +static void arizona_spi_remove(struct spi_device *spi)
> {
> struct arizona *arizona = spi_get_drvdata(spi);
>
> arizona_dev_exit(arizona);
> -
> - return 0;
> }
>
> static const struct spi_device_id arizona_spi_ids[] = {
> diff --git a/drivers/mfd/da9052-spi.c b/drivers/mfd/da9052-spi.c
> index 5faf3766a5e2..b79a57b45c1e 100644
> --- a/drivers/mfd/da9052-spi.c
> +++ b/drivers/mfd/da9052-spi.c
> @@ -55,12 +55,11 @@ static int da9052_spi_probe(struct spi_device *spi)
> return da9052_device_init(da9052, id->driver_data);
> }
>
> -static int da9052_spi_remove(struct spi_device *spi)
> +static void da9052_spi_remove(struct spi_device *spi)
> {
> struct da9052 *da9052 = spi_get_drvdata(spi);
>
> da9052_device_exit(da9052);
> - return 0;
> }
>
> static const struct spi_device_id da9052_spi_id[] = {
> diff --git a/drivers/mfd/ezx-pcap.c b/drivers/mfd/ezx-pcap.c
> index 70fa18b04ad2..2280f756f422 100644
> --- a/drivers/mfd/ezx-pcap.c
> +++ b/drivers/mfd/ezx-pcap.c
> @@ -392,7 +392,7 @@ static int pcap_add_subdev(struct pcap_chip *pcap,
> return ret;
> }
>
> -static int ezx_pcap_remove(struct spi_device *spi)
> +static void ezx_pcap_remove(struct spi_device *spi)
> {
> struct pcap_chip *pcap = spi_get_drvdata(spi);
> unsigned long flags;
> @@ -412,8 +412,6 @@ static int ezx_pcap_remove(struct spi_device *spi)
> irq_set_chip_and_handler(i, NULL, NULL);
>
> destroy_workqueue(pcap->workqueue);
> -
> - return 0;
> }
>
> static int ezx_pcap_probe(struct spi_device *spi)
> diff --git a/drivers/mfd/madera-spi.c b/drivers/mfd/madera-spi.c
> index e860f5ff0933..da84eb50e53a 100644
> --- a/drivers/mfd/madera-spi.c
> +++ b/drivers/mfd/madera-spi.c
> @@ -112,13 +112,11 @@ static int madera_spi_probe(struct spi_device *spi)
> return madera_dev_init(madera);
> }
>
> -static int madera_spi_remove(struct spi_device *spi)
> +static void madera_spi_remove(struct spi_device *spi)
> {
> struct madera *madera = spi_get_drvdata(spi);
>
> madera_dev_exit(madera);
> -
> - return 0;
> }
>
> static const struct spi_device_id madera_spi_ids[] = {
> diff --git a/drivers/mfd/mc13xxx-spi.c b/drivers/mfd/mc13xxx-spi.c
> index 4d8913d647e6..f803527e5819 100644
> --- a/drivers/mfd/mc13xxx-spi.c
> +++ b/drivers/mfd/mc13xxx-spi.c
> @@ -166,10 +166,9 @@ static int mc13xxx_spi_probe(struct spi_device *spi)
> return mc13xxx_common_init(&spi->dev);
> }
>
> -static int mc13xxx_spi_remove(struct spi_device *spi)
> +static void mc13xxx_spi_remove(struct spi_device *spi)
> {
> mc13xxx_common_exit(&spi->dev);
> - return 0;
> }
>
> static struct spi_driver mc13xxx_spi_driver = {
> diff --git a/drivers/mfd/rsmu_spi.c b/drivers/mfd/rsmu_spi.c
> index fec2b4ec477c..d2f3d8f1e05a 100644
> --- a/drivers/mfd/rsmu_spi.c
> +++ b/drivers/mfd/rsmu_spi.c
> @@ -220,13 +220,11 @@ static int rsmu_spi_probe(struct spi_device *client)
> return rsmu_core_init(rsmu);
> }
>
> -static int rsmu_spi_remove(struct spi_device *client)
> +static void rsmu_spi_remove(struct spi_device *client)
> {
> struct rsmu_ddata *rsmu = spi_get_drvdata(client);
>
> rsmu_core_exit(rsmu);
> -
> - return 0;
> }
>
> static const struct spi_device_id rsmu_spi_id[] = {
> diff --git a/drivers/mfd/stmpe-spi.c b/drivers/mfd/stmpe-spi.c
> index 6c5915016be5..ad8055a0e286 100644
> --- a/drivers/mfd/stmpe-spi.c
> +++ b/drivers/mfd/stmpe-spi.c
> @@ -102,13 +102,11 @@ stmpe_spi_probe(struct spi_device *spi)
> return stmpe_probe(&spi_ci, id->driver_data);
> }
>
> -static int stmpe_spi_remove(struct spi_device *spi)
> +static void stmpe_spi_remove(struct spi_device *spi)
> {
> struct stmpe *stmpe = spi_get_drvdata(spi);
>
> stmpe_remove(stmpe);
> -
> - return 0;
> }
>
> static const struct of_device_id stmpe_spi_of_match[] = {
> diff --git a/drivers/mfd/tps65912-spi.c b/drivers/mfd/tps65912-spi.c
> index d701926aa46e..bba38fbc781d 100644
> --- a/drivers/mfd/tps65912-spi.c
> +++ b/drivers/mfd/tps65912-spi.c
> @@ -50,13 +50,11 @@ static int tps65912_spi_probe(struct spi_device *spi)
> return tps65912_device_init(tps);
> }
>
> -static int tps65912_spi_remove(struct spi_device *spi)
> +static void tps65912_spi_remove(struct spi_device *spi)
> {
> struct tps65912 *tps = spi_get_drvdata(spi);
>
> tps65912_device_exit(tps);
> -
> - return 0;
> }
>
> static const struct spi_device_id tps65912_spi_id_table[] = {
> diff --git a/drivers/misc/ad525x_dpot-spi.c b/drivers/misc/ad525x_dpot-spi.c
> index a9e75d80ad36..263055bda48b 100644
> --- a/drivers/misc/ad525x_dpot-spi.c
> +++ b/drivers/misc/ad525x_dpot-spi.c
> @@ -90,10 +90,9 @@ static int ad_dpot_spi_probe(struct spi_device *spi)
> spi_get_device_id(spi)->name);
> }
>
> -static int ad_dpot_spi_remove(struct spi_device *spi)
> +static void ad_dpot_spi_remove(struct spi_device *spi)
> {
> ad_dpot_remove(&spi->dev);
> - return 0;
> }
>
> static const struct spi_device_id ad_dpot_spi_id[] = {
> diff --git a/drivers/misc/eeprom/eeprom_93xx46.c b/drivers/misc/eeprom/eeprom_93xx46.c
> index 1f15399e5cb4..b630625b3024 100644
> --- a/drivers/misc/eeprom/eeprom_93xx46.c
> +++ b/drivers/misc/eeprom/eeprom_93xx46.c
> @@ -555,14 +555,12 @@ static int eeprom_93xx46_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int eeprom_93xx46_remove(struct spi_device *spi)
> +static void eeprom_93xx46_remove(struct spi_device *spi)
> {
> struct eeprom_93xx46_dev *edev = spi_get_drvdata(spi);
>
> if (!(edev->pdata->flags & EE_READONLY))
> device_remove_file(&spi->dev, &dev_attr_erase);
> -
> - return 0;
> }
>
> static struct spi_driver eeprom_93xx46_driver = {
> diff --git a/drivers/misc/lattice-ecp3-config.c b/drivers/misc/lattice-ecp3-config.c
> index 98828030b5a4..bac4df2e5231 100644
> --- a/drivers/misc/lattice-ecp3-config.c
> +++ b/drivers/misc/lattice-ecp3-config.c
> @@ -211,13 +211,11 @@ static int lattice_ecp3_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int lattice_ecp3_remove(struct spi_device *spi)
> +static void lattice_ecp3_remove(struct spi_device *spi)
> {
> struct fpga_data *data = spi_get_drvdata(spi);
>
> wait_for_completion(&data->fw_loaded);
> -
> - return 0;
> }
>
> static const struct spi_device_id lattice_ecp3_id[] = {
> diff --git a/drivers/misc/lis3lv02d/lis3lv02d_spi.c b/drivers/misc/lis3lv02d/lis3lv02d_spi.c
> index 9e40dfb60742..203a108b8883 100644
> --- a/drivers/misc/lis3lv02d/lis3lv02d_spi.c
> +++ b/drivers/misc/lis3lv02d/lis3lv02d_spi.c
> @@ -96,15 +96,13 @@ static int lis302dl_spi_probe(struct spi_device *spi)
> return lis3lv02d_init_device(&lis3_dev);
> }
>
> -static int lis302dl_spi_remove(struct spi_device *spi)
> +static void lis302dl_spi_remove(struct spi_device *spi)
> {
> struct lis3lv02d *lis3 = spi_get_drvdata(spi);
> lis3lv02d_joystick_disable(lis3);
> lis3lv02d_poweroff(lis3);
>
> lis3lv02d_remove_fs(&lis3_dev);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/mmc/host/mmc_spi.c b/drivers/mmc/host/mmc_spi.c
> index a576181e9db0..106dd204b1a7 100644
> --- a/drivers/mmc/host/mmc_spi.c
> +++ b/drivers/mmc/host/mmc_spi.c
> @@ -1489,7 +1489,7 @@ static int mmc_spi_probe(struct spi_device *spi)
> }
>
>
> -static int mmc_spi_remove(struct spi_device *spi)
> +static void mmc_spi_remove(struct spi_device *spi)
> {
> struct mmc_host *mmc = dev_get_drvdata(&spi->dev);
> struct mmc_spi_host *host = mmc_priv(mmc);
> @@ -1507,7 +1507,6 @@ static int mmc_spi_remove(struct spi_device *spi)
> spi->max_speed_hz = mmc->f_max;
> mmc_spi_put_pdata(spi);
> mmc_free_host(mmc);
> - return 0;
> }
>
> static const struct spi_device_id mmc_spi_dev_ids[] = {
> diff --git a/drivers/mtd/devices/mchp23k256.c b/drivers/mtd/devices/mchp23k256.c
> index a8b31bddf14b..008df9d8898d 100644
> --- a/drivers/mtd/devices/mchp23k256.c
> +++ b/drivers/mtd/devices/mchp23k256.c
> @@ -209,13 +209,11 @@ static int mchp23k256_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int mchp23k256_remove(struct spi_device *spi)
> +static void mchp23k256_remove(struct spi_device *spi)
> {
> struct mchp23k256_flash *flash = spi_get_drvdata(spi);
>
> WARN_ON(mtd_device_unregister(&flash->mtd));
> -
> - return 0;
> }
>
> static const struct of_device_id mchp23k256_of_table[] = {
> diff --git a/drivers/mtd/devices/mchp48l640.c b/drivers/mtd/devices/mchp48l640.c
> index 231a10790196..a3fd426df74b 100644
> --- a/drivers/mtd/devices/mchp48l640.c
> +++ b/drivers/mtd/devices/mchp48l640.c
> @@ -341,13 +341,11 @@ static int mchp48l640_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int mchp48l640_remove(struct spi_device *spi)
> +static void mchp48l640_remove(struct spi_device *spi)
> {
> struct mchp48l640_flash *flash = spi_get_drvdata(spi);
>
> WARN_ON(mtd_device_unregister(&flash->mtd));
> -
> - return 0;
> }
>
> static const struct of_device_id mchp48l640_of_table[] = {
> diff --git a/drivers/mtd/devices/mtd_dataflash.c b/drivers/mtd/devices/mtd_dataflash.c
> index 734878abaa23..134e27328597 100644
> --- a/drivers/mtd/devices/mtd_dataflash.c
> +++ b/drivers/mtd/devices/mtd_dataflash.c
> @@ -916,7 +916,7 @@ static int dataflash_probe(struct spi_device *spi)
> return status;
> }
>
> -static int dataflash_remove(struct spi_device *spi)
> +static void dataflash_remove(struct spi_device *spi)
> {
> struct dataflash *flash = spi_get_drvdata(spi);
>
> @@ -925,8 +925,6 @@ static int dataflash_remove(struct spi_device *spi)
> WARN_ON(mtd_device_unregister(&flash->mtd));
>
> kfree(flash);
> -
> - return 0;
> }
>
> static struct spi_driver dataflash_driver = {
> diff --git a/drivers/mtd/devices/sst25l.c b/drivers/mtd/devices/sst25l.c
> index 7f124c1bfa40..8813994ce9f4 100644
> --- a/drivers/mtd/devices/sst25l.c
> +++ b/drivers/mtd/devices/sst25l.c
> @@ -398,13 +398,11 @@ static int sst25l_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int sst25l_remove(struct spi_device *spi)
> +static void sst25l_remove(struct spi_device *spi)
> {
> struct sst25l_flash *flash = spi_get_drvdata(spi);
>
> WARN_ON(mtd_device_unregister(&flash->mtd));
> -
> - return 0;
> }
>
> static struct spi_driver sst25l_driver = {
> diff --git a/drivers/net/can/m_can/tcan4x5x-core.c b/drivers/net/can/m_can/tcan4x5x-core.c
> index 04687b15b250..41645a24384c 100644
> --- a/drivers/net/can/m_can/tcan4x5x-core.c
> +++ b/drivers/net/can/m_can/tcan4x5x-core.c
> @@ -388,7 +388,7 @@ static int tcan4x5x_can_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int tcan4x5x_can_remove(struct spi_device *spi)
> +static void tcan4x5x_can_remove(struct spi_device *spi)
> {
> struct tcan4x5x_priv *priv = spi_get_drvdata(spi);
>
> @@ -397,8 +397,6 @@ static int tcan4x5x_can_remove(struct spi_device *spi)
> tcan4x5x_power_enable(priv->power, 0);
>
> m_can_class_free_dev(priv->cdev.net);
> -
> - return 0;
> }
>
> static const struct of_device_id tcan4x5x_of_match[] = {
> diff --git a/drivers/net/can/spi/hi311x.c b/drivers/net/can/spi/hi311x.c
> index cfcc14fe3e42..664b8f14d7b0 100644
> --- a/drivers/net/can/spi/hi311x.c
> +++ b/drivers/net/can/spi/hi311x.c
> @@ -948,7 +948,7 @@ static int hi3110_can_probe(struct spi_device *spi)
> return dev_err_probe(dev, ret, "Probe failed\n");
> }
>
> -static int hi3110_can_remove(struct spi_device *spi)
> +static void hi3110_can_remove(struct spi_device *spi)
> {
> struct hi3110_priv *priv = spi_get_drvdata(spi);
> struct net_device *net = priv->net;
> @@ -960,8 +960,6 @@ static int hi3110_can_remove(struct spi_device *spi)
> clk_disable_unprepare(priv->clk);
>
> free_candev(net);
> -
> - return 0;
> }
>
> static int __maybe_unused hi3110_can_suspend(struct device *dev)
> diff --git a/drivers/net/can/spi/mcp251x.c b/drivers/net/can/spi/mcp251x.c
> index 025e07cb7439..d23edaf22420 100644
> --- a/drivers/net/can/spi/mcp251x.c
> +++ b/drivers/net/can/spi/mcp251x.c
> @@ -1427,7 +1427,7 @@ static int mcp251x_can_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mcp251x_can_remove(struct spi_device *spi)
> +static void mcp251x_can_remove(struct spi_device *spi)
> {
> struct mcp251x_priv *priv = spi_get_drvdata(spi);
> struct net_device *net = priv->net;
> @@ -1442,8 +1442,6 @@ static int mcp251x_can_remove(struct spi_device *spi)
> clk_disable_unprepare(priv->clk);
>
> free_candev(net);
> -
> - return 0;
> }
>
> static int __maybe_unused mcp251x_can_suspend(struct device *dev)
> diff --git a/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c b/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
> index b5986df6eca0..65c9b31666a6 100644
> --- a/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
> +++ b/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
> @@ -1966,7 +1966,7 @@ static int mcp251xfd_probe(struct spi_device *spi)
> return err;
> }
>
> -static int mcp251xfd_remove(struct spi_device *spi)
> +static void mcp251xfd_remove(struct spi_device *spi)
> {
> struct mcp251xfd_priv *priv = spi_get_drvdata(spi);
> struct net_device *ndev = priv->ndev;
> @@ -1975,8 +1975,6 @@ static int mcp251xfd_remove(struct spi_device *spi)
> mcp251xfd_unregister(priv);
> spi->max_speed_hz = priv->spi_max_speed_hz_orig;
> free_candev(ndev);
> -
> - return 0;
> }
>
> static int __maybe_unused mcp251xfd_runtime_suspend(struct device *device)
> diff --git a/drivers/net/dsa/b53/b53_spi.c b/drivers/net/dsa/b53/b53_spi.c
> index 2b88f03e5252..0e54b2a0c211 100644
> --- a/drivers/net/dsa/b53/b53_spi.c
> +++ b/drivers/net/dsa/b53/b53_spi.c
> @@ -314,7 +314,7 @@ static int b53_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int b53_spi_remove(struct spi_device *spi)
> +static void b53_spi_remove(struct spi_device *spi)
> {
> struct b53_device *dev = spi_get_drvdata(spi);
>
> @@ -322,8 +322,6 @@ static int b53_spi_remove(struct spi_device *spi)
> b53_switch_remove(dev);
>
> spi_set_drvdata(spi, NULL);
> -
> - return 0;
> }
>
> static void b53_spi_shutdown(struct spi_device *spi)
> diff --git a/drivers/net/dsa/microchip/ksz8795_spi.c b/drivers/net/dsa/microchip/ksz8795_spi.c
> index 866767b70d65..673589dc88ab 100644
> --- a/drivers/net/dsa/microchip/ksz8795_spi.c
> +++ b/drivers/net/dsa/microchip/ksz8795_spi.c
> @@ -87,7 +87,7 @@ static int ksz8795_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ksz8795_spi_remove(struct spi_device *spi)
> +static void ksz8795_spi_remove(struct spi_device *spi)
> {
> struct ksz_device *dev = spi_get_drvdata(spi);
>
> @@ -95,8 +95,6 @@ static int ksz8795_spi_remove(struct spi_device *spi)
> ksz_switch_remove(dev);
>
> spi_set_drvdata(spi, NULL);
> -
> - return 0;
> }
>
> static void ksz8795_spi_shutdown(struct spi_device *spi)
> diff --git a/drivers/net/dsa/microchip/ksz9477_spi.c b/drivers/net/dsa/microchip/ksz9477_spi.c
> index e3cb0e6c9f6f..940bb9665f15 100644
> --- a/drivers/net/dsa/microchip/ksz9477_spi.c
> +++ b/drivers/net/dsa/microchip/ksz9477_spi.c
> @@ -65,7 +65,7 @@ static int ksz9477_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ksz9477_spi_remove(struct spi_device *spi)
> +static void ksz9477_spi_remove(struct spi_device *spi)
> {
> struct ksz_device *dev = spi_get_drvdata(spi);
>
> @@ -73,8 +73,6 @@ static int ksz9477_spi_remove(struct spi_device *spi)
> ksz_switch_remove(dev);
>
> spi_set_drvdata(spi, NULL);
> -
> - return 0;
> }
>
> static void ksz9477_spi_shutdown(struct spi_device *spi)
> diff --git a/drivers/net/dsa/sja1105/sja1105_main.c b/drivers/net/dsa/sja1105/sja1105_main.c
> index b513713be610..c2a47c6693b8 100644
> --- a/drivers/net/dsa/sja1105/sja1105_main.c
> +++ b/drivers/net/dsa/sja1105/sja1105_main.c
> @@ -3346,18 +3346,16 @@ static int sja1105_probe(struct spi_device *spi)
> return dsa_register_switch(priv->ds);
> }
>
> -static int sja1105_remove(struct spi_device *spi)
> +static void sja1105_remove(struct spi_device *spi)
> {
> struct sja1105_private *priv = spi_get_drvdata(spi);
>
> if (!priv)
> - return 0;
> + return;
>
> dsa_unregister_switch(priv->ds);
>
> spi_set_drvdata(spi, NULL);
> -
> - return 0;
> }
>
> static void sja1105_shutdown(struct spi_device *spi)
> diff --git a/drivers/net/dsa/vitesse-vsc73xx-spi.c b/drivers/net/dsa/vitesse-vsc73xx-spi.c
> index 645398901e05..3110895358d8 100644
> --- a/drivers/net/dsa/vitesse-vsc73xx-spi.c
> +++ b/drivers/net/dsa/vitesse-vsc73xx-spi.c
> @@ -159,18 +159,16 @@ static int vsc73xx_spi_probe(struct spi_device *spi)
> return vsc73xx_probe(&vsc_spi->vsc);
> }
>
> -static int vsc73xx_spi_remove(struct spi_device *spi)
> +static void vsc73xx_spi_remove(struct spi_device *spi)
> {
> struct vsc73xx_spi *vsc_spi = spi_get_drvdata(spi);
>
> if (!vsc_spi)
> - return 0;
> + return;
>
> vsc73xx_remove(&vsc_spi->vsc);
>
> spi_set_drvdata(spi, NULL);
> -
> - return 0;
> }
>
> static void vsc73xx_spi_shutdown(struct spi_device *spi)
> diff --git a/drivers/net/ethernet/asix/ax88796c_main.c b/drivers/net/ethernet/asix/ax88796c_main.c
> index e7a9f9863258..bf70481bb1ca 100644
> --- a/drivers/net/ethernet/asix/ax88796c_main.c
> +++ b/drivers/net/ethernet/asix/ax88796c_main.c
> @@ -1102,7 +1102,7 @@ static int ax88796c_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ax88796c_remove(struct spi_device *spi)
> +static void ax88796c_remove(struct spi_device *spi)
> {
> struct ax88796c_device *ax_local = dev_get_drvdata(&spi->dev);
> struct net_device *ndev = ax_local->ndev;
> @@ -1112,8 +1112,6 @@ static int ax88796c_remove(struct spi_device *spi)
> netif_info(ax_local, probe, ndev, "removing network device %s %s\n",
> dev_driver_string(&spi->dev),
> dev_name(&spi->dev));
> -
> - return 0;
> }
>
> #ifdef CONFIG_OF
> diff --git a/drivers/net/ethernet/micrel/ks8851_spi.c b/drivers/net/ethernet/micrel/ks8851_spi.c
> index 0303e727e99f..d167d93e4c12 100644
> --- a/drivers/net/ethernet/micrel/ks8851_spi.c
> +++ b/drivers/net/ethernet/micrel/ks8851_spi.c
> @@ -452,11 +452,9 @@ static int ks8851_probe_spi(struct spi_device *spi)
> return ks8851_probe_common(netdev, dev, msg_enable);
> }
>
> -static int ks8851_remove_spi(struct spi_device *spi)
> +static void ks8851_remove_spi(struct spi_device *spi)
> {
> ks8851_remove_common(&spi->dev);
> -
> - return 0;
> }
>
> static const struct of_device_id ks8851_match_table[] = {
> diff --git a/drivers/net/ethernet/microchip/enc28j60.c b/drivers/net/ethernet/microchip/enc28j60.c
> index 634ac7649c43..db5a3edb4c3c 100644
> --- a/drivers/net/ethernet/microchip/enc28j60.c
> +++ b/drivers/net/ethernet/microchip/enc28j60.c
> @@ -1612,15 +1612,13 @@ static int enc28j60_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int enc28j60_remove(struct spi_device *spi)
> +static void enc28j60_remove(struct spi_device *spi)
> {
> struct enc28j60_net *priv = spi_get_drvdata(spi);
>
> unregister_netdev(priv->netdev);
> free_irq(spi->irq, priv);
> free_netdev(priv->netdev);
> -
> - return 0;
> }
>
> static const struct of_device_id enc28j60_dt_ids[] = {
> diff --git a/drivers/net/ethernet/microchip/encx24j600.c b/drivers/net/ethernet/microchip/encx24j600.c
> index b90efc80fb59..dc1840cb5b10 100644
> --- a/drivers/net/ethernet/microchip/encx24j600.c
> +++ b/drivers/net/ethernet/microchip/encx24j600.c
> @@ -1093,7 +1093,7 @@ static int encx24j600_spi_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int encx24j600_spi_remove(struct spi_device *spi)
> +static void encx24j600_spi_remove(struct spi_device *spi)
> {
> struct encx24j600_priv *priv = dev_get_drvdata(&spi->dev);
>
> @@ -1101,8 +1101,6 @@ static int encx24j600_spi_remove(struct spi_device *spi)
> kthread_stop(priv->kworker_task);
>
> free_netdev(priv->ndev);
> -
> - return 0;
> }
>
> static const struct spi_device_id encx24j600_spi_id_table[] = {
> diff --git a/drivers/net/ethernet/qualcomm/qca_spi.c b/drivers/net/ethernet/qualcomm/qca_spi.c
> index 955cce644392..3c5494afd3c0 100644
> --- a/drivers/net/ethernet/qualcomm/qca_spi.c
> +++ b/drivers/net/ethernet/qualcomm/qca_spi.c
> @@ -1001,7 +1001,7 @@ qca_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int
> +static void
> qca_spi_remove(struct spi_device *spi)
> {
> struct net_device *qcaspi_devs = spi_get_drvdata(spi);
> @@ -1011,8 +1011,6 @@ qca_spi_remove(struct spi_device *spi)
>
> unregister_netdev(qcaspi_devs);
> free_netdev(qcaspi_devs);
> -
> - return 0;
> }
>
> static const struct spi_device_id qca_spi_id[] = {
> diff --git a/drivers/net/ethernet/vertexcom/mse102x.c b/drivers/net/ethernet/vertexcom/mse102x.c
> index 89a31783fbb4..25739b182ac7 100644
> --- a/drivers/net/ethernet/vertexcom/mse102x.c
> +++ b/drivers/net/ethernet/vertexcom/mse102x.c
> @@ -731,7 +731,7 @@ static int mse102x_probe_spi(struct spi_device *spi)
> return 0;
> }
>
> -static int mse102x_remove_spi(struct spi_device *spi)
> +static void mse102x_remove_spi(struct spi_device *spi)
> {
> struct mse102x_net *mse = dev_get_drvdata(&spi->dev);
> struct mse102x_net_spi *mses = to_mse102x_spi(mse);
> @@ -741,8 +741,6 @@ static int mse102x_remove_spi(struct spi_device *spi)
>
> mse102x_remove_device_debugfs(mses);
> unregister_netdev(mse->ndev);
> -
> - return 0;
> }
>
> static const struct of_device_id mse102x_match_table[] = {
> diff --git a/drivers/net/ethernet/wiznet/w5100-spi.c b/drivers/net/ethernet/wiznet/w5100-spi.c
> index 7779a36da3c8..7c52796273a4 100644
> --- a/drivers/net/ethernet/wiznet/w5100-spi.c
> +++ b/drivers/net/ethernet/wiznet/w5100-spi.c
> @@ -461,11 +461,9 @@ static int w5100_spi_probe(struct spi_device *spi)
> return w5100_probe(&spi->dev, ops, priv_size, mac, spi->irq, -EINVAL);
> }
>
> -static int w5100_spi_remove(struct spi_device *spi)
> +static void w5100_spi_remove(struct spi_device *spi)
> {
> w5100_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id w5100_spi_ids[] = {
> diff --git a/drivers/net/ieee802154/adf7242.c b/drivers/net/ieee802154/adf7242.c
> index 7db9cbd0f5de..6afdf1622944 100644
> --- a/drivers/net/ieee802154/adf7242.c
> +++ b/drivers/net/ieee802154/adf7242.c
> @@ -1304,7 +1304,7 @@ static int adf7242_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int adf7242_remove(struct spi_device *spi)
> +static void adf7242_remove(struct spi_device *spi)
> {
> struct adf7242_local *lp = spi_get_drvdata(spi);
>
> @@ -1316,8 +1316,6 @@ static int adf7242_remove(struct spi_device *spi)
> ieee802154_unregister_hw(lp->hw);
> mutex_destroy(&lp->bmux);
> ieee802154_free_hw(lp->hw);
> -
> - return 0;
> }
>
> static const struct of_device_id adf7242_of_match[] = {
> diff --git a/drivers/net/ieee802154/at86rf230.c b/drivers/net/ieee802154/at86rf230.c
> index 7d67f41387f5..a4734323dc29 100644
> --- a/drivers/net/ieee802154/at86rf230.c
> +++ b/drivers/net/ieee802154/at86rf230.c
> @@ -1759,7 +1759,7 @@ static int at86rf230_probe(struct spi_device *spi)
> return rc;
> }
>
> -static int at86rf230_remove(struct spi_device *spi)
> +static void at86rf230_remove(struct spi_device *spi)
> {
> struct at86rf230_local *lp = spi_get_drvdata(spi);
>
> @@ -1769,8 +1769,6 @@ static int at86rf230_remove(struct spi_device *spi)
> ieee802154_free_hw(lp->hw);
> at86rf230_debugfs_remove();
> dev_dbg(&spi->dev, "unregistered at86rf230\n");
> -
> - return 0;
> }
>
> static const struct of_device_id at86rf230_of_match[] = {
> diff --git a/drivers/net/ieee802154/ca8210.c b/drivers/net/ieee802154/ca8210.c
> index ece6ff6049f6..b499bbe4d48f 100644
> --- a/drivers/net/ieee802154/ca8210.c
> +++ b/drivers/net/ieee802154/ca8210.c
> @@ -831,7 +831,7 @@ static void ca8210_rx_done(struct cas_control *cas_ctl)
> finish:;
> }
>
> -static int ca8210_remove(struct spi_device *spi_device);
> +static void ca8210_remove(struct spi_device *spi_device);
>
> /**
> * ca8210_spi_transfer_complete() - Called when a single spi transfer has
> @@ -3048,7 +3048,7 @@ static void ca8210_test_interface_clear(struct ca8210_priv *priv)
> *
> * Return: 0 or linux error code
> */
> -static int ca8210_remove(struct spi_device *spi_device)
> +static void ca8210_remove(struct spi_device *spi_device)
> {
> struct ca8210_priv *priv;
> struct ca8210_platform_data *pdata;
> @@ -3088,8 +3088,6 @@ static int ca8210_remove(struct spi_device *spi_device)
> if (IS_ENABLED(CONFIG_IEEE802154_CA8210_DEBUGFS))
> ca8210_test_interface_clear(priv);
> }
> -
> - return 0;
> }
>
> /**
> diff --git a/drivers/net/ieee802154/cc2520.c b/drivers/net/ieee802154/cc2520.c
> index 89c046b204e0..1e1f40f628a0 100644
> --- a/drivers/net/ieee802154/cc2520.c
> +++ b/drivers/net/ieee802154/cc2520.c
> @@ -1213,7 +1213,7 @@ static int cc2520_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int cc2520_remove(struct spi_device *spi)
> +static void cc2520_remove(struct spi_device *spi)
> {
> struct cc2520_private *priv = spi_get_drvdata(spi);
>
> @@ -1222,8 +1222,6 @@ static int cc2520_remove(struct spi_device *spi)
>
> ieee802154_unregister_hw(priv->hw);
> ieee802154_free_hw(priv->hw);
> -
> - return 0;
> }
>
> static const struct spi_device_id cc2520_ids[] = {
> diff --git a/drivers/net/ieee802154/mcr20a.c b/drivers/net/ieee802154/mcr20a.c
> index 8dc04e2590b1..a3af52a8e6dd 100644
> --- a/drivers/net/ieee802154/mcr20a.c
> +++ b/drivers/net/ieee802154/mcr20a.c
> @@ -1335,7 +1335,7 @@ mcr20a_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mcr20a_remove(struct spi_device *spi)
> +static void mcr20a_remove(struct spi_device *spi)
> {
> struct mcr20a_local *lp = spi_get_drvdata(spi);
>
> @@ -1343,8 +1343,6 @@ static int mcr20a_remove(struct spi_device *spi)
>
> ieee802154_unregister_hw(lp->hw);
> ieee802154_free_hw(lp->hw);
> -
> - return 0;
> }
>
> static const struct of_device_id mcr20a_of_match[] = {
> diff --git a/drivers/net/ieee802154/mrf24j40.c b/drivers/net/ieee802154/mrf24j40.c
> index ff83e00b77af..ee4cfbf2c5cc 100644
> --- a/drivers/net/ieee802154/mrf24j40.c
> +++ b/drivers/net/ieee802154/mrf24j40.c
> @@ -1356,7 +1356,7 @@ static int mrf24j40_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mrf24j40_remove(struct spi_device *spi)
> +static void mrf24j40_remove(struct spi_device *spi)
> {
> struct mrf24j40 *devrec = spi_get_drvdata(spi);
>
> @@ -1366,8 +1366,6 @@ static int mrf24j40_remove(struct spi_device *spi)
> ieee802154_free_hw(devrec->hw);
> /* TODO: Will ieee802154_free_device() wait until ->xmit() is
> * complete? */
> -
> - return 0;
> }
>
> static const struct of_device_id mrf24j40_of_match[] = {
> diff --git a/drivers/net/phy/spi_ks8995.c b/drivers/net/phy/spi_ks8995.c
> index 8b5445a724ce..ff37f8ba6758 100644
> --- a/drivers/net/phy/spi_ks8995.c
> +++ b/drivers/net/phy/spi_ks8995.c
> @@ -517,7 +517,7 @@ static int ks8995_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ks8995_remove(struct spi_device *spi)
> +static void ks8995_remove(struct spi_device *spi)
> {
> struct ks8995_switch *ks = spi_get_drvdata(spi);
>
> @@ -526,8 +526,6 @@ static int ks8995_remove(struct spi_device *spi)
> /* assert reset */
> if (ks->pdata && gpio_is_valid(ks->pdata->reset_gpio))
> gpiod_set_value(gpio_to_desc(ks->pdata->reset_gpio), 1);
> -
> - return 0;
> }
>
> /* ------------------------------------------------------------------------ */
> diff --git a/drivers/net/wan/slic_ds26522.c b/drivers/net/wan/slic_ds26522.c
> index 8e3b1c717c10..6063552cea9b 100644
> --- a/drivers/net/wan/slic_ds26522.c
> +++ b/drivers/net/wan/slic_ds26522.c
> @@ -194,10 +194,9 @@ static int slic_ds26522_init_configure(struct spi_device *spi)
> return 0;
> }
>
> -static int slic_ds26522_remove(struct spi_device *spi)
> +static void slic_ds26522_remove(struct spi_device *spi)
> {
> pr_info("DS26522 module uninstalled\n");
> - return 0;
> }
>
> static int slic_ds26522_probe(struct spi_device *spi)
> diff --git a/drivers/net/wireless/intersil/p54/p54spi.c b/drivers/net/wireless/intersil/p54/p54spi.c
> index ab0fe8565851..f99b7ba69fc3 100644
> --- a/drivers/net/wireless/intersil/p54/p54spi.c
> +++ b/drivers/net/wireless/intersil/p54/p54spi.c
> @@ -669,7 +669,7 @@ static int p54spi_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int p54spi_remove(struct spi_device *spi)
> +static void p54spi_remove(struct spi_device *spi)
> {
> struct p54s_priv *priv = spi_get_drvdata(spi);
>
> @@ -684,8 +684,6 @@ static int p54spi_remove(struct spi_device *spi)
> mutex_destroy(&priv->mutex);
>
> p54_free_common(priv->hw);
> -
> - return 0;
> }
>
>
> diff --git a/drivers/net/wireless/marvell/libertas/if_spi.c b/drivers/net/wireless/marvell/libertas/if_spi.c
> index cd9f8ecf171f..ff1c7ec8c450 100644
> --- a/drivers/net/wireless/marvell/libertas/if_spi.c
> +++ b/drivers/net/wireless/marvell/libertas/if_spi.c
> @@ -1195,7 +1195,7 @@ static int if_spi_probe(struct spi_device *spi)
> return err;
> }
>
> -static int libertas_spi_remove(struct spi_device *spi)
> +static void libertas_spi_remove(struct spi_device *spi)
> {
> struct if_spi_card *card = spi_get_drvdata(spi);
> struct lbs_private *priv = card->priv;
> @@ -1212,8 +1212,6 @@ static int libertas_spi_remove(struct spi_device *spi)
> if (card->pdata->teardown)
> card->pdata->teardown(spi);
> free_if_spi_card(card);
> -
> - return 0;
> }
>
> static int if_spi_suspend(struct device *dev)
> diff --git a/drivers/net/wireless/microchip/wilc1000/spi.c b/drivers/net/wireless/microchip/wilc1000/spi.c
> index 2c2ed4b09efd..d2db52289399 100644
> --- a/drivers/net/wireless/microchip/wilc1000/spi.c
> +++ b/drivers/net/wireless/microchip/wilc1000/spi.c
> @@ -240,7 +240,7 @@ static int wilc_bus_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int wilc_bus_remove(struct spi_device *spi)
> +static void wilc_bus_remove(struct spi_device *spi)
> {
> struct wilc *wilc = spi_get_drvdata(spi);
> struct wilc_spi *spi_priv = wilc->bus_data;
> @@ -248,8 +248,6 @@ static int wilc_bus_remove(struct spi_device *spi)
> clk_disable_unprepare(wilc->rtc_clk);
> wilc_netdev_cleanup(wilc);
> kfree(spi_priv);
> -
> - return 0;
> }
>
> static const struct of_device_id wilc_of_match[] = {
> diff --git a/drivers/net/wireless/st/cw1200/cw1200_spi.c b/drivers/net/wireless/st/cw1200/cw1200_spi.c
> index 271ed2ce2d7f..fe0d220da44d 100644
> --- a/drivers/net/wireless/st/cw1200/cw1200_spi.c
> +++ b/drivers/net/wireless/st/cw1200/cw1200_spi.c
> @@ -423,7 +423,7 @@ static int cw1200_spi_probe(struct spi_device *func)
> }
>
> /* Disconnect Function to be called by SPI stack when device is disconnected */
> -static int cw1200_spi_disconnect(struct spi_device *func)
> +static void cw1200_spi_disconnect(struct spi_device *func)
> {
> struct hwbus_priv *self = spi_get_drvdata(func);
>
> @@ -435,8 +435,6 @@ static int cw1200_spi_disconnect(struct spi_device *func)
> }
> }
> cw1200_spi_off(dev_get_platdata(&func->dev));
> -
> - return 0;
> }
>
> static int __maybe_unused cw1200_spi_suspend(struct device *dev)
> diff --git a/drivers/net/wireless/ti/wl1251/spi.c b/drivers/net/wireless/ti/wl1251/spi.c
> index 5b894bd6237e..9df38726e8b0 100644
> --- a/drivers/net/wireless/ti/wl1251/spi.c
> +++ b/drivers/net/wireless/ti/wl1251/spi.c
> @@ -327,14 +327,12 @@ static int wl1251_spi_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int wl1251_spi_remove(struct spi_device *spi)
> +static void wl1251_spi_remove(struct spi_device *spi)
> {
> struct wl1251 *wl = spi_get_drvdata(spi);
>
> wl1251_free_hw(wl);
> regulator_disable(wl->vio);
> -
> - return 0;
> }
>
> static struct spi_driver wl1251_spi_driver = {
> diff --git a/drivers/net/wireless/ti/wlcore/spi.c b/drivers/net/wireless/ti/wlcore/spi.c
> index 354a7e1c3315..7eae1ec2eb2b 100644
> --- a/drivers/net/wireless/ti/wlcore/spi.c
> +++ b/drivers/net/wireless/ti/wlcore/spi.c
> @@ -546,13 +546,11 @@ static int wl1271_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int wl1271_remove(struct spi_device *spi)
> +static void wl1271_remove(struct spi_device *spi)
> {
> struct wl12xx_spi_glue *glue = spi_get_drvdata(spi);
>
> platform_device_unregister(glue->core);
> -
> - return 0;
> }
>
> static struct spi_driver wl1271_spi_driver = {
> diff --git a/drivers/nfc/nfcmrvl/spi.c b/drivers/nfc/nfcmrvl/spi.c
> index 5b833a9a83f8..a38e2fcdfd39 100644
> --- a/drivers/nfc/nfcmrvl/spi.c
> +++ b/drivers/nfc/nfcmrvl/spi.c
> @@ -174,12 +174,11 @@ static int nfcmrvl_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int nfcmrvl_spi_remove(struct spi_device *spi)
> +static void nfcmrvl_spi_remove(struct spi_device *spi)
> {
> struct nfcmrvl_spi_drv_data *drv_data = spi_get_drvdata(spi);
>
> nfcmrvl_nci_unregister_dev(drv_data->priv);
> - return 0;
> }
>
> static const struct of_device_id of_nfcmrvl_spi_match[] __maybe_unused = {
> diff --git a/drivers/nfc/st-nci/spi.c b/drivers/nfc/st-nci/spi.c
> index 4e723992e74c..169eacc0a32a 100644
> --- a/drivers/nfc/st-nci/spi.c
> +++ b/drivers/nfc/st-nci/spi.c
> @@ -263,13 +263,11 @@ static int st_nci_spi_probe(struct spi_device *dev)
> return r;
> }
>
> -static int st_nci_spi_remove(struct spi_device *dev)
> +static void st_nci_spi_remove(struct spi_device *dev)
> {
> struct st_nci_spi_phy *phy = spi_get_drvdata(dev);
>
> ndlc_remove(phy->ndlc);
> -
> - return 0;
> }
>
> static struct spi_device_id st_nci_spi_id_table[] = {
> diff --git a/drivers/nfc/st95hf/core.c b/drivers/nfc/st95hf/core.c
> index b23f47936473..ed704bb77226 100644
> --- a/drivers/nfc/st95hf/core.c
> +++ b/drivers/nfc/st95hf/core.c
> @@ -1198,7 +1198,7 @@ static int st95hf_probe(struct spi_device *nfc_spi_dev)
> return ret;
> }
>
> -static int st95hf_remove(struct spi_device *nfc_spi_dev)
> +static void st95hf_remove(struct spi_device *nfc_spi_dev)
> {
> int result = 0;
> unsigned char reset_cmd = ST95HF_COMMAND_RESET;
> @@ -1236,8 +1236,6 @@ static int st95hf_remove(struct spi_device *nfc_spi_dev)
> /* disable regulator */
> if (stcontext->st95hf_supply)
> regulator_disable(stcontext->st95hf_supply);
> -
> - return 0;
> }
>
> /* Register as SPI protocol driver */
> diff --git a/drivers/nfc/trf7970a.c b/drivers/nfc/trf7970a.c
> index 29ca9c328df2..21d68664fe08 100644
> --- a/drivers/nfc/trf7970a.c
> +++ b/drivers/nfc/trf7970a.c
> @@ -2144,7 +2144,7 @@ static int trf7970a_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int trf7970a_remove(struct spi_device *spi)
> +static void trf7970a_remove(struct spi_device *spi)
> {
> struct trf7970a *trf = spi_get_drvdata(spi);
>
> @@ -2160,8 +2160,6 @@ static int trf7970a_remove(struct spi_device *spi)
> regulator_disable(trf->regulator);
>
> mutex_destroy(&trf->lock);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/platform/chrome/cros_ec_spi.c b/drivers/platform/chrome/cros_ec_spi.c
> index 713c58687721..8493af0f680e 100644
> --- a/drivers/platform/chrome/cros_ec_spi.c
> +++ b/drivers/platform/chrome/cros_ec_spi.c
> @@ -786,13 +786,11 @@ static int cros_ec_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int cros_ec_spi_remove(struct spi_device *spi)
> +static void cros_ec_spi_remove(struct spi_device *spi)
> {
> struct cros_ec_device *ec_dev = spi_get_drvdata(spi);
>
> cros_ec_unregister(ec_dev);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/platform/olpc/olpc-xo175-ec.c b/drivers/platform/olpc/olpc-xo175-ec.c
> index 0d46706afd2d..4823bd2819f6 100644
> --- a/drivers/platform/olpc/olpc-xo175-ec.c
> +++ b/drivers/platform/olpc/olpc-xo175-ec.c
> @@ -648,7 +648,7 @@ static struct olpc_ec_driver olpc_xo175_ec_driver = {
> .ec_cmd = olpc_xo175_ec_cmd,
> };
>
> -static int olpc_xo175_ec_remove(struct spi_device *spi)
> +static void olpc_xo175_ec_remove(struct spi_device *spi)
> {
> if (pm_power_off == olpc_xo175_ec_power_off)
> pm_power_off = NULL;
> @@ -657,8 +657,6 @@ static int olpc_xo175_ec_remove(struct spi_device *spi)
>
> platform_device_unregister(olpc_ec);
> olpc_ec = NULL;
> -
> - return 0;
> }
>
> static int olpc_xo175_ec_probe(struct spi_device *spi)
> diff --git a/drivers/rtc/rtc-ds1302.c b/drivers/rtc/rtc-ds1302.c
> index 2f83adef966e..6d66ab5a8b17 100644
> --- a/drivers/rtc/rtc-ds1302.c
> +++ b/drivers/rtc/rtc-ds1302.c
> @@ -185,10 +185,9 @@ static int ds1302_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ds1302_remove(struct spi_device *spi)
> +static void ds1302_remove(struct spi_device *spi)
> {
> spi_set_drvdata(spi, NULL);
> - return 0;
> }
>
> #ifdef CONFIG_OF
> diff --git a/drivers/rtc/rtc-ds1305.c b/drivers/rtc/rtc-ds1305.c
> index 9ef107b99b65..ed9360486953 100644
> --- a/drivers/rtc/rtc-ds1305.c
> +++ b/drivers/rtc/rtc-ds1305.c
> @@ -720,7 +720,7 @@ static int ds1305_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ds1305_remove(struct spi_device *spi)
> +static void ds1305_remove(struct spi_device *spi)
> {
> struct ds1305 *ds1305 = spi_get_drvdata(spi);
>
> @@ -730,8 +730,6 @@ static int ds1305_remove(struct spi_device *spi)
> devm_free_irq(&spi->dev, spi->irq, ds1305);
> cancel_work_sync(&ds1305->work);
> }
> -
> - return 0;
> }
>
> static struct spi_driver ds1305_driver = {
> diff --git a/drivers/rtc/rtc-ds1343.c b/drivers/rtc/rtc-ds1343.c
> index f14ed6c96437..ed5a6ba89a3e 100644
> --- a/drivers/rtc/rtc-ds1343.c
> +++ b/drivers/rtc/rtc-ds1343.c
> @@ -434,11 +434,9 @@ static int ds1343_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ds1343_remove(struct spi_device *spi)
> +static void ds1343_remove(struct spi_device *spi)
> {
> dev_pm_clear_wake_irq(&spi->dev);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/spi/spi-mem.c b/drivers/spi/spi-mem.c
> index 37f4443ce9a0..e9d83d65873b 100644
> --- a/drivers/spi/spi-mem.c
> +++ b/drivers/spi/spi-mem.c
> @@ -854,15 +854,13 @@ static int spi_mem_probe(struct spi_device *spi)
> return memdrv->probe(mem);
> }
>
> -static int spi_mem_remove(struct spi_device *spi)
> +static void spi_mem_remove(struct spi_device *spi)
> {
> struct spi_mem_driver *memdrv = to_spi_mem_drv(spi->dev.driver);
> struct spi_mem *mem = spi_get_drvdata(spi);
>
> if (memdrv->remove)
> - return memdrv->remove(mem);
> -
> - return 0;
> + memdrv->remove(mem);
> }
>
> static void spi_mem_shutdown(struct spi_device *spi)
> diff --git a/drivers/spi/spi-slave-system-control.c b/drivers/spi/spi-slave-system-control.c
> index 169f3d595f60..d37cfe995a63 100644
> --- a/drivers/spi/spi-slave-system-control.c
> +++ b/drivers/spi/spi-slave-system-control.c
> @@ -132,13 +132,12 @@ static int spi_slave_system_control_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int spi_slave_system_control_remove(struct spi_device *spi)
> +static void spi_slave_system_control_remove(struct spi_device *spi)
> {
> struct spi_slave_system_control_priv *priv = spi_get_drvdata(spi);
>
> spi_slave_abort(spi);
> wait_for_completion(&priv->finished);
> - return 0;
> }
>
> static struct spi_driver spi_slave_system_control_driver = {
> diff --git a/drivers/spi/spi-slave-time.c b/drivers/spi/spi-slave-time.c
> index f2e07a392d68..f56c1afb8534 100644
> --- a/drivers/spi/spi-slave-time.c
> +++ b/drivers/spi/spi-slave-time.c
> @@ -106,13 +106,12 @@ static int spi_slave_time_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int spi_slave_time_remove(struct spi_device *spi)
> +static void spi_slave_time_remove(struct spi_device *spi)
> {
> struct spi_slave_time_priv *priv = spi_get_drvdata(spi);
>
> spi_slave_abort(spi);
> wait_for_completion(&priv->finished);
> - return 0;
> }
>
> static struct spi_driver spi_slave_time_driver = {
> diff --git a/drivers/spi/spi-tle62x0.c b/drivers/spi/spi-tle62x0.c
> index f8ad0709d015..a565352f6381 100644
> --- a/drivers/spi/spi-tle62x0.c
> +++ b/drivers/spi/spi-tle62x0.c
> @@ -288,7 +288,7 @@ static int tle62x0_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int tle62x0_remove(struct spi_device *spi)
> +static void tle62x0_remove(struct spi_device *spi)
> {
> struct tle62x0_state *st = spi_get_drvdata(spi);
> int ptr;
> @@ -298,7 +298,6 @@ static int tle62x0_remove(struct spi_device *spi)
>
> device_remove_file(&spi->dev, &dev_attr_status_show);
> kfree(st);
> - return 0;
> }
>
> static struct spi_driver tle62x0_driver = {
> diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
> index 4599b121d744..ead9a132dcb9 100644
> --- a/drivers/spi/spi.c
> +++ b/drivers/spi/spi.c
> @@ -404,15 +404,8 @@ static void spi_remove(struct device *dev)
> {
> const struct spi_driver *sdrv = to_spi_driver(dev->driver);
>
> - if (sdrv->remove) {
> - int ret;
> -
> - ret = sdrv->remove(to_spi_device(dev));
> - if (ret)
> - dev_warn(dev,
> - "Failed to unbind driver (%pe), ignoring\n",
> - ERR_PTR(ret));
> - }
> + if (sdrv->remove)
> + sdrv->remove(to_spi_device(dev));
>
> dev_pm_domain_detach(dev, true);
> }
> diff --git a/drivers/spi/spidev.c b/drivers/spi/spidev.c
> index a5cceca8b82b..9468f74308bd 100644
> --- a/drivers/spi/spidev.c
> +++ b/drivers/spi/spidev.c
> @@ -803,7 +803,7 @@ static int spidev_probe(struct spi_device *spi)
> return status;
> }
>
> -static int spidev_remove(struct spi_device *spi)
> +static void spidev_remove(struct spi_device *spi)
> {
> struct spidev_data *spidev = spi_get_drvdata(spi);
>
> @@ -820,8 +820,6 @@ static int spidev_remove(struct spi_device *spi)
> if (spidev->users == 0)
> kfree(spidev);
> mutex_unlock(&device_list_lock);
> -
> - return 0;
> }
>
> static struct spi_driver spidev_spi_driver = {
> diff --git a/drivers/staging/fbtft/fbtft.h b/drivers/staging/fbtft/fbtft.h
> index 6a7545b5bcd2..b68f5f9b7c78 100644
> --- a/drivers/staging/fbtft/fbtft.h
> +++ b/drivers/staging/fbtft/fbtft.h
> @@ -286,12 +286,11 @@ static int fbtft_driver_probe_spi(struct spi_device *spi) \
> return fbtft_probe_common(_display, spi, NULL); \
> } \
> \
> -static int fbtft_driver_remove_spi(struct spi_device *spi) \
> +static void fbtft_driver_remove_spi(struct spi_device *spi) \
> { \
> struct fb_info *info = spi_get_drvdata(spi); \
> \
> fbtft_remove_common(&spi->dev, info); \
> - return 0; \
> } \
> \
> static struct spi_driver fbtft_driver_spi_driver = { \
> diff --git a/drivers/staging/pi433/pi433_if.c b/drivers/staging/pi433/pi433_if.c
> index 68c09fa016ed..1d31c35875e3 100644
> --- a/drivers/staging/pi433/pi433_if.c
> +++ b/drivers/staging/pi433/pi433_if.c
> @@ -1264,7 +1264,7 @@ static int pi433_probe(struct spi_device *spi)
> return retval;
> }
>
> -static int pi433_remove(struct spi_device *spi)
> +static void pi433_remove(struct spi_device *spi)
> {
> struct pi433_device *device = spi_get_drvdata(spi);
>
> @@ -1284,8 +1284,6 @@ static int pi433_remove(struct spi_device *spi)
>
> kfree(device->rx_buffer);
> kfree(device);
> -
> - return 0;
> }
>
> static const struct of_device_id pi433_dt_ids[] = {
> diff --git a/drivers/staging/wfx/bus_spi.c b/drivers/staging/wfx/bus_spi.c
> index 55ffcd7c42e2..fa0ff66a457d 100644
> --- a/drivers/staging/wfx/bus_spi.c
> +++ b/drivers/staging/wfx/bus_spi.c
> @@ -232,12 +232,11 @@ static int wfx_spi_probe(struct spi_device *func)
> return wfx_probe(bus->core);
> }
>
> -static int wfx_spi_remove(struct spi_device *func)
> +static void wfx_spi_remove(struct spi_device *func)
> {
> struct wfx_spi_priv *bus = spi_get_drvdata(func);
>
> wfx_release(bus->core);
> - return 0;
> }
>
> /* For dynamic driver binding, kernel does not use OF to match driver. It only
> diff --git a/drivers/tty/serial/max3100.c b/drivers/tty/serial/max3100.c
> index 3c92d4e01488..516cff362434 100644
> --- a/drivers/tty/serial/max3100.c
> +++ b/drivers/tty/serial/max3100.c
> @@ -805,7 +805,7 @@ static int max3100_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int max3100_remove(struct spi_device *spi)
> +static void max3100_remove(struct spi_device *spi)
> {
> struct max3100_port *s = spi_get_drvdata(spi);
> int i;
> @@ -828,13 +828,12 @@ static int max3100_remove(struct spi_device *spi)
> for (i = 0; i < MAX_MAX3100; i++)
> if (max3100s[i]) {
> mutex_unlock(&max3100s_lock);
> - return 0;
> + return;
> }
> pr_debug("removing max3100 driver\n");
> uart_unregister_driver(&max3100_uart_driver);
>
> mutex_unlock(&max3100s_lock);
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/tty/serial/max310x.c b/drivers/tty/serial/max310x.c
> index dde0824b2fa5..3112b4a05448 100644
> --- a/drivers/tty/serial/max310x.c
> +++ b/drivers/tty/serial/max310x.c
> @@ -1487,10 +1487,9 @@ static int max310x_spi_probe(struct spi_device *spi)
> return max310x_probe(&spi->dev, devtype, regmap, spi->irq);
> }
>
> -static int max310x_spi_remove(struct spi_device *spi)
> +static void max310x_spi_remove(struct spi_device *spi)
> {
> max310x_remove(&spi->dev);
> - return 0;
> }
>
> static const struct spi_device_id max310x_id_table[] = {
> diff --git a/drivers/tty/serial/sc16is7xx.c b/drivers/tty/serial/sc16is7xx.c
> index 64e7e6c8145f..25d67b8c4db7 100644
> --- a/drivers/tty/serial/sc16is7xx.c
> +++ b/drivers/tty/serial/sc16is7xx.c
> @@ -1440,11 +1440,9 @@ static int sc16is7xx_spi_probe(struct spi_device *spi)
> return sc16is7xx_probe(&spi->dev, devtype, regmap, spi->irq);
> }
>
> -static int sc16is7xx_spi_remove(struct spi_device *spi)
> +static void sc16is7xx_spi_remove(struct spi_device *spi)
> {
> sc16is7xx_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id sc16is7xx_spi_id_table[] = {
> diff --git a/drivers/usb/gadget/udc/max3420_udc.c b/drivers/usb/gadget/udc/max3420_udc.c
> index d2a2b20cc1ad..7d9bd16190c0 100644
> --- a/drivers/usb/gadget/udc/max3420_udc.c
> +++ b/drivers/usb/gadget/udc/max3420_udc.c
> @@ -1292,7 +1292,7 @@ static int max3420_probe(struct spi_device *spi)
> return err;
> }
>
> -static int max3420_remove(struct spi_device *spi)
> +static void max3420_remove(struct spi_device *spi)
> {
> struct max3420_udc *udc = spi_get_drvdata(spi);
> unsigned long flags;
> @@ -1304,8 +1304,6 @@ static int max3420_remove(struct spi_device *spi)
> kthread_stop(udc->thread_task);
>
> spin_unlock_irqrestore(&udc->lock, flags);
> -
> - return 0;
> }
>
> static const struct of_device_id max3420_udc_of_match[] = {
> diff --git a/drivers/usb/host/max3421-hcd.c b/drivers/usb/host/max3421-hcd.c
> index 30de85a707fe..99a5523a79fb 100644
> --- a/drivers/usb/host/max3421-hcd.c
> +++ b/drivers/usb/host/max3421-hcd.c
> @@ -1926,7 +1926,7 @@ max3421_probe(struct spi_device *spi)
> return retval;
> }
>
> -static int
> +static void
> max3421_remove(struct spi_device *spi)
> {
> struct max3421_hcd *max3421_hcd;
> @@ -1947,7 +1947,6 @@ max3421_remove(struct spi_device *spi)
> free_irq(spi->irq, hcd);
>
> usb_put_hcd(hcd);
> - return 0;
> }
>
> static const struct of_device_id max3421_of_match_table[] = {
> diff --git a/drivers/video/backlight/ams369fg06.c b/drivers/video/backlight/ams369fg06.c
> index 8a4361e95a11..522dd81110b8 100644
> --- a/drivers/video/backlight/ams369fg06.c
> +++ b/drivers/video/backlight/ams369fg06.c
> @@ -506,12 +506,11 @@ static int ams369fg06_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ams369fg06_remove(struct spi_device *spi)
> +static void ams369fg06_remove(struct spi_device *spi)
> {
> struct ams369fg06 *lcd = spi_get_drvdata(spi);
>
> ams369fg06_power(lcd, FB_BLANK_POWERDOWN);
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/video/backlight/corgi_lcd.c b/drivers/video/backlight/corgi_lcd.c
> index 33f5d80495e6..0a57033ae31d 100644
> --- a/drivers/video/backlight/corgi_lcd.c
> +++ b/drivers/video/backlight/corgi_lcd.c
> @@ -542,7 +542,7 @@ static int corgi_lcd_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int corgi_lcd_remove(struct spi_device *spi)
> +static void corgi_lcd_remove(struct spi_device *spi)
> {
> struct corgi_lcd *lcd = spi_get_drvdata(spi);
>
> @@ -550,7 +550,6 @@ static int corgi_lcd_remove(struct spi_device *spi)
> lcd->bl_dev->props.brightness = 0;
> backlight_update_status(lcd->bl_dev);
> corgi_lcd_set_power(lcd->lcd_dev, FB_BLANK_POWERDOWN);
> - return 0;
> }
>
> static struct spi_driver corgi_lcd_driver = {
> diff --git a/drivers/video/backlight/ili922x.c b/drivers/video/backlight/ili922x.c
> index 328aba9cddad..e7b6bd827986 100644
> --- a/drivers/video/backlight/ili922x.c
> +++ b/drivers/video/backlight/ili922x.c
> @@ -526,10 +526,9 @@ static int ili922x_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ili922x_remove(struct spi_device *spi)
> +static void ili922x_remove(struct spi_device *spi)
> {
> ili922x_poweroff(spi);
> - return 0;
> }
>
> static struct spi_driver ili922x_driver = {
> diff --git a/drivers/video/backlight/l4f00242t03.c b/drivers/video/backlight/l4f00242t03.c
> index 46f97d1c3d21..cc763cf15f53 100644
> --- a/drivers/video/backlight/l4f00242t03.c
> +++ b/drivers/video/backlight/l4f00242t03.c
> @@ -223,12 +223,11 @@ static int l4f00242t03_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int l4f00242t03_remove(struct spi_device *spi)
> +static void l4f00242t03_remove(struct spi_device *spi)
> {
> struct l4f00242t03_priv *priv = spi_get_drvdata(spi);
>
> l4f00242t03_lcd_power_set(priv->ld, FB_BLANK_POWERDOWN);
> - return 0;
> }
>
> static void l4f00242t03_shutdown(struct spi_device *spi)
> diff --git a/drivers/video/backlight/lms501kf03.c b/drivers/video/backlight/lms501kf03.c
> index f949b66dce1b..5c46df8022bf 100644
> --- a/drivers/video/backlight/lms501kf03.c
> +++ b/drivers/video/backlight/lms501kf03.c
> @@ -364,12 +364,11 @@ static int lms501kf03_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int lms501kf03_remove(struct spi_device *spi)
> +static void lms501kf03_remove(struct spi_device *spi)
> {
> struct lms501kf03 *lcd = spi_get_drvdata(spi);
>
> lms501kf03_power(lcd, FB_BLANK_POWERDOWN);
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/video/backlight/ltv350qv.c b/drivers/video/backlight/ltv350qv.c
> index 5cbf621e48bd..b6d373af6e3f 100644
> --- a/drivers/video/backlight/ltv350qv.c
> +++ b/drivers/video/backlight/ltv350qv.c
> @@ -255,12 +255,11 @@ static int ltv350qv_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ltv350qv_remove(struct spi_device *spi)
> +static void ltv350qv_remove(struct spi_device *spi)
> {
> struct ltv350qv *lcd = spi_get_drvdata(spi);
>
> ltv350qv_power(lcd, FB_BLANK_POWERDOWN);
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/video/backlight/tdo24m.c b/drivers/video/backlight/tdo24m.c
> index 0de044dcafd5..fc6fbaf85594 100644
> --- a/drivers/video/backlight/tdo24m.c
> +++ b/drivers/video/backlight/tdo24m.c
> @@ -397,12 +397,11 @@ static int tdo24m_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int tdo24m_remove(struct spi_device *spi)
> +static void tdo24m_remove(struct spi_device *spi)
> {
> struct tdo24m *lcd = spi_get_drvdata(spi);
>
> tdo24m_power(lcd, FB_BLANK_POWERDOWN);
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/video/backlight/tosa_lcd.c b/drivers/video/backlight/tosa_lcd.c
> index 38765544345b..23d6c6bf0f54 100644
> --- a/drivers/video/backlight/tosa_lcd.c
> +++ b/drivers/video/backlight/tosa_lcd.c
> @@ -232,15 +232,13 @@ static int tosa_lcd_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int tosa_lcd_remove(struct spi_device *spi)
> +static void tosa_lcd_remove(struct spi_device *spi)
> {
> struct tosa_lcd_data *data = spi_get_drvdata(spi);
>
> i2c_unregister_device(data->i2c);
>
> tosa_lcd_tg_off(data);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/video/backlight/vgg2432a4.c b/drivers/video/backlight/vgg2432a4.c
> index 3567b45f9ba9..bfc1913e8b55 100644
> --- a/drivers/video/backlight/vgg2432a4.c
> +++ b/drivers/video/backlight/vgg2432a4.c
> @@ -233,11 +233,9 @@ static int vgg2432a4_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int vgg2432a4_remove(struct spi_device *spi)
> +static void vgg2432a4_remove(struct spi_device *spi)
> {
> ili9320_remove(spi_get_drvdata(spi));
> -
> - return 0;
> }
>
> static void vgg2432a4_shutdown(struct spi_device *spi)
> diff --git a/drivers/video/fbdev/omap/lcd_mipid.c b/drivers/video/fbdev/omap/lcd_mipid.c
> index a75ae0c9b14c..03cff39d392d 100644
> --- a/drivers/video/fbdev/omap/lcd_mipid.c
> +++ b/drivers/video/fbdev/omap/lcd_mipid.c
> @@ -570,14 +570,12 @@ static int mipid_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int mipid_spi_remove(struct spi_device *spi)
> +static void mipid_spi_remove(struct spi_device *spi)
> {
> struct mipid_device *md = dev_get_drvdata(&spi->dev);
>
> mipid_disable(&md->panel);
> kfree(md);
> -
> - return 0;
> }
>
> static struct spi_driver mipid_spi_driver = {
> diff --git a/drivers/video/fbdev/omap2/omapfb/displays/panel-lgphilips-lb035q02.c b/drivers/video/fbdev/omap2/omapfb/displays/panel-lgphilips-lb035q02.c
> index 1bec7a4422e8..aab67721263d 100644
> --- a/drivers/video/fbdev/omap2/omapfb/displays/panel-lgphilips-lb035q02.c
> +++ b/drivers/video/fbdev/omap2/omapfb/displays/panel-lgphilips-lb035q02.c
> @@ -316,7 +316,7 @@ static int lb035q02_panel_spi_probe(struct spi_device *spi)
> return r;
> }
>
> -static int lb035q02_panel_spi_remove(struct spi_device *spi)
> +static void lb035q02_panel_spi_remove(struct spi_device *spi)
> {
> struct panel_drv_data *ddata = spi_get_drvdata(spi);
> struct omap_dss_device *dssdev = &ddata->dssdev;
> @@ -328,8 +328,6 @@ static int lb035q02_panel_spi_remove(struct spi_device *spi)
> lb035q02_disconnect(dssdev);
>
> omap_dss_put_device(in);
> -
> - return 0;
> }
>
> static const struct of_device_id lb035q02_of_match[] = {
> diff --git a/drivers/video/fbdev/omap2/omapfb/displays/panel-nec-nl8048hl11.c b/drivers/video/fbdev/omap2/omapfb/displays/panel-nec-nl8048hl11.c
> index dff9ebbadfc0..be9910ff6e62 100644
> --- a/drivers/video/fbdev/omap2/omapfb/displays/panel-nec-nl8048hl11.c
> +++ b/drivers/video/fbdev/omap2/omapfb/displays/panel-nec-nl8048hl11.c
> @@ -327,7 +327,7 @@ static int nec_8048_probe(struct spi_device *spi)
> return r;
> }
>
> -static int nec_8048_remove(struct spi_device *spi)
> +static void nec_8048_remove(struct spi_device *spi)
> {
> struct panel_drv_data *ddata = dev_get_drvdata(&spi->dev);
> struct omap_dss_device *dssdev = &ddata->dssdev;
> @@ -341,8 +341,6 @@ static int nec_8048_remove(struct spi_device *spi)
> nec_8048_disconnect(dssdev);
>
> omap_dss_put_device(in);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/video/fbdev/omap2/omapfb/displays/panel-sony-acx565akm.c b/drivers/video/fbdev/omap2/omapfb/displays/panel-sony-acx565akm.c
> index 8d8b5ff7d43c..a909b5385ca5 100644
> --- a/drivers/video/fbdev/omap2/omapfb/displays/panel-sony-acx565akm.c
> +++ b/drivers/video/fbdev/omap2/omapfb/displays/panel-sony-acx565akm.c
> @@ -857,7 +857,7 @@ static int acx565akm_probe(struct spi_device *spi)
> return r;
> }
>
> -static int acx565akm_remove(struct spi_device *spi)
> +static void acx565akm_remove(struct spi_device *spi)
> {
> struct panel_drv_data *ddata = dev_get_drvdata(&spi->dev);
> struct omap_dss_device *dssdev = &ddata->dssdev;
> @@ -874,8 +874,6 @@ static int acx565akm_remove(struct spi_device *spi)
> acx565akm_disconnect(dssdev);
>
> omap_dss_put_device(in);
> -
> - return 0;
> }
>
> static const struct of_device_id acx565akm_of_match[] = {
> diff --git a/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td028ttec1.c b/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td028ttec1.c
> index 595ebd8bd5dc..3c0f887d3092 100644
> --- a/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td028ttec1.c
> +++ b/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td028ttec1.c
> @@ -425,7 +425,7 @@ static int td028ttec1_panel_probe(struct spi_device *spi)
> return r;
> }
>
> -static int td028ttec1_panel_remove(struct spi_device *spi)
> +static void td028ttec1_panel_remove(struct spi_device *spi)
> {
> struct panel_drv_data *ddata = dev_get_drvdata(&spi->dev);
> struct omap_dss_device *dssdev = &ddata->dssdev;
> @@ -439,8 +439,6 @@ static int td028ttec1_panel_remove(struct spi_device *spi)
> td028ttec1_panel_disconnect(dssdev);
>
> omap_dss_put_device(in);
> -
> - return 0;
> }
>
> static const struct of_device_id td028ttec1_of_match[] = {
> diff --git a/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td043mtea1.c b/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td043mtea1.c
> index afac1d9445aa..58bbba7c037f 100644
> --- a/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td043mtea1.c
> +++ b/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td043mtea1.c
> @@ -564,7 +564,7 @@ static int tpo_td043_probe(struct spi_device *spi)
> return r;
> }
>
> -static int tpo_td043_remove(struct spi_device *spi)
> +static void tpo_td043_remove(struct spi_device *spi)
> {
> struct panel_drv_data *ddata = dev_get_drvdata(&spi->dev);
> struct omap_dss_device *dssdev = &ddata->dssdev;
> @@ -580,8 +580,6 @@ static int tpo_td043_remove(struct spi_device *spi)
> omap_dss_put_device(in);
>
> sysfs_remove_group(&spi->dev.kobj, &tpo_td043_attr_group);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/include/linux/spi/spi.h b/include/linux/spi/spi.h
> index 7ab3fed7b804..c84e61b99c7b 100644
> --- a/include/linux/spi/spi.h
> +++ b/include/linux/spi/spi.h
> @@ -280,7 +280,7 @@ struct spi_message;
> struct spi_driver {
> const struct spi_device_id *id_table;
> int (*probe)(struct spi_device *spi);
> - int (*remove)(struct spi_device *spi);
> + void (*remove)(struct spi_device *spi);
> void (*shutdown)(struct spi_device *spi);
> struct device_driver driver;
> };
> diff --git a/sound/pci/hda/cs35l41_hda_spi.c b/sound/pci/hda/cs35l41_hda_spi.c
> index 9f8123893cc8..50eb6c0e6658 100644
> --- a/sound/pci/hda/cs35l41_hda_spi.c
> +++ b/sound/pci/hda/cs35l41_hda_spi.c
> @@ -28,11 +28,9 @@ static int cs35l41_hda_spi_probe(struct spi_device *spi)
> devm_regmap_init_spi(spi, &cs35l41_regmap_spi));
> }
>
> -static int cs35l41_hda_spi_remove(struct spi_device *spi)
> +static void cs35l41_hda_spi_remove(struct spi_device *spi)
> {
> cs35l41_hda_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id cs35l41_hda_spi_id[] = {
> diff --git a/sound/soc/codecs/adau1761-spi.c b/sound/soc/codecs/adau1761-spi.c
> index 655689c9778a..7c9242c2ff94 100644
> --- a/sound/soc/codecs/adau1761-spi.c
> +++ b/sound/soc/codecs/adau1761-spi.c
> @@ -45,10 +45,9 @@ static int adau1761_spi_probe(struct spi_device *spi)
> id->driver_data, adau1761_spi_switch_mode);
> }
>
> -static int adau1761_spi_remove(struct spi_device *spi)
> +static void adau1761_spi_remove(struct spi_device *spi)
> {
> adau17x1_remove(&spi->dev);
> - return 0;
> }
>
> static const struct spi_device_id adau1761_spi_id[] = {
> diff --git a/sound/soc/codecs/adau1781-spi.c b/sound/soc/codecs/adau1781-spi.c
> index bb5613574786..1a09633d5a88 100644
> --- a/sound/soc/codecs/adau1781-spi.c
> +++ b/sound/soc/codecs/adau1781-spi.c
> @@ -45,10 +45,9 @@ static int adau1781_spi_probe(struct spi_device *spi)
> id->driver_data, adau1781_spi_switch_mode);
> }
>
> -static int adau1781_spi_remove(struct spi_device *spi)
> +static void adau1781_spi_remove(struct spi_device *spi)
> {
> adau17x1_remove(&spi->dev);
> - return 0;
> }
>
> static const struct spi_device_id adau1781_spi_id[] = {
> diff --git a/sound/soc/codecs/cs35l41-spi.c b/sound/soc/codecs/cs35l41-spi.c
> index 6dfd5459aa20..169221a5b09f 100644
> --- a/sound/soc/codecs/cs35l41-spi.c
> +++ b/sound/soc/codecs/cs35l41-spi.c
> @@ -55,13 +55,11 @@ static int cs35l41_spi_probe(struct spi_device *spi)
> return cs35l41_probe(cs35l41, pdata);
> }
>
> -static int cs35l41_spi_remove(struct spi_device *spi)
> +static void cs35l41_spi_remove(struct spi_device *spi)
> {
> struct cs35l41_private *cs35l41 = spi_get_drvdata(spi);
>
> cs35l41_remove(cs35l41);
> -
> - return 0;
> }
>
> #ifdef CONFIG_OF
> diff --git a/sound/soc/codecs/pcm3168a-spi.c b/sound/soc/codecs/pcm3168a-spi.c
> index ecd379f308e6..b5b08046f545 100644
> --- a/sound/soc/codecs/pcm3168a-spi.c
> +++ b/sound/soc/codecs/pcm3168a-spi.c
> @@ -26,11 +26,9 @@ static int pcm3168a_spi_probe(struct spi_device *spi)
> return pcm3168a_probe(&spi->dev, regmap);
> }
>
> -static int pcm3168a_spi_remove(struct spi_device *spi)
> +static void pcm3168a_spi_remove(struct spi_device *spi)
> {
> pcm3168a_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id pcm3168a_spi_id[] = {
> diff --git a/sound/soc/codecs/pcm512x-spi.c b/sound/soc/codecs/pcm512x-spi.c
> index 7cf559b47e1c..4d29e7196380 100644
> --- a/sound/soc/codecs/pcm512x-spi.c
> +++ b/sound/soc/codecs/pcm512x-spi.c
> @@ -26,10 +26,9 @@ static int pcm512x_spi_probe(struct spi_device *spi)
> return pcm512x_probe(&spi->dev, regmap);
> }
>
> -static int pcm512x_spi_remove(struct spi_device *spi)
> +static void pcm512x_spi_remove(struct spi_device *spi)
> {
> pcm512x_remove(&spi->dev);
> - return 0;
> }
>
> static const struct spi_device_id pcm512x_spi_id[] = {
> diff --git a/sound/soc/codecs/tlv320aic32x4-spi.c b/sound/soc/codecs/tlv320aic32x4-spi.c
> index a8958cd1c692..03cce8d6404f 100644
> --- a/sound/soc/codecs/tlv320aic32x4-spi.c
> +++ b/sound/soc/codecs/tlv320aic32x4-spi.c
> @@ -46,11 +46,9 @@ static int aic32x4_spi_probe(struct spi_device *spi)
> return aic32x4_probe(&spi->dev, regmap);
> }
>
> -static int aic32x4_spi_remove(struct spi_device *spi)
> +static void aic32x4_spi_remove(struct spi_device *spi)
> {
> aic32x4_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id aic32x4_spi_id[] = {
> diff --git a/sound/soc/codecs/tlv320aic3x-spi.c b/sound/soc/codecs/tlv320aic3x-spi.c
> index 494e84402232..deed6ec7e081 100644
> --- a/sound/soc/codecs/tlv320aic3x-spi.c
> +++ b/sound/soc/codecs/tlv320aic3x-spi.c
> @@ -35,11 +35,9 @@ static int aic3x_spi_probe(struct spi_device *spi)
> return aic3x_probe(&spi->dev, regmap, id->driver_data);
> }
>
> -static int aic3x_spi_remove(struct spi_device *spi)
> +static void aic3x_spi_remove(struct spi_device *spi)
> {
> aic3x_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id aic3x_spi_id[] = {
> diff --git a/sound/soc/codecs/wm0010.c b/sound/soc/codecs/wm0010.c
> index 28b4656c4e14..1bef1c500c8e 100644
> --- a/sound/soc/codecs/wm0010.c
> +++ b/sound/soc/codecs/wm0010.c
> @@ -969,7 +969,7 @@ static int wm0010_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int wm0010_spi_remove(struct spi_device *spi)
> +static void wm0010_spi_remove(struct spi_device *spi)
> {
> struct wm0010_priv *wm0010 = spi_get_drvdata(spi);
>
> @@ -980,8 +980,6 @@ static int wm0010_spi_remove(struct spi_device *spi)
>
> if (wm0010->irq)
> free_irq(wm0010->irq, wm0010);
> -
> - return 0;
> }
>
> static struct spi_driver wm0010_spi_driver = {
> diff --git a/sound/soc/codecs/wm8804-spi.c b/sound/soc/codecs/wm8804-spi.c
> index 9a8da1511c34..628568724c20 100644
> --- a/sound/soc/codecs/wm8804-spi.c
> +++ b/sound/soc/codecs/wm8804-spi.c
> @@ -24,10 +24,9 @@ static int wm8804_spi_probe(struct spi_device *spi)
> return wm8804_probe(&spi->dev, regmap);
> }
>
> -static int wm8804_spi_remove(struct spi_device *spi)
> +static void wm8804_spi_remove(struct spi_device *spi)
> {
> wm8804_remove(&spi->dev);
> - return 0;
> }
>
> static const struct of_device_id wm8804_of_match[] = {
> diff --git a/sound/spi/at73c213.c b/sound/spi/at73c213.c
> index 76c0e37a838c..56d2c712e257 100644
> --- a/sound/spi/at73c213.c
> +++ b/sound/spi/at73c213.c
> @@ -1001,7 +1001,7 @@ static int snd_at73c213_probe(struct spi_device *spi)
> return retval;
> }
>
> -static int snd_at73c213_remove(struct spi_device *spi)
> +static void snd_at73c213_remove(struct spi_device *spi)
> {
> struct snd_card *card = dev_get_drvdata(&spi->dev);
> struct snd_at73c213 *chip = card->private_data;
> @@ -1066,8 +1066,6 @@ static int snd_at73c213_remove(struct spi_device *spi)
>
> ssc_free(chip->ssc);
> snd_card_free(card);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-54 Fax: (+49)-8142-66989-80 Email: ch(a)denx.de
1
0

[PATCH v2 1/5] ASoC: sh: rz-ssi: Drop calling rz_ssi_pio_recv() recursively
by Lad Prabhakar 25 Jan '22
by Lad Prabhakar 25 Jan '22
25 Jan '22
Instead of recursively calling rz_ssi_pio_recv() use a loop instead
to read the samples from RX fifo.
Inspiration for this patch is to avoid recursion, as recursion is
unwelcome in kernel due to limited stack use. Also to add this driver
will later be used on RZ/A2 SoC's which runs with limited memory.
This also fixes an issue where the return value of rz_ssi_pio_recv()
was ignored when called recursively.
Fixes: 03e786bd4341 ("ASoC: sh: Add RZ/G2L SSIF-2 driver")
Reported-by: Pavel Machek <pavel(a)denx.de>
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj(a)bp.renesas.com>
Reviewed-by: Biju Das <biju.das.jz(a)bp.renesas.com>
---
v1->v2
* Used a do while loop
* Fixed comments pointed by Cezary.
---
sound/soc/sh/rz-ssi.c | 65 +++++++++++++++++++++----------------------
1 file changed, 31 insertions(+), 34 deletions(-)
diff --git a/sound/soc/sh/rz-ssi.c b/sound/soc/sh/rz-ssi.c
index fa0cc08f70ec..637802117c6c 100644
--- a/sound/soc/sh/rz-ssi.c
+++ b/sound/soc/sh/rz-ssi.c
@@ -414,51 +414,48 @@ static int rz_ssi_pio_recv(struct rz_ssi_priv *ssi, struct rz_ssi_stream *strm)
u16 *buf;
int fifo_samples;
int frames_left;
- int samples = 0;
+ int samples;
int i;
if (!rz_ssi_stream_is_valid(ssi, strm))
return -EINVAL;
runtime = substream->runtime;
- /* frames left in this period */
- frames_left = runtime->period_size - (strm->buffer_pos %
- runtime->period_size);
- if (frames_left == 0)
- frames_left = runtime->period_size;
- /* Samples in RX FIFO */
- fifo_samples = (rz_ssi_reg_readl(ssi, SSIFSR) >>
- SSIFSR_RDC_SHIFT) & SSIFSR_RDC_MASK;
-
- /* Only read full frames at a time */
- while (frames_left && (fifo_samples >= runtime->channels)) {
- samples += runtime->channels;
- fifo_samples -= runtime->channels;
- frames_left--;
- }
-
- /* not enough samples yet */
- if (samples == 0)
- return 0;
+ do {
+ /* frames left in this period */
+ frames_left = runtime->period_size -
+ (strm->buffer_pos % runtime->period_size);
+ if (!frames_left)
+ frames_left = runtime->period_size;
+
+ /* Samples in RX FIFO */
+ fifo_samples = (rz_ssi_reg_readl(ssi, SSIFSR) >>
+ SSIFSR_RDC_SHIFT) & SSIFSR_RDC_MASK;
+
+ /* Only read full frames at a time */
+ samples = 0;
+ while (frames_left && (fifo_samples >= runtime->channels)) {
+ samples += runtime->channels;
+ fifo_samples -= runtime->channels;
+ frames_left--;
+ }
- /* calculate new buffer index */
- buf = (u16 *)(runtime->dma_area);
- buf += strm->buffer_pos * runtime->channels;
+ /* not enough samples yet */
+ if (!samples)
+ break;
- /* Note, only supports 16-bit samples */
- for (i = 0; i < samples; i++)
- *buf++ = (u16)(rz_ssi_reg_readl(ssi, SSIFRDR) >> 16);
+ /* calculate new buffer index */
+ buf = (u16 *)runtime->dma_area;
+ buf += strm->buffer_pos * runtime->channels;
- rz_ssi_reg_mask_setl(ssi, SSIFSR, SSIFSR_RDF, 0);
- rz_ssi_pointer_update(strm, samples / runtime->channels);
+ /* Note, only supports 16-bit samples */
+ for (i = 0; i < samples; i++)
+ *buf++ = (u16)(rz_ssi_reg_readl(ssi, SSIFRDR) >> 16);
- /*
- * If we finished this period, but there are more samples in
- * the RX FIFO, call this function again
- */
- if (frames_left == 0 && fifo_samples >= runtime->channels)
- rz_ssi_pio_recv(ssi, strm);
+ rz_ssi_reg_mask_setl(ssi, SSIFSR, SSIFSR_RDF, 0);
+ rz_ssi_pointer_update(strm, samples / runtime->channels);
+ } while (!frames_left && fifo_samples >= runtime->channels);
return 0;
}
--
2.17.1
3
2
There are drivers in mainline for the Xilinx Audio Formatter and Xilinx
I2S IP cores. However, because of a few issues, these were only really
usable with Xilinx's xlnx_pl_snd_card top-level driver, which is not in
mainline (and not suitable for mainline).
The fixes in this patchset, for the simple-card layer as well as the
Xilinx drivers, now allow these drivers to be properly used with
simple-card without any out-of-tree support code.
Changes since v2:
-drop patches already merged
-added constraint to simple-card to allow enforcing valid sample rates
Changes since v1:
-formatting fixes
-renamed last_sysclk variables to sysclk
-require exact match for clock divisor rather than rounding to nearest
-broke out driver data structure change in xlnx_i2s to separate patch
-added constraints for sample rate based on sysclk to xlnx_i2s
-switched to separate function for DAI parsing for platforms in simple_card
Robert Hancock (6):
ASoC: xilinx: xlnx_formatter_pcm: Handle sysclk setting
ASoC: xilinx: xlnx_i2s: create drvdata structure
ASoC: xilinx: xlnx_i2s: Handle sysclk setting
ASoC: simple-card-utils: Set sysclk on all components
ASoC: dt-bindings: simple-card: document new system-clock-fixed flag
ASoC: simple-card-utils: Add new system-clock-fixed flag
.../bindings/sound/simple-card.yaml | 11 ++
include/sound/simple_card_utils.h | 1 +
sound/soc/generic/simple-card-utils.c | 86 ++++++++--
sound/soc/xilinx/xlnx_formatter_pcm.c | 25 +++
sound/soc/xilinx/xlnx_i2s.c | 147 +++++++++++++-----
5 files changed, 223 insertions(+), 47 deletions(-)
--
2.31.1
4
10

[PATCH] ASoC: amd: sof-mach: Add support for RT5682S and RT1019 card
by V sujith kumar Reddy 25 Jan '22
by V sujith kumar Reddy 25 Jan '22
25 Jan '22
We have new platform with rt5682s as a primary codec and rt1019 as an
amp codec. Add machine struct to register sof audio based sound card
on such Chrome machine.
Signed-off-by: Ajit Kumar Pandey <AjitKumar.Pandey(a)amd.com>
Signed-off-by: V sujith kumar Reddy <vsujithkumar.reddy(a)amd.com>
---
sound/soc/amd/acp-config.c | 9 +++++++++
sound/soc/amd/acp/acp-sof-mach.c | 14 ++++++++++++++
2 files changed, 23 insertions(+)
diff --git a/sound/soc/amd/acp-config.c b/sound/soc/amd/acp-config.c
index c9e1c08364f3..5cbc82eca4c9 100644
--- a/sound/soc/amd/acp-config.c
+++ b/sound/soc/amd/acp-config.c
@@ -110,6 +110,15 @@ struct snd_soc_acpi_mach snd_soc_acpi_amd_sof_machines[] = {
.fw_filename = "sof-rn.ri",
.sof_tplg_filename = "sof-rn-rt5682-max98360.tplg",
},
+ {
+ .id = "RTL5682",
+ .drv_name = "rt5682s-rt1019",
+ .pdata = (void *)&acp_quirk_data,
+ .machine_quirk = snd_soc_acpi_codec_list,
+ .quirk_data = &_rt1019,
+ .fw_filename = "sof-rn.ri",
+ .sof_tplg_filename = "sof-rn-rt5682-rt1019.tplg",
+ },
{
.id = "AMDI1019",
.drv_name = "renoir-dsp",
diff --git a/sound/soc/amd/acp/acp-sof-mach.c b/sound/soc/amd/acp/acp-sof-mach.c
index 07de46142655..c1d9650fc222 100644
--- a/sound/soc/amd/acp/acp-sof-mach.c
+++ b/sound/soc/amd/acp/acp-sof-mach.c
@@ -40,6 +40,15 @@ static struct acp_card_drvdata sof_rt5682_max_data = {
.gpio_spkr_en = EN_SPKR_GPIO_NK,
};
+static struct acp_card_drvdata sof_rt5682s_rt1019_data = {
+ .hs_cpu_id = I2S_SP,
+ .amp_cpu_id = I2S_SP,
+ .dmic_cpu_id = DMIC,
+ .hs_codec_id = RT5682S,
+ .amp_codec_id = RT1019,
+ .dmic_codec_id = DMIC,
+};
+
static struct acp_card_drvdata sof_rt5682s_max_data = {
.hs_cpu_id = I2S_SP,
.amp_cpu_id = I2S_SP,
@@ -126,6 +135,10 @@ static const struct platform_device_id board_ids[] = {
.name = "rt5682s-max",
.driver_data = (kernel_ulong_t)&sof_rt5682s_max_data
},
+ {
+ .name = "rt5682s-rt1019",
+ .driver_data = (kernel_ulong_t)&sof_rt5682s_rt1019_data
+ },
{ }
};
static struct platform_driver acp_asoc_audio = {
@@ -143,4 +156,5 @@ MODULE_DESCRIPTION("ACP chrome SOF audio support");
MODULE_ALIAS("platform:rt5682-rt1019");
MODULE_ALIAS("platform:rt5682-max");
MODULE_ALIAS("platform:rt5682s-max");
+MODULE_ALIAS("platform:rt5682s-rt1019");
MODULE_LICENSE("GPL v2");
--
2.25.1
2
1

[PATCH v3] ASoC: codecs: Check for error pointer after calling devm_regmap_init_mmio
by Jiasheng Jiang 25 Jan '22
by Jiasheng Jiang 25 Jan '22
25 Jan '22
Since the potential failure of the devm_regmap_init_mmio(), it will
return error pointer and be assigned to the regmap.
Then the error pointer will be dereferenced.
For example rx->regmap will be used in rx_macro_mclk_enable().
Therefore, it should be better to check it.
Fixes: af3d54b99764 ("ASoC: codecs: lpass-rx-macro: add support for lpass rx macro")
Fixes: c39667ddcfc5 ("ASoC: codecs: lpass-tx-macro: add support for lpass tx macro")
Fixes: 809bcbcecebf ("ASoC: codecs: lpass-wsa-macro: Add support to WSA Macro")
Signed-off-by: Jiasheng Jiang <jiasheng(a)iscas.ac.cn>
---
Changelog
v1 -> v2
* Change 1. Refine the commit message.
v2 -> v3
* Change 1. Make the patch against the latest code.
---
sound/soc/codecs/lpass-rx-macro.c | 2 ++
sound/soc/codecs/lpass-tx-macro.c | 2 ++
sound/soc/codecs/lpass-wsa-macro.c | 2 ++
3 files changed, 6 insertions(+)
diff --git a/sound/soc/codecs/lpass-rx-macro.c b/sound/soc/codecs/lpass-rx-macro.c
index aec5127260fd..29d214f784d1 100644
--- a/sound/soc/codecs/lpass-rx-macro.c
+++ b/sound/soc/codecs/lpass-rx-macro.c
@@ -3542,6 +3542,8 @@ static int rx_macro_probe(struct platform_device *pdev)
return PTR_ERR(base);
rx->regmap = devm_regmap_init_mmio(dev, base, &rx_regmap_config);
+ if (IS_ERR(rx->regmap))
+ return PTR_ERR(rx->regmap);
dev_set_drvdata(dev, rx);
diff --git a/sound/soc/codecs/lpass-tx-macro.c b/sound/soc/codecs/lpass-tx-macro.c
index a4c0a155af56..9c96ab1bf84f 100644
--- a/sound/soc/codecs/lpass-tx-macro.c
+++ b/sound/soc/codecs/lpass-tx-macro.c
@@ -1821,6 +1821,8 @@ static int tx_macro_probe(struct platform_device *pdev)
}
tx->regmap = devm_regmap_init_mmio(dev, base, &tx_regmap_config);
+ if (IS_ERR(tx->regmap))
+ return PTR_ERR(tx->regmap);
dev_set_drvdata(dev, tx);
diff --git a/sound/soc/codecs/lpass-wsa-macro.c b/sound/soc/codecs/lpass-wsa-macro.c
index 75baf8eb7029..69d2915f40d8 100644
--- a/sound/soc/codecs/lpass-wsa-macro.c
+++ b/sound/soc/codecs/lpass-wsa-macro.c
@@ -2405,6 +2405,8 @@ static int wsa_macro_probe(struct platform_device *pdev)
return PTR_ERR(base);
wsa->regmap = devm_regmap_init_mmio(dev, base, &wsa_regmap_config);
+ if (IS_ERR(wsa->regmap))
+ return PTR_ERR(wsa->regmap);
dev_set_drvdata(dev, wsa);
--
2.25.1
2
1

25 Jan '22
codec system clock source support 512FS MCLK synchronous directly, so
no need to set PLL configuration when MCLK 24.576MHz.
Suggested-by: Shuming Fan <shumingf(a)realtek.com>
Signed-off-by: Mac Chiang <mac.chiang(a)intel.com>
---
Changelog:
v2:
- apply mclk configuration to both rt5682vd and rt5682vs
- Thanks to Brent by suggesting pll_in condition if MCLK or
PLL requires.
---
sound/soc/intel/boards/sof_rt5682.c | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/sound/soc/intel/boards/sof_rt5682.c b/sound/soc/intel/boards/sof_rt5682.c
index bd6d2e7dea53..f4e833cbffe1 100644
--- a/sound/soc/intel/boards/sof_rt5682.c
+++ b/sound/soc/intel/boards/sof_rt5682.c
@@ -369,11 +369,16 @@ static int sof_rt5682_hw_params(struct snd_pcm_substream *substream,
pll_out = params_rate(params) * 512;
- /* Configure pll for codec */
- ret = snd_soc_dai_set_pll(codec_dai, pll_id, pll_source, pll_in,
- pll_out);
- if (ret < 0)
- dev_err(rtd->dev, "snd_soc_dai_set_pll err = %d\n", ret);
+ /* when MCLK is 512FS, no need to set PLL configuration additionally. */
+ if (pll_in == pll_out)
+ clk_id = RT5682S_SCLK_S_MCLK;
+ else {
+ /* Configure pll for codec */
+ ret = snd_soc_dai_set_pll(codec_dai, pll_id, pll_source, pll_in,
+ pll_out);
+ if (ret < 0)
+ dev_err(rtd->dev, "snd_soc_dai_set_pll err = %d\n", ret);
+ }
/* Configure sysclk for codec */
ret = snd_soc_dai_set_sysclk(codec_dai, clk_id,
--
2.20.1
3
2

25 Jan '22
Add system suspend and resume handlers so that the cs42l42 is cleanly
put into power-off state during system suspend and the registers are
restored in resume.
The first two patches separate out two small changes that can stand
alone and are needed to enable the system suspend implementation:
1) Don't rely on there being a jack unplug IRQ before a plug IRQ.
There won't be if the unplug and plug happened while in system suspend.
2) Put a mutex around the entire IRQ handling so that the suspend can
ensure the last run of the IRQ handler has completed before it powers
down.
Changes since V1:
- Hold irq_lock mutex while restoring registers
Richard Fitzgerald (3):
ASoC: cs42l42: Report full jack status when plug is detected
ASoC: cs42l42: Change jack_detect_mutex to a lock of all IRQ handling
ASoC: cs42l42: Handle system suspend
sound/soc/codecs/cs42l42.c | 166 ++++++++++++++++++++++++++++++++++++++++++---
sound/soc/codecs/cs42l42.h | 7 +-
2 files changed, 163 insertions(+), 10 deletions(-)
--
2.11.0
2
4

25 Jan '22
Make sure the device version is taken into account when selecting a
machine driver, in addition to device manufacturer and part_id, and
simplify code with a macro.
Bard Liao (2):
ASoC: SOF: Intel: match sdw version on link_slaves_found
ASoC: SOF: Intel: Compare sdw adr directly
sound/soc/sof/intel/hda.c | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
--
2.25.1
2
3

[PATCH 0/5] ASoC: SOF: Intel: don't download firmware at each resume
by Pierre-Louis Bossart 25 Jan '22
by Pierre-Louis Bossart 25 Jan '22
25 Jan '22
After the first firmware boot, the firmware is capable of
saving/restoring its context to/from IMR (Isolated Memory Region, set
aside by BIOS on startup). This capability improves the resume speed.
Due to an unexplained issue on Up2 boards, this capability is disabled
on ApolloLake.
For backwards compatibility, the regular boot flow is used with older
firmware. For added peace of mind, a kernel module parameter is
provided to force the regular boot flow - this shouldn't be necessary
since we've been testing these patches for 6+ months.
Keyon Jie (4):
ASoC: SOF: add _D3_PERSISTENT flag to fw_ready message
ASoC: SOF: Intel: hda-loader: add SSP helper
ASoC: SOF: Intel: hda-loader: add IMR restore support
ASoC: SOF: add flag to disable IMR restore to sof_debug
Pierre-Louis Bossart (1):
ASoC: SOF: Intel: use inclusive language for SSP clocks
include/sound/sof/info.h | 1 +
include/uapi/sound/sof/abi.h | 2 +-
sound/soc/sof/intel/hda-loader.c | 68 +++++++++++++++++++++++++++-----
sound/soc/sof/intel/hda.h | 6 +--
sound/soc/sof/sof-priv.h | 3 ++
5 files changed, 66 insertions(+), 14 deletions(-)
--
2.25.1
2
6

25 Jan '22
Add support for platforms without amplifier (headset codec only) and
without Intel graphics.
Ajye Huang (1):
ASoC: Intel: sof_rt5682: Add support for platform without amplifier
Yong Zhi (1):
ASoC: Intel: sof_rt5682: add support for systems without i915 audio
sound/soc/intel/boards/sof_rt5682.c | 40 ++++++++++++++-----
.../intel/common/soc-acpi-intel-adl-match.c | 6 +++
2 files changed, 36 insertions(+), 10 deletions(-)
--
2.25.1
2
3

[PATCH] ASoC: soc-generic-dmaengine-pcm: separate max_buffer_size assignment
by Shengjiu Wang 25 Jan '22
by Shengjiu Wang 25 Jan '22
25 Jan '22
The config->pcm_hardware may be NULL when config->prealloc_buffer_size
is not zero, so it is better to move max_buffer_size assignment under
a separate condition.
Signed-off-by: Shengjiu Wang <shengjiu.wang(a)nxp.com>
---
sound/soc/soc-generic-dmaengine-pcm.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/sound/soc/soc-generic-dmaengine-pcm.c b/sound/soc/soc-generic-dmaengine-pcm.c
index c54c8ca8d715..8659cb1794f1 100644
--- a/sound/soc/soc-generic-dmaengine-pcm.c
+++ b/sound/soc/soc-generic-dmaengine-pcm.c
@@ -237,13 +237,15 @@ static int dmaengine_pcm_new(struct snd_soc_component *component,
size_t max_buffer_size;
unsigned int i;
- if (config && config->prealloc_buffer_size) {
+ if (config && config->prealloc_buffer_size)
prealloc_buffer_size = config->prealloc_buffer_size;
- max_buffer_size = config->pcm_hardware->buffer_bytes_max;
- } else {
+ else
prealloc_buffer_size = prealloc_buffer_size_kbytes * 1024;
+
+ if (config && config->pcm_hardware && config->pcm_hardware->buffer_bytes_max)
+ max_buffer_size = config->pcm_hardware->buffer_bytes_max;
+ else
max_buffer_size = SIZE_MAX;
- }
for_each_pcm_streams(i) {
struct snd_pcm_substream *substream = rtd->pcm->streams[i].substream;
--
2.17.1
2
1

25 Jan '22
This pair of patches implements support for the TAS5805M class D audio
amplifier. This driver, and the example configuration in the device-tree
file, were originally based on a 4.19 series kernel and have been
modified slightly from the tested version.
This resubmission differs from v2 as follows:
- The redundant mutex has been removed
- DSP configuration is loaded as a firmware image, rather than
directly from the device-tree
- The volume control returns non-zero when the values have changed, as
required
- Some corrections to device-tree example
Daniel Beer (2):
ASoC: add support for TAS5805M digital amplifier
ASoC: dt-bindings: add bindings for TI TAS5805M.
.../devicetree/bindings/sound/tas5805m.yaml | 56 ++
sound/soc/codecs/Kconfig | 9 +
sound/soc/codecs/Makefile | 2 +
sound/soc/codecs/tas5805m.c | 567 ++++++++++++++++++
4 files changed, 634 insertions(+)
create mode 100644 Documentation/devicetree/bindings/sound/tas5805m.yaml
create mode 100644 sound/soc/codecs/tas5805m.c
--
2.30.2
2
3
From: Minghao Chi <chi.minghao(a)zte.com.cn>
Return value from io_remap_pfn_range() directly instead
of taking this in another redundant variable.
Reported-by: Zeal Robot <zealci(a)zte.com.cn>
Signed-off-by: Minghao Chi <chi.minghao(a)zte.com.cn>
Signed-off-by: CGEL ZTE <cgel.zte(a)gmail.com>
---
sound/soc/samsung/idma.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/sound/soc/samsung/idma.c b/sound/soc/samsung/idma.c
index c3f1b054e238..402ccadad46c 100644
--- a/sound/soc/samsung/idma.c
+++ b/sound/soc/samsung/idma.c
@@ -244,17 +244,14 @@ static int idma_mmap(struct snd_soc_component *component,
{
struct snd_pcm_runtime *runtime = substream->runtime;
unsigned long size, offset;
- int ret;
/* From snd_pcm_lib_mmap_iomem */
vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
size = vma->vm_end - vma->vm_start;
offset = vma->vm_pgoff << PAGE_SHIFT;
- ret = io_remap_pfn_range(vma, vma->vm_start,
+ return io_remap_pfn_range(vma, vma->vm_start,
(runtime->dma_addr + offset) >> PAGE_SHIFT,
size, vma->vm_page_prot);
-
- return ret;
}
static irqreturn_t iis_irq(int irqno, void *dev_id)
--
2.25.1
3
3

[PATCH v2 0/5] fsl-asoc-card: Add optional dt property for setting mclk-id
by Ariel D'Alessandro 25 Jan '22
by Ariel D'Alessandro 25 Jan '22
25 Jan '22
This is a follow up of patchset:
[RFC patch 0/5] Support BCLK input clock in tlv320aic31xx
Sound cards may allow using different main clock inputs. In the generic
fsl-asoc-card driver, these values are hardcoded for each specific card
configuration.
Let's make it more flexible, allowing setting mclk-id from the
device-tree node.
Changes in v2:
* Split patch adding mckl-id property.
Ariel D'Alessandro (5):
dt-bindings: sound: Rename tlv320aic31xx-micbias as tlv320aic31xx
dt-bindings: tlv320aic31xx: Define PLL clock inputs
ASoC: bindings: fsl-asoc-card: Add mclk-id optional property
ASoC: fsl-asoc-card: Add optional dt property for setting mclk-id
ASoC: fsl-asoc-card: Remove BCLK default value for tlv320aic31xx card
.../devicetree/bindings/sound/fsl-asoc-card.txt | 1 +
.../devicetree/bindings/sound/tlv320aic31xx.txt | 2 +-
arch/arm/boot/dts/am43x-epos-evm.dts | 2 +-
include/dt-bindings/sound/tlv320aic31xx-micbias.h | 9 ---------
include/dt-bindings/sound/tlv320aic31xx.h | 14 ++++++++++++++
sound/soc/codecs/tlv320aic31xx.c | 2 +-
sound/soc/fsl/fsl-asoc-card.c | 7 ++++++-
7 files changed, 24 insertions(+), 13 deletions(-)
delete mode 100644 include/dt-bindings/sound/tlv320aic31xx-micbias.h
create mode 100644 include/dt-bindings/sound/tlv320aic31xx.h
--
2.34.1
2
7

[PATCH v2] ASoC: codecs: Check for error pointer after calling devm_regmap_init_mmio
by Jiasheng Jiang 25 Jan '22
by Jiasheng Jiang 25 Jan '22
25 Jan '22
Since the possible failure of the devm_regmap_init_mmio(), it will
return error pointer and be assigned to the regmap.
Then the error pointer will be dereferenced.
For example rx->regmap will be used in rx_macro_mclk_enable().
Therefore, it should be better to check it.
Fixes: af3d54b99764 ("ASoC: codecs: lpass-rx-macro: add support for lpass rx macro")
Fixes: c39667ddcfc5 ("ASoC: codecs: lpass-tx-macro: add support for lpass tx macro")
Fixes: 809bcbcecebf ("ASoC: codecs: lpass-wsa-macro: Add support to WSA Macro")
Signed-off-by: Jiasheng Jiang <jiasheng(a)iscas.ac.cn>
---
Changelog
v1 -> v2
* Change 1. Refine the commit message.
---
sound/soc/codecs/lpass-rx-macro.c | 2 ++
sound/soc/codecs/lpass-tx-macro.c | 2 ++
sound/soc/codecs/lpass-wsa-macro.c | 2 ++
3 files changed, 6 insertions(+)
diff --git a/sound/soc/codecs/lpass-rx-macro.c b/sound/soc/codecs/lpass-rx-macro.c
index 07894ec5e7a6..2adbf2e2697f 100644
--- a/sound/soc/codecs/lpass-rx-macro.c
+++ b/sound/soc/codecs/lpass-rx-macro.c
@@ -3542,6 +3542,8 @@ static int rx_macro_probe(struct platform_device *pdev)
return PTR_ERR(base);
rx->regmap = devm_regmap_init_mmio(dev, base, &rx_regmap_config);
+ if (IS_ERR(rx->regmap))
+ return PTR_ERR(rx->regmap);
dev_set_drvdata(dev, rx);
diff --git a/sound/soc/codecs/lpass-tx-macro.c b/sound/soc/codecs/lpass-tx-macro.c
index 27a0d5defd27..e4bbc6bd4925 100644
--- a/sound/soc/codecs/lpass-tx-macro.c
+++ b/sound/soc/codecs/lpass-tx-macro.c
@@ -1803,6 +1803,8 @@ static int tx_macro_probe(struct platform_device *pdev)
return PTR_ERR(base);
tx->regmap = devm_regmap_init_mmio(dev, base, &tx_regmap_config);
+ if (IS_ERR(tx->regmap))
+ return PTR_ERR(tx->regmap);
dev_set_drvdata(dev, tx);
diff --git a/sound/soc/codecs/lpass-wsa-macro.c b/sound/soc/codecs/lpass-wsa-macro.c
index d3ac318fd6b6..dd1a8b7bc794 100644
--- a/sound/soc/codecs/lpass-wsa-macro.c
+++ b/sound/soc/codecs/lpass-wsa-macro.c
@@ -2405,6 +2405,8 @@ static int wsa_macro_probe(struct platform_device *pdev)
return PTR_ERR(base);
wsa->regmap = devm_regmap_init_mmio(dev, base, &wsa_regmap_config);
+ if (IS_ERR(wsa->regmap))
+ return PTR_ERR(wsa->regmap);
dev_set_drvdata(dev, wsa);
--
2.25.1
2
2
Following series performs few cleanups in topology code.
First patch reduces number of prints we get from failure.
Second allos TLV controls to be either read or write which should be
possible as evidenced by further code in function.
Last one cleanups after refactoring of memory handling.
v2:
- Add missing Fixes tag on second patch
- Add Reviewed-by tag from Pierre
Amadeusz Sławiński (3):
ASoC: topology: Remove superfluous error prints
ASoC: topology: Allow TLV control to be either read or write
ASoC: topology: Optimize soc_tplg_dapm_graph_elems_load behavior
sound/soc/soc-topology.c | 103 ++++++++++-----------------------------
1 file changed, 27 insertions(+), 76 deletions(-)
--
2.25.1
2
4

[PATCH] ASoC: codecs: Check for error pointer after calling devm_regmap_init_mmio
by Jiasheng Jiang 25 Jan '22
by Jiasheng Jiang 25 Jan '22
25 Jan '22
The devm_regmap_init_mmio() may return error pointer under certain
circumstances, for example the possible failure of the kzalloc() in
regmap_mmio_gen_context(), which is called by devm_regmap_init_mmio().
Then the error pointer will be dereferenced.
For example rx->regmap will be used in rx_macro_mclk_enable().
Therefore, it should be better to check it.
Fixes: af3d54b99764 ("ASoC: codecs: lpass-rx-macro: add support for lpass rx macro")
Fixes: c39667ddcfc5 ("ASoC: codecs: lpass-tx-macro: add support for lpass tx macro")
Fixes: 809bcbcecebf ("ASoC: codecs: lpass-wsa-macro: Add support to WSA Macro")
Signed-off-by: Jiasheng Jiang <jiasheng(a)iscas.ac.cn>
---
sound/soc/codecs/lpass-rx-macro.c | 2 ++
sound/soc/codecs/lpass-tx-macro.c | 2 ++
sound/soc/codecs/lpass-wsa-macro.c | 2 ++
3 files changed, 6 insertions(+)
diff --git a/sound/soc/codecs/lpass-rx-macro.c b/sound/soc/codecs/lpass-rx-macro.c
index 07894ec5e7a6..2adbf2e2697f 100644
--- a/sound/soc/codecs/lpass-rx-macro.c
+++ b/sound/soc/codecs/lpass-rx-macro.c
@@ -3542,6 +3542,8 @@ static int rx_macro_probe(struct platform_device *pdev)
return PTR_ERR(base);
rx->regmap = devm_regmap_init_mmio(dev, base, &rx_regmap_config);
+ if (IS_ERR(rx->regmap))
+ return PTR_ERR(rx->regmap);
dev_set_drvdata(dev, rx);
diff --git a/sound/soc/codecs/lpass-tx-macro.c b/sound/soc/codecs/lpass-tx-macro.c
index 27a0d5defd27..e4bbc6bd4925 100644
--- a/sound/soc/codecs/lpass-tx-macro.c
+++ b/sound/soc/codecs/lpass-tx-macro.c
@@ -1803,6 +1803,8 @@ static int tx_macro_probe(struct platform_device *pdev)
return PTR_ERR(base);
tx->regmap = devm_regmap_init_mmio(dev, base, &tx_regmap_config);
+ if (IS_ERR(tx->regmap))
+ return PTR_ERR(tx->regmap);
dev_set_drvdata(dev, tx);
diff --git a/sound/soc/codecs/lpass-wsa-macro.c b/sound/soc/codecs/lpass-wsa-macro.c
index d3ac318fd6b6..dd1a8b7bc794 100644
--- a/sound/soc/codecs/lpass-wsa-macro.c
+++ b/sound/soc/codecs/lpass-wsa-macro.c
@@ -2405,6 +2405,8 @@ static int wsa_macro_probe(struct platform_device *pdev)
return PTR_ERR(base);
wsa->regmap = devm_regmap_init_mmio(dev, base, &wsa_regmap_config);
+ if (IS_ERR(wsa->regmap))
+ return PTR_ERR(wsa->regmap);
dev_set_drvdata(dev, wsa);
--
2.25.1
3
3
From: Minghao Chi <chi.minghao(a)zte.com.cn>
Return value from devm_snd_soc_register_component() directly instead
of taking this in another redundant variable.
Reported-by: Zeal Robot <zealci(a)zte.com.cn>
Signed-off-by: Minghao Chi <chi.minghao(a)zte.com.cn>
Signed-off-by: CGEL ZTE <cgel.zte(a)gmail.com>
---
sound/soc/codecs/wm8971.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/sound/soc/codecs/wm8971.c b/sound/soc/codecs/wm8971.c
index 21ae55c32a6d..ddf0e2f5e66a 100644
--- a/sound/soc/codecs/wm8971.c
+++ b/sound/soc/codecs/wm8971.c
@@ -676,7 +676,6 @@ static int wm8971_i2c_probe(struct i2c_client *i2c,
const struct i2c_device_id *id)
{
struct wm8971_priv *wm8971;
- int ret;
wm8971 = devm_kzalloc(&i2c->dev, sizeof(struct wm8971_priv),
GFP_KERNEL);
@@ -689,10 +688,8 @@ static int wm8971_i2c_probe(struct i2c_client *i2c,
i2c_set_clientdata(i2c, wm8971);
- ret = devm_snd_soc_register_component(&i2c->dev,
+ return devm_snd_soc_register_component(&i2c->dev,
&soc_component_dev_wm8971, &wm8971_dai, 1);
-
- return ret;
}
static const struct i2c_device_id wm8971_i2c_id[] = {
--
2.25.1
3
3

25 Jan '22
We're setting wrong card codec conf for rt1019 amp devices in our
machine driver. Due to this left and right amp channels data are
reversed in our machines as wrong device prefix results in wrong
value for "Mono LR Select" rt1019 mixer control. Reverse dev ids
in codec conf with Left and Right name_prefix to fix such issue.
Signed-off-by: Ajit Kumar Pandey <AjitKumar.Pandey(a)amd.com>
---
sound/soc/amd/acp/acp-mach-common.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sound/soc/amd/acp/acp-mach-common.c b/sound/soc/amd/acp/acp-mach-common.c
index c9caade5cb74..cd05ee2802c9 100644
--- a/sound/soc/amd/acp/acp-mach-common.c
+++ b/sound/soc/amd/acp/acp-mach-common.c
@@ -303,11 +303,11 @@ static const struct snd_soc_dapm_route rt1019_map_lr[] = {
static struct snd_soc_codec_conf rt1019_conf[] = {
{
- .dlc = COMP_CODEC_CONF("i2c-10EC1019:00"),
+ .dlc = COMP_CODEC_CONF("i2c-10EC1019:01"),
.name_prefix = "Left",
},
{
- .dlc = COMP_CODEC_CONF("i2c-10EC1019:01"),
+ .dlc = COMP_CODEC_CONF("i2c-10EC1019:00"),
.name_prefix = "Right",
},
};
--
2.25.1
2
1
Hi Uwe,
u.kleine-koenig(a)pengutronix.de wrote on Sun, 23 Jan 2022 18:52:01 +0100:
> The value returned by an spi driver's remove function is mostly ignored.
> (Only an error message is printed if the value is non-zero that the
> error is ignored.)
>
> So change the prototype of the remove function to return no value. This
> way driver authors are not tempted to assume that passing an error to
> the upper layer is a good idea. All drivers are adapted accordingly.
> There is no intended change of behaviour, all callbacks were prepared to
> return 0 before.
>
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig(a)pengutronix.de>
> ---
[...]
> drivers/mtd/devices/mchp23k256.c | 4 +---
> drivers/mtd/devices/mchp48l640.c | 4 +---
> drivers/mtd/devices/mtd_dataflash.c | 4 +---
> drivers/mtd/devices/sst25l.c | 4 +---
For MTD devices:
Acked-by: Miquel Raynal <miquel.raynal(a)bootlin.com>
Thanks,
Miquèl
1
0
Hello.
On 23.01.22 18:52, Uwe Kleine-König wrote:
> The value returned by an spi driver's remove function is mostly ignored.
> (Only an error message is printed if the value is non-zero that the
> error is ignored.)
>
> So change the prototype of the remove function to return no value. This
> way driver authors are not tempted to assume that passing an error to
> the upper layer is a good idea. All drivers are adapted accordingly.
> There is no intended change of behaviour, all callbacks were prepared to
> return 0 before.
>
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig(a)pengutronix.de>
> ---
[...]
> drivers/net/ieee802154/adf7242.c | 4 +---
> drivers/net/ieee802154/at86rf230.c | 4 +---
> drivers/net/ieee802154/ca8210.c | 6 ++----
> drivers/net/ieee802154/cc2520.c | 4 +---
> drivers/net/ieee802154/mcr20a.c | 4 +---
> drivers/net/ieee802154/mrf24j40.c | 4 +---
[...]
For the ieee802154 drivers:
Acked-by: Stefan Schmidt <stefan(a)datenfreihafen.org>
regards
Stefan Schmidt
1
0

25 Jan '22
On 23/01/2022 18:52:01+0100, Uwe Kleine-König wrote:
> The value returned by an spi driver's remove function is mostly ignored.
> (Only an error message is printed if the value is non-zero that the
> error is ignored.)
>
> So change the prototype of the remove function to return no value. This
> way driver authors are not tempted to assume that passing an error to
> the upper layer is a good idea. All drivers are adapted accordingly.
> There is no intended change of behaviour, all callbacks were prepared to
> return 0 before.
>
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig(a)pengutronix.de>
Acked-by: Alexandre Belloni <alexandre.belloni(a)bootlin.com>
> ---
> drivers/bus/moxtet.c | 4 +---
> drivers/char/tpm/st33zp24/spi.c | 4 +---
> drivers/char/tpm/tpm_tis_spi_main.c | 3 +--
> drivers/clk/clk-lmk04832.c | 4 +---
> drivers/gpio/gpio-74x164.c | 4 +---
> drivers/gpio/gpio-max3191x.c | 4 +---
> drivers/gpio/gpio-max7301.c | 4 +---
> drivers/gpio/gpio-mc33880.c | 4 +---
> drivers/gpio/gpio-pisosr.c | 4 +---
> drivers/gpu/drm/panel/panel-abt-y030xx067a.c | 4 +---
> drivers/gpu/drm/panel/panel-ilitek-ili9322.c | 4 +---
> drivers/gpu/drm/panel/panel-ilitek-ili9341.c | 3 +--
> drivers/gpu/drm/panel/panel-innolux-ej030na.c | 4 +---
> drivers/gpu/drm/panel/panel-lg-lb035q02.c | 4 +---
> drivers/gpu/drm/panel/panel-lg-lg4573.c | 4 +---
> drivers/gpu/drm/panel/panel-nec-nl8048hl11.c | 4 +---
> drivers/gpu/drm/panel/panel-novatek-nt39016.c | 4 +---
> drivers/gpu/drm/panel/panel-samsung-db7430.c | 3 +--
> drivers/gpu/drm/panel/panel-samsung-ld9040.c | 4 +---
> drivers/gpu/drm/panel/panel-samsung-s6d27a1.c | 3 +--
> drivers/gpu/drm/panel/panel-samsung-s6e63m0-spi.c | 3 +--
> drivers/gpu/drm/panel/panel-sitronix-st7789v.c | 4 +---
> drivers/gpu/drm/panel/panel-sony-acx565akm.c | 4 +---
> drivers/gpu/drm/panel/panel-tpo-td028ttec1.c | 4 +---
> drivers/gpu/drm/panel/panel-tpo-td043mtea1.c | 4 +---
> drivers/gpu/drm/panel/panel-tpo-tpg110.c | 3 +--
> drivers/gpu/drm/panel/panel-widechips-ws2401.c | 3 +--
> drivers/gpu/drm/tiny/hx8357d.c | 4 +---
> drivers/gpu/drm/tiny/ili9163.c | 4 +---
> drivers/gpu/drm/tiny/ili9225.c | 4 +---
> drivers/gpu/drm/tiny/ili9341.c | 4 +---
> drivers/gpu/drm/tiny/ili9486.c | 4 +---
> drivers/gpu/drm/tiny/mi0283qt.c | 4 +---
> drivers/gpu/drm/tiny/repaper.c | 4 +---
> drivers/gpu/drm/tiny/st7586.c | 4 +---
> drivers/gpu/drm/tiny/st7735r.c | 4 +---
> drivers/hwmon/adcxx.c | 4 +---
> drivers/hwmon/adt7310.c | 3 +--
> drivers/hwmon/max1111.c | 3 +--
> drivers/hwmon/max31722.c | 4 +---
> drivers/iio/accel/bma400_spi.c | 4 +---
> drivers/iio/accel/bmc150-accel-spi.c | 4 +---
> drivers/iio/accel/bmi088-accel-spi.c | 4 +---
> drivers/iio/accel/kxsd9-spi.c | 4 +---
> drivers/iio/accel/mma7455_spi.c | 4 +---
> drivers/iio/accel/sca3000.c | 4 +---
> drivers/iio/adc/ad7266.c | 4 +---
> drivers/iio/adc/ltc2496.c | 4 +---
> drivers/iio/adc/mcp320x.c | 4 +---
> drivers/iio/adc/mcp3911.c | 4 +---
> drivers/iio/adc/ti-adc12138.c | 4 +---
> drivers/iio/adc/ti-ads7950.c | 4 +---
> drivers/iio/adc/ti-ads8688.c | 4 +---
> drivers/iio/adc/ti-tlc4541.c | 4 +---
> drivers/iio/amplifiers/ad8366.c | 4 +---
> drivers/iio/common/ssp_sensors/ssp_dev.c | 4 +---
> drivers/iio/dac/ad5360.c | 4 +---
> drivers/iio/dac/ad5380.c | 4 +---
> drivers/iio/dac/ad5446.c | 4 +---
> drivers/iio/dac/ad5449.c | 4 +---
> drivers/iio/dac/ad5504.c | 4 +---
> drivers/iio/dac/ad5592r.c | 4 +---
> drivers/iio/dac/ad5624r_spi.c | 4 +---
> drivers/iio/dac/ad5686-spi.c | 4 +---
> drivers/iio/dac/ad5761.c | 4 +---
> drivers/iio/dac/ad5764.c | 4 +---
> drivers/iio/dac/ad5791.c | 4 +---
> drivers/iio/dac/ad8801.c | 4 +---
> drivers/iio/dac/ltc1660.c | 4 +---
> drivers/iio/dac/ltc2632.c | 4 +---
> drivers/iio/dac/mcp4922.c | 4 +---
> drivers/iio/dac/ti-dac082s085.c | 4 +---
> drivers/iio/dac/ti-dac7311.c | 3 +--
> drivers/iio/frequency/adf4350.c | 4 +---
> drivers/iio/gyro/bmg160_spi.c | 4 +---
> drivers/iio/gyro/fxas21002c_spi.c | 4 +---
> drivers/iio/health/afe4403.c | 4 +---
> drivers/iio/magnetometer/bmc150_magn_spi.c | 4 +---
> drivers/iio/magnetometer/hmc5843_spi.c | 4 +---
> drivers/iio/potentiometer/max5487.c | 4 +---
> drivers/iio/pressure/ms5611_spi.c | 4 +---
> drivers/iio/pressure/zpa2326_spi.c | 4 +---
> drivers/input/keyboard/applespi.c | 4 +---
> drivers/input/misc/adxl34x-spi.c | 4 +---
> drivers/input/touchscreen/ads7846.c | 4 +---
> drivers/input/touchscreen/cyttsp4_spi.c | 4 +---
> drivers/input/touchscreen/tsc2005.c | 4 +---
> drivers/leds/leds-cr0014114.c | 4 +---
> drivers/leds/leds-dac124s085.c | 4 +---
> drivers/leds/leds-el15203000.c | 4 +---
> drivers/leds/leds-spi-byte.c | 4 +---
> drivers/media/spi/cxd2880-spi.c | 4 +---
> drivers/media/spi/gs1662.c | 4 +---
> drivers/media/tuners/msi001.c | 3 +--
> drivers/mfd/arizona-spi.c | 4 +---
> drivers/mfd/da9052-spi.c | 3 +--
> drivers/mfd/ezx-pcap.c | 4 +---
> drivers/mfd/madera-spi.c | 4 +---
> drivers/mfd/mc13xxx-spi.c | 3 +--
> drivers/mfd/rsmu_spi.c | 4 +---
> drivers/mfd/stmpe-spi.c | 4 +---
> drivers/mfd/tps65912-spi.c | 4 +---
> drivers/misc/ad525x_dpot-spi.c | 3 +--
> drivers/misc/eeprom/eeprom_93xx46.c | 4 +---
> drivers/misc/lattice-ecp3-config.c | 4 +---
> drivers/misc/lis3lv02d/lis3lv02d_spi.c | 4 +---
> drivers/mmc/host/mmc_spi.c | 3 +--
> drivers/mtd/devices/mchp23k256.c | 4 +---
> drivers/mtd/devices/mchp48l640.c | 4 +---
> drivers/mtd/devices/mtd_dataflash.c | 4 +---
> drivers/mtd/devices/sst25l.c | 4 +---
> drivers/net/can/m_can/tcan4x5x-core.c | 4 +---
> drivers/net/can/spi/hi311x.c | 4 +---
> drivers/net/can/spi/mcp251x.c | 4 +---
> drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c | 4 +---
> drivers/net/dsa/b53/b53_spi.c | 4 +---
> drivers/net/dsa/microchip/ksz8795_spi.c | 4 +---
> drivers/net/dsa/microchip/ksz9477_spi.c | 4 +---
> drivers/net/dsa/sja1105/sja1105_main.c | 6 ++----
> drivers/net/dsa/vitesse-vsc73xx-spi.c | 6 ++----
> drivers/net/ethernet/asix/ax88796c_main.c | 4 +---
> drivers/net/ethernet/micrel/ks8851_spi.c | 4 +---
> drivers/net/ethernet/microchip/enc28j60.c | 4 +---
> drivers/net/ethernet/microchip/encx24j600.c | 4 +---
> drivers/net/ethernet/qualcomm/qca_spi.c | 4 +---
> drivers/net/ethernet/vertexcom/mse102x.c | 4 +---
> drivers/net/ethernet/wiznet/w5100-spi.c | 4 +---
> drivers/net/ieee802154/adf7242.c | 4 +---
> drivers/net/ieee802154/at86rf230.c | 4 +---
> drivers/net/ieee802154/ca8210.c | 6 ++----
> drivers/net/ieee802154/cc2520.c | 4 +---
> drivers/net/ieee802154/mcr20a.c | 4 +---
> drivers/net/ieee802154/mrf24j40.c | 4 +---
> drivers/net/phy/spi_ks8995.c | 4 +---
> drivers/net/wan/slic_ds26522.c | 3 +--
> drivers/net/wireless/intersil/p54/p54spi.c | 4 +---
> drivers/net/wireless/marvell/libertas/if_spi.c | 4 +---
> drivers/net/wireless/microchip/wilc1000/spi.c | 4 +---
> drivers/net/wireless/st/cw1200/cw1200_spi.c | 4 +---
> drivers/net/wireless/ti/wl1251/spi.c | 4 +---
> drivers/net/wireless/ti/wlcore/spi.c | 4 +---
> drivers/nfc/nfcmrvl/spi.c | 3 +--
> drivers/nfc/st-nci/spi.c | 4 +---
> drivers/nfc/st95hf/core.c | 4 +---
> drivers/nfc/trf7970a.c | 4 +---
> drivers/platform/chrome/cros_ec_spi.c | 4 +---
> drivers/platform/olpc/olpc-xo175-ec.c | 4 +---
> drivers/rtc/rtc-ds1302.c | 3 +--
> drivers/rtc/rtc-ds1305.c | 4 +---
> drivers/rtc/rtc-ds1343.c | 4 +---
> drivers/spi/spi-mem.c | 6 ++----
> drivers/spi/spi-slave-system-control.c | 3 +--
> drivers/spi/spi-slave-time.c | 3 +--
> drivers/spi/spi-tle62x0.c | 3 +--
> drivers/spi/spi.c | 11 ++---------
> drivers/spi/spidev.c | 4 +---
> drivers/staging/fbtft/fbtft.h | 3 +--
> drivers/staging/pi433/pi433_if.c | 4 +---
> drivers/staging/wfx/bus_spi.c | 3 +--
> drivers/tty/serial/max3100.c | 5 ++---
> drivers/tty/serial/max310x.c | 3 +--
> drivers/tty/serial/sc16is7xx.c | 4 +---
> drivers/usb/gadget/udc/max3420_udc.c | 4 +---
> drivers/usb/host/max3421-hcd.c | 3 +--
> drivers/video/backlight/ams369fg06.c | 3 +--
> drivers/video/backlight/corgi_lcd.c | 3 +--
> drivers/video/backlight/ili922x.c | 3 +--
> drivers/video/backlight/l4f00242t03.c | 3 +--
> drivers/video/backlight/lms501kf03.c | 3 +--
> drivers/video/backlight/ltv350qv.c | 3 +--
> drivers/video/backlight/tdo24m.c | 3 +--
> drivers/video/backlight/tosa_lcd.c | 4 +---
> drivers/video/backlight/vgg2432a4.c | 4 +---
> drivers/video/fbdev/omap/lcd_mipid.c | 4 +---
> .../omap2/omapfb/displays/panel-lgphilips-lb035q02.c | 4 +---
> .../omap2/omapfb/displays/panel-nec-nl8048hl11.c | 4 +---
> .../omap2/omapfb/displays/panel-sony-acx565akm.c | 4 +---
> .../omap2/omapfb/displays/panel-tpo-td028ttec1.c | 4 +---
> .../omap2/omapfb/displays/panel-tpo-td043mtea1.c | 4 +---
> include/linux/spi/spi.h | 2 +-
> sound/pci/hda/cs35l41_hda_spi.c | 4 +---
> sound/soc/codecs/adau1761-spi.c | 3 +--
> sound/soc/codecs/adau1781-spi.c | 3 +--
> sound/soc/codecs/cs35l41-spi.c | 4 +---
> sound/soc/codecs/pcm3168a-spi.c | 4 +---
> sound/soc/codecs/pcm512x-spi.c | 3 +--
> sound/soc/codecs/tlv320aic32x4-spi.c | 4 +---
> sound/soc/codecs/tlv320aic3x-spi.c | 4 +---
> sound/soc/codecs/wm0010.c | 4 +---
> sound/soc/codecs/wm8804-spi.c | 3 +--
> sound/spi/at73c213.c | 4 +---
> 191 files changed, 197 insertions(+), 545 deletions(-)
>
> diff --git a/drivers/bus/moxtet.c b/drivers/bus/moxtet.c
> index fd87a59837fa..5eb0fe73ddc4 100644
> --- a/drivers/bus/moxtet.c
> +++ b/drivers/bus/moxtet.c
> @@ -815,7 +815,7 @@ static int moxtet_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int moxtet_remove(struct spi_device *spi)
> +static void moxtet_remove(struct spi_device *spi)
> {
> struct moxtet *moxtet = spi_get_drvdata(spi);
>
> @@ -828,8 +828,6 @@ static int moxtet_remove(struct spi_device *spi)
> device_for_each_child(moxtet->dev, NULL, __unregister);
>
> mutex_destroy(&moxtet->lock);
> -
> - return 0;
> }
>
> static const struct of_device_id moxtet_dt_ids[] = {
> diff --git a/drivers/char/tpm/st33zp24/spi.c b/drivers/char/tpm/st33zp24/spi.c
> index ccd9e42b8eab..22d184884694 100644
> --- a/drivers/char/tpm/st33zp24/spi.c
> +++ b/drivers/char/tpm/st33zp24/spi.c
> @@ -381,13 +381,11 @@ static int st33zp24_spi_probe(struct spi_device *dev)
> * @param: client, the spi_device description (TPM SPI description).
> * @return: 0 in case of success.
> */
> -static int st33zp24_spi_remove(struct spi_device *dev)
> +static void st33zp24_spi_remove(struct spi_device *dev)
> {
> struct tpm_chip *chip = spi_get_drvdata(dev);
>
> st33zp24_remove(chip);
> -
> - return 0;
> }
>
> static const struct spi_device_id st33zp24_spi_id[] = {
> diff --git a/drivers/char/tpm/tpm_tis_spi_main.c b/drivers/char/tpm/tpm_tis_spi_main.c
> index aaa59a00eeae..184396b3af50 100644
> --- a/drivers/char/tpm/tpm_tis_spi_main.c
> +++ b/drivers/char/tpm/tpm_tis_spi_main.c
> @@ -254,13 +254,12 @@ static int tpm_tis_spi_driver_probe(struct spi_device *spi)
>
> static SIMPLE_DEV_PM_OPS(tpm_tis_pm, tpm_pm_suspend, tpm_tis_spi_resume);
>
> -static int tpm_tis_spi_remove(struct spi_device *dev)
> +static void tpm_tis_spi_remove(struct spi_device *dev)
> {
> struct tpm_chip *chip = spi_get_drvdata(dev);
>
> tpm_chip_unregister(chip);
> tpm_tis_remove(chip);
> - return 0;
> }
>
> static const struct spi_device_id tpm_tis_spi_id[] = {
> diff --git a/drivers/clk/clk-lmk04832.c b/drivers/clk/clk-lmk04832.c
> index 8f02c0b88000..f416f8bc2898 100644
> --- a/drivers/clk/clk-lmk04832.c
> +++ b/drivers/clk/clk-lmk04832.c
> @@ -1544,14 +1544,12 @@ static int lmk04832_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int lmk04832_remove(struct spi_device *spi)
> +static void lmk04832_remove(struct spi_device *spi)
> {
> struct lmk04832 *lmk = spi_get_drvdata(spi);
>
> clk_disable_unprepare(lmk->oscin);
> of_clk_del_provider(spi->dev.of_node);
> -
> - return 0;
> }
> static const struct spi_device_id lmk04832_id[] = {
> { "lmk04832", LMK04832 },
> diff --git a/drivers/gpio/gpio-74x164.c b/drivers/gpio/gpio-74x164.c
> index 4a55cdf089d6..e00c33310517 100644
> --- a/drivers/gpio/gpio-74x164.c
> +++ b/drivers/gpio/gpio-74x164.c
> @@ -163,15 +163,13 @@ static int gen_74x164_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int gen_74x164_remove(struct spi_device *spi)
> +static void gen_74x164_remove(struct spi_device *spi)
> {
> struct gen_74x164_chip *chip = spi_get_drvdata(spi);
>
> gpiod_set_value_cansleep(chip->gpiod_oe, 0);
> gpiochip_remove(&chip->gpio_chip);
> mutex_destroy(&chip->lock);
> -
> - return 0;
> }
>
> static const struct spi_device_id gen_74x164_spi_ids[] = {
> diff --git a/drivers/gpio/gpio-max3191x.c b/drivers/gpio/gpio-max3191x.c
> index 51cd6f98d1c7..161c4751c5f7 100644
> --- a/drivers/gpio/gpio-max3191x.c
> +++ b/drivers/gpio/gpio-max3191x.c
> @@ -443,14 +443,12 @@ static int max3191x_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int max3191x_remove(struct spi_device *spi)
> +static void max3191x_remove(struct spi_device *spi)
> {
> struct max3191x_chip *max3191x = spi_get_drvdata(spi);
>
> gpiochip_remove(&max3191x->gpio);
> mutex_destroy(&max3191x->lock);
> -
> - return 0;
> }
>
> static int __init max3191x_register_driver(struct spi_driver *sdrv)
> diff --git a/drivers/gpio/gpio-max7301.c b/drivers/gpio/gpio-max7301.c
> index 5862d73bf325..11813f41d460 100644
> --- a/drivers/gpio/gpio-max7301.c
> +++ b/drivers/gpio/gpio-max7301.c
> @@ -64,11 +64,9 @@ static int max7301_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int max7301_remove(struct spi_device *spi)
> +static void max7301_remove(struct spi_device *spi)
> {
> __max730x_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id max7301_id[] = {
> diff --git a/drivers/gpio/gpio-mc33880.c b/drivers/gpio/gpio-mc33880.c
> index 31d2be1bebc8..cd9b16dbe1a9 100644
> --- a/drivers/gpio/gpio-mc33880.c
> +++ b/drivers/gpio/gpio-mc33880.c
> @@ -134,7 +134,7 @@ static int mc33880_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mc33880_remove(struct spi_device *spi)
> +static void mc33880_remove(struct spi_device *spi)
> {
> struct mc33880 *mc;
>
> @@ -142,8 +142,6 @@ static int mc33880_remove(struct spi_device *spi)
>
> gpiochip_remove(&mc->chip);
> mutex_destroy(&mc->lock);
> -
> - return 0;
> }
>
> static struct spi_driver mc33880_driver = {
> diff --git a/drivers/gpio/gpio-pisosr.c b/drivers/gpio/gpio-pisosr.c
> index 8e04054cf07e..81a47ae09ff8 100644
> --- a/drivers/gpio/gpio-pisosr.c
> +++ b/drivers/gpio/gpio-pisosr.c
> @@ -163,15 +163,13 @@ static int pisosr_gpio_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int pisosr_gpio_remove(struct spi_device *spi)
> +static void pisosr_gpio_remove(struct spi_device *spi)
> {
> struct pisosr_gpio *gpio = spi_get_drvdata(spi);
>
> gpiochip_remove(&gpio->chip);
>
> mutex_destroy(&gpio->lock);
> -
> - return 0;
> }
>
> static const struct spi_device_id pisosr_gpio_id_table[] = {
> diff --git a/drivers/gpu/drm/panel/panel-abt-y030xx067a.c b/drivers/gpu/drm/panel/panel-abt-y030xx067a.c
> index f043b484055b..ed626fdc08e8 100644
> --- a/drivers/gpu/drm/panel/panel-abt-y030xx067a.c
> +++ b/drivers/gpu/drm/panel/panel-abt-y030xx067a.c
> @@ -293,15 +293,13 @@ static int y030xx067a_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int y030xx067a_remove(struct spi_device *spi)
> +static void y030xx067a_remove(struct spi_device *spi)
> {
> struct y030xx067a *priv = spi_get_drvdata(spi);
>
> drm_panel_remove(&priv->panel);
> drm_panel_disable(&priv->panel);
> drm_panel_unprepare(&priv->panel);
> -
> - return 0;
> }
>
> static const struct drm_display_mode y030xx067a_modes[] = {
> diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9322.c b/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
> index 8e84df9a0033..3dfafa585127 100644
> --- a/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
> +++ b/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
> @@ -896,14 +896,12 @@ static int ili9322_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ili9322_remove(struct spi_device *spi)
> +static void ili9322_remove(struct spi_device *spi)
> {
> struct ili9322 *ili = spi_get_drvdata(spi);
>
> ili9322_power_off(ili);
> drm_panel_remove(&ili->panel);
> -
> - return 0;
> }
>
> /*
> diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9341.c b/drivers/gpu/drm/panel/panel-ilitek-ili9341.c
> index 2c3378a259b1..a07ef26234e5 100644
> --- a/drivers/gpu/drm/panel/panel-ilitek-ili9341.c
> +++ b/drivers/gpu/drm/panel/panel-ilitek-ili9341.c
> @@ -728,7 +728,7 @@ static int ili9341_probe(struct spi_device *spi)
> return -1;
> }
>
> -static int ili9341_remove(struct spi_device *spi)
> +static void ili9341_remove(struct spi_device *spi)
> {
> const struct spi_device_id *id = spi_get_device_id(spi);
> struct ili9341 *ili = spi_get_drvdata(spi);
> @@ -741,7 +741,6 @@ static int ili9341_remove(struct spi_device *spi)
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> }
> - return 0;
> }
>
> static void ili9341_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/panel/panel-innolux-ej030na.c b/drivers/gpu/drm/panel/panel-innolux-ej030na.c
> index c558de3f99be..e3b1daa0cb72 100644
> --- a/drivers/gpu/drm/panel/panel-innolux-ej030na.c
> +++ b/drivers/gpu/drm/panel/panel-innolux-ej030na.c
> @@ -219,15 +219,13 @@ static int ej030na_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ej030na_remove(struct spi_device *spi)
> +static void ej030na_remove(struct spi_device *spi)
> {
> struct ej030na *priv = spi_get_drvdata(spi);
>
> drm_panel_remove(&priv->panel);
> drm_panel_disable(&priv->panel);
> drm_panel_unprepare(&priv->panel);
> -
> - return 0;
> }
>
> static const struct drm_display_mode ej030na_modes[] = {
> diff --git a/drivers/gpu/drm/panel/panel-lg-lb035q02.c b/drivers/gpu/drm/panel/panel-lg-lb035q02.c
> index f3183b68704f..9d0d4faa3f58 100644
> --- a/drivers/gpu/drm/panel/panel-lg-lb035q02.c
> +++ b/drivers/gpu/drm/panel/panel-lg-lb035q02.c
> @@ -203,14 +203,12 @@ static int lb035q02_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int lb035q02_remove(struct spi_device *spi)
> +static void lb035q02_remove(struct spi_device *spi)
> {
> struct lb035q02_device *lcd = spi_get_drvdata(spi);
>
> drm_panel_remove(&lcd->panel);
> drm_panel_disable(&lcd->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id lb035q02_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-lg-lg4573.c b/drivers/gpu/drm/panel/panel-lg-lg4573.c
> index 8e5160af1de5..cf246d15b7b6 100644
> --- a/drivers/gpu/drm/panel/panel-lg-lg4573.c
> +++ b/drivers/gpu/drm/panel/panel-lg-lg4573.c
> @@ -266,14 +266,12 @@ static int lg4573_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int lg4573_remove(struct spi_device *spi)
> +static void lg4573_remove(struct spi_device *spi)
> {
> struct lg4573 *ctx = spi_get_drvdata(spi);
>
> lg4573_display_off(ctx);
> drm_panel_remove(&ctx->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id lg4573_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c b/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c
> index 6e5ab1debc8b..81c5c541a351 100644
> --- a/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c
> +++ b/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c
> @@ -212,15 +212,13 @@ static int nl8048_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int nl8048_remove(struct spi_device *spi)
> +static void nl8048_remove(struct spi_device *spi)
> {
> struct nl8048_panel *lcd = spi_get_drvdata(spi);
>
> drm_panel_remove(&lcd->panel);
> drm_panel_disable(&lcd->panel);
> drm_panel_unprepare(&lcd->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id nl8048_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-novatek-nt39016.c b/drivers/gpu/drm/panel/panel-novatek-nt39016.c
> index d036853db865..f58cfb10b58a 100644
> --- a/drivers/gpu/drm/panel/panel-novatek-nt39016.c
> +++ b/drivers/gpu/drm/panel/panel-novatek-nt39016.c
> @@ -292,7 +292,7 @@ static int nt39016_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int nt39016_remove(struct spi_device *spi)
> +static void nt39016_remove(struct spi_device *spi)
> {
> struct nt39016 *panel = spi_get_drvdata(spi);
>
> @@ -300,8 +300,6 @@ static int nt39016_remove(struct spi_device *spi)
>
> nt39016_disable(&panel->drm_panel);
> nt39016_unprepare(&panel->drm_panel);
> -
> - return 0;
> }
>
> static const struct drm_display_mode kd035g6_display_modes[] = {
> diff --git a/drivers/gpu/drm/panel/panel-samsung-db7430.c b/drivers/gpu/drm/panel/panel-samsung-db7430.c
> index ead479719f00..04640c5256a8 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-db7430.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-db7430.c
> @@ -314,12 +314,11 @@ static int db7430_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int db7430_remove(struct spi_device *spi)
> +static void db7430_remove(struct spi_device *spi)
> {
> struct db7430 *db = spi_get_drvdata(spi);
>
> drm_panel_remove(&db->panel);
> - return 0;
> }
>
> /*
> diff --git a/drivers/gpu/drm/panel/panel-samsung-ld9040.c b/drivers/gpu/drm/panel/panel-samsung-ld9040.c
> index c4b388850a13..01eb211f32f7 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-ld9040.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-ld9040.c
> @@ -358,14 +358,12 @@ static int ld9040_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ld9040_remove(struct spi_device *spi)
> +static void ld9040_remove(struct spi_device *spi)
> {
> struct ld9040 *ctx = spi_get_drvdata(spi);
>
> ld9040_power_off(ctx);
> drm_panel_remove(&ctx->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id ld9040_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-samsung-s6d27a1.c b/drivers/gpu/drm/panel/panel-samsung-s6d27a1.c
> index 1696ceb36aa0..2adb223a895c 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-s6d27a1.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-s6d27a1.c
> @@ -291,12 +291,11 @@ static int s6d27a1_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int s6d27a1_remove(struct spi_device *spi)
> +static void s6d27a1_remove(struct spi_device *spi)
> {
> struct s6d27a1 *ctx = spi_get_drvdata(spi);
>
> drm_panel_remove(&ctx->panel);
> - return 0;
> }
>
> static const struct of_device_id s6d27a1_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e63m0-spi.c b/drivers/gpu/drm/panel/panel-samsung-s6e63m0-spi.c
> index c178d962b0d5..d99afcc672ca 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-s6e63m0-spi.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-s6e63m0-spi.c
> @@ -62,10 +62,9 @@ static int s6e63m0_spi_probe(struct spi_device *spi)
> s6e63m0_spi_dcs_write, false);
> }
>
> -static int s6e63m0_spi_remove(struct spi_device *spi)
> +static void s6e63m0_spi_remove(struct spi_device *spi)
> {
> s6e63m0_remove(&spi->dev);
> - return 0;
> }
>
> static const struct of_device_id s6e63m0_spi_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7789v.c b/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
> index 61e565524542..bbc4569cbcdc 100644
> --- a/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
> +++ b/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
> @@ -387,13 +387,11 @@ static int st7789v_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int st7789v_remove(struct spi_device *spi)
> +static void st7789v_remove(struct spi_device *spi)
> {
> struct st7789v *ctx = spi_get_drvdata(spi);
>
> drm_panel_remove(&ctx->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id st7789v_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-sony-acx565akm.c b/drivers/gpu/drm/panel/panel-sony-acx565akm.c
> index ba0b3ead150f..0d7541a33f87 100644
> --- a/drivers/gpu/drm/panel/panel-sony-acx565akm.c
> +++ b/drivers/gpu/drm/panel/panel-sony-acx565akm.c
> @@ -655,7 +655,7 @@ static int acx565akm_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int acx565akm_remove(struct spi_device *spi)
> +static void acx565akm_remove(struct spi_device *spi)
> {
> struct acx565akm_panel *lcd = spi_get_drvdata(spi);
>
> @@ -666,8 +666,6 @@ static int acx565akm_remove(struct spi_device *spi)
>
> drm_panel_disable(&lcd->panel);
> drm_panel_unprepare(&lcd->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id acx565akm_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c b/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c
> index ba0c00d1a001..4dbf8b88f264 100644
> --- a/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c
> +++ b/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c
> @@ -350,15 +350,13 @@ static int td028ttec1_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int td028ttec1_remove(struct spi_device *spi)
> +static void td028ttec1_remove(struct spi_device *spi)
> {
> struct td028ttec1_panel *lcd = spi_get_drvdata(spi);
>
> drm_panel_remove(&lcd->panel);
> drm_panel_disable(&lcd->panel);
> drm_panel_unprepare(&lcd->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id td028ttec1_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c b/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c
> index 1866cdb8f9c1..cf4609bb9b1d 100644
> --- a/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c
> +++ b/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c
> @@ -463,7 +463,7 @@ static int td043mtea1_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int td043mtea1_remove(struct spi_device *spi)
> +static void td043mtea1_remove(struct spi_device *spi)
> {
> struct td043mtea1_panel *lcd = spi_get_drvdata(spi);
>
> @@ -472,8 +472,6 @@ static int td043mtea1_remove(struct spi_device *spi)
> drm_panel_unprepare(&lcd->panel);
>
> sysfs_remove_group(&spi->dev.kobj, &td043mtea1_attr_group);
> -
> - return 0;
> }
>
> static const struct of_device_id td043mtea1_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-tpo-tpg110.c b/drivers/gpu/drm/panel/panel-tpo-tpg110.c
> index e3791dad6830..0b1f5a11a055 100644
> --- a/drivers/gpu/drm/panel/panel-tpo-tpg110.c
> +++ b/drivers/gpu/drm/panel/panel-tpo-tpg110.c
> @@ -450,12 +450,11 @@ static int tpg110_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int tpg110_remove(struct spi_device *spi)
> +static void tpg110_remove(struct spi_device *spi)
> {
> struct tpg110 *tpg = spi_get_drvdata(spi);
>
> drm_panel_remove(&tpg->panel);
> - return 0;
> }
>
> static const struct of_device_id tpg110_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-widechips-ws2401.c b/drivers/gpu/drm/panel/panel-widechips-ws2401.c
> index 8bc976f54b80..236f3cb2b594 100644
> --- a/drivers/gpu/drm/panel/panel-widechips-ws2401.c
> +++ b/drivers/gpu/drm/panel/panel-widechips-ws2401.c
> @@ -407,12 +407,11 @@ static int ws2401_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ws2401_remove(struct spi_device *spi)
> +static void ws2401_remove(struct spi_device *spi)
> {
> struct ws2401 *ws = spi_get_drvdata(spi);
>
> drm_panel_remove(&ws->panel);
> - return 0;
> }
>
> /*
> diff --git a/drivers/gpu/drm/tiny/hx8357d.c b/drivers/gpu/drm/tiny/hx8357d.c
> index 9b33c05732aa..ebb025543f8d 100644
> --- a/drivers/gpu/drm/tiny/hx8357d.c
> +++ b/drivers/gpu/drm/tiny/hx8357d.c
> @@ -263,14 +263,12 @@ static int hx8357d_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int hx8357d_remove(struct spi_device *spi)
> +static void hx8357d_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void hx8357d_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/ili9163.c b/drivers/gpu/drm/tiny/ili9163.c
> index bcc181351236..fc8ed245b0bc 100644
> --- a/drivers/gpu/drm/tiny/ili9163.c
> +++ b/drivers/gpu/drm/tiny/ili9163.c
> @@ -193,14 +193,12 @@ static int ili9163_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ili9163_remove(struct spi_device *spi)
> +static void ili9163_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void ili9163_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/ili9225.c b/drivers/gpu/drm/tiny/ili9225.c
> index 976d3209f164..cc92eb9f2a07 100644
> --- a/drivers/gpu/drm/tiny/ili9225.c
> +++ b/drivers/gpu/drm/tiny/ili9225.c
> @@ -411,14 +411,12 @@ static int ili9225_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ili9225_remove(struct spi_device *spi)
> +static void ili9225_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void ili9225_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/ili9341.c b/drivers/gpu/drm/tiny/ili9341.c
> index 37e0c33399c8..5b8cc770ee7b 100644
> --- a/drivers/gpu/drm/tiny/ili9341.c
> +++ b/drivers/gpu/drm/tiny/ili9341.c
> @@ -225,14 +225,12 @@ static int ili9341_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ili9341_remove(struct spi_device *spi)
> +static void ili9341_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void ili9341_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/ili9486.c b/drivers/gpu/drm/tiny/ili9486.c
> index e9a63f4b2993..6d655e18e0aa 100644
> --- a/drivers/gpu/drm/tiny/ili9486.c
> +++ b/drivers/gpu/drm/tiny/ili9486.c
> @@ -243,14 +243,12 @@ static int ili9486_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ili9486_remove(struct spi_device *spi)
> +static void ili9486_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void ili9486_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/mi0283qt.c b/drivers/gpu/drm/tiny/mi0283qt.c
> index 023de49e7a8e..5e060f6910bb 100644
> --- a/drivers/gpu/drm/tiny/mi0283qt.c
> +++ b/drivers/gpu/drm/tiny/mi0283qt.c
> @@ -233,14 +233,12 @@ static int mi0283qt_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int mi0283qt_remove(struct spi_device *spi)
> +static void mi0283qt_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void mi0283qt_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/repaper.c b/drivers/gpu/drm/tiny/repaper.c
> index 97a775c48cea..beeeb170d0b1 100644
> --- a/drivers/gpu/drm/tiny/repaper.c
> +++ b/drivers/gpu/drm/tiny/repaper.c
> @@ -1140,14 +1140,12 @@ static int repaper_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int repaper_remove(struct spi_device *spi)
> +static void repaper_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void repaper_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/st7586.c b/drivers/gpu/drm/tiny/st7586.c
> index 51b9b9fb3ead..3f38faa1cd8c 100644
> --- a/drivers/gpu/drm/tiny/st7586.c
> +++ b/drivers/gpu/drm/tiny/st7586.c
> @@ -360,14 +360,12 @@ static int st7586_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int st7586_remove(struct spi_device *spi)
> +static void st7586_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void st7586_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/st7735r.c b/drivers/gpu/drm/tiny/st7735r.c
> index fc40dd10efa8..29d618093e94 100644
> --- a/drivers/gpu/drm/tiny/st7735r.c
> +++ b/drivers/gpu/drm/tiny/st7735r.c
> @@ -247,14 +247,12 @@ static int st7735r_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int st7735r_remove(struct spi_device *spi)
> +static void st7735r_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void st7735r_shutdown(struct spi_device *spi)
> diff --git a/drivers/hwmon/adcxx.c b/drivers/hwmon/adcxx.c
> index e5bc5ce09f4e..de37bce24fa6 100644
> --- a/drivers/hwmon/adcxx.c
> +++ b/drivers/hwmon/adcxx.c
> @@ -194,7 +194,7 @@ static int adcxx_probe(struct spi_device *spi)
> return status;
> }
>
> -static int adcxx_remove(struct spi_device *spi)
> +static void adcxx_remove(struct spi_device *spi)
> {
> struct adcxx *adc = spi_get_drvdata(spi);
> int i;
> @@ -205,8 +205,6 @@ static int adcxx_remove(struct spi_device *spi)
> device_remove_file(&spi->dev, &ad_input[i].dev_attr);
>
> mutex_unlock(&adc->lock);
> -
> - return 0;
> }
>
> static const struct spi_device_id adcxx_ids[] = {
> diff --git a/drivers/hwmon/adt7310.c b/drivers/hwmon/adt7310.c
> index c40cac16af68..832d9ec64934 100644
> --- a/drivers/hwmon/adt7310.c
> +++ b/drivers/hwmon/adt7310.c
> @@ -88,10 +88,9 @@ static int adt7310_spi_probe(struct spi_device *spi)
> &adt7310_spi_ops);
> }
>
> -static int adt7310_spi_remove(struct spi_device *spi)
> +static void adt7310_spi_remove(struct spi_device *spi)
> {
> adt7x10_remove(&spi->dev, spi->irq);
> - return 0;
> }
>
> static const struct spi_device_id adt7310_id[] = {
> diff --git a/drivers/hwmon/max1111.c b/drivers/hwmon/max1111.c
> index 5fcfd57df61e..4c5487aeb3cf 100644
> --- a/drivers/hwmon/max1111.c
> +++ b/drivers/hwmon/max1111.c
> @@ -254,7 +254,7 @@ static int max1111_probe(struct spi_device *spi)
> return err;
> }
>
> -static int max1111_remove(struct spi_device *spi)
> +static void max1111_remove(struct spi_device *spi)
> {
> struct max1111_data *data = spi_get_drvdata(spi);
>
> @@ -265,7 +265,6 @@ static int max1111_remove(struct spi_device *spi)
> sysfs_remove_group(&spi->dev.kobj, &max1110_attr_group);
> sysfs_remove_group(&spi->dev.kobj, &max1111_attr_group);
> mutex_destroy(&data->drvdata_lock);
> - return 0;
> }
>
> static const struct spi_device_id max1111_ids[] = {
> diff --git a/drivers/hwmon/max31722.c b/drivers/hwmon/max31722.c
> index 4cf4fe6809a3..93e048ee4955 100644
> --- a/drivers/hwmon/max31722.c
> +++ b/drivers/hwmon/max31722.c
> @@ -100,7 +100,7 @@ static int max31722_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int max31722_remove(struct spi_device *spi)
> +static void max31722_remove(struct spi_device *spi)
> {
> struct max31722_data *data = spi_get_drvdata(spi);
> int ret;
> @@ -111,8 +111,6 @@ static int max31722_remove(struct spi_device *spi)
> if (ret)
> /* There is nothing we can do about this ... */
> dev_warn(&spi->dev, "Failed to put device in stand-by mode\n");
> -
> - return 0;
> }
>
> static int __maybe_unused max31722_suspend(struct device *dev)
> diff --git a/drivers/iio/accel/bma400_spi.c b/drivers/iio/accel/bma400_spi.c
> index 9f622e37477b..9040a717b247 100644
> --- a/drivers/iio/accel/bma400_spi.c
> +++ b/drivers/iio/accel/bma400_spi.c
> @@ -87,11 +87,9 @@ static int bma400_spi_probe(struct spi_device *spi)
> return bma400_probe(&spi->dev, regmap, id->name);
> }
>
> -static int bma400_spi_remove(struct spi_device *spi)
> +static void bma400_spi_remove(struct spi_device *spi)
> {
> bma400_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id bma400_spi_ids[] = {
> diff --git a/drivers/iio/accel/bmc150-accel-spi.c b/drivers/iio/accel/bmc150-accel-spi.c
> index 11559567cb39..80007cc2d044 100644
> --- a/drivers/iio/accel/bmc150-accel-spi.c
> +++ b/drivers/iio/accel/bmc150-accel-spi.c
> @@ -35,11 +35,9 @@ static int bmc150_accel_probe(struct spi_device *spi)
> true);
> }
>
> -static int bmc150_accel_remove(struct spi_device *spi)
> +static void bmc150_accel_remove(struct spi_device *spi)
> {
> bmc150_accel_core_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct acpi_device_id bmc150_accel_acpi_match[] = {
> diff --git a/drivers/iio/accel/bmi088-accel-spi.c b/drivers/iio/accel/bmi088-accel-spi.c
> index 758ad2f12896..06d99d9949f3 100644
> --- a/drivers/iio/accel/bmi088-accel-spi.c
> +++ b/drivers/iio/accel/bmi088-accel-spi.c
> @@ -56,11 +56,9 @@ static int bmi088_accel_probe(struct spi_device *spi)
> true);
> }
>
> -static int bmi088_accel_remove(struct spi_device *spi)
> +static void bmi088_accel_remove(struct spi_device *spi)
> {
> bmi088_accel_core_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id bmi088_accel_id[] = {
> diff --git a/drivers/iio/accel/kxsd9-spi.c b/drivers/iio/accel/kxsd9-spi.c
> index 441e6b764281..57c451cfb9e5 100644
> --- a/drivers/iio/accel/kxsd9-spi.c
> +++ b/drivers/iio/accel/kxsd9-spi.c
> @@ -32,11 +32,9 @@ static int kxsd9_spi_probe(struct spi_device *spi)
> spi_get_device_id(spi)->name);
> }
>
> -static int kxsd9_spi_remove(struct spi_device *spi)
> +static void kxsd9_spi_remove(struct spi_device *spi)
> {
> kxsd9_common_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id kxsd9_spi_id[] = {
> diff --git a/drivers/iio/accel/mma7455_spi.c b/drivers/iio/accel/mma7455_spi.c
> index ecf690692dcc..b746031551a3 100644
> --- a/drivers/iio/accel/mma7455_spi.c
> +++ b/drivers/iio/accel/mma7455_spi.c
> @@ -22,11 +22,9 @@ static int mma7455_spi_probe(struct spi_device *spi)
> return mma7455_core_probe(&spi->dev, regmap, id->name);
> }
>
> -static int mma7455_spi_remove(struct spi_device *spi)
> +static void mma7455_spi_remove(struct spi_device *spi)
> {
> mma7455_core_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id mma7455_spi_ids[] = {
> diff --git a/drivers/iio/accel/sca3000.c b/drivers/iio/accel/sca3000.c
> index 43ecacbdc95a..83c81072511e 100644
> --- a/drivers/iio/accel/sca3000.c
> +++ b/drivers/iio/accel/sca3000.c
> @@ -1524,7 +1524,7 @@ static int sca3000_stop_all_interrupts(struct sca3000_state *st)
> return ret;
> }
>
> -static int sca3000_remove(struct spi_device *spi)
> +static void sca3000_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct sca3000_state *st = iio_priv(indio_dev);
> @@ -1535,8 +1535,6 @@ static int sca3000_remove(struct spi_device *spi)
> sca3000_stop_all_interrupts(st);
> if (spi->irq)
> free_irq(spi->irq, indio_dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id sca3000_id[] = {
> diff --git a/drivers/iio/adc/ad7266.c b/drivers/iio/adc/ad7266.c
> index 1d345d66742d..c17d9b5fbaf6 100644
> --- a/drivers/iio/adc/ad7266.c
> +++ b/drivers/iio/adc/ad7266.c
> @@ -479,7 +479,7 @@ static int ad7266_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad7266_remove(struct spi_device *spi)
> +static void ad7266_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad7266_state *st = iio_priv(indio_dev);
> @@ -488,8 +488,6 @@ static int ad7266_remove(struct spi_device *spi)
> iio_triggered_buffer_cleanup(indio_dev);
> if (!IS_ERR(st->reg))
> regulator_disable(st->reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad7266_id[] = {
> diff --git a/drivers/iio/adc/ltc2496.c b/drivers/iio/adc/ltc2496.c
> index dd956a7c216e..5a55f79f2574 100644
> --- a/drivers/iio/adc/ltc2496.c
> +++ b/drivers/iio/adc/ltc2496.c
> @@ -78,13 +78,11 @@ static int ltc2496_probe(struct spi_device *spi)
> return ltc2497core_probe(dev, indio_dev);
> }
>
> -static int ltc2496_remove(struct spi_device *spi)
> +static void ltc2496_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
>
> ltc2497core_remove(indio_dev);
> -
> - return 0;
> }
>
> static const struct of_device_id ltc2496_of_match[] = {
> diff --git a/drivers/iio/adc/mcp320x.c b/drivers/iio/adc/mcp320x.c
> index 8d1cff28cae0..b4c69acb33e3 100644
> --- a/drivers/iio/adc/mcp320x.c
> +++ b/drivers/iio/adc/mcp320x.c
> @@ -459,15 +459,13 @@ static int mcp320x_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mcp320x_remove(struct spi_device *spi)
> +static void mcp320x_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct mcp320x *adc = iio_priv(indio_dev);
>
> iio_device_unregister(indio_dev);
> regulator_disable(adc->reg);
> -
> - return 0;
> }
>
> static const struct of_device_id mcp320x_dt_ids[] = {
> diff --git a/drivers/iio/adc/mcp3911.c b/drivers/iio/adc/mcp3911.c
> index 13535f148c4c..1cb4590fe412 100644
> --- a/drivers/iio/adc/mcp3911.c
> +++ b/drivers/iio/adc/mcp3911.c
> @@ -321,7 +321,7 @@ static int mcp3911_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mcp3911_remove(struct spi_device *spi)
> +static void mcp3911_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct mcp3911 *adc = iio_priv(indio_dev);
> @@ -331,8 +331,6 @@ static int mcp3911_remove(struct spi_device *spi)
> clk_disable_unprepare(adc->clki);
> if (adc->vref)
> regulator_disable(adc->vref);
> -
> - return 0;
> }
>
> static const struct of_device_id mcp3911_dt_ids[] = {
> diff --git a/drivers/iio/adc/ti-adc12138.c b/drivers/iio/adc/ti-adc12138.c
> index 6eb62b564dae..59d75d09604f 100644
> --- a/drivers/iio/adc/ti-adc12138.c
> +++ b/drivers/iio/adc/ti-adc12138.c
> @@ -503,7 +503,7 @@ static int adc12138_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int adc12138_remove(struct spi_device *spi)
> +static void adc12138_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct adc12138 *adc = iio_priv(indio_dev);
> @@ -514,8 +514,6 @@ static int adc12138_remove(struct spi_device *spi)
> regulator_disable(adc->vref_n);
> regulator_disable(adc->vref_p);
> clk_disable_unprepare(adc->cclk);
> -
> - return 0;
> }
>
> static const struct of_device_id adc12138_dt_ids[] = {
> diff --git a/drivers/iio/adc/ti-ads7950.c b/drivers/iio/adc/ti-ads7950.c
> index a7efa3eada2c..e3658b969c5b 100644
> --- a/drivers/iio/adc/ti-ads7950.c
> +++ b/drivers/iio/adc/ti-ads7950.c
> @@ -662,7 +662,7 @@ static int ti_ads7950_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ti_ads7950_remove(struct spi_device *spi)
> +static void ti_ads7950_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ti_ads7950_state *st = iio_priv(indio_dev);
> @@ -672,8 +672,6 @@ static int ti_ads7950_remove(struct spi_device *spi)
> iio_triggered_buffer_cleanup(indio_dev);
> regulator_disable(st->reg);
> mutex_destroy(&st->slock);
> -
> - return 0;
> }
>
> static const struct spi_device_id ti_ads7950_id[] = {
> diff --git a/drivers/iio/adc/ti-ads8688.c b/drivers/iio/adc/ti-ads8688.c
> index 2e24717d7f55..22c2583eedd0 100644
> --- a/drivers/iio/adc/ti-ads8688.c
> +++ b/drivers/iio/adc/ti-ads8688.c
> @@ -479,7 +479,7 @@ static int ads8688_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ads8688_remove(struct spi_device *spi)
> +static void ads8688_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ads8688_state *st = iio_priv(indio_dev);
> @@ -489,8 +489,6 @@ static int ads8688_remove(struct spi_device *spi)
>
> if (!IS_ERR(st->reg))
> regulator_disable(st->reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ads8688_id[] = {
> diff --git a/drivers/iio/adc/ti-tlc4541.c b/drivers/iio/adc/ti-tlc4541.c
> index 403b787f9f7e..2406eda9dfc6 100644
> --- a/drivers/iio/adc/ti-tlc4541.c
> +++ b/drivers/iio/adc/ti-tlc4541.c
> @@ -224,7 +224,7 @@ static int tlc4541_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int tlc4541_remove(struct spi_device *spi)
> +static void tlc4541_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct tlc4541_state *st = iio_priv(indio_dev);
> @@ -232,8 +232,6 @@ static int tlc4541_remove(struct spi_device *spi)
> iio_device_unregister(indio_dev);
> iio_triggered_buffer_cleanup(indio_dev);
> regulator_disable(st->reg);
> -
> - return 0;
> }
>
> static const struct of_device_id tlc4541_dt_ids[] = {
> diff --git a/drivers/iio/amplifiers/ad8366.c b/drivers/iio/amplifiers/ad8366.c
> index cfcf18a0bce8..1134ae12e531 100644
> --- a/drivers/iio/amplifiers/ad8366.c
> +++ b/drivers/iio/amplifiers/ad8366.c
> @@ -298,7 +298,7 @@ static int ad8366_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad8366_remove(struct spi_device *spi)
> +static void ad8366_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad8366_state *st = iio_priv(indio_dev);
> @@ -308,8 +308,6 @@ static int ad8366_remove(struct spi_device *spi)
>
> if (!IS_ERR(reg))
> regulator_disable(reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad8366_id[] = {
> diff --git a/drivers/iio/common/ssp_sensors/ssp_dev.c b/drivers/iio/common/ssp_sensors/ssp_dev.c
> index 1aee87100038..eafaf4529df5 100644
> --- a/drivers/iio/common/ssp_sensors/ssp_dev.c
> +++ b/drivers/iio/common/ssp_sensors/ssp_dev.c
> @@ -586,7 +586,7 @@ static int ssp_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ssp_remove(struct spi_device *spi)
> +static void ssp_remove(struct spi_device *spi)
> {
> struct ssp_data *data = spi_get_drvdata(spi);
>
> @@ -608,8 +608,6 @@ static int ssp_remove(struct spi_device *spi)
> mutex_destroy(&data->pending_lock);
>
> mfd_remove_devices(&spi->dev);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/iio/dac/ad5360.c b/drivers/iio/dac/ad5360.c
> index 2d3b14c407d8..ecbc6a51d60f 100644
> --- a/drivers/iio/dac/ad5360.c
> +++ b/drivers/iio/dac/ad5360.c
> @@ -521,7 +521,7 @@ static int ad5360_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5360_remove(struct spi_device *spi)
> +static void ad5360_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad5360_state *st = iio_priv(indio_dev);
> @@ -531,8 +531,6 @@ static int ad5360_remove(struct spi_device *spi)
> kfree(indio_dev->channels);
>
> regulator_bulk_disable(st->chip_info->num_vrefs, st->vref_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5360_ids[] = {
> diff --git a/drivers/iio/dac/ad5380.c b/drivers/iio/dac/ad5380.c
> index e38860a6a9f3..82e1d9bd773e 100644
> --- a/drivers/iio/dac/ad5380.c
> +++ b/drivers/iio/dac/ad5380.c
> @@ -488,11 +488,9 @@ static int ad5380_spi_probe(struct spi_device *spi)
> return ad5380_probe(&spi->dev, regmap, id->driver_data, id->name);
> }
>
> -static int ad5380_spi_remove(struct spi_device *spi)
> +static void ad5380_spi_remove(struct spi_device *spi)
> {
> ad5380_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5380_spi_ids[] = {
> diff --git a/drivers/iio/dac/ad5446.c b/drivers/iio/dac/ad5446.c
> index 1c9b54c012a7..14cfabacbea5 100644
> --- a/drivers/iio/dac/ad5446.c
> +++ b/drivers/iio/dac/ad5446.c
> @@ -491,11 +491,9 @@ static int ad5446_spi_probe(struct spi_device *spi)
> &ad5446_spi_chip_info[id->driver_data]);
> }
>
> -static int ad5446_spi_remove(struct spi_device *spi)
> +static void ad5446_spi_remove(struct spi_device *spi)
> {
> ad5446_remove(&spi->dev);
> -
> - return 0;
> }
>
> static struct spi_driver ad5446_spi_driver = {
> diff --git a/drivers/iio/dac/ad5449.c b/drivers/iio/dac/ad5449.c
> index f5e93c6acc9d..bad9bdaafa94 100644
> --- a/drivers/iio/dac/ad5449.c
> +++ b/drivers/iio/dac/ad5449.c
> @@ -330,7 +330,7 @@ static int ad5449_spi_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5449_spi_remove(struct spi_device *spi)
> +static void ad5449_spi_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad5449 *st = iio_priv(indio_dev);
> @@ -338,8 +338,6 @@ static int ad5449_spi_remove(struct spi_device *spi)
> iio_device_unregister(indio_dev);
>
> regulator_bulk_disable(st->chip_info->num_channels, st->vref_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5449_spi_ids[] = {
> diff --git a/drivers/iio/dac/ad5504.c b/drivers/iio/dac/ad5504.c
> index b631261efa97..8507573aa13e 100644
> --- a/drivers/iio/dac/ad5504.c
> +++ b/drivers/iio/dac/ad5504.c
> @@ -336,7 +336,7 @@ static int ad5504_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5504_remove(struct spi_device *spi)
> +static void ad5504_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad5504_state *st = iio_priv(indio_dev);
> @@ -345,8 +345,6 @@ static int ad5504_remove(struct spi_device *spi)
>
> if (!IS_ERR(st->reg))
> regulator_disable(st->reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5504_id[] = {
> diff --git a/drivers/iio/dac/ad5592r.c b/drivers/iio/dac/ad5592r.c
> index 6bfd7951e18c..0f7abfa75bec 100644
> --- a/drivers/iio/dac/ad5592r.c
> +++ b/drivers/iio/dac/ad5592r.c
> @@ -130,11 +130,9 @@ static int ad5592r_spi_probe(struct spi_device *spi)
> return ad5592r_probe(&spi->dev, id->name, &ad5592r_rw_ops);
> }
>
> -static int ad5592r_spi_remove(struct spi_device *spi)
> +static void ad5592r_spi_remove(struct spi_device *spi)
> {
> ad5592r_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5592r_spi_ids[] = {
> diff --git a/drivers/iio/dac/ad5624r_spi.c b/drivers/iio/dac/ad5624r_spi.c
> index 3c98941b9f99..371e812850eb 100644
> --- a/drivers/iio/dac/ad5624r_spi.c
> +++ b/drivers/iio/dac/ad5624r_spi.c
> @@ -293,7 +293,7 @@ static int ad5624r_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5624r_remove(struct spi_device *spi)
> +static void ad5624r_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad5624r_state *st = iio_priv(indio_dev);
> @@ -301,8 +301,6 @@ static int ad5624r_remove(struct spi_device *spi)
> iio_device_unregister(indio_dev);
> if (!IS_ERR(st->reg))
> regulator_disable(st->reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5624r_id[] = {
> diff --git a/drivers/iio/dac/ad5686-spi.c b/drivers/iio/dac/ad5686-spi.c
> index 2628810fdbb1..d26fb29b6b04 100644
> --- a/drivers/iio/dac/ad5686-spi.c
> +++ b/drivers/iio/dac/ad5686-spi.c
> @@ -95,11 +95,9 @@ static int ad5686_spi_probe(struct spi_device *spi)
> ad5686_spi_write, ad5686_spi_read);
> }
>
> -static int ad5686_spi_remove(struct spi_device *spi)
> +static void ad5686_spi_remove(struct spi_device *spi)
> {
> ad5686_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5686_spi_id[] = {
> diff --git a/drivers/iio/dac/ad5761.c b/drivers/iio/dac/ad5761.c
> index e37e095e94fc..4cb8471db81e 100644
> --- a/drivers/iio/dac/ad5761.c
> +++ b/drivers/iio/dac/ad5761.c
> @@ -394,7 +394,7 @@ static int ad5761_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5761_remove(struct spi_device *spi)
> +static void ad5761_remove(struct spi_device *spi)
> {
> struct iio_dev *iio_dev = spi_get_drvdata(spi);
> struct ad5761_state *st = iio_priv(iio_dev);
> @@ -403,8 +403,6 @@ static int ad5761_remove(struct spi_device *spi)
>
> if (!IS_ERR_OR_NULL(st->vref_reg))
> regulator_disable(st->vref_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5761_id[] = {
> diff --git a/drivers/iio/dac/ad5764.c b/drivers/iio/dac/ad5764.c
> index ae089b9145cb..d235a8047ba0 100644
> --- a/drivers/iio/dac/ad5764.c
> +++ b/drivers/iio/dac/ad5764.c
> @@ -332,7 +332,7 @@ static int ad5764_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5764_remove(struct spi_device *spi)
> +static void ad5764_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad5764_state *st = iio_priv(indio_dev);
> @@ -341,8 +341,6 @@ static int ad5764_remove(struct spi_device *spi)
>
> if (st->chip_info->int_vref == 0)
> regulator_bulk_disable(ARRAY_SIZE(st->vref_reg), st->vref_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5764_ids[] = {
> diff --git a/drivers/iio/dac/ad5791.c b/drivers/iio/dac/ad5791.c
> index 7b4579d73d18..2b14914b4050 100644
> --- a/drivers/iio/dac/ad5791.c
> +++ b/drivers/iio/dac/ad5791.c
> @@ -428,7 +428,7 @@ static int ad5791_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5791_remove(struct spi_device *spi)
> +static void ad5791_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad5791_state *st = iio_priv(indio_dev);
> @@ -439,8 +439,6 @@ static int ad5791_remove(struct spi_device *spi)
>
> if (!IS_ERR(st->reg_vss))
> regulator_disable(st->reg_vss);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5791_id[] = {
> diff --git a/drivers/iio/dac/ad8801.c b/drivers/iio/dac/ad8801.c
> index 5ecfdad54dec..6be35c92d435 100644
> --- a/drivers/iio/dac/ad8801.c
> +++ b/drivers/iio/dac/ad8801.c
> @@ -193,7 +193,7 @@ static int ad8801_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad8801_remove(struct spi_device *spi)
> +static void ad8801_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad8801_state *state = iio_priv(indio_dev);
> @@ -202,8 +202,6 @@ static int ad8801_remove(struct spi_device *spi)
> if (state->vrefl_reg)
> regulator_disable(state->vrefl_reg);
> regulator_disable(state->vrefh_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad8801_ids[] = {
> diff --git a/drivers/iio/dac/ltc1660.c b/drivers/iio/dac/ltc1660.c
> index f6ec9bf5815e..c76233c9bb72 100644
> --- a/drivers/iio/dac/ltc1660.c
> +++ b/drivers/iio/dac/ltc1660.c
> @@ -206,15 +206,13 @@ static int ltc1660_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ltc1660_remove(struct spi_device *spi)
> +static void ltc1660_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ltc1660_priv *priv = iio_priv(indio_dev);
>
> iio_device_unregister(indio_dev);
> regulator_disable(priv->vref_reg);
> -
> - return 0;
> }
>
> static const struct of_device_id ltc1660_dt_ids[] = {
> diff --git a/drivers/iio/dac/ltc2632.c b/drivers/iio/dac/ltc2632.c
> index 53e4b887d372..aed46c80757e 100644
> --- a/drivers/iio/dac/ltc2632.c
> +++ b/drivers/iio/dac/ltc2632.c
> @@ -372,7 +372,7 @@ static int ltc2632_probe(struct spi_device *spi)
> return iio_device_register(indio_dev);
> }
>
> -static int ltc2632_remove(struct spi_device *spi)
> +static void ltc2632_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ltc2632_state *st = iio_priv(indio_dev);
> @@ -381,8 +381,6 @@ static int ltc2632_remove(struct spi_device *spi)
>
> if (st->vref_reg)
> regulator_disable(st->vref_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ltc2632_id[] = {
> diff --git a/drivers/iio/dac/mcp4922.c b/drivers/iio/dac/mcp4922.c
> index 0ae414ee1716..cb9e60e71b91 100644
> --- a/drivers/iio/dac/mcp4922.c
> +++ b/drivers/iio/dac/mcp4922.c
> @@ -172,7 +172,7 @@ static int mcp4922_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mcp4922_remove(struct spi_device *spi)
> +static void mcp4922_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct mcp4922_state *state;
> @@ -180,8 +180,6 @@ static int mcp4922_remove(struct spi_device *spi)
> iio_device_unregister(indio_dev);
> state = iio_priv(indio_dev);
> regulator_disable(state->vref_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id mcp4922_id[] = {
> diff --git a/drivers/iio/dac/ti-dac082s085.c b/drivers/iio/dac/ti-dac082s085.c
> index 6beda2193683..4e1156e6deb2 100644
> --- a/drivers/iio/dac/ti-dac082s085.c
> +++ b/drivers/iio/dac/ti-dac082s085.c
> @@ -313,7 +313,7 @@ static int ti_dac_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ti_dac_remove(struct spi_device *spi)
> +static void ti_dac_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ti_dac_chip *ti_dac = iio_priv(indio_dev);
> @@ -321,8 +321,6 @@ static int ti_dac_remove(struct spi_device *spi)
> iio_device_unregister(indio_dev);
> mutex_destroy(&ti_dac->lock);
> regulator_disable(ti_dac->vref);
> -
> - return 0;
> }
>
> static const struct of_device_id ti_dac_of_id[] = {
> diff --git a/drivers/iio/dac/ti-dac7311.c b/drivers/iio/dac/ti-dac7311.c
> index 99f275829ec2..e10d17e60ed3 100644
> --- a/drivers/iio/dac/ti-dac7311.c
> +++ b/drivers/iio/dac/ti-dac7311.c
> @@ -292,7 +292,7 @@ static int ti_dac_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ti_dac_remove(struct spi_device *spi)
> +static void ti_dac_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ti_dac_chip *ti_dac = iio_priv(indio_dev);
> @@ -300,7 +300,6 @@ static int ti_dac_remove(struct spi_device *spi)
> iio_device_unregister(indio_dev);
> mutex_destroy(&ti_dac->lock);
> regulator_disable(ti_dac->vref);
> - return 0;
> }
>
> static const struct of_device_id ti_dac_of_id[] = {
> diff --git a/drivers/iio/frequency/adf4350.c b/drivers/iio/frequency/adf4350.c
> index 3d9eba716b69..f3521330f6fb 100644
> --- a/drivers/iio/frequency/adf4350.c
> +++ b/drivers/iio/frequency/adf4350.c
> @@ -589,7 +589,7 @@ static int adf4350_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int adf4350_remove(struct spi_device *spi)
> +static void adf4350_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct adf4350_state *st = iio_priv(indio_dev);
> @@ -604,8 +604,6 @@ static int adf4350_remove(struct spi_device *spi)
>
> if (!IS_ERR(reg))
> regulator_disable(reg);
> -
> - return 0;
> }
>
> static const struct of_device_id adf4350_of_match[] = {
> diff --git a/drivers/iio/gyro/bmg160_spi.c b/drivers/iio/gyro/bmg160_spi.c
> index 745962e1e423..fc2e453527b9 100644
> --- a/drivers/iio/gyro/bmg160_spi.c
> +++ b/drivers/iio/gyro/bmg160_spi.c
> @@ -27,11 +27,9 @@ static int bmg160_spi_probe(struct spi_device *spi)
> return bmg160_core_probe(&spi->dev, regmap, spi->irq, id->name);
> }
>
> -static int bmg160_spi_remove(struct spi_device *spi)
> +static void bmg160_spi_remove(struct spi_device *spi)
> {
> bmg160_core_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id bmg160_spi_id[] = {
> diff --git a/drivers/iio/gyro/fxas21002c_spi.c b/drivers/iio/gyro/fxas21002c_spi.c
> index 77ceebef4e34..c3ac169facf9 100644
> --- a/drivers/iio/gyro/fxas21002c_spi.c
> +++ b/drivers/iio/gyro/fxas21002c_spi.c
> @@ -34,11 +34,9 @@ static int fxas21002c_spi_probe(struct spi_device *spi)
> return fxas21002c_core_probe(&spi->dev, regmap, spi->irq, id->name);
> }
>
> -static int fxas21002c_spi_remove(struct spi_device *spi)
> +static void fxas21002c_spi_remove(struct spi_device *spi)
> {
> fxas21002c_core_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id fxas21002c_spi_id[] = {
> diff --git a/drivers/iio/health/afe4403.c b/drivers/iio/health/afe4403.c
> index 273f16dcaff8..856ec901b091 100644
> --- a/drivers/iio/health/afe4403.c
> +++ b/drivers/iio/health/afe4403.c
> @@ -570,7 +570,7 @@ static int afe4403_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int afe4403_remove(struct spi_device *spi)
> +static void afe4403_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct afe4403_data *afe = iio_priv(indio_dev);
> @@ -586,8 +586,6 @@ static int afe4403_remove(struct spi_device *spi)
> ret = regulator_disable(afe->regulator);
> if (ret)
> dev_warn(afe->dev, "Unable to disable regulator\n");
> -
> - return 0;
> }
>
> static const struct spi_device_id afe4403_ids[] = {
> diff --git a/drivers/iio/magnetometer/bmc150_magn_spi.c b/drivers/iio/magnetometer/bmc150_magn_spi.c
> index c6ed3ea8460a..4c570412d65c 100644
> --- a/drivers/iio/magnetometer/bmc150_magn_spi.c
> +++ b/drivers/iio/magnetometer/bmc150_magn_spi.c
> @@ -29,11 +29,9 @@ static int bmc150_magn_spi_probe(struct spi_device *spi)
> return bmc150_magn_probe(&spi->dev, regmap, spi->irq, id->name);
> }
>
> -static int bmc150_magn_spi_remove(struct spi_device *spi)
> +static void bmc150_magn_spi_remove(struct spi_device *spi)
> {
> bmc150_magn_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id bmc150_magn_spi_id[] = {
> diff --git a/drivers/iio/magnetometer/hmc5843_spi.c b/drivers/iio/magnetometer/hmc5843_spi.c
> index 89cf59a62c28..a99dd9b33e95 100644
> --- a/drivers/iio/magnetometer/hmc5843_spi.c
> +++ b/drivers/iio/magnetometer/hmc5843_spi.c
> @@ -74,11 +74,9 @@ static int hmc5843_spi_probe(struct spi_device *spi)
> id->driver_data, id->name);
> }
>
> -static int hmc5843_spi_remove(struct spi_device *spi)
> +static void hmc5843_spi_remove(struct spi_device *spi)
> {
> hmc5843_common_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id hmc5843_id[] = {
> diff --git a/drivers/iio/potentiometer/max5487.c b/drivers/iio/potentiometer/max5487.c
> index 007c2bd324cb..42723c996c9f 100644
> --- a/drivers/iio/potentiometer/max5487.c
> +++ b/drivers/iio/potentiometer/max5487.c
> @@ -112,7 +112,7 @@ static int max5487_spi_probe(struct spi_device *spi)
> return iio_device_register(indio_dev);
> }
>
> -static int max5487_spi_remove(struct spi_device *spi)
> +static void max5487_spi_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> int ret;
> @@ -123,8 +123,6 @@ static int max5487_spi_remove(struct spi_device *spi)
> ret = max5487_write_cmd(spi, MAX5487_COPY_AB_TO_NV);
> if (ret)
> dev_warn(&spi->dev, "Failed to save wiper regs to NV regs\n");
> -
> - return 0;
> }
>
> static const struct spi_device_id max5487_id[] = {
> diff --git a/drivers/iio/pressure/ms5611_spi.c b/drivers/iio/pressure/ms5611_spi.c
> index 9fa2dcd71760..7ccd960ced5d 100644
> --- a/drivers/iio/pressure/ms5611_spi.c
> +++ b/drivers/iio/pressure/ms5611_spi.c
> @@ -107,11 +107,9 @@ static int ms5611_spi_probe(struct spi_device *spi)
> spi_get_device_id(spi)->driver_data);
> }
>
> -static int ms5611_spi_remove(struct spi_device *spi)
> +static void ms5611_spi_remove(struct spi_device *spi)
> {
> ms5611_remove(spi_get_drvdata(spi));
> -
> - return 0;
> }
>
> static const struct of_device_id ms5611_spi_matches[] = {
> diff --git a/drivers/iio/pressure/zpa2326_spi.c b/drivers/iio/pressure/zpa2326_spi.c
> index 85201a4bae44..ee8ed77536ca 100644
> --- a/drivers/iio/pressure/zpa2326_spi.c
> +++ b/drivers/iio/pressure/zpa2326_spi.c
> @@ -57,11 +57,9 @@ static int zpa2326_probe_spi(struct spi_device *spi)
> spi->irq, ZPA2326_DEVICE_ID, regmap);
> }
>
> -static int zpa2326_remove_spi(struct spi_device *spi)
> +static void zpa2326_remove_spi(struct spi_device *spi)
> {
> zpa2326_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id zpa2326_spi_ids[] = {
> diff --git a/drivers/input/keyboard/applespi.c b/drivers/input/keyboard/applespi.c
> index eda1b23002b5..d1f5354d5ea2 100644
> --- a/drivers/input/keyboard/applespi.c
> +++ b/drivers/input/keyboard/applespi.c
> @@ -1858,7 +1858,7 @@ static void applespi_drain_reads(struct applespi_data *applespi)
> spin_unlock_irqrestore(&applespi->cmd_msg_lock, flags);
> }
>
> -static int applespi_remove(struct spi_device *spi)
> +static void applespi_remove(struct spi_device *spi)
> {
> struct applespi_data *applespi = spi_get_drvdata(spi);
>
> @@ -1871,8 +1871,6 @@ static int applespi_remove(struct spi_device *spi)
> applespi_drain_reads(applespi);
>
> debugfs_remove_recursive(applespi->debugfs_root);
> -
> - return 0;
> }
>
> static void applespi_shutdown(struct spi_device *spi)
> diff --git a/drivers/input/misc/adxl34x-spi.c b/drivers/input/misc/adxl34x-spi.c
> index 6e51c9bc619f..91e44d4c66f7 100644
> --- a/drivers/input/misc/adxl34x-spi.c
> +++ b/drivers/input/misc/adxl34x-spi.c
> @@ -87,13 +87,11 @@ static int adxl34x_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int adxl34x_spi_remove(struct spi_device *spi)
> +static void adxl34x_spi_remove(struct spi_device *spi)
> {
> struct adxl34x *ac = spi_get_drvdata(spi);
>
> adxl34x_remove(ac);
> -
> - return 0;
> }
>
> static int __maybe_unused adxl34x_spi_suspend(struct device *dev)
> diff --git a/drivers/input/touchscreen/ads7846.c b/drivers/input/touchscreen/ads7846.c
> index a25a77dd9a32..bed68a68f330 100644
> --- a/drivers/input/touchscreen/ads7846.c
> +++ b/drivers/input/touchscreen/ads7846.c
> @@ -1411,13 +1411,11 @@ static int ads7846_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ads7846_remove(struct spi_device *spi)
> +static void ads7846_remove(struct spi_device *spi)
> {
> struct ads7846 *ts = spi_get_drvdata(spi);
>
> ads7846_stop(ts);
> -
> - return 0;
> }
>
> static struct spi_driver ads7846_driver = {
> diff --git a/drivers/input/touchscreen/cyttsp4_spi.c b/drivers/input/touchscreen/cyttsp4_spi.c
> index 2aec41eb76b7..5d7db84f2749 100644
> --- a/drivers/input/touchscreen/cyttsp4_spi.c
> +++ b/drivers/input/touchscreen/cyttsp4_spi.c
> @@ -164,12 +164,10 @@ static int cyttsp4_spi_probe(struct spi_device *spi)
> return PTR_ERR_OR_ZERO(ts);
> }
>
> -static int cyttsp4_spi_remove(struct spi_device *spi)
> +static void cyttsp4_spi_remove(struct spi_device *spi)
> {
> struct cyttsp4 *ts = spi_get_drvdata(spi);
> cyttsp4_remove(ts);
> -
> - return 0;
> }
>
> static struct spi_driver cyttsp4_spi_driver = {
> diff --git a/drivers/input/touchscreen/tsc2005.c b/drivers/input/touchscreen/tsc2005.c
> index a2f55920b9b2..555dfe98b3c4 100644
> --- a/drivers/input/touchscreen/tsc2005.c
> +++ b/drivers/input/touchscreen/tsc2005.c
> @@ -64,11 +64,9 @@ static int tsc2005_probe(struct spi_device *spi)
> tsc2005_cmd);
> }
>
> -static int tsc2005_remove(struct spi_device *spi)
> +static void tsc2005_remove(struct spi_device *spi)
> {
> tsc200x_remove(&spi->dev);
> -
> - return 0;
> }
>
> #ifdef CONFIG_OF
> diff --git a/drivers/leds/leds-cr0014114.c b/drivers/leds/leds-cr0014114.c
> index d03cfd3c0bfb..c87686bd7c18 100644
> --- a/drivers/leds/leds-cr0014114.c
> +++ b/drivers/leds/leds-cr0014114.c
> @@ -266,14 +266,12 @@ static int cr0014114_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int cr0014114_remove(struct spi_device *spi)
> +static void cr0014114_remove(struct spi_device *spi)
> {
> struct cr0014114 *priv = spi_get_drvdata(spi);
>
> cancel_delayed_work_sync(&priv->work);
> mutex_destroy(&priv->lock);
> -
> - return 0;
> }
>
> static const struct of_device_id cr0014114_dt_ids[] = {
> diff --git a/drivers/leds/leds-dac124s085.c b/drivers/leds/leds-dac124s085.c
> index 20dc9b9d7dea..cf5fb1195f87 100644
> --- a/drivers/leds/leds-dac124s085.c
> +++ b/drivers/leds/leds-dac124s085.c
> @@ -85,15 +85,13 @@ static int dac124s085_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int dac124s085_remove(struct spi_device *spi)
> +static void dac124s085_remove(struct spi_device *spi)
> {
> struct dac124s085 *dac = spi_get_drvdata(spi);
> int i;
>
> for (i = 0; i < ARRAY_SIZE(dac->leds); i++)
> led_classdev_unregister(&dac->leds[i].ldev);
> -
> - return 0;
> }
>
> static struct spi_driver dac124s085_driver = {
> diff --git a/drivers/leds/leds-el15203000.c b/drivers/leds/leds-el15203000.c
> index f9eb59a25570..7e7b617bcd56 100644
> --- a/drivers/leds/leds-el15203000.c
> +++ b/drivers/leds/leds-el15203000.c
> @@ -315,13 +315,11 @@ static int el15203000_probe(struct spi_device *spi)
> return el15203000_probe_dt(priv);
> }
>
> -static int el15203000_remove(struct spi_device *spi)
> +static void el15203000_remove(struct spi_device *spi)
> {
> struct el15203000 *priv = spi_get_drvdata(spi);
>
> mutex_destroy(&priv->lock);
> -
> - return 0;
> }
>
> static const struct of_device_id el15203000_dt_ids[] = {
> diff --git a/drivers/leds/leds-spi-byte.c b/drivers/leds/leds-spi-byte.c
> index f1964c96fb15..2bc5c99daf51 100644
> --- a/drivers/leds/leds-spi-byte.c
> +++ b/drivers/leds/leds-spi-byte.c
> @@ -130,13 +130,11 @@ static int spi_byte_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int spi_byte_remove(struct spi_device *spi)
> +static void spi_byte_remove(struct spi_device *spi)
> {
> struct spi_byte_led *led = spi_get_drvdata(spi);
>
> mutex_destroy(&led->mutex);
> -
> - return 0;
> }
>
> static struct spi_driver spi_byte_driver = {
> diff --git a/drivers/media/spi/cxd2880-spi.c b/drivers/media/spi/cxd2880-spi.c
> index 6f2a66bc87fb..6be4e5528879 100644
> --- a/drivers/media/spi/cxd2880-spi.c
> +++ b/drivers/media/spi/cxd2880-spi.c
> @@ -625,7 +625,7 @@ cxd2880_spi_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int
> +static void
> cxd2880_spi_remove(struct spi_device *spi)
> {
> struct cxd2880_dvb_spi *dvb_spi = spi_get_drvdata(spi);
> @@ -643,8 +643,6 @@ cxd2880_spi_remove(struct spi_device *spi)
>
> kfree(dvb_spi);
> pr_info("cxd2880_spi remove ok.\n");
> -
> - return 0;
> }
>
> static const struct spi_device_id cxd2880_spi_id[] = {
> diff --git a/drivers/media/spi/gs1662.c b/drivers/media/spi/gs1662.c
> index f86ef1ca1288..75c21a93e6d0 100644
> --- a/drivers/media/spi/gs1662.c
> +++ b/drivers/media/spi/gs1662.c
> @@ -458,13 +458,11 @@ static int gs_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int gs_remove(struct spi_device *spi)
> +static void gs_remove(struct spi_device *spi)
> {
> struct v4l2_subdev *sd = spi_get_drvdata(spi);
>
> v4l2_device_unregister_subdev(sd);
> -
> - return 0;
> }
>
> static struct spi_driver gs_driver = {
> diff --git a/drivers/media/tuners/msi001.c b/drivers/media/tuners/msi001.c
> index 44247049a319..ad6c72c1ed04 100644
> --- a/drivers/media/tuners/msi001.c
> +++ b/drivers/media/tuners/msi001.c
> @@ -472,7 +472,7 @@ static int msi001_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int msi001_remove(struct spi_device *spi)
> +static void msi001_remove(struct spi_device *spi)
> {
> struct v4l2_subdev *sd = spi_get_drvdata(spi);
> struct msi001_dev *dev = sd_to_msi001_dev(sd);
> @@ -486,7 +486,6 @@ static int msi001_remove(struct spi_device *spi)
> v4l2_device_unregister_subdev(&dev->sd);
> v4l2_ctrl_handler_free(&dev->hdl);
> kfree(dev);
> - return 0;
> }
>
> static const struct spi_device_id msi001_id_table[] = {
> diff --git a/drivers/mfd/arizona-spi.c b/drivers/mfd/arizona-spi.c
> index 9fe06dda3782..03620c8efe34 100644
> --- a/drivers/mfd/arizona-spi.c
> +++ b/drivers/mfd/arizona-spi.c
> @@ -206,13 +206,11 @@ static int arizona_spi_probe(struct spi_device *spi)
> return arizona_dev_init(arizona);
> }
>
> -static int arizona_spi_remove(struct spi_device *spi)
> +static void arizona_spi_remove(struct spi_device *spi)
> {
> struct arizona *arizona = spi_get_drvdata(spi);
>
> arizona_dev_exit(arizona);
> -
> - return 0;
> }
>
> static const struct spi_device_id arizona_spi_ids[] = {
> diff --git a/drivers/mfd/da9052-spi.c b/drivers/mfd/da9052-spi.c
> index 5faf3766a5e2..b79a57b45c1e 100644
> --- a/drivers/mfd/da9052-spi.c
> +++ b/drivers/mfd/da9052-spi.c
> @@ -55,12 +55,11 @@ static int da9052_spi_probe(struct spi_device *spi)
> return da9052_device_init(da9052, id->driver_data);
> }
>
> -static int da9052_spi_remove(struct spi_device *spi)
> +static void da9052_spi_remove(struct spi_device *spi)
> {
> struct da9052 *da9052 = spi_get_drvdata(spi);
>
> da9052_device_exit(da9052);
> - return 0;
> }
>
> static const struct spi_device_id da9052_spi_id[] = {
> diff --git a/drivers/mfd/ezx-pcap.c b/drivers/mfd/ezx-pcap.c
> index 70fa18b04ad2..2280f756f422 100644
> --- a/drivers/mfd/ezx-pcap.c
> +++ b/drivers/mfd/ezx-pcap.c
> @@ -392,7 +392,7 @@ static int pcap_add_subdev(struct pcap_chip *pcap,
> return ret;
> }
>
> -static int ezx_pcap_remove(struct spi_device *spi)
> +static void ezx_pcap_remove(struct spi_device *spi)
> {
> struct pcap_chip *pcap = spi_get_drvdata(spi);
> unsigned long flags;
> @@ -412,8 +412,6 @@ static int ezx_pcap_remove(struct spi_device *spi)
> irq_set_chip_and_handler(i, NULL, NULL);
>
> destroy_workqueue(pcap->workqueue);
> -
> - return 0;
> }
>
> static int ezx_pcap_probe(struct spi_device *spi)
> diff --git a/drivers/mfd/madera-spi.c b/drivers/mfd/madera-spi.c
> index e860f5ff0933..da84eb50e53a 100644
> --- a/drivers/mfd/madera-spi.c
> +++ b/drivers/mfd/madera-spi.c
> @@ -112,13 +112,11 @@ static int madera_spi_probe(struct spi_device *spi)
> return madera_dev_init(madera);
> }
>
> -static int madera_spi_remove(struct spi_device *spi)
> +static void madera_spi_remove(struct spi_device *spi)
> {
> struct madera *madera = spi_get_drvdata(spi);
>
> madera_dev_exit(madera);
> -
> - return 0;
> }
>
> static const struct spi_device_id madera_spi_ids[] = {
> diff --git a/drivers/mfd/mc13xxx-spi.c b/drivers/mfd/mc13xxx-spi.c
> index 4d8913d647e6..f803527e5819 100644
> --- a/drivers/mfd/mc13xxx-spi.c
> +++ b/drivers/mfd/mc13xxx-spi.c
> @@ -166,10 +166,9 @@ static int mc13xxx_spi_probe(struct spi_device *spi)
> return mc13xxx_common_init(&spi->dev);
> }
>
> -static int mc13xxx_spi_remove(struct spi_device *spi)
> +static void mc13xxx_spi_remove(struct spi_device *spi)
> {
> mc13xxx_common_exit(&spi->dev);
> - return 0;
> }
>
> static struct spi_driver mc13xxx_spi_driver = {
> diff --git a/drivers/mfd/rsmu_spi.c b/drivers/mfd/rsmu_spi.c
> index fec2b4ec477c..d2f3d8f1e05a 100644
> --- a/drivers/mfd/rsmu_spi.c
> +++ b/drivers/mfd/rsmu_spi.c
> @@ -220,13 +220,11 @@ static int rsmu_spi_probe(struct spi_device *client)
> return rsmu_core_init(rsmu);
> }
>
> -static int rsmu_spi_remove(struct spi_device *client)
> +static void rsmu_spi_remove(struct spi_device *client)
> {
> struct rsmu_ddata *rsmu = spi_get_drvdata(client);
>
> rsmu_core_exit(rsmu);
> -
> - return 0;
> }
>
> static const struct spi_device_id rsmu_spi_id[] = {
> diff --git a/drivers/mfd/stmpe-spi.c b/drivers/mfd/stmpe-spi.c
> index 6c5915016be5..ad8055a0e286 100644
> --- a/drivers/mfd/stmpe-spi.c
> +++ b/drivers/mfd/stmpe-spi.c
> @@ -102,13 +102,11 @@ stmpe_spi_probe(struct spi_device *spi)
> return stmpe_probe(&spi_ci, id->driver_data);
> }
>
> -static int stmpe_spi_remove(struct spi_device *spi)
> +static void stmpe_spi_remove(struct spi_device *spi)
> {
> struct stmpe *stmpe = spi_get_drvdata(spi);
>
> stmpe_remove(stmpe);
> -
> - return 0;
> }
>
> static const struct of_device_id stmpe_spi_of_match[] = {
> diff --git a/drivers/mfd/tps65912-spi.c b/drivers/mfd/tps65912-spi.c
> index d701926aa46e..bba38fbc781d 100644
> --- a/drivers/mfd/tps65912-spi.c
> +++ b/drivers/mfd/tps65912-spi.c
> @@ -50,13 +50,11 @@ static int tps65912_spi_probe(struct spi_device *spi)
> return tps65912_device_init(tps);
> }
>
> -static int tps65912_spi_remove(struct spi_device *spi)
> +static void tps65912_spi_remove(struct spi_device *spi)
> {
> struct tps65912 *tps = spi_get_drvdata(spi);
>
> tps65912_device_exit(tps);
> -
> - return 0;
> }
>
> static const struct spi_device_id tps65912_spi_id_table[] = {
> diff --git a/drivers/misc/ad525x_dpot-spi.c b/drivers/misc/ad525x_dpot-spi.c
> index a9e75d80ad36..263055bda48b 100644
> --- a/drivers/misc/ad525x_dpot-spi.c
> +++ b/drivers/misc/ad525x_dpot-spi.c
> @@ -90,10 +90,9 @@ static int ad_dpot_spi_probe(struct spi_device *spi)
> spi_get_device_id(spi)->name);
> }
>
> -static int ad_dpot_spi_remove(struct spi_device *spi)
> +static void ad_dpot_spi_remove(struct spi_device *spi)
> {
> ad_dpot_remove(&spi->dev);
> - return 0;
> }
>
> static const struct spi_device_id ad_dpot_spi_id[] = {
> diff --git a/drivers/misc/eeprom/eeprom_93xx46.c b/drivers/misc/eeprom/eeprom_93xx46.c
> index 1f15399e5cb4..b630625b3024 100644
> --- a/drivers/misc/eeprom/eeprom_93xx46.c
> +++ b/drivers/misc/eeprom/eeprom_93xx46.c
> @@ -555,14 +555,12 @@ static int eeprom_93xx46_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int eeprom_93xx46_remove(struct spi_device *spi)
> +static void eeprom_93xx46_remove(struct spi_device *spi)
> {
> struct eeprom_93xx46_dev *edev = spi_get_drvdata(spi);
>
> if (!(edev->pdata->flags & EE_READONLY))
> device_remove_file(&spi->dev, &dev_attr_erase);
> -
> - return 0;
> }
>
> static struct spi_driver eeprom_93xx46_driver = {
> diff --git a/drivers/misc/lattice-ecp3-config.c b/drivers/misc/lattice-ecp3-config.c
> index 98828030b5a4..bac4df2e5231 100644
> --- a/drivers/misc/lattice-ecp3-config.c
> +++ b/drivers/misc/lattice-ecp3-config.c
> @@ -211,13 +211,11 @@ static int lattice_ecp3_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int lattice_ecp3_remove(struct spi_device *spi)
> +static void lattice_ecp3_remove(struct spi_device *spi)
> {
> struct fpga_data *data = spi_get_drvdata(spi);
>
> wait_for_completion(&data->fw_loaded);
> -
> - return 0;
> }
>
> static const struct spi_device_id lattice_ecp3_id[] = {
> diff --git a/drivers/misc/lis3lv02d/lis3lv02d_spi.c b/drivers/misc/lis3lv02d/lis3lv02d_spi.c
> index 9e40dfb60742..203a108b8883 100644
> --- a/drivers/misc/lis3lv02d/lis3lv02d_spi.c
> +++ b/drivers/misc/lis3lv02d/lis3lv02d_spi.c
> @@ -96,15 +96,13 @@ static int lis302dl_spi_probe(struct spi_device *spi)
> return lis3lv02d_init_device(&lis3_dev);
> }
>
> -static int lis302dl_spi_remove(struct spi_device *spi)
> +static void lis302dl_spi_remove(struct spi_device *spi)
> {
> struct lis3lv02d *lis3 = spi_get_drvdata(spi);
> lis3lv02d_joystick_disable(lis3);
> lis3lv02d_poweroff(lis3);
>
> lis3lv02d_remove_fs(&lis3_dev);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/mmc/host/mmc_spi.c b/drivers/mmc/host/mmc_spi.c
> index a576181e9db0..106dd204b1a7 100644
> --- a/drivers/mmc/host/mmc_spi.c
> +++ b/drivers/mmc/host/mmc_spi.c
> @@ -1489,7 +1489,7 @@ static int mmc_spi_probe(struct spi_device *spi)
> }
>
>
> -static int mmc_spi_remove(struct spi_device *spi)
> +static void mmc_spi_remove(struct spi_device *spi)
> {
> struct mmc_host *mmc = dev_get_drvdata(&spi->dev);
> struct mmc_spi_host *host = mmc_priv(mmc);
> @@ -1507,7 +1507,6 @@ static int mmc_spi_remove(struct spi_device *spi)
> spi->max_speed_hz = mmc->f_max;
> mmc_spi_put_pdata(spi);
> mmc_free_host(mmc);
> - return 0;
> }
>
> static const struct spi_device_id mmc_spi_dev_ids[] = {
> diff --git a/drivers/mtd/devices/mchp23k256.c b/drivers/mtd/devices/mchp23k256.c
> index a8b31bddf14b..008df9d8898d 100644
> --- a/drivers/mtd/devices/mchp23k256.c
> +++ b/drivers/mtd/devices/mchp23k256.c
> @@ -209,13 +209,11 @@ static int mchp23k256_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int mchp23k256_remove(struct spi_device *spi)
> +static void mchp23k256_remove(struct spi_device *spi)
> {
> struct mchp23k256_flash *flash = spi_get_drvdata(spi);
>
> WARN_ON(mtd_device_unregister(&flash->mtd));
> -
> - return 0;
> }
>
> static const struct of_device_id mchp23k256_of_table[] = {
> diff --git a/drivers/mtd/devices/mchp48l640.c b/drivers/mtd/devices/mchp48l640.c
> index 231a10790196..a3fd426df74b 100644
> --- a/drivers/mtd/devices/mchp48l640.c
> +++ b/drivers/mtd/devices/mchp48l640.c
> @@ -341,13 +341,11 @@ static int mchp48l640_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int mchp48l640_remove(struct spi_device *spi)
> +static void mchp48l640_remove(struct spi_device *spi)
> {
> struct mchp48l640_flash *flash = spi_get_drvdata(spi);
>
> WARN_ON(mtd_device_unregister(&flash->mtd));
> -
> - return 0;
> }
>
> static const struct of_device_id mchp48l640_of_table[] = {
> diff --git a/drivers/mtd/devices/mtd_dataflash.c b/drivers/mtd/devices/mtd_dataflash.c
> index 734878abaa23..134e27328597 100644
> --- a/drivers/mtd/devices/mtd_dataflash.c
> +++ b/drivers/mtd/devices/mtd_dataflash.c
> @@ -916,7 +916,7 @@ static int dataflash_probe(struct spi_device *spi)
> return status;
> }
>
> -static int dataflash_remove(struct spi_device *spi)
> +static void dataflash_remove(struct spi_device *spi)
> {
> struct dataflash *flash = spi_get_drvdata(spi);
>
> @@ -925,8 +925,6 @@ static int dataflash_remove(struct spi_device *spi)
> WARN_ON(mtd_device_unregister(&flash->mtd));
>
> kfree(flash);
> -
> - return 0;
> }
>
> static struct spi_driver dataflash_driver = {
> diff --git a/drivers/mtd/devices/sst25l.c b/drivers/mtd/devices/sst25l.c
> index 7f124c1bfa40..8813994ce9f4 100644
> --- a/drivers/mtd/devices/sst25l.c
> +++ b/drivers/mtd/devices/sst25l.c
> @@ -398,13 +398,11 @@ static int sst25l_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int sst25l_remove(struct spi_device *spi)
> +static void sst25l_remove(struct spi_device *spi)
> {
> struct sst25l_flash *flash = spi_get_drvdata(spi);
>
> WARN_ON(mtd_device_unregister(&flash->mtd));
> -
> - return 0;
> }
>
> static struct spi_driver sst25l_driver = {
> diff --git a/drivers/net/can/m_can/tcan4x5x-core.c b/drivers/net/can/m_can/tcan4x5x-core.c
> index 04687b15b250..41645a24384c 100644
> --- a/drivers/net/can/m_can/tcan4x5x-core.c
> +++ b/drivers/net/can/m_can/tcan4x5x-core.c
> @@ -388,7 +388,7 @@ static int tcan4x5x_can_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int tcan4x5x_can_remove(struct spi_device *spi)
> +static void tcan4x5x_can_remove(struct spi_device *spi)
> {
> struct tcan4x5x_priv *priv = spi_get_drvdata(spi);
>
> @@ -397,8 +397,6 @@ static int tcan4x5x_can_remove(struct spi_device *spi)
> tcan4x5x_power_enable(priv->power, 0);
>
> m_can_class_free_dev(priv->cdev.net);
> -
> - return 0;
> }
>
> static const struct of_device_id tcan4x5x_of_match[] = {
> diff --git a/drivers/net/can/spi/hi311x.c b/drivers/net/can/spi/hi311x.c
> index cfcc14fe3e42..664b8f14d7b0 100644
> --- a/drivers/net/can/spi/hi311x.c
> +++ b/drivers/net/can/spi/hi311x.c
> @@ -948,7 +948,7 @@ static int hi3110_can_probe(struct spi_device *spi)
> return dev_err_probe(dev, ret, "Probe failed\n");
> }
>
> -static int hi3110_can_remove(struct spi_device *spi)
> +static void hi3110_can_remove(struct spi_device *spi)
> {
> struct hi3110_priv *priv = spi_get_drvdata(spi);
> struct net_device *net = priv->net;
> @@ -960,8 +960,6 @@ static int hi3110_can_remove(struct spi_device *spi)
> clk_disable_unprepare(priv->clk);
>
> free_candev(net);
> -
> - return 0;
> }
>
> static int __maybe_unused hi3110_can_suspend(struct device *dev)
> diff --git a/drivers/net/can/spi/mcp251x.c b/drivers/net/can/spi/mcp251x.c
> index 025e07cb7439..d23edaf22420 100644
> --- a/drivers/net/can/spi/mcp251x.c
> +++ b/drivers/net/can/spi/mcp251x.c
> @@ -1427,7 +1427,7 @@ static int mcp251x_can_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mcp251x_can_remove(struct spi_device *spi)
> +static void mcp251x_can_remove(struct spi_device *spi)
> {
> struct mcp251x_priv *priv = spi_get_drvdata(spi);
> struct net_device *net = priv->net;
> @@ -1442,8 +1442,6 @@ static int mcp251x_can_remove(struct spi_device *spi)
> clk_disable_unprepare(priv->clk);
>
> free_candev(net);
> -
> - return 0;
> }
>
> static int __maybe_unused mcp251x_can_suspend(struct device *dev)
> diff --git a/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c b/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
> index b5986df6eca0..65c9b31666a6 100644
> --- a/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
> +++ b/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
> @@ -1966,7 +1966,7 @@ static int mcp251xfd_probe(struct spi_device *spi)
> return err;
> }
>
> -static int mcp251xfd_remove(struct spi_device *spi)
> +static void mcp251xfd_remove(struct spi_device *spi)
> {
> struct mcp251xfd_priv *priv = spi_get_drvdata(spi);
> struct net_device *ndev = priv->ndev;
> @@ -1975,8 +1975,6 @@ static int mcp251xfd_remove(struct spi_device *spi)
> mcp251xfd_unregister(priv);
> spi->max_speed_hz = priv->spi_max_speed_hz_orig;
> free_candev(ndev);
> -
> - return 0;
> }
>
> static int __maybe_unused mcp251xfd_runtime_suspend(struct device *device)
> diff --git a/drivers/net/dsa/b53/b53_spi.c b/drivers/net/dsa/b53/b53_spi.c
> index 2b88f03e5252..0e54b2a0c211 100644
> --- a/drivers/net/dsa/b53/b53_spi.c
> +++ b/drivers/net/dsa/b53/b53_spi.c
> @@ -314,7 +314,7 @@ static int b53_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int b53_spi_remove(struct spi_device *spi)
> +static void b53_spi_remove(struct spi_device *spi)
> {
> struct b53_device *dev = spi_get_drvdata(spi);
>
> @@ -322,8 +322,6 @@ static int b53_spi_remove(struct spi_device *spi)
> b53_switch_remove(dev);
>
> spi_set_drvdata(spi, NULL);
> -
> - return 0;
> }
>
> static void b53_spi_shutdown(struct spi_device *spi)
> diff --git a/drivers/net/dsa/microchip/ksz8795_spi.c b/drivers/net/dsa/microchip/ksz8795_spi.c
> index 866767b70d65..673589dc88ab 100644
> --- a/drivers/net/dsa/microchip/ksz8795_spi.c
> +++ b/drivers/net/dsa/microchip/ksz8795_spi.c
> @@ -87,7 +87,7 @@ static int ksz8795_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ksz8795_spi_remove(struct spi_device *spi)
> +static void ksz8795_spi_remove(struct spi_device *spi)
> {
> struct ksz_device *dev = spi_get_drvdata(spi);
>
> @@ -95,8 +95,6 @@ static int ksz8795_spi_remove(struct spi_device *spi)
> ksz_switch_remove(dev);
>
> spi_set_drvdata(spi, NULL);
> -
> - return 0;
> }
>
> static void ksz8795_spi_shutdown(struct spi_device *spi)
> diff --git a/drivers/net/dsa/microchip/ksz9477_spi.c b/drivers/net/dsa/microchip/ksz9477_spi.c
> index e3cb0e6c9f6f..940bb9665f15 100644
> --- a/drivers/net/dsa/microchip/ksz9477_spi.c
> +++ b/drivers/net/dsa/microchip/ksz9477_spi.c
> @@ -65,7 +65,7 @@ static int ksz9477_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ksz9477_spi_remove(struct spi_device *spi)
> +static void ksz9477_spi_remove(struct spi_device *spi)
> {
> struct ksz_device *dev = spi_get_drvdata(spi);
>
> @@ -73,8 +73,6 @@ static int ksz9477_spi_remove(struct spi_device *spi)
> ksz_switch_remove(dev);
>
> spi_set_drvdata(spi, NULL);
> -
> - return 0;
> }
>
> static void ksz9477_spi_shutdown(struct spi_device *spi)
> diff --git a/drivers/net/dsa/sja1105/sja1105_main.c b/drivers/net/dsa/sja1105/sja1105_main.c
> index b513713be610..c2a47c6693b8 100644
> --- a/drivers/net/dsa/sja1105/sja1105_main.c
> +++ b/drivers/net/dsa/sja1105/sja1105_main.c
> @@ -3346,18 +3346,16 @@ static int sja1105_probe(struct spi_device *spi)
> return dsa_register_switch(priv->ds);
> }
>
> -static int sja1105_remove(struct spi_device *spi)
> +static void sja1105_remove(struct spi_device *spi)
> {
> struct sja1105_private *priv = spi_get_drvdata(spi);
>
> if (!priv)
> - return 0;
> + return;
>
> dsa_unregister_switch(priv->ds);
>
> spi_set_drvdata(spi, NULL);
> -
> - return 0;
> }
>
> static void sja1105_shutdown(struct spi_device *spi)
> diff --git a/drivers/net/dsa/vitesse-vsc73xx-spi.c b/drivers/net/dsa/vitesse-vsc73xx-spi.c
> index 645398901e05..3110895358d8 100644
> --- a/drivers/net/dsa/vitesse-vsc73xx-spi.c
> +++ b/drivers/net/dsa/vitesse-vsc73xx-spi.c
> @@ -159,18 +159,16 @@ static int vsc73xx_spi_probe(struct spi_device *spi)
> return vsc73xx_probe(&vsc_spi->vsc);
> }
>
> -static int vsc73xx_spi_remove(struct spi_device *spi)
> +static void vsc73xx_spi_remove(struct spi_device *spi)
> {
> struct vsc73xx_spi *vsc_spi = spi_get_drvdata(spi);
>
> if (!vsc_spi)
> - return 0;
> + return;
>
> vsc73xx_remove(&vsc_spi->vsc);
>
> spi_set_drvdata(spi, NULL);
> -
> - return 0;
> }
>
> static void vsc73xx_spi_shutdown(struct spi_device *spi)
> diff --git a/drivers/net/ethernet/asix/ax88796c_main.c b/drivers/net/ethernet/asix/ax88796c_main.c
> index e7a9f9863258..bf70481bb1ca 100644
> --- a/drivers/net/ethernet/asix/ax88796c_main.c
> +++ b/drivers/net/ethernet/asix/ax88796c_main.c
> @@ -1102,7 +1102,7 @@ static int ax88796c_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ax88796c_remove(struct spi_device *spi)
> +static void ax88796c_remove(struct spi_device *spi)
> {
> struct ax88796c_device *ax_local = dev_get_drvdata(&spi->dev);
> struct net_device *ndev = ax_local->ndev;
> @@ -1112,8 +1112,6 @@ static int ax88796c_remove(struct spi_device *spi)
> netif_info(ax_local, probe, ndev, "removing network device %s %s\n",
> dev_driver_string(&spi->dev),
> dev_name(&spi->dev));
> -
> - return 0;
> }
>
> #ifdef CONFIG_OF
> diff --git a/drivers/net/ethernet/micrel/ks8851_spi.c b/drivers/net/ethernet/micrel/ks8851_spi.c
> index 0303e727e99f..d167d93e4c12 100644
> --- a/drivers/net/ethernet/micrel/ks8851_spi.c
> +++ b/drivers/net/ethernet/micrel/ks8851_spi.c
> @@ -452,11 +452,9 @@ static int ks8851_probe_spi(struct spi_device *spi)
> return ks8851_probe_common(netdev, dev, msg_enable);
> }
>
> -static int ks8851_remove_spi(struct spi_device *spi)
> +static void ks8851_remove_spi(struct spi_device *spi)
> {
> ks8851_remove_common(&spi->dev);
> -
> - return 0;
> }
>
> static const struct of_device_id ks8851_match_table[] = {
> diff --git a/drivers/net/ethernet/microchip/enc28j60.c b/drivers/net/ethernet/microchip/enc28j60.c
> index 634ac7649c43..db5a3edb4c3c 100644
> --- a/drivers/net/ethernet/microchip/enc28j60.c
> +++ b/drivers/net/ethernet/microchip/enc28j60.c
> @@ -1612,15 +1612,13 @@ static int enc28j60_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int enc28j60_remove(struct spi_device *spi)
> +static void enc28j60_remove(struct spi_device *spi)
> {
> struct enc28j60_net *priv = spi_get_drvdata(spi);
>
> unregister_netdev(priv->netdev);
> free_irq(spi->irq, priv);
> free_netdev(priv->netdev);
> -
> - return 0;
> }
>
> static const struct of_device_id enc28j60_dt_ids[] = {
> diff --git a/drivers/net/ethernet/microchip/encx24j600.c b/drivers/net/ethernet/microchip/encx24j600.c
> index b90efc80fb59..dc1840cb5b10 100644
> --- a/drivers/net/ethernet/microchip/encx24j600.c
> +++ b/drivers/net/ethernet/microchip/encx24j600.c
> @@ -1093,7 +1093,7 @@ static int encx24j600_spi_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int encx24j600_spi_remove(struct spi_device *spi)
> +static void encx24j600_spi_remove(struct spi_device *spi)
> {
> struct encx24j600_priv *priv = dev_get_drvdata(&spi->dev);
>
> @@ -1101,8 +1101,6 @@ static int encx24j600_spi_remove(struct spi_device *spi)
> kthread_stop(priv->kworker_task);
>
> free_netdev(priv->ndev);
> -
> - return 0;
> }
>
> static const struct spi_device_id encx24j600_spi_id_table[] = {
> diff --git a/drivers/net/ethernet/qualcomm/qca_spi.c b/drivers/net/ethernet/qualcomm/qca_spi.c
> index 955cce644392..3c5494afd3c0 100644
> --- a/drivers/net/ethernet/qualcomm/qca_spi.c
> +++ b/drivers/net/ethernet/qualcomm/qca_spi.c
> @@ -1001,7 +1001,7 @@ qca_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int
> +static void
> qca_spi_remove(struct spi_device *spi)
> {
> struct net_device *qcaspi_devs = spi_get_drvdata(spi);
> @@ -1011,8 +1011,6 @@ qca_spi_remove(struct spi_device *spi)
>
> unregister_netdev(qcaspi_devs);
> free_netdev(qcaspi_devs);
> -
> - return 0;
> }
>
> static const struct spi_device_id qca_spi_id[] = {
> diff --git a/drivers/net/ethernet/vertexcom/mse102x.c b/drivers/net/ethernet/vertexcom/mse102x.c
> index 89a31783fbb4..25739b182ac7 100644
> --- a/drivers/net/ethernet/vertexcom/mse102x.c
> +++ b/drivers/net/ethernet/vertexcom/mse102x.c
> @@ -731,7 +731,7 @@ static int mse102x_probe_spi(struct spi_device *spi)
> return 0;
> }
>
> -static int mse102x_remove_spi(struct spi_device *spi)
> +static void mse102x_remove_spi(struct spi_device *spi)
> {
> struct mse102x_net *mse = dev_get_drvdata(&spi->dev);
> struct mse102x_net_spi *mses = to_mse102x_spi(mse);
> @@ -741,8 +741,6 @@ static int mse102x_remove_spi(struct spi_device *spi)
>
> mse102x_remove_device_debugfs(mses);
> unregister_netdev(mse->ndev);
> -
> - return 0;
> }
>
> static const struct of_device_id mse102x_match_table[] = {
> diff --git a/drivers/net/ethernet/wiznet/w5100-spi.c b/drivers/net/ethernet/wiznet/w5100-spi.c
> index 7779a36da3c8..7c52796273a4 100644
> --- a/drivers/net/ethernet/wiznet/w5100-spi.c
> +++ b/drivers/net/ethernet/wiznet/w5100-spi.c
> @@ -461,11 +461,9 @@ static int w5100_spi_probe(struct spi_device *spi)
> return w5100_probe(&spi->dev, ops, priv_size, mac, spi->irq, -EINVAL);
> }
>
> -static int w5100_spi_remove(struct spi_device *spi)
> +static void w5100_spi_remove(struct spi_device *spi)
> {
> w5100_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id w5100_spi_ids[] = {
> diff --git a/drivers/net/ieee802154/adf7242.c b/drivers/net/ieee802154/adf7242.c
> index 7db9cbd0f5de..6afdf1622944 100644
> --- a/drivers/net/ieee802154/adf7242.c
> +++ b/drivers/net/ieee802154/adf7242.c
> @@ -1304,7 +1304,7 @@ static int adf7242_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int adf7242_remove(struct spi_device *spi)
> +static void adf7242_remove(struct spi_device *spi)
> {
> struct adf7242_local *lp = spi_get_drvdata(spi);
>
> @@ -1316,8 +1316,6 @@ static int adf7242_remove(struct spi_device *spi)
> ieee802154_unregister_hw(lp->hw);
> mutex_destroy(&lp->bmux);
> ieee802154_free_hw(lp->hw);
> -
> - return 0;
> }
>
> static const struct of_device_id adf7242_of_match[] = {
> diff --git a/drivers/net/ieee802154/at86rf230.c b/drivers/net/ieee802154/at86rf230.c
> index 7d67f41387f5..a4734323dc29 100644
> --- a/drivers/net/ieee802154/at86rf230.c
> +++ b/drivers/net/ieee802154/at86rf230.c
> @@ -1759,7 +1759,7 @@ static int at86rf230_probe(struct spi_device *spi)
> return rc;
> }
>
> -static int at86rf230_remove(struct spi_device *spi)
> +static void at86rf230_remove(struct spi_device *spi)
> {
> struct at86rf230_local *lp = spi_get_drvdata(spi);
>
> @@ -1769,8 +1769,6 @@ static int at86rf230_remove(struct spi_device *spi)
> ieee802154_free_hw(lp->hw);
> at86rf230_debugfs_remove();
> dev_dbg(&spi->dev, "unregistered at86rf230\n");
> -
> - return 0;
> }
>
> static const struct of_device_id at86rf230_of_match[] = {
> diff --git a/drivers/net/ieee802154/ca8210.c b/drivers/net/ieee802154/ca8210.c
> index ece6ff6049f6..b499bbe4d48f 100644
> --- a/drivers/net/ieee802154/ca8210.c
> +++ b/drivers/net/ieee802154/ca8210.c
> @@ -831,7 +831,7 @@ static void ca8210_rx_done(struct cas_control *cas_ctl)
> finish:;
> }
>
> -static int ca8210_remove(struct spi_device *spi_device);
> +static void ca8210_remove(struct spi_device *spi_device);
>
> /**
> * ca8210_spi_transfer_complete() - Called when a single spi transfer has
> @@ -3048,7 +3048,7 @@ static void ca8210_test_interface_clear(struct ca8210_priv *priv)
> *
> * Return: 0 or linux error code
> */
> -static int ca8210_remove(struct spi_device *spi_device)
> +static void ca8210_remove(struct spi_device *spi_device)
> {
> struct ca8210_priv *priv;
> struct ca8210_platform_data *pdata;
> @@ -3088,8 +3088,6 @@ static int ca8210_remove(struct spi_device *spi_device)
> if (IS_ENABLED(CONFIG_IEEE802154_CA8210_DEBUGFS))
> ca8210_test_interface_clear(priv);
> }
> -
> - return 0;
> }
>
> /**
> diff --git a/drivers/net/ieee802154/cc2520.c b/drivers/net/ieee802154/cc2520.c
> index 89c046b204e0..1e1f40f628a0 100644
> --- a/drivers/net/ieee802154/cc2520.c
> +++ b/drivers/net/ieee802154/cc2520.c
> @@ -1213,7 +1213,7 @@ static int cc2520_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int cc2520_remove(struct spi_device *spi)
> +static void cc2520_remove(struct spi_device *spi)
> {
> struct cc2520_private *priv = spi_get_drvdata(spi);
>
> @@ -1222,8 +1222,6 @@ static int cc2520_remove(struct spi_device *spi)
>
> ieee802154_unregister_hw(priv->hw);
> ieee802154_free_hw(priv->hw);
> -
> - return 0;
> }
>
> static const struct spi_device_id cc2520_ids[] = {
> diff --git a/drivers/net/ieee802154/mcr20a.c b/drivers/net/ieee802154/mcr20a.c
> index 8dc04e2590b1..a3af52a8e6dd 100644
> --- a/drivers/net/ieee802154/mcr20a.c
> +++ b/drivers/net/ieee802154/mcr20a.c
> @@ -1335,7 +1335,7 @@ mcr20a_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mcr20a_remove(struct spi_device *spi)
> +static void mcr20a_remove(struct spi_device *spi)
> {
> struct mcr20a_local *lp = spi_get_drvdata(spi);
>
> @@ -1343,8 +1343,6 @@ static int mcr20a_remove(struct spi_device *spi)
>
> ieee802154_unregister_hw(lp->hw);
> ieee802154_free_hw(lp->hw);
> -
> - return 0;
> }
>
> static const struct of_device_id mcr20a_of_match[] = {
> diff --git a/drivers/net/ieee802154/mrf24j40.c b/drivers/net/ieee802154/mrf24j40.c
> index ff83e00b77af..ee4cfbf2c5cc 100644
> --- a/drivers/net/ieee802154/mrf24j40.c
> +++ b/drivers/net/ieee802154/mrf24j40.c
> @@ -1356,7 +1356,7 @@ static int mrf24j40_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mrf24j40_remove(struct spi_device *spi)
> +static void mrf24j40_remove(struct spi_device *spi)
> {
> struct mrf24j40 *devrec = spi_get_drvdata(spi);
>
> @@ -1366,8 +1366,6 @@ static int mrf24j40_remove(struct spi_device *spi)
> ieee802154_free_hw(devrec->hw);
> /* TODO: Will ieee802154_free_device() wait until ->xmit() is
> * complete? */
> -
> - return 0;
> }
>
> static const struct of_device_id mrf24j40_of_match[] = {
> diff --git a/drivers/net/phy/spi_ks8995.c b/drivers/net/phy/spi_ks8995.c
> index 8b5445a724ce..ff37f8ba6758 100644
> --- a/drivers/net/phy/spi_ks8995.c
> +++ b/drivers/net/phy/spi_ks8995.c
> @@ -517,7 +517,7 @@ static int ks8995_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ks8995_remove(struct spi_device *spi)
> +static void ks8995_remove(struct spi_device *spi)
> {
> struct ks8995_switch *ks = spi_get_drvdata(spi);
>
> @@ -526,8 +526,6 @@ static int ks8995_remove(struct spi_device *spi)
> /* assert reset */
> if (ks->pdata && gpio_is_valid(ks->pdata->reset_gpio))
> gpiod_set_value(gpio_to_desc(ks->pdata->reset_gpio), 1);
> -
> - return 0;
> }
>
> /* ------------------------------------------------------------------------ */
> diff --git a/drivers/net/wan/slic_ds26522.c b/drivers/net/wan/slic_ds26522.c
> index 8e3b1c717c10..6063552cea9b 100644
> --- a/drivers/net/wan/slic_ds26522.c
> +++ b/drivers/net/wan/slic_ds26522.c
> @@ -194,10 +194,9 @@ static int slic_ds26522_init_configure(struct spi_device *spi)
> return 0;
> }
>
> -static int slic_ds26522_remove(struct spi_device *spi)
> +static void slic_ds26522_remove(struct spi_device *spi)
> {
> pr_info("DS26522 module uninstalled\n");
> - return 0;
> }
>
> static int slic_ds26522_probe(struct spi_device *spi)
> diff --git a/drivers/net/wireless/intersil/p54/p54spi.c b/drivers/net/wireless/intersil/p54/p54spi.c
> index ab0fe8565851..f99b7ba69fc3 100644
> --- a/drivers/net/wireless/intersil/p54/p54spi.c
> +++ b/drivers/net/wireless/intersil/p54/p54spi.c
> @@ -669,7 +669,7 @@ static int p54spi_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int p54spi_remove(struct spi_device *spi)
> +static void p54spi_remove(struct spi_device *spi)
> {
> struct p54s_priv *priv = spi_get_drvdata(spi);
>
> @@ -684,8 +684,6 @@ static int p54spi_remove(struct spi_device *spi)
> mutex_destroy(&priv->mutex);
>
> p54_free_common(priv->hw);
> -
> - return 0;
> }
>
>
> diff --git a/drivers/net/wireless/marvell/libertas/if_spi.c b/drivers/net/wireless/marvell/libertas/if_spi.c
> index cd9f8ecf171f..ff1c7ec8c450 100644
> --- a/drivers/net/wireless/marvell/libertas/if_spi.c
> +++ b/drivers/net/wireless/marvell/libertas/if_spi.c
> @@ -1195,7 +1195,7 @@ static int if_spi_probe(struct spi_device *spi)
> return err;
> }
>
> -static int libertas_spi_remove(struct spi_device *spi)
> +static void libertas_spi_remove(struct spi_device *spi)
> {
> struct if_spi_card *card = spi_get_drvdata(spi);
> struct lbs_private *priv = card->priv;
> @@ -1212,8 +1212,6 @@ static int libertas_spi_remove(struct spi_device *spi)
> if (card->pdata->teardown)
> card->pdata->teardown(spi);
> free_if_spi_card(card);
> -
> - return 0;
> }
>
> static int if_spi_suspend(struct device *dev)
> diff --git a/drivers/net/wireless/microchip/wilc1000/spi.c b/drivers/net/wireless/microchip/wilc1000/spi.c
> index 2c2ed4b09efd..d2db52289399 100644
> --- a/drivers/net/wireless/microchip/wilc1000/spi.c
> +++ b/drivers/net/wireless/microchip/wilc1000/spi.c
> @@ -240,7 +240,7 @@ static int wilc_bus_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int wilc_bus_remove(struct spi_device *spi)
> +static void wilc_bus_remove(struct spi_device *spi)
> {
> struct wilc *wilc = spi_get_drvdata(spi);
> struct wilc_spi *spi_priv = wilc->bus_data;
> @@ -248,8 +248,6 @@ static int wilc_bus_remove(struct spi_device *spi)
> clk_disable_unprepare(wilc->rtc_clk);
> wilc_netdev_cleanup(wilc);
> kfree(spi_priv);
> -
> - return 0;
> }
>
> static const struct of_device_id wilc_of_match[] = {
> diff --git a/drivers/net/wireless/st/cw1200/cw1200_spi.c b/drivers/net/wireless/st/cw1200/cw1200_spi.c
> index 271ed2ce2d7f..fe0d220da44d 100644
> --- a/drivers/net/wireless/st/cw1200/cw1200_spi.c
> +++ b/drivers/net/wireless/st/cw1200/cw1200_spi.c
> @@ -423,7 +423,7 @@ static int cw1200_spi_probe(struct spi_device *func)
> }
>
> /* Disconnect Function to be called by SPI stack when device is disconnected */
> -static int cw1200_spi_disconnect(struct spi_device *func)
> +static void cw1200_spi_disconnect(struct spi_device *func)
> {
> struct hwbus_priv *self = spi_get_drvdata(func);
>
> @@ -435,8 +435,6 @@ static int cw1200_spi_disconnect(struct spi_device *func)
> }
> }
> cw1200_spi_off(dev_get_platdata(&func->dev));
> -
> - return 0;
> }
>
> static int __maybe_unused cw1200_spi_suspend(struct device *dev)
> diff --git a/drivers/net/wireless/ti/wl1251/spi.c b/drivers/net/wireless/ti/wl1251/spi.c
> index 5b894bd6237e..9df38726e8b0 100644
> --- a/drivers/net/wireless/ti/wl1251/spi.c
> +++ b/drivers/net/wireless/ti/wl1251/spi.c
> @@ -327,14 +327,12 @@ static int wl1251_spi_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int wl1251_spi_remove(struct spi_device *spi)
> +static void wl1251_spi_remove(struct spi_device *spi)
> {
> struct wl1251 *wl = spi_get_drvdata(spi);
>
> wl1251_free_hw(wl);
> regulator_disable(wl->vio);
> -
> - return 0;
> }
>
> static struct spi_driver wl1251_spi_driver = {
> diff --git a/drivers/net/wireless/ti/wlcore/spi.c b/drivers/net/wireless/ti/wlcore/spi.c
> index 354a7e1c3315..7eae1ec2eb2b 100644
> --- a/drivers/net/wireless/ti/wlcore/spi.c
> +++ b/drivers/net/wireless/ti/wlcore/spi.c
> @@ -546,13 +546,11 @@ static int wl1271_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int wl1271_remove(struct spi_device *spi)
> +static void wl1271_remove(struct spi_device *spi)
> {
> struct wl12xx_spi_glue *glue = spi_get_drvdata(spi);
>
> platform_device_unregister(glue->core);
> -
> - return 0;
> }
>
> static struct spi_driver wl1271_spi_driver = {
> diff --git a/drivers/nfc/nfcmrvl/spi.c b/drivers/nfc/nfcmrvl/spi.c
> index 5b833a9a83f8..a38e2fcdfd39 100644
> --- a/drivers/nfc/nfcmrvl/spi.c
> +++ b/drivers/nfc/nfcmrvl/spi.c
> @@ -174,12 +174,11 @@ static int nfcmrvl_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int nfcmrvl_spi_remove(struct spi_device *spi)
> +static void nfcmrvl_spi_remove(struct spi_device *spi)
> {
> struct nfcmrvl_spi_drv_data *drv_data = spi_get_drvdata(spi);
>
> nfcmrvl_nci_unregister_dev(drv_data->priv);
> - return 0;
> }
>
> static const struct of_device_id of_nfcmrvl_spi_match[] __maybe_unused = {
> diff --git a/drivers/nfc/st-nci/spi.c b/drivers/nfc/st-nci/spi.c
> index 4e723992e74c..169eacc0a32a 100644
> --- a/drivers/nfc/st-nci/spi.c
> +++ b/drivers/nfc/st-nci/spi.c
> @@ -263,13 +263,11 @@ static int st_nci_spi_probe(struct spi_device *dev)
> return r;
> }
>
> -static int st_nci_spi_remove(struct spi_device *dev)
> +static void st_nci_spi_remove(struct spi_device *dev)
> {
> struct st_nci_spi_phy *phy = spi_get_drvdata(dev);
>
> ndlc_remove(phy->ndlc);
> -
> - return 0;
> }
>
> static struct spi_device_id st_nci_spi_id_table[] = {
> diff --git a/drivers/nfc/st95hf/core.c b/drivers/nfc/st95hf/core.c
> index b23f47936473..ed704bb77226 100644
> --- a/drivers/nfc/st95hf/core.c
> +++ b/drivers/nfc/st95hf/core.c
> @@ -1198,7 +1198,7 @@ static int st95hf_probe(struct spi_device *nfc_spi_dev)
> return ret;
> }
>
> -static int st95hf_remove(struct spi_device *nfc_spi_dev)
> +static void st95hf_remove(struct spi_device *nfc_spi_dev)
> {
> int result = 0;
> unsigned char reset_cmd = ST95HF_COMMAND_RESET;
> @@ -1236,8 +1236,6 @@ static int st95hf_remove(struct spi_device *nfc_spi_dev)
> /* disable regulator */
> if (stcontext->st95hf_supply)
> regulator_disable(stcontext->st95hf_supply);
> -
> - return 0;
> }
>
> /* Register as SPI protocol driver */
> diff --git a/drivers/nfc/trf7970a.c b/drivers/nfc/trf7970a.c
> index 29ca9c328df2..21d68664fe08 100644
> --- a/drivers/nfc/trf7970a.c
> +++ b/drivers/nfc/trf7970a.c
> @@ -2144,7 +2144,7 @@ static int trf7970a_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int trf7970a_remove(struct spi_device *spi)
> +static void trf7970a_remove(struct spi_device *spi)
> {
> struct trf7970a *trf = spi_get_drvdata(spi);
>
> @@ -2160,8 +2160,6 @@ static int trf7970a_remove(struct spi_device *spi)
> regulator_disable(trf->regulator);
>
> mutex_destroy(&trf->lock);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/platform/chrome/cros_ec_spi.c b/drivers/platform/chrome/cros_ec_spi.c
> index 713c58687721..8493af0f680e 100644
> --- a/drivers/platform/chrome/cros_ec_spi.c
> +++ b/drivers/platform/chrome/cros_ec_spi.c
> @@ -786,13 +786,11 @@ static int cros_ec_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int cros_ec_spi_remove(struct spi_device *spi)
> +static void cros_ec_spi_remove(struct spi_device *spi)
> {
> struct cros_ec_device *ec_dev = spi_get_drvdata(spi);
>
> cros_ec_unregister(ec_dev);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/platform/olpc/olpc-xo175-ec.c b/drivers/platform/olpc/olpc-xo175-ec.c
> index 0d46706afd2d..4823bd2819f6 100644
> --- a/drivers/platform/olpc/olpc-xo175-ec.c
> +++ b/drivers/platform/olpc/olpc-xo175-ec.c
> @@ -648,7 +648,7 @@ static struct olpc_ec_driver olpc_xo175_ec_driver = {
> .ec_cmd = olpc_xo175_ec_cmd,
> };
>
> -static int olpc_xo175_ec_remove(struct spi_device *spi)
> +static void olpc_xo175_ec_remove(struct spi_device *spi)
> {
> if (pm_power_off == olpc_xo175_ec_power_off)
> pm_power_off = NULL;
> @@ -657,8 +657,6 @@ static int olpc_xo175_ec_remove(struct spi_device *spi)
>
> platform_device_unregister(olpc_ec);
> olpc_ec = NULL;
> -
> - return 0;
> }
>
> static int olpc_xo175_ec_probe(struct spi_device *spi)
> diff --git a/drivers/rtc/rtc-ds1302.c b/drivers/rtc/rtc-ds1302.c
> index 2f83adef966e..6d66ab5a8b17 100644
> --- a/drivers/rtc/rtc-ds1302.c
> +++ b/drivers/rtc/rtc-ds1302.c
> @@ -185,10 +185,9 @@ static int ds1302_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ds1302_remove(struct spi_device *spi)
> +static void ds1302_remove(struct spi_device *spi)
> {
> spi_set_drvdata(spi, NULL);
> - return 0;
> }
>
> #ifdef CONFIG_OF
> diff --git a/drivers/rtc/rtc-ds1305.c b/drivers/rtc/rtc-ds1305.c
> index 9ef107b99b65..ed9360486953 100644
> --- a/drivers/rtc/rtc-ds1305.c
> +++ b/drivers/rtc/rtc-ds1305.c
> @@ -720,7 +720,7 @@ static int ds1305_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ds1305_remove(struct spi_device *spi)
> +static void ds1305_remove(struct spi_device *spi)
> {
> struct ds1305 *ds1305 = spi_get_drvdata(spi);
>
> @@ -730,8 +730,6 @@ static int ds1305_remove(struct spi_device *spi)
> devm_free_irq(&spi->dev, spi->irq, ds1305);
> cancel_work_sync(&ds1305->work);
> }
> -
> - return 0;
> }
>
> static struct spi_driver ds1305_driver = {
> diff --git a/drivers/rtc/rtc-ds1343.c b/drivers/rtc/rtc-ds1343.c
> index f14ed6c96437..ed5a6ba89a3e 100644
> --- a/drivers/rtc/rtc-ds1343.c
> +++ b/drivers/rtc/rtc-ds1343.c
> @@ -434,11 +434,9 @@ static int ds1343_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ds1343_remove(struct spi_device *spi)
> +static void ds1343_remove(struct spi_device *spi)
> {
> dev_pm_clear_wake_irq(&spi->dev);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/spi/spi-mem.c b/drivers/spi/spi-mem.c
> index 37f4443ce9a0..e9d83d65873b 100644
> --- a/drivers/spi/spi-mem.c
> +++ b/drivers/spi/spi-mem.c
> @@ -854,15 +854,13 @@ static int spi_mem_probe(struct spi_device *spi)
> return memdrv->probe(mem);
> }
>
> -static int spi_mem_remove(struct spi_device *spi)
> +static void spi_mem_remove(struct spi_device *spi)
> {
> struct spi_mem_driver *memdrv = to_spi_mem_drv(spi->dev.driver);
> struct spi_mem *mem = spi_get_drvdata(spi);
>
> if (memdrv->remove)
> - return memdrv->remove(mem);
> -
> - return 0;
> + memdrv->remove(mem);
> }
>
> static void spi_mem_shutdown(struct spi_device *spi)
> diff --git a/drivers/spi/spi-slave-system-control.c b/drivers/spi/spi-slave-system-control.c
> index 169f3d595f60..d37cfe995a63 100644
> --- a/drivers/spi/spi-slave-system-control.c
> +++ b/drivers/spi/spi-slave-system-control.c
> @@ -132,13 +132,12 @@ static int spi_slave_system_control_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int spi_slave_system_control_remove(struct spi_device *spi)
> +static void spi_slave_system_control_remove(struct spi_device *spi)
> {
> struct spi_slave_system_control_priv *priv = spi_get_drvdata(spi);
>
> spi_slave_abort(spi);
> wait_for_completion(&priv->finished);
> - return 0;
> }
>
> static struct spi_driver spi_slave_system_control_driver = {
> diff --git a/drivers/spi/spi-slave-time.c b/drivers/spi/spi-slave-time.c
> index f2e07a392d68..f56c1afb8534 100644
> --- a/drivers/spi/spi-slave-time.c
> +++ b/drivers/spi/spi-slave-time.c
> @@ -106,13 +106,12 @@ static int spi_slave_time_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int spi_slave_time_remove(struct spi_device *spi)
> +static void spi_slave_time_remove(struct spi_device *spi)
> {
> struct spi_slave_time_priv *priv = spi_get_drvdata(spi);
>
> spi_slave_abort(spi);
> wait_for_completion(&priv->finished);
> - return 0;
> }
>
> static struct spi_driver spi_slave_time_driver = {
> diff --git a/drivers/spi/spi-tle62x0.c b/drivers/spi/spi-tle62x0.c
> index f8ad0709d015..a565352f6381 100644
> --- a/drivers/spi/spi-tle62x0.c
> +++ b/drivers/spi/spi-tle62x0.c
> @@ -288,7 +288,7 @@ static int tle62x0_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int tle62x0_remove(struct spi_device *spi)
> +static void tle62x0_remove(struct spi_device *spi)
> {
> struct tle62x0_state *st = spi_get_drvdata(spi);
> int ptr;
> @@ -298,7 +298,6 @@ static int tle62x0_remove(struct spi_device *spi)
>
> device_remove_file(&spi->dev, &dev_attr_status_show);
> kfree(st);
> - return 0;
> }
>
> static struct spi_driver tle62x0_driver = {
> diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
> index 4599b121d744..ead9a132dcb9 100644
> --- a/drivers/spi/spi.c
> +++ b/drivers/spi/spi.c
> @@ -404,15 +404,8 @@ static void spi_remove(struct device *dev)
> {
> const struct spi_driver *sdrv = to_spi_driver(dev->driver);
>
> - if (sdrv->remove) {
> - int ret;
> -
> - ret = sdrv->remove(to_spi_device(dev));
> - if (ret)
> - dev_warn(dev,
> - "Failed to unbind driver (%pe), ignoring\n",
> - ERR_PTR(ret));
> - }
> + if (sdrv->remove)
> + sdrv->remove(to_spi_device(dev));
>
> dev_pm_domain_detach(dev, true);
> }
> diff --git a/drivers/spi/spidev.c b/drivers/spi/spidev.c
> index a5cceca8b82b..9468f74308bd 100644
> --- a/drivers/spi/spidev.c
> +++ b/drivers/spi/spidev.c
> @@ -803,7 +803,7 @@ static int spidev_probe(struct spi_device *spi)
> return status;
> }
>
> -static int spidev_remove(struct spi_device *spi)
> +static void spidev_remove(struct spi_device *spi)
> {
> struct spidev_data *spidev = spi_get_drvdata(spi);
>
> @@ -820,8 +820,6 @@ static int spidev_remove(struct spi_device *spi)
> if (spidev->users == 0)
> kfree(spidev);
> mutex_unlock(&device_list_lock);
> -
> - return 0;
> }
>
> static struct spi_driver spidev_spi_driver = {
> diff --git a/drivers/staging/fbtft/fbtft.h b/drivers/staging/fbtft/fbtft.h
> index 6a7545b5bcd2..b68f5f9b7c78 100644
> --- a/drivers/staging/fbtft/fbtft.h
> +++ b/drivers/staging/fbtft/fbtft.h
> @@ -286,12 +286,11 @@ static int fbtft_driver_probe_spi(struct spi_device *spi) \
> return fbtft_probe_common(_display, spi, NULL); \
> } \
> \
> -static int fbtft_driver_remove_spi(struct spi_device *spi) \
> +static void fbtft_driver_remove_spi(struct spi_device *spi) \
> { \
> struct fb_info *info = spi_get_drvdata(spi); \
> \
> fbtft_remove_common(&spi->dev, info); \
> - return 0; \
> } \
> \
> static struct spi_driver fbtft_driver_spi_driver = { \
> diff --git a/drivers/staging/pi433/pi433_if.c b/drivers/staging/pi433/pi433_if.c
> index 68c09fa016ed..1d31c35875e3 100644
> --- a/drivers/staging/pi433/pi433_if.c
> +++ b/drivers/staging/pi433/pi433_if.c
> @@ -1264,7 +1264,7 @@ static int pi433_probe(struct spi_device *spi)
> return retval;
> }
>
> -static int pi433_remove(struct spi_device *spi)
> +static void pi433_remove(struct spi_device *spi)
> {
> struct pi433_device *device = spi_get_drvdata(spi);
>
> @@ -1284,8 +1284,6 @@ static int pi433_remove(struct spi_device *spi)
>
> kfree(device->rx_buffer);
> kfree(device);
> -
> - return 0;
> }
>
> static const struct of_device_id pi433_dt_ids[] = {
> diff --git a/drivers/staging/wfx/bus_spi.c b/drivers/staging/wfx/bus_spi.c
> index 55ffcd7c42e2..fa0ff66a457d 100644
> --- a/drivers/staging/wfx/bus_spi.c
> +++ b/drivers/staging/wfx/bus_spi.c
> @@ -232,12 +232,11 @@ static int wfx_spi_probe(struct spi_device *func)
> return wfx_probe(bus->core);
> }
>
> -static int wfx_spi_remove(struct spi_device *func)
> +static void wfx_spi_remove(struct spi_device *func)
> {
> struct wfx_spi_priv *bus = spi_get_drvdata(func);
>
> wfx_release(bus->core);
> - return 0;
> }
>
> /* For dynamic driver binding, kernel does not use OF to match driver. It only
> diff --git a/drivers/tty/serial/max3100.c b/drivers/tty/serial/max3100.c
> index 3c92d4e01488..516cff362434 100644
> --- a/drivers/tty/serial/max3100.c
> +++ b/drivers/tty/serial/max3100.c
> @@ -805,7 +805,7 @@ static int max3100_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int max3100_remove(struct spi_device *spi)
> +static void max3100_remove(struct spi_device *spi)
> {
> struct max3100_port *s = spi_get_drvdata(spi);
> int i;
> @@ -828,13 +828,12 @@ static int max3100_remove(struct spi_device *spi)
> for (i = 0; i < MAX_MAX3100; i++)
> if (max3100s[i]) {
> mutex_unlock(&max3100s_lock);
> - return 0;
> + return;
> }
> pr_debug("removing max3100 driver\n");
> uart_unregister_driver(&max3100_uart_driver);
>
> mutex_unlock(&max3100s_lock);
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/tty/serial/max310x.c b/drivers/tty/serial/max310x.c
> index dde0824b2fa5..3112b4a05448 100644
> --- a/drivers/tty/serial/max310x.c
> +++ b/drivers/tty/serial/max310x.c
> @@ -1487,10 +1487,9 @@ static int max310x_spi_probe(struct spi_device *spi)
> return max310x_probe(&spi->dev, devtype, regmap, spi->irq);
> }
>
> -static int max310x_spi_remove(struct spi_device *spi)
> +static void max310x_spi_remove(struct spi_device *spi)
> {
> max310x_remove(&spi->dev);
> - return 0;
> }
>
> static const struct spi_device_id max310x_id_table[] = {
> diff --git a/drivers/tty/serial/sc16is7xx.c b/drivers/tty/serial/sc16is7xx.c
> index 64e7e6c8145f..25d67b8c4db7 100644
> --- a/drivers/tty/serial/sc16is7xx.c
> +++ b/drivers/tty/serial/sc16is7xx.c
> @@ -1440,11 +1440,9 @@ static int sc16is7xx_spi_probe(struct spi_device *spi)
> return sc16is7xx_probe(&spi->dev, devtype, regmap, spi->irq);
> }
>
> -static int sc16is7xx_spi_remove(struct spi_device *spi)
> +static void sc16is7xx_spi_remove(struct spi_device *spi)
> {
> sc16is7xx_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id sc16is7xx_spi_id_table[] = {
> diff --git a/drivers/usb/gadget/udc/max3420_udc.c b/drivers/usb/gadget/udc/max3420_udc.c
> index d2a2b20cc1ad..7d9bd16190c0 100644
> --- a/drivers/usb/gadget/udc/max3420_udc.c
> +++ b/drivers/usb/gadget/udc/max3420_udc.c
> @@ -1292,7 +1292,7 @@ static int max3420_probe(struct spi_device *spi)
> return err;
> }
>
> -static int max3420_remove(struct spi_device *spi)
> +static void max3420_remove(struct spi_device *spi)
> {
> struct max3420_udc *udc = spi_get_drvdata(spi);
> unsigned long flags;
> @@ -1304,8 +1304,6 @@ static int max3420_remove(struct spi_device *spi)
> kthread_stop(udc->thread_task);
>
> spin_unlock_irqrestore(&udc->lock, flags);
> -
> - return 0;
> }
>
> static const struct of_device_id max3420_udc_of_match[] = {
> diff --git a/drivers/usb/host/max3421-hcd.c b/drivers/usb/host/max3421-hcd.c
> index 30de85a707fe..99a5523a79fb 100644
> --- a/drivers/usb/host/max3421-hcd.c
> +++ b/drivers/usb/host/max3421-hcd.c
> @@ -1926,7 +1926,7 @@ max3421_probe(struct spi_device *spi)
> return retval;
> }
>
> -static int
> +static void
> max3421_remove(struct spi_device *spi)
> {
> struct max3421_hcd *max3421_hcd;
> @@ -1947,7 +1947,6 @@ max3421_remove(struct spi_device *spi)
> free_irq(spi->irq, hcd);
>
> usb_put_hcd(hcd);
> - return 0;
> }
>
> static const struct of_device_id max3421_of_match_table[] = {
> diff --git a/drivers/video/backlight/ams369fg06.c b/drivers/video/backlight/ams369fg06.c
> index 8a4361e95a11..522dd81110b8 100644
> --- a/drivers/video/backlight/ams369fg06.c
> +++ b/drivers/video/backlight/ams369fg06.c
> @@ -506,12 +506,11 @@ static int ams369fg06_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ams369fg06_remove(struct spi_device *spi)
> +static void ams369fg06_remove(struct spi_device *spi)
> {
> struct ams369fg06 *lcd = spi_get_drvdata(spi);
>
> ams369fg06_power(lcd, FB_BLANK_POWERDOWN);
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/video/backlight/corgi_lcd.c b/drivers/video/backlight/corgi_lcd.c
> index 33f5d80495e6..0a57033ae31d 100644
> --- a/drivers/video/backlight/corgi_lcd.c
> +++ b/drivers/video/backlight/corgi_lcd.c
> @@ -542,7 +542,7 @@ static int corgi_lcd_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int corgi_lcd_remove(struct spi_device *spi)
> +static void corgi_lcd_remove(struct spi_device *spi)
> {
> struct corgi_lcd *lcd = spi_get_drvdata(spi);
>
> @@ -550,7 +550,6 @@ static int corgi_lcd_remove(struct spi_device *spi)
> lcd->bl_dev->props.brightness = 0;
> backlight_update_status(lcd->bl_dev);
> corgi_lcd_set_power(lcd->lcd_dev, FB_BLANK_POWERDOWN);
> - return 0;
> }
>
> static struct spi_driver corgi_lcd_driver = {
> diff --git a/drivers/video/backlight/ili922x.c b/drivers/video/backlight/ili922x.c
> index 328aba9cddad..e7b6bd827986 100644
> --- a/drivers/video/backlight/ili922x.c
> +++ b/drivers/video/backlight/ili922x.c
> @@ -526,10 +526,9 @@ static int ili922x_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ili922x_remove(struct spi_device *spi)
> +static void ili922x_remove(struct spi_device *spi)
> {
> ili922x_poweroff(spi);
> - return 0;
> }
>
> static struct spi_driver ili922x_driver = {
> diff --git a/drivers/video/backlight/l4f00242t03.c b/drivers/video/backlight/l4f00242t03.c
> index 46f97d1c3d21..cc763cf15f53 100644
> --- a/drivers/video/backlight/l4f00242t03.c
> +++ b/drivers/video/backlight/l4f00242t03.c
> @@ -223,12 +223,11 @@ static int l4f00242t03_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int l4f00242t03_remove(struct spi_device *spi)
> +static void l4f00242t03_remove(struct spi_device *spi)
> {
> struct l4f00242t03_priv *priv = spi_get_drvdata(spi);
>
> l4f00242t03_lcd_power_set(priv->ld, FB_BLANK_POWERDOWN);
> - return 0;
> }
>
> static void l4f00242t03_shutdown(struct spi_device *spi)
> diff --git a/drivers/video/backlight/lms501kf03.c b/drivers/video/backlight/lms501kf03.c
> index f949b66dce1b..5c46df8022bf 100644
> --- a/drivers/video/backlight/lms501kf03.c
> +++ b/drivers/video/backlight/lms501kf03.c
> @@ -364,12 +364,11 @@ static int lms501kf03_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int lms501kf03_remove(struct spi_device *spi)
> +static void lms501kf03_remove(struct spi_device *spi)
> {
> struct lms501kf03 *lcd = spi_get_drvdata(spi);
>
> lms501kf03_power(lcd, FB_BLANK_POWERDOWN);
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/video/backlight/ltv350qv.c b/drivers/video/backlight/ltv350qv.c
> index 5cbf621e48bd..b6d373af6e3f 100644
> --- a/drivers/video/backlight/ltv350qv.c
> +++ b/drivers/video/backlight/ltv350qv.c
> @@ -255,12 +255,11 @@ static int ltv350qv_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ltv350qv_remove(struct spi_device *spi)
> +static void ltv350qv_remove(struct spi_device *spi)
> {
> struct ltv350qv *lcd = spi_get_drvdata(spi);
>
> ltv350qv_power(lcd, FB_BLANK_POWERDOWN);
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/video/backlight/tdo24m.c b/drivers/video/backlight/tdo24m.c
> index 0de044dcafd5..fc6fbaf85594 100644
> --- a/drivers/video/backlight/tdo24m.c
> +++ b/drivers/video/backlight/tdo24m.c
> @@ -397,12 +397,11 @@ static int tdo24m_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int tdo24m_remove(struct spi_device *spi)
> +static void tdo24m_remove(struct spi_device *spi)
> {
> struct tdo24m *lcd = spi_get_drvdata(spi);
>
> tdo24m_power(lcd, FB_BLANK_POWERDOWN);
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/video/backlight/tosa_lcd.c b/drivers/video/backlight/tosa_lcd.c
> index 38765544345b..23d6c6bf0f54 100644
> --- a/drivers/video/backlight/tosa_lcd.c
> +++ b/drivers/video/backlight/tosa_lcd.c
> @@ -232,15 +232,13 @@ static int tosa_lcd_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int tosa_lcd_remove(struct spi_device *spi)
> +static void tosa_lcd_remove(struct spi_device *spi)
> {
> struct tosa_lcd_data *data = spi_get_drvdata(spi);
>
> i2c_unregister_device(data->i2c);
>
> tosa_lcd_tg_off(data);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/video/backlight/vgg2432a4.c b/drivers/video/backlight/vgg2432a4.c
> index 3567b45f9ba9..bfc1913e8b55 100644
> --- a/drivers/video/backlight/vgg2432a4.c
> +++ b/drivers/video/backlight/vgg2432a4.c
> @@ -233,11 +233,9 @@ static int vgg2432a4_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int vgg2432a4_remove(struct spi_device *spi)
> +static void vgg2432a4_remove(struct spi_device *spi)
> {
> ili9320_remove(spi_get_drvdata(spi));
> -
> - return 0;
> }
>
> static void vgg2432a4_shutdown(struct spi_device *spi)
> diff --git a/drivers/video/fbdev/omap/lcd_mipid.c b/drivers/video/fbdev/omap/lcd_mipid.c
> index a75ae0c9b14c..03cff39d392d 100644
> --- a/drivers/video/fbdev/omap/lcd_mipid.c
> +++ b/drivers/video/fbdev/omap/lcd_mipid.c
> @@ -570,14 +570,12 @@ static int mipid_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int mipid_spi_remove(struct spi_device *spi)
> +static void mipid_spi_remove(struct spi_device *spi)
> {
> struct mipid_device *md = dev_get_drvdata(&spi->dev);
>
> mipid_disable(&md->panel);
> kfree(md);
> -
> - return 0;
> }
>
> static struct spi_driver mipid_spi_driver = {
> diff --git a/drivers/video/fbdev/omap2/omapfb/displays/panel-lgphilips-lb035q02.c b/drivers/video/fbdev/omap2/omapfb/displays/panel-lgphilips-lb035q02.c
> index 1bec7a4422e8..aab67721263d 100644
> --- a/drivers/video/fbdev/omap2/omapfb/displays/panel-lgphilips-lb035q02.c
> +++ b/drivers/video/fbdev/omap2/omapfb/displays/panel-lgphilips-lb035q02.c
> @@ -316,7 +316,7 @@ static int lb035q02_panel_spi_probe(struct spi_device *spi)
> return r;
> }
>
> -static int lb035q02_panel_spi_remove(struct spi_device *spi)
> +static void lb035q02_panel_spi_remove(struct spi_device *spi)
> {
> struct panel_drv_data *ddata = spi_get_drvdata(spi);
> struct omap_dss_device *dssdev = &ddata->dssdev;
> @@ -328,8 +328,6 @@ static int lb035q02_panel_spi_remove(struct spi_device *spi)
> lb035q02_disconnect(dssdev);
>
> omap_dss_put_device(in);
> -
> - return 0;
> }
>
> static const struct of_device_id lb035q02_of_match[] = {
> diff --git a/drivers/video/fbdev/omap2/omapfb/displays/panel-nec-nl8048hl11.c b/drivers/video/fbdev/omap2/omapfb/displays/panel-nec-nl8048hl11.c
> index dff9ebbadfc0..be9910ff6e62 100644
> --- a/drivers/video/fbdev/omap2/omapfb/displays/panel-nec-nl8048hl11.c
> +++ b/drivers/video/fbdev/omap2/omapfb/displays/panel-nec-nl8048hl11.c
> @@ -327,7 +327,7 @@ static int nec_8048_probe(struct spi_device *spi)
> return r;
> }
>
> -static int nec_8048_remove(struct spi_device *spi)
> +static void nec_8048_remove(struct spi_device *spi)
> {
> struct panel_drv_data *ddata = dev_get_drvdata(&spi->dev);
> struct omap_dss_device *dssdev = &ddata->dssdev;
> @@ -341,8 +341,6 @@ static int nec_8048_remove(struct spi_device *spi)
> nec_8048_disconnect(dssdev);
>
> omap_dss_put_device(in);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/video/fbdev/omap2/omapfb/displays/panel-sony-acx565akm.c b/drivers/video/fbdev/omap2/omapfb/displays/panel-sony-acx565akm.c
> index 8d8b5ff7d43c..a909b5385ca5 100644
> --- a/drivers/video/fbdev/omap2/omapfb/displays/panel-sony-acx565akm.c
> +++ b/drivers/video/fbdev/omap2/omapfb/displays/panel-sony-acx565akm.c
> @@ -857,7 +857,7 @@ static int acx565akm_probe(struct spi_device *spi)
> return r;
> }
>
> -static int acx565akm_remove(struct spi_device *spi)
> +static void acx565akm_remove(struct spi_device *spi)
> {
> struct panel_drv_data *ddata = dev_get_drvdata(&spi->dev);
> struct omap_dss_device *dssdev = &ddata->dssdev;
> @@ -874,8 +874,6 @@ static int acx565akm_remove(struct spi_device *spi)
> acx565akm_disconnect(dssdev);
>
> omap_dss_put_device(in);
> -
> - return 0;
> }
>
> static const struct of_device_id acx565akm_of_match[] = {
> diff --git a/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td028ttec1.c b/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td028ttec1.c
> index 595ebd8bd5dc..3c0f887d3092 100644
> --- a/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td028ttec1.c
> +++ b/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td028ttec1.c
> @@ -425,7 +425,7 @@ static int td028ttec1_panel_probe(struct spi_device *spi)
> return r;
> }
>
> -static int td028ttec1_panel_remove(struct spi_device *spi)
> +static void td028ttec1_panel_remove(struct spi_device *spi)
> {
> struct panel_drv_data *ddata = dev_get_drvdata(&spi->dev);
> struct omap_dss_device *dssdev = &ddata->dssdev;
> @@ -439,8 +439,6 @@ static int td028ttec1_panel_remove(struct spi_device *spi)
> td028ttec1_panel_disconnect(dssdev);
>
> omap_dss_put_device(in);
> -
> - return 0;
> }
>
> static const struct of_device_id td028ttec1_of_match[] = {
> diff --git a/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td043mtea1.c b/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td043mtea1.c
> index afac1d9445aa..58bbba7c037f 100644
> --- a/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td043mtea1.c
> +++ b/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td043mtea1.c
> @@ -564,7 +564,7 @@ static int tpo_td043_probe(struct spi_device *spi)
> return r;
> }
>
> -static int tpo_td043_remove(struct spi_device *spi)
> +static void tpo_td043_remove(struct spi_device *spi)
> {
> struct panel_drv_data *ddata = dev_get_drvdata(&spi->dev);
> struct omap_dss_device *dssdev = &ddata->dssdev;
> @@ -580,8 +580,6 @@ static int tpo_td043_remove(struct spi_device *spi)
> omap_dss_put_device(in);
>
> sysfs_remove_group(&spi->dev.kobj, &tpo_td043_attr_group);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/include/linux/spi/spi.h b/include/linux/spi/spi.h
> index 7ab3fed7b804..c84e61b99c7b 100644
> --- a/include/linux/spi/spi.h
> +++ b/include/linux/spi/spi.h
> @@ -280,7 +280,7 @@ struct spi_message;
> struct spi_driver {
> const struct spi_device_id *id_table;
> int (*probe)(struct spi_device *spi);
> - int (*remove)(struct spi_device *spi);
> + void (*remove)(struct spi_device *spi);
> void (*shutdown)(struct spi_device *spi);
> struct device_driver driver;
> };
> diff --git a/sound/pci/hda/cs35l41_hda_spi.c b/sound/pci/hda/cs35l41_hda_spi.c
> index 9f8123893cc8..50eb6c0e6658 100644
> --- a/sound/pci/hda/cs35l41_hda_spi.c
> +++ b/sound/pci/hda/cs35l41_hda_spi.c
> @@ -28,11 +28,9 @@ static int cs35l41_hda_spi_probe(struct spi_device *spi)
> devm_regmap_init_spi(spi, &cs35l41_regmap_spi));
> }
>
> -static int cs35l41_hda_spi_remove(struct spi_device *spi)
> +static void cs35l41_hda_spi_remove(struct spi_device *spi)
> {
> cs35l41_hda_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id cs35l41_hda_spi_id[] = {
> diff --git a/sound/soc/codecs/adau1761-spi.c b/sound/soc/codecs/adau1761-spi.c
> index 655689c9778a..7c9242c2ff94 100644
> --- a/sound/soc/codecs/adau1761-spi.c
> +++ b/sound/soc/codecs/adau1761-spi.c
> @@ -45,10 +45,9 @@ static int adau1761_spi_probe(struct spi_device *spi)
> id->driver_data, adau1761_spi_switch_mode);
> }
>
> -static int adau1761_spi_remove(struct spi_device *spi)
> +static void adau1761_spi_remove(struct spi_device *spi)
> {
> adau17x1_remove(&spi->dev);
> - return 0;
> }
>
> static const struct spi_device_id adau1761_spi_id[] = {
> diff --git a/sound/soc/codecs/adau1781-spi.c b/sound/soc/codecs/adau1781-spi.c
> index bb5613574786..1a09633d5a88 100644
> --- a/sound/soc/codecs/adau1781-spi.c
> +++ b/sound/soc/codecs/adau1781-spi.c
> @@ -45,10 +45,9 @@ static int adau1781_spi_probe(struct spi_device *spi)
> id->driver_data, adau1781_spi_switch_mode);
> }
>
> -static int adau1781_spi_remove(struct spi_device *spi)
> +static void adau1781_spi_remove(struct spi_device *spi)
> {
> adau17x1_remove(&spi->dev);
> - return 0;
> }
>
> static const struct spi_device_id adau1781_spi_id[] = {
> diff --git a/sound/soc/codecs/cs35l41-spi.c b/sound/soc/codecs/cs35l41-spi.c
> index 6dfd5459aa20..169221a5b09f 100644
> --- a/sound/soc/codecs/cs35l41-spi.c
> +++ b/sound/soc/codecs/cs35l41-spi.c
> @@ -55,13 +55,11 @@ static int cs35l41_spi_probe(struct spi_device *spi)
> return cs35l41_probe(cs35l41, pdata);
> }
>
> -static int cs35l41_spi_remove(struct spi_device *spi)
> +static void cs35l41_spi_remove(struct spi_device *spi)
> {
> struct cs35l41_private *cs35l41 = spi_get_drvdata(spi);
>
> cs35l41_remove(cs35l41);
> -
> - return 0;
> }
>
> #ifdef CONFIG_OF
> diff --git a/sound/soc/codecs/pcm3168a-spi.c b/sound/soc/codecs/pcm3168a-spi.c
> index ecd379f308e6..b5b08046f545 100644
> --- a/sound/soc/codecs/pcm3168a-spi.c
> +++ b/sound/soc/codecs/pcm3168a-spi.c
> @@ -26,11 +26,9 @@ static int pcm3168a_spi_probe(struct spi_device *spi)
> return pcm3168a_probe(&spi->dev, regmap);
> }
>
> -static int pcm3168a_spi_remove(struct spi_device *spi)
> +static void pcm3168a_spi_remove(struct spi_device *spi)
> {
> pcm3168a_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id pcm3168a_spi_id[] = {
> diff --git a/sound/soc/codecs/pcm512x-spi.c b/sound/soc/codecs/pcm512x-spi.c
> index 7cf559b47e1c..4d29e7196380 100644
> --- a/sound/soc/codecs/pcm512x-spi.c
> +++ b/sound/soc/codecs/pcm512x-spi.c
> @@ -26,10 +26,9 @@ static int pcm512x_spi_probe(struct spi_device *spi)
> return pcm512x_probe(&spi->dev, regmap);
> }
>
> -static int pcm512x_spi_remove(struct spi_device *spi)
> +static void pcm512x_spi_remove(struct spi_device *spi)
> {
> pcm512x_remove(&spi->dev);
> - return 0;
> }
>
> static const struct spi_device_id pcm512x_spi_id[] = {
> diff --git a/sound/soc/codecs/tlv320aic32x4-spi.c b/sound/soc/codecs/tlv320aic32x4-spi.c
> index a8958cd1c692..03cce8d6404f 100644
> --- a/sound/soc/codecs/tlv320aic32x4-spi.c
> +++ b/sound/soc/codecs/tlv320aic32x4-spi.c
> @@ -46,11 +46,9 @@ static int aic32x4_spi_probe(struct spi_device *spi)
> return aic32x4_probe(&spi->dev, regmap);
> }
>
> -static int aic32x4_spi_remove(struct spi_device *spi)
> +static void aic32x4_spi_remove(struct spi_device *spi)
> {
> aic32x4_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id aic32x4_spi_id[] = {
> diff --git a/sound/soc/codecs/tlv320aic3x-spi.c b/sound/soc/codecs/tlv320aic3x-spi.c
> index 494e84402232..deed6ec7e081 100644
> --- a/sound/soc/codecs/tlv320aic3x-spi.c
> +++ b/sound/soc/codecs/tlv320aic3x-spi.c
> @@ -35,11 +35,9 @@ static int aic3x_spi_probe(struct spi_device *spi)
> return aic3x_probe(&spi->dev, regmap, id->driver_data);
> }
>
> -static int aic3x_spi_remove(struct spi_device *spi)
> +static void aic3x_spi_remove(struct spi_device *spi)
> {
> aic3x_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id aic3x_spi_id[] = {
> diff --git a/sound/soc/codecs/wm0010.c b/sound/soc/codecs/wm0010.c
> index 28b4656c4e14..1bef1c500c8e 100644
> --- a/sound/soc/codecs/wm0010.c
> +++ b/sound/soc/codecs/wm0010.c
> @@ -969,7 +969,7 @@ static int wm0010_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int wm0010_spi_remove(struct spi_device *spi)
> +static void wm0010_spi_remove(struct spi_device *spi)
> {
> struct wm0010_priv *wm0010 = spi_get_drvdata(spi);
>
> @@ -980,8 +980,6 @@ static int wm0010_spi_remove(struct spi_device *spi)
>
> if (wm0010->irq)
> free_irq(wm0010->irq, wm0010);
> -
> - return 0;
> }
>
> static struct spi_driver wm0010_spi_driver = {
> diff --git a/sound/soc/codecs/wm8804-spi.c b/sound/soc/codecs/wm8804-spi.c
> index 9a8da1511c34..628568724c20 100644
> --- a/sound/soc/codecs/wm8804-spi.c
> +++ b/sound/soc/codecs/wm8804-spi.c
> @@ -24,10 +24,9 @@ static int wm8804_spi_probe(struct spi_device *spi)
> return wm8804_probe(&spi->dev, regmap);
> }
>
> -static int wm8804_spi_remove(struct spi_device *spi)
> +static void wm8804_spi_remove(struct spi_device *spi)
> {
> wm8804_remove(&spi->dev);
> - return 0;
> }
>
> static const struct of_device_id wm8804_of_match[] = {
> diff --git a/sound/spi/at73c213.c b/sound/spi/at73c213.c
> index 76c0e37a838c..56d2c712e257 100644
> --- a/sound/spi/at73c213.c
> +++ b/sound/spi/at73c213.c
> @@ -1001,7 +1001,7 @@ static int snd_at73c213_probe(struct spi_device *spi)
> return retval;
> }
>
> -static int snd_at73c213_remove(struct spi_device *spi)
> +static void snd_at73c213_remove(struct spi_device *spi)
> {
> struct snd_card *card = dev_get_drvdata(&spi->dev);
> struct snd_at73c213 *chip = card->private_data;
> @@ -1066,8 +1066,6 @@ static int snd_at73c213_remove(struct spi_device *spi)
>
> ssc_free(chip->ssc);
> snd_card_free(card);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> --
> 2.34.1
>
--
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
1
0
My usual mailer won't let me reply to this many people, so I'm using Gmail.
No idea what chaos this will cause, but here goes ...
> The value returned by an spi driver's remove function is mostly ignored.
> (Only an error message is printed if the value is non-zero that the
> error is ignored.)
>
> So change the prototype of the remove function to return no value. This
> way driver authors are not tempted to assume that passing an error to
> the upper layer is a good idea. All drivers are adapted accordingly.
> There is no intended change of behaviour, all callbacks were prepared to
> return 0 before.
>
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig(a)pengutronix.de>
> ---
[...]
> drivers/mfd/arizona-spi.c | 4 +---
> drivers/mfd/da9052-spi.c | 3 +--
> drivers/mfd/ezx-pcap.c | 4 +---
> drivers/mfd/madera-spi.c | 4 +---
> drivers/mfd/mc13xxx-spi.c | 3 +--
> drivers/mfd/rsmu_spi.c | 4 +---
> drivers/mfd/stmpe-spi.c | 4 +---
> drivers/mfd/tps65912-spi.c | 4 +---
> drivers/video/backlight/ams369fg06.c | 3 +--
> drivers/video/backlight/corgi_lcd.c | 3 +--
> drivers/video/backlight/ili922x.c | 3 +--
> drivers/video/backlight/l4f00242t03.c | 3 +--
> drivers/video/backlight/lms501kf03.c | 3 +--
> drivers/video/backlight/ltv350qv.c | 3 +--
> drivers/video/backlight/tdo24m.c | 3 +--
> drivers/video/backlight/tosa_lcd.c | 4 +---
> drivers/video/backlight/vgg2432a4.c | 4 +---
If it's okay with Mark, it's okay with me.
Acked-by: Lee Jones <lee.jones(a)linaro.org>
--
Lee Jones [李琼斯]
Linaro Services Principle Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
1
0

[PATCH 1/6] ASoC: dt-bindings: samsung, aries-wm8994: require sound-dai property
by Krzysztof Kozlowski 25 Jan '22
by Krzysztof Kozlowski 25 Jan '22
25 Jan '22
The cpu and codec nodes must provide sound-dai property.
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski(a)canonical.com>
---
.../devicetree/bindings/sound/samsung,aries-wm8994.yaml | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/Documentation/devicetree/bindings/sound/samsung,aries-wm8994.yaml b/Documentation/devicetree/bindings/sound/samsung,aries-wm8994.yaml
index eb487ed3ca3b..d5cc221787cf 100644
--- a/Documentation/devicetree/bindings/sound/samsung,aries-wm8994.yaml
+++ b/Documentation/devicetree/bindings/sound/samsung,aries-wm8994.yaml
@@ -33,6 +33,8 @@ properties:
description: |
phandles to the I2S controller and bluetooth codec,
in that order
+ required:
+ - sound-dai
codec:
type: object
@@ -40,6 +42,8 @@ properties:
sound-dai:
$ref: /schemas/types.yaml#/definitions/phandle-array
description: phandle to the WM8994 CODEC
+ required:
+ - sound-dai
samsung,audio-routing:
$ref: /schemas/types.yaml#/definitions/non-unique-string-array
--
2.32.0
2
6
The 'phandle-array' type is a bit ambiguous. It can be either just an
array of phandles or an array of phandles plus args. Many schemas for
phandle-array properties aren't clear in the schema which case applies
though the description usually describes it.
The array of phandles case boils down to needing:
items:
maxItems: 1
The phandle plus args cases should typically take this form:
items:
- items:
- description: A phandle
- description: 1st arg cell
- description: 2nd arg cell
With this change, some examples need updating so that the bracketing of
property values matches the schema.
Cc: Damien Le Moal <damien.lemoal(a)opensource.wdc.com>
Cc: Herbert Xu <herbert(a)gondor.apana.org.au>
Cc: "David S. Miller" <davem(a)davemloft.net>
Cc: Chun-Kuang Hu <chunkuang.hu(a)kernel.org>
Cc: Philipp Zabel <p.zabel(a)pengutronix.de>
Cc: Laurent Pinchart <laurent.pinchart(a)ideasonboard.com>
Cc: Kieran Bingham <kieran.bingham+renesas(a)ideasonboard.com>
Cc: Vinod Koul <vkoul(a)kernel.org>
Cc: Georgi Djakov <djakov(a)kernel.org>
Cc: Thomas Gleixner <tglx(a)linutronix.de>
Cc: Marc Zyngier <maz(a)kernel.org>
Cc: Joerg Roedel <joro(a)8bytes.org>
Cc: Lee Jones <lee.jones(a)linaro.org>
Cc: Daniel Thompson <daniel.thompson(a)linaro.org>
Cc: Jingoo Han <jingoohan1(a)gmail.com>
Cc: Pavel Machek <pavel(a)ucw.cz>
Cc: Mauro Carvalho Chehab <mchehab(a)kernel.org>
Cc: Krzysztof Kozlowski <krzysztof.kozlowski(a)canonical.com>
Cc: Jakub Kicinski <kuba(a)kernel.org>
Cc: Wolfgang Grandegger <wg(a)grandegger.com>
Cc: Marc Kleine-Budde <mkl(a)pengutronix.de>
Cc: Andrew Lunn <andrew(a)lunn.ch>
Cc: Vivien Didelot <vivien.didelot(a)gmail.com>
Cc: Florian Fainelli <f.fainelli(a)gmail.com>
Cc: Vladimir Oltean <olteanv(a)gmail.com>
Cc: Kalle Valo <kvalo(a)kernel.org>
Cc: Viresh Kumar <vireshk(a)kernel.org>
Cc: Stephen Boyd <sboyd(a)kernel.org>
Cc: Kishon Vijay Abraham I <kishon(a)ti.com>
Cc: Linus Walleij <linus.walleij(a)linaro.org>
Cc: "Rafael J. Wysocki" <rafael(a)kernel.org>
Cc: Kevin Hilman <khilman(a)kernel.org>
Cc: Ulf Hansson <ulf.hansson(a)linaro.org>
Cc: Sebastian Reichel <sre(a)kernel.org>
Cc: Mark Brown <broonie(a)kernel.org>
Cc: Mathieu Poirier <mathieu.poirier(a)linaro.org>
Cc: Daniel Lezcano <daniel.lezcano(a)linaro.org>
Cc: Zhang Rui <rui.zhang(a)intel.com>
Cc: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Cc: Thierry Reding <thierry.reding(a)gmail.com>
Cc: Jonathan Hunter <jonathanh(a)nvidia.com>
Cc: Sudeep Holla <sudeep.holla(a)arm.com>
Cc: Geert Uytterhoeven <geert+renesas(a)glider.be>
Cc: linux-ide(a)vger.kernel.org
Cc: linux-crypto(a)vger.kernel.org
Cc: dri-devel(a)lists.freedesktop.org
Cc: dmaengine(a)vger.kernel.org
Cc: linux-pm(a)vger.kernel.org
Cc: iommu(a)lists.linux-foundation.org
Cc: linux-leds(a)vger.kernel.org
Cc: linux-media(a)vger.kernel.org
Cc: netdev(a)vger.kernel.org
Cc: linux-can(a)vger.kernel.org
Cc: linux-wireless(a)vger.kernel.org
Cc: linux-phy(a)lists.infradead.org
Cc: linux-gpio(a)vger.kernel.org
Cc: linux-riscv(a)lists.infradead.org
Cc: linux-remoteproc(a)vger.kernel.org
Cc: alsa-devel(a)alsa-project.org
Cc: linux-usb(a)vger.kernel.org
Signed-off-by: Rob Herring <robh(a)kernel.org>
---
.../devicetree/bindings/arm/cpus.yaml | 2 +
.../devicetree/bindings/arm/idle-states.yaml | 80 +++++++++----------
.../devicetree/bindings/arm/pmu.yaml | 2 +
.../bindings/ata/sata_highbank.yaml | 3 +
.../bus/allwinner,sun50i-a64-de2.yaml | 5 +-
.../bindings/crypto/intel,ixp4xx-crypto.yaml | 15 +++-
.../allwinner,sun4i-a10-display-engine.yaml | 2 +
.../display/mediatek/mediatek,hdmi.yaml | 5 +-
.../devicetree/bindings/display/msm/gpu.yaml | 2 +
.../bindings/display/renesas,du.yaml | 10 ++-
.../display/rockchip/rockchip-drm.yaml | 2 +
.../display/sprd/sprd,display-subsystem.yaml | 2 +
.../bindings/display/ti/ti,am65x-dss.yaml | 3 +-
.../devicetree/bindings/dma/dma-router.yaml | 2 +
.../bindings/dma/st,stm32-dmamux.yaml | 2 +-
.../bindings/dvfs/performance-domain.yaml | 1 -
.../bindings/interconnect/qcom,rpmh.yaml | 2 +
.../interrupt-controller/arm,gic-v3.yaml | 6 +-
.../interrupt-controller/ti,sci-inta.yaml | 2 +
.../bindings/iommu/mediatek,iommu.yaml | 6 +-
.../bindings/iommu/renesas,ipmmu-vmsa.yaml | 6 ++
.../leds/backlight/led-backlight.yaml | 2 +
.../allwinner,sun4i-a10-video-engine.yaml | 4 +
.../bindings/media/nxp,imx8mq-mipi-csi2.yaml | 10 +--
.../devicetree/bindings/media/ti,cal.yaml | 4 +
.../memory-controllers/mediatek,smi-larb.yaml | 2 +-
.../samsung,exynos5422-dmc.yaml | 2 +
.../net/allwinner,sun4i-a10-emac.yaml | 4 +
.../bindings/net/can/bosch,c_can.yaml | 8 +-
.../bindings/net/can/fsl,flexcan.yaml | 12 +--
.../devicetree/bindings/net/dsa/dsa-port.yaml | 2 +
.../devicetree/bindings/net/fsl,fec.yaml | 8 +-
.../bindings/net/intel,ixp4xx-ethernet.yaml | 15 +++-
.../bindings/net/intel,ixp4xx-hss.yaml | 33 ++++++--
.../bindings/net/nxp,dwmac-imx.yaml | 4 +
.../bindings/net/socionext,uniphier-ave4.yaml | 4 +
.../devicetree/bindings/net/stm32-dwmac.yaml | 4 +
.../bindings/net/ti,k3-am654-cpsw-nuss.yaml | 5 ++
.../bindings/net/wireless/mediatek,mt76.yaml | 4 +
.../devicetree/bindings/opp/opp-v2-base.yaml | 2 +
.../devicetree/bindings/perf/arm,dsu-pmu.yaml | 2 +
.../bindings/phy/intel,combo-phy.yaml | 8 ++
.../devicetree/bindings/phy/ti,omap-usb2.yaml | 4 +
.../pinctrl/aspeed,ast2500-pinctrl.yaml | 2 +
.../bindings/pinctrl/canaan,k210-fpioa.yaml | 4 +
.../pinctrl/mediatek,mt65xx-pinctrl.yaml | 2 +
.../bindings/pinctrl/st,stm32-pinctrl.yaml | 10 ++-
.../bindings/power/power-domain.yaml | 4 +
.../bindings/power/renesas,apmu.yaml | 2 +
.../power/rockchip,power-controller.yaml | 2 +
.../bindings/power/supply/cw2015_battery.yaml | 6 +-
.../bindings/power/supply/power-supply.yaml | 2 +
.../bindings/regulator/regulator.yaml | 2 +
.../bindings/regulator/st,stm32-booster.yaml | 2 +-
.../bindings/remoteproc/qcom,adsp.yaml | 6 ++
.../bindings/remoteproc/st,stm32-rproc.yaml | 33 ++++++--
.../bindings/remoteproc/ti,k3-dsp-rproc.yaml | 2 +
.../bindings/remoteproc/ti,k3-r5f-rproc.yaml | 2 +
.../remoteproc/ti,omap-remoteproc.yaml | 19 +++--
.../bindings/soc/samsung/exynos-usi.yaml | 4 +
.../bindings/sound/samsung,aries-wm8994.yaml | 2 +
.../bindings/sound/samsung,midas-audio.yaml | 3 +-
.../bindings/sound/st,stm32-sai.yaml | 8 +-
.../thermal/thermal-cooling-devices.yaml | 6 +-
.../bindings/thermal/thermal-idle.yaml | 8 +-
.../bindings/usb/nvidia,tegra-xudc.yaml | 2 +-
66 files changed, 317 insertions(+), 119 deletions(-)
diff --git a/Documentation/devicetree/bindings/arm/cpus.yaml b/Documentation/devicetree/bindings/arm/cpus.yaml
index 0dcebc48ea22..916a5aebefff 100644
--- a/Documentation/devicetree/bindings/arm/cpus.yaml
+++ b/Documentation/devicetree/bindings/arm/cpus.yaml
@@ -243,6 +243,8 @@ properties:
cpu-idle-states:
$ref: '/schemas/types.yaml#/definitions/phandle-array'
+ items:
+ maxItems: 1
description: |
List of phandles to idle state nodes supported
by this cpu (see ./idle-states.yaml).
diff --git a/Documentation/devicetree/bindings/arm/idle-states.yaml b/Documentation/devicetree/bindings/arm/idle-states.yaml
index 52bce5dbb11f..4d381fa1ee57 100644
--- a/Documentation/devicetree/bindings/arm/idle-states.yaml
+++ b/Documentation/devicetree/bindings/arm/idle-states.yaml
@@ -337,8 +337,8 @@ examples:
compatible = "arm,cortex-a57";
reg = <0x0 0x0>;
enable-method = "psci";
- cpu-idle-states = <&CPU_RETENTION_0_0 &CPU_SLEEP_0_0
- &CLUSTER_RETENTION_0 &CLUSTER_SLEEP_0>;
+ cpu-idle-states = <&CPU_RETENTION_0_0>, <&CPU_SLEEP_0_0>,
+ <&CLUSTER_RETENTION_0>, <&CLUSTER_SLEEP_0>;
};
cpu@1 {
@@ -346,8 +346,8 @@ examples:
compatible = "arm,cortex-a57";
reg = <0x0 0x1>;
enable-method = "psci";
- cpu-idle-states = <&CPU_RETENTION_0_0 &CPU_SLEEP_0_0
- &CLUSTER_RETENTION_0 &CLUSTER_SLEEP_0>;
+ cpu-idle-states = <&CPU_RETENTION_0_0>, <&CPU_SLEEP_0_0>,
+ <&CLUSTER_RETENTION_0>, <&CLUSTER_SLEEP_0>;
};
cpu@100 {
@@ -355,8 +355,8 @@ examples:
compatible = "arm,cortex-a57";
reg = <0x0 0x100>;
enable-method = "psci";
- cpu-idle-states = <&CPU_RETENTION_0_0 &CPU_SLEEP_0_0
- &CLUSTER_RETENTION_0 &CLUSTER_SLEEP_0>;
+ cpu-idle-states = <&CPU_RETENTION_0_0>, <&CPU_SLEEP_0_0>,
+ <&CLUSTER_RETENTION_0>, <&CLUSTER_SLEEP_0>;
};
cpu@101 {
@@ -364,8 +364,8 @@ examples:
compatible = "arm,cortex-a57";
reg = <0x0 0x101>;
enable-method = "psci";
- cpu-idle-states = <&CPU_RETENTION_0_0 &CPU_SLEEP_0_0
- &CLUSTER_RETENTION_0 &CLUSTER_SLEEP_0>;
+ cpu-idle-states = <&CPU_RETENTION_0_0>, <&CPU_SLEEP_0_0>,
+ <&CLUSTER_RETENTION_0>, <&CLUSTER_SLEEP_0>;
};
cpu@10000 {
@@ -373,8 +373,8 @@ examples:
compatible = "arm,cortex-a57";
reg = <0x0 0x10000>;
enable-method = "psci";
- cpu-idle-states = <&CPU_RETENTION_0_0 &CPU_SLEEP_0_0
- &CLUSTER_RETENTION_0 &CLUSTER_SLEEP_0>;
+ cpu-idle-states = <&CPU_RETENTION_0_0>, <&CPU_SLEEP_0_0>,
+ <&CLUSTER_RETENTION_0>, <&CLUSTER_SLEEP_0>;
};
cpu@10001 {
@@ -382,8 +382,8 @@ examples:
compatible = "arm,cortex-a57";
reg = <0x0 0x10001>;
enable-method = "psci";
- cpu-idle-states = <&CPU_RETENTION_0_0 &CPU_SLEEP_0_0
- &CLUSTER_RETENTION_0 &CLUSTER_SLEEP_0>;
+ cpu-idle-states = <&CPU_RETENTION_0_0>, <&CPU_SLEEP_0_0>,
+ <&CLUSTER_RETENTION_0>, <&CLUSTER_SLEEP_0>;
};
cpu@10100 {
@@ -391,8 +391,8 @@ examples:
compatible = "arm,cortex-a57";
reg = <0x0 0x10100>;
enable-method = "psci";
- cpu-idle-states = <&CPU_RETENTION_0_0 &CPU_SLEEP_0_0
- &CLUSTER_RETENTION_0 &CLUSTER_SLEEP_0>;
+ cpu-idle-states = <&CPU_RETENTION_0_0>, <&CPU_SLEEP_0_0>,
+ <&CLUSTER_RETENTION_0>, <&CLUSTER_SLEEP_0>;
};
cpu@10101 {
@@ -400,8 +400,8 @@ examples:
compatible = "arm,cortex-a57";
reg = <0x0 0x10101>;
enable-method = "psci";
- cpu-idle-states = <&CPU_RETENTION_0_0 &CPU_SLEEP_0_0
- &CLUSTER_RETENTION_0 &CLUSTER_SLEEP_0>;
+ cpu-idle-states = <&CPU_RETENTION_0_0>, <&CPU_SLEEP_0_0>,
+ <&CLUSTER_RETENTION_0>, <&CLUSTER_SLEEP_0>;
};
cpu@100000000 {
@@ -409,8 +409,8 @@ examples:
compatible = "arm,cortex-a53";
reg = <0x1 0x0>;
enable-method = "psci";
- cpu-idle-states = <&CPU_RETENTION_1_0 &CPU_SLEEP_1_0
- &CLUSTER_RETENTION_1 &CLUSTER_SLEEP_1>;
+ cpu-idle-states = <&CPU_RETENTION_1_0>, <&CPU_SLEEP_1_0>,
+ <&CLUSTER_RETENTION_1>, <&CLUSTER_SLEEP_1>;
};
cpu@100000001 {
@@ -418,8 +418,8 @@ examples:
compatible = "arm,cortex-a53";
reg = <0x1 0x1>;
enable-method = "psci";
- cpu-idle-states = <&CPU_RETENTION_1_0 &CPU_SLEEP_1_0
- &CLUSTER_RETENTION_1 &CLUSTER_SLEEP_1>;
+ cpu-idle-states = <&CPU_RETENTION_1_0>, <&CPU_SLEEP_1_0>,
+ <&CLUSTER_RETENTION_1>, <&CLUSTER_SLEEP_1>;
};
cpu@100000100 {
@@ -427,8 +427,8 @@ examples:
compatible = "arm,cortex-a53";
reg = <0x1 0x100>;
enable-method = "psci";
- cpu-idle-states = <&CPU_RETENTION_1_0 &CPU_SLEEP_1_0
- &CLUSTER_RETENTION_1 &CLUSTER_SLEEP_1>;
+ cpu-idle-states = <&CPU_RETENTION_1_0>, <&CPU_SLEEP_1_0>,
+ <&CLUSTER_RETENTION_1>, <&CLUSTER_SLEEP_1>;
};
cpu@100000101 {
@@ -436,8 +436,8 @@ examples:
compatible = "arm,cortex-a53";
reg = <0x1 0x101>;
enable-method = "psci";
- cpu-idle-states = <&CPU_RETENTION_1_0 &CPU_SLEEP_1_0
- &CLUSTER_RETENTION_1 &CLUSTER_SLEEP_1>;
+ cpu-idle-states = <&CPU_RETENTION_1_0>, <&CPU_SLEEP_1_0>,
+ <&CLUSTER_RETENTION_1>, <&CLUSTER_SLEEP_1>;
};
cpu@100010000 {
@@ -445,8 +445,8 @@ examples:
compatible = "arm,cortex-a53";
reg = <0x1 0x10000>;
enable-method = "psci";
- cpu-idle-states = <&CPU_RETENTION_1_0 &CPU_SLEEP_1_0
- &CLUSTER_RETENTION_1 &CLUSTER_SLEEP_1>;
+ cpu-idle-states = <&CPU_RETENTION_1_0>, <&CPU_SLEEP_1_0>,
+ <&CLUSTER_RETENTION_1>, <&CLUSTER_SLEEP_1>;
};
cpu@100010001 {
@@ -454,8 +454,8 @@ examples:
compatible = "arm,cortex-a53";
reg = <0x1 0x10001>;
enable-method = "psci";
- cpu-idle-states = <&CPU_RETENTION_1_0 &CPU_SLEEP_1_0
- &CLUSTER_RETENTION_1 &CLUSTER_SLEEP_1>;
+ cpu-idle-states = <&CPU_RETENTION_1_0>, <&CPU_SLEEP_1_0>,
+ <&CLUSTER_RETENTION_1>, <&CLUSTER_SLEEP_1>;
};
cpu@100010100 {
@@ -463,8 +463,8 @@ examples:
compatible = "arm,cortex-a53";
reg = <0x1 0x10100>;
enable-method = "psci";
- cpu-idle-states = <&CPU_RETENTION_1_0 &CPU_SLEEP_1_0
- &CLUSTER_RETENTION_1 &CLUSTER_SLEEP_1>;
+ cpu-idle-states = <&CPU_RETENTION_1_0>, <&CPU_SLEEP_1_0>,
+ <&CLUSTER_RETENTION_1>, <&CLUSTER_SLEEP_1>;
};
cpu@100010101 {
@@ -472,8 +472,8 @@ examples:
compatible = "arm,cortex-a53";
reg = <0x1 0x10101>;
enable-method = "psci";
- cpu-idle-states = <&CPU_RETENTION_1_0 &CPU_SLEEP_1_0
- &CLUSTER_RETENTION_1 &CLUSTER_SLEEP_1>;
+ cpu-idle-states = <&CPU_RETENTION_1_0>, <&CPU_SLEEP_1_0>,
+ <&CLUSTER_RETENTION_1>, <&CLUSTER_SLEEP_1>;
};
idle-states {
@@ -567,56 +567,56 @@ examples:
device_type = "cpu";
compatible = "arm,cortex-a15";
reg = <0x0>;
- cpu-idle-states = <&cpu_sleep_0_0 &cluster_sleep_0>;
+ cpu-idle-states = <&cpu_sleep_0_0>, <&cluster_sleep_0>;
};
cpu@1 {
device_type = "cpu";
compatible = "arm,cortex-a15";
reg = <0x1>;
- cpu-idle-states = <&cpu_sleep_0_0 &cluster_sleep_0>;
+ cpu-idle-states = <&cpu_sleep_0_0>, <&cluster_sleep_0>;
};
cpu@2 {
device_type = "cpu";
compatible = "arm,cortex-a15";
reg = <0x2>;
- cpu-idle-states = <&cpu_sleep_0_0 &cluster_sleep_0>;
+ cpu-idle-states = <&cpu_sleep_0_0>, <&cluster_sleep_0>;
};
cpu@3 {
device_type = "cpu";
compatible = "arm,cortex-a15";
reg = <0x3>;
- cpu-idle-states = <&cpu_sleep_0_0 &cluster_sleep_0>;
+ cpu-idle-states = <&cpu_sleep_0_0>, <&cluster_sleep_0>;
};
cpu@100 {
device_type = "cpu";
compatible = "arm,cortex-a7";
reg = <0x100>;
- cpu-idle-states = <&cpu_sleep_1_0 &cluster_sleep_1>;
+ cpu-idle-states = <&cpu_sleep_1_0>, <&cluster_sleep_1>;
};
cpu@101 {
device_type = "cpu";
compatible = "arm,cortex-a7";
reg = <0x101>;
- cpu-idle-states = <&cpu_sleep_1_0 &cluster_sleep_1>;
+ cpu-idle-states = <&cpu_sleep_1_0>, <&cluster_sleep_1>;
};
cpu@102 {
device_type = "cpu";
compatible = "arm,cortex-a7";
reg = <0x102>;
- cpu-idle-states = <&cpu_sleep_1_0 &cluster_sleep_1>;
+ cpu-idle-states = <&cpu_sleep_1_0>, <&cluster_sleep_1>;
};
cpu@103 {
device_type = "cpu";
compatible = "arm,cortex-a7";
reg = <0x103>;
- cpu-idle-states = <&cpu_sleep_1_0 &cluster_sleep_1>;
+ cpu-idle-states = <&cpu_sleep_1_0>, <&cluster_sleep_1>;
};
idle-states {
diff --git a/Documentation/devicetree/bindings/arm/pmu.yaml b/Documentation/devicetree/bindings/arm/pmu.yaml
index 981bac451698..2e2308d73408 100644
--- a/Documentation/devicetree/bindings/arm/pmu.yaml
+++ b/Documentation/devicetree/bindings/arm/pmu.yaml
@@ -66,6 +66,8 @@ properties:
interrupt-affinity:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ maxItems: 1
description:
When using SPIs, specifies a list of phandles to CPU
nodes corresponding directly to the affinity of
diff --git a/Documentation/devicetree/bindings/ata/sata_highbank.yaml b/Documentation/devicetree/bindings/ata/sata_highbank.yaml
index ce75d77e9289..49679b58041c 100644
--- a/Documentation/devicetree/bindings/ata/sata_highbank.yaml
+++ b/Documentation/devicetree/bindings/ata/sata_highbank.yaml
@@ -51,6 +51,9 @@ properties:
$ref: /schemas/types.yaml#/definitions/phandle-array
minItems: 1
maxItems: 8
+ items:
+ minItems: 2
+ maxItems: 2
calxeda,tx-atten:
description: |
diff --git a/Documentation/devicetree/bindings/bus/allwinner,sun50i-a64-de2.yaml b/Documentation/devicetree/bindings/bus/allwinner,sun50i-a64-de2.yaml
index 863a287ebc7e..ad313ccaaaef 100644
--- a/Documentation/devicetree/bindings/bus/allwinner,sun50i-a64-de2.yaml
+++ b/Documentation/devicetree/bindings/bus/allwinner,sun50i-a64-de2.yaml
@@ -35,7 +35,10 @@ properties:
The SRAM that needs to be claimed to access the display engine
bus.
$ref: /schemas/types.yaml#/definitions/phandle-array
- maxItems: 1
+ items:
+ - items:
+ - description: phandle to SRAM
+ - description: register value for device
ranges: true
diff --git a/Documentation/devicetree/bindings/crypto/intel,ixp4xx-crypto.yaml b/Documentation/devicetree/bindings/crypto/intel,ixp4xx-crypto.yaml
index 9c53c27bd20a..e0fe63957888 100644
--- a/Documentation/devicetree/bindings/crypto/intel,ixp4xx-crypto.yaml
+++ b/Documentation/devicetree/bindings/crypto/intel,ixp4xx-crypto.yaml
@@ -22,19 +22,28 @@ properties:
intel,npe-handle:
$ref: '/schemas/types.yaml#/definitions/phandle-array'
- maxItems: 1
+ items:
+ - items:
+ - description: phandle to the NPE this crypto engine
+ - description: the NPE instance number
description: phandle to the NPE this crypto engine is using, the cell
describing the NPE instance to be used.
queue-rx:
$ref: /schemas/types.yaml#/definitions/phandle-array
- maxItems: 1
+ items:
+ - items:
+ - description: phandle to the RX queue on the NPE
+ - description: the queue instance number
description: phandle to the RX queue on the NPE, the cell describing
the queue instance to be used.
queue-txready:
$ref: /schemas/types.yaml#/definitions/phandle-array
- maxItems: 1
+ items:
+ - items:
+ - description: phandle to the TX READY queue on the NPE
+ - description: the queue instance number
description: phandle to the TX READY queue on the NPE, the cell describing
the queue instance to be used.
diff --git a/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-display-engine.yaml b/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-display-engine.yaml
index e77523b02fad..d4412aea7b73 100644
--- a/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-display-engine.yaml
+++ b/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-display-engine.yaml
@@ -69,6 +69,8 @@ properties:
$ref: /schemas/types.yaml#/definitions/phandle-array
minItems: 1
maxItems: 2
+ items:
+ maxItems: 1
description: |
Available display engine frontends (DE 1.0) or mixers (DE
2.0/3.0) available.
diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,hdmi.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,hdmi.yaml
index 111967efa999..bdaf0b51e68c 100644
--- a/Documentation/devicetree/bindings/display/mediatek/mediatek,hdmi.yaml
+++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,hdmi.yaml
@@ -51,7 +51,10 @@ properties:
mediatek,syscon-hdmi:
$ref: '/schemas/types.yaml#/definitions/phandle-array'
- maxItems: 1
+ items:
+ - items:
+ - description: phandle to system configuration registers
+ - description: register offset in the system configuration registers
description: |
phandle link and register offset to the system configuration registers.
diff --git a/Documentation/devicetree/bindings/display/msm/gpu.yaml b/Documentation/devicetree/bindings/display/msm/gpu.yaml
index 99a1ba3ada56..3397bc31d087 100644
--- a/Documentation/devicetree/bindings/display/msm/gpu.yaml
+++ b/Documentation/devicetree/bindings/display/msm/gpu.yaml
@@ -64,6 +64,8 @@ properties:
$ref: /schemas/types.yaml#/definitions/phandle-array
minItems: 1
maxItems: 4
+ items:
+ maxItems: 1
description: |
phandles to one or more reserved on-chip SRAM regions.
phandle to the On Chip Memory (OCMEM) that's present on some a3xx and
diff --git a/Documentation/devicetree/bindings/display/renesas,du.yaml b/Documentation/devicetree/bindings/display/renesas,du.yaml
index 13efea574584..56cedcd6d576 100644
--- a/Documentation/devicetree/bindings/display/renesas,du.yaml
+++ b/Documentation/devicetree/bindings/display/renesas,du.yaml
@@ -76,17 +76,21 @@ properties:
renesas,cmms:
$ref: "/schemas/types.yaml#/definitions/phandle-array"
+ items:
+ maxItems: 1
description:
A list of phandles to the CMM instances present in the SoC, one for each
available DU channel.
renesas,vsps:
$ref: "/schemas/types.yaml#/definitions/phandle-array"
+ items:
+ items:
+ - description: phandle to VSP instance that serves the DU channel
+ - description: Channel index identifying the LIF instance in that VSP
description:
A list of phandle and channel index tuples to the VSPs that handle the
- memory interfaces for the DU channels. The phandle identifies the VSP
- instance that serves the DU channel, and the channel index identifies
- the LIF instance in that VSP.
+ memory interfaces for the DU channels.
required:
- compatible
diff --git a/Documentation/devicetree/bindings/display/rockchip/rockchip-drm.yaml b/Documentation/devicetree/bindings/display/rockchip/rockchip-drm.yaml
index 7204da5eb4c5..a8d18a37cb23 100644
--- a/Documentation/devicetree/bindings/display/rockchip/rockchip-drm.yaml
+++ b/Documentation/devicetree/bindings/display/rockchip/rockchip-drm.yaml
@@ -21,6 +21,8 @@ properties:
ports:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ maxItems: 1
description: |
Should contain a list of phandles pointing to display interface port
of vop devices. vop definitions as defined in
diff --git a/Documentation/devicetree/bindings/display/sprd/sprd,display-subsystem.yaml b/Documentation/devicetree/bindings/display/sprd/sprd,display-subsystem.yaml
index 3d107e9434be..d0a5592bd89d 100644
--- a/Documentation/devicetree/bindings/display/sprd/sprd,display-subsystem.yaml
+++ b/Documentation/devicetree/bindings/display/sprd/sprd,display-subsystem.yaml
@@ -45,6 +45,8 @@ properties:
ports:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ maxItems: 1
description:
Should contain a list of phandles pointing to display interface port
of DPU devices.
diff --git a/Documentation/devicetree/bindings/display/ti/ti,am65x-dss.yaml b/Documentation/devicetree/bindings/display/ti/ti,am65x-dss.yaml
index 781c1868b0b8..5c7d2cbc4aac 100644
--- a/Documentation/devicetree/bindings/display/ti/ti,am65x-dss.yaml
+++ b/Documentation/devicetree/bindings/display/ti/ti,am65x-dss.yaml
@@ -88,8 +88,7 @@ properties:
The DSS DPI output port node from video port 2
ti,am65x-oldi-io-ctrl:
- $ref: "/schemas/types.yaml#/definitions/phandle-array"
- maxItems: 1
+ $ref: "/schemas/types.yaml#/definitions/phandle"
description:
phandle to syscon device node mapping OLDI IO_CTRL registers.
The mapped range should point to OLDI_DAT0_IO_CTRL, map it and
diff --git a/Documentation/devicetree/bindings/dma/dma-router.yaml b/Documentation/devicetree/bindings/dma/dma-router.yaml
index e72748496fd9..4b817f5dc30e 100644
--- a/Documentation/devicetree/bindings/dma/dma-router.yaml
+++ b/Documentation/devicetree/bindings/dma/dma-router.yaml
@@ -24,6 +24,8 @@ properties:
dma-masters:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ maxItems: 1
description:
Array of phandles to the DMA controllers the router can direct
the signal to.
diff --git a/Documentation/devicetree/bindings/dma/st,stm32-dmamux.yaml b/Documentation/devicetree/bindings/dma/st,stm32-dmamux.yaml
index f751796531c9..7b1833d6caa2 100644
--- a/Documentation/devicetree/bindings/dma/st,stm32-dmamux.yaml
+++ b/Documentation/devicetree/bindings/dma/st,stm32-dmamux.yaml
@@ -46,7 +46,7 @@ examples:
#dma-cells = <3>;
dma-requests = <128>;
dma-channels = <16>;
- dma-masters = <&dma1 &dma2>;
+ dma-masters = <&dma1>, <&dma2>;
clocks = <&timer_clk>;
};
diff --git a/Documentation/devicetree/bindings/dvfs/performance-domain.yaml b/Documentation/devicetree/bindings/dvfs/performance-domain.yaml
index c8b91207f34d..7959d40ded5a 100644
--- a/Documentation/devicetree/bindings/dvfs/performance-domain.yaml
+++ b/Documentation/devicetree/bindings/dvfs/performance-domain.yaml
@@ -43,7 +43,6 @@ properties:
performance-domains:
$ref: '/schemas/types.yaml#/definitions/phandle-array'
- maxItems: 1
description:
A phandle and performance domain specifier as defined by bindings of the
performance controller/provider specified by phandle.
diff --git a/Documentation/devicetree/bindings/interconnect/qcom,rpmh.yaml b/Documentation/devicetree/bindings/interconnect/qcom,rpmh.yaml
index cbb24f9bb609..5a911be0c2ea 100644
--- a/Documentation/devicetree/bindings/interconnect/qcom,rpmh.yaml
+++ b/Documentation/devicetree/bindings/interconnect/qcom,rpmh.yaml
@@ -121,6 +121,8 @@ properties:
qcom,bcm-voters:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ maxItems: 1
description: |
List of phandles to qcom,bcm-voter nodes that are required by
this interconnect to send RPMh commands.
diff --git a/Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.yaml b/Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.yaml
index cfb3ec27bd2b..b7197f78e158 100644
--- a/Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.yaml
+++ b/Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.yaml
@@ -138,6 +138,8 @@ properties:
properties:
affinity:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ maxItems: 1
description:
Should be a list of phandles to CPU nodes (as described in
Documentation/devicetree/bindings/arm/cpus.yaml).
@@ -273,11 +275,11 @@ examples:
ppi-partitions {
part0: interrupt-partition-0 {
- affinity = <&cpu0 &cpu2>;
+ affinity = <&cpu0>, <&cpu2>;
};
part1: interrupt-partition-1 {
- affinity = <&cpu1 &cpu3>;
+ affinity = <&cpu1>, <&cpu3>;
};
};
};
diff --git a/Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.yaml b/Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.yaml
index 3d89668573e8..88c46e61732e 100644
--- a/Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.yaml
+++ b/Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.yaml
@@ -77,6 +77,8 @@ properties:
ti,unmapped-event-sources:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ maxItems: 1
description:
Array of phandles to DMA controllers where the unmapped events originate.
diff --git a/Documentation/devicetree/bindings/iommu/mediatek,iommu.yaml b/Documentation/devicetree/bindings/iommu/mediatek,iommu.yaml
index 0f26fe14c8e2..97e8c471a5e8 100644
--- a/Documentation/devicetree/bindings/iommu/mediatek,iommu.yaml
+++ b/Documentation/devicetree/bindings/iommu/mediatek,iommu.yaml
@@ -101,6 +101,8 @@ properties:
$ref: /schemas/types.yaml#/definitions/phandle-array
minItems: 1
maxItems: 32
+ items:
+ maxItems: 1
description: |
List of phandle to the local arbiters in the current Socs.
Refer to bindings/memory-controllers/mediatek,smi-larb.yaml. It must sort
@@ -167,8 +169,8 @@ examples:
interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_LOW>;
clocks = <&infracfg CLK_INFRA_M4U>;
clock-names = "bclk";
- mediatek,larbs = <&larb0 &larb1 &larb2
- &larb3 &larb4 &larb5>;
+ mediatek,larbs = <&larb0>, <&larb1>, <&larb2>,
+ <&larb3>, <&larb4>, <&larb5>;
#iommu-cells = <1>;
};
diff --git a/Documentation/devicetree/bindings/iommu/renesas,ipmmu-vmsa.yaml b/Documentation/devicetree/bindings/iommu/renesas,ipmmu-vmsa.yaml
index ce0c715205c6..507853fcc746 100644
--- a/Documentation/devicetree/bindings/iommu/renesas,ipmmu-vmsa.yaml
+++ b/Documentation/devicetree/bindings/iommu/renesas,ipmmu-vmsa.yaml
@@ -66,6 +66,12 @@ properties:
renesas,ipmmu-main:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ - items:
+ - description: phandle to main IPMMU
+ - description: the interrupt bit number associated with the particular
+ cache IPMMU device. The interrupt bit number needs to match the main
+ IPMMU IMSSTR register. Only used by cache IPMMU instances.
description:
Reference to the main IPMMU phandle plus 1 cell. The cell is
the interrupt bit number associated with the particular cache IPMMU
diff --git a/Documentation/devicetree/bindings/leds/backlight/led-backlight.yaml b/Documentation/devicetree/bindings/leds/backlight/led-backlight.yaml
index 625082bf3892..f5822f4ea667 100644
--- a/Documentation/devicetree/bindings/leds/backlight/led-backlight.yaml
+++ b/Documentation/devicetree/bindings/leds/backlight/led-backlight.yaml
@@ -23,6 +23,8 @@ properties:
leds:
description: A list of LED nodes
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ maxItems: 1
brightness-levels:
description:
diff --git a/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-video-engine.yaml b/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-video-engine.yaml
index c3de96d10396..ee7fc3515d89 100644
--- a/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-video-engine.yaml
+++ b/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-video-engine.yaml
@@ -48,6 +48,10 @@ properties:
allwinner,sram:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ - items:
+ - description: phandle to SRAM
+ - description: register value for device
description: Phandle to the device SRAM
iommus:
diff --git a/Documentation/devicetree/bindings/media/nxp,imx8mq-mipi-csi2.yaml b/Documentation/devicetree/bindings/media/nxp,imx8mq-mipi-csi2.yaml
index 9c04fa85ee5c..d13c9233a7c8 100644
--- a/Documentation/devicetree/bindings/media/nxp,imx8mq-mipi-csi2.yaml
+++ b/Documentation/devicetree/bindings/media/nxp,imx8mq-mipi-csi2.yaml
@@ -58,11 +58,11 @@ properties:
req_gpr is the gpr register offset of RX_ENABLE for the mipi phy.
$ref: /schemas/types.yaml#/definitions/phandle-array
items:
- items:
- - description: The 'gpr' is the phandle to general purpose register node.
- - description: The 'req_gpr' is the gpr register offset containing
- CSI2_1_RX_ENABLE or CSI2_2_RX_ENABLE respectively.
- maximum: 0xff
+ - items:
+ - description: The 'gpr' is the phandle to general purpose register node.
+ - description: The 'req_gpr' is the gpr register offset containing
+ CSI2_1_RX_ENABLE or CSI2_2_RX_ENABLE respectively.
+ maximum: 0xff
interconnects:
maxItems: 1
diff --git a/Documentation/devicetree/bindings/media/ti,cal.yaml b/Documentation/devicetree/bindings/media/ti,cal.yaml
index 66c5d392fa75..7e078424ca4d 100644
--- a/Documentation/devicetree/bindings/media/ti,cal.yaml
+++ b/Documentation/devicetree/bindings/media/ti,cal.yaml
@@ -48,6 +48,10 @@ properties:
ti,camerrx-control:
$ref: "/schemas/types.yaml#/definitions/phandle-array"
+ items:
+ - items:
+ - description: phandle to device control module
+ - description: offset to the control_camerarx_core register
description:
phandle to the device control module and offset to the
control_camerarx_core register
diff --git a/Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml b/Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml
index eaeff1ada7f8..822ade9e9bab 100644
--- a/Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml
+++ b/Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml
@@ -52,7 +52,7 @@ properties:
maxItems: 1
mediatek,smi:
- $ref: /schemas/types.yaml#/definitions/phandle-array
+ $ref: /schemas/types.yaml#/definitions/phandle
description: a phandle to the smi_common node.
mediatek,larb-id:
diff --git a/Documentation/devicetree/bindings/memory-controllers/samsung,exynos5422-dmc.yaml b/Documentation/devicetree/bindings/memory-controllers/samsung,exynos5422-dmc.yaml
index fe8639dcffab..895c3b5c9aaa 100644
--- a/Documentation/devicetree/bindings/memory-controllers/samsung,exynos5422-dmc.yaml
+++ b/Documentation/devicetree/bindings/memory-controllers/samsung,exynos5422-dmc.yaml
@@ -45,6 +45,8 @@ properties:
$ref: '/schemas/types.yaml#/definitions/phandle-array'
minItems: 1
maxItems: 16
+ items:
+ maxItems: 1
description: phandles of the PPMU events used by the controller.
device-handle:
diff --git a/Documentation/devicetree/bindings/net/allwinner,sun4i-a10-emac.yaml b/Documentation/devicetree/bindings/net/allwinner,sun4i-a10-emac.yaml
index 8d8560a67abf..098b2bf7d976 100644
--- a/Documentation/devicetree/bindings/net/allwinner,sun4i-a10-emac.yaml
+++ b/Documentation/devicetree/bindings/net/allwinner,sun4i-a10-emac.yaml
@@ -29,6 +29,10 @@ properties:
allwinner,sram:
description: Phandle to the device SRAM
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ - items:
+ - description: phandle to SRAM
+ - description: register value for device
required:
- compatible
diff --git a/Documentation/devicetree/bindings/net/can/bosch,c_can.yaml b/Documentation/devicetree/bindings/net/can/bosch,c_can.yaml
index 2cd145a642f1..8bad328b184d 100644
--- a/Documentation/devicetree/bindings/net/can/bosch,c_can.yaml
+++ b/Documentation/devicetree/bindings/net/can/bosch,c_can.yaml
@@ -56,10 +56,10 @@ properties:
offset).
$ref: /schemas/types.yaml#/definitions/phandle-array
items:
- items:
- - description: The phandle to the system control region.
- - description: The register offset.
- - description: The CAN instance number.
+ - items:
+ - description: The phandle to the system control region.
+ - description: The register offset.
+ - description: The CAN instance number.
resets:
maxItems: 1
diff --git a/Documentation/devicetree/bindings/net/can/fsl,flexcan.yaml b/Documentation/devicetree/bindings/net/can/fsl,flexcan.yaml
index 3f0ee17c1461..e52db841bb8c 100644
--- a/Documentation/devicetree/bindings/net/can/fsl,flexcan.yaml
+++ b/Documentation/devicetree/bindings/net/can/fsl,flexcan.yaml
@@ -84,12 +84,12 @@ properties:
req_bit is the bit offset of CAN stop request.
$ref: /schemas/types.yaml#/definitions/phandle-array
items:
- items:
- - description: The 'gpr' is the phandle to general purpose register node.
- - description: The 'req_gpr' is the gpr register offset of CAN stop request.
- maximum: 0xff
- - description: The 'req_bit' is the bit offset of CAN stop request.
- maximum: 0x1f
+ - items:
+ - description: The 'gpr' is the phandle to general purpose register node.
+ - description: The 'req_gpr' is the gpr register offset of CAN stop request.
+ maximum: 0xff
+ - description: The 'req_bit' is the bit offset of CAN stop request.
+ maximum: 0x1f
fsl,clk-source:
description: |
diff --git a/Documentation/devicetree/bindings/net/dsa/dsa-port.yaml b/Documentation/devicetree/bindings/net/dsa/dsa-port.yaml
index 702df848a71d..c504feeec6db 100644
--- a/Documentation/devicetree/bindings/net/dsa/dsa-port.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/dsa-port.yaml
@@ -34,6 +34,8 @@ properties:
full routing information must be given, not just the one hop
routes to neighbouring switches
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ maxItems: 1
ethernet:
description:
diff --git a/Documentation/devicetree/bindings/net/fsl,fec.yaml b/Documentation/devicetree/bindings/net/fsl,fec.yaml
index fd8371e31867..daa2f79a294f 100644
--- a/Documentation/devicetree/bindings/net/fsl,fec.yaml
+++ b/Documentation/devicetree/bindings/net/fsl,fec.yaml
@@ -158,11 +158,13 @@ properties:
fsl,stop-mode:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ - items:
+ - description: phandle to general purpose register node
+ - description: the gpr register offset for ENET stop request
+ - description: the gpr bit offset for ENET stop request
description:
Register bits of stop mode control, the format is <&gpr req_gpr req_bit>.
- gpr is the phandle to general purpose register node.
- req_gpr is the gpr register offset for ENET stop request.
- req_bit is the gpr bit offset for ENET stop request.
mdio:
$ref: mdio.yaml#
diff --git a/Documentation/devicetree/bindings/net/intel,ixp4xx-ethernet.yaml b/Documentation/devicetree/bindings/net/intel,ixp4xx-ethernet.yaml
index 67eaf02dda80..4e1b79818aff 100644
--- a/Documentation/devicetree/bindings/net/intel,ixp4xx-ethernet.yaml
+++ b/Documentation/devicetree/bindings/net/intel,ixp4xx-ethernet.yaml
@@ -29,12 +29,18 @@ properties:
queue-rx:
$ref: '/schemas/types.yaml#/definitions/phandle-array'
- maxItems: 1
+ items:
+ - items:
+ - description: phandle to the RX queue node
+ - description: RX queue instance to use
description: phandle to the RX queue on the NPE
queue-txready:
$ref: '/schemas/types.yaml#/definitions/phandle-array'
- maxItems: 1
+ items:
+ - items:
+ - description: phandle to the TX READY queue node
+ - description: TX READY queue instance to use
description: phandle to the TX READY queue on the NPE
phy-mode: true
@@ -43,7 +49,10 @@ properties:
intel,npe-handle:
$ref: '/schemas/types.yaml#/definitions/phandle-array'
- maxItems: 1
+ items:
+ - items:
+ - description: phandle to the NPE this ethernet instance is using
+ - description: the NPE instance to use
description: phandle to the NPE this ethernet instance is using
and the instance to use in the second cell
diff --git a/Documentation/devicetree/bindings/net/intel,ixp4xx-hss.yaml b/Documentation/devicetree/bindings/net/intel,ixp4xx-hss.yaml
index 4dcd53c3e0b4..e6329febb60c 100644
--- a/Documentation/devicetree/bindings/net/intel,ixp4xx-hss.yaml
+++ b/Documentation/devicetree/bindings/net/intel,ixp4xx-hss.yaml
@@ -25,39 +25,62 @@ properties:
intel,npe-handle:
$ref: '/schemas/types.yaml#/definitions/phandle-array'
- maxItems: 1
+ items:
+ items:
+ - description: phandle to the NPE this HSS instance is using
+ - description: the NPE instance number
description: phandle to the NPE this HSS instance is using
and the instance to use in the second cell
intel,queue-chl-rxtrig:
$ref: '/schemas/types.yaml#/definitions/phandle-array'
- maxItems: 1
+ items:
+ - items:
+ - description: phandle to the RX trigger queue on the NPE
+ - description: the queue instance number
description: phandle to the RX trigger queue on the NPE
intel,queue-chl-txready:
$ref: '/schemas/types.yaml#/definitions/phandle-array'
- maxItems: 1
+ items:
+ - items:
+ - description: phandle to the TX ready queue on the NPE
+ - description: the queue instance number
description: phandle to the TX ready queue on the NPE
intel,queue-pkt-rx:
$ref: '/schemas/types.yaml#/definitions/phandle-array'
- maxItems: 1
+ items:
+ - items:
+ - description: phandle to the RX queue on the NPE
+ - description: the queue instance number
description: phandle to the packet RX queue on the NPE
intel,queue-pkt-tx:
$ref: '/schemas/types.yaml#/definitions/phandle-array'
maxItems: 4
+ items:
+ items:
+ - description: phandle to the TX queue on the NPE
+ - description: the queue instance number
description: phandle to the packet TX0, TX1, TX2 and TX3 queues on the NPE
intel,queue-pkt-rxfree:
$ref: '/schemas/types.yaml#/definitions/phandle-array'
maxItems: 4
+ items:
+ items:
+ - description: phandle to the RXFREE queue on the NPE
+ - description: the queue instance number
description: phandle to the packet RXFREE0, RXFREE1, RXFREE2 and
RXFREE3 queues on the NPE
intel,queue-pkt-txdone:
$ref: '/schemas/types.yaml#/definitions/phandle-array'
- maxItems: 1
+ items:
+ - items:
+ - description: phandle to the TXDONE queue on the NPE
+ - description: the queue instance number
description: phandle to the packet TXDONE queue on the NPE
cts-gpios:
diff --git a/Documentation/devicetree/bindings/net/nxp,dwmac-imx.yaml b/Documentation/devicetree/bindings/net/nxp,dwmac-imx.yaml
index ee4afe361fac..011363166789 100644
--- a/Documentation/devicetree/bindings/net/nxp,dwmac-imx.yaml
+++ b/Documentation/devicetree/bindings/net/nxp,dwmac-imx.yaml
@@ -54,6 +54,10 @@ properties:
intf_mode:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ - items:
+ - description: phandle to the GPR syscon
+ - description: the offset of the GPR register
description:
Should be phandle/offset pair. The phandle to the syscon node which
encompases the GPR register, and the offset of the GPR register.
diff --git a/Documentation/devicetree/bindings/net/socionext,uniphier-ave4.yaml b/Documentation/devicetree/bindings/net/socionext,uniphier-ave4.yaml
index aad5a9f3f962..1ab41cfdb865 100644
--- a/Documentation/devicetree/bindings/net/socionext,uniphier-ave4.yaml
+++ b/Documentation/devicetree/bindings/net/socionext,uniphier-ave4.yaml
@@ -66,6 +66,10 @@ properties:
socionext,syscon-phy-mode:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ - items:
+ - description: phandle to syscon that configures phy mode
+ - description: ID of MAC instance
description:
A phandle to syscon with one argument that configures phy mode.
The argument is the ID of MAC instance.
diff --git a/Documentation/devicetree/bindings/net/stm32-dwmac.yaml b/Documentation/devicetree/bindings/net/stm32-dwmac.yaml
index 3d8a3b763ae6..89a858de68af 100644
--- a/Documentation/devicetree/bindings/net/stm32-dwmac.yaml
+++ b/Documentation/devicetree/bindings/net/stm32-dwmac.yaml
@@ -74,6 +74,10 @@ properties:
st,syscon:
$ref: "/schemas/types.yaml#/definitions/phandle-array"
+ items:
+ - items:
+ - description: phandle to the syscon node which encompases the glue register
+ - description: offset of the control register
description:
Should be phandle/offset pair. The phandle to the syscon node which
encompases the glue register, and the offset of the control register
diff --git a/Documentation/devicetree/bindings/net/ti,k3-am654-cpsw-nuss.yaml b/Documentation/devicetree/bindings/net/ti,k3-am654-cpsw-nuss.yaml
index 4b97a0f1175b..c6596fad5b20 100644
--- a/Documentation/devicetree/bindings/net/ti,k3-am654-cpsw-nuss.yaml
+++ b/Documentation/devicetree/bindings/net/ti,k3-am654-cpsw-nuss.yaml
@@ -136,6 +136,11 @@ properties:
ti,syscon-efuse:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ - items:
+ - description: Phandle to the system control device node which
+ provides access to efuse
+ - description: offset to efuse registers???
description:
Phandle to the system control device node which provides access
to efuse IO range with MAC addresses
diff --git a/Documentation/devicetree/bindings/net/wireless/mediatek,mt76.yaml b/Documentation/devicetree/bindings/net/wireless/mediatek,mt76.yaml
index 269cd63fb544..42e1f4dddca8 100644
--- a/Documentation/devicetree/bindings/net/wireless/mediatek,mt76.yaml
+++ b/Documentation/devicetree/bindings/net/wireless/mediatek,mt76.yaml
@@ -54,6 +54,10 @@ properties:
mediatek,mtd-eeprom:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ - items:
+ - description: phandle to MTD partition
+ - description: offset containing EEPROM data
description:
Phandle to a MTD partition + offset containing EEPROM data
diff --git a/Documentation/devicetree/bindings/opp/opp-v2-base.yaml b/Documentation/devicetree/bindings/opp/opp-v2-base.yaml
index 15a76bcd6d42..da0f09eedc0c 100644
--- a/Documentation/devicetree/bindings/opp/opp-v2-base.yaml
+++ b/Documentation/devicetree/bindings/opp/opp-v2-base.yaml
@@ -177,6 +177,8 @@ patternProperties:
for the functioning of the current device at the current OPP (where
this property is present).
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ maxItems: 1
patternProperties:
'^opp-microvolt-':
diff --git a/Documentation/devicetree/bindings/perf/arm,dsu-pmu.yaml b/Documentation/devicetree/bindings/perf/arm,dsu-pmu.yaml
index aef63a542f34..c87821be158b 100644
--- a/Documentation/devicetree/bindings/perf/arm,dsu-pmu.yaml
+++ b/Documentation/devicetree/bindings/perf/arm,dsu-pmu.yaml
@@ -35,6 +35,8 @@ properties:
$ref: /schemas/types.yaml#/definitions/phandle-array
minItems: 1
maxItems: 12
+ items:
+ maxItems: 1
description: List of phandles for the CPUs connected to this DSU instance.
required:
diff --git a/Documentation/devicetree/bindings/phy/intel,combo-phy.yaml b/Documentation/devicetree/bindings/phy/intel,combo-phy.yaml
index 347d0cdfb80d..5d54b0a0e873 100644
--- a/Documentation/devicetree/bindings/phy/intel,combo-phy.yaml
+++ b/Documentation/devicetree/bindings/phy/intel,combo-phy.yaml
@@ -47,10 +47,18 @@ properties:
intel,syscfg:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ - items:
+ - description: phandle to Chip configuration registers
+ - description: ComboPhy instance id
description: Chip configuration registers handle and ComboPhy instance id
intel,hsio:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ - items:
+ - description: phandle to HSIO registers
+ - description: ComboPhy instance id
description: HSIO registers handle and ComboPhy instance id on NOC
intel,aggregation:
diff --git a/Documentation/devicetree/bindings/phy/ti,omap-usb2.yaml b/Documentation/devicetree/bindings/phy/ti,omap-usb2.yaml
index cbbf5e8b1197..51c8a36e61f0 100644
--- a/Documentation/devicetree/bindings/phy/ti,omap-usb2.yaml
+++ b/Documentation/devicetree/bindings/phy/ti,omap-usb2.yaml
@@ -45,6 +45,10 @@ properties:
syscon-phy-power:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ - items:
+ - description: phandle to the system control module
+ - description: register offset to power on/off the PHY
description:
phandle/offset pair. Phandle to the system control module and
register offset to power on/off the PHY.
diff --git a/Documentation/devicetree/bindings/pinctrl/aspeed,ast2500-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/aspeed,ast2500-pinctrl.yaml
index d316cc082107..acd60c85b4cc 100644
--- a/Documentation/devicetree/bindings/pinctrl/aspeed,ast2500-pinctrl.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/aspeed,ast2500-pinctrl.yaml
@@ -29,6 +29,8 @@ properties:
aspeed,external-nodes:
minItems: 2
maxItems: 2
+ items:
+ maxItems: 1
$ref: /schemas/types.yaml#/definitions/phandle-array
description: |
A cell of phandles to external controller nodes:
diff --git a/Documentation/devicetree/bindings/pinctrl/canaan,k210-fpioa.yaml b/Documentation/devicetree/bindings/pinctrl/canaan,k210-fpioa.yaml
index a44691d9c57d..53e963e090f2 100644
--- a/Documentation/devicetree/bindings/pinctrl/canaan,k210-fpioa.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/canaan,k210-fpioa.yaml
@@ -39,6 +39,10 @@ properties:
canaan,k210-sysctl-power:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ - items:
+ - description: phandle of the K210 system controller node
+ - description: offset of its power domain control register
description: |
phandle of the K210 system controller node and offset of its
power domain control register.
diff --git a/Documentation/devicetree/bindings/pinctrl/mediatek,mt65xx-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/mediatek,mt65xx-pinctrl.yaml
index 6953c958ff7c..161088a8be33 100644
--- a/Documentation/devicetree/bindings/pinctrl/mediatek,mt65xx-pinctrl.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/mediatek,mt65xx-pinctrl.yaml
@@ -44,6 +44,8 @@ properties:
mediatek,pctl-regmap:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ maxItems: 1
minItems: 1
maxItems: 2
description: |
diff --git a/Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.yaml
index 83a18d0331b1..335ffc1353b5 100644
--- a/Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.yaml
@@ -41,11 +41,13 @@ properties:
maxItems: 1
st,syscfg:
- description: Should be phandle/offset/mask
- - Phandle to the syscon node which includes IRQ mux selection.
- - The offset of the IRQ mux selection register.
- - The field mask of IRQ mux, needed if different of 0xf.
+ description: Phandle+args to the syscon node which includes IRQ mux selection.
$ref: "/schemas/types.yaml#/definitions/phandle-array"
+ items:
+ - items:
+ - description: syscon node which includes IRQ mux selection
+ - description: The offset of the IRQ mux selection register
+ - description: The field mask of IRQ mux, needed if different of 0xf
st,package:
description:
diff --git a/Documentation/devicetree/bindings/power/power-domain.yaml b/Documentation/devicetree/bindings/power/power-domain.yaml
index 3143ed9a3313..889091b9814f 100644
--- a/Documentation/devicetree/bindings/power/power-domain.yaml
+++ b/Documentation/devicetree/bindings/power/power-domain.yaml
@@ -29,6 +29,8 @@ properties:
domain-idle-states:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ maxItems: 1
description: |
Phandles of idle states that defines the available states for the
power-domain provider. The idle state definitions are compatible with the
@@ -42,6 +44,8 @@ properties:
operating-points-v2:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ maxItems: 1
description:
Phandles to the OPP tables of power domains provided by a power domain
provider. If the provider provides a single power domain only or all
diff --git a/Documentation/devicetree/bindings/power/renesas,apmu.yaml b/Documentation/devicetree/bindings/power/renesas,apmu.yaml
index 391897d897f2..4d293b2b2f84 100644
--- a/Documentation/devicetree/bindings/power/renesas,apmu.yaml
+++ b/Documentation/devicetree/bindings/power/renesas,apmu.yaml
@@ -35,6 +35,8 @@ properties:
cpus:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ maxItems: 1
description: |
Array of phandles pointing to CPU cores, which should match the order of
CPU cores used by the WUPCR and PSTR registers in the Advanced Power
diff --git a/Documentation/devicetree/bindings/power/rockchip,power-controller.yaml b/Documentation/devicetree/bindings/power/rockchip,power-controller.yaml
index 9b9d71087466..3deb0fc8dfd3 100644
--- a/Documentation/devicetree/bindings/power/rockchip,power-controller.yaml
+++ b/Documentation/devicetree/bindings/power/rockchip,power-controller.yaml
@@ -129,6 +129,8 @@ $defs:
pm_qos:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ maxItems: 1
description: |
A number of phandles to qos blocks which need to be saved and restored
while power domain switches state.
diff --git a/Documentation/devicetree/bindings/power/supply/cw2015_battery.yaml b/Documentation/devicetree/bindings/power/supply/cw2015_battery.yaml
index c73abb2ff513..2dda91587dc3 100644
--- a/Documentation/devicetree/bindings/power/supply/cw2015_battery.yaml
+++ b/Documentation/devicetree/bindings/power/supply/cw2015_battery.yaml
@@ -14,6 +14,9 @@ description: |
phandle in monitored-battery. If specified the driver uses the
charge-full-design-microamp-hours property of the battery.
+allOf:
+ - $ref: power-supply.yaml#
+
properties:
compatible:
const: cellwise,cw2015
@@ -37,9 +40,6 @@ properties:
minimum: 250
power-supplies:
- description:
- Specifies supplies used for charging the battery connected to this gauge
- $ref: /schemas/types.yaml#/definitions/phandle-array
minItems: 1
maxItems: 8 # Should be enough
diff --git a/Documentation/devicetree/bindings/power/supply/power-supply.yaml b/Documentation/devicetree/bindings/power/supply/power-supply.yaml
index 259760167759..531b67225c74 100644
--- a/Documentation/devicetree/bindings/power/supply/power-supply.yaml
+++ b/Documentation/devicetree/bindings/power/supply/power-supply.yaml
@@ -12,6 +12,8 @@ maintainers:
properties:
power-supplies:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ maxItems: 1
description:
This property is added to a supply in order to list the devices which
supply it power, referenced by their phandles.
diff --git a/Documentation/devicetree/bindings/regulator/regulator.yaml b/Documentation/devicetree/bindings/regulator/regulator.yaml
index ed560ee8714e..a9b66ececccf 100644
--- a/Documentation/devicetree/bindings/regulator/regulator.yaml
+++ b/Documentation/devicetree/bindings/regulator/regulator.yaml
@@ -213,6 +213,8 @@ properties:
is 2-way - all coupled regulators should be linked with each other.
A regulator should not be coupled with its supplier.
$ref: "/schemas/types.yaml#/definitions/phandle-array"
+ items:
+ maxItems: 1
regulator-coupled-max-spread:
description: Array of maximum spread between voltages of coupled regulators
diff --git a/Documentation/devicetree/bindings/regulator/st,stm32-booster.yaml b/Documentation/devicetree/bindings/regulator/st,stm32-booster.yaml
index df0191b1ceba..38bdaef4fa39 100644
--- a/Documentation/devicetree/bindings/regulator/st,stm32-booster.yaml
+++ b/Documentation/devicetree/bindings/regulator/st,stm32-booster.yaml
@@ -23,7 +23,7 @@ properties:
- st,stm32mp1-booster
st,syscfg:
- $ref: "/schemas/types.yaml#/definitions/phandle-array"
+ $ref: "/schemas/types.yaml#/definitions/phandle"
description: phandle to system configuration controller.
vdda-supply:
diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml
index c635c181d2c2..bcad8f4080d4 100644
--- a/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml
+++ b/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml
@@ -115,6 +115,12 @@ properties:
qcom,halt-regs:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ - items:
+ - description: Phandle reference to a syscon representing TCSR
+ - description: offsets within syscon for q6 halt registers
+ - description: offsets within syscon for modem halt registers
+ - description: offsets within syscon for nc halt registers
description:
Phandle reference to a syscon representing TCSR followed by the
three offsets within syscon for q6, modem and nc halt registers.
diff --git a/Documentation/devicetree/bindings/remoteproc/st,stm32-rproc.yaml b/Documentation/devicetree/bindings/remoteproc/st,stm32-rproc.yaml
index b587c97c282b..be3d9b0e876b 100644
--- a/Documentation/devicetree/bindings/remoteproc/st,stm32-rproc.yaml
+++ b/Documentation/devicetree/bindings/remoteproc/st,stm32-rproc.yaml
@@ -29,17 +29,22 @@ properties:
st,syscfg-holdboot:
description: remote processor reset hold boot
- - Phandle of syscon block.
- - The offset of the hold boot setting register.
- - The field mask of the hold boot.
$ref: "/schemas/types.yaml#/definitions/phandle-array"
- maxItems: 1
+ items:
+ - items:
+ - description: Phandle of syscon block
+ - description: The offset of the hold boot setting register
+ - description: The field mask of the hold boot
st,syscfg-tz:
description:
Reference to the system configuration which holds the RCC trust zone mode
$ref: "/schemas/types.yaml#/definitions/phandle-array"
- maxItems: 1
+ items:
+ - items:
+ - description: Phandle of syscon block
+ - description: FIXME
+ - description: FIXME
interrupts:
description: Should contain the WWDG1 watchdog reset interrupt
@@ -93,20 +98,32 @@ properties:
$ref: "/schemas/types.yaml#/definitions/phandle-array"
description: |
Reference to the system configuration which holds the remote
- maxItems: 1
+ items:
+ - items:
+ - description: Phandle of syscon block
+ - description: FIXME
+ - description: FIXME
st,syscfg-m4-state:
$ref: "/schemas/types.yaml#/definitions/phandle-array"
description: |
Reference to the tamp register which exposes the Cortex-M4 state.
- maxItems: 1
+ items:
+ - items:
+ - description: Phandle of syscon block with the tamp register
+ - description: FIXME
+ - description: FIXME
st,syscfg-rsc-tbl:
$ref: "/schemas/types.yaml#/definitions/phandle-array"
description: |
Reference to the tamp register which references the Cortex-M4
resource table address.
- maxItems: 1
+ items:
+ - items:
+ - description: Phandle of syscon block with the tamp register
+ - description: FIXME
+ - description: FIXME
st,auto-boot:
$ref: /schemas/types.yaml#/definitions/flag
diff --git a/Documentation/devicetree/bindings/remoteproc/ti,k3-dsp-rproc.yaml b/Documentation/devicetree/bindings/remoteproc/ti,k3-dsp-rproc.yaml
index 7b56497eec4d..4323cefdf19b 100644
--- a/Documentation/devicetree/bindings/remoteproc/ti,k3-dsp-rproc.yaml
+++ b/Documentation/devicetree/bindings/remoteproc/ti,k3-dsp-rproc.yaml
@@ -79,6 +79,8 @@ properties:
$ref: /schemas/types.yaml#/definitions/phandle-array
minItems: 1
maxItems: 4
+ items:
+ maxItems: 1
description: |
phandles to one or more reserved on-chip SRAM regions. The regions
should be defined as child nodes of the respective SRAM node, and
diff --git a/Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml b/Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml
index d9c7e8c2b268..0f2bb06cb7b4 100644
--- a/Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml
+++ b/Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml
@@ -189,6 +189,8 @@ patternProperties:
$ref: /schemas/types.yaml#/definitions/phandle-array
minItems: 1
maxItems: 4
+ items:
+ maxItems: 1
description: |
phandles to one or more reserved on-chip SRAM regions. The regions
should be defined as child nodes of the respective SRAM node, and
diff --git a/Documentation/devicetree/bindings/remoteproc/ti,omap-remoteproc.yaml b/Documentation/devicetree/bindings/remoteproc/ti,omap-remoteproc.yaml
index c6c12129d6b7..1fdc2741c36e 100644
--- a/Documentation/devicetree/bindings/remoteproc/ti,omap-remoteproc.yaml
+++ b/Documentation/devicetree/bindings/remoteproc/ti,omap-remoteproc.yaml
@@ -123,13 +123,14 @@ properties:
ti,bootreg:
$ref: /schemas/types.yaml#/definitions/phandle-array
- description: |
- Should be a triple of the phandle to the System Control
- Configuration region that contains the boot address
- register, the register offset of the boot address
- register within the System Control module, and the bit
- shift within the register. This property is required for
- all the DSP instances on OMAP4, OMAP5 and DRA7xx SoCs.
+ items:
+ - items:
+ - description: phandle to the System Control Configuration region
+ - description: register offset of the boot address register
+ - description: the bit shift within the register
+ description:
+ This property is required for all the DSP instances on OMAP4, OMAP5
+ and DRA7xx SoCs.
ti,autosuspend-delay-ms:
description: |
@@ -140,6 +141,8 @@ properties:
ti,timers:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ maxItems: 1
description: |
One or more phandles to OMAP DMTimer nodes, that serve
as System/Tick timers for the OS running on the remote
@@ -156,6 +159,8 @@ properties:
ti,watchdog-timers:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ maxItems: 1
description: |
One or more phandles to OMAP DMTimer nodes, used to
serve as Watchdog timers for the processor cores. This
diff --git a/Documentation/devicetree/bindings/soc/samsung/exynos-usi.yaml b/Documentation/devicetree/bindings/soc/samsung/exynos-usi.yaml
index 273f2d95a043..58f2e9d8bb0e 100644
--- a/Documentation/devicetree/bindings/soc/samsung/exynos-usi.yaml
+++ b/Documentation/devicetree/bindings/soc/samsung/exynos-usi.yaml
@@ -48,6 +48,10 @@ properties:
samsung,sysreg:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ - items:
+ - description: phandle to System Register syscon node
+ - description: offset of SW_CONF register for this USI controller
description:
Should be phandle/offset pair. The phandle to System Register syscon node
(for the same domain where this USI controller resides) and the offset
diff --git a/Documentation/devicetree/bindings/sound/samsung,aries-wm8994.yaml b/Documentation/devicetree/bindings/sound/samsung,aries-wm8994.yaml
index 5fff586dc802..eb487ed3ca3b 100644
--- a/Documentation/devicetree/bindings/sound/samsung,aries-wm8994.yaml
+++ b/Documentation/devicetree/bindings/sound/samsung,aries-wm8994.yaml
@@ -27,6 +27,8 @@ properties:
sound-dai:
minItems: 2
maxItems: 2
+ items:
+ maxItems: 1
$ref: /schemas/types.yaml#/definitions/phandle-array
description: |
phandles to the I2S controller and bluetooth codec,
diff --git a/Documentation/devicetree/bindings/sound/samsung,midas-audio.yaml b/Documentation/devicetree/bindings/sound/samsung,midas-audio.yaml
index 095775c598fa..3a4df2ce1728 100644
--- a/Documentation/devicetree/bindings/sound/samsung,midas-audio.yaml
+++ b/Documentation/devicetree/bindings/sound/samsung,midas-audio.yaml
@@ -21,8 +21,7 @@ properties:
type: object
properties:
sound-dai:
- $ref: /schemas/types.yaml#/definitions/phandle-array
- maxItems: 1
+ $ref: /schemas/types.yaml#/definitions/phandle
description: phandle to the I2S controller
required:
- sound-dai
diff --git a/Documentation/devicetree/bindings/sound/st,stm32-sai.yaml b/Documentation/devicetree/bindings/sound/st,stm32-sai.yaml
index 1538d11ce9a8..d4fc8fdcb72f 100644
--- a/Documentation/devicetree/bindings/sound/st,stm32-sai.yaml
+++ b/Documentation/devicetree/bindings/sound/st,stm32-sai.yaml
@@ -102,9 +102,11 @@ patternProperties:
By default SAI sub-block is in asynchronous mode.
Must contain the phandle and index of the SAI sub-block providing
the synchronization.
- allOf:
- - $ref: /schemas/types.yaml#/definitions/phandle-array
- - maxItems: 1
+ $ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ - items:
+ - description: phandle of the SAI sub-block
+ - description: index of the SAI sub-block
st,iec60958:
description:
diff --git a/Documentation/devicetree/bindings/thermal/thermal-cooling-devices.yaml b/Documentation/devicetree/bindings/thermal/thermal-cooling-devices.yaml
index f004779ba9b3..850a9841b110 100644
--- a/Documentation/devicetree/bindings/thermal/thermal-cooling-devices.yaml
+++ b/Documentation/devicetree/bindings/thermal/thermal-cooling-devices.yaml
@@ -66,9 +66,9 @@ examples:
compatible = "qcom,kryo385";
reg = <0x0 0x0>;
enable-method = "psci";
- cpu-idle-states = <&LITTLE_CPU_SLEEP_0
- &LITTLE_CPU_SLEEP_1
- &CLUSTER_SLEEP_0>;
+ cpu-idle-states = <&LITTLE_CPU_SLEEP_0>,
+ <&LITTLE_CPU_SLEEP_1>,
+ <&CLUSTER_SLEEP_0>;
capacity-dmips-mhz = <607>;
dynamic-power-coefficient = <100>;
qcom,freq-domain = <&cpufreq_hw 0>;
diff --git a/Documentation/devicetree/bindings/thermal/thermal-idle.yaml b/Documentation/devicetree/bindings/thermal/thermal-idle.yaml
index 6278ccf16f3f..cc938d7ad1f3 100644
--- a/Documentation/devicetree/bindings/thermal/thermal-idle.yaml
+++ b/Documentation/devicetree/bindings/thermal/thermal-idle.yaml
@@ -37,8 +37,8 @@ properties:
exit-latency-us:
description: |
- The exit latency constraint in microsecond for the injected idle state
- for the device. It is the latency constraint to apply when selecting an
+ The exit latency constraint in microsecond for the injected idle state
+ for the device. It is the latency constraint to apply when selecting an
idle state from among all the present ones.
required:
@@ -65,7 +65,7 @@ examples:
capacity-dmips-mhz = <1024>;
dynamic-power-coefficient = <436>;
#cooling-cells = <2>; /* min followed by max */
- cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
+ cpu-idle-states = <&CPU_SLEEP>, <&CLUSTER_SLEEP>;
thermal-idle {
#cooling-cells = <2>;
duration-us = <10000>;
@@ -81,7 +81,7 @@ examples:
capacity-dmips-mhz = <1024>;
dynamic-power-coefficient = <436>;
#cooling-cells = <2>; /* min followed by max */
- cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
+ cpu-idle-states = <&CPU_SLEEP>, <&CLUSTER_SLEEP>;
thermal-idle {
#cooling-cells = <2>;
duration-us = <10000>;
diff --git a/Documentation/devicetree/bindings/usb/nvidia,tegra-xudc.yaml b/Documentation/devicetree/bindings/usb/nvidia,tegra-xudc.yaml
index a39c76b89484..fd6e7c81426e 100644
--- a/Documentation/devicetree/bindings/usb/nvidia,tegra-xudc.yaml
+++ b/Documentation/devicetree/bindings/usb/nvidia,tegra-xudc.yaml
@@ -83,7 +83,7 @@ properties:
- const: ss
nvidia,xusb-padctl:
- $ref: /schemas/types.yaml#/definitions/phandle-array
+ $ref: /schemas/types.yaml#/definitions/phandle
description:
phandle to the XUSB pad controller that is used to configure the USB pads
used by the XUDC controller.
--
2.32.0
12
15
Hello,
I have a problem I guess related to sof... I already asked on the irc
#alsa(a)libera.chat and gnarface advised me to come and ask on this
mailing list!
I am struggling to make the sound of my gpd pocket 3 to work on linux
(archlinux to be precise)! In fact, the sound is not supposed to work
out of the box as other users tested it before me! but they all had
the solution to set the dsp_driver and this didn't worked for me!
I checked several times to see if the module was loaded properly and
yes it is (as you can also check in the alsa-info at the end of the mail)!
If I do aplay -l I get a bunch of hdmi connection that is not working
at all! I'm really lost here and I don't even know what to look for
anymore
The sound works great on windows so This doens't seems to be hardware problem ?!
and I tried to plug an usb headset which give me sound so I doesn't
seems to be config related either ?! (tho the jack doesn't work)
I asked on several places already. I post the different links here in
case you want to check but I don't have any response to any post
unfortunately!
- Post on Archlinux BBS: https://bbs.archlinux.org/viewtopic.php?id=273044
- Post on subreddit GPDPocket:
https://www.reddit.com/r/GPDPocket/comments/s31qi8/gpd_p3_no_sound_linux/
- Screenshot and bios picture of maybe relevant informations:
- https://imgur.com/a/DouSB3m
- https://imgur.com/a/K232PLJ
I hope there is enough informations to help me debug this but if you
need anything I can provide it! this is a small pc and I'm usualy
quarrying it around!
I know this is better to send mail but if you need me to chat for any
reason (it would be easier for instance) I'm usually hanging on the
libera.chat irc as tonitch you can pm or tag me on #alsa
Here is the alsa-info.sh :
http://alsa-project.org/db/?f=6ddb669a19086cebdb121c97c25bbdccb98e856d
Thanks a lot for your help!
PS: Ubuntu mate have released their official pocket 3 distribution and
I tried it but the sound didn't worked either, here is the alsa-info
In case this help ?! :
http://alsa-project.org/db/?f=df4c183fd00cec224006ec8caa228705399ad873
2
1

[PATCH v1 1/1] ASoC: madera: Replace kernel.h with the necessary inclusions
by Andy Shevchenko 24 Jan '22
by Andy Shevchenko 24 Jan '22
24 Jan '22
When kernel.h is used in the headers it adds a lot into dependency hell,
especially when there are circular dependencies are involved.
Replace kernel.h inclusion with the list of what is really being used.
Signed-off-by: Andy Shevchenko <andriy.shevchenko(a)linux.intel.com>
---
include/sound/madera-pdata.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/sound/madera-pdata.h b/include/sound/madera-pdata.h
index e3060f48f108..58398d80c3de 100644
--- a/include/sound/madera-pdata.h
+++ b/include/sound/madera-pdata.h
@@ -9,7 +9,7 @@
#ifndef MADERA_CODEC_PDATA_H
#define MADERA_CODEC_PDATA_H
-#include <linux/kernel.h>
+#include <linux/types.h>
#define MADERA_MAX_INPUT 6
#define MADERA_MAX_MUXED_CHANNELS 4
--
2.34.1
2
2
On Sun, Jan 23, 2022 at 06:52:01PM +0100, Uwe Kleine-König wrote:
> The value returned by an spi driver's remove function is mostly ignored.
> (Only an error message is printed if the value is non-zero that the
> error is ignored.)
>
> So change the prototype of the remove function to return no value. This
> way driver authors are not tempted to assume that passing an error to
> the upper layer is a good idea. All drivers are adapted accordingly.
> There is no intended change of behaviour, all callbacks were prepared to
> return 0 before.
Acked-by: Andy Shevchenko <andriy.shevchenko(a)linux.intel.com>
for whatever I have involved in as a maintainer, reviewer, or
valuable developer :).
Thanks for doing this!
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig(a)pengutronix.de>
> ---
> drivers/bus/moxtet.c | 4 +---
> drivers/char/tpm/st33zp24/spi.c | 4 +---
> drivers/char/tpm/tpm_tis_spi_main.c | 3 +--
> drivers/clk/clk-lmk04832.c | 4 +---
> drivers/gpio/gpio-74x164.c | 4 +---
> drivers/gpio/gpio-max3191x.c | 4 +---
> drivers/gpio/gpio-max7301.c | 4 +---
> drivers/gpio/gpio-mc33880.c | 4 +---
> drivers/gpio/gpio-pisosr.c | 4 +---
> drivers/gpu/drm/panel/panel-abt-y030xx067a.c | 4 +---
> drivers/gpu/drm/panel/panel-ilitek-ili9322.c | 4 +---
> drivers/gpu/drm/panel/panel-ilitek-ili9341.c | 3 +--
> drivers/gpu/drm/panel/panel-innolux-ej030na.c | 4 +---
> drivers/gpu/drm/panel/panel-lg-lb035q02.c | 4 +---
> drivers/gpu/drm/panel/panel-lg-lg4573.c | 4 +---
> drivers/gpu/drm/panel/panel-nec-nl8048hl11.c | 4 +---
> drivers/gpu/drm/panel/panel-novatek-nt39016.c | 4 +---
> drivers/gpu/drm/panel/panel-samsung-db7430.c | 3 +--
> drivers/gpu/drm/panel/panel-samsung-ld9040.c | 4 +---
> drivers/gpu/drm/panel/panel-samsung-s6d27a1.c | 3 +--
> drivers/gpu/drm/panel/panel-samsung-s6e63m0-spi.c | 3 +--
> drivers/gpu/drm/panel/panel-sitronix-st7789v.c | 4 +---
> drivers/gpu/drm/panel/panel-sony-acx565akm.c | 4 +---
> drivers/gpu/drm/panel/panel-tpo-td028ttec1.c | 4 +---
> drivers/gpu/drm/panel/panel-tpo-td043mtea1.c | 4 +---
> drivers/gpu/drm/panel/panel-tpo-tpg110.c | 3 +--
> drivers/gpu/drm/panel/panel-widechips-ws2401.c | 3 +--
> drivers/gpu/drm/tiny/hx8357d.c | 4 +---
> drivers/gpu/drm/tiny/ili9163.c | 4 +---
> drivers/gpu/drm/tiny/ili9225.c | 4 +---
> drivers/gpu/drm/tiny/ili9341.c | 4 +---
> drivers/gpu/drm/tiny/ili9486.c | 4 +---
> drivers/gpu/drm/tiny/mi0283qt.c | 4 +---
> drivers/gpu/drm/tiny/repaper.c | 4 +---
> drivers/gpu/drm/tiny/st7586.c | 4 +---
> drivers/gpu/drm/tiny/st7735r.c | 4 +---
> drivers/hwmon/adcxx.c | 4 +---
> drivers/hwmon/adt7310.c | 3 +--
> drivers/hwmon/max1111.c | 3 +--
> drivers/hwmon/max31722.c | 4 +---
> drivers/iio/accel/bma400_spi.c | 4 +---
> drivers/iio/accel/bmc150-accel-spi.c | 4 +---
> drivers/iio/accel/bmi088-accel-spi.c | 4 +---
> drivers/iio/accel/kxsd9-spi.c | 4 +---
> drivers/iio/accel/mma7455_spi.c | 4 +---
> drivers/iio/accel/sca3000.c | 4 +---
> drivers/iio/adc/ad7266.c | 4 +---
> drivers/iio/adc/ltc2496.c | 4 +---
> drivers/iio/adc/mcp320x.c | 4 +---
> drivers/iio/adc/mcp3911.c | 4 +---
> drivers/iio/adc/ti-adc12138.c | 4 +---
> drivers/iio/adc/ti-ads7950.c | 4 +---
> drivers/iio/adc/ti-ads8688.c | 4 +---
> drivers/iio/adc/ti-tlc4541.c | 4 +---
> drivers/iio/amplifiers/ad8366.c | 4 +---
> drivers/iio/common/ssp_sensors/ssp_dev.c | 4 +---
> drivers/iio/dac/ad5360.c | 4 +---
> drivers/iio/dac/ad5380.c | 4 +---
> drivers/iio/dac/ad5446.c | 4 +---
> drivers/iio/dac/ad5449.c | 4 +---
> drivers/iio/dac/ad5504.c | 4 +---
> drivers/iio/dac/ad5592r.c | 4 +---
> drivers/iio/dac/ad5624r_spi.c | 4 +---
> drivers/iio/dac/ad5686-spi.c | 4 +---
> drivers/iio/dac/ad5761.c | 4 +---
> drivers/iio/dac/ad5764.c | 4 +---
> drivers/iio/dac/ad5791.c | 4 +---
> drivers/iio/dac/ad8801.c | 4 +---
> drivers/iio/dac/ltc1660.c | 4 +---
> drivers/iio/dac/ltc2632.c | 4 +---
> drivers/iio/dac/mcp4922.c | 4 +---
> drivers/iio/dac/ti-dac082s085.c | 4 +---
> drivers/iio/dac/ti-dac7311.c | 3 +--
> drivers/iio/frequency/adf4350.c | 4 +---
> drivers/iio/gyro/bmg160_spi.c | 4 +---
> drivers/iio/gyro/fxas21002c_spi.c | 4 +---
> drivers/iio/health/afe4403.c | 4 +---
> drivers/iio/magnetometer/bmc150_magn_spi.c | 4 +---
> drivers/iio/magnetometer/hmc5843_spi.c | 4 +---
> drivers/iio/potentiometer/max5487.c | 4 +---
> drivers/iio/pressure/ms5611_spi.c | 4 +---
> drivers/iio/pressure/zpa2326_spi.c | 4 +---
> drivers/input/keyboard/applespi.c | 4 +---
> drivers/input/misc/adxl34x-spi.c | 4 +---
> drivers/input/touchscreen/ads7846.c | 4 +---
> drivers/input/touchscreen/cyttsp4_spi.c | 4 +---
> drivers/input/touchscreen/tsc2005.c | 4 +---
> drivers/leds/leds-cr0014114.c | 4 +---
> drivers/leds/leds-dac124s085.c | 4 +---
> drivers/leds/leds-el15203000.c | 4 +---
> drivers/leds/leds-spi-byte.c | 4 +---
> drivers/media/spi/cxd2880-spi.c | 4 +---
> drivers/media/spi/gs1662.c | 4 +---
> drivers/media/tuners/msi001.c | 3 +--
> drivers/mfd/arizona-spi.c | 4 +---
> drivers/mfd/da9052-spi.c | 3 +--
> drivers/mfd/ezx-pcap.c | 4 +---
> drivers/mfd/madera-spi.c | 4 +---
> drivers/mfd/mc13xxx-spi.c | 3 +--
> drivers/mfd/rsmu_spi.c | 4 +---
> drivers/mfd/stmpe-spi.c | 4 +---
> drivers/mfd/tps65912-spi.c | 4 +---
> drivers/misc/ad525x_dpot-spi.c | 3 +--
> drivers/misc/eeprom/eeprom_93xx46.c | 4 +---
> drivers/misc/lattice-ecp3-config.c | 4 +---
> drivers/misc/lis3lv02d/lis3lv02d_spi.c | 4 +---
> drivers/mmc/host/mmc_spi.c | 3 +--
> drivers/mtd/devices/mchp23k256.c | 4 +---
> drivers/mtd/devices/mchp48l640.c | 4 +---
> drivers/mtd/devices/mtd_dataflash.c | 4 +---
> drivers/mtd/devices/sst25l.c | 4 +---
> drivers/net/can/m_can/tcan4x5x-core.c | 4 +---
> drivers/net/can/spi/hi311x.c | 4 +---
> drivers/net/can/spi/mcp251x.c | 4 +---
> drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c | 4 +---
> drivers/net/dsa/b53/b53_spi.c | 4 +---
> drivers/net/dsa/microchip/ksz8795_spi.c | 4 +---
> drivers/net/dsa/microchip/ksz9477_spi.c | 4 +---
> drivers/net/dsa/sja1105/sja1105_main.c | 6 ++----
> drivers/net/dsa/vitesse-vsc73xx-spi.c | 6 ++----
> drivers/net/ethernet/asix/ax88796c_main.c | 4 +---
> drivers/net/ethernet/micrel/ks8851_spi.c | 4 +---
> drivers/net/ethernet/microchip/enc28j60.c | 4 +---
> drivers/net/ethernet/microchip/encx24j600.c | 4 +---
> drivers/net/ethernet/qualcomm/qca_spi.c | 4 +---
> drivers/net/ethernet/vertexcom/mse102x.c | 4 +---
> drivers/net/ethernet/wiznet/w5100-spi.c | 4 +---
> drivers/net/ieee802154/adf7242.c | 4 +---
> drivers/net/ieee802154/at86rf230.c | 4 +---
> drivers/net/ieee802154/ca8210.c | 6 ++----
> drivers/net/ieee802154/cc2520.c | 4 +---
> drivers/net/ieee802154/mcr20a.c | 4 +---
> drivers/net/ieee802154/mrf24j40.c | 4 +---
> drivers/net/phy/spi_ks8995.c | 4 +---
> drivers/net/wan/slic_ds26522.c | 3 +--
> drivers/net/wireless/intersil/p54/p54spi.c | 4 +---
> drivers/net/wireless/marvell/libertas/if_spi.c | 4 +---
> drivers/net/wireless/microchip/wilc1000/spi.c | 4 +---
> drivers/net/wireless/st/cw1200/cw1200_spi.c | 4 +---
> drivers/net/wireless/ti/wl1251/spi.c | 4 +---
> drivers/net/wireless/ti/wlcore/spi.c | 4 +---
> drivers/nfc/nfcmrvl/spi.c | 3 +--
> drivers/nfc/st-nci/spi.c | 4 +---
> drivers/nfc/st95hf/core.c | 4 +---
> drivers/nfc/trf7970a.c | 4 +---
> drivers/platform/chrome/cros_ec_spi.c | 4 +---
> drivers/platform/olpc/olpc-xo175-ec.c | 4 +---
> drivers/rtc/rtc-ds1302.c | 3 +--
> drivers/rtc/rtc-ds1305.c | 4 +---
> drivers/rtc/rtc-ds1343.c | 4 +---
> drivers/spi/spi-mem.c | 6 ++----
> drivers/spi/spi-slave-system-control.c | 3 +--
> drivers/spi/spi-slave-time.c | 3 +--
> drivers/spi/spi-tle62x0.c | 3 +--
> drivers/spi/spi.c | 11 ++---------
> drivers/spi/spidev.c | 4 +---
> drivers/staging/fbtft/fbtft.h | 3 +--
> drivers/staging/pi433/pi433_if.c | 4 +---
> drivers/staging/wfx/bus_spi.c | 3 +--
> drivers/tty/serial/max3100.c | 5 ++---
> drivers/tty/serial/max310x.c | 3 +--
> drivers/tty/serial/sc16is7xx.c | 4 +---
> drivers/usb/gadget/udc/max3420_udc.c | 4 +---
> drivers/usb/host/max3421-hcd.c | 3 +--
> drivers/video/backlight/ams369fg06.c | 3 +--
> drivers/video/backlight/corgi_lcd.c | 3 +--
> drivers/video/backlight/ili922x.c | 3 +--
> drivers/video/backlight/l4f00242t03.c | 3 +--
> drivers/video/backlight/lms501kf03.c | 3 +--
> drivers/video/backlight/ltv350qv.c | 3 +--
> drivers/video/backlight/tdo24m.c | 3 +--
> drivers/video/backlight/tosa_lcd.c | 4 +---
> drivers/video/backlight/vgg2432a4.c | 4 +---
> drivers/video/fbdev/omap/lcd_mipid.c | 4 +---
> .../omap2/omapfb/displays/panel-lgphilips-lb035q02.c | 4 +---
> .../omap2/omapfb/displays/panel-nec-nl8048hl11.c | 4 +---
> .../omap2/omapfb/displays/panel-sony-acx565akm.c | 4 +---
> .../omap2/omapfb/displays/panel-tpo-td028ttec1.c | 4 +---
> .../omap2/omapfb/displays/panel-tpo-td043mtea1.c | 4 +---
> include/linux/spi/spi.h | 2 +-
> sound/pci/hda/cs35l41_hda_spi.c | 4 +---
> sound/soc/codecs/adau1761-spi.c | 3 +--
> sound/soc/codecs/adau1781-spi.c | 3 +--
> sound/soc/codecs/cs35l41-spi.c | 4 +---
> sound/soc/codecs/pcm3168a-spi.c | 4 +---
> sound/soc/codecs/pcm512x-spi.c | 3 +--
> sound/soc/codecs/tlv320aic32x4-spi.c | 4 +---
> sound/soc/codecs/tlv320aic3x-spi.c | 4 +---
> sound/soc/codecs/wm0010.c | 4 +---
> sound/soc/codecs/wm8804-spi.c | 3 +--
> sound/spi/at73c213.c | 4 +---
> 191 files changed, 197 insertions(+), 545 deletions(-)
>
> diff --git a/drivers/bus/moxtet.c b/drivers/bus/moxtet.c
> index fd87a59837fa..5eb0fe73ddc4 100644
> --- a/drivers/bus/moxtet.c
> +++ b/drivers/bus/moxtet.c
> @@ -815,7 +815,7 @@ static int moxtet_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int moxtet_remove(struct spi_device *spi)
> +static void moxtet_remove(struct spi_device *spi)
> {
> struct moxtet *moxtet = spi_get_drvdata(spi);
>
> @@ -828,8 +828,6 @@ static int moxtet_remove(struct spi_device *spi)
> device_for_each_child(moxtet->dev, NULL, __unregister);
>
> mutex_destroy(&moxtet->lock);
> -
> - return 0;
> }
>
> static const struct of_device_id moxtet_dt_ids[] = {
> diff --git a/drivers/char/tpm/st33zp24/spi.c b/drivers/char/tpm/st33zp24/spi.c
> index ccd9e42b8eab..22d184884694 100644
> --- a/drivers/char/tpm/st33zp24/spi.c
> +++ b/drivers/char/tpm/st33zp24/spi.c
> @@ -381,13 +381,11 @@ static int st33zp24_spi_probe(struct spi_device *dev)
> * @param: client, the spi_device description (TPM SPI description).
> * @return: 0 in case of success.
> */
> -static int st33zp24_spi_remove(struct spi_device *dev)
> +static void st33zp24_spi_remove(struct spi_device *dev)
> {
> struct tpm_chip *chip = spi_get_drvdata(dev);
>
> st33zp24_remove(chip);
> -
> - return 0;
> }
>
> static const struct spi_device_id st33zp24_spi_id[] = {
> diff --git a/drivers/char/tpm/tpm_tis_spi_main.c b/drivers/char/tpm/tpm_tis_spi_main.c
> index aaa59a00eeae..184396b3af50 100644
> --- a/drivers/char/tpm/tpm_tis_spi_main.c
> +++ b/drivers/char/tpm/tpm_tis_spi_main.c
> @@ -254,13 +254,12 @@ static int tpm_tis_spi_driver_probe(struct spi_device *spi)
>
> static SIMPLE_DEV_PM_OPS(tpm_tis_pm, tpm_pm_suspend, tpm_tis_spi_resume);
>
> -static int tpm_tis_spi_remove(struct spi_device *dev)
> +static void tpm_tis_spi_remove(struct spi_device *dev)
> {
> struct tpm_chip *chip = spi_get_drvdata(dev);
>
> tpm_chip_unregister(chip);
> tpm_tis_remove(chip);
> - return 0;
> }
>
> static const struct spi_device_id tpm_tis_spi_id[] = {
> diff --git a/drivers/clk/clk-lmk04832.c b/drivers/clk/clk-lmk04832.c
> index 8f02c0b88000..f416f8bc2898 100644
> --- a/drivers/clk/clk-lmk04832.c
> +++ b/drivers/clk/clk-lmk04832.c
> @@ -1544,14 +1544,12 @@ static int lmk04832_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int lmk04832_remove(struct spi_device *spi)
> +static void lmk04832_remove(struct spi_device *spi)
> {
> struct lmk04832 *lmk = spi_get_drvdata(spi);
>
> clk_disable_unprepare(lmk->oscin);
> of_clk_del_provider(spi->dev.of_node);
> -
> - return 0;
> }
> static const struct spi_device_id lmk04832_id[] = {
> { "lmk04832", LMK04832 },
> diff --git a/drivers/gpio/gpio-74x164.c b/drivers/gpio/gpio-74x164.c
> index 4a55cdf089d6..e00c33310517 100644
> --- a/drivers/gpio/gpio-74x164.c
> +++ b/drivers/gpio/gpio-74x164.c
> @@ -163,15 +163,13 @@ static int gen_74x164_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int gen_74x164_remove(struct spi_device *spi)
> +static void gen_74x164_remove(struct spi_device *spi)
> {
> struct gen_74x164_chip *chip = spi_get_drvdata(spi);
>
> gpiod_set_value_cansleep(chip->gpiod_oe, 0);
> gpiochip_remove(&chip->gpio_chip);
> mutex_destroy(&chip->lock);
> -
> - return 0;
> }
>
> static const struct spi_device_id gen_74x164_spi_ids[] = {
> diff --git a/drivers/gpio/gpio-max3191x.c b/drivers/gpio/gpio-max3191x.c
> index 51cd6f98d1c7..161c4751c5f7 100644
> --- a/drivers/gpio/gpio-max3191x.c
> +++ b/drivers/gpio/gpio-max3191x.c
> @@ -443,14 +443,12 @@ static int max3191x_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int max3191x_remove(struct spi_device *spi)
> +static void max3191x_remove(struct spi_device *spi)
> {
> struct max3191x_chip *max3191x = spi_get_drvdata(spi);
>
> gpiochip_remove(&max3191x->gpio);
> mutex_destroy(&max3191x->lock);
> -
> - return 0;
> }
>
> static int __init max3191x_register_driver(struct spi_driver *sdrv)
> diff --git a/drivers/gpio/gpio-max7301.c b/drivers/gpio/gpio-max7301.c
> index 5862d73bf325..11813f41d460 100644
> --- a/drivers/gpio/gpio-max7301.c
> +++ b/drivers/gpio/gpio-max7301.c
> @@ -64,11 +64,9 @@ static int max7301_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int max7301_remove(struct spi_device *spi)
> +static void max7301_remove(struct spi_device *spi)
> {
> __max730x_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id max7301_id[] = {
> diff --git a/drivers/gpio/gpio-mc33880.c b/drivers/gpio/gpio-mc33880.c
> index 31d2be1bebc8..cd9b16dbe1a9 100644
> --- a/drivers/gpio/gpio-mc33880.c
> +++ b/drivers/gpio/gpio-mc33880.c
> @@ -134,7 +134,7 @@ static int mc33880_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mc33880_remove(struct spi_device *spi)
> +static void mc33880_remove(struct spi_device *spi)
> {
> struct mc33880 *mc;
>
> @@ -142,8 +142,6 @@ static int mc33880_remove(struct spi_device *spi)
>
> gpiochip_remove(&mc->chip);
> mutex_destroy(&mc->lock);
> -
> - return 0;
> }
>
> static struct spi_driver mc33880_driver = {
> diff --git a/drivers/gpio/gpio-pisosr.c b/drivers/gpio/gpio-pisosr.c
> index 8e04054cf07e..81a47ae09ff8 100644
> --- a/drivers/gpio/gpio-pisosr.c
> +++ b/drivers/gpio/gpio-pisosr.c
> @@ -163,15 +163,13 @@ static int pisosr_gpio_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int pisosr_gpio_remove(struct spi_device *spi)
> +static void pisosr_gpio_remove(struct spi_device *spi)
> {
> struct pisosr_gpio *gpio = spi_get_drvdata(spi);
>
> gpiochip_remove(&gpio->chip);
>
> mutex_destroy(&gpio->lock);
> -
> - return 0;
> }
>
> static const struct spi_device_id pisosr_gpio_id_table[] = {
> diff --git a/drivers/gpu/drm/panel/panel-abt-y030xx067a.c b/drivers/gpu/drm/panel/panel-abt-y030xx067a.c
> index f043b484055b..ed626fdc08e8 100644
> --- a/drivers/gpu/drm/panel/panel-abt-y030xx067a.c
> +++ b/drivers/gpu/drm/panel/panel-abt-y030xx067a.c
> @@ -293,15 +293,13 @@ static int y030xx067a_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int y030xx067a_remove(struct spi_device *spi)
> +static void y030xx067a_remove(struct spi_device *spi)
> {
> struct y030xx067a *priv = spi_get_drvdata(spi);
>
> drm_panel_remove(&priv->panel);
> drm_panel_disable(&priv->panel);
> drm_panel_unprepare(&priv->panel);
> -
> - return 0;
> }
>
> static const struct drm_display_mode y030xx067a_modes[] = {
> diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9322.c b/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
> index 8e84df9a0033..3dfafa585127 100644
> --- a/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
> +++ b/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
> @@ -896,14 +896,12 @@ static int ili9322_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ili9322_remove(struct spi_device *spi)
> +static void ili9322_remove(struct spi_device *spi)
> {
> struct ili9322 *ili = spi_get_drvdata(spi);
>
> ili9322_power_off(ili);
> drm_panel_remove(&ili->panel);
> -
> - return 0;
> }
>
> /*
> diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9341.c b/drivers/gpu/drm/panel/panel-ilitek-ili9341.c
> index 2c3378a259b1..a07ef26234e5 100644
> --- a/drivers/gpu/drm/panel/panel-ilitek-ili9341.c
> +++ b/drivers/gpu/drm/panel/panel-ilitek-ili9341.c
> @@ -728,7 +728,7 @@ static int ili9341_probe(struct spi_device *spi)
> return -1;
> }
>
> -static int ili9341_remove(struct spi_device *spi)
> +static void ili9341_remove(struct spi_device *spi)
> {
> const struct spi_device_id *id = spi_get_device_id(spi);
> struct ili9341 *ili = spi_get_drvdata(spi);
> @@ -741,7 +741,6 @@ static int ili9341_remove(struct spi_device *spi)
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> }
> - return 0;
> }
>
> static void ili9341_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/panel/panel-innolux-ej030na.c b/drivers/gpu/drm/panel/panel-innolux-ej030na.c
> index c558de3f99be..e3b1daa0cb72 100644
> --- a/drivers/gpu/drm/panel/panel-innolux-ej030na.c
> +++ b/drivers/gpu/drm/panel/panel-innolux-ej030na.c
> @@ -219,15 +219,13 @@ static int ej030na_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ej030na_remove(struct spi_device *spi)
> +static void ej030na_remove(struct spi_device *spi)
> {
> struct ej030na *priv = spi_get_drvdata(spi);
>
> drm_panel_remove(&priv->panel);
> drm_panel_disable(&priv->panel);
> drm_panel_unprepare(&priv->panel);
> -
> - return 0;
> }
>
> static const struct drm_display_mode ej030na_modes[] = {
> diff --git a/drivers/gpu/drm/panel/panel-lg-lb035q02.c b/drivers/gpu/drm/panel/panel-lg-lb035q02.c
> index f3183b68704f..9d0d4faa3f58 100644
> --- a/drivers/gpu/drm/panel/panel-lg-lb035q02.c
> +++ b/drivers/gpu/drm/panel/panel-lg-lb035q02.c
> @@ -203,14 +203,12 @@ static int lb035q02_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int lb035q02_remove(struct spi_device *spi)
> +static void lb035q02_remove(struct spi_device *spi)
> {
> struct lb035q02_device *lcd = spi_get_drvdata(spi);
>
> drm_panel_remove(&lcd->panel);
> drm_panel_disable(&lcd->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id lb035q02_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-lg-lg4573.c b/drivers/gpu/drm/panel/panel-lg-lg4573.c
> index 8e5160af1de5..cf246d15b7b6 100644
> --- a/drivers/gpu/drm/panel/panel-lg-lg4573.c
> +++ b/drivers/gpu/drm/panel/panel-lg-lg4573.c
> @@ -266,14 +266,12 @@ static int lg4573_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int lg4573_remove(struct spi_device *spi)
> +static void lg4573_remove(struct spi_device *spi)
> {
> struct lg4573 *ctx = spi_get_drvdata(spi);
>
> lg4573_display_off(ctx);
> drm_panel_remove(&ctx->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id lg4573_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c b/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c
> index 6e5ab1debc8b..81c5c541a351 100644
> --- a/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c
> +++ b/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c
> @@ -212,15 +212,13 @@ static int nl8048_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int nl8048_remove(struct spi_device *spi)
> +static void nl8048_remove(struct spi_device *spi)
> {
> struct nl8048_panel *lcd = spi_get_drvdata(spi);
>
> drm_panel_remove(&lcd->panel);
> drm_panel_disable(&lcd->panel);
> drm_panel_unprepare(&lcd->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id nl8048_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-novatek-nt39016.c b/drivers/gpu/drm/panel/panel-novatek-nt39016.c
> index d036853db865..f58cfb10b58a 100644
> --- a/drivers/gpu/drm/panel/panel-novatek-nt39016.c
> +++ b/drivers/gpu/drm/panel/panel-novatek-nt39016.c
> @@ -292,7 +292,7 @@ static int nt39016_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int nt39016_remove(struct spi_device *spi)
> +static void nt39016_remove(struct spi_device *spi)
> {
> struct nt39016 *panel = spi_get_drvdata(spi);
>
> @@ -300,8 +300,6 @@ static int nt39016_remove(struct spi_device *spi)
>
> nt39016_disable(&panel->drm_panel);
> nt39016_unprepare(&panel->drm_panel);
> -
> - return 0;
> }
>
> static const struct drm_display_mode kd035g6_display_modes[] = {
> diff --git a/drivers/gpu/drm/panel/panel-samsung-db7430.c b/drivers/gpu/drm/panel/panel-samsung-db7430.c
> index ead479719f00..04640c5256a8 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-db7430.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-db7430.c
> @@ -314,12 +314,11 @@ static int db7430_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int db7430_remove(struct spi_device *spi)
> +static void db7430_remove(struct spi_device *spi)
> {
> struct db7430 *db = spi_get_drvdata(spi);
>
> drm_panel_remove(&db->panel);
> - return 0;
> }
>
> /*
> diff --git a/drivers/gpu/drm/panel/panel-samsung-ld9040.c b/drivers/gpu/drm/panel/panel-samsung-ld9040.c
> index c4b388850a13..01eb211f32f7 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-ld9040.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-ld9040.c
> @@ -358,14 +358,12 @@ static int ld9040_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ld9040_remove(struct spi_device *spi)
> +static void ld9040_remove(struct spi_device *spi)
> {
> struct ld9040 *ctx = spi_get_drvdata(spi);
>
> ld9040_power_off(ctx);
> drm_panel_remove(&ctx->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id ld9040_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-samsung-s6d27a1.c b/drivers/gpu/drm/panel/panel-samsung-s6d27a1.c
> index 1696ceb36aa0..2adb223a895c 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-s6d27a1.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-s6d27a1.c
> @@ -291,12 +291,11 @@ static int s6d27a1_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int s6d27a1_remove(struct spi_device *spi)
> +static void s6d27a1_remove(struct spi_device *spi)
> {
> struct s6d27a1 *ctx = spi_get_drvdata(spi);
>
> drm_panel_remove(&ctx->panel);
> - return 0;
> }
>
> static const struct of_device_id s6d27a1_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e63m0-spi.c b/drivers/gpu/drm/panel/panel-samsung-s6e63m0-spi.c
> index c178d962b0d5..d99afcc672ca 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-s6e63m0-spi.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-s6e63m0-spi.c
> @@ -62,10 +62,9 @@ static int s6e63m0_spi_probe(struct spi_device *spi)
> s6e63m0_spi_dcs_write, false);
> }
>
> -static int s6e63m0_spi_remove(struct spi_device *spi)
> +static void s6e63m0_spi_remove(struct spi_device *spi)
> {
> s6e63m0_remove(&spi->dev);
> - return 0;
> }
>
> static const struct of_device_id s6e63m0_spi_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7789v.c b/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
> index 61e565524542..bbc4569cbcdc 100644
> --- a/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
> +++ b/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
> @@ -387,13 +387,11 @@ static int st7789v_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int st7789v_remove(struct spi_device *spi)
> +static void st7789v_remove(struct spi_device *spi)
> {
> struct st7789v *ctx = spi_get_drvdata(spi);
>
> drm_panel_remove(&ctx->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id st7789v_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-sony-acx565akm.c b/drivers/gpu/drm/panel/panel-sony-acx565akm.c
> index ba0b3ead150f..0d7541a33f87 100644
> --- a/drivers/gpu/drm/panel/panel-sony-acx565akm.c
> +++ b/drivers/gpu/drm/panel/panel-sony-acx565akm.c
> @@ -655,7 +655,7 @@ static int acx565akm_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int acx565akm_remove(struct spi_device *spi)
> +static void acx565akm_remove(struct spi_device *spi)
> {
> struct acx565akm_panel *lcd = spi_get_drvdata(spi);
>
> @@ -666,8 +666,6 @@ static int acx565akm_remove(struct spi_device *spi)
>
> drm_panel_disable(&lcd->panel);
> drm_panel_unprepare(&lcd->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id acx565akm_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c b/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c
> index ba0c00d1a001..4dbf8b88f264 100644
> --- a/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c
> +++ b/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c
> @@ -350,15 +350,13 @@ static int td028ttec1_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int td028ttec1_remove(struct spi_device *spi)
> +static void td028ttec1_remove(struct spi_device *spi)
> {
> struct td028ttec1_panel *lcd = spi_get_drvdata(spi);
>
> drm_panel_remove(&lcd->panel);
> drm_panel_disable(&lcd->panel);
> drm_panel_unprepare(&lcd->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id td028ttec1_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c b/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c
> index 1866cdb8f9c1..cf4609bb9b1d 100644
> --- a/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c
> +++ b/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c
> @@ -463,7 +463,7 @@ static int td043mtea1_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int td043mtea1_remove(struct spi_device *spi)
> +static void td043mtea1_remove(struct spi_device *spi)
> {
> struct td043mtea1_panel *lcd = spi_get_drvdata(spi);
>
> @@ -472,8 +472,6 @@ static int td043mtea1_remove(struct spi_device *spi)
> drm_panel_unprepare(&lcd->panel);
>
> sysfs_remove_group(&spi->dev.kobj, &td043mtea1_attr_group);
> -
> - return 0;
> }
>
> static const struct of_device_id td043mtea1_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-tpo-tpg110.c b/drivers/gpu/drm/panel/panel-tpo-tpg110.c
> index e3791dad6830..0b1f5a11a055 100644
> --- a/drivers/gpu/drm/panel/panel-tpo-tpg110.c
> +++ b/drivers/gpu/drm/panel/panel-tpo-tpg110.c
> @@ -450,12 +450,11 @@ static int tpg110_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int tpg110_remove(struct spi_device *spi)
> +static void tpg110_remove(struct spi_device *spi)
> {
> struct tpg110 *tpg = spi_get_drvdata(spi);
>
> drm_panel_remove(&tpg->panel);
> - return 0;
> }
>
> static const struct of_device_id tpg110_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-widechips-ws2401.c b/drivers/gpu/drm/panel/panel-widechips-ws2401.c
> index 8bc976f54b80..236f3cb2b594 100644
> --- a/drivers/gpu/drm/panel/panel-widechips-ws2401.c
> +++ b/drivers/gpu/drm/panel/panel-widechips-ws2401.c
> @@ -407,12 +407,11 @@ static int ws2401_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ws2401_remove(struct spi_device *spi)
> +static void ws2401_remove(struct spi_device *spi)
> {
> struct ws2401 *ws = spi_get_drvdata(spi);
>
> drm_panel_remove(&ws->panel);
> - return 0;
> }
>
> /*
> diff --git a/drivers/gpu/drm/tiny/hx8357d.c b/drivers/gpu/drm/tiny/hx8357d.c
> index 9b33c05732aa..ebb025543f8d 100644
> --- a/drivers/gpu/drm/tiny/hx8357d.c
> +++ b/drivers/gpu/drm/tiny/hx8357d.c
> @@ -263,14 +263,12 @@ static int hx8357d_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int hx8357d_remove(struct spi_device *spi)
> +static void hx8357d_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void hx8357d_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/ili9163.c b/drivers/gpu/drm/tiny/ili9163.c
> index bcc181351236..fc8ed245b0bc 100644
> --- a/drivers/gpu/drm/tiny/ili9163.c
> +++ b/drivers/gpu/drm/tiny/ili9163.c
> @@ -193,14 +193,12 @@ static int ili9163_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ili9163_remove(struct spi_device *spi)
> +static void ili9163_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void ili9163_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/ili9225.c b/drivers/gpu/drm/tiny/ili9225.c
> index 976d3209f164..cc92eb9f2a07 100644
> --- a/drivers/gpu/drm/tiny/ili9225.c
> +++ b/drivers/gpu/drm/tiny/ili9225.c
> @@ -411,14 +411,12 @@ static int ili9225_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ili9225_remove(struct spi_device *spi)
> +static void ili9225_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void ili9225_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/ili9341.c b/drivers/gpu/drm/tiny/ili9341.c
> index 37e0c33399c8..5b8cc770ee7b 100644
> --- a/drivers/gpu/drm/tiny/ili9341.c
> +++ b/drivers/gpu/drm/tiny/ili9341.c
> @@ -225,14 +225,12 @@ static int ili9341_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ili9341_remove(struct spi_device *spi)
> +static void ili9341_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void ili9341_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/ili9486.c b/drivers/gpu/drm/tiny/ili9486.c
> index e9a63f4b2993..6d655e18e0aa 100644
> --- a/drivers/gpu/drm/tiny/ili9486.c
> +++ b/drivers/gpu/drm/tiny/ili9486.c
> @@ -243,14 +243,12 @@ static int ili9486_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ili9486_remove(struct spi_device *spi)
> +static void ili9486_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void ili9486_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/mi0283qt.c b/drivers/gpu/drm/tiny/mi0283qt.c
> index 023de49e7a8e..5e060f6910bb 100644
> --- a/drivers/gpu/drm/tiny/mi0283qt.c
> +++ b/drivers/gpu/drm/tiny/mi0283qt.c
> @@ -233,14 +233,12 @@ static int mi0283qt_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int mi0283qt_remove(struct spi_device *spi)
> +static void mi0283qt_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void mi0283qt_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/repaper.c b/drivers/gpu/drm/tiny/repaper.c
> index 97a775c48cea..beeeb170d0b1 100644
> --- a/drivers/gpu/drm/tiny/repaper.c
> +++ b/drivers/gpu/drm/tiny/repaper.c
> @@ -1140,14 +1140,12 @@ static int repaper_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int repaper_remove(struct spi_device *spi)
> +static void repaper_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void repaper_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/st7586.c b/drivers/gpu/drm/tiny/st7586.c
> index 51b9b9fb3ead..3f38faa1cd8c 100644
> --- a/drivers/gpu/drm/tiny/st7586.c
> +++ b/drivers/gpu/drm/tiny/st7586.c
> @@ -360,14 +360,12 @@ static int st7586_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int st7586_remove(struct spi_device *spi)
> +static void st7586_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void st7586_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/st7735r.c b/drivers/gpu/drm/tiny/st7735r.c
> index fc40dd10efa8..29d618093e94 100644
> --- a/drivers/gpu/drm/tiny/st7735r.c
> +++ b/drivers/gpu/drm/tiny/st7735r.c
> @@ -247,14 +247,12 @@ static int st7735r_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int st7735r_remove(struct spi_device *spi)
> +static void st7735r_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void st7735r_shutdown(struct spi_device *spi)
> diff --git a/drivers/hwmon/adcxx.c b/drivers/hwmon/adcxx.c
> index e5bc5ce09f4e..de37bce24fa6 100644
> --- a/drivers/hwmon/adcxx.c
> +++ b/drivers/hwmon/adcxx.c
> @@ -194,7 +194,7 @@ static int adcxx_probe(struct spi_device *spi)
> return status;
> }
>
> -static int adcxx_remove(struct spi_device *spi)
> +static void adcxx_remove(struct spi_device *spi)
> {
> struct adcxx *adc = spi_get_drvdata(spi);
> int i;
> @@ -205,8 +205,6 @@ static int adcxx_remove(struct spi_device *spi)
> device_remove_file(&spi->dev, &ad_input[i].dev_attr);
>
> mutex_unlock(&adc->lock);
> -
> - return 0;
> }
>
> static const struct spi_device_id adcxx_ids[] = {
> diff --git a/drivers/hwmon/adt7310.c b/drivers/hwmon/adt7310.c
> index c40cac16af68..832d9ec64934 100644
> --- a/drivers/hwmon/adt7310.c
> +++ b/drivers/hwmon/adt7310.c
> @@ -88,10 +88,9 @@ static int adt7310_spi_probe(struct spi_device *spi)
> &adt7310_spi_ops);
> }
>
> -static int adt7310_spi_remove(struct spi_device *spi)
> +static void adt7310_spi_remove(struct spi_device *spi)
> {
> adt7x10_remove(&spi->dev, spi->irq);
> - return 0;
> }
>
> static const struct spi_device_id adt7310_id[] = {
> diff --git a/drivers/hwmon/max1111.c b/drivers/hwmon/max1111.c
> index 5fcfd57df61e..4c5487aeb3cf 100644
> --- a/drivers/hwmon/max1111.c
> +++ b/drivers/hwmon/max1111.c
> @@ -254,7 +254,7 @@ static int max1111_probe(struct spi_device *spi)
> return err;
> }
>
> -static int max1111_remove(struct spi_device *spi)
> +static void max1111_remove(struct spi_device *spi)
> {
> struct max1111_data *data = spi_get_drvdata(spi);
>
> @@ -265,7 +265,6 @@ static int max1111_remove(struct spi_device *spi)
> sysfs_remove_group(&spi->dev.kobj, &max1110_attr_group);
> sysfs_remove_group(&spi->dev.kobj, &max1111_attr_group);
> mutex_destroy(&data->drvdata_lock);
> - return 0;
> }
>
> static const struct spi_device_id max1111_ids[] = {
> diff --git a/drivers/hwmon/max31722.c b/drivers/hwmon/max31722.c
> index 4cf4fe6809a3..93e048ee4955 100644
> --- a/drivers/hwmon/max31722.c
> +++ b/drivers/hwmon/max31722.c
> @@ -100,7 +100,7 @@ static int max31722_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int max31722_remove(struct spi_device *spi)
> +static void max31722_remove(struct spi_device *spi)
> {
> struct max31722_data *data = spi_get_drvdata(spi);
> int ret;
> @@ -111,8 +111,6 @@ static int max31722_remove(struct spi_device *spi)
> if (ret)
> /* There is nothing we can do about this ... */
> dev_warn(&spi->dev, "Failed to put device in stand-by mode\n");
> -
> - return 0;
> }
>
> static int __maybe_unused max31722_suspend(struct device *dev)
> diff --git a/drivers/iio/accel/bma400_spi.c b/drivers/iio/accel/bma400_spi.c
> index 9f622e37477b..9040a717b247 100644
> --- a/drivers/iio/accel/bma400_spi.c
> +++ b/drivers/iio/accel/bma400_spi.c
> @@ -87,11 +87,9 @@ static int bma400_spi_probe(struct spi_device *spi)
> return bma400_probe(&spi->dev, regmap, id->name);
> }
>
> -static int bma400_spi_remove(struct spi_device *spi)
> +static void bma400_spi_remove(struct spi_device *spi)
> {
> bma400_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id bma400_spi_ids[] = {
> diff --git a/drivers/iio/accel/bmc150-accel-spi.c b/drivers/iio/accel/bmc150-accel-spi.c
> index 11559567cb39..80007cc2d044 100644
> --- a/drivers/iio/accel/bmc150-accel-spi.c
> +++ b/drivers/iio/accel/bmc150-accel-spi.c
> @@ -35,11 +35,9 @@ static int bmc150_accel_probe(struct spi_device *spi)
> true);
> }
>
> -static int bmc150_accel_remove(struct spi_device *spi)
> +static void bmc150_accel_remove(struct spi_device *spi)
> {
> bmc150_accel_core_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct acpi_device_id bmc150_accel_acpi_match[] = {
> diff --git a/drivers/iio/accel/bmi088-accel-spi.c b/drivers/iio/accel/bmi088-accel-spi.c
> index 758ad2f12896..06d99d9949f3 100644
> --- a/drivers/iio/accel/bmi088-accel-spi.c
> +++ b/drivers/iio/accel/bmi088-accel-spi.c
> @@ -56,11 +56,9 @@ static int bmi088_accel_probe(struct spi_device *spi)
> true);
> }
>
> -static int bmi088_accel_remove(struct spi_device *spi)
> +static void bmi088_accel_remove(struct spi_device *spi)
> {
> bmi088_accel_core_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id bmi088_accel_id[] = {
> diff --git a/drivers/iio/accel/kxsd9-spi.c b/drivers/iio/accel/kxsd9-spi.c
> index 441e6b764281..57c451cfb9e5 100644
> --- a/drivers/iio/accel/kxsd9-spi.c
> +++ b/drivers/iio/accel/kxsd9-spi.c
> @@ -32,11 +32,9 @@ static int kxsd9_spi_probe(struct spi_device *spi)
> spi_get_device_id(spi)->name);
> }
>
> -static int kxsd9_spi_remove(struct spi_device *spi)
> +static void kxsd9_spi_remove(struct spi_device *spi)
> {
> kxsd9_common_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id kxsd9_spi_id[] = {
> diff --git a/drivers/iio/accel/mma7455_spi.c b/drivers/iio/accel/mma7455_spi.c
> index ecf690692dcc..b746031551a3 100644
> --- a/drivers/iio/accel/mma7455_spi.c
> +++ b/drivers/iio/accel/mma7455_spi.c
> @@ -22,11 +22,9 @@ static int mma7455_spi_probe(struct spi_device *spi)
> return mma7455_core_probe(&spi->dev, regmap, id->name);
> }
>
> -static int mma7455_spi_remove(struct spi_device *spi)
> +static void mma7455_spi_remove(struct spi_device *spi)
> {
> mma7455_core_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id mma7455_spi_ids[] = {
> diff --git a/drivers/iio/accel/sca3000.c b/drivers/iio/accel/sca3000.c
> index 43ecacbdc95a..83c81072511e 100644
> --- a/drivers/iio/accel/sca3000.c
> +++ b/drivers/iio/accel/sca3000.c
> @@ -1524,7 +1524,7 @@ static int sca3000_stop_all_interrupts(struct sca3000_state *st)
> return ret;
> }
>
> -static int sca3000_remove(struct spi_device *spi)
> +static void sca3000_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct sca3000_state *st = iio_priv(indio_dev);
> @@ -1535,8 +1535,6 @@ static int sca3000_remove(struct spi_device *spi)
> sca3000_stop_all_interrupts(st);
> if (spi->irq)
> free_irq(spi->irq, indio_dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id sca3000_id[] = {
> diff --git a/drivers/iio/adc/ad7266.c b/drivers/iio/adc/ad7266.c
> index 1d345d66742d..c17d9b5fbaf6 100644
> --- a/drivers/iio/adc/ad7266.c
> +++ b/drivers/iio/adc/ad7266.c
> @@ -479,7 +479,7 @@ static int ad7266_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad7266_remove(struct spi_device *spi)
> +static void ad7266_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad7266_state *st = iio_priv(indio_dev);
> @@ -488,8 +488,6 @@ static int ad7266_remove(struct spi_device *spi)
> iio_triggered_buffer_cleanup(indio_dev);
> if (!IS_ERR(st->reg))
> regulator_disable(st->reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad7266_id[] = {
> diff --git a/drivers/iio/adc/ltc2496.c b/drivers/iio/adc/ltc2496.c
> index dd956a7c216e..5a55f79f2574 100644
> --- a/drivers/iio/adc/ltc2496.c
> +++ b/drivers/iio/adc/ltc2496.c
> @@ -78,13 +78,11 @@ static int ltc2496_probe(struct spi_device *spi)
> return ltc2497core_probe(dev, indio_dev);
> }
>
> -static int ltc2496_remove(struct spi_device *spi)
> +static void ltc2496_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
>
> ltc2497core_remove(indio_dev);
> -
> - return 0;
> }
>
> static const struct of_device_id ltc2496_of_match[] = {
> diff --git a/drivers/iio/adc/mcp320x.c b/drivers/iio/adc/mcp320x.c
> index 8d1cff28cae0..b4c69acb33e3 100644
> --- a/drivers/iio/adc/mcp320x.c
> +++ b/drivers/iio/adc/mcp320x.c
> @@ -459,15 +459,13 @@ static int mcp320x_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mcp320x_remove(struct spi_device *spi)
> +static void mcp320x_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct mcp320x *adc = iio_priv(indio_dev);
>
> iio_device_unregister(indio_dev);
> regulator_disable(adc->reg);
> -
> - return 0;
> }
>
> static const struct of_device_id mcp320x_dt_ids[] = {
> diff --git a/drivers/iio/adc/mcp3911.c b/drivers/iio/adc/mcp3911.c
> index 13535f148c4c..1cb4590fe412 100644
> --- a/drivers/iio/adc/mcp3911.c
> +++ b/drivers/iio/adc/mcp3911.c
> @@ -321,7 +321,7 @@ static int mcp3911_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mcp3911_remove(struct spi_device *spi)
> +static void mcp3911_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct mcp3911 *adc = iio_priv(indio_dev);
> @@ -331,8 +331,6 @@ static int mcp3911_remove(struct spi_device *spi)
> clk_disable_unprepare(adc->clki);
> if (adc->vref)
> regulator_disable(adc->vref);
> -
> - return 0;
> }
>
> static const struct of_device_id mcp3911_dt_ids[] = {
> diff --git a/drivers/iio/adc/ti-adc12138.c b/drivers/iio/adc/ti-adc12138.c
> index 6eb62b564dae..59d75d09604f 100644
> --- a/drivers/iio/adc/ti-adc12138.c
> +++ b/drivers/iio/adc/ti-adc12138.c
> @@ -503,7 +503,7 @@ static int adc12138_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int adc12138_remove(struct spi_device *spi)
> +static void adc12138_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct adc12138 *adc = iio_priv(indio_dev);
> @@ -514,8 +514,6 @@ static int adc12138_remove(struct spi_device *spi)
> regulator_disable(adc->vref_n);
> regulator_disable(adc->vref_p);
> clk_disable_unprepare(adc->cclk);
> -
> - return 0;
> }
>
> static const struct of_device_id adc12138_dt_ids[] = {
> diff --git a/drivers/iio/adc/ti-ads7950.c b/drivers/iio/adc/ti-ads7950.c
> index a7efa3eada2c..e3658b969c5b 100644
> --- a/drivers/iio/adc/ti-ads7950.c
> +++ b/drivers/iio/adc/ti-ads7950.c
> @@ -662,7 +662,7 @@ static int ti_ads7950_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ti_ads7950_remove(struct spi_device *spi)
> +static void ti_ads7950_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ti_ads7950_state *st = iio_priv(indio_dev);
> @@ -672,8 +672,6 @@ static int ti_ads7950_remove(struct spi_device *spi)
> iio_triggered_buffer_cleanup(indio_dev);
> regulator_disable(st->reg);
> mutex_destroy(&st->slock);
> -
> - return 0;
> }
>
> static const struct spi_device_id ti_ads7950_id[] = {
> diff --git a/drivers/iio/adc/ti-ads8688.c b/drivers/iio/adc/ti-ads8688.c
> index 2e24717d7f55..22c2583eedd0 100644
> --- a/drivers/iio/adc/ti-ads8688.c
> +++ b/drivers/iio/adc/ti-ads8688.c
> @@ -479,7 +479,7 @@ static int ads8688_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ads8688_remove(struct spi_device *spi)
> +static void ads8688_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ads8688_state *st = iio_priv(indio_dev);
> @@ -489,8 +489,6 @@ static int ads8688_remove(struct spi_device *spi)
>
> if (!IS_ERR(st->reg))
> regulator_disable(st->reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ads8688_id[] = {
> diff --git a/drivers/iio/adc/ti-tlc4541.c b/drivers/iio/adc/ti-tlc4541.c
> index 403b787f9f7e..2406eda9dfc6 100644
> --- a/drivers/iio/adc/ti-tlc4541.c
> +++ b/drivers/iio/adc/ti-tlc4541.c
> @@ -224,7 +224,7 @@ static int tlc4541_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int tlc4541_remove(struct spi_device *spi)
> +static void tlc4541_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct tlc4541_state *st = iio_priv(indio_dev);
> @@ -232,8 +232,6 @@ static int tlc4541_remove(struct spi_device *spi)
> iio_device_unregister(indio_dev);
> iio_triggered_buffer_cleanup(indio_dev);
> regulator_disable(st->reg);
> -
> - return 0;
> }
>
> static const struct of_device_id tlc4541_dt_ids[] = {
> diff --git a/drivers/iio/amplifiers/ad8366.c b/drivers/iio/amplifiers/ad8366.c
> index cfcf18a0bce8..1134ae12e531 100644
> --- a/drivers/iio/amplifiers/ad8366.c
> +++ b/drivers/iio/amplifiers/ad8366.c
> @@ -298,7 +298,7 @@ static int ad8366_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad8366_remove(struct spi_device *spi)
> +static void ad8366_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad8366_state *st = iio_priv(indio_dev);
> @@ -308,8 +308,6 @@ static int ad8366_remove(struct spi_device *spi)
>
> if (!IS_ERR(reg))
> regulator_disable(reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad8366_id[] = {
> diff --git a/drivers/iio/common/ssp_sensors/ssp_dev.c b/drivers/iio/common/ssp_sensors/ssp_dev.c
> index 1aee87100038..eafaf4529df5 100644
> --- a/drivers/iio/common/ssp_sensors/ssp_dev.c
> +++ b/drivers/iio/common/ssp_sensors/ssp_dev.c
> @@ -586,7 +586,7 @@ static int ssp_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ssp_remove(struct spi_device *spi)
> +static void ssp_remove(struct spi_device *spi)
> {
> struct ssp_data *data = spi_get_drvdata(spi);
>
> @@ -608,8 +608,6 @@ static int ssp_remove(struct spi_device *spi)
> mutex_destroy(&data->pending_lock);
>
> mfd_remove_devices(&spi->dev);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/iio/dac/ad5360.c b/drivers/iio/dac/ad5360.c
> index 2d3b14c407d8..ecbc6a51d60f 100644
> --- a/drivers/iio/dac/ad5360.c
> +++ b/drivers/iio/dac/ad5360.c
> @@ -521,7 +521,7 @@ static int ad5360_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5360_remove(struct spi_device *spi)
> +static void ad5360_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad5360_state *st = iio_priv(indio_dev);
> @@ -531,8 +531,6 @@ static int ad5360_remove(struct spi_device *spi)
> kfree(indio_dev->channels);
>
> regulator_bulk_disable(st->chip_info->num_vrefs, st->vref_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5360_ids[] = {
> diff --git a/drivers/iio/dac/ad5380.c b/drivers/iio/dac/ad5380.c
> index e38860a6a9f3..82e1d9bd773e 100644
> --- a/drivers/iio/dac/ad5380.c
> +++ b/drivers/iio/dac/ad5380.c
> @@ -488,11 +488,9 @@ static int ad5380_spi_probe(struct spi_device *spi)
> return ad5380_probe(&spi->dev, regmap, id->driver_data, id->name);
> }
>
> -static int ad5380_spi_remove(struct spi_device *spi)
> +static void ad5380_spi_remove(struct spi_device *spi)
> {
> ad5380_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5380_spi_ids[] = {
> diff --git a/drivers/iio/dac/ad5446.c b/drivers/iio/dac/ad5446.c
> index 1c9b54c012a7..14cfabacbea5 100644
> --- a/drivers/iio/dac/ad5446.c
> +++ b/drivers/iio/dac/ad5446.c
> @@ -491,11 +491,9 @@ static int ad5446_spi_probe(struct spi_device *spi)
> &ad5446_spi_chip_info[id->driver_data]);
> }
>
> -static int ad5446_spi_remove(struct spi_device *spi)
> +static void ad5446_spi_remove(struct spi_device *spi)
> {
> ad5446_remove(&spi->dev);
> -
> - return 0;
> }
>
> static struct spi_driver ad5446_spi_driver = {
> diff --git a/drivers/iio/dac/ad5449.c b/drivers/iio/dac/ad5449.c
> index f5e93c6acc9d..bad9bdaafa94 100644
> --- a/drivers/iio/dac/ad5449.c
> +++ b/drivers/iio/dac/ad5449.c
> @@ -330,7 +330,7 @@ static int ad5449_spi_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5449_spi_remove(struct spi_device *spi)
> +static void ad5449_spi_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad5449 *st = iio_priv(indio_dev);
> @@ -338,8 +338,6 @@ static int ad5449_spi_remove(struct spi_device *spi)
> iio_device_unregister(indio_dev);
>
> regulator_bulk_disable(st->chip_info->num_channels, st->vref_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5449_spi_ids[] = {
> diff --git a/drivers/iio/dac/ad5504.c b/drivers/iio/dac/ad5504.c
> index b631261efa97..8507573aa13e 100644
> --- a/drivers/iio/dac/ad5504.c
> +++ b/drivers/iio/dac/ad5504.c
> @@ -336,7 +336,7 @@ static int ad5504_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5504_remove(struct spi_device *spi)
> +static void ad5504_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad5504_state *st = iio_priv(indio_dev);
> @@ -345,8 +345,6 @@ static int ad5504_remove(struct spi_device *spi)
>
> if (!IS_ERR(st->reg))
> regulator_disable(st->reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5504_id[] = {
> diff --git a/drivers/iio/dac/ad5592r.c b/drivers/iio/dac/ad5592r.c
> index 6bfd7951e18c..0f7abfa75bec 100644
> --- a/drivers/iio/dac/ad5592r.c
> +++ b/drivers/iio/dac/ad5592r.c
> @@ -130,11 +130,9 @@ static int ad5592r_spi_probe(struct spi_device *spi)
> return ad5592r_probe(&spi->dev, id->name, &ad5592r_rw_ops);
> }
>
> -static int ad5592r_spi_remove(struct spi_device *spi)
> +static void ad5592r_spi_remove(struct spi_device *spi)
> {
> ad5592r_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5592r_spi_ids[] = {
> diff --git a/drivers/iio/dac/ad5624r_spi.c b/drivers/iio/dac/ad5624r_spi.c
> index 3c98941b9f99..371e812850eb 100644
> --- a/drivers/iio/dac/ad5624r_spi.c
> +++ b/drivers/iio/dac/ad5624r_spi.c
> @@ -293,7 +293,7 @@ static int ad5624r_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5624r_remove(struct spi_device *spi)
> +static void ad5624r_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad5624r_state *st = iio_priv(indio_dev);
> @@ -301,8 +301,6 @@ static int ad5624r_remove(struct spi_device *spi)
> iio_device_unregister(indio_dev);
> if (!IS_ERR(st->reg))
> regulator_disable(st->reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5624r_id[] = {
> diff --git a/drivers/iio/dac/ad5686-spi.c b/drivers/iio/dac/ad5686-spi.c
> index 2628810fdbb1..d26fb29b6b04 100644
> --- a/drivers/iio/dac/ad5686-spi.c
> +++ b/drivers/iio/dac/ad5686-spi.c
> @@ -95,11 +95,9 @@ static int ad5686_spi_probe(struct spi_device *spi)
> ad5686_spi_write, ad5686_spi_read);
> }
>
> -static int ad5686_spi_remove(struct spi_device *spi)
> +static void ad5686_spi_remove(struct spi_device *spi)
> {
> ad5686_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5686_spi_id[] = {
> diff --git a/drivers/iio/dac/ad5761.c b/drivers/iio/dac/ad5761.c
> index e37e095e94fc..4cb8471db81e 100644
> --- a/drivers/iio/dac/ad5761.c
> +++ b/drivers/iio/dac/ad5761.c
> @@ -394,7 +394,7 @@ static int ad5761_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5761_remove(struct spi_device *spi)
> +static void ad5761_remove(struct spi_device *spi)
> {
> struct iio_dev *iio_dev = spi_get_drvdata(spi);
> struct ad5761_state *st = iio_priv(iio_dev);
> @@ -403,8 +403,6 @@ static int ad5761_remove(struct spi_device *spi)
>
> if (!IS_ERR_OR_NULL(st->vref_reg))
> regulator_disable(st->vref_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5761_id[] = {
> diff --git a/drivers/iio/dac/ad5764.c b/drivers/iio/dac/ad5764.c
> index ae089b9145cb..d235a8047ba0 100644
> --- a/drivers/iio/dac/ad5764.c
> +++ b/drivers/iio/dac/ad5764.c
> @@ -332,7 +332,7 @@ static int ad5764_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5764_remove(struct spi_device *spi)
> +static void ad5764_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad5764_state *st = iio_priv(indio_dev);
> @@ -341,8 +341,6 @@ static int ad5764_remove(struct spi_device *spi)
>
> if (st->chip_info->int_vref == 0)
> regulator_bulk_disable(ARRAY_SIZE(st->vref_reg), st->vref_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5764_ids[] = {
> diff --git a/drivers/iio/dac/ad5791.c b/drivers/iio/dac/ad5791.c
> index 7b4579d73d18..2b14914b4050 100644
> --- a/drivers/iio/dac/ad5791.c
> +++ b/drivers/iio/dac/ad5791.c
> @@ -428,7 +428,7 @@ static int ad5791_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5791_remove(struct spi_device *spi)
> +static void ad5791_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad5791_state *st = iio_priv(indio_dev);
> @@ -439,8 +439,6 @@ static int ad5791_remove(struct spi_device *spi)
>
> if (!IS_ERR(st->reg_vss))
> regulator_disable(st->reg_vss);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5791_id[] = {
> diff --git a/drivers/iio/dac/ad8801.c b/drivers/iio/dac/ad8801.c
> index 5ecfdad54dec..6be35c92d435 100644
> --- a/drivers/iio/dac/ad8801.c
> +++ b/drivers/iio/dac/ad8801.c
> @@ -193,7 +193,7 @@ static int ad8801_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad8801_remove(struct spi_device *spi)
> +static void ad8801_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad8801_state *state = iio_priv(indio_dev);
> @@ -202,8 +202,6 @@ static int ad8801_remove(struct spi_device *spi)
> if (state->vrefl_reg)
> regulator_disable(state->vrefl_reg);
> regulator_disable(state->vrefh_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad8801_ids[] = {
> diff --git a/drivers/iio/dac/ltc1660.c b/drivers/iio/dac/ltc1660.c
> index f6ec9bf5815e..c76233c9bb72 100644
> --- a/drivers/iio/dac/ltc1660.c
> +++ b/drivers/iio/dac/ltc1660.c
> @@ -206,15 +206,13 @@ static int ltc1660_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ltc1660_remove(struct spi_device *spi)
> +static void ltc1660_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ltc1660_priv *priv = iio_priv(indio_dev);
>
> iio_device_unregister(indio_dev);
> regulator_disable(priv->vref_reg);
> -
> - return 0;
> }
>
> static const struct of_device_id ltc1660_dt_ids[] = {
> diff --git a/drivers/iio/dac/ltc2632.c b/drivers/iio/dac/ltc2632.c
> index 53e4b887d372..aed46c80757e 100644
> --- a/drivers/iio/dac/ltc2632.c
> +++ b/drivers/iio/dac/ltc2632.c
> @@ -372,7 +372,7 @@ static int ltc2632_probe(struct spi_device *spi)
> return iio_device_register(indio_dev);
> }
>
> -static int ltc2632_remove(struct spi_device *spi)
> +static void ltc2632_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ltc2632_state *st = iio_priv(indio_dev);
> @@ -381,8 +381,6 @@ static int ltc2632_remove(struct spi_device *spi)
>
> if (st->vref_reg)
> regulator_disable(st->vref_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ltc2632_id[] = {
> diff --git a/drivers/iio/dac/mcp4922.c b/drivers/iio/dac/mcp4922.c
> index 0ae414ee1716..cb9e60e71b91 100644
> --- a/drivers/iio/dac/mcp4922.c
> +++ b/drivers/iio/dac/mcp4922.c
> @@ -172,7 +172,7 @@ static int mcp4922_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mcp4922_remove(struct spi_device *spi)
> +static void mcp4922_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct mcp4922_state *state;
> @@ -180,8 +180,6 @@ static int mcp4922_remove(struct spi_device *spi)
> iio_device_unregister(indio_dev);
> state = iio_priv(indio_dev);
> regulator_disable(state->vref_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id mcp4922_id[] = {
> diff --git a/drivers/iio/dac/ti-dac082s085.c b/drivers/iio/dac/ti-dac082s085.c
> index 6beda2193683..4e1156e6deb2 100644
> --- a/drivers/iio/dac/ti-dac082s085.c
> +++ b/drivers/iio/dac/ti-dac082s085.c
> @@ -313,7 +313,7 @@ static int ti_dac_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ti_dac_remove(struct spi_device *spi)
> +static void ti_dac_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ti_dac_chip *ti_dac = iio_priv(indio_dev);
> @@ -321,8 +321,6 @@ static int ti_dac_remove(struct spi_device *spi)
> iio_device_unregister(indio_dev);
> mutex_destroy(&ti_dac->lock);
> regulator_disable(ti_dac->vref);
> -
> - return 0;
> }
>
> static const struct of_device_id ti_dac_of_id[] = {
> diff --git a/drivers/iio/dac/ti-dac7311.c b/drivers/iio/dac/ti-dac7311.c
> index 99f275829ec2..e10d17e60ed3 100644
> --- a/drivers/iio/dac/ti-dac7311.c
> +++ b/drivers/iio/dac/ti-dac7311.c
> @@ -292,7 +292,7 @@ static int ti_dac_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ti_dac_remove(struct spi_device *spi)
> +static void ti_dac_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ti_dac_chip *ti_dac = iio_priv(indio_dev);
> @@ -300,7 +300,6 @@ static int ti_dac_remove(struct spi_device *spi)
> iio_device_unregister(indio_dev);
> mutex_destroy(&ti_dac->lock);
> regulator_disable(ti_dac->vref);
> - return 0;
> }
>
> static const struct of_device_id ti_dac_of_id[] = {
> diff --git a/drivers/iio/frequency/adf4350.c b/drivers/iio/frequency/adf4350.c
> index 3d9eba716b69..f3521330f6fb 100644
> --- a/drivers/iio/frequency/adf4350.c
> +++ b/drivers/iio/frequency/adf4350.c
> @@ -589,7 +589,7 @@ static int adf4350_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int adf4350_remove(struct spi_device *spi)
> +static void adf4350_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct adf4350_state *st = iio_priv(indio_dev);
> @@ -604,8 +604,6 @@ static int adf4350_remove(struct spi_device *spi)
>
> if (!IS_ERR(reg))
> regulator_disable(reg);
> -
> - return 0;
> }
>
> static const struct of_device_id adf4350_of_match[] = {
> diff --git a/drivers/iio/gyro/bmg160_spi.c b/drivers/iio/gyro/bmg160_spi.c
> index 745962e1e423..fc2e453527b9 100644
> --- a/drivers/iio/gyro/bmg160_spi.c
> +++ b/drivers/iio/gyro/bmg160_spi.c
> @@ -27,11 +27,9 @@ static int bmg160_spi_probe(struct spi_device *spi)
> return bmg160_core_probe(&spi->dev, regmap, spi->irq, id->name);
> }
>
> -static int bmg160_spi_remove(struct spi_device *spi)
> +static void bmg160_spi_remove(struct spi_device *spi)
> {
> bmg160_core_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id bmg160_spi_id[] = {
> diff --git a/drivers/iio/gyro/fxas21002c_spi.c b/drivers/iio/gyro/fxas21002c_spi.c
> index 77ceebef4e34..c3ac169facf9 100644
> --- a/drivers/iio/gyro/fxas21002c_spi.c
> +++ b/drivers/iio/gyro/fxas21002c_spi.c
> @@ -34,11 +34,9 @@ static int fxas21002c_spi_probe(struct spi_device *spi)
> return fxas21002c_core_probe(&spi->dev, regmap, spi->irq, id->name);
> }
>
> -static int fxas21002c_spi_remove(struct spi_device *spi)
> +static void fxas21002c_spi_remove(struct spi_device *spi)
> {
> fxas21002c_core_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id fxas21002c_spi_id[] = {
> diff --git a/drivers/iio/health/afe4403.c b/drivers/iio/health/afe4403.c
> index 273f16dcaff8..856ec901b091 100644
> --- a/drivers/iio/health/afe4403.c
> +++ b/drivers/iio/health/afe4403.c
> @@ -570,7 +570,7 @@ static int afe4403_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int afe4403_remove(struct spi_device *spi)
> +static void afe4403_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct afe4403_data *afe = iio_priv(indio_dev);
> @@ -586,8 +586,6 @@ static int afe4403_remove(struct spi_device *spi)
> ret = regulator_disable(afe->regulator);
> if (ret)
> dev_warn(afe->dev, "Unable to disable regulator\n");
> -
> - return 0;
> }
>
> static const struct spi_device_id afe4403_ids[] = {
> diff --git a/drivers/iio/magnetometer/bmc150_magn_spi.c b/drivers/iio/magnetometer/bmc150_magn_spi.c
> index c6ed3ea8460a..4c570412d65c 100644
> --- a/drivers/iio/magnetometer/bmc150_magn_spi.c
> +++ b/drivers/iio/magnetometer/bmc150_magn_spi.c
> @@ -29,11 +29,9 @@ static int bmc150_magn_spi_probe(struct spi_device *spi)
> return bmc150_magn_probe(&spi->dev, regmap, spi->irq, id->name);
> }
>
> -static int bmc150_magn_spi_remove(struct spi_device *spi)
> +static void bmc150_magn_spi_remove(struct spi_device *spi)
> {
> bmc150_magn_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id bmc150_magn_spi_id[] = {
> diff --git a/drivers/iio/magnetometer/hmc5843_spi.c b/drivers/iio/magnetometer/hmc5843_spi.c
> index 89cf59a62c28..a99dd9b33e95 100644
> --- a/drivers/iio/magnetometer/hmc5843_spi.c
> +++ b/drivers/iio/magnetometer/hmc5843_spi.c
> @@ -74,11 +74,9 @@ static int hmc5843_spi_probe(struct spi_device *spi)
> id->driver_data, id->name);
> }
>
> -static int hmc5843_spi_remove(struct spi_device *spi)
> +static void hmc5843_spi_remove(struct spi_device *spi)
> {
> hmc5843_common_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id hmc5843_id[] = {
> diff --git a/drivers/iio/potentiometer/max5487.c b/drivers/iio/potentiometer/max5487.c
> index 007c2bd324cb..42723c996c9f 100644
> --- a/drivers/iio/potentiometer/max5487.c
> +++ b/drivers/iio/potentiometer/max5487.c
> @@ -112,7 +112,7 @@ static int max5487_spi_probe(struct spi_device *spi)
> return iio_device_register(indio_dev);
> }
>
> -static int max5487_spi_remove(struct spi_device *spi)
> +static void max5487_spi_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> int ret;
> @@ -123,8 +123,6 @@ static int max5487_spi_remove(struct spi_device *spi)
> ret = max5487_write_cmd(spi, MAX5487_COPY_AB_TO_NV);
> if (ret)
> dev_warn(&spi->dev, "Failed to save wiper regs to NV regs\n");
> -
> - return 0;
> }
>
> static const struct spi_device_id max5487_id[] = {
> diff --git a/drivers/iio/pressure/ms5611_spi.c b/drivers/iio/pressure/ms5611_spi.c
> index 9fa2dcd71760..7ccd960ced5d 100644
> --- a/drivers/iio/pressure/ms5611_spi.c
> +++ b/drivers/iio/pressure/ms5611_spi.c
> @@ -107,11 +107,9 @@ static int ms5611_spi_probe(struct spi_device *spi)
> spi_get_device_id(spi)->driver_data);
> }
>
> -static int ms5611_spi_remove(struct spi_device *spi)
> +static void ms5611_spi_remove(struct spi_device *spi)
> {
> ms5611_remove(spi_get_drvdata(spi));
> -
> - return 0;
> }
>
> static const struct of_device_id ms5611_spi_matches[] = {
> diff --git a/drivers/iio/pressure/zpa2326_spi.c b/drivers/iio/pressure/zpa2326_spi.c
> index 85201a4bae44..ee8ed77536ca 100644
> --- a/drivers/iio/pressure/zpa2326_spi.c
> +++ b/drivers/iio/pressure/zpa2326_spi.c
> @@ -57,11 +57,9 @@ static int zpa2326_probe_spi(struct spi_device *spi)
> spi->irq, ZPA2326_DEVICE_ID, regmap);
> }
>
> -static int zpa2326_remove_spi(struct spi_device *spi)
> +static void zpa2326_remove_spi(struct spi_device *spi)
> {
> zpa2326_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id zpa2326_spi_ids[] = {
> diff --git a/drivers/input/keyboard/applespi.c b/drivers/input/keyboard/applespi.c
> index eda1b23002b5..d1f5354d5ea2 100644
> --- a/drivers/input/keyboard/applespi.c
> +++ b/drivers/input/keyboard/applespi.c
> @@ -1858,7 +1858,7 @@ static void applespi_drain_reads(struct applespi_data *applespi)
> spin_unlock_irqrestore(&applespi->cmd_msg_lock, flags);
> }
>
> -static int applespi_remove(struct spi_device *spi)
> +static void applespi_remove(struct spi_device *spi)
> {
> struct applespi_data *applespi = spi_get_drvdata(spi);
>
> @@ -1871,8 +1871,6 @@ static int applespi_remove(struct spi_device *spi)
> applespi_drain_reads(applespi);
>
> debugfs_remove_recursive(applespi->debugfs_root);
> -
> - return 0;
> }
>
> static void applespi_shutdown(struct spi_device *spi)
> diff --git a/drivers/input/misc/adxl34x-spi.c b/drivers/input/misc/adxl34x-spi.c
> index 6e51c9bc619f..91e44d4c66f7 100644
> --- a/drivers/input/misc/adxl34x-spi.c
> +++ b/drivers/input/misc/adxl34x-spi.c
> @@ -87,13 +87,11 @@ static int adxl34x_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int adxl34x_spi_remove(struct spi_device *spi)
> +static void adxl34x_spi_remove(struct spi_device *spi)
> {
> struct adxl34x *ac = spi_get_drvdata(spi);
>
> adxl34x_remove(ac);
> -
> - return 0;
> }
>
> static int __maybe_unused adxl34x_spi_suspend(struct device *dev)
> diff --git a/drivers/input/touchscreen/ads7846.c b/drivers/input/touchscreen/ads7846.c
> index a25a77dd9a32..bed68a68f330 100644
> --- a/drivers/input/touchscreen/ads7846.c
> +++ b/drivers/input/touchscreen/ads7846.c
> @@ -1411,13 +1411,11 @@ static int ads7846_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ads7846_remove(struct spi_device *spi)
> +static void ads7846_remove(struct spi_device *spi)
> {
> struct ads7846 *ts = spi_get_drvdata(spi);
>
> ads7846_stop(ts);
> -
> - return 0;
> }
>
> static struct spi_driver ads7846_driver = {
> diff --git a/drivers/input/touchscreen/cyttsp4_spi.c b/drivers/input/touchscreen/cyttsp4_spi.c
> index 2aec41eb76b7..5d7db84f2749 100644
> --- a/drivers/input/touchscreen/cyttsp4_spi.c
> +++ b/drivers/input/touchscreen/cyttsp4_spi.c
> @@ -164,12 +164,10 @@ static int cyttsp4_spi_probe(struct spi_device *spi)
> return PTR_ERR_OR_ZERO(ts);
> }
>
> -static int cyttsp4_spi_remove(struct spi_device *spi)
> +static void cyttsp4_spi_remove(struct spi_device *spi)
> {
> struct cyttsp4 *ts = spi_get_drvdata(spi);
> cyttsp4_remove(ts);
> -
> - return 0;
> }
>
> static struct spi_driver cyttsp4_spi_driver = {
> diff --git a/drivers/input/touchscreen/tsc2005.c b/drivers/input/touchscreen/tsc2005.c
> index a2f55920b9b2..555dfe98b3c4 100644
> --- a/drivers/input/touchscreen/tsc2005.c
> +++ b/drivers/input/touchscreen/tsc2005.c
> @@ -64,11 +64,9 @@ static int tsc2005_probe(struct spi_device *spi)
> tsc2005_cmd);
> }
>
> -static int tsc2005_remove(struct spi_device *spi)
> +static void tsc2005_remove(struct spi_device *spi)
> {
> tsc200x_remove(&spi->dev);
> -
> - return 0;
> }
>
> #ifdef CONFIG_OF
> diff --git a/drivers/leds/leds-cr0014114.c b/drivers/leds/leds-cr0014114.c
> index d03cfd3c0bfb..c87686bd7c18 100644
> --- a/drivers/leds/leds-cr0014114.c
> +++ b/drivers/leds/leds-cr0014114.c
> @@ -266,14 +266,12 @@ static int cr0014114_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int cr0014114_remove(struct spi_device *spi)
> +static void cr0014114_remove(struct spi_device *spi)
> {
> struct cr0014114 *priv = spi_get_drvdata(spi);
>
> cancel_delayed_work_sync(&priv->work);
> mutex_destroy(&priv->lock);
> -
> - return 0;
> }
>
> static const struct of_device_id cr0014114_dt_ids[] = {
> diff --git a/drivers/leds/leds-dac124s085.c b/drivers/leds/leds-dac124s085.c
> index 20dc9b9d7dea..cf5fb1195f87 100644
> --- a/drivers/leds/leds-dac124s085.c
> +++ b/drivers/leds/leds-dac124s085.c
> @@ -85,15 +85,13 @@ static int dac124s085_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int dac124s085_remove(struct spi_device *spi)
> +static void dac124s085_remove(struct spi_device *spi)
> {
> struct dac124s085 *dac = spi_get_drvdata(spi);
> int i;
>
> for (i = 0; i < ARRAY_SIZE(dac->leds); i++)
> led_classdev_unregister(&dac->leds[i].ldev);
> -
> - return 0;
> }
>
> static struct spi_driver dac124s085_driver = {
> diff --git a/drivers/leds/leds-el15203000.c b/drivers/leds/leds-el15203000.c
> index f9eb59a25570..7e7b617bcd56 100644
> --- a/drivers/leds/leds-el15203000.c
> +++ b/drivers/leds/leds-el15203000.c
> @@ -315,13 +315,11 @@ static int el15203000_probe(struct spi_device *spi)
> return el15203000_probe_dt(priv);
> }
>
> -static int el15203000_remove(struct spi_device *spi)
> +static void el15203000_remove(struct spi_device *spi)
> {
> struct el15203000 *priv = spi_get_drvdata(spi);
>
> mutex_destroy(&priv->lock);
> -
> - return 0;
> }
>
> static const struct of_device_id el15203000_dt_ids[] = {
> diff --git a/drivers/leds/leds-spi-byte.c b/drivers/leds/leds-spi-byte.c
> index f1964c96fb15..2bc5c99daf51 100644
> --- a/drivers/leds/leds-spi-byte.c
> +++ b/drivers/leds/leds-spi-byte.c
> @@ -130,13 +130,11 @@ static int spi_byte_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int spi_byte_remove(struct spi_device *spi)
> +static void spi_byte_remove(struct spi_device *spi)
> {
> struct spi_byte_led *led = spi_get_drvdata(spi);
>
> mutex_destroy(&led->mutex);
> -
> - return 0;
> }
>
> static struct spi_driver spi_byte_driver = {
> diff --git a/drivers/media/spi/cxd2880-spi.c b/drivers/media/spi/cxd2880-spi.c
> index 6f2a66bc87fb..6be4e5528879 100644
> --- a/drivers/media/spi/cxd2880-spi.c
> +++ b/drivers/media/spi/cxd2880-spi.c
> @@ -625,7 +625,7 @@ cxd2880_spi_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int
> +static void
> cxd2880_spi_remove(struct spi_device *spi)
> {
> struct cxd2880_dvb_spi *dvb_spi = spi_get_drvdata(spi);
> @@ -643,8 +643,6 @@ cxd2880_spi_remove(struct spi_device *spi)
>
> kfree(dvb_spi);
> pr_info("cxd2880_spi remove ok.\n");
> -
> - return 0;
> }
>
> static const struct spi_device_id cxd2880_spi_id[] = {
> diff --git a/drivers/media/spi/gs1662.c b/drivers/media/spi/gs1662.c
> index f86ef1ca1288..75c21a93e6d0 100644
> --- a/drivers/media/spi/gs1662.c
> +++ b/drivers/media/spi/gs1662.c
> @@ -458,13 +458,11 @@ static int gs_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int gs_remove(struct spi_device *spi)
> +static void gs_remove(struct spi_device *spi)
> {
> struct v4l2_subdev *sd = spi_get_drvdata(spi);
>
> v4l2_device_unregister_subdev(sd);
> -
> - return 0;
> }
>
> static struct spi_driver gs_driver = {
> diff --git a/drivers/media/tuners/msi001.c b/drivers/media/tuners/msi001.c
> index 44247049a319..ad6c72c1ed04 100644
> --- a/drivers/media/tuners/msi001.c
> +++ b/drivers/media/tuners/msi001.c
> @@ -472,7 +472,7 @@ static int msi001_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int msi001_remove(struct spi_device *spi)
> +static void msi001_remove(struct spi_device *spi)
> {
> struct v4l2_subdev *sd = spi_get_drvdata(spi);
> struct msi001_dev *dev = sd_to_msi001_dev(sd);
> @@ -486,7 +486,6 @@ static int msi001_remove(struct spi_device *spi)
> v4l2_device_unregister_subdev(&dev->sd);
> v4l2_ctrl_handler_free(&dev->hdl);
> kfree(dev);
> - return 0;
> }
>
> static const struct spi_device_id msi001_id_table[] = {
> diff --git a/drivers/mfd/arizona-spi.c b/drivers/mfd/arizona-spi.c
> index 9fe06dda3782..03620c8efe34 100644
> --- a/drivers/mfd/arizona-spi.c
> +++ b/drivers/mfd/arizona-spi.c
> @@ -206,13 +206,11 @@ static int arizona_spi_probe(struct spi_device *spi)
> return arizona_dev_init(arizona);
> }
>
> -static int arizona_spi_remove(struct spi_device *spi)
> +static void arizona_spi_remove(struct spi_device *spi)
> {
> struct arizona *arizona = spi_get_drvdata(spi);
>
> arizona_dev_exit(arizona);
> -
> - return 0;
> }
>
> static const struct spi_device_id arizona_spi_ids[] = {
> diff --git a/drivers/mfd/da9052-spi.c b/drivers/mfd/da9052-spi.c
> index 5faf3766a5e2..b79a57b45c1e 100644
> --- a/drivers/mfd/da9052-spi.c
> +++ b/drivers/mfd/da9052-spi.c
> @@ -55,12 +55,11 @@ static int da9052_spi_probe(struct spi_device *spi)
> return da9052_device_init(da9052, id->driver_data);
> }
>
> -static int da9052_spi_remove(struct spi_device *spi)
> +static void da9052_spi_remove(struct spi_device *spi)
> {
> struct da9052 *da9052 = spi_get_drvdata(spi);
>
> da9052_device_exit(da9052);
> - return 0;
> }
>
> static const struct spi_device_id da9052_spi_id[] = {
> diff --git a/drivers/mfd/ezx-pcap.c b/drivers/mfd/ezx-pcap.c
> index 70fa18b04ad2..2280f756f422 100644
> --- a/drivers/mfd/ezx-pcap.c
> +++ b/drivers/mfd/ezx-pcap.c
> @@ -392,7 +392,7 @@ static int pcap_add_subdev(struct pcap_chip *pcap,
> return ret;
> }
>
> -static int ezx_pcap_remove(struct spi_device *spi)
> +static void ezx_pcap_remove(struct spi_device *spi)
> {
> struct pcap_chip *pcap = spi_get_drvdata(spi);
> unsigned long flags;
> @@ -412,8 +412,6 @@ static int ezx_pcap_remove(struct spi_device *spi)
> irq_set_chip_and_handler(i, NULL, NULL);
>
> destroy_workqueue(pcap->workqueue);
> -
> - return 0;
> }
>
> static int ezx_pcap_probe(struct spi_device *spi)
> diff --git a/drivers/mfd/madera-spi.c b/drivers/mfd/madera-spi.c
> index e860f5ff0933..da84eb50e53a 100644
> --- a/drivers/mfd/madera-spi.c
> +++ b/drivers/mfd/madera-spi.c
> @@ -112,13 +112,11 @@ static int madera_spi_probe(struct spi_device *spi)
> return madera_dev_init(madera);
> }
>
> -static int madera_spi_remove(struct spi_device *spi)
> +static void madera_spi_remove(struct spi_device *spi)
> {
> struct madera *madera = spi_get_drvdata(spi);
>
> madera_dev_exit(madera);
> -
> - return 0;
> }
>
> static const struct spi_device_id madera_spi_ids[] = {
> diff --git a/drivers/mfd/mc13xxx-spi.c b/drivers/mfd/mc13xxx-spi.c
> index 4d8913d647e6..f803527e5819 100644
> --- a/drivers/mfd/mc13xxx-spi.c
> +++ b/drivers/mfd/mc13xxx-spi.c
> @@ -166,10 +166,9 @@ static int mc13xxx_spi_probe(struct spi_device *spi)
> return mc13xxx_common_init(&spi->dev);
> }
>
> -static int mc13xxx_spi_remove(struct spi_device *spi)
> +static void mc13xxx_spi_remove(struct spi_device *spi)
> {
> mc13xxx_common_exit(&spi->dev);
> - return 0;
> }
>
> static struct spi_driver mc13xxx_spi_driver = {
> diff --git a/drivers/mfd/rsmu_spi.c b/drivers/mfd/rsmu_spi.c
> index fec2b4ec477c..d2f3d8f1e05a 100644
> --- a/drivers/mfd/rsmu_spi.c
> +++ b/drivers/mfd/rsmu_spi.c
> @@ -220,13 +220,11 @@ static int rsmu_spi_probe(struct spi_device *client)
> return rsmu_core_init(rsmu);
> }
>
> -static int rsmu_spi_remove(struct spi_device *client)
> +static void rsmu_spi_remove(struct spi_device *client)
> {
> struct rsmu_ddata *rsmu = spi_get_drvdata(client);
>
> rsmu_core_exit(rsmu);
> -
> - return 0;
> }
>
> static const struct spi_device_id rsmu_spi_id[] = {
> diff --git a/drivers/mfd/stmpe-spi.c b/drivers/mfd/stmpe-spi.c
> index 6c5915016be5..ad8055a0e286 100644
> --- a/drivers/mfd/stmpe-spi.c
> +++ b/drivers/mfd/stmpe-spi.c
> @@ -102,13 +102,11 @@ stmpe_spi_probe(struct spi_device *spi)
> return stmpe_probe(&spi_ci, id->driver_data);
> }
>
> -static int stmpe_spi_remove(struct spi_device *spi)
> +static void stmpe_spi_remove(struct spi_device *spi)
> {
> struct stmpe *stmpe = spi_get_drvdata(spi);
>
> stmpe_remove(stmpe);
> -
> - return 0;
> }
>
> static const struct of_device_id stmpe_spi_of_match[] = {
> diff --git a/drivers/mfd/tps65912-spi.c b/drivers/mfd/tps65912-spi.c
> index d701926aa46e..bba38fbc781d 100644
> --- a/drivers/mfd/tps65912-spi.c
> +++ b/drivers/mfd/tps65912-spi.c
> @@ -50,13 +50,11 @@ static int tps65912_spi_probe(struct spi_device *spi)
> return tps65912_device_init(tps);
> }
>
> -static int tps65912_spi_remove(struct spi_device *spi)
> +static void tps65912_spi_remove(struct spi_device *spi)
> {
> struct tps65912 *tps = spi_get_drvdata(spi);
>
> tps65912_device_exit(tps);
> -
> - return 0;
> }
>
> static const struct spi_device_id tps65912_spi_id_table[] = {
> diff --git a/drivers/misc/ad525x_dpot-spi.c b/drivers/misc/ad525x_dpot-spi.c
> index a9e75d80ad36..263055bda48b 100644
> --- a/drivers/misc/ad525x_dpot-spi.c
> +++ b/drivers/misc/ad525x_dpot-spi.c
> @@ -90,10 +90,9 @@ static int ad_dpot_spi_probe(struct spi_device *spi)
> spi_get_device_id(spi)->name);
> }
>
> -static int ad_dpot_spi_remove(struct spi_device *spi)
> +static void ad_dpot_spi_remove(struct spi_device *spi)
> {
> ad_dpot_remove(&spi->dev);
> - return 0;
> }
>
> static const struct spi_device_id ad_dpot_spi_id[] = {
> diff --git a/drivers/misc/eeprom/eeprom_93xx46.c b/drivers/misc/eeprom/eeprom_93xx46.c
> index 1f15399e5cb4..b630625b3024 100644
> --- a/drivers/misc/eeprom/eeprom_93xx46.c
> +++ b/drivers/misc/eeprom/eeprom_93xx46.c
> @@ -555,14 +555,12 @@ static int eeprom_93xx46_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int eeprom_93xx46_remove(struct spi_device *spi)
> +static void eeprom_93xx46_remove(struct spi_device *spi)
> {
> struct eeprom_93xx46_dev *edev = spi_get_drvdata(spi);
>
> if (!(edev->pdata->flags & EE_READONLY))
> device_remove_file(&spi->dev, &dev_attr_erase);
> -
> - return 0;
> }
>
> static struct spi_driver eeprom_93xx46_driver = {
> diff --git a/drivers/misc/lattice-ecp3-config.c b/drivers/misc/lattice-ecp3-config.c
> index 98828030b5a4..bac4df2e5231 100644
> --- a/drivers/misc/lattice-ecp3-config.c
> +++ b/drivers/misc/lattice-ecp3-config.c
> @@ -211,13 +211,11 @@ static int lattice_ecp3_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int lattice_ecp3_remove(struct spi_device *spi)
> +static void lattice_ecp3_remove(struct spi_device *spi)
> {
> struct fpga_data *data = spi_get_drvdata(spi);
>
> wait_for_completion(&data->fw_loaded);
> -
> - return 0;
> }
>
> static const struct spi_device_id lattice_ecp3_id[] = {
> diff --git a/drivers/misc/lis3lv02d/lis3lv02d_spi.c b/drivers/misc/lis3lv02d/lis3lv02d_spi.c
> index 9e40dfb60742..203a108b8883 100644
> --- a/drivers/misc/lis3lv02d/lis3lv02d_spi.c
> +++ b/drivers/misc/lis3lv02d/lis3lv02d_spi.c
> @@ -96,15 +96,13 @@ static int lis302dl_spi_probe(struct spi_device *spi)
> return lis3lv02d_init_device(&lis3_dev);
> }
>
> -static int lis302dl_spi_remove(struct spi_device *spi)
> +static void lis302dl_spi_remove(struct spi_device *spi)
> {
> struct lis3lv02d *lis3 = spi_get_drvdata(spi);
> lis3lv02d_joystick_disable(lis3);
> lis3lv02d_poweroff(lis3);
>
> lis3lv02d_remove_fs(&lis3_dev);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/mmc/host/mmc_spi.c b/drivers/mmc/host/mmc_spi.c
> index a576181e9db0..106dd204b1a7 100644
> --- a/drivers/mmc/host/mmc_spi.c
> +++ b/drivers/mmc/host/mmc_spi.c
> @@ -1489,7 +1489,7 @@ static int mmc_spi_probe(struct spi_device *spi)
> }
>
>
> -static int mmc_spi_remove(struct spi_device *spi)
> +static void mmc_spi_remove(struct spi_device *spi)
> {
> struct mmc_host *mmc = dev_get_drvdata(&spi->dev);
> struct mmc_spi_host *host = mmc_priv(mmc);
> @@ -1507,7 +1507,6 @@ static int mmc_spi_remove(struct spi_device *spi)
> spi->max_speed_hz = mmc->f_max;
> mmc_spi_put_pdata(spi);
> mmc_free_host(mmc);
> - return 0;
> }
>
> static const struct spi_device_id mmc_spi_dev_ids[] = {
> diff --git a/drivers/mtd/devices/mchp23k256.c b/drivers/mtd/devices/mchp23k256.c
> index a8b31bddf14b..008df9d8898d 100644
> --- a/drivers/mtd/devices/mchp23k256.c
> +++ b/drivers/mtd/devices/mchp23k256.c
> @@ -209,13 +209,11 @@ static int mchp23k256_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int mchp23k256_remove(struct spi_device *spi)
> +static void mchp23k256_remove(struct spi_device *spi)
> {
> struct mchp23k256_flash *flash = spi_get_drvdata(spi);
>
> WARN_ON(mtd_device_unregister(&flash->mtd));
> -
> - return 0;
> }
>
> static const struct of_device_id mchp23k256_of_table[] = {
> diff --git a/drivers/mtd/devices/mchp48l640.c b/drivers/mtd/devices/mchp48l640.c
> index 231a10790196..a3fd426df74b 100644
> --- a/drivers/mtd/devices/mchp48l640.c
> +++ b/drivers/mtd/devices/mchp48l640.c
> @@ -341,13 +341,11 @@ static int mchp48l640_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int mchp48l640_remove(struct spi_device *spi)
> +static void mchp48l640_remove(struct spi_device *spi)
> {
> struct mchp48l640_flash *flash = spi_get_drvdata(spi);
>
> WARN_ON(mtd_device_unregister(&flash->mtd));
> -
> - return 0;
> }
>
> static const struct of_device_id mchp48l640_of_table[] = {
> diff --git a/drivers/mtd/devices/mtd_dataflash.c b/drivers/mtd/devices/mtd_dataflash.c
> index 734878abaa23..134e27328597 100644
> --- a/drivers/mtd/devices/mtd_dataflash.c
> +++ b/drivers/mtd/devices/mtd_dataflash.c
> @@ -916,7 +916,7 @@ static int dataflash_probe(struct spi_device *spi)
> return status;
> }
>
> -static int dataflash_remove(struct spi_device *spi)
> +static void dataflash_remove(struct spi_device *spi)
> {
> struct dataflash *flash = spi_get_drvdata(spi);
>
> @@ -925,8 +925,6 @@ static int dataflash_remove(struct spi_device *spi)
> WARN_ON(mtd_device_unregister(&flash->mtd));
>
> kfree(flash);
> -
> - return 0;
> }
>
> static struct spi_driver dataflash_driver = {
> diff --git a/drivers/mtd/devices/sst25l.c b/drivers/mtd/devices/sst25l.c
> index 7f124c1bfa40..8813994ce9f4 100644
> --- a/drivers/mtd/devices/sst25l.c
> +++ b/drivers/mtd/devices/sst25l.c
> @@ -398,13 +398,11 @@ static int sst25l_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int sst25l_remove(struct spi_device *spi)
> +static void sst25l_remove(struct spi_device *spi)
> {
> struct sst25l_flash *flash = spi_get_drvdata(spi);
>
> WARN_ON(mtd_device_unregister(&flash->mtd));
> -
> - return 0;
> }
>
> static struct spi_driver sst25l_driver = {
> diff --git a/drivers/net/can/m_can/tcan4x5x-core.c b/drivers/net/can/m_can/tcan4x5x-core.c
> index 04687b15b250..41645a24384c 100644
> --- a/drivers/net/can/m_can/tcan4x5x-core.c
> +++ b/drivers/net/can/m_can/tcan4x5x-core.c
> @@ -388,7 +388,7 @@ static int tcan4x5x_can_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int tcan4x5x_can_remove(struct spi_device *spi)
> +static void tcan4x5x_can_remove(struct spi_device *spi)
> {
> struct tcan4x5x_priv *priv = spi_get_drvdata(spi);
>
> @@ -397,8 +397,6 @@ static int tcan4x5x_can_remove(struct spi_device *spi)
> tcan4x5x_power_enable(priv->power, 0);
>
> m_can_class_free_dev(priv->cdev.net);
> -
> - return 0;
> }
>
> static const struct of_device_id tcan4x5x_of_match[] = {
> diff --git a/drivers/net/can/spi/hi311x.c b/drivers/net/can/spi/hi311x.c
> index cfcc14fe3e42..664b8f14d7b0 100644
> --- a/drivers/net/can/spi/hi311x.c
> +++ b/drivers/net/can/spi/hi311x.c
> @@ -948,7 +948,7 @@ static int hi3110_can_probe(struct spi_device *spi)
> return dev_err_probe(dev, ret, "Probe failed\n");
> }
>
> -static int hi3110_can_remove(struct spi_device *spi)
> +static void hi3110_can_remove(struct spi_device *spi)
> {
> struct hi3110_priv *priv = spi_get_drvdata(spi);
> struct net_device *net = priv->net;
> @@ -960,8 +960,6 @@ static int hi3110_can_remove(struct spi_device *spi)
> clk_disable_unprepare(priv->clk);
>
> free_candev(net);
> -
> - return 0;
> }
>
> static int __maybe_unused hi3110_can_suspend(struct device *dev)
> diff --git a/drivers/net/can/spi/mcp251x.c b/drivers/net/can/spi/mcp251x.c
> index 025e07cb7439..d23edaf22420 100644
> --- a/drivers/net/can/spi/mcp251x.c
> +++ b/drivers/net/can/spi/mcp251x.c
> @@ -1427,7 +1427,7 @@ static int mcp251x_can_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mcp251x_can_remove(struct spi_device *spi)
> +static void mcp251x_can_remove(struct spi_device *spi)
> {
> struct mcp251x_priv *priv = spi_get_drvdata(spi);
> struct net_device *net = priv->net;
> @@ -1442,8 +1442,6 @@ static int mcp251x_can_remove(struct spi_device *spi)
> clk_disable_unprepare(priv->clk);
>
> free_candev(net);
> -
> - return 0;
> }
>
> static int __maybe_unused mcp251x_can_suspend(struct device *dev)
> diff --git a/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c b/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
> index b5986df6eca0..65c9b31666a6 100644
> --- a/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
> +++ b/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
> @@ -1966,7 +1966,7 @@ static int mcp251xfd_probe(struct spi_device *spi)
> return err;
> }
>
> -static int mcp251xfd_remove(struct spi_device *spi)
> +static void mcp251xfd_remove(struct spi_device *spi)
> {
> struct mcp251xfd_priv *priv = spi_get_drvdata(spi);
> struct net_device *ndev = priv->ndev;
> @@ -1975,8 +1975,6 @@ static int mcp251xfd_remove(struct spi_device *spi)
> mcp251xfd_unregister(priv);
> spi->max_speed_hz = priv->spi_max_speed_hz_orig;
> free_candev(ndev);
> -
> - return 0;
> }
>
> static int __maybe_unused mcp251xfd_runtime_suspend(struct device *device)
> diff --git a/drivers/net/dsa/b53/b53_spi.c b/drivers/net/dsa/b53/b53_spi.c
> index 2b88f03e5252..0e54b2a0c211 100644
> --- a/drivers/net/dsa/b53/b53_spi.c
> +++ b/drivers/net/dsa/b53/b53_spi.c
> @@ -314,7 +314,7 @@ static int b53_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int b53_spi_remove(struct spi_device *spi)
> +static void b53_spi_remove(struct spi_device *spi)
> {
> struct b53_device *dev = spi_get_drvdata(spi);
>
> @@ -322,8 +322,6 @@ static int b53_spi_remove(struct spi_device *spi)
> b53_switch_remove(dev);
>
> spi_set_drvdata(spi, NULL);
> -
> - return 0;
> }
>
> static void b53_spi_shutdown(struct spi_device *spi)
> diff --git a/drivers/net/dsa/microchip/ksz8795_spi.c b/drivers/net/dsa/microchip/ksz8795_spi.c
> index 866767b70d65..673589dc88ab 100644
> --- a/drivers/net/dsa/microchip/ksz8795_spi.c
> +++ b/drivers/net/dsa/microchip/ksz8795_spi.c
> @@ -87,7 +87,7 @@ static int ksz8795_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ksz8795_spi_remove(struct spi_device *spi)
> +static void ksz8795_spi_remove(struct spi_device *spi)
> {
> struct ksz_device *dev = spi_get_drvdata(spi);
>
> @@ -95,8 +95,6 @@ static int ksz8795_spi_remove(struct spi_device *spi)
> ksz_switch_remove(dev);
>
> spi_set_drvdata(spi, NULL);
> -
> - return 0;
> }
>
> static void ksz8795_spi_shutdown(struct spi_device *spi)
> diff --git a/drivers/net/dsa/microchip/ksz9477_spi.c b/drivers/net/dsa/microchip/ksz9477_spi.c
> index e3cb0e6c9f6f..940bb9665f15 100644
> --- a/drivers/net/dsa/microchip/ksz9477_spi.c
> +++ b/drivers/net/dsa/microchip/ksz9477_spi.c
> @@ -65,7 +65,7 @@ static int ksz9477_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ksz9477_spi_remove(struct spi_device *spi)
> +static void ksz9477_spi_remove(struct spi_device *spi)
> {
> struct ksz_device *dev = spi_get_drvdata(spi);
>
> @@ -73,8 +73,6 @@ static int ksz9477_spi_remove(struct spi_device *spi)
> ksz_switch_remove(dev);
>
> spi_set_drvdata(spi, NULL);
> -
> - return 0;
> }
>
> static void ksz9477_spi_shutdown(struct spi_device *spi)
> diff --git a/drivers/net/dsa/sja1105/sja1105_main.c b/drivers/net/dsa/sja1105/sja1105_main.c
> index b513713be610..c2a47c6693b8 100644
> --- a/drivers/net/dsa/sja1105/sja1105_main.c
> +++ b/drivers/net/dsa/sja1105/sja1105_main.c
> @@ -3346,18 +3346,16 @@ static int sja1105_probe(struct spi_device *spi)
> return dsa_register_switch(priv->ds);
> }
>
> -static int sja1105_remove(struct spi_device *spi)
> +static void sja1105_remove(struct spi_device *spi)
> {
> struct sja1105_private *priv = spi_get_drvdata(spi);
>
> if (!priv)
> - return 0;
> + return;
>
> dsa_unregister_switch(priv->ds);
>
> spi_set_drvdata(spi, NULL);
> -
> - return 0;
> }
>
> static void sja1105_shutdown(struct spi_device *spi)
> diff --git a/drivers/net/dsa/vitesse-vsc73xx-spi.c b/drivers/net/dsa/vitesse-vsc73xx-spi.c
> index 645398901e05..3110895358d8 100644
> --- a/drivers/net/dsa/vitesse-vsc73xx-spi.c
> +++ b/drivers/net/dsa/vitesse-vsc73xx-spi.c
> @@ -159,18 +159,16 @@ static int vsc73xx_spi_probe(struct spi_device *spi)
> return vsc73xx_probe(&vsc_spi->vsc);
> }
>
> -static int vsc73xx_spi_remove(struct spi_device *spi)
> +static void vsc73xx_spi_remove(struct spi_device *spi)
> {
> struct vsc73xx_spi *vsc_spi = spi_get_drvdata(spi);
>
> if (!vsc_spi)
> - return 0;
> + return;
>
> vsc73xx_remove(&vsc_spi->vsc);
>
> spi_set_drvdata(spi, NULL);
> -
> - return 0;
> }
>
> static void vsc73xx_spi_shutdown(struct spi_device *spi)
> diff --git a/drivers/net/ethernet/asix/ax88796c_main.c b/drivers/net/ethernet/asix/ax88796c_main.c
> index e7a9f9863258..bf70481bb1ca 100644
> --- a/drivers/net/ethernet/asix/ax88796c_main.c
> +++ b/drivers/net/ethernet/asix/ax88796c_main.c
> @@ -1102,7 +1102,7 @@ static int ax88796c_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ax88796c_remove(struct spi_device *spi)
> +static void ax88796c_remove(struct spi_device *spi)
> {
> struct ax88796c_device *ax_local = dev_get_drvdata(&spi->dev);
> struct net_device *ndev = ax_local->ndev;
> @@ -1112,8 +1112,6 @@ static int ax88796c_remove(struct spi_device *spi)
> netif_info(ax_local, probe, ndev, "removing network device %s %s\n",
> dev_driver_string(&spi->dev),
> dev_name(&spi->dev));
> -
> - return 0;
> }
>
> #ifdef CONFIG_OF
> diff --git a/drivers/net/ethernet/micrel/ks8851_spi.c b/drivers/net/ethernet/micrel/ks8851_spi.c
> index 0303e727e99f..d167d93e4c12 100644
> --- a/drivers/net/ethernet/micrel/ks8851_spi.c
> +++ b/drivers/net/ethernet/micrel/ks8851_spi.c
> @@ -452,11 +452,9 @@ static int ks8851_probe_spi(struct spi_device *spi)
> return ks8851_probe_common(netdev, dev, msg_enable);
> }
>
> -static int ks8851_remove_spi(struct spi_device *spi)
> +static void ks8851_remove_spi(struct spi_device *spi)
> {
> ks8851_remove_common(&spi->dev);
> -
> - return 0;
> }
>
> static const struct of_device_id ks8851_match_table[] = {
> diff --git a/drivers/net/ethernet/microchip/enc28j60.c b/drivers/net/ethernet/microchip/enc28j60.c
> index 634ac7649c43..db5a3edb4c3c 100644
> --- a/drivers/net/ethernet/microchip/enc28j60.c
> +++ b/drivers/net/ethernet/microchip/enc28j60.c
> @@ -1612,15 +1612,13 @@ static int enc28j60_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int enc28j60_remove(struct spi_device *spi)
> +static void enc28j60_remove(struct spi_device *spi)
> {
> struct enc28j60_net *priv = spi_get_drvdata(spi);
>
> unregister_netdev(priv->netdev);
> free_irq(spi->irq, priv);
> free_netdev(priv->netdev);
> -
> - return 0;
> }
>
> static const struct of_device_id enc28j60_dt_ids[] = {
> diff --git a/drivers/net/ethernet/microchip/encx24j600.c b/drivers/net/ethernet/microchip/encx24j600.c
> index b90efc80fb59..dc1840cb5b10 100644
> --- a/drivers/net/ethernet/microchip/encx24j600.c
> +++ b/drivers/net/ethernet/microchip/encx24j600.c
> @@ -1093,7 +1093,7 @@ static int encx24j600_spi_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int encx24j600_spi_remove(struct spi_device *spi)
> +static void encx24j600_spi_remove(struct spi_device *spi)
> {
> struct encx24j600_priv *priv = dev_get_drvdata(&spi->dev);
>
> @@ -1101,8 +1101,6 @@ static int encx24j600_spi_remove(struct spi_device *spi)
> kthread_stop(priv->kworker_task);
>
> free_netdev(priv->ndev);
> -
> - return 0;
> }
>
> static const struct spi_device_id encx24j600_spi_id_table[] = {
> diff --git a/drivers/net/ethernet/qualcomm/qca_spi.c b/drivers/net/ethernet/qualcomm/qca_spi.c
> index 955cce644392..3c5494afd3c0 100644
> --- a/drivers/net/ethernet/qualcomm/qca_spi.c
> +++ b/drivers/net/ethernet/qualcomm/qca_spi.c
> @@ -1001,7 +1001,7 @@ qca_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int
> +static void
> qca_spi_remove(struct spi_device *spi)
> {
> struct net_device *qcaspi_devs = spi_get_drvdata(spi);
> @@ -1011,8 +1011,6 @@ qca_spi_remove(struct spi_device *spi)
>
> unregister_netdev(qcaspi_devs);
> free_netdev(qcaspi_devs);
> -
> - return 0;
> }
>
> static const struct spi_device_id qca_spi_id[] = {
> diff --git a/drivers/net/ethernet/vertexcom/mse102x.c b/drivers/net/ethernet/vertexcom/mse102x.c
> index 89a31783fbb4..25739b182ac7 100644
> --- a/drivers/net/ethernet/vertexcom/mse102x.c
> +++ b/drivers/net/ethernet/vertexcom/mse102x.c
> @@ -731,7 +731,7 @@ static int mse102x_probe_spi(struct spi_device *spi)
> return 0;
> }
>
> -static int mse102x_remove_spi(struct spi_device *spi)
> +static void mse102x_remove_spi(struct spi_device *spi)
> {
> struct mse102x_net *mse = dev_get_drvdata(&spi->dev);
> struct mse102x_net_spi *mses = to_mse102x_spi(mse);
> @@ -741,8 +741,6 @@ static int mse102x_remove_spi(struct spi_device *spi)
>
> mse102x_remove_device_debugfs(mses);
> unregister_netdev(mse->ndev);
> -
> - return 0;
> }
>
> static const struct of_device_id mse102x_match_table[] = {
> diff --git a/drivers/net/ethernet/wiznet/w5100-spi.c b/drivers/net/ethernet/wiznet/w5100-spi.c
> index 7779a36da3c8..7c52796273a4 100644
> --- a/drivers/net/ethernet/wiznet/w5100-spi.c
> +++ b/drivers/net/ethernet/wiznet/w5100-spi.c
> @@ -461,11 +461,9 @@ static int w5100_spi_probe(struct spi_device *spi)
> return w5100_probe(&spi->dev, ops, priv_size, mac, spi->irq, -EINVAL);
> }
>
> -static int w5100_spi_remove(struct spi_device *spi)
> +static void w5100_spi_remove(struct spi_device *spi)
> {
> w5100_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id w5100_spi_ids[] = {
> diff --git a/drivers/net/ieee802154/adf7242.c b/drivers/net/ieee802154/adf7242.c
> index 7db9cbd0f5de..6afdf1622944 100644
> --- a/drivers/net/ieee802154/adf7242.c
> +++ b/drivers/net/ieee802154/adf7242.c
> @@ -1304,7 +1304,7 @@ static int adf7242_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int adf7242_remove(struct spi_device *spi)
> +static void adf7242_remove(struct spi_device *spi)
> {
> struct adf7242_local *lp = spi_get_drvdata(spi);
>
> @@ -1316,8 +1316,6 @@ static int adf7242_remove(struct spi_device *spi)
> ieee802154_unregister_hw(lp->hw);
> mutex_destroy(&lp->bmux);
> ieee802154_free_hw(lp->hw);
> -
> - return 0;
> }
>
> static const struct of_device_id adf7242_of_match[] = {
> diff --git a/drivers/net/ieee802154/at86rf230.c b/drivers/net/ieee802154/at86rf230.c
> index 7d67f41387f5..a4734323dc29 100644
> --- a/drivers/net/ieee802154/at86rf230.c
> +++ b/drivers/net/ieee802154/at86rf230.c
> @@ -1759,7 +1759,7 @@ static int at86rf230_probe(struct spi_device *spi)
> return rc;
> }
>
> -static int at86rf230_remove(struct spi_device *spi)
> +static void at86rf230_remove(struct spi_device *spi)
> {
> struct at86rf230_local *lp = spi_get_drvdata(spi);
>
> @@ -1769,8 +1769,6 @@ static int at86rf230_remove(struct spi_device *spi)
> ieee802154_free_hw(lp->hw);
> at86rf230_debugfs_remove();
> dev_dbg(&spi->dev, "unregistered at86rf230\n");
> -
> - return 0;
> }
>
> static const struct of_device_id at86rf230_of_match[] = {
> diff --git a/drivers/net/ieee802154/ca8210.c b/drivers/net/ieee802154/ca8210.c
> index ece6ff6049f6..b499bbe4d48f 100644
> --- a/drivers/net/ieee802154/ca8210.c
> +++ b/drivers/net/ieee802154/ca8210.c
> @@ -831,7 +831,7 @@ static void ca8210_rx_done(struct cas_control *cas_ctl)
> finish:;
> }
>
> -static int ca8210_remove(struct spi_device *spi_device);
> +static void ca8210_remove(struct spi_device *spi_device);
>
> /**
> * ca8210_spi_transfer_complete() - Called when a single spi transfer has
> @@ -3048,7 +3048,7 @@ static void ca8210_test_interface_clear(struct ca8210_priv *priv)
> *
> * Return: 0 or linux error code
> */
> -static int ca8210_remove(struct spi_device *spi_device)
> +static void ca8210_remove(struct spi_device *spi_device)
> {
> struct ca8210_priv *priv;
> struct ca8210_platform_data *pdata;
> @@ -3088,8 +3088,6 @@ static int ca8210_remove(struct spi_device *spi_device)
> if (IS_ENABLED(CONFIG_IEEE802154_CA8210_DEBUGFS))
> ca8210_test_interface_clear(priv);
> }
> -
> - return 0;
> }
>
> /**
> diff --git a/drivers/net/ieee802154/cc2520.c b/drivers/net/ieee802154/cc2520.c
> index 89c046b204e0..1e1f40f628a0 100644
> --- a/drivers/net/ieee802154/cc2520.c
> +++ b/drivers/net/ieee802154/cc2520.c
> @@ -1213,7 +1213,7 @@ static int cc2520_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int cc2520_remove(struct spi_device *spi)
> +static void cc2520_remove(struct spi_device *spi)
> {
> struct cc2520_private *priv = spi_get_drvdata(spi);
>
> @@ -1222,8 +1222,6 @@ static int cc2520_remove(struct spi_device *spi)
>
> ieee802154_unregister_hw(priv->hw);
> ieee802154_free_hw(priv->hw);
> -
> - return 0;
> }
>
> static const struct spi_device_id cc2520_ids[] = {
> diff --git a/drivers/net/ieee802154/mcr20a.c b/drivers/net/ieee802154/mcr20a.c
> index 8dc04e2590b1..a3af52a8e6dd 100644
> --- a/drivers/net/ieee802154/mcr20a.c
> +++ b/drivers/net/ieee802154/mcr20a.c
> @@ -1335,7 +1335,7 @@ mcr20a_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mcr20a_remove(struct spi_device *spi)
> +static void mcr20a_remove(struct spi_device *spi)
> {
> struct mcr20a_local *lp = spi_get_drvdata(spi);
>
> @@ -1343,8 +1343,6 @@ static int mcr20a_remove(struct spi_device *spi)
>
> ieee802154_unregister_hw(lp->hw);
> ieee802154_free_hw(lp->hw);
> -
> - return 0;
> }
>
> static const struct of_device_id mcr20a_of_match[] = {
> diff --git a/drivers/net/ieee802154/mrf24j40.c b/drivers/net/ieee802154/mrf24j40.c
> index ff83e00b77af..ee4cfbf2c5cc 100644
> --- a/drivers/net/ieee802154/mrf24j40.c
> +++ b/drivers/net/ieee802154/mrf24j40.c
> @@ -1356,7 +1356,7 @@ static int mrf24j40_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mrf24j40_remove(struct spi_device *spi)
> +static void mrf24j40_remove(struct spi_device *spi)
> {
> struct mrf24j40 *devrec = spi_get_drvdata(spi);
>
> @@ -1366,8 +1366,6 @@ static int mrf24j40_remove(struct spi_device *spi)
> ieee802154_free_hw(devrec->hw);
> /* TODO: Will ieee802154_free_device() wait until ->xmit() is
> * complete? */
> -
> - return 0;
> }
>
> static const struct of_device_id mrf24j40_of_match[] = {
> diff --git a/drivers/net/phy/spi_ks8995.c b/drivers/net/phy/spi_ks8995.c
> index 8b5445a724ce..ff37f8ba6758 100644
> --- a/drivers/net/phy/spi_ks8995.c
> +++ b/drivers/net/phy/spi_ks8995.c
> @@ -517,7 +517,7 @@ static int ks8995_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ks8995_remove(struct spi_device *spi)
> +static void ks8995_remove(struct spi_device *spi)
> {
> struct ks8995_switch *ks = spi_get_drvdata(spi);
>
> @@ -526,8 +526,6 @@ static int ks8995_remove(struct spi_device *spi)
> /* assert reset */
> if (ks->pdata && gpio_is_valid(ks->pdata->reset_gpio))
> gpiod_set_value(gpio_to_desc(ks->pdata->reset_gpio), 1);
> -
> - return 0;
> }
>
> /* ------------------------------------------------------------------------ */
> diff --git a/drivers/net/wan/slic_ds26522.c b/drivers/net/wan/slic_ds26522.c
> index 8e3b1c717c10..6063552cea9b 100644
> --- a/drivers/net/wan/slic_ds26522.c
> +++ b/drivers/net/wan/slic_ds26522.c
> @@ -194,10 +194,9 @@ static int slic_ds26522_init_configure(struct spi_device *spi)
> return 0;
> }
>
> -static int slic_ds26522_remove(struct spi_device *spi)
> +static void slic_ds26522_remove(struct spi_device *spi)
> {
> pr_info("DS26522 module uninstalled\n");
> - return 0;
> }
>
> static int slic_ds26522_probe(struct spi_device *spi)
> diff --git a/drivers/net/wireless/intersil/p54/p54spi.c b/drivers/net/wireless/intersil/p54/p54spi.c
> index ab0fe8565851..f99b7ba69fc3 100644
> --- a/drivers/net/wireless/intersil/p54/p54spi.c
> +++ b/drivers/net/wireless/intersil/p54/p54spi.c
> @@ -669,7 +669,7 @@ static int p54spi_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int p54spi_remove(struct spi_device *spi)
> +static void p54spi_remove(struct spi_device *spi)
> {
> struct p54s_priv *priv = spi_get_drvdata(spi);
>
> @@ -684,8 +684,6 @@ static int p54spi_remove(struct spi_device *spi)
> mutex_destroy(&priv->mutex);
>
> p54_free_common(priv->hw);
> -
> - return 0;
> }
>
>
> diff --git a/drivers/net/wireless/marvell/libertas/if_spi.c b/drivers/net/wireless/marvell/libertas/if_spi.c
> index cd9f8ecf171f..ff1c7ec8c450 100644
> --- a/drivers/net/wireless/marvell/libertas/if_spi.c
> +++ b/drivers/net/wireless/marvell/libertas/if_spi.c
> @@ -1195,7 +1195,7 @@ static int if_spi_probe(struct spi_device *spi)
> return err;
> }
>
> -static int libertas_spi_remove(struct spi_device *spi)
> +static void libertas_spi_remove(struct spi_device *spi)
> {
> struct if_spi_card *card = spi_get_drvdata(spi);
> struct lbs_private *priv = card->priv;
> @@ -1212,8 +1212,6 @@ static int libertas_spi_remove(struct spi_device *spi)
> if (card->pdata->teardown)
> card->pdata->teardown(spi);
> free_if_spi_card(card);
> -
> - return 0;
> }
>
> static int if_spi_suspend(struct device *dev)
> diff --git a/drivers/net/wireless/microchip/wilc1000/spi.c b/drivers/net/wireless/microchip/wilc1000/spi.c
> index 2c2ed4b09efd..d2db52289399 100644
> --- a/drivers/net/wireless/microchip/wilc1000/spi.c
> +++ b/drivers/net/wireless/microchip/wilc1000/spi.c
> @@ -240,7 +240,7 @@ static int wilc_bus_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int wilc_bus_remove(struct spi_device *spi)
> +static void wilc_bus_remove(struct spi_device *spi)
> {
> struct wilc *wilc = spi_get_drvdata(spi);
> struct wilc_spi *spi_priv = wilc->bus_data;
> @@ -248,8 +248,6 @@ static int wilc_bus_remove(struct spi_device *spi)
> clk_disable_unprepare(wilc->rtc_clk);
> wilc_netdev_cleanup(wilc);
> kfree(spi_priv);
> -
> - return 0;
> }
>
> static const struct of_device_id wilc_of_match[] = {
> diff --git a/drivers/net/wireless/st/cw1200/cw1200_spi.c b/drivers/net/wireless/st/cw1200/cw1200_spi.c
> index 271ed2ce2d7f..fe0d220da44d 100644
> --- a/drivers/net/wireless/st/cw1200/cw1200_spi.c
> +++ b/drivers/net/wireless/st/cw1200/cw1200_spi.c
> @@ -423,7 +423,7 @@ static int cw1200_spi_probe(struct spi_device *func)
> }
>
> /* Disconnect Function to be called by SPI stack when device is disconnected */
> -static int cw1200_spi_disconnect(struct spi_device *func)
> +static void cw1200_spi_disconnect(struct spi_device *func)
> {
> struct hwbus_priv *self = spi_get_drvdata(func);
>
> @@ -435,8 +435,6 @@ static int cw1200_spi_disconnect(struct spi_device *func)
> }
> }
> cw1200_spi_off(dev_get_platdata(&func->dev));
> -
> - return 0;
> }
>
> static int __maybe_unused cw1200_spi_suspend(struct device *dev)
> diff --git a/drivers/net/wireless/ti/wl1251/spi.c b/drivers/net/wireless/ti/wl1251/spi.c
> index 5b894bd6237e..9df38726e8b0 100644
> --- a/drivers/net/wireless/ti/wl1251/spi.c
> +++ b/drivers/net/wireless/ti/wl1251/spi.c
> @@ -327,14 +327,12 @@ static int wl1251_spi_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int wl1251_spi_remove(struct spi_device *spi)
> +static void wl1251_spi_remove(struct spi_device *spi)
> {
> struct wl1251 *wl = spi_get_drvdata(spi);
>
> wl1251_free_hw(wl);
> regulator_disable(wl->vio);
> -
> - return 0;
> }
>
> static struct spi_driver wl1251_spi_driver = {
> diff --git a/drivers/net/wireless/ti/wlcore/spi.c b/drivers/net/wireless/ti/wlcore/spi.c
> index 354a7e1c3315..7eae1ec2eb2b 100644
> --- a/drivers/net/wireless/ti/wlcore/spi.c
> +++ b/drivers/net/wireless/ti/wlcore/spi.c
> @@ -546,13 +546,11 @@ static int wl1271_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int wl1271_remove(struct spi_device *spi)
> +static void wl1271_remove(struct spi_device *spi)
> {
> struct wl12xx_spi_glue *glue = spi_get_drvdata(spi);
>
> platform_device_unregister(glue->core);
> -
> - return 0;
> }
>
> static struct spi_driver wl1271_spi_driver = {
> diff --git a/drivers/nfc/nfcmrvl/spi.c b/drivers/nfc/nfcmrvl/spi.c
> index 5b833a9a83f8..a38e2fcdfd39 100644
> --- a/drivers/nfc/nfcmrvl/spi.c
> +++ b/drivers/nfc/nfcmrvl/spi.c
> @@ -174,12 +174,11 @@ static int nfcmrvl_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int nfcmrvl_spi_remove(struct spi_device *spi)
> +static void nfcmrvl_spi_remove(struct spi_device *spi)
> {
> struct nfcmrvl_spi_drv_data *drv_data = spi_get_drvdata(spi);
>
> nfcmrvl_nci_unregister_dev(drv_data->priv);
> - return 0;
> }
>
> static const struct of_device_id of_nfcmrvl_spi_match[] __maybe_unused = {
> diff --git a/drivers/nfc/st-nci/spi.c b/drivers/nfc/st-nci/spi.c
> index 4e723992e74c..169eacc0a32a 100644
> --- a/drivers/nfc/st-nci/spi.c
> +++ b/drivers/nfc/st-nci/spi.c
> @@ -263,13 +263,11 @@ static int st_nci_spi_probe(struct spi_device *dev)
> return r;
> }
>
> -static int st_nci_spi_remove(struct spi_device *dev)
> +static void st_nci_spi_remove(struct spi_device *dev)
> {
> struct st_nci_spi_phy *phy = spi_get_drvdata(dev);
>
> ndlc_remove(phy->ndlc);
> -
> - return 0;
> }
>
> static struct spi_device_id st_nci_spi_id_table[] = {
> diff --git a/drivers/nfc/st95hf/core.c b/drivers/nfc/st95hf/core.c
> index b23f47936473..ed704bb77226 100644
> --- a/drivers/nfc/st95hf/core.c
> +++ b/drivers/nfc/st95hf/core.c
> @@ -1198,7 +1198,7 @@ static int st95hf_probe(struct spi_device *nfc_spi_dev)
> return ret;
> }
>
> -static int st95hf_remove(struct spi_device *nfc_spi_dev)
> +static void st95hf_remove(struct spi_device *nfc_spi_dev)
> {
> int result = 0;
> unsigned char reset_cmd = ST95HF_COMMAND_RESET;
> @@ -1236,8 +1236,6 @@ static int st95hf_remove(struct spi_device *nfc_spi_dev)
> /* disable regulator */
> if (stcontext->st95hf_supply)
> regulator_disable(stcontext->st95hf_supply);
> -
> - return 0;
> }
>
> /* Register as SPI protocol driver */
> diff --git a/drivers/nfc/trf7970a.c b/drivers/nfc/trf7970a.c
> index 29ca9c328df2..21d68664fe08 100644
> --- a/drivers/nfc/trf7970a.c
> +++ b/drivers/nfc/trf7970a.c
> @@ -2144,7 +2144,7 @@ static int trf7970a_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int trf7970a_remove(struct spi_device *spi)
> +static void trf7970a_remove(struct spi_device *spi)
> {
> struct trf7970a *trf = spi_get_drvdata(spi);
>
> @@ -2160,8 +2160,6 @@ static int trf7970a_remove(struct spi_device *spi)
> regulator_disable(trf->regulator);
>
> mutex_destroy(&trf->lock);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/platform/chrome/cros_ec_spi.c b/drivers/platform/chrome/cros_ec_spi.c
> index 713c58687721..8493af0f680e 100644
> --- a/drivers/platform/chrome/cros_ec_spi.c
> +++ b/drivers/platform/chrome/cros_ec_spi.c
> @@ -786,13 +786,11 @@ static int cros_ec_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int cros_ec_spi_remove(struct spi_device *spi)
> +static void cros_ec_spi_remove(struct spi_device *spi)
> {
> struct cros_ec_device *ec_dev = spi_get_drvdata(spi);
>
> cros_ec_unregister(ec_dev);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/platform/olpc/olpc-xo175-ec.c b/drivers/platform/olpc/olpc-xo175-ec.c
> index 0d46706afd2d..4823bd2819f6 100644
> --- a/drivers/platform/olpc/olpc-xo175-ec.c
> +++ b/drivers/platform/olpc/olpc-xo175-ec.c
> @@ -648,7 +648,7 @@ static struct olpc_ec_driver olpc_xo175_ec_driver = {
> .ec_cmd = olpc_xo175_ec_cmd,
> };
>
> -static int olpc_xo175_ec_remove(struct spi_device *spi)
> +static void olpc_xo175_ec_remove(struct spi_device *spi)
> {
> if (pm_power_off == olpc_xo175_ec_power_off)
> pm_power_off = NULL;
> @@ -657,8 +657,6 @@ static int olpc_xo175_ec_remove(struct spi_device *spi)
>
> platform_device_unregister(olpc_ec);
> olpc_ec = NULL;
> -
> - return 0;
> }
>
> static int olpc_xo175_ec_probe(struct spi_device *spi)
> diff --git a/drivers/rtc/rtc-ds1302.c b/drivers/rtc/rtc-ds1302.c
> index 2f83adef966e..6d66ab5a8b17 100644
> --- a/drivers/rtc/rtc-ds1302.c
> +++ b/drivers/rtc/rtc-ds1302.c
> @@ -185,10 +185,9 @@ static int ds1302_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ds1302_remove(struct spi_device *spi)
> +static void ds1302_remove(struct spi_device *spi)
> {
> spi_set_drvdata(spi, NULL);
> - return 0;
> }
>
> #ifdef CONFIG_OF
> diff --git a/drivers/rtc/rtc-ds1305.c b/drivers/rtc/rtc-ds1305.c
> index 9ef107b99b65..ed9360486953 100644
> --- a/drivers/rtc/rtc-ds1305.c
> +++ b/drivers/rtc/rtc-ds1305.c
> @@ -720,7 +720,7 @@ static int ds1305_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ds1305_remove(struct spi_device *spi)
> +static void ds1305_remove(struct spi_device *spi)
> {
> struct ds1305 *ds1305 = spi_get_drvdata(spi);
>
> @@ -730,8 +730,6 @@ static int ds1305_remove(struct spi_device *spi)
> devm_free_irq(&spi->dev, spi->irq, ds1305);
> cancel_work_sync(&ds1305->work);
> }
> -
> - return 0;
> }
>
> static struct spi_driver ds1305_driver = {
> diff --git a/drivers/rtc/rtc-ds1343.c b/drivers/rtc/rtc-ds1343.c
> index f14ed6c96437..ed5a6ba89a3e 100644
> --- a/drivers/rtc/rtc-ds1343.c
> +++ b/drivers/rtc/rtc-ds1343.c
> @@ -434,11 +434,9 @@ static int ds1343_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ds1343_remove(struct spi_device *spi)
> +static void ds1343_remove(struct spi_device *spi)
> {
> dev_pm_clear_wake_irq(&spi->dev);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/spi/spi-mem.c b/drivers/spi/spi-mem.c
> index 37f4443ce9a0..e9d83d65873b 100644
> --- a/drivers/spi/spi-mem.c
> +++ b/drivers/spi/spi-mem.c
> @@ -854,15 +854,13 @@ static int spi_mem_probe(struct spi_device *spi)
> return memdrv->probe(mem);
> }
>
> -static int spi_mem_remove(struct spi_device *spi)
> +static void spi_mem_remove(struct spi_device *spi)
> {
> struct spi_mem_driver *memdrv = to_spi_mem_drv(spi->dev.driver);
> struct spi_mem *mem = spi_get_drvdata(spi);
>
> if (memdrv->remove)
> - return memdrv->remove(mem);
> -
> - return 0;
> + memdrv->remove(mem);
> }
>
> static void spi_mem_shutdown(struct spi_device *spi)
> diff --git a/drivers/spi/spi-slave-system-control.c b/drivers/spi/spi-slave-system-control.c
> index 169f3d595f60..d37cfe995a63 100644
> --- a/drivers/spi/spi-slave-system-control.c
> +++ b/drivers/spi/spi-slave-system-control.c
> @@ -132,13 +132,12 @@ static int spi_slave_system_control_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int spi_slave_system_control_remove(struct spi_device *spi)
> +static void spi_slave_system_control_remove(struct spi_device *spi)
> {
> struct spi_slave_system_control_priv *priv = spi_get_drvdata(spi);
>
> spi_slave_abort(spi);
> wait_for_completion(&priv->finished);
> - return 0;
> }
>
> static struct spi_driver spi_slave_system_control_driver = {
> diff --git a/drivers/spi/spi-slave-time.c b/drivers/spi/spi-slave-time.c
> index f2e07a392d68..f56c1afb8534 100644
> --- a/drivers/spi/spi-slave-time.c
> +++ b/drivers/spi/spi-slave-time.c
> @@ -106,13 +106,12 @@ static int spi_slave_time_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int spi_slave_time_remove(struct spi_device *spi)
> +static void spi_slave_time_remove(struct spi_device *spi)
> {
> struct spi_slave_time_priv *priv = spi_get_drvdata(spi);
>
> spi_slave_abort(spi);
> wait_for_completion(&priv->finished);
> - return 0;
> }
>
> static struct spi_driver spi_slave_time_driver = {
> diff --git a/drivers/spi/spi-tle62x0.c b/drivers/spi/spi-tle62x0.c
> index f8ad0709d015..a565352f6381 100644
> --- a/drivers/spi/spi-tle62x0.c
> +++ b/drivers/spi/spi-tle62x0.c
> @@ -288,7 +288,7 @@ static int tle62x0_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int tle62x0_remove(struct spi_device *spi)
> +static void tle62x0_remove(struct spi_device *spi)
> {
> struct tle62x0_state *st = spi_get_drvdata(spi);
> int ptr;
> @@ -298,7 +298,6 @@ static int tle62x0_remove(struct spi_device *spi)
>
> device_remove_file(&spi->dev, &dev_attr_status_show);
> kfree(st);
> - return 0;
> }
>
> static struct spi_driver tle62x0_driver = {
> diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
> index 4599b121d744..ead9a132dcb9 100644
> --- a/drivers/spi/spi.c
> +++ b/drivers/spi/spi.c
> @@ -404,15 +404,8 @@ static void spi_remove(struct device *dev)
> {
> const struct spi_driver *sdrv = to_spi_driver(dev->driver);
>
> - if (sdrv->remove) {
> - int ret;
> -
> - ret = sdrv->remove(to_spi_device(dev));
> - if (ret)
> - dev_warn(dev,
> - "Failed to unbind driver (%pe), ignoring\n",
> - ERR_PTR(ret));
> - }
> + if (sdrv->remove)
> + sdrv->remove(to_spi_device(dev));
>
> dev_pm_domain_detach(dev, true);
> }
> diff --git a/drivers/spi/spidev.c b/drivers/spi/spidev.c
> index a5cceca8b82b..9468f74308bd 100644
> --- a/drivers/spi/spidev.c
> +++ b/drivers/spi/spidev.c
> @@ -803,7 +803,7 @@ static int spidev_probe(struct spi_device *spi)
> return status;
> }
>
> -static int spidev_remove(struct spi_device *spi)
> +static void spidev_remove(struct spi_device *spi)
> {
> struct spidev_data *spidev = spi_get_drvdata(spi);
>
> @@ -820,8 +820,6 @@ static int spidev_remove(struct spi_device *spi)
> if (spidev->users == 0)
> kfree(spidev);
> mutex_unlock(&device_list_lock);
> -
> - return 0;
> }
>
> static struct spi_driver spidev_spi_driver = {
> diff --git a/drivers/staging/fbtft/fbtft.h b/drivers/staging/fbtft/fbtft.h
> index 6a7545b5bcd2..b68f5f9b7c78 100644
> --- a/drivers/staging/fbtft/fbtft.h
> +++ b/drivers/staging/fbtft/fbtft.h
> @@ -286,12 +286,11 @@ static int fbtft_driver_probe_spi(struct spi_device *spi) \
> return fbtft_probe_common(_display, spi, NULL); \
> } \
> \
> -static int fbtft_driver_remove_spi(struct spi_device *spi) \
> +static void fbtft_driver_remove_spi(struct spi_device *spi) \
> { \
> struct fb_info *info = spi_get_drvdata(spi); \
> \
> fbtft_remove_common(&spi->dev, info); \
> - return 0; \
> } \
> \
> static struct spi_driver fbtft_driver_spi_driver = { \
> diff --git a/drivers/staging/pi433/pi433_if.c b/drivers/staging/pi433/pi433_if.c
> index 68c09fa016ed..1d31c35875e3 100644
> --- a/drivers/staging/pi433/pi433_if.c
> +++ b/drivers/staging/pi433/pi433_if.c
> @@ -1264,7 +1264,7 @@ static int pi433_probe(struct spi_device *spi)
> return retval;
> }
>
> -static int pi433_remove(struct spi_device *spi)
> +static void pi433_remove(struct spi_device *spi)
> {
> struct pi433_device *device = spi_get_drvdata(spi);
>
> @@ -1284,8 +1284,6 @@ static int pi433_remove(struct spi_device *spi)
>
> kfree(device->rx_buffer);
> kfree(device);
> -
> - return 0;
> }
>
> static const struct of_device_id pi433_dt_ids[] = {
> diff --git a/drivers/staging/wfx/bus_spi.c b/drivers/staging/wfx/bus_spi.c
> index 55ffcd7c42e2..fa0ff66a457d 100644
> --- a/drivers/staging/wfx/bus_spi.c
> +++ b/drivers/staging/wfx/bus_spi.c
> @@ -232,12 +232,11 @@ static int wfx_spi_probe(struct spi_device *func)
> return wfx_probe(bus->core);
> }
>
> -static int wfx_spi_remove(struct spi_device *func)
> +static void wfx_spi_remove(struct spi_device *func)
> {
> struct wfx_spi_priv *bus = spi_get_drvdata(func);
>
> wfx_release(bus->core);
> - return 0;
> }
>
> /* For dynamic driver binding, kernel does not use OF to match driver. It only
> diff --git a/drivers/tty/serial/max3100.c b/drivers/tty/serial/max3100.c
> index 3c92d4e01488..516cff362434 100644
> --- a/drivers/tty/serial/max3100.c
> +++ b/drivers/tty/serial/max3100.c
> @@ -805,7 +805,7 @@ static int max3100_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int max3100_remove(struct spi_device *spi)
> +static void max3100_remove(struct spi_device *spi)
> {
> struct max3100_port *s = spi_get_drvdata(spi);
> int i;
> @@ -828,13 +828,12 @@ static int max3100_remove(struct spi_device *spi)
> for (i = 0; i < MAX_MAX3100; i++)
> if (max3100s[i]) {
> mutex_unlock(&max3100s_lock);
> - return 0;
> + return;
> }
> pr_debug("removing max3100 driver\n");
> uart_unregister_driver(&max3100_uart_driver);
>
> mutex_unlock(&max3100s_lock);
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/tty/serial/max310x.c b/drivers/tty/serial/max310x.c
> index dde0824b2fa5..3112b4a05448 100644
> --- a/drivers/tty/serial/max310x.c
> +++ b/drivers/tty/serial/max310x.c
> @@ -1487,10 +1487,9 @@ static int max310x_spi_probe(struct spi_device *spi)
> return max310x_probe(&spi->dev, devtype, regmap, spi->irq);
> }
>
> -static int max310x_spi_remove(struct spi_device *spi)
> +static void max310x_spi_remove(struct spi_device *spi)
> {
> max310x_remove(&spi->dev);
> - return 0;
> }
>
> static const struct spi_device_id max310x_id_table[] = {
> diff --git a/drivers/tty/serial/sc16is7xx.c b/drivers/tty/serial/sc16is7xx.c
> index 64e7e6c8145f..25d67b8c4db7 100644
> --- a/drivers/tty/serial/sc16is7xx.c
> +++ b/drivers/tty/serial/sc16is7xx.c
> @@ -1440,11 +1440,9 @@ static int sc16is7xx_spi_probe(struct spi_device *spi)
> return sc16is7xx_probe(&spi->dev, devtype, regmap, spi->irq);
> }
>
> -static int sc16is7xx_spi_remove(struct spi_device *spi)
> +static void sc16is7xx_spi_remove(struct spi_device *spi)
> {
> sc16is7xx_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id sc16is7xx_spi_id_table[] = {
> diff --git a/drivers/usb/gadget/udc/max3420_udc.c b/drivers/usb/gadget/udc/max3420_udc.c
> index d2a2b20cc1ad..7d9bd16190c0 100644
> --- a/drivers/usb/gadget/udc/max3420_udc.c
> +++ b/drivers/usb/gadget/udc/max3420_udc.c
> @@ -1292,7 +1292,7 @@ static int max3420_probe(struct spi_device *spi)
> return err;
> }
>
> -static int max3420_remove(struct spi_device *spi)
> +static void max3420_remove(struct spi_device *spi)
> {
> struct max3420_udc *udc = spi_get_drvdata(spi);
> unsigned long flags;
> @@ -1304,8 +1304,6 @@ static int max3420_remove(struct spi_device *spi)
> kthread_stop(udc->thread_task);
>
> spin_unlock_irqrestore(&udc->lock, flags);
> -
> - return 0;
> }
>
> static const struct of_device_id max3420_udc_of_match[] = {
> diff --git a/drivers/usb/host/max3421-hcd.c b/drivers/usb/host/max3421-hcd.c
> index 30de85a707fe..99a5523a79fb 100644
> --- a/drivers/usb/host/max3421-hcd.c
> +++ b/drivers/usb/host/max3421-hcd.c
> @@ -1926,7 +1926,7 @@ max3421_probe(struct spi_device *spi)
> return retval;
> }
>
> -static int
> +static void
> max3421_remove(struct spi_device *spi)
> {
> struct max3421_hcd *max3421_hcd;
> @@ -1947,7 +1947,6 @@ max3421_remove(struct spi_device *spi)
> free_irq(spi->irq, hcd);
>
> usb_put_hcd(hcd);
> - return 0;
> }
>
> static const struct of_device_id max3421_of_match_table[] = {
> diff --git a/drivers/video/backlight/ams369fg06.c b/drivers/video/backlight/ams369fg06.c
> index 8a4361e95a11..522dd81110b8 100644
> --- a/drivers/video/backlight/ams369fg06.c
> +++ b/drivers/video/backlight/ams369fg06.c
> @@ -506,12 +506,11 @@ static int ams369fg06_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ams369fg06_remove(struct spi_device *spi)
> +static void ams369fg06_remove(struct spi_device *spi)
> {
> struct ams369fg06 *lcd = spi_get_drvdata(spi);
>
> ams369fg06_power(lcd, FB_BLANK_POWERDOWN);
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/video/backlight/corgi_lcd.c b/drivers/video/backlight/corgi_lcd.c
> index 33f5d80495e6..0a57033ae31d 100644
> --- a/drivers/video/backlight/corgi_lcd.c
> +++ b/drivers/video/backlight/corgi_lcd.c
> @@ -542,7 +542,7 @@ static int corgi_lcd_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int corgi_lcd_remove(struct spi_device *spi)
> +static void corgi_lcd_remove(struct spi_device *spi)
> {
> struct corgi_lcd *lcd = spi_get_drvdata(spi);
>
> @@ -550,7 +550,6 @@ static int corgi_lcd_remove(struct spi_device *spi)
> lcd->bl_dev->props.brightness = 0;
> backlight_update_status(lcd->bl_dev);
> corgi_lcd_set_power(lcd->lcd_dev, FB_BLANK_POWERDOWN);
> - return 0;
> }
>
> static struct spi_driver corgi_lcd_driver = {
> diff --git a/drivers/video/backlight/ili922x.c b/drivers/video/backlight/ili922x.c
> index 328aba9cddad..e7b6bd827986 100644
> --- a/drivers/video/backlight/ili922x.c
> +++ b/drivers/video/backlight/ili922x.c
> @@ -526,10 +526,9 @@ static int ili922x_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ili922x_remove(struct spi_device *spi)
> +static void ili922x_remove(struct spi_device *spi)
> {
> ili922x_poweroff(spi);
> - return 0;
> }
>
> static struct spi_driver ili922x_driver = {
> diff --git a/drivers/video/backlight/l4f00242t03.c b/drivers/video/backlight/l4f00242t03.c
> index 46f97d1c3d21..cc763cf15f53 100644
> --- a/drivers/video/backlight/l4f00242t03.c
> +++ b/drivers/video/backlight/l4f00242t03.c
> @@ -223,12 +223,11 @@ static int l4f00242t03_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int l4f00242t03_remove(struct spi_device *spi)
> +static void l4f00242t03_remove(struct spi_device *spi)
> {
> struct l4f00242t03_priv *priv = spi_get_drvdata(spi);
>
> l4f00242t03_lcd_power_set(priv->ld, FB_BLANK_POWERDOWN);
> - return 0;
> }
>
> static void l4f00242t03_shutdown(struct spi_device *spi)
> diff --git a/drivers/video/backlight/lms501kf03.c b/drivers/video/backlight/lms501kf03.c
> index f949b66dce1b..5c46df8022bf 100644
> --- a/drivers/video/backlight/lms501kf03.c
> +++ b/drivers/video/backlight/lms501kf03.c
> @@ -364,12 +364,11 @@ static int lms501kf03_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int lms501kf03_remove(struct spi_device *spi)
> +static void lms501kf03_remove(struct spi_device *spi)
> {
> struct lms501kf03 *lcd = spi_get_drvdata(spi);
>
> lms501kf03_power(lcd, FB_BLANK_POWERDOWN);
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/video/backlight/ltv350qv.c b/drivers/video/backlight/ltv350qv.c
> index 5cbf621e48bd..b6d373af6e3f 100644
> --- a/drivers/video/backlight/ltv350qv.c
> +++ b/drivers/video/backlight/ltv350qv.c
> @@ -255,12 +255,11 @@ static int ltv350qv_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ltv350qv_remove(struct spi_device *spi)
> +static void ltv350qv_remove(struct spi_device *spi)
> {
> struct ltv350qv *lcd = spi_get_drvdata(spi);
>
> ltv350qv_power(lcd, FB_BLANK_POWERDOWN);
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/video/backlight/tdo24m.c b/drivers/video/backlight/tdo24m.c
> index 0de044dcafd5..fc6fbaf85594 100644
> --- a/drivers/video/backlight/tdo24m.c
> +++ b/drivers/video/backlight/tdo24m.c
> @@ -397,12 +397,11 @@ static int tdo24m_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int tdo24m_remove(struct spi_device *spi)
> +static void tdo24m_remove(struct spi_device *spi)
> {
> struct tdo24m *lcd = spi_get_drvdata(spi);
>
> tdo24m_power(lcd, FB_BLANK_POWERDOWN);
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/video/backlight/tosa_lcd.c b/drivers/video/backlight/tosa_lcd.c
> index 38765544345b..23d6c6bf0f54 100644
> --- a/drivers/video/backlight/tosa_lcd.c
> +++ b/drivers/video/backlight/tosa_lcd.c
> @@ -232,15 +232,13 @@ static int tosa_lcd_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int tosa_lcd_remove(struct spi_device *spi)
> +static void tosa_lcd_remove(struct spi_device *spi)
> {
> struct tosa_lcd_data *data = spi_get_drvdata(spi);
>
> i2c_unregister_device(data->i2c);
>
> tosa_lcd_tg_off(data);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/video/backlight/vgg2432a4.c b/drivers/video/backlight/vgg2432a4.c
> index 3567b45f9ba9..bfc1913e8b55 100644
> --- a/drivers/video/backlight/vgg2432a4.c
> +++ b/drivers/video/backlight/vgg2432a4.c
> @@ -233,11 +233,9 @@ static int vgg2432a4_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int vgg2432a4_remove(struct spi_device *spi)
> +static void vgg2432a4_remove(struct spi_device *spi)
> {
> ili9320_remove(spi_get_drvdata(spi));
> -
> - return 0;
> }
>
> static void vgg2432a4_shutdown(struct spi_device *spi)
> diff --git a/drivers/video/fbdev/omap/lcd_mipid.c b/drivers/video/fbdev/omap/lcd_mipid.c
> index a75ae0c9b14c..03cff39d392d 100644
> --- a/drivers/video/fbdev/omap/lcd_mipid.c
> +++ b/drivers/video/fbdev/omap/lcd_mipid.c
> @@ -570,14 +570,12 @@ static int mipid_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int mipid_spi_remove(struct spi_device *spi)
> +static void mipid_spi_remove(struct spi_device *spi)
> {
> struct mipid_device *md = dev_get_drvdata(&spi->dev);
>
> mipid_disable(&md->panel);
> kfree(md);
> -
> - return 0;
> }
>
> static struct spi_driver mipid_spi_driver = {
> diff --git a/drivers/video/fbdev/omap2/omapfb/displays/panel-lgphilips-lb035q02.c b/drivers/video/fbdev/omap2/omapfb/displays/panel-lgphilips-lb035q02.c
> index 1bec7a4422e8..aab67721263d 100644
> --- a/drivers/video/fbdev/omap2/omapfb/displays/panel-lgphilips-lb035q02.c
> +++ b/drivers/video/fbdev/omap2/omapfb/displays/panel-lgphilips-lb035q02.c
> @@ -316,7 +316,7 @@ static int lb035q02_panel_spi_probe(struct spi_device *spi)
> return r;
> }
>
> -static int lb035q02_panel_spi_remove(struct spi_device *spi)
> +static void lb035q02_panel_spi_remove(struct spi_device *spi)
> {
> struct panel_drv_data *ddata = spi_get_drvdata(spi);
> struct omap_dss_device *dssdev = &ddata->dssdev;
> @@ -328,8 +328,6 @@ static int lb035q02_panel_spi_remove(struct spi_device *spi)
> lb035q02_disconnect(dssdev);
>
> omap_dss_put_device(in);
> -
> - return 0;
> }
>
> static const struct of_device_id lb035q02_of_match[] = {
> diff --git a/drivers/video/fbdev/omap2/omapfb/displays/panel-nec-nl8048hl11.c b/drivers/video/fbdev/omap2/omapfb/displays/panel-nec-nl8048hl11.c
> index dff9ebbadfc0..be9910ff6e62 100644
> --- a/drivers/video/fbdev/omap2/omapfb/displays/panel-nec-nl8048hl11.c
> +++ b/drivers/video/fbdev/omap2/omapfb/displays/panel-nec-nl8048hl11.c
> @@ -327,7 +327,7 @@ static int nec_8048_probe(struct spi_device *spi)
> return r;
> }
>
> -static int nec_8048_remove(struct spi_device *spi)
> +static void nec_8048_remove(struct spi_device *spi)
> {
> struct panel_drv_data *ddata = dev_get_drvdata(&spi->dev);
> struct omap_dss_device *dssdev = &ddata->dssdev;
> @@ -341,8 +341,6 @@ static int nec_8048_remove(struct spi_device *spi)
> nec_8048_disconnect(dssdev);
>
> omap_dss_put_device(in);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/video/fbdev/omap2/omapfb/displays/panel-sony-acx565akm.c b/drivers/video/fbdev/omap2/omapfb/displays/panel-sony-acx565akm.c
> index 8d8b5ff7d43c..a909b5385ca5 100644
> --- a/drivers/video/fbdev/omap2/omapfb/displays/panel-sony-acx565akm.c
> +++ b/drivers/video/fbdev/omap2/omapfb/displays/panel-sony-acx565akm.c
> @@ -857,7 +857,7 @@ static int acx565akm_probe(struct spi_device *spi)
> return r;
> }
>
> -static int acx565akm_remove(struct spi_device *spi)
> +static void acx565akm_remove(struct spi_device *spi)
> {
> struct panel_drv_data *ddata = dev_get_drvdata(&spi->dev);
> struct omap_dss_device *dssdev = &ddata->dssdev;
> @@ -874,8 +874,6 @@ static int acx565akm_remove(struct spi_device *spi)
> acx565akm_disconnect(dssdev);
>
> omap_dss_put_device(in);
> -
> - return 0;
> }
>
> static const struct of_device_id acx565akm_of_match[] = {
> diff --git a/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td028ttec1.c b/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td028ttec1.c
> index 595ebd8bd5dc..3c0f887d3092 100644
> --- a/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td028ttec1.c
> +++ b/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td028ttec1.c
> @@ -425,7 +425,7 @@ static int td028ttec1_panel_probe(struct spi_device *spi)
> return r;
> }
>
> -static int td028ttec1_panel_remove(struct spi_device *spi)
> +static void td028ttec1_panel_remove(struct spi_device *spi)
> {
> struct panel_drv_data *ddata = dev_get_drvdata(&spi->dev);
> struct omap_dss_device *dssdev = &ddata->dssdev;
> @@ -439,8 +439,6 @@ static int td028ttec1_panel_remove(struct spi_device *spi)
> td028ttec1_panel_disconnect(dssdev);
>
> omap_dss_put_device(in);
> -
> - return 0;
> }
>
> static const struct of_device_id td028ttec1_of_match[] = {
> diff --git a/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td043mtea1.c b/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td043mtea1.c
> index afac1d9445aa..58bbba7c037f 100644
> --- a/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td043mtea1.c
> +++ b/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td043mtea1.c
> @@ -564,7 +564,7 @@ static int tpo_td043_probe(struct spi_device *spi)
> return r;
> }
>
> -static int tpo_td043_remove(struct spi_device *spi)
> +static void tpo_td043_remove(struct spi_device *spi)
> {
> struct panel_drv_data *ddata = dev_get_drvdata(&spi->dev);
> struct omap_dss_device *dssdev = &ddata->dssdev;
> @@ -580,8 +580,6 @@ static int tpo_td043_remove(struct spi_device *spi)
> omap_dss_put_device(in);
>
> sysfs_remove_group(&spi->dev.kobj, &tpo_td043_attr_group);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/include/linux/spi/spi.h b/include/linux/spi/spi.h
> index 7ab3fed7b804..c84e61b99c7b 100644
> --- a/include/linux/spi/spi.h
> +++ b/include/linux/spi/spi.h
> @@ -280,7 +280,7 @@ struct spi_message;
> struct spi_driver {
> const struct spi_device_id *id_table;
> int (*probe)(struct spi_device *spi);
> - int (*remove)(struct spi_device *spi);
> + void (*remove)(struct spi_device *spi);
> void (*shutdown)(struct spi_device *spi);
> struct device_driver driver;
> };
> diff --git a/sound/pci/hda/cs35l41_hda_spi.c b/sound/pci/hda/cs35l41_hda_spi.c
> index 9f8123893cc8..50eb6c0e6658 100644
> --- a/sound/pci/hda/cs35l41_hda_spi.c
> +++ b/sound/pci/hda/cs35l41_hda_spi.c
> @@ -28,11 +28,9 @@ static int cs35l41_hda_spi_probe(struct spi_device *spi)
> devm_regmap_init_spi(spi, &cs35l41_regmap_spi));
> }
>
> -static int cs35l41_hda_spi_remove(struct spi_device *spi)
> +static void cs35l41_hda_spi_remove(struct spi_device *spi)
> {
> cs35l41_hda_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id cs35l41_hda_spi_id[] = {
> diff --git a/sound/soc/codecs/adau1761-spi.c b/sound/soc/codecs/adau1761-spi.c
> index 655689c9778a..7c9242c2ff94 100644
> --- a/sound/soc/codecs/adau1761-spi.c
> +++ b/sound/soc/codecs/adau1761-spi.c
> @@ -45,10 +45,9 @@ static int adau1761_spi_probe(struct spi_device *spi)
> id->driver_data, adau1761_spi_switch_mode);
> }
>
> -static int adau1761_spi_remove(struct spi_device *spi)
> +static void adau1761_spi_remove(struct spi_device *spi)
> {
> adau17x1_remove(&spi->dev);
> - return 0;
> }
>
> static const struct spi_device_id adau1761_spi_id[] = {
> diff --git a/sound/soc/codecs/adau1781-spi.c b/sound/soc/codecs/adau1781-spi.c
> index bb5613574786..1a09633d5a88 100644
> --- a/sound/soc/codecs/adau1781-spi.c
> +++ b/sound/soc/codecs/adau1781-spi.c
> @@ -45,10 +45,9 @@ static int adau1781_spi_probe(struct spi_device *spi)
> id->driver_data, adau1781_spi_switch_mode);
> }
>
> -static int adau1781_spi_remove(struct spi_device *spi)
> +static void adau1781_spi_remove(struct spi_device *spi)
> {
> adau17x1_remove(&spi->dev);
> - return 0;
> }
>
> static const struct spi_device_id adau1781_spi_id[] = {
> diff --git a/sound/soc/codecs/cs35l41-spi.c b/sound/soc/codecs/cs35l41-spi.c
> index 6dfd5459aa20..169221a5b09f 100644
> --- a/sound/soc/codecs/cs35l41-spi.c
> +++ b/sound/soc/codecs/cs35l41-spi.c
> @@ -55,13 +55,11 @@ static int cs35l41_spi_probe(struct spi_device *spi)
> return cs35l41_probe(cs35l41, pdata);
> }
>
> -static int cs35l41_spi_remove(struct spi_device *spi)
> +static void cs35l41_spi_remove(struct spi_device *spi)
> {
> struct cs35l41_private *cs35l41 = spi_get_drvdata(spi);
>
> cs35l41_remove(cs35l41);
> -
> - return 0;
> }
>
> #ifdef CONFIG_OF
> diff --git a/sound/soc/codecs/pcm3168a-spi.c b/sound/soc/codecs/pcm3168a-spi.c
> index ecd379f308e6..b5b08046f545 100644
> --- a/sound/soc/codecs/pcm3168a-spi.c
> +++ b/sound/soc/codecs/pcm3168a-spi.c
> @@ -26,11 +26,9 @@ static int pcm3168a_spi_probe(struct spi_device *spi)
> return pcm3168a_probe(&spi->dev, regmap);
> }
>
> -static int pcm3168a_spi_remove(struct spi_device *spi)
> +static void pcm3168a_spi_remove(struct spi_device *spi)
> {
> pcm3168a_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id pcm3168a_spi_id[] = {
> diff --git a/sound/soc/codecs/pcm512x-spi.c b/sound/soc/codecs/pcm512x-spi.c
> index 7cf559b47e1c..4d29e7196380 100644
> --- a/sound/soc/codecs/pcm512x-spi.c
> +++ b/sound/soc/codecs/pcm512x-spi.c
> @@ -26,10 +26,9 @@ static int pcm512x_spi_probe(struct spi_device *spi)
> return pcm512x_probe(&spi->dev, regmap);
> }
>
> -static int pcm512x_spi_remove(struct spi_device *spi)
> +static void pcm512x_spi_remove(struct spi_device *spi)
> {
> pcm512x_remove(&spi->dev);
> - return 0;
> }
>
> static const struct spi_device_id pcm512x_spi_id[] = {
> diff --git a/sound/soc/codecs/tlv320aic32x4-spi.c b/sound/soc/codecs/tlv320aic32x4-spi.c
> index a8958cd1c692..03cce8d6404f 100644
> --- a/sound/soc/codecs/tlv320aic32x4-spi.c
> +++ b/sound/soc/codecs/tlv320aic32x4-spi.c
> @@ -46,11 +46,9 @@ static int aic32x4_spi_probe(struct spi_device *spi)
> return aic32x4_probe(&spi->dev, regmap);
> }
>
> -static int aic32x4_spi_remove(struct spi_device *spi)
> +static void aic32x4_spi_remove(struct spi_device *spi)
> {
> aic32x4_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id aic32x4_spi_id[] = {
> diff --git a/sound/soc/codecs/tlv320aic3x-spi.c b/sound/soc/codecs/tlv320aic3x-spi.c
> index 494e84402232..deed6ec7e081 100644
> --- a/sound/soc/codecs/tlv320aic3x-spi.c
> +++ b/sound/soc/codecs/tlv320aic3x-spi.c
> @@ -35,11 +35,9 @@ static int aic3x_spi_probe(struct spi_device *spi)
> return aic3x_probe(&spi->dev, regmap, id->driver_data);
> }
>
> -static int aic3x_spi_remove(struct spi_device *spi)
> +static void aic3x_spi_remove(struct spi_device *spi)
> {
> aic3x_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id aic3x_spi_id[] = {
> diff --git a/sound/soc/codecs/wm0010.c b/sound/soc/codecs/wm0010.c
> index 28b4656c4e14..1bef1c500c8e 100644
> --- a/sound/soc/codecs/wm0010.c
> +++ b/sound/soc/codecs/wm0010.c
> @@ -969,7 +969,7 @@ static int wm0010_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int wm0010_spi_remove(struct spi_device *spi)
> +static void wm0010_spi_remove(struct spi_device *spi)
> {
> struct wm0010_priv *wm0010 = spi_get_drvdata(spi);
>
> @@ -980,8 +980,6 @@ static int wm0010_spi_remove(struct spi_device *spi)
>
> if (wm0010->irq)
> free_irq(wm0010->irq, wm0010);
> -
> - return 0;
> }
>
> static struct spi_driver wm0010_spi_driver = {
> diff --git a/sound/soc/codecs/wm8804-spi.c b/sound/soc/codecs/wm8804-spi.c
> index 9a8da1511c34..628568724c20 100644
> --- a/sound/soc/codecs/wm8804-spi.c
> +++ b/sound/soc/codecs/wm8804-spi.c
> @@ -24,10 +24,9 @@ static int wm8804_spi_probe(struct spi_device *spi)
> return wm8804_probe(&spi->dev, regmap);
> }
>
> -static int wm8804_spi_remove(struct spi_device *spi)
> +static void wm8804_spi_remove(struct spi_device *spi)
> {
> wm8804_remove(&spi->dev);
> - return 0;
> }
>
> static const struct of_device_id wm8804_of_match[] = {
> diff --git a/sound/spi/at73c213.c b/sound/spi/at73c213.c
> index 76c0e37a838c..56d2c712e257 100644
> --- a/sound/spi/at73c213.c
> +++ b/sound/spi/at73c213.c
> @@ -1001,7 +1001,7 @@ static int snd_at73c213_probe(struct spi_device *spi)
> return retval;
> }
>
> -static int snd_at73c213_remove(struct spi_device *spi)
> +static void snd_at73c213_remove(struct spi_device *spi)
> {
> struct snd_card *card = dev_get_drvdata(&spi->dev);
> struct snd_at73c213 *chip = card->private_data;
> @@ -1066,8 +1066,6 @@ static int snd_at73c213_remove(struct spi_device *spi)
>
> ssc_free(chip->ssc);
> snd_card_free(card);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> --
> 2.34.1
>
--
With Best Regards,
Andy Shevchenko
1
0
On Fri, Jan 21, 2022 at 11:16:44PM +0000, Will McVicker wrote:
> From: KaiChieh Chuang <kaichieh.chuang(a)mediatek.com>
>
> [ Upstream commit a9764869779081e8bf24da07ac040e8f3efcf13a ]
>
> The dpcm get from fe_clients/be_clients
> may be free before use
>
> Add a spin lock at snd_soc_card level,
> to protect the dpcm instance.
> The lock may be used in atomic context, so use spin lock.
>
> Use irq spin lock version,
> since the lock may be used in interrupts.
>
> possible race condition between
> void dpcm_be_disconnect(
> ...
> list_del(&dpcm->list_be);
> list_del(&dpcm->list_fe);
> kfree(dpcm);
> ...
>
> and
> for_each_dpcm_fe()
> for_each_dpcm_be*()
>
> race condition example
> Thread 1:
> snd_soc_dapm_mixer_update_power()
> -> soc_dpcm_runtime_update()
> -> dpcm_be_disconnect()
> -> kfree(dpcm);
> Thread 2:
> dpcm_fe_dai_trigger()
> -> dpcm_be_dai_trigger()
> -> snd_soc_dpcm_can_be_free_stop()
> -> if (dpcm->fe == fe)
>
> Excpetion Scenario:
> two FE link to same BE
> FE1 -> BE
> FE2 ->
>
> Thread 1: switch of mixer between FE2 -> BE
> Thread 2: pcm_stop FE1
>
> Exception:
>
> Unable to handle kernel paging request at virtual address dead0000000000e0
>
> pc=<> [<ffffff8960e2cd10>] dpcm_be_dai_trigger+0x29c/0x47c
> sound/soc/soc-pcm.c:3226
> if (dpcm->fe == fe)
> lr=<> [<ffffff8960e2f694>] dpcm_fe_dai_do_trigger+0x94/0x26c
>
> Backtrace:
> [<ffffff89602dba80>] notify_die+0x68/0xb8
> [<ffffff896028c7dc>] die+0x118/0x2a8
> [<ffffff89602a2f84>] __do_kernel_fault+0x13c/0x14c
> [<ffffff89602a27f4>] do_translation_fault+0x64/0xa0
> [<ffffff8960280cf8>] do_mem_abort+0x4c/0xd0
> [<ffffff8960282ad0>] el1_da+0x24/0x40
> [<ffffff8960e2cd10>] dpcm_be_dai_trigger+0x29c/0x47c
> [<ffffff8960e2f694>] dpcm_fe_dai_do_trigger+0x94/0x26c
> [<ffffff8960e2edec>] dpcm_fe_dai_trigger+0x3c/0x44
> [<ffffff8960de5588>] snd_pcm_do_stop+0x50/0x5c
> [<ffffff8960dded24>] snd_pcm_action+0xb4/0x13c
> [<ffffff8960ddfdb4>] snd_pcm_drop+0xa0/0x128
> [<ffffff8960de69bc>] snd_pcm_common_ioctl+0x9d8/0x30f0
> [<ffffff8960de1cac>] snd_pcm_ioctl_compat+0x29c/0x2f14
> [<ffffff89604c9d60>] compat_SyS_ioctl+0x128/0x244
> [<ffffff8960283740>] el0_svc_naked+0x34/0x38
> [<ffffffffffffffff>] 0xffffffffffffffff
>
> Signed-off-by: KaiChieh Chuang <kaichieh.chuang(a)mediatek.com>
> Signed-off-by: Mark Brown <broonie(a)kernel.org>
> [willmcvicker: move spinlock to bottom of struct snd_soc_card]
> Signed-off-by: Will McVicker <willmcvicker(a)google.com>
> Cc: stable(a)vger.kernel.org # 4.19+
> ---
> include/sound/soc.h | 2 ++
> sound/soc/soc-core.c | 1 +
> sound/soc/soc-pcm.c | 40 +++++++++++++++++++++++++++++++++-------
> 3 files changed, 36 insertions(+), 7 deletions(-)
Now queued up, thanks.
greg k-h
1
0
alsa-project/alsa-ucm-conf issue #135 was opened from bornmw:
HP Spectre x360 Convertible 13t-aw200
Vanilla kernel 5.16.2
alsa-ucm-conf-1.2.6.3
alsa-lib-1.2.6.1
alsa-utils-1.2.6
pulseaudio-15.0
[pulseverbose.log](https://github.com/alsa-project/alsa-ucm-conf/files/79198…
A combination of these commands plays noise successfully:
alsaucm -c sof-soundwire set _verb HiFi set _enadev Speaker
speaker-test -Dhw:0,2 -c2 -r48000
$ aplay -Ll
null
Discard all samples (playback) or generate zero samples (capture)
pulse
PulseAudio Sound Server
upmix
Plugin for channel upmix (4,6,8)
vdownmix
Plugin for channel downmix (stereo) with a simple spacialization
sysdefault:CARD=sofsoundwire
sof-soundwire,
Default Audio Device
usbstream:CARD=sofsoundwire
sof-soundwire
USB Stream Output
**** List of PLAYBACK Hardware Devices ****
card 0: sofsoundwire [sof-soundwire], device 0: Headphone (*) []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: sofsoundwire [sof-soundwire], device 2: SDW1-speakers (*) []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: sofsoundwire [sof-soundwire], device 5: HDMI1 (*) []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: sofsoundwire [sof-soundwire], device 6: HDMI2 (*) []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: sofsoundwire [sof-soundwire], device 7: HDMI3 (*) []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: sofsoundwire [sof-soundwire], device 8: HDMI4 (*) []
Subdevices: 1/1
Subdevice #0: subdevice #0
Issue URL : https://github.com/alsa-project/alsa-ucm-conf/issues/135
Repository URL: https://github.com/alsa-project/alsa-ucm-conf
1
0

[PATCH AUTOSEL 5.16 50/52] ASoC: amd: acp: acp-mach: Change default RT1019 amp dev id
by Sasha Levin 22 Jan '22
by Sasha Levin 22 Jan '22
22 Jan '22
From: Ajit Kumar Pandey <AjitKumar.Pandey(a)amd.com>
[ Upstream commit 7112550890d7e415188a3351ec0a140be60f6deb ]
RT1019 components was initially registered with i2c1 and i2c2 but
now changed to i2c0 and i2c1 in most of our AMD platforms. Change
default rt1019 components to 10EC1019:00 and 10EC1019:01 which is
aligned with most of AMD machines.
Any exception to rt1019 device ids in near future board design can
be handled using dmi based quirk for that machine.
Signed-off-by: Ajit Kumar Pandey <AjitKumar.Pandey(a)amd.com>
Link: https://lore.kernel.org/r/20220106150525.396170-1-AjitKumar.Pandey@amd.com
Signed-off-by: Mark Brown <broonie(a)kernel.org>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
---
sound/soc/amd/acp/acp-mach-common.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/sound/soc/amd/acp/acp-mach-common.c b/sound/soc/amd/acp/acp-mach-common.c
index 7785f12aa0065..7386e5bb61b5e 100644
--- a/sound/soc/amd/acp/acp-mach-common.c
+++ b/sound/soc/amd/acp/acp-mach-common.c
@@ -268,8 +268,8 @@ static const struct snd_soc_ops acp_card_rt5682s_ops = {
/* Declare RT1019 codec components */
SND_SOC_DAILINK_DEF(rt1019,
- DAILINK_COMP_ARRAY(COMP_CODEC("i2c-10EC1019:01", "rt1019-aif"),
- COMP_CODEC("i2c-10EC1019:02", "rt1019-aif")));
+ DAILINK_COMP_ARRAY(COMP_CODEC("i2c-10EC1019:00", "rt1019-aif"),
+ COMP_CODEC("i2c-10EC1019:01", "rt1019-aif")));
static const struct snd_soc_dapm_route rt1019_map_lr[] = {
{ "Left Spk", NULL, "Left SPO" },
@@ -278,11 +278,11 @@ static const struct snd_soc_dapm_route rt1019_map_lr[] = {
static struct snd_soc_codec_conf rt1019_conf[] = {
{
- .dlc = COMP_CODEC_CONF("i2c-10EC1019:01"),
+ .dlc = COMP_CODEC_CONF("i2c-10EC1019:00"),
.name_prefix = "Left",
},
{
- .dlc = COMP_CODEC_CONF("i2c-10EC1019:02"),
+ .dlc = COMP_CODEC_CONF("i2c-10EC1019:01"),
.name_prefix = "Right",
},
};
--
2.34.1
2
2

21 Jan '22
Add support for SPI bus in the i2c-multi-instantiate driver as
upcoming laptops will need to multi instantiate SPI devices from
a single device node, which has multiple SpiSerialBus entries at
the ACPI table.
With the new SPI support, i2c-multi-instantiate becomes
bus-multi-instantiate and is moved to the ACPI folder.
The intention is to support the SPI bus by re-using the current
I2C multi instantiate, instead of creating a new SPI multi
instantiate, to make it possible for peripherals that can be
controlled by I2C or SPI to have the same HID at the ACPI table.
The new driver (Bus multi instantiate, bmi) checks for the
hard-coded bus type and returns -ENODEV in case of zero devices
found for that bus. In the case of automatic bus detection,
the driver will give preference to I2C.
The expectation is for a device node in the ACPI table to have
multiple I2cSerialBus only or multiple SpiSerialBus only, not
a mix of both; and for the case where there are both entries in
one device node, only the I2C ones would be probed.
This new bus multi instantiate will be used in CS35L41 HDA new
driver.
Changes since V2:
- Fix review comments in bus-multi-instantiate
- Modified spi code to export new helper to allocate spi device
based on ACPI
- Add api in spi code to count number of spi devices in ACPI
- Add patch to add support for HP Laptops
- Add patch to add support for various CS35L41 devices in
scan.c and bus-multi-instantiate from previous chain:
https://lore.kernel.org/all/20220117160830.709403-1-tanureal@opensource.cir…
Lucas Tanure (5):
platform/x86: i2c-multi-instantiate: Move it to drivers/acpi folder
ACPI: i2c-multi-instantiate: Rename it for a generic bus driver name
ACPI: bus-multi-instantiate: Reorganize I2C functions
ALSA: hda/realtek: Add support for HP Laptops
ACPI / scan: Create platform device for CS35L41
Stefan Binding (5):
spi: Make spi_alloc_device and spi_add_device public again
spi: Create helper API to lookup ACPI info for spi device
spi: Support selection of the index of the ACPI Spi Resource before
alloc
spi: Add API to count spi acpi resources
ACPI: bus-multi-instantiate: Add SPI support
MAINTAINERS | 4 +-
drivers/acpi/Kconfig | 11 +
drivers/acpi/Makefile | 1 +
drivers/acpi/bus-multi-instantiate.c | 369 +++++++++++++++++++
drivers/acpi/scan.c | 16 +-
drivers/platform/x86/Kconfig | 11 -
drivers/platform/x86/Makefile | 1 -
drivers/platform/x86/i2c-multi-instantiate.c | 174 ---------
drivers/spi/spi.c | 142 ++++++-
include/linux/spi/spi.h | 32 ++
sound/pci/hda/patch_realtek.c | 43 ++-
11 files changed, 592 insertions(+), 212 deletions(-)
create mode 100644 drivers/acpi/bus-multi-instantiate.c
delete mode 100644 drivers/platform/x86/i2c-multi-instantiate.c
--
2.25.1
5
15

Re: Re: [PATCH v2] ASoC: codecs: Check for error pointer after calling devm_regmap_init_mmio
by Jiasheng Jiang 21 Jan '22
by Jiasheng Jiang 21 Jan '22
21 Jan '22
On Thu, Jan 20, 2022 at 00:46:45AM +0800, Mark Brown wrote:
>> Since the possible failure of the devm_regmap_init_mmio(), it will
>> return error pointer and be assigned to the regmap.
>> Then the error pointer will be dereferenced.
>> For example rx->regmap will be used in rx_macro_mclk_enable().
>> Therefore, it should be better to check it.
>
> This doesn't apply against current code, please check and resend.
I am really sorry.
I have already try my best to find the latest code but fails.
Please give me the url or the git repository.
Sincerely thanks,
Jiang
2
1

21 Jan '22
Hi.
Got a brand new SSL 2+ sound card today.
If the recording works (not ideally) I would like to work with each
channel both separately and in stereo mode.
That playback does not work at all.
The device is defined as a quad channel and it would be better to see
this device as two separated stereo devices.
$ systemctl --user stop wireplumber.service
$ aplay --device sysdefault:CARD=ILDSP ~/Music/Modern\ CD/01.\ I\
have\ found\ my\ love\ in\ you.wav
Playing WAVE '/home/mikhail/Music/Modern CD/01. I have found my love
in you.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
^CAborted by signal Interrupt...
aplay: pcm_write:2127: write error: Interrupted system call
$ aplay --device sysdefault:CARD=S2 ~/Music/Modern\ CD/01.\ I\ have\
found\ my\ love\ in\ you.wav
ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave
aplay: main:831: audio open error: Device or resource busy
$ aplay --device sysdefault:CARD=S2 ~/Music/Modern\ CD/01.\ I\ have\
found\ my\ love\ in\ you.wav
ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave
aplay: main:831: audio open error: Device or resource busy
$ systemctl --user start wireplumber.service
http://alsa-project.org/db/?f=99ecd60a74fe21e14262ec53475437b413ae5602
--
Best Regards,
Mike Gavrilov.
1
0
Add support for SPI bus in the i2c-multi-instantiate driver as
upcoming laptops will need to multi instantiate SPI devices from
a single device node, which has multiple SpiSerialBus entries at
the ACPI table.
With the new SPI support, i2c-multi-instantiate becomes
bus-multi-instantiate and is moved to the ACPI folder.
The intention is to support the SPI bus by re-using the current
I2C multi instantiate, instead of creating a new SPI multi
instantiate, to make it possible for peripherals that can be
controlled by I2C or SPI to have the same HID at the ACPI table.
The new driver (Bus multi instantiate, bmi) checks for the
hard-coded bus type and returns -ENODEV in case of zero devices
found for that bus. In the case of automatic bus detection,
the driver will give preference to I2C.
The expectation is for a device node in the ACPI table to have
multiple I2cSerialBus only or multiple SpiSerialBus only, not
a mix of both; and for the case where there are both entries in
one device node, only the I2C ones would be probed.
This new bus multi instantiate will be used in CS35L41 HDA new
driver.
Changes since V2:
- Moved bus-multi-instantiate back into platform/x86
Lucas Tanure (4):
platform/x86: i2c-multi-instantiate: Rename it for a generic bus
driver name
platform/x86: bus-multi-instantiate: Reorganize I2C functions
ALSA: hda/realtek: Add support for HP Laptops
ACPI / scan: Create platform device for CS35L41
Stefan Binding (5):
spi: Make spi_alloc_device and spi_add_device public again
spi: Create helper API to lookup ACPI info for spi device
spi: Support selection of the index of the ACPI Spi Resource before
alloc
spi: Add API to count spi acpi resources
platform/x86: bus-multi-instantiate: Add SPI support
MAINTAINERS | 4 +-
drivers/acpi/scan.c | 16 +-
drivers/platform/x86/Kconfig | 14 +-
drivers/platform/x86/Makefile | 2 +-
drivers/platform/x86/bus-multi-instantiate.c | 369 +++++++++++++++++++
drivers/platform/x86/i2c-multi-instantiate.c | 174 ---------
drivers/spi/spi.c | 142 ++++++-
include/linux/spi/spi.h | 32 ++
sound/pci/hda/patch_realtek.c | 43 ++-
9 files changed, 588 insertions(+), 208 deletions(-)
create mode 100644 drivers/platform/x86/bus-multi-instantiate.c
delete mode 100644 drivers/platform/x86/i2c-multi-instantiate.c
--
2.25.1
4
26

21 Jan '22
Add system suspend and resume handlers so that the cs42l42 is cleanly
put into power-off state during system suspend and the registers are
restored in resume.
The first two patches separate out two small changes that can stand
alone and are needed to enable the system suspend implementation:
1) Don't rely on there being a jack unplug IRQ before a plug IRQ.
There won't be if the unplug and plug happened while in system suspend.
2) Put a mutex around the entire IRQ handling so that the suspend can
ensure the last run of the IRQ handler has completed before it powers
down.
Richard Fitzgerald (3):
ASoC: cs42l42: Report full jack status when plug is detected
ASoC: cs42l42: Change jack_detect_mutex to a lock of all IRQ handling
ASoC: cs42l42: Handle system suspend
sound/soc/codecs/cs42l42.c | 164 ++++++++++++++++++++++++++++++++++++++++++---
sound/soc/codecs/cs42l42.h | 7 +-
2 files changed, 161 insertions(+), 10 deletions(-)
--
2.11.0
1
4

21 Jan '22
The 'interrupts' properties takes an irq number, not a phandle, and
'interrupt-parent' isn't needed in examples.
---
Documentation/devicetree/bindings/mfd/cirrus,madera.yaml | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/Documentation/devicetree/bindings/mfd/cirrus,madera.yaml b/Documentation/devicetree/bindings/mfd/cirrus,madera.yaml
index 5dce62a7eff2..68c75a517c92 100644
--- a/Documentation/devicetree/bindings/mfd/cirrus,madera.yaml
+++ b/Documentation/devicetree/bindings/mfd/cirrus,madera.yaml
@@ -245,8 +245,7 @@ examples:
interrupt-controller;
#interrupt-cells = <2>;
- interrupts = <&host_irq1>;
- interrupt-parent = <&gic>;
+ interrupts = <4 1 0>;
gpio-controller;
#gpio-cells = <2>;
--
2.32.0
3
3
For a single pinctrl mode, it is not necessary to define pinctrl
properties as the tools always allow pinctrl properties.
Signed-off-by: Rob Herring <robh(a)kernel.org>
---
.../display/rockchip/rockchip,rk3066-hdmi.yaml | 8 --------
Documentation/devicetree/bindings/input/gpio-keys.yaml | 6 ------
.../devicetree/bindings/pinctrl/cirrus,lochnagar.yaml | 9 ---------
.../devicetree/bindings/pinctrl/cirrus,madera.yaml | 10 ----------
.../devicetree/bindings/sound/samsung-i2s.yaml | 6 ------
5 files changed, 39 deletions(-)
diff --git a/Documentation/devicetree/bindings/display/rockchip/rockchip,rk3066-hdmi.yaml b/Documentation/devicetree/bindings/display/rockchip/rockchip,rk3066-hdmi.yaml
index 008c144257cb..1a68a940d165 100644
--- a/Documentation/devicetree/bindings/display/rockchip/rockchip,rk3066-hdmi.yaml
+++ b/Documentation/devicetree/bindings/display/rockchip/rockchip,rk3066-hdmi.yaml
@@ -26,14 +26,6 @@ properties:
clock-names:
const: hclk
- pinctrl-0:
- maxItems: 2
-
- pinctrl-names:
- const: default
- description:
- Switch the iomux for the HPD/I2C pins to HDMI function.
-
power-domains:
maxItems: 1
diff --git a/Documentation/devicetree/bindings/input/gpio-keys.yaml b/Documentation/devicetree/bindings/input/gpio-keys.yaml
index dbe7ecc19ccb..7fe1966ea28a 100644
--- a/Documentation/devicetree/bindings/input/gpio-keys.yaml
+++ b/Documentation/devicetree/bindings/input/gpio-keys.yaml
@@ -88,12 +88,6 @@ patternProperties:
which can be disabled to suppress events from the button.
type: boolean
- pinctrl-0:
- maxItems: 1
-
- pinctrl-names:
- maxItems: 1
-
required:
- linux,code
diff --git a/Documentation/devicetree/bindings/pinctrl/cirrus,lochnagar.yaml b/Documentation/devicetree/bindings/pinctrl/cirrus,lochnagar.yaml
index 80020539c3bb..5cd512b7d5ba 100644
--- a/Documentation/devicetree/bindings/pinctrl/cirrus,lochnagar.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/cirrus,lochnagar.yaml
@@ -51,15 +51,6 @@ properties:
appropriate of the LOCHNAGARx_PIN_NUM_GPIOS define, see [3].
maxItems: 1
- pinctrl-0:
- description:
- A phandle to the default pinctrl state.
-
- pinctrl-names:
- description:
- A pinctrl state named "default" must be defined.
- const: default
-
pin-settings:
type: object
patternProperties:
diff --git a/Documentation/devicetree/bindings/pinctrl/cirrus,madera.yaml b/Documentation/devicetree/bindings/pinctrl/cirrus,madera.yaml
index e50d7ad5c229..c85f759ae5a3 100644
--- a/Documentation/devicetree/bindings/pinctrl/cirrus,madera.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/cirrus,madera.yaml
@@ -30,16 +30,6 @@ description: |
Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
properties:
- pinctrl-0:
- description:
- A phandle to the node containing the subnodes containing default
- configurations.
-
- pinctrl-names:
- description:
- A pinctrl state named "default" must be defined.
- const: default
-
pin-settings:
description:
One subnode is required to contain the default settings. It
diff --git a/Documentation/devicetree/bindings/sound/samsung-i2s.yaml b/Documentation/devicetree/bindings/sound/samsung-i2s.yaml
index 2e3628ef48df..84c4d6cba521 100644
--- a/Documentation/devicetree/bindings/sound/samsung-i2s.yaml
+++ b/Documentation/devicetree/bindings/sound/samsung-i2s.yaml
@@ -110,12 +110,6 @@ properties:
Internal DMA register base address of the audio
subsystem (used in secondary sound source).
- pinctrl-0:
- description: Should specify pin control groups used for this controller.
-
- pinctrl-names:
- const: default
-
power-domains:
maxItems: 1
--
2.32.0
4
4

Re: [PATCH v5] ASoC: adds component driver for TAS575xM digital amplifiers
by Joerg Schambacher 20 Jan '22
by Joerg Schambacher 20 Jan '22
20 Jan '22
On Thu, Jan 20, 2022 at 02:18:26AM +0800, kernel test robot wrote:
> tree: https://github.com/0day-ci/linux/commits/UPDATE-20220119-210919/Joerg-Scham…
> head: 05b8bf5544bc621031f5a0a6bdf1ac6468a7367b
> commit: 05b8bf5544bc621031f5a0a6bdf1ac6468a7367b ASoC: adds component driver for TAS575xM digital amplifiers
> date: 5 hours ago
> config: riscv-randconfig-c006-20220118 (https://download.01.org/0day-ci/archive/20220120/202201200259.nNgbKOJd-lkp@…)
> compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project f7b7138a62648f4019c55e4671682af1f851f295)
> reproduce (this is a W=1 build):
> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # install riscv cross compiling tool for clang build
> # apt-get install binutils-riscv64-linux-gnu
> # https://github.com/0day-ci/linux/commit/05b8bf5544bc621031f5a0a6bdf1ac6468a…
> git remote add linux-review https://github.com/0day-ci/linux
> git fetch --no-tags linux-review UPDATE-20220119-210919/Joerg-Schambacher/ASoC-adds-component-driver-for-TAS575xM-digital-amplifiers/20220110-164852
> git checkout 05b8bf5544bc621031f5a0a6bdf1ac6468a7367b
> # save the config file to linux build tree
> mkdir build_dir
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=riscv SHELL=/bin/bash sound/soc/codecs/
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp(a)intel.com>
>
> All warnings (new ones prefixed by >>):
>
> >> sound/soc/codecs/tas5754m.c:246:7: warning: variable 'ret' is used uninitialized whenever switch case is taken [-Wsometimes-uninitialized]
> case SND_SOC_BIAS_ON:
> ^~~~~~~~~~~~~~~
> sound/soc/codecs/tas5754m.c:267:9: note: uninitialized use occurs here
> return ret;
> ^~~
> sound/soc/codecs/tas5754m.c:247:7: warning: variable 'ret' is used uninitialized whenever switch case is taken [-Wsometimes-uninitialized]
> case SND_SOC_BIAS_PREPARE:
> ^~~~~~~~~~~~~~~~~~~~
> sound/soc/codecs/tas5754m.c:267:9: note: uninitialized use occurs here
> return ret;
> ^~~
> sound/soc/codecs/tas5754m.c:242:9: note: initialize the variable 'ret' to silence this warning
> int ret;
> ^
> = 0
> 2 warnings generated.
>
>
> vim +/ret +246 sound/soc/codecs/tas5754m.c
>
> 236
> 237 static int tas5754m_set_bias_level(struct snd_soc_component *component,
> 238 enum snd_soc_bias_level level)
> 239 {
> 240 struct tas5754m_priv *tas5754m =
> 241 snd_soc_component_get_drvdata(component);
> 242 int ret;
> 243
> 244 switch (level) {
> 245 default:
> > 246 case SND_SOC_BIAS_ON:
> 247 case SND_SOC_BIAS_PREPARE:
> 248 break;
> 249
> 250 case SND_SOC_BIAS_STANDBY:
> 251 ret = regmap_update_bits(tas5754m->regmap,
> 252 TAS5754M_POWER, TAS5754M_RQST, 0);
> 253 if (ret)
> 254 dev_err(component->dev,
> 255 "Failed to remove standby: %d\n", ret);
> 256 break;
> 257
> 258 case SND_SOC_BIAS_OFF:
> 259 ret = regmap_update_bits(tas5754m->regmap,
> 260 TAS5754M_POWER, TAS5754M_RQST, TAS5754M_RQST);
> 261 if (ret)
> 262 dev_err(component->dev,
> 263 "Failed to request standby: %d\n", ret);
> 264 break;
> 265 }
> 266
> 267 return ret;
> 268 }
> 269
>
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
all, fixed.
Joerg
>From 331a880edff308e8f0608f72f244c25e56162e24 Mon Sep 17 00:00:00 2001
From: Joerg Schambacher <joerg(a)hifiberry.com>
Date: Tue, 5 Oct 2021 14:38:21 +0200
Subject: [PATCH] ASoC: adds component driver for TAS575xM digital amplifiers
Adds a minimum component driver to run the amplifier in I2S master
mode only from standard audio clocks. Therefore, it only allows
44.1, 88.2, 176.4, 48, 96 and 192ksps with 16, 20, 24 and 32 bits
sample size. Digital volume control and the -6dB and +0.8dB switches
are supported.
Signed-off-by: Joerg Schambacher <joerg(a)hifiberry.com>
---
sound/soc/codecs/Kconfig | 8 +
sound/soc/codecs/Makefile | 2 +
sound/soc/codecs/tas5754m.c | 691 ++++++++++++++++++++++++++++++++++++
sound/soc/codecs/tas5754m.h | 260 ++++++++++++++
4 files changed, 961 insertions(+)
create mode 100644 sound/soc/codecs/tas5754m.c
create mode 100644 sound/soc/codecs/tas5754m.h
diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig
index 82ee233a269d..cf0584948fcf 100644
--- a/sound/soc/codecs/Kconfig
+++ b/sound/soc/codecs/Kconfig
@@ -210,6 +210,7 @@ config SND_SOC_ALL_CODECS
imply SND_SOC_TAS5086
imply SND_SOC_TAS571X
imply SND_SOC_TAS5720
+ imply SND_SOC_TAS5754M
imply SND_SOC_TAS6424
imply SND_SOC_TDA7419
imply SND_SOC_TFA9879
@@ -1419,6 +1420,13 @@ config SND_SOC_TAS5720
Enable support for Texas Instruments TAS5720L/M high-efficiency mono
Class-D audio power amplifiers.
+config SND_SOC_TAS5754M
+ tristate "Texas Instruments TAS5754M Digital Input Audio amplifier"
+ depends on I2C
+ help
+ Enable support for Texas Instruments TAS5754M digital input
+ Class-D audio power amplifiers.
+
config SND_SOC_TAS6424
tristate "Texas Instruments TAS6424 Quad-Channel Audio amplifier"
depends on I2C
diff --git a/sound/soc/codecs/Makefile b/sound/soc/codecs/Makefile
index 8dcea2c4604a..39984900258a 100644
--- a/sound/soc/codecs/Makefile
+++ b/sound/soc/codecs/Makefile
@@ -227,6 +227,7 @@ snd-soc-sti-sas-objs := sti-sas.o
snd-soc-tas5086-objs := tas5086.o
snd-soc-tas571x-objs := tas571x.o
snd-soc-tas5720-objs := tas5720.o
+snd-soc-tas5754m-objs := tas5754m.o
snd-soc-tas6424-objs := tas6424.o
snd-soc-tda7419-objs := tda7419.o
snd-soc-tas2770-objs := tas2770.o
@@ -555,6 +556,7 @@ obj-$(CONFIG_SND_SOC_TAS2764) += snd-soc-tas2764.o
obj-$(CONFIG_SND_SOC_TAS5086) += snd-soc-tas5086.o
obj-$(CONFIG_SND_SOC_TAS571X) += snd-soc-tas571x.o
obj-$(CONFIG_SND_SOC_TAS5720) += snd-soc-tas5720.o
+obj-$(CONFIG_SND_SOC_TAS5754M) += snd-soc-tas5754m.o
obj-$(CONFIG_SND_SOC_TAS6424) += snd-soc-tas6424.o
obj-$(CONFIG_SND_SOC_TDA7419) += snd-soc-tda7419.o
obj-$(CONFIG_SND_SOC_TAS2770) += snd-soc-tas2770.o
diff --git a/sound/soc/codecs/tas5754m.c b/sound/soc/codecs/tas5754m.c
new file mode 100644
index 000000000000..06c10002f32e
--- /dev/null
+++ b/sound/soc/codecs/tas5754m.c
@@ -0,0 +1,691 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Driver for the TAS5754M Audio Amplifier
+ *
+ * Author: Joerg Schambacher <joerg(a)hifiberry.com>
+ * with fragments from Andy Liu <andy-liu(a)ti.com>
+ *
+ * The driver supports I2S master mode only with standard audio
+ * frequencies 44.1 to 192 ksps from a 24.576/22.2592MHz master
+ * clock input
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ */
+
+#include <linux/module.h>
+#include <linux/moduleparam.h>
+#include <linux/clk.h>
+#include <linux/slab.h>
+#include <linux/of.h>
+#include <linux/init.h>
+#include <linux/i2c.h>
+#include <linux/regmap.h>
+#include <linux/delay.h>
+
+#include <sound/tlv.h>
+#include <sound/soc.h>
+#include <sound/pcm.h>
+#include <sound/pcm_params.h>
+#include <sound/initval.h>
+
+#include "tas5754m.h"
+
+#define TAS5754M_RATES (SNDRV_PCM_RATE_48000 | \
+ SNDRV_PCM_RATE_96000 | \
+ SNDRV_PCM_RATE_192000 | \
+ SNDRV_PCM_RATE_44100 | \
+ SNDRV_PCM_RATE_88200 | \
+ SNDRV_PCM_RATE_176400)
+#define TAS5754M_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | \
+ SNDRV_PCM_FMTBIT_S20_LE | \
+ SNDRV_PCM_FMTBIT_S24_LE | \
+ SNDRV_PCM_FMTBIT_S32_LE)
+
+
+static const struct reg_default tas5754m_reg_defaults[] = {
+ { TAS5754M_RESET, 0x00 },
+ { TAS5754M_POWER, 0x00 },
+ { TAS5754M_MUTE, 0x00 },
+ { TAS5754M_DSP, 0x00 },
+ { TAS5754M_PLL_REF, 0x00 },
+ { TAS5754M_DAC_REF, 0x00 },
+ { TAS5754M_DAC_ROUTING, 0x11 },
+ { TAS5754M_DSP_PROGRAM, 0x01 },
+ { TAS5754M_CLKDET, 0x00 },
+ { TAS5754M_AUTO_MUTE, 0x00 },
+ { TAS5754M_ERROR_DETECT, 0x00 },
+ { TAS5754M_DIGITAL_VOLUME_1, 0x00 },
+ { TAS5754M_DIGITAL_VOLUME_2, 0x30 },
+ { TAS5754M_DIGITAL_VOLUME_3, 0x30 },
+ { TAS5754M_DIGITAL_MUTE_1, 0x22 },
+ { TAS5754M_DIGITAL_MUTE_2, 0x00 },
+ { TAS5754M_DIGITAL_MUTE_3, 0x07 },
+ { TAS5754M_OUTPUT_AMPLITUDE, 0x00 },
+ { TAS5754M_ANALOG_GAIN_CTRL, 0x00 },
+ { TAS5754M_UNDERVOLTAGE_PROT, 0x00 },
+ { TAS5754M_ANALOG_MUTE_CTRL, 0x00 },
+ { TAS5754M_ANALOG_GAIN_BOOST, 0x00 },
+ { TAS5754M_VCOM_CTRL_1, 0x00 },
+ { TAS5754M_VCOM_CTRL_2, 0x01 },
+ { TAS5754M_BCLK_LRCLK_CFG, 0x00 },
+ { TAS5754M_MASTER_MODE, 0x7c },
+ { TAS5754M_GPIO_PLLIN, 0x00 },
+ { TAS5754M_SYNCHRONIZE, 0x10 },
+ { TAS5754M_PLL_COEFF_P, 0x00 },
+ { TAS5754M_PLL_COEFF_J, 0x00 },
+ { TAS5754M_PLL_COEFF_DH, 0x00 },
+ { TAS5754M_PLL_COEFF_DL, 0x00 },
+ { TAS5754M_PLL_COEFF_R, 0x00 },
+ { TAS5754M_DSP_CLKDIV, 0x00 },
+ { TAS5754M_DAC_CLKDIV, 0x00 },
+ { TAS5754M_NCP_CLKDIV, 0x00 },
+ { TAS5754M_OSR_CLKDIV, 0x00 },
+ { TAS5754M_MASTER_SCLKDIV, 0x00 },
+ { TAS5754M_MASTER_LRCLKDIV, 0x00 },
+ { TAS5754M_FS_SPEED_MODE, 0x00 },
+ { TAS5754M_IDAC_1, 0x01 },
+ { TAS5754M_IDAC_2, 0x00 },
+};
+
+static bool tas5754m_readable(struct device *dev, unsigned int reg)
+{
+ switch (reg) {
+ case TAS5754M_RESET:
+ case TAS5754M_POWER:
+ case TAS5754M_MUTE:
+ case TAS5754M_PLL_EN:
+ case TAS5754M_DSP:
+ case TAS5754M_GPIO_EN:
+ case TAS5754M_BCLK_LRCLK_CFG:
+ case TAS5754M_DSP_GPIO_INPUT:
+ case TAS5754M_MASTER_MODE:
+ case TAS5754M_PLL_REF:
+ case TAS5754M_DAC_REF:
+ case TAS5754M_GPIO_PLLIN:
+ case TAS5754M_SYNCHRONIZE:
+ case TAS5754M_PLL_COEFF_P:
+ case TAS5754M_PLL_COEFF_J:
+ case TAS5754M_PLL_COEFF_DH:
+ case TAS5754M_PLL_COEFF_DL:
+ case TAS5754M_PLL_COEFF_R:
+ case TAS5754M_DSP_CLKDIV:
+ case TAS5754M_DAC_CLKDIV:
+ case TAS5754M_NCP_CLKDIV:
+ case TAS5754M_OSR_CLKDIV:
+ case TAS5754M_MASTER_SCLKDIV:
+ case TAS5754M_MASTER_LRCLKDIV:
+ case TAS5754M_FS_SPEED_MODE:
+ case TAS5754M_IDAC_1:
+ case TAS5754M_IDAC_2:
+ case TAS5754M_ERROR_DETECT:
+ case TAS5754M_I2S_1:
+ case TAS5754M_I2S_2:
+ case TAS5754M_DAC_ROUTING:
+ case TAS5754M_DSP_PROGRAM:
+ case TAS5754M_CLKDET:
+ case TAS5754M_AUTO_MUTE:
+ case TAS5754M_DIGITAL_VOLUME_1:
+ case TAS5754M_DIGITAL_VOLUME_2:
+ case TAS5754M_DIGITAL_VOLUME_3:
+ case TAS5754M_DIGITAL_MUTE_1:
+ case TAS5754M_DIGITAL_MUTE_2:
+ case TAS5754M_DIGITAL_MUTE_3:
+ case TAS5754M_GPIO_OUTPUT_0:
+ case TAS5754M_GPIO_OUTPUT_1:
+ case TAS5754M_GPIO_OUTPUT_2:
+ case TAS5754M_GPIO_CONTROL_1:
+ case TAS5754M_GPIO_CONTROL_2:
+ case TAS5754M_OVERFLOW:
+ case TAS5754M_RATE_DET_1:
+ case TAS5754M_RATE_DET_2:
+ case TAS5754M_RATE_DET_3:
+ case TAS5754M_RATE_DET_4:
+ case TAS5754M_CLOCK_STATUS:
+ case TAS5754M_ANALOG_MUTE_DET:
+ case TAS5754M_GPIN:
+ case TAS5754M_DIGITAL_MUTE_DET:
+ case TAS5754M_OUTPUT_AMPLITUDE:
+ case TAS5754M_ANALOG_GAIN_CTRL:
+ case TAS5754M_UNDERVOLTAGE_PROT:
+ case TAS5754M_ANALOG_MUTE_CTRL:
+ case TAS5754M_ANALOG_GAIN_BOOST:
+ case TAS5754M_VCOM_CTRL_1:
+ case TAS5754M_VCOM_CTRL_2:
+ case TAS5754M_CRAM_CTRL:
+ case TAS5754M_FLEX_A:
+ case TAS5754M_FLEX_B:
+ return true;
+ default:
+ return reg < 0x7f;
+ }
+}
+
+static bool tas5754m_volatile(struct device *dev, unsigned int reg)
+{
+ switch (reg) {
+ case TAS5754M_PLL_EN:
+ case TAS5754M_OVERFLOW:
+ case TAS5754M_RATE_DET_1:
+ case TAS5754M_RATE_DET_2:
+ case TAS5754M_RATE_DET_3:
+ case TAS5754M_RATE_DET_4:
+ case TAS5754M_CLOCK_STATUS:
+ case TAS5754M_ANALOG_MUTE_DET:
+ case TAS5754M_GPIN:
+ case TAS5754M_DIGITAL_MUTE_DET:
+ case TAS5754M_CRAM_CTRL:
+ return true;
+ default:
+ return reg < 0x7f;
+ }
+}
+
+struct tas5754m_priv {
+ struct regmap *regmap;
+ struct clk *sclk;
+ int sample_len;
+ int fmt;
+ int mode;
+};
+
+static const struct regmap_range_cfg tas5754m_range = {
+ .name = "Pages",
+ .range_min = TAS5754M_VIRT_BASE,
+ .range_max = TAS5754M_MAX_REGISTER,
+ .selector_reg = TAS5754M_PAGE,
+ .selector_mask = 0x7f,
+ .window_start = 0,
+ .window_len = 128,
+};
+
+const struct regmap_config tas5754m_regmap = {
+ .reg_bits = 8,
+ .val_bits = 8,
+
+ .ranges = &tas5754m_range,
+ .num_ranges = 1,
+ .max_register = TAS5754M_MAX_REGISTER,
+
+ .reg_defaults = tas5754m_reg_defaults,
+ .num_reg_defaults = ARRAY_SIZE(tas5754m_reg_defaults),
+ .readable_reg = tas5754m_readable,
+ .volatile_reg = tas5754m_volatile,
+
+ .cache_type = REGCACHE_RBTREE,
+};
+
+static const DECLARE_TLV_DB_SCALE(digital_tlv, -10350, 50, 1);
+static const DECLARE_TLV_DB_SCALE(analog_tlv, -600, 600, 0);
+static const DECLARE_TLV_DB_SCALE(boost_tlv, 0, 80, 0);
+
+static const struct snd_kcontrol_new tas5754m_controls[] = {
+SOC_DOUBLE_R_TLV("Digital Playback Volume", TAS5754M_DIGITAL_VOLUME_2,
+ TAS5754M_DIGITAL_VOLUME_3, 0, 255, 1, digital_tlv),
+SOC_DOUBLE_TLV("Analog Playback Volume", TAS5754M_ANALOG_GAIN_CTRL,
+ TAS5754M_LAGN_SHIFT, TAS5754M_RAGN_SHIFT, 1, 1, analog_tlv),
+SOC_DOUBLE_TLV("Analogue Playback Boost Volume", TAS5754M_ANALOG_GAIN_BOOST,
+ TAS5754M_AGBL_SHIFT, TAS5754M_AGBR_SHIFT, 1, 0, boost_tlv),
+};
+
+static int tas5754m_set_bias_level(struct snd_soc_component *component,
+ enum snd_soc_bias_level level)
+{
+ struct tas5754m_priv *tas5754m =
+ snd_soc_component_get_drvdata(component);
+ int ret = 0;
+
+ switch (level) {
+ default:
+ case SND_SOC_BIAS_ON:
+ case SND_SOC_BIAS_PREPARE:
+ break;
+
+ case SND_SOC_BIAS_STANDBY:
+ ret = regmap_update_bits(tas5754m->regmap,
+ TAS5754M_POWER, TAS5754M_RQST, 0);
+ if (ret)
+ dev_err(component->dev,
+ "Failed to remove standby: %d\n", ret);
+ break;
+
+ case SND_SOC_BIAS_OFF:
+ ret = regmap_update_bits(tas5754m->regmap,
+ TAS5754M_POWER, TAS5754M_RQST, TAS5754M_RQST);
+ if (ret)
+ dev_err(component->dev,
+ "Failed to request standby: %d\n", ret);
+ break;
+ }
+
+ return ret;
+}
+
+static int tas5754m_set_clock_tree_master(struct snd_soc_dai *dai,
+ struct snd_pcm_hw_params *params)
+{
+ struct snd_soc_component *component = dai->component;
+ struct tas5754m_priv *tas5754m =
+ snd_soc_component_get_drvdata(component);
+ static const struct reg_sequence pll_settings[] = {
+ { TAS5754M_PLL_COEFF_P, 0x01 }, // P=2
+ { TAS5754M_PLL_COEFF_J, 0x08 }, // J=8
+ { TAS5754M_PLL_COEFF_DL, 0x00 }, // D12-8 = 0
+ { TAS5754M_PLL_COEFF_DH, 0x00 }, // D7-0 = 0
+ { TAS5754M_PLL_COEFF_R, 0x00 }, // R=1
+ };
+ int ret;
+
+ /* disable PLL before any clock tree change */
+ ret = regmap_update_bits(tas5754m->regmap, TAS5754M_PLL_EN,
+ TAS5754M_PLLE, 0);
+ if (ret) {
+ dev_err(component->dev, "Failed to disable PLL\n");
+ return ret;
+ }
+ /* set DAC clock source to MCLK */
+ ret = regmap_write(tas5754m->regmap, TAS5754M_DAC_REF, 0x30);
+ if (ret) {
+ dev_err(component->dev, "Failed to set DAC ref\n");
+ return ret;
+ }
+ /* run PLL at fixed ratio to MCLK */
+ ret = regmap_multi_reg_write(tas5754m->regmap, pll_settings,
+ ARRAY_SIZE(pll_settings));
+ if (ret) {
+ dev_err(component->dev, "Failed to set PLL ratio\n");
+ return ret;
+ }
+ /* set DSP divider to 2 => reg 0x01 */
+ ret = regmap_write(tas5754m->regmap, TAS5754M_DSP_CLKDIV, 1);
+ if (ret) {
+ dev_err(component->dev, "Failed to set DSP divider\n");
+ return ret;
+ }
+ /* set DAC divider to 4 => reg 0x03*/
+ ret = regmap_write(tas5754m->regmap, TAS5754M_DAC_CLKDIV, 3);
+ if (ret) {
+ dev_err(component->dev, "Failed to set OSDACR divider\n");
+ return ret;
+ }
+ /* set OSR divider to 1 */
+ ret = regmap_write(tas5754m->regmap, TAS5754M_OSR_CLKDIV, 0);
+ if (ret) {
+ dev_err(component->dev, "Failed to set OSR divider\n");
+ return ret;
+ }
+ /* set CP divider to 4 => reg 0x03*/
+ ret = regmap_write(tas5754m->regmap, TAS5754M_NCP_CLKDIV, 3);
+ if (ret) {
+ dev_err(component->dev, "Failed to set CP divider\n");
+ return ret;
+ }
+ /* finally enable PLL */
+ ret = regmap_update_bits(tas5754m->regmap, TAS5754M_PLL_EN,
+ TAS5754M_PLLE, 1);
+ if (ret) {
+ dev_err(component->dev, "Failed to enable PLL\n");
+ return ret;
+ }
+
+ return 0;
+}
+
+static int tas5754m_set_dai_mode(struct snd_soc_dai *dai)
+{
+ struct snd_soc_component *component = dai->component;
+ struct tas5754m_priv *tas5754m =
+ snd_soc_component_get_drvdata(component);
+ int fmt = tas5754m->fmt;
+
+ /* only I2S MASTER mode implemented */
+ if ((fmt & SND_SOC_DAIFMT_FORMAT_MASK) != SND_SOC_DAIFMT_I2S) {
+ dev_err(component->dev,
+ "DAI format not supported (I2S master only)\n");
+ return -EINVAL;
+ }
+
+ /* TAS5754/6m do not support inverted clocks in MASTER mode */
+ if ((fmt & SND_SOC_DAIFMT_CLOCK_MASK) != SND_SOC_DAIFMT_NB_NF) {
+ dev_err(component->dev, "Inverted clocks not supported\n");
+ return -EINVAL;
+ }
+
+ switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
+ case SND_SOC_DAIFMT_CBM_CFM:
+ regmap_update_bits(tas5754m->regmap,
+ TAS5754M_BCLK_LRCLK_CFG,
+ TAS5754M_LRKO | TAS5754M_BCKO,
+ TAS5754M_LRKO | TAS5754M_BCKO);
+ /* reset CLK dividers */
+ regmap_update_bits(tas5754m->regmap,
+ TAS5754M_MASTER_MODE,
+ 0x00,
+ TAS5754M_RLRK | TAS5754M_RBCK);
+ /* ignore all clock error detection but MCLK */
+ regmap_update_bits(tas5754m->regmap,
+ TAS5754M_ERROR_DETECT,
+ TAS5754M_IPLK | TAS5754M_DCAS |
+ TAS5754M_IDCM | TAS5754M_IDSK |
+ TAS5754M_IDBK | TAS5754M_IDFS,
+ TAS5754M_IPLK | TAS5754M_DCAS |
+ TAS5754M_IDCM | TAS5754M_IDSK |
+ TAS5754M_IDBK | TAS5754M_IDFS);
+ break;
+ case SND_SOC_DAIFMT_CBS_CFS:
+ case SND_SOC_DAIFMT_CBM_CFS:
+ default:
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
+static int tas5754m_set_dividers_master(struct snd_soc_dai *dai,
+ struct snd_pcm_hw_params *params)
+{
+ struct snd_soc_component *component = dai->component;
+ struct tas5754m_priv *tas5754m =
+ snd_soc_component_get_drvdata(component);
+ unsigned long bclk;
+ unsigned long mclk;
+ int bclk_div;
+ int lrclk_div;
+ int osr;
+ int ret;
+
+ /* calculate divider settings based on mclk and sample_len */
+ mclk = clk_get_rate(tas5754m->sclk);
+ bclk = tas5754m->sample_len * 2 * params_rate(params);
+ bclk_div = mclk / bclk;
+ lrclk_div = tas5754m->sample_len * 2;
+ osr = mclk / 4 / params_rate(params) / 16;
+
+ /* stop LR / SCLK clocks */
+ ret = regmap_update_bits(tas5754m->regmap,
+ TAS5754M_MASTER_MODE, 0,
+ TAS5754M_RLRK | TAS5754M_RBCK);
+ if (ret) {
+ dev_err(component->dev, "Failed to stop PLL\n");
+ return ret;
+ }
+ /* set SCLK divider */
+ ret = regmap_write(tas5754m->regmap, TAS5754M_MASTER_SCLKDIV,
+ bclk_div - 1);
+ if (ret) {
+ dev_err(component->dev, "Failed to set SCLK divider\n");
+ return ret;
+ }
+ /* set LRCLK divider */
+ ret = regmap_write(tas5754m->regmap, TAS5754M_MASTER_LRCLKDIV,
+ lrclk_div - 1);
+ if (ret) {
+ dev_err(component->dev, "Failed to set LRCLK divider\n");
+ return ret;
+ }
+ ret = regmap_write(tas5754m->regmap,
+ TAS5754M_OSR_CLKDIV, osr - 1);
+ if (ret) {
+ dev_err(component->dev, "Failed to set OSR divider\n");
+ return ret;
+ }
+ /* restart LR / SCLK clocks */
+ ret = regmap_update_bits(tas5754m->regmap,
+ TAS5754M_MASTER_MODE,
+ TAS5754M_RLRK | TAS5754M_RBCK,
+ TAS5754M_RLRK | TAS5754M_RBCK);
+ if (ret) {
+ dev_err(component->dev, "Failed to restart PLL\n");
+ return ret;
+ }
+
+ return 0;
+}
+
+static int tas5754m_hw_params(struct snd_pcm_substream *substream,
+ struct snd_pcm_hw_params *params,
+ struct snd_soc_dai *dai)
+{
+ struct snd_soc_component *component = dai->component;
+ struct tas5754m_priv *tas5754m =
+ snd_soc_component_get_drvdata(component);
+ int alen;
+ int ret;
+
+ switch (params_width(params)) {
+ case 16:
+ tas5754m->sample_len = 16;
+ alen = TAS5754M_ALEN_16;
+ break;
+ case 20:
+ tas5754m->sample_len = 32;
+ alen = TAS5754M_ALEN_20;
+ break;
+ case 24:
+ tas5754m->sample_len = 32;
+ alen = TAS5754M_ALEN_24;
+ break;
+ case 32:
+ tas5754m->sample_len = 32;
+ alen = TAS5754M_ALEN_32;
+ break;
+ default:
+ dev_err(component->dev, "Unsupported sample size: %d\n",
+ params_width(params));
+ return -EINVAL;
+ }
+ ret = regmap_update_bits(tas5754m->regmap, TAS5754M_I2S_1, alen, alen);
+ if (ret) {
+ dev_err(component->dev,
+ "Cannot set sample size: %d\n", ret);
+ return ret;
+ }
+
+ ret = tas5754m_set_dai_mode(dai);
+ if (ret) {
+ dev_err(component->dev,
+ "DAI mode not supported: %d\n", ret);
+ return ret;
+ }
+
+ ret = tas5754m_set_clock_tree_master(dai, params);
+ if (ret)
+ return ret;
+
+ switch (params_rate(params)) {
+ case 44100:
+ case 48000:
+ ret = regmap_write(tas5754m->regmap,
+ TAS5754M_FS_SPEED_MODE, TAS5754M_FSSP_48KHZ);
+ break;
+ case 88200:
+ case 96000:
+ ret = regmap_write(tas5754m->regmap,
+ TAS5754M_FS_SPEED_MODE, TAS5754M_FSSP_96KHZ);
+ break;
+ case 176400:
+ case 192000:
+ ret = regmap_write(tas5754m->regmap,
+ TAS5754M_FS_SPEED_MODE, TAS5754M_FSSP_192KHZ);
+ break;
+ default:
+ dev_err(component->dev, "Sample rate not supported: %d\n",
+ params_rate(params));
+ return -EINVAL;
+ }
+ if (ret) {
+ dev_err(component->dev, "Failed to config PLL\n");
+ return ret;
+ }
+
+ ret = tas5754m_set_dividers_master(dai, params);
+ if (ret)
+ return ret;
+
+ return 0;
+}
+
+static int tas5754m_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
+{
+ struct snd_soc_component *component = dai->component;
+ struct tas5754m_priv *tas5754m =
+ snd_soc_component_get_drvdata(component);
+
+ tas5754m->fmt = fmt;
+
+ return 0;
+}
+
+
+static const struct snd_soc_component_driver tas5754m_soc_component = {
+ .set_bias_level = tas5754m_set_bias_level,
+ .idle_bias_on = true,
+ .controls = tas5754m_controls,
+ .num_controls = ARRAY_SIZE(tas5754m_controls),
+};
+
+static int tas5754m_mute(struct snd_soc_dai *dai, int mute, int stream)
+{
+ struct snd_soc_component *component = dai->component;
+
+ if (mute) {
+ snd_soc_component_write(component, TAS5754M_MUTE, 0x11);
+ } else {
+ /* wait for stable operation before unmute */
+ usleep_range(1000, 2000);
+ snd_soc_component_write(component, TAS5754M_MUTE, 0x00);
+ }
+ return 0;
+}
+
+static const struct snd_soc_dai_ops tas5754m_dai_ops = {
+ .mute_stream = tas5754m_mute,
+ .hw_params = tas5754m_hw_params,
+ .set_fmt = tas5754m_set_fmt,
+};
+
+static struct snd_soc_dai_driver tas5754m_dai = {
+ .name = "tas5754m-amplifier",
+ .playback = {
+ .stream_name = "Playback",
+ .channels_min = 2,
+ .channels_max = 2,
+ .rates = TAS5754M_RATES,
+ .formats = TAS5754M_FORMATS,
+ },
+ .ops = &tas5754m_dai_ops,
+};
+
+static int tas5754m_probe(struct device *dev, struct regmap *regmap)
+{
+ struct tas5754m_priv *tas5754m;
+ int ret;
+
+ tas5754m = devm_kzalloc(dev, sizeof(struct tas5754m_priv), GFP_KERNEL);
+ if (!tas5754m)
+ return -ENOMEM;
+
+ dev_set_drvdata(dev, tas5754m);
+ tas5754m->regmap = regmap;
+
+ ret = regmap_write(regmap, TAS5754M_RESET,
+ TAS5754M_RSTR | TAS5754M_RSTM);
+ if (ret) {
+ dev_err(dev, "Failed to initialize TAS5754M: %d\n", ret);
+ goto err;
+ }
+
+ tas5754m->sclk = devm_clk_get(dev, NULL);
+ if (PTR_ERR(tas5754m->sclk) == -EPROBE_DEFER) {
+ ret = -EPROBE_DEFER;
+ goto err;
+ }
+ if (!IS_ERR(tas5754m->sclk)) {
+ ret = clk_prepare_enable(tas5754m->sclk);
+ if (ret) {
+ dev_err(dev, "Failed to enable SCLK: %d\n", ret);
+ goto err;
+ }
+ }
+
+ ret = devm_snd_soc_register_component(dev,
+ &tas5754m_soc_component, &tas5754m_dai, 1);
+ if (ret) {
+ dev_err(dev, "Failed to register CODEC: %d\n", ret);
+ goto err;
+ }
+
+ return 0;
+
+err:
+ return ret;
+
+}
+
+static int tas5754m_i2c_probe(struct i2c_client *i2c, const struct i2c_device_id *id)
+{
+ struct regmap *regmap;
+ struct regmap_config config = tas5754m_regmap;
+
+ /* enable auto-increment mode */
+ config.read_flag_mask = 0x80;
+ config.write_flag_mask = 0x80;
+
+ regmap = devm_regmap_init_i2c(i2c, &config);
+ if (IS_ERR(regmap))
+ return PTR_ERR(regmap);
+
+ return tas5754m_probe(&i2c->dev, regmap);
+}
+
+static int tas5754m_remove(struct device *dev)
+{
+ snd_soc_unregister_component(dev);
+
+ return 0;
+}
+
+static int tas5754m_i2c_remove(struct i2c_client *i2c)
+{
+ tas5754m_remove(&i2c->dev);
+
+ return 0;
+}
+
+static const struct i2c_device_id tas5754m_i2c_id[] = {
+ { "tas5754m", },
+ { "tas5756m", },
+ { }
+};
+MODULE_DEVICE_TABLE(i2c, tas5754m_i2c_id);
+
+#ifdef CONFIG_OF
+static const struct of_device_id tas5754m_of_match[] = {
+ { .compatible = "ti,tas5754m", },
+ { .compatible = "ti,tas5756m", },
+ { }
+};
+MODULE_DEVICE_TABLE(of, tas5754m_of_match);
+#endif
+
+static struct i2c_driver tas5754m_i2c_driver = {
+ .probe = tas5754m_i2c_probe,
+ .remove = tas5754m_i2c_remove,
+ .id_table = tas5754m_i2c_id,
+ .driver = {
+ .name = "tas5754m",
+ .of_match_table = of_match_ptr(tas5754m_of_match),
+ },
+};
+
+module_i2c_driver(tas5754m_i2c_driver);
+
+MODULE_AUTHOR("Joerg Schambacher <joerg(a)hifiberry.com>");
+MODULE_DESCRIPTION("TAS5754M Audio Amplifier Driver - Master mode only");
+MODULE_LICENSE("GPL");
diff --git a/sound/soc/codecs/tas5754m.h b/sound/soc/codecs/tas5754m.h
new file mode 100644
index 000000000000..c6e26dba169f
--- /dev/null
+++ b/sound/soc/codecs/tas5754m.h
@@ -0,0 +1,260 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Driver for the TAS575xM DAC+amplifier combo devices
+ *
+ * Author: (copied from pcm512x.h)
+ * Mark Brown <broonie(a)kernel.org>
+ * Copyright 2014 Linaro Ltd
+ *
+ * Register names adapted and non available
+ * register definitions removed according
+ + to TAS5754M specification
+ * Joerg Schambacher <joerg(a)hifiberry.com>
+ */
+
+#ifndef _SND_SOC_TAS5754M
+#define _SND_SOC_TAS5754M
+
+#include <linux/pm.h>
+#include <linux/regmap.h>
+
+#define TAS5754M_VIRT_BASE 0x000
+#define TAS5754M_PAGE_LEN 0x80
+#define TAS5754M_PAGE_BASE(n) (TAS5754M_VIRT_BASE + (TAS5754M_PAGE_LEN * n))
+
+#define TAS5754M_PAGE 0
+
+#define TAS5754M_RESET (TAS5754M_PAGE_BASE(0) + 1)
+#define TAS5754M_POWER (TAS5754M_PAGE_BASE(0) + 2)
+#define TAS5754M_MUTE (TAS5754M_PAGE_BASE(0) + 3)
+#define TAS5754M_PLL_EN (TAS5754M_PAGE_BASE(0) + 4)
+#define TAS5754M_DSP (TAS5754M_PAGE_BASE(0) + 7)
+#define TAS5754M_GPIO_EN (TAS5754M_PAGE_BASE(0) + 8)
+#define TAS5754M_BCLK_LRCLK_CFG (TAS5754M_PAGE_BASE(0) + 9)
+#define TAS5754M_DSP_GPIO_INPUT (TAS5754M_PAGE_BASE(0) + 10)
+#define TAS5754M_MASTER_MODE (TAS5754M_PAGE_BASE(0) + 12)
+#define TAS5754M_PLL_REF (TAS5754M_PAGE_BASE(0) + 13)
+#define TAS5754M_DAC_REF (TAS5754M_PAGE_BASE(0) + 14)
+#define TAS5754M_GPIO_PLLIN (TAS5754M_PAGE_BASE(0) + 18)
+#define TAS5754M_SYNCHRONIZE (TAS5754M_PAGE_BASE(0) + 19)
+#define TAS5754M_PLL_COEFF_P (TAS5754M_PAGE_BASE(0) + 20)
+#define TAS5754M_PLL_COEFF_J (TAS5754M_PAGE_BASE(0) + 21)
+#define TAS5754M_PLL_COEFF_DH (TAS5754M_PAGE_BASE(0) + 22)
+#define TAS5754M_PLL_COEFF_DL (TAS5754M_PAGE_BASE(0) + 23)
+#define TAS5754M_PLL_COEFF_R (TAS5754M_PAGE_BASE(0) + 24)
+#define TAS5754M_DSP_CLKDIV (TAS5754M_PAGE_BASE(0) + 27)
+#define TAS5754M_DAC_CLKDIV (TAS5754M_PAGE_BASE(0) + 28)
+#define TAS5754M_NCP_CLKDIV (TAS5754M_PAGE_BASE(0) + 29)
+#define TAS5754M_OSR_CLKDIV (TAS5754M_PAGE_BASE(0) + 30)
+#define TAS5754M_MASTER_SCLKDIV (TAS5754M_PAGE_BASE(0) + 32)
+#define TAS5754M_MASTER_LRCLKDIV (TAS5754M_PAGE_BASE(0) + 33)
+#define TAS5754M_FS_SPEED_MODE (TAS5754M_PAGE_BASE(0) + 34)
+#define TAS5754M_IDAC_1 (TAS5754M_PAGE_BASE(0) + 35)
+#define TAS5754M_IDAC_2 (TAS5754M_PAGE_BASE(0) + 36)
+#define TAS5754M_ERROR_DETECT (TAS5754M_PAGE_BASE(0) + 37)
+#define TAS5754M_I2S_1 (TAS5754M_PAGE_BASE(0) + 40)
+#define TAS5754M_I2S_2 (TAS5754M_PAGE_BASE(0) + 41)
+#define TAS5754M_DAC_ROUTING (TAS5754M_PAGE_BASE(0) + 42)
+#define TAS5754M_DSP_PROGRAM (TAS5754M_PAGE_BASE(0) + 43)
+#define TAS5754M_CLKDET (TAS5754M_PAGE_BASE(0) + 44)
+#define TAS5754M_AUTO_MUTE (TAS5754M_PAGE_BASE(0) + 59)
+#define TAS5754M_DIGITAL_VOLUME_1 (TAS5754M_PAGE_BASE(0) + 60)
+#define TAS5754M_DIGITAL_VOLUME_2 (TAS5754M_PAGE_BASE(0) + 61)
+#define TAS5754M_DIGITAL_VOLUME_3 (TAS5754M_PAGE_BASE(0) + 62)
+#define TAS5754M_DIGITAL_MUTE_1 (TAS5754M_PAGE_BASE(0) + 63)
+#define TAS5754M_DIGITAL_MUTE_2 (TAS5754M_PAGE_BASE(0) + 64)
+#define TAS5754M_DIGITAL_MUTE_3 (TAS5754M_PAGE_BASE(0) + 65)
+#define TAS5754M_GPIO_OUTPUT_1 (TAS5754M_PAGE_BASE(0) + 82)
+#define TAS5754M_GPIO_OUTPUT_0 (TAS5754M_PAGE_BASE(0) + 83)
+#define TAS5754M_GPIO_OUTPUT_2 (TAS5754M_PAGE_BASE(0) + 85)
+#define TAS5754M_GPIO_CONTROL_1 (TAS5754M_PAGE_BASE(0) + 86)
+#define TAS5754M_GPIO_CONTROL_2 (TAS5754M_PAGE_BASE(0) + 87)
+#define TAS5754M_OVERFLOW (TAS5754M_PAGE_BASE(0) + 90)
+#define TAS5754M_RATE_DET_1 (TAS5754M_PAGE_BASE(0) + 91)
+#define TAS5754M_RATE_DET_2 (TAS5754M_PAGE_BASE(0) + 92)
+#define TAS5754M_RATE_DET_3 (TAS5754M_PAGE_BASE(0) + 93)
+#define TAS5754M_RATE_DET_4 (TAS5754M_PAGE_BASE(0) + 94)
+#define TAS5754M_CLOCK_STATUS (TAS5754M_PAGE_BASE(0) + 95)
+#define TAS5754M_ANALOG_MUTE_DET (TAS5754M_PAGE_BASE(0) + 108)
+#define TAS5754M_FS_MODE_MON (TAS5754M_PAGE_BASE(0) + 115)
+#define TAS5754M_GPIN (TAS5754M_PAGE_BASE(0) + 119)
+#define TAS5754M_DIGITAL_MUTE_DET (TAS5754M_PAGE_BASE(0) + 120)
+
+#define TAS5754M_OUTPUT_AMPLITUDE (TAS5754M_PAGE_BASE(1) + 1)
+#define TAS5754M_ANALOG_GAIN_CTRL (TAS5754M_PAGE_BASE(1) + 2)
+#define TAS5754M_UNDERVOLTAGE_PROT (TAS5754M_PAGE_BASE(1) + 5)
+#define TAS5754M_ANALOG_MUTE_CTRL (TAS5754M_PAGE_BASE(1) + 6)
+#define TAS5754M_ANALOG_GAIN_BOOST (TAS5754M_PAGE_BASE(1) + 7)
+#define TAS5754M_VCOM_CTRL_1 (TAS5754M_PAGE_BASE(1) + 8)
+#define TAS5754M_VCOM_CTRL_2 (TAS5754M_PAGE_BASE(1) + 9)
+
+#define TAS5754M_CRAM_CTRL (TAS5754M_PAGE_BASE(44) + 1)
+
+#define TAS5754M_FLEX_A (TAS5754M_PAGE_BASE(253) + 63)
+#define TAS5754M_FLEX_B (TAS5754M_PAGE_BASE(253) + 64)
+
+#define TAS5754M_MAX_REGISTER (TAS5754M_PAGE_BASE(253) + 64)
+
+/* Page 0, Register 1 - reset */
+#define TAS5754M_RSTR (1 << 0)
+#define TAS5754M_RSTM (1 << 4)
+
+/* Page 0, Register 2 - power */
+#define TAS5754M_RQPD (1 << 0)
+#define TAS5754M_RQPD_SHIFT 0
+#define TAS5754M_RQST (1 << 4)
+#define TAS5754M_RQST_SHIFT 4
+
+/* Page 0, Register 3 - mute */
+#define TAS5754M_RQMR (1 << 0)
+#define TAS5754M_RQMR_SHIFT 0
+#define TAS5754M_RQML (1 << 4)
+#define TAS5754M_RQML_SHIFT 4
+
+/* Page 0, Register 4 - PLL */
+#define TAS5754M_PLLE (1 << 0)
+#define TAS5754M_PLLE_SHIFT 0
+#define TAS5754M_PLCK (1 << 4)
+#define TAS5754M_PLCK_SHIFT 4
+
+/* Page 0, Register 7 - DSP */
+#define TAS5754M_SDSL (1 << 0)
+#define TAS5754M_SDSL_SHIFT 0
+#define TAS5754M_DEMP (1 << 4)
+#define TAS5754M_DEMP_SHIFT 4
+
+/* Page 0, Register 8 - GPIO output enable */
+#define TAS5754M_G1OE (1 << 0)
+#define TAS5754M_G2OE (1 << 1)
+#define TAS5754M_G3OE (1 << 2)
+#define TAS5754M_G4OE (1 << 3)
+#define TAS5754M_G5OE (1 << 4)
+#define TAS5754M_G6OE (1 << 5)
+
+/* Page 0, Register 9 - BCK, LRCLK configuration */
+#define TAS5754M_LRKO (1 << 0)
+#define TAS5754M_LRKO_SHIFT 0
+#define TAS5754M_BCKO (1 << 4)
+#define TAS5754M_BCKO_SHIFT 4
+#define TAS5754M_BCKP (1 << 5)
+#define TAS5754M_BCKP_SHIFT 5
+
+/* Page 0, Register 12 - Master mode BCK, LRCLK reset */
+#define TAS5754M_RLRK (1 << 0)
+#define TAS5754M_RLRK_SHIFT 0
+#define TAS5754M_RBCK (1 << 1)
+#define TAS5754M_RBCK_SHIFT 1
+
+/* Page 0, Register 13 - PLL reference */
+#define TAS5754M_SREF (7 << 4)
+#define TAS5754M_SREF_SHIFT 4
+#define TAS5754M_SREF_SCK (0 << 4)
+#define TAS5754M_SREF_BCK (1 << 4)
+#define TAS5754M_SREF_GPIO (3 << 4)
+
+/* Page 0, Register 14 - DAC reference */
+#define TAS5754M_SDAC (7 << 4)
+#define TAS5754M_SDAC_SHIFT 4
+#define TAS5754M_SDAC_MCK (0 << 4)
+#define TAS5754M_SDAC_PLL (1 << 4)
+#define TAS5754M_SDAC_SCK (3 << 4)
+#define TAS5754M_SDAC_BCK (4 << 4)
+#define TAS5754M_SDAC_GPIO (5 << 4)
+
+/* Page 0, Register 16, 18 - GPIO source for DAC, PLL */
+#define TAS5754M_GREF (7 << 0)
+#define TAS5754M_GREF_SHIFT 0
+#define TAS5754M_GREF_GPIO1 (0 << 0)
+#define TAS5754M_GREF_GPIO2 (1 << 0)
+#define TAS5754M_GREF_GPIO3 (2 << 0)
+#define TAS5754M_GREF_GPIO4 (3 << 0)
+#define TAS5754M_GREF_GPIO5 (4 << 0)
+#define TAS5754M_GREF_GPIO6 (5 << 0)
+
+/* Page 0, Register 19 - synchronize */
+#define TAS5754M_RQSY (1 << 0)
+#define TAS5754M_RQSY_RESUME (0 << 0)
+#define TAS5754M_RQSY_HALT (1 << 0)
+
+/* Page 0, Register 34 - fs speed mode */
+#define TAS5754M_FSSP (3 << 0)
+#define TAS5754M_FSSP_SHIFT 0
+#define TAS5754M_FSSP_48KHZ (0 << 0)
+#define TAS5754M_FSSP_96KHZ (1 << 0)
+#define TAS5754M_FSSP_192KHZ (2 << 0)
+#define TAS5754M_FSSP_384KHZ (3 << 0)
+
+/* Page 0, Register 37 - Error detection */
+#define TAS5754M_IPLK (1 << 0)
+#define TAS5754M_DCAS (1 << 1)
+#define TAS5754M_IDCM (1 << 2)
+#define TAS5754M_IDCH (1 << 3)
+#define TAS5754M_IDSK (1 << 4)
+#define TAS5754M_IDBK (1 << 5)
+#define TAS5754M_IDFS (1 << 6)
+
+/* Page 0, Register 40 - I2S configuration */
+#define TAS5754M_ALEN (3 << 0)
+#define TAS5754M_ALEN_SHIFT 0
+#define TAS5754M_ALEN_16 (0 << 0)
+#define TAS5754M_ALEN_20 (1 << 0)
+#define TAS5754M_ALEN_24 (2 << 0)
+#define TAS5754M_ALEN_32 (3 << 0)
+#define TAS5754M_AFMT (3 << 4)
+#define TAS5754M_AFMT_SHIFT 4
+#define TAS5754M_AFMT_I2S (0 << 4)
+#define TAS5754M_AFMT_DSP (1 << 4)
+#define TAS5754M_AFMT_RTJ (2 << 4)
+#define TAS5754M_AFMT_LTJ (3 << 4)
+
+/* Page 0, Register 42 - DAC routing */
+#define TAS5754M_AUPR_SHIFT 0
+#define TAS5754M_AUPL_SHIFT 4
+
+/* Page 0, Register 59 - auto mute */
+#define TAS5754M_ATMR_SHIFT 0
+#define TAS5754M_ATML_SHIFT 4
+
+/* Page 0, Register 63 - ramp rates */
+#define TAS5754M_VNDF_SHIFT 6
+#define TAS5754M_VNDS_SHIFT 4
+#define TAS5754M_VNUF_SHIFT 2
+#define TAS5754M_VNUS_SHIFT 0
+
+/* Page 0, Register 64 - emergency ramp rates */
+#define TAS5754M_VEDF_SHIFT 6
+#define TAS5754M_VEDS_SHIFT 4
+
+/* Page 0, Register 65 - Digital mute enables */
+#define TAS5754M_ACTL_SHIFT 2
+#define TAS5754M_AMLE_SHIFT 1
+#define TAS5754M_AMRE_SHIFT 0
+
+/* Page 0, Register 80-85, GPIO output selection */
+#define TAS5754M_GxSL (31 << 0)
+#define TAS5754M_GxSL_SHIFT 0
+#define TAS5754M_GxSL_OFF (0 << 0)
+#define TAS5754M_GxSL_DSP (1 << 0)
+#define TAS5754M_GxSL_REG (2 << 0)
+#define TAS5754M_GxSL_AMUTB (3 << 0)
+#define TAS5754M_GxSL_AMUTL (4 << 0)
+#define TAS5754M_GxSL_AMUTR (5 << 0)
+#define TAS5754M_GxSL_CLKI (6 << 0)
+#define TAS5754M_GxSL_SDOUT (7 << 0)
+#define TAS5754M_GxSL_ANMUL (8 << 0)
+#define TAS5754M_GxSL_ANMUR (9 << 0)
+#define TAS5754M_GxSL_PLLLK (10 << 0)
+#define TAS5754M_GxSL_CPCLK (11 << 0)
+#define TAS5754M_GxSL_UV0_7 (14 << 0)
+#define TAS5754M_GxSL_UV0_3 (15 << 0)
+#define TAS5754M_GxSL_PLLCK (16 << 0)
+
+/* Page 1, Register 2 - analog volume control */
+#define TAS5754M_RAGN_SHIFT 0
+#define TAS5754M_LAGN_SHIFT 4
+
+/* Page 1, Register 7 - analog boost control */
+#define TAS5754M_AGBR_SHIFT 0
+#define TAS5754M_AGBL_SHIFT 4
+
+#endif
--
2.25.1
1
0

20 Jan '22
From: Stefan Binding <sbinding(a)opensource.cirrus.com>
Signed-off-by: Stefan Binding <sbinding(a)opensource.cirrus.com>
Signed-off-by: Vitaly Rodionov <vitalyr(a)opensource.cirrus.com>
---
sound/pci/hda/patch_cs8409-tables.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/sound/pci/hda/patch_cs8409-tables.c b/sound/pci/hda/patch_cs8409-tables.c
index df0b4522babf..2d1fa706327b 100644
--- a/sound/pci/hda/patch_cs8409-tables.c
+++ b/sound/pci/hda/patch_cs8409-tables.c
@@ -490,6 +490,8 @@ const struct snd_pci_quirk cs8409_fixup_tbl[] = {
SND_PCI_QUIRK(0x1028, 0x0ADC, "Warlock", CS8409_WARLOCK),
SND_PCI_QUIRK(0x1028, 0x0AF4, "Warlock", CS8409_WARLOCK),
SND_PCI_QUIRK(0x1028, 0x0AF5, "Warlock", CS8409_WARLOCK),
+ SND_PCI_QUIRK(0x1028, 0x0BB5, "Warlock N3 15 TGL-U Nuvoton EC", CS8409_WARLOCK),
+ SND_PCI_QUIRK(0x1028, 0x0BB6, "Warlock V3 15 TGL-U Nuvoton EC", CS8409_WARLOCK),
SND_PCI_QUIRK(0x1028, 0x0A77, "Cyborg", CS8409_CYBORG),
SND_PCI_QUIRK(0x1028, 0x0A78, "Cyborg", CS8409_CYBORG),
SND_PCI_QUIRK(0x1028, 0x0A79, "Cyborg", CS8409_CYBORG),
--
2.25.1
2
1
alsa-project/alsa-lib pull request #210 was opened from ginggs:
As noted in bpo-30459, PyTuple_SET_ITEM() does not return a value.
https://bugs.python.org/issue30459
Request URL : https://github.com/alsa-project/alsa-lib/pull/210
Patch URL : https://github.com/alsa-project/alsa-lib/pull/210.patch
Repository URL: https://github.com/alsa-project/alsa-lib
1
0

20 Jan '22
alsa-project/alsa-utils issue #137 was opened from int-e:
`alsamixer` supports customizing colors for the various controls using the `color` directive in the configuration file. Commit
https://github.com/alsa-project/alsa-utils/commit/5d4442b2cfe967c44b5cd74fc…
broke this feature, because it initializes curses colors *after* reading the configuration file, which overrides any colors that the configuration file may have set.
Issue URL : https://github.com/alsa-project/alsa-utils/issues/137
Repository URL: https://github.com/alsa-project/alsa-utils
1
0

[PATCH][next] ALSA: usb-audio: scarlett2: Use struct_size() helper in scarlett2_usb()
by Gustavo A. R. Silva 20 Jan '22
by Gustavo A. R. Silva 20 Jan '22
20 Jan '22
Make use of the struct_size() helper instead of an open-coded version,
in order to avoid any potential type mistakes or integer overflows that,
in the worst scenario, could lead to heap overflows.
Also, address the following sparse warnings:
sound/usb/mixer_scarlett_gen2.c:1064:28: warning: using sizeof on a flexible structure
sound/usb/mixer_scarlett_gen2.c:1065:29: warning: using sizeof on a flexible structure
Link: https://github.com/KSPP/linux/issues/160
Link: https://github.com/KSPP/linux/issues/174
Signed-off-by: Gustavo A. R. Silva <gustavoars(a)kernel.org>
---
sound/usb/mixer_scarlett_gen2.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/sound/usb/mixer_scarlett_gen2.c b/sound/usb/mixer_scarlett_gen2.c
index 53ebabf42472..311413f015f0 100644
--- a/sound/usb/mixer_scarlett_gen2.c
+++ b/sound/usb/mixer_scarlett_gen2.c
@@ -1061,9 +1061,9 @@ static int scarlett2_usb(
{
struct scarlett2_data *private = mixer->private_data;
struct usb_device *dev = mixer->chip->dev;
- u16 req_buf_size = sizeof(struct scarlett2_usb_packet) + req_size;
- u16 resp_buf_size = sizeof(struct scarlett2_usb_packet) + resp_size;
struct scarlett2_usb_packet *req, *resp = NULL;
+ size_t req_buf_size = struct_size(req, data, req_size);
+ size_t resp_buf_size = struct_size(resp, data, resp_size);
int err;
req = kmalloc(req_buf_size, GFP_KERNEL);
@@ -1111,7 +1111,7 @@ static int scarlett2_usb(
usb_audio_err(
mixer->chip,
"Scarlett Gen 2/3 USB response result cmd %x was %d "
- "expected %d\n",
+ "expected %lu\n",
cmd, err, resp_buf_size);
err = -EINVAL;
goto unlock;
--
2.27.0
2
2

19 Jan '22
This patch is based on the former Andy Shevchenko's patch:
https://lore.kernel.org/lkml/20210331144526.19439-1-andriy.shevchenko@linux…
Currently platform_get_irq_optional() returns an error code even if IRQ
resource simply has not been found. It prevents the callers from being
error code agnostic in their error handling:
ret = platform_get_irq_optional(...);
if (ret < 0 && ret != -ENXIO)
return ret; // respect deferred probe
if (ret > 0)
...we get an IRQ...
All other *_optional() APIs seem to return 0 or NULL in case an optional
resource is not available. Let's follow this good example, so that the
callers would look like:
ret = platform_get_irq_optional(...);
if (ret < 0)
return ret;
if (ret > 0)
...we get an IRQ...
Reported-by: Matthias Schiffer <matthias.schiffer(a)ew.tq-group.com>
Signed-off-by: Sergey Shtylyov <s.shtylyov(a)omp.ru>
---
drivers/base/platform.c | 56 +++++++++++++++---------
drivers/char/ipmi/bt-bmc.c | 8 ++--
drivers/counter/interrupt-cnt.c | 4 +-
drivers/edac/xgene_edac.c | 2 +-
drivers/gpio/gpio-altera.c | 3 +-
drivers/gpio/gpio-mvebu.c | 2 +-
drivers/gpio/gpio-tqmx86.c | 2 +-
drivers/i2c/busses/i2c-brcmstb.c | 8 ++--
drivers/i2c/busses/i2c-ocores.c | 4 +-
drivers/mmc/host/sh_mmcif.c | 4 +-
drivers/mtd/nand/raw/brcmnand/brcmnand.c | 4 +-
drivers/net/ethernet/davicom/dm9000.c | 2 +-
drivers/net/ethernet/freescale/fec_ptp.c | 2 +-
drivers/phy/renesas/phy-rcar-gen3-usb2.c | 4 +-
drivers/platform/chrome/cros_ec_lpc.c | 2 +-
drivers/platform/x86/intel/punit_ipc.c | 2 +-
drivers/power/supply/mp2629_charger.c | 4 +-
drivers/spi/spi-hisi-sfc-v3xx.c | 2 +-
drivers/spi/spi-mtk-nor.c | 3 +-
drivers/thermal/rcar_gen3_thermal.c | 2 +-
drivers/tty/serial/8250/8250_mtk.c | 4 +-
drivers/tty/serial/sh-sci.c | 6 +--
drivers/uio/uio_pdrv_genirq.c | 2 +-
drivers/vfio/platform/vfio_platform.c | 6 ++-
sound/soc/dwc/dwc-i2s.c | 4 +-
25 files changed, 79 insertions(+), 63 deletions(-)
diff --git a/drivers/base/platform.c b/drivers/base/platform.c
index fc5a933f3698..7c7b3638f02d 100644
--- a/drivers/base/platform.c
+++ b/drivers/base/platform.c
@@ -148,25 +148,7 @@ devm_platform_ioremap_resource_byname(struct platform_device *pdev,
EXPORT_SYMBOL_GPL(devm_platform_ioremap_resource_byname);
#endif /* CONFIG_HAS_IOMEM */
-/**
- * platform_get_irq_optional - get an optional IRQ for a device
- * @dev: platform device
- * @num: IRQ number index
- *
- * Gets an IRQ for a platform device. Device drivers should check the return
- * value for errors so as to not pass a negative integer value to the
- * request_irq() APIs. This is the same as platform_get_irq(), except that it
- * does not print an error message if an IRQ can not be obtained.
- *
- * For example::
- *
- * int irq = platform_get_irq_optional(pdev, 0);
- * if (irq < 0)
- * return irq;
- *
- * Return: non-zero IRQ number on success, negative error number on failure.
- */
-int platform_get_irq_optional(struct platform_device *dev, unsigned int num)
+static int __platform_get_irq(struct platform_device *dev, unsigned int num)
{
int ret;
#ifdef CONFIG_SPARC
@@ -235,6 +217,38 @@ int platform_get_irq_optional(struct platform_device *dev, unsigned int num)
return -EINVAL;
return ret;
}
+
+/**
+ * platform_get_irq_optional - get an optional IRQ for a device
+ * @dev: platform device
+ * @num: IRQ number index
+ *
+ * Gets an IRQ for a platform device. Device drivers should check the return
+ * value for errors so as to not pass a negative integer value to the
+ * request_irq() APIs. This is the same as platform_get_irq(), except that it
+ * does not print an error message if an IRQ can not be obtained and returns
+ * 0 when IRQ resource has not been found.
+ *
+ * For example::
+ *
+ * int irq = platform_get_irq_optional(pdev, 0);
+ * if (irq < 0)
+ * return irq;
+ * if (irq > 0)
+ * ...we have IRQ line defined...
+ *
+ * Return: non-zero IRQ number on success, 0 if IRQ wasn't found, negative error
+ * number on failure.
+ */
+int platform_get_irq_optional(struct platform_device *dev, unsigned int num)
+{
+ int ret;
+
+ ret = __platform_get_irq(dev, num);
+ if (ret == -ENXIO)
+ return 0;
+ return ret;
+}
EXPORT_SYMBOL_GPL(platform_get_irq_optional);
/**
@@ -258,7 +272,7 @@ int platform_get_irq(struct platform_device *dev, unsigned int num)
{
int ret;
- ret = platform_get_irq_optional(dev, num);
+ ret = __platform_get_irq(dev, num);
if (ret < 0 && ret != -EPROBE_DEFER)
dev_err(&dev->dev, "IRQ index %u not found\n", num);
@@ -276,7 +290,7 @@ int platform_irq_count(struct platform_device *dev)
{
int ret, nr = 0;
- while ((ret = platform_get_irq_optional(dev, nr)) >= 0)
+ while ((ret = __platform_get_irq(dev, nr)) >= 0)
nr++;
if (ret == -EPROBE_DEFER)
diff --git a/drivers/char/ipmi/bt-bmc.c b/drivers/char/ipmi/bt-bmc.c
index 7450904e330a..fdc63bfa5be4 100644
--- a/drivers/char/ipmi/bt-bmc.c
+++ b/drivers/char/ipmi/bt-bmc.c
@@ -382,12 +382,14 @@ static int bt_bmc_config_irq(struct bt_bmc *bt_bmc,
bt_bmc->irq = platform_get_irq_optional(pdev, 0);
if (bt_bmc->irq < 0)
return bt_bmc->irq;
+ if (!bt_bmc->irq)
+ return 0;
rc = devm_request_irq(dev, bt_bmc->irq, bt_bmc_irq, IRQF_SHARED,
DEVICE_NAME, bt_bmc);
if (rc < 0) {
dev_warn(dev, "Unable to request IRQ %d\n", bt_bmc->irq);
- bt_bmc->irq = rc;
+ bt_bmc->irq = 0;
return rc;
}
@@ -438,7 +440,7 @@ static int bt_bmc_probe(struct platform_device *pdev)
bt_bmc_config_irq(bt_bmc, pdev);
- if (bt_bmc->irq >= 0) {
+ if (bt_bmc->irq > 0) {
dev_info(dev, "Using IRQ %d\n", bt_bmc->irq);
} else {
dev_info(dev, "No IRQ; using timer\n");
@@ -464,7 +466,7 @@ static int bt_bmc_remove(struct platform_device *pdev)
struct bt_bmc *bt_bmc = dev_get_drvdata(&pdev->dev);
misc_deregister(&bt_bmc->miscdev);
- if (bt_bmc->irq < 0)
+ if (bt_bmc->irq <= 0)
del_timer_sync(&bt_bmc->poll_timer);
return 0;
}
diff --git a/drivers/counter/interrupt-cnt.c b/drivers/counter/interrupt-cnt.c
index 8514a87fcbee..a0564c035961 100644
--- a/drivers/counter/interrupt-cnt.c
+++ b/drivers/counter/interrupt-cnt.c
@@ -156,9 +156,7 @@ static int interrupt_cnt_probe(struct platform_device *pdev)
return -ENOMEM;
priv->irq = platform_get_irq_optional(pdev, 0);
- if (priv->irq == -ENXIO)
- priv->irq = 0;
- else if (priv->irq < 0)
+ if (priv->irq < 0)
return dev_err_probe(dev, priv->irq, "failed to get IRQ\n");
priv->gpio = devm_gpiod_get_optional(dev, NULL, GPIOD_IN);
diff --git a/drivers/edac/xgene_edac.c b/drivers/edac/xgene_edac.c
index 2ccd1db5e98f..0d1bdd27cd78 100644
--- a/drivers/edac/xgene_edac.c
+++ b/drivers/edac/xgene_edac.c
@@ -1917,7 +1917,7 @@ static int xgene_edac_probe(struct platform_device *pdev)
for (i = 0; i < 3; i++) {
irq = platform_get_irq_optional(pdev, i);
- if (irq < 0) {
+ if (irq <= 0) {
dev_err(&pdev->dev, "No IRQ resource\n");
rc = -EINVAL;
goto out_err;
diff --git a/drivers/gpio/gpio-altera.c b/drivers/gpio/gpio-altera.c
index b59fae993626..02a2995aa368 100644
--- a/drivers/gpio/gpio-altera.c
+++ b/drivers/gpio/gpio-altera.c
@@ -267,8 +267,7 @@ static int altera_gpio_probe(struct platform_device *pdev)
altera_gc->mmchip.gc.parent = &pdev->dev;
altera_gc->mapped_irq = platform_get_irq_optional(pdev, 0);
-
- if (altera_gc->mapped_irq < 0)
+ if (altera_gc->mapped_irq <= 0)
goto skip_irq;
if (of_property_read_u32(node, "altr,interrupt-type", ®)) {
diff --git a/drivers/gpio/gpio-mvebu.c b/drivers/gpio/gpio-mvebu.c
index 8f429d9f3661..a72a7bfc5a92 100644
--- a/drivers/gpio/gpio-mvebu.c
+++ b/drivers/gpio/gpio-mvebu.c
@@ -1294,7 +1294,7 @@ static int mvebu_gpio_probe(struct platform_device *pdev)
for (i = 0; i < 4; i++) {
int irq = platform_get_irq_optional(pdev, i);
- if (irq < 0)
+ if (irq <= 0)
continue;
irq_set_chained_handler_and_data(irq, mvebu_gpio_irq_handler,
mvchip);
diff --git a/drivers/gpio/gpio-tqmx86.c b/drivers/gpio/gpio-tqmx86.c
index 5b103221b58d..dc0f83236ce8 100644
--- a/drivers/gpio/gpio-tqmx86.c
+++ b/drivers/gpio/gpio-tqmx86.c
@@ -237,7 +237,7 @@ static int tqmx86_gpio_probe(struct platform_device *pdev)
int ret, irq;
irq = platform_get_irq_optional(pdev, 0);
- if (irq < 0 && irq != -ENXIO)
+ if (irq < 0)
return irq;
res = platform_get_resource(pdev, IORESOURCE_IO, 0);
diff --git a/drivers/i2c/busses/i2c-brcmstb.c b/drivers/i2c/busses/i2c-brcmstb.c
index 490ee3962645..69395ae27a1a 100644
--- a/drivers/i2c/busses/i2c-brcmstb.c
+++ b/drivers/i2c/busses/i2c-brcmstb.c
@@ -250,7 +250,7 @@ static int brcmstb_i2c_wait_for_completion(struct brcmstb_i2c_dev *dev)
int ret = 0;
unsigned long timeout = msecs_to_jiffies(I2C_TIMEOUT);
- if (dev->irq >= 0) {
+ if (dev->irq > 0) {
if (!wait_for_completion_timeout(&dev->done, timeout))
ret = -ETIMEDOUT;
} else {
@@ -297,7 +297,7 @@ static int brcmstb_send_i2c_cmd(struct brcmstb_i2c_dev *dev,
return rc;
/* only if we are in interrupt mode */
- if (dev->irq >= 0)
+ if (dev->irq > 0)
reinit_completion(&dev->done);
/* enable BSC CTL interrupt line */
@@ -652,7 +652,7 @@ static int brcmstb_i2c_probe(struct platform_device *pdev)
brcmstb_i2c_enable_disable_irq(dev, INT_DISABLE);
/* register the ISR handler */
- if (dev->irq >= 0) {
+ if (dev->irq > 0) {
rc = devm_request_irq(&pdev->dev, dev->irq, brcmstb_i2c_isr,
IRQF_SHARED,
int_name ? int_name : pdev->name,
@@ -696,7 +696,7 @@ static int brcmstb_i2c_probe(struct platform_device *pdev)
dev_info(dev->device, "%s@%dhz registered in %s mode\n",
int_name ? int_name : " ", dev->clk_freq_hz,
- (dev->irq >= 0) ? "interrupt" : "polling");
+ (dev->irq > 0) ? "interrupt" : "polling");
return 0;
diff --git a/drivers/i2c/busses/i2c-ocores.c b/drivers/i2c/busses/i2c-ocores.c
index a0af027db04c..1f4d5e52ff42 100644
--- a/drivers/i2c/busses/i2c-ocores.c
+++ b/drivers/i2c/busses/i2c-ocores.c
@@ -691,10 +691,10 @@ static int ocores_i2c_probe(struct platform_device *pdev)
if (of_device_is_compatible(pdev->dev.of_node,
"sifive,fu540-c000-i2c")) {
i2c->flags |= OCORES_FLAG_BROKEN_IRQ;
- irq = -ENXIO;
+ irq = 0;
}
- if (irq == -ENXIO) {
+ if (!irq) {
ocores_algorithm.master_xfer = ocores_xfer_polling;
} else {
if (irq < 0)
diff --git a/drivers/mmc/host/sh_mmcif.c b/drivers/mmc/host/sh_mmcif.c
index bcc595c70a9f..f558b9862032 100644
--- a/drivers/mmc/host/sh_mmcif.c
+++ b/drivers/mmc/host/sh_mmcif.c
@@ -1465,14 +1465,14 @@ static int sh_mmcif_probe(struct platform_device *pdev)
sh_mmcif_sync_reset(host);
sh_mmcif_writel(host->addr, MMCIF_CE_INT_MASK, MASK_ALL);
- name = irq[1] < 0 ? dev_name(dev) : "sh_mmc:error";
+ name = irq[1] <= 0 ? dev_name(dev) : "sh_mmc:error";
ret = devm_request_threaded_irq(dev, irq[0], sh_mmcif_intr,
sh_mmcif_irqt, 0, name, host);
if (ret) {
dev_err(dev, "request_irq error (%s)\n", name);
goto err_clk;
}
- if (irq[1] >= 0) {
+ if (irq[1] > 0) {
ret = devm_request_threaded_irq(dev, irq[1],
sh_mmcif_intr, sh_mmcif_irqt,
0, "sh_mmc:int", host);
diff --git a/drivers/mtd/nand/raw/brcmnand/brcmnand.c b/drivers/mtd/nand/raw/brcmnand/brcmnand.c
index f75929783b94..ac222985efde 100644
--- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c
+++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c
@@ -1521,7 +1521,7 @@ static irqreturn_t brcmnand_ctlrdy_irq(int irq, void *data)
/* check if you need to piggy back on the ctrlrdy irq */
if (ctrl->edu_pending) {
- if (irq == ctrl->irq && ((int)ctrl->edu_irq >= 0))
+ if (irq == ctrl->irq && ((int)ctrl->edu_irq > 0))
/* Discard interrupts while using dedicated edu irq */
return IRQ_HANDLED;
@@ -2956,7 +2956,7 @@ static int brcmnand_edu_setup(struct platform_device *pdev)
brcmnand_edu_init(ctrl);
ctrl->edu_irq = platform_get_irq_optional(pdev, 1);
- if (ctrl->edu_irq < 0) {
+ if (ctrl->edu_irq <= 0) {
dev_warn(dev,
"FLASH EDU enabled, using ctlrdy irq\n");
} else {
diff --git a/drivers/net/ethernet/davicom/dm9000.c b/drivers/net/ethernet/davicom/dm9000.c
index 0985ab216566..740c660a9411 100644
--- a/drivers/net/ethernet/davicom/dm9000.c
+++ b/drivers/net/ethernet/davicom/dm9000.c
@@ -1509,7 +1509,7 @@ dm9000_probe(struct platform_device *pdev)
}
db->irq_wake = platform_get_irq_optional(pdev, 1);
- if (db->irq_wake >= 0) {
+ if (db->irq_wake > 0) {
dev_dbg(db->dev, "wakeup irq %d\n", db->irq_wake);
ret = request_irq(db->irq_wake, dm9000_wol_interrupt,
diff --git a/drivers/net/ethernet/freescale/fec_ptp.c b/drivers/net/ethernet/freescale/fec_ptp.c
index d71eac7e1924..158676eda48d 100644
--- a/drivers/net/ethernet/freescale/fec_ptp.c
+++ b/drivers/net/ethernet/freescale/fec_ptp.c
@@ -620,7 +620,7 @@ void fec_ptp_init(struct platform_device *pdev, int irq_idx)
/* Failure to get an irq is not fatal,
* only the PTP_CLOCK_PPS clock events should stop
*/
- if (irq >= 0) {
+ if (irq > 0) {
ret = devm_request_irq(&pdev->dev, irq, fec_pps_interrupt,
0, pdev->name, ndev);
if (ret < 0)
diff --git a/drivers/phy/renesas/phy-rcar-gen3-usb2.c b/drivers/phy/renesas/phy-rcar-gen3-usb2.c
index 9de617ca9daa..4914d6aca208 100644
--- a/drivers/phy/renesas/phy-rcar-gen3-usb2.c
+++ b/drivers/phy/renesas/phy-rcar-gen3-usb2.c
@@ -439,7 +439,7 @@ static int rcar_gen3_phy_usb2_init(struct phy *p)
u32 val;
int ret;
- if (!rcar_gen3_is_any_rphy_initialized(channel) && channel->irq >= 0) {
+ if (!rcar_gen3_is_any_rphy_initialized(channel) && channel->irq > 0) {
INIT_WORK(&channel->work, rcar_gen3_phy_usb2_work);
ret = request_irq(channel->irq, rcar_gen3_phy_usb2_irq,
IRQF_SHARED, dev_name(channel->dev), channel);
@@ -486,7 +486,7 @@ static int rcar_gen3_phy_usb2_exit(struct phy *p)
val &= ~USB2_INT_ENABLE_UCOM_INTEN;
writel(val, usb2_base + USB2_INT_ENABLE);
- if (channel->irq >= 0 && !rcar_gen3_is_any_rphy_initialized(channel))
+ if (channel->irq > 0 && !rcar_gen3_is_any_rphy_initialized(channel))
free_irq(channel->irq, channel);
return 0;
diff --git a/drivers/platform/chrome/cros_ec_lpc.c b/drivers/platform/chrome/cros_ec_lpc.c
index d6306d2a096f..91686d306534 100644
--- a/drivers/platform/chrome/cros_ec_lpc.c
+++ b/drivers/platform/chrome/cros_ec_lpc.c
@@ -400,7 +400,7 @@ static int cros_ec_lpc_probe(struct platform_device *pdev)
irq = platform_get_irq_optional(pdev, 0);
if (irq > 0)
ec_dev->irq = irq;
- else if (irq != -ENXIO) {
+ else if (irq < 0) {
dev_err(dev, "couldn't retrieve IRQ number (%d)\n", irq);
return irq;
}
diff --git a/drivers/platform/x86/intel/punit_ipc.c b/drivers/platform/x86/intel/punit_ipc.c
index 66bb39fd0ef9..f3cf5ee1466f 100644
--- a/drivers/platform/x86/intel/punit_ipc.c
+++ b/drivers/platform/x86/intel/punit_ipc.c
@@ -278,7 +278,7 @@ static int intel_punit_ipc_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, punit_ipcdev);
irq = platform_get_irq_optional(pdev, 0);
- if (irq < 0) {
+ if (irq <= 0) {
dev_warn(&pdev->dev, "Invalid IRQ, using polling mode\n");
} else {
ret = devm_request_irq(&pdev->dev, irq, intel_punit_ioc,
diff --git a/drivers/power/supply/mp2629_charger.c b/drivers/power/supply/mp2629_charger.c
index bdf924b73e47..51289700a7ac 100644
--- a/drivers/power/supply/mp2629_charger.c
+++ b/drivers/power/supply/mp2629_charger.c
@@ -581,9 +581,9 @@ static int mp2629_charger_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, charger);
irq = platform_get_irq_optional(to_platform_device(dev->parent), 0);
- if (irq < 0) {
+ if (irq <= 0) {
dev_err(dev, "get irq fail: %d\n", irq);
- return irq;
+ return irq < 0 ? irq : -ENXIO;
}
for (i = 0; i < MP2629_MAX_FIELD; i++) {
diff --git a/drivers/spi/spi-hisi-sfc-v3xx.c b/drivers/spi/spi-hisi-sfc-v3xx.c
index d3a23b1c2a4c..476ddc081c60 100644
--- a/drivers/spi/spi-hisi-sfc-v3xx.c
+++ b/drivers/spi/spi-hisi-sfc-v3xx.c
@@ -467,7 +467,7 @@ static int hisi_sfc_v3xx_probe(struct platform_device *pdev)
dev_err(dev, "failed to request irq%d, ret = %d\n", host->irq, ret);
host->irq = 0;
}
- } else {
+ } else if (host->irq < 0) {
host->irq = 0;
}
diff --git a/drivers/spi/spi-mtk-nor.c b/drivers/spi/spi-mtk-nor.c
index 5c93730615f8..2422b0545936 100644
--- a/drivers/spi/spi-mtk-nor.c
+++ b/drivers/spi/spi-mtk-nor.c
@@ -829,8 +829,7 @@ static int mtk_nor_probe(struct platform_device *pdev)
mtk_nor_init(sp);
irq = platform_get_irq_optional(pdev, 0);
-
- if (irq < 0) {
+ if (irq <= 0) {
dev_warn(sp->dev, "IRQ not available.");
} else {
ret = devm_request_irq(sp->dev, irq, mtk_nor_irq_handler, 0,
diff --git a/drivers/thermal/rcar_gen3_thermal.c b/drivers/thermal/rcar_gen3_thermal.c
index 43eb25b167bc..776cfed4339c 100644
--- a/drivers/thermal/rcar_gen3_thermal.c
+++ b/drivers/thermal/rcar_gen3_thermal.c
@@ -430,7 +430,7 @@ static int rcar_gen3_thermal_request_irqs(struct rcar_gen3_thermal_priv *priv,
for (i = 0; i < 2; i++) {
irq = platform_get_irq_optional(pdev, i);
- if (irq < 0)
+ if (irq <= 0)
return irq;
irqname = devm_kasprintf(dev, GFP_KERNEL, "%s:ch%d",
diff --git a/drivers/tty/serial/8250/8250_mtk.c b/drivers/tty/serial/8250/8250_mtk.c
index fb65dc601b23..328ab074fd89 100644
--- a/drivers/tty/serial/8250/8250_mtk.c
+++ b/drivers/tty/serial/8250/8250_mtk.c
@@ -621,7 +621,7 @@ static int __maybe_unused mtk8250_suspend(struct device *dev)
serial8250_suspend_port(data->line);
pinctrl_pm_select_sleep_state(dev);
- if (irq >= 0) {
+ if (irq > 0) {
err = enable_irq_wake(irq);
if (err) {
dev_err(dev,
@@ -641,7 +641,7 @@ static int __maybe_unused mtk8250_resume(struct device *dev)
struct mtk8250_data *data = dev_get_drvdata(dev);
int irq = data->rx_wakeup_irq;
- if (irq >= 0)
+ if (irq > 0)
disable_irq_wake(irq);
pinctrl_pm_select_default_state(dev);
diff --git a/drivers/tty/serial/sh-sci.c b/drivers/tty/serial/sh-sci.c
index 89ee43061d3a..a67f8e532a73 100644
--- a/drivers/tty/serial/sh-sci.c
+++ b/drivers/tty/serial/sh-sci.c
@@ -1926,7 +1926,7 @@ static int sci_request_irq(struct sci_port *port)
* Certain port types won't support all of the
* available interrupt sources.
*/
- if (unlikely(irq < 0))
+ if (unlikely(irq <= 0))
continue;
}
@@ -1974,7 +1974,7 @@ static void sci_free_irq(struct sci_port *port)
* Certain port types won't support all of the available
* interrupt sources.
*/
- if (unlikely(irq < 0))
+ if (unlikely(irq <= 0))
continue;
/* Check if already freed (irq was muxed) */
@@ -2901,7 +2901,7 @@ static int sci_init_single(struct platform_device *dev,
if (sci_port->irqs[0] < 0)
return -ENXIO;
- if (sci_port->irqs[1] < 0)
+ if (sci_port->irqs[1] <= 0)
for (i = 1; i < ARRAY_SIZE(sci_port->irqs); i++)
sci_port->irqs[i] = sci_port->irqs[0];
diff --git a/drivers/uio/uio_pdrv_genirq.c b/drivers/uio/uio_pdrv_genirq.c
index 63258b6accc4..7fd275fc6ceb 100644
--- a/drivers/uio/uio_pdrv_genirq.c
+++ b/drivers/uio/uio_pdrv_genirq.c
@@ -162,7 +162,7 @@ static int uio_pdrv_genirq_probe(struct platform_device *pdev)
if (!uioinfo->irq) {
ret = platform_get_irq_optional(pdev, 0);
uioinfo->irq = ret;
- if (ret == -ENXIO)
+ if (!ret)
uioinfo->irq = UIO_IRQ_NONE;
else if (ret == -EPROBE_DEFER)
return ret;
diff --git a/drivers/vfio/platform/vfio_platform.c b/drivers/vfio/platform/vfio_platform.c
index 68a1c87066d7..cd7494933563 100644
--- a/drivers/vfio/platform/vfio_platform.c
+++ b/drivers/vfio/platform/vfio_platform.c
@@ -32,8 +32,12 @@ static struct resource *get_platform_resource(struct vfio_platform_device *vdev,
static int get_platform_irq(struct vfio_platform_device *vdev, int i)
{
struct platform_device *pdev = (struct platform_device *) vdev->opaque;
+ int ret;
- return platform_get_irq_optional(pdev, i);
+ ret = platform_get_irq_optional(pdev, i);
+ if (ret < 0)
+ return ret;
+ return ret > 0 ? ret : -ENXIO;
}
static int vfio_platform_probe(struct platform_device *pdev)
diff --git a/sound/soc/dwc/dwc-i2s.c b/sound/soc/dwc/dwc-i2s.c
index 5cb58929090d..ff19c5130459 100644
--- a/sound/soc/dwc/dwc-i2s.c
+++ b/sound/soc/dwc/dwc-i2s.c
@@ -643,7 +643,7 @@ static int dw_i2s_probe(struct platform_device *pdev)
dev->dev = &pdev->dev;
irq = platform_get_irq_optional(pdev, 0);
- if (irq >= 0) {
+ if (irq > 0) {
ret = devm_request_irq(&pdev->dev, irq, i2s_irq_handler, 0,
pdev->name, dev);
if (ret < 0) {
@@ -697,7 +697,7 @@ static int dw_i2s_probe(struct platform_device *pdev)
}
if (!pdata) {
- if (irq >= 0) {
+ if (irq > 0) {
ret = dw_pcm_register(pdev);
dev->use_pio = true;
} else {
--
2.26.3
12
85

19 Jan '22
Check for negative values of "priv->gain" to prevent an out of bounds
access. The concern is that these might come from the user via:
-> snd_ctl_elem_write_user()
-> snd_ctl_elem_write()
-> kctl->put()
Fixes: fa8d915172b8 ("ASoC: max9759: Add Amplifier Driver")
Signed-off-by: Dan Carpenter <dan.carpenter(a)oracle.com>
---
>From static analysis. Not tested.
This patch is obviously harmless but I sometimes get confused about
these sound get()/put() functions. I have some code in Smatch which is
supposed to manually suppress warnings from snd_ctl_elem_write() but it
was four years old and has bitrotted so that's how I got this warning.
So I remember these as being false positives where Smatch gets confused
but when I searched my mailbox I just see similar patches which were
applied.
sound/soc/codecs/max9759.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/sound/soc/codecs/max9759.c b/sound/soc/codecs/max9759.c
index d75fd61b9032..bc57d7687f16 100644
--- a/sound/soc/codecs/max9759.c
+++ b/sound/soc/codecs/max9759.c
@@ -64,7 +64,8 @@ static int speaker_gain_control_put(struct snd_kcontrol *kcontrol,
struct snd_soc_component *c = snd_soc_kcontrol_component(kcontrol);
struct max9759 *priv = snd_soc_component_get_drvdata(c);
- if (ucontrol->value.integer.value[0] > 3)
+ if (ucontrol->value.integer.value[0] < 0 ||
+ ucontrol->value.integer.value[0] > 3)
return -EINVAL;
priv->gain = ucontrol->value.integer.value[0];
--
2.20.1
2
1

19 Jan '22
When SND_SOC_MT8195_MT6359_RT1011_RT5682 is selected,
and GPIOLIB is not selected,
Kbuild gives the following warning:
WARNING: unmet direct dependencies detected for SND_SOC_DMIC
Depends on [n]: SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && GPIOLIB [=n]
Selected by [y]:
- SND_SOC_MT8195_MT6359_RT1011_RT5682 [=y] && SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && I2C [=y] && SND_SOC_MT8195 [=y] && MTK_PMIC_WRAP [=y]
This is because SND_SOC_MT8195_MT6359_RT1011_RT5682
selects SND_SOC_DMIC without selecting or depending on
GPIOLIB, depsite SND_SOC_DMIC depending on GPIOLIB.
This unmet dependency bug was detected by Kismet,
a static analysis tool for Kconfig. Please advise
if this is not the appropriate solution.
Signed-off-by: Julian Braha <julianbraha(a)gmail.com>
---
sound/soc/mediatek/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/soc/mediatek/Kconfig b/sound/soc/mediatek/Kconfig
index 9306b7ca2644..0d154350f180 100644
--- a/sound/soc/mediatek/Kconfig
+++ b/sound/soc/mediatek/Kconfig
@@ -216,7 +216,7 @@ config SND_SOC_MT8195_MT6359_RT1019_RT5682
config SND_SOC_MT8195_MT6359_RT1011_RT5682
tristate "ASoC Audio driver for MT8195 with MT6359 RT1011 RT5682 codec"
- depends on I2C
+ depends on I2C && GPIOLIB
depends on SND_SOC_MT8195 && MTK_PMIC_WRAP
select SND_SOC_MT6359
select SND_SOC_RT1011
--
2.32.0
3
2
From: Daniel Baluta <daniel.baluta(a)nxp.com>
This patch series adds compress operations support. This is tested with
SOF (codec_adapter component enabled) and i.MX8/8X/8M boards.
Changes since v1:
(https://lore.kernel.org/lkml/20220113161341.371345-1-daniel.baluta@oss.nxp.…)
- Addressed review from Cezary and Pierre
- fixed layout of declaration blocks to be more consistent
- avoid using rtd and runtime simultaneously inside a function (always
used rtd and crtd)
- check return code for create_page_table
- completely remove sof_compr_stream and use snd_compr_tstmap instead to
keep compress stream related info.·
- add get_caps and get_codec_caps implementations (in patch 2)
Daniel Baluta (1):
ASoC: SOF: compr: Add compress ops implementation
Paul Olaru (1):
ASoC: SOF: compress: Implement get_caps and get_codec_caps
sound/soc/sof/compress.c | 347 ++++++++++++++++++++++++++++++++++++++-
1 file changed, 345 insertions(+), 2 deletions(-)
--
2.27.0
3
5

[PATCH v3] ASoC: adds component driver for TAS575xM digital amplifiers
by Joerg Schambacher 19 Jan '22
by Joerg Schambacher 19 Jan '22
19 Jan '22
Adds a minimum component driver to run the amplifier in I2S master
mode only from standard audio clocks. Therefore, it only allows
44.1, 88.2, 176.4, 48, 96 and 192ksps with 16, 20, 24 and 32 bits
sample size. Digital volume control and the -6dB and +0.8dB switches
are supported.
Signed-off-by: Joerg Schambacher <joerg(a)hifiberry.com>
---
sound/soc/codecs/Kconfig | 8 +
sound/soc/codecs/Makefile | 2 +
sound/soc/codecs/tas5754m.c | 700 ++++++++++++++++++++++++++++++++++++
sound/soc/codecs/tas5754m.h | 260 ++++++++++++++
4 files changed, 970 insertions(+)
create mode 100644 sound/soc/codecs/tas5754m.c
create mode 100644 sound/soc/codecs/tas5754m.h
diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig
index 82ee233a269d..cf0584948fcf 100644
--- a/sound/soc/codecs/Kconfig
+++ b/sound/soc/codecs/Kconfig
@@ -210,6 +210,7 @@ config SND_SOC_ALL_CODECS
imply SND_SOC_TAS5086
imply SND_SOC_TAS571X
imply SND_SOC_TAS5720
+ imply SND_SOC_TAS5754M
imply SND_SOC_TAS6424
imply SND_SOC_TDA7419
imply SND_SOC_TFA9879
@@ -1419,6 +1420,13 @@ config SND_SOC_TAS5720
Enable support for Texas Instruments TAS5720L/M high-efficiency mono
Class-D audio power amplifiers.
+config SND_SOC_TAS5754M
+ tristate "Texas Instruments TAS5754M Digital Input Audio amplifier"
+ depends on I2C
+ help
+ Enable support for Texas Instruments TAS5754M digital input
+ Class-D audio power amplifiers.
+
config SND_SOC_TAS6424
tristate "Texas Instruments TAS6424 Quad-Channel Audio amplifier"
depends on I2C
diff --git a/sound/soc/codecs/Makefile b/sound/soc/codecs/Makefile
index 8dcea2c4604a..39984900258a 100644
--- a/sound/soc/codecs/Makefile
+++ b/sound/soc/codecs/Makefile
@@ -227,6 +227,7 @@ snd-soc-sti-sas-objs := sti-sas.o
snd-soc-tas5086-objs := tas5086.o
snd-soc-tas571x-objs := tas571x.o
snd-soc-tas5720-objs := tas5720.o
+snd-soc-tas5754m-objs := tas5754m.o
snd-soc-tas6424-objs := tas6424.o
snd-soc-tda7419-objs := tda7419.o
snd-soc-tas2770-objs := tas2770.o
@@ -555,6 +556,7 @@ obj-$(CONFIG_SND_SOC_TAS2764) += snd-soc-tas2764.o
obj-$(CONFIG_SND_SOC_TAS5086) += snd-soc-tas5086.o
obj-$(CONFIG_SND_SOC_TAS571X) += snd-soc-tas571x.o
obj-$(CONFIG_SND_SOC_TAS5720) += snd-soc-tas5720.o
+obj-$(CONFIG_SND_SOC_TAS5754M) += snd-soc-tas5754m.o
obj-$(CONFIG_SND_SOC_TAS6424) += snd-soc-tas6424.o
obj-$(CONFIG_SND_SOC_TDA7419) += snd-soc-tda7419.o
obj-$(CONFIG_SND_SOC_TAS2770) += snd-soc-tas2770.o
diff --git a/sound/soc/codecs/tas5754m.c b/sound/soc/codecs/tas5754m.c
new file mode 100644
index 000000000000..7aab9d29c46d
--- /dev/null
+++ b/sound/soc/codecs/tas5754m.c
@@ -0,0 +1,700 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Driver for the TAS5754M Audio Amplifier
+ *
+ * Author: Joerg Schambacher <joerg(a)hifiberry.com>
+ * with fragments from Andy Liu <andy-liu(a)ti.com>
+ *
+ * The driver supports I2S master mode only with standard audio
+ * frequencies 44.1 to 192 ksps from a 24.576/22.2592MHz master
+ * clock input
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ */
+
+#include <linux/module.h>
+#include <linux/moduleparam.h>
+#include <linux/clk.h>
+#include <linux/slab.h>
+#include <linux/of.h>
+#include <linux/init.h>
+#include <linux/i2c.h>
+#include <linux/regmap.h>
+#include <linux/delay.h>
+
+#include <sound/tlv.h>
+#include <sound/soc.h>
+#include <sound/pcm.h>
+#include <sound/pcm_params.h>
+#include <sound/initval.h>
+
+#include "tas5754m.h"
+
+#define TAS5754M_RATES (SNDRV_PCM_RATE_48000 | \
+ SNDRV_PCM_RATE_96000 | \
+ SNDRV_PCM_RATE_192000 | \
+ SNDRV_PCM_RATE_44100 | \
+ SNDRV_PCM_RATE_88200 | \
+ SNDRV_PCM_RATE_176400)
+#define TAS5754M_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | \
+ SNDRV_PCM_FMTBIT_S20_LE | \
+ SNDRV_PCM_FMTBIT_S24_LE | \
+ SNDRV_PCM_FMTBIT_S32_LE)
+
+
+static const struct reg_default tas5754m_reg_defaults[] = {
+ { TAS5754M_RESET, 0x00 },
+ { TAS5754M_POWER, 0x00 },
+ { TAS5754M_MUTE, 0x00 },
+ { TAS5754M_DSP, 0x00 },
+ { TAS5754M_PLL_REF, 0x00 },
+ { TAS5754M_DAC_REF, 0x00 },
+ { TAS5754M_DAC_ROUTING, 0x11 },
+ { TAS5754M_DSP_PROGRAM, 0x01 },
+ { TAS5754M_CLKDET, 0x00 },
+ { TAS5754M_AUTO_MUTE, 0x00 },
+ { TAS5754M_ERROR_DETECT, 0x00 },
+ { TAS5754M_DIGITAL_VOLUME_1, 0x00 },
+ { TAS5754M_DIGITAL_VOLUME_2, 0x30 },
+ { TAS5754M_DIGITAL_VOLUME_3, 0x30 },
+ { TAS5754M_DIGITAL_MUTE_1, 0x22 },
+ { TAS5754M_DIGITAL_MUTE_2, 0x00 },
+ { TAS5754M_DIGITAL_MUTE_3, 0x07 },
+ { TAS5754M_OUTPUT_AMPLITUDE, 0x00 },
+ { TAS5754M_ANALOG_GAIN_CTRL, 0x00 },
+ { TAS5754M_UNDERVOLTAGE_PROT, 0x00 },
+ { TAS5754M_ANALOG_MUTE_CTRL, 0x00 },
+ { TAS5754M_ANALOG_GAIN_BOOST, 0x00 },
+ { TAS5754M_VCOM_CTRL_1, 0x00 },
+ { TAS5754M_VCOM_CTRL_2, 0x01 },
+ { TAS5754M_BCLK_LRCLK_CFG, 0x00 },
+ { TAS5754M_MASTER_MODE, 0x7c },
+ { TAS5754M_GPIO_PLLIN, 0x00 },
+ { TAS5754M_SYNCHRONIZE, 0x10 },
+ { TAS5754M_PLL_COEFF_P, 0x00 },
+ { TAS5754M_PLL_COEFF_J, 0x00 },
+ { TAS5754M_PLL_COEFF_DH, 0x00 },
+ { TAS5754M_PLL_COEFF_DL, 0x00 },
+ { TAS5754M_PLL_COEFF_R, 0x00 },
+ { TAS5754M_DSP_CLKDIV, 0x00 },
+ { TAS5754M_DAC_CLKDIV, 0x00 },
+ { TAS5754M_NCP_CLKDIV, 0x00 },
+ { TAS5754M_OSR_CLKDIV, 0x00 },
+ { TAS5754M_MASTER_SCLKDIV, 0x00 },
+ { TAS5754M_MASTER_LRCLKDIV, 0x00 },
+ { TAS5754M_FS_SPEED_MODE, 0x00 },
+ { TAS5754M_IDAC_1, 0x01 },
+ { TAS5754M_IDAC_2, 0x00 },
+};
+
+static bool tas5754m_readable(struct device *dev, unsigned int reg)
+{
+ switch (reg) {
+ case TAS5754M_RESET:
+ case TAS5754M_POWER:
+ case TAS5754M_MUTE:
+ case TAS5754M_PLL_EN:
+ case TAS5754M_DSP:
+ case TAS5754M_GPIO_EN:
+ case TAS5754M_BCLK_LRCLK_CFG:
+ case TAS5754M_DSP_GPIO_INPUT:
+ case TAS5754M_MASTER_MODE:
+ case TAS5754M_PLL_REF:
+ case TAS5754M_DAC_REF:
+ case TAS5754M_GPIO_PLLIN:
+ case TAS5754M_SYNCHRONIZE:
+ case TAS5754M_PLL_COEFF_P:
+ case TAS5754M_PLL_COEFF_J:
+ case TAS5754M_PLL_COEFF_DH:
+ case TAS5754M_PLL_COEFF_DL:
+ case TAS5754M_PLL_COEFF_R:
+ case TAS5754M_DSP_CLKDIV:
+ case TAS5754M_DAC_CLKDIV:
+ case TAS5754M_NCP_CLKDIV:
+ case TAS5754M_OSR_CLKDIV:
+ case TAS5754M_MASTER_SCLKDIV:
+ case TAS5754M_MASTER_LRCLKDIV:
+ case TAS5754M_FS_SPEED_MODE:
+ case TAS5754M_IDAC_1:
+ case TAS5754M_IDAC_2:
+ case TAS5754M_ERROR_DETECT:
+ case TAS5754M_I2S_1:
+ case TAS5754M_I2S_2:
+ case TAS5754M_DAC_ROUTING:
+ case TAS5754M_DSP_PROGRAM:
+ case TAS5754M_CLKDET:
+ case TAS5754M_AUTO_MUTE:
+ case TAS5754M_DIGITAL_VOLUME_1:
+ case TAS5754M_DIGITAL_VOLUME_2:
+ case TAS5754M_DIGITAL_VOLUME_3:
+ case TAS5754M_DIGITAL_MUTE_1:
+ case TAS5754M_DIGITAL_MUTE_2:
+ case TAS5754M_DIGITAL_MUTE_3:
+ case TAS5754M_GPIO_OUTPUT_0:
+ case TAS5754M_GPIO_OUTPUT_1:
+ case TAS5754M_GPIO_OUTPUT_2:
+ case TAS5754M_GPIO_CONTROL_1:
+ case TAS5754M_GPIO_CONTROL_2:
+ case TAS5754M_OVERFLOW:
+ case TAS5754M_RATE_DET_1:
+ case TAS5754M_RATE_DET_2:
+ case TAS5754M_RATE_DET_3:
+ case TAS5754M_RATE_DET_4:
+ case TAS5754M_CLOCK_STATUS:
+ case TAS5754M_ANALOG_MUTE_DET:
+ case TAS5754M_GPIN:
+ case TAS5754M_DIGITAL_MUTE_DET:
+ case TAS5754M_OUTPUT_AMPLITUDE:
+ case TAS5754M_ANALOG_GAIN_CTRL:
+ case TAS5754M_UNDERVOLTAGE_PROT:
+ case TAS5754M_ANALOG_MUTE_CTRL:
+ case TAS5754M_ANALOG_GAIN_BOOST:
+ case TAS5754M_VCOM_CTRL_1:
+ case TAS5754M_VCOM_CTRL_2:
+ case TAS5754M_CRAM_CTRL:
+ case TAS5754M_FLEX_A:
+ case TAS5754M_FLEX_B:
+ return true;
+ default:
+ return reg < 0x7f;
+ }
+}
+
+static bool tas5754m_volatile(struct device *dev, unsigned int reg)
+{
+ switch (reg) {
+ case TAS5754M_PLL_EN:
+ case TAS5754M_OVERFLOW:
+ case TAS5754M_RATE_DET_1:
+ case TAS5754M_RATE_DET_2:
+ case TAS5754M_RATE_DET_3:
+ case TAS5754M_RATE_DET_4:
+ case TAS5754M_CLOCK_STATUS:
+ case TAS5754M_ANALOG_MUTE_DET:
+ case TAS5754M_GPIN:
+ case TAS5754M_DIGITAL_MUTE_DET:
+ case TAS5754M_CRAM_CTRL:
+ return true;
+ default:
+ return reg < 0x7f;
+ }
+}
+
+struct tas5754m_priv {
+ struct regmap *regmap;
+ struct clk *sclk;
+ int sample_len;
+ int fmt;
+ int mode;
+};
+
+static const struct regmap_range_cfg tas5754m_range = {
+ .name = "Pages",
+ .range_min = TAS5754M_VIRT_BASE,
+ .range_max = TAS5754M_MAX_REGISTER,
+ .selector_reg = TAS5754M_PAGE,
+ .selector_mask = 0x7f,
+ .window_start = 0,
+ .window_len = 128,
+};
+
+const struct regmap_config tas5754m_regmap = {
+ .reg_bits = 8,
+ .val_bits = 8,
+
+ .ranges = &tas5754m_range,
+ .num_ranges = 1,
+ .max_register = TAS5754M_MAX_REGISTER,
+
+ .reg_defaults = tas5754m_reg_defaults,
+ .num_reg_defaults = ARRAY_SIZE(tas5754m_reg_defaults),
+ .readable_reg = tas5754m_readable,
+ .volatile_reg = tas5754m_volatile,
+
+ .cache_type = REGCACHE_RBTREE,
+};
+
+static const DECLARE_TLV_DB_SCALE(digital_tlv, -10350, 50, 1);
+static const DECLARE_TLV_DB_SCALE(analog_tlv, -600, 600, 0);
+static const DECLARE_TLV_DB_SCALE(boost_tlv, 0, 80, 0);
+
+static const struct snd_kcontrol_new tas5754m_controls[] = {
+SOC_DOUBLE_R_TLV("Digital Playback Volume", TAS5754M_DIGITAL_VOLUME_2,
+ TAS5754M_DIGITAL_VOLUME_3, 0, 255, 1, digital_tlv),
+SOC_DOUBLE_TLV("Analog Playback Volume", TAS5754M_ANALOG_GAIN_CTRL,
+ TAS5754M_LAGN_SHIFT, TAS5754M_RAGN_SHIFT, 1, 1, analog_tlv),
+SOC_DOUBLE_TLV("Analogue Playback Boost Volume", TAS5754M_ANALOG_GAIN_BOOST,
+ TAS5754M_AGBL_SHIFT, TAS5754M_AGBR_SHIFT, 1, 0, boost_tlv),
+};
+
+static int tas5754m_set_bias_level(struct snd_soc_component *component,
+ enum snd_soc_bias_level level)
+{
+ struct tas5754m_priv *tas5754m =
+ snd_soc_component_get_drvdata(component);
+ int ret;
+
+ switch (level) {
+ case SND_SOC_BIAS_ON:
+ case SND_SOC_BIAS_PREPARE:
+ break;
+
+ case SND_SOC_BIAS_STANDBY:
+ ret = regmap_update_bits(tas5754m->regmap,
+ TAS5754M_POWER, TAS5754M_RQST, 0);
+ if (ret != 0) {
+ dev_err(component->dev,
+ "Failed to remove standby: %d\n", ret);
+ return ret;
+ }
+ break;
+
+ case SND_SOC_BIAS_OFF:
+ ret = regmap_update_bits(tas5754m->regmap,
+ TAS5754M_POWER, TAS5754M_RQST, TAS5754M_RQST);
+ if (ret != 0) {
+ dev_err(component->dev,
+ "Failed to request standby: %d\n", ret);
+ return ret;
+ }
+ break;
+ }
+
+ return 0;
+}
+
+int tas5754m_set_clock_tree_master(struct snd_soc_dai *dai,
+ struct snd_pcm_hw_params *params)
+{
+ struct snd_soc_component *component = dai->component;
+ struct tas5754m_priv *tas5754m =
+ snd_soc_component_get_drvdata(component);
+ static const struct reg_sequence pll_settings[] = {
+ { TAS5754M_PLL_COEFF_P, 0x01 }, // P=2
+ { TAS5754M_PLL_COEFF_J, 0x08 }, // J=8
+ { TAS5754M_PLL_COEFF_DL, 0x00 }, // D12-8 = 0
+ { TAS5754M_PLL_COEFF_DH, 0x00 }, // D7-0 = 0
+ { TAS5754M_PLL_COEFF_R, 0x00 }, // R=1
+ };
+ int ret;
+
+ /* disable PLL before any clock tree change */
+ ret = regmap_update_bits(tas5754m->regmap, TAS5754M_PLL_EN,
+ TAS5754M_PLLE, 0);
+ if (ret != 0) {
+ dev_err(component->dev, "Failed to disable PLL: %d\n", ret);
+ return ret;
+ }
+
+ /* set DAC clock source to MCLK */
+ ret = regmap_write(tas5754m->regmap, TAS5754M_DAC_REF, 0x30);
+ if (ret != 0) {
+ dev_err(component->dev, "Failed to set DAC ref\n");
+ return ret;
+ }
+
+ /* run PLL at fixed ratio to MCLK */
+ ret = regmap_multi_reg_write(tas5754m->regmap, pll_settings,
+ ARRAY_SIZE(pll_settings));
+ if (ret != 0) {
+ dev_err(component->dev, "Failed to set PLL ratio\n");
+ return ret;
+ }
+
+ /* set DSP divider to 2 => reg 0x01 */
+ ret = regmap_write(tas5754m->regmap, TAS5754M_DSP_CLKDIV, 1);
+ if (ret != 0) {
+ dev_err(component->dev, "Failed to set DSP divider\n");
+ return ret;
+ }
+ /* set DAC divider to 4 => reg 0x03*/
+ ret = regmap_write(tas5754m->regmap, TAS5754M_DAC_CLKDIV, 3);
+ if (ret != 0) {
+ dev_err(component->dev, "Failed to set OSDACR divider\n");
+ return ret;
+ }
+ /* set OSR divider to 1 */
+ ret = regmap_write(tas5754m->regmap, TAS5754M_OSR_CLKDIV, 0);
+ if (ret != 0) {
+ dev_err(component->dev, "Failed to set OSR divider\n");
+ return ret;
+ }
+ /* set CP divider to 4 => reg 0x03*/
+ ret = regmap_write(tas5754m->regmap, TAS5754M_NCP_CLKDIV, 3);
+ if (ret != 0) {
+ dev_err(component->dev, "Failed to set CP divider\n");
+ return ret;
+ }
+ /* finally enable PLL */
+ ret = regmap_update_bits(tas5754m->regmap, TAS5754M_PLL_EN,
+ TAS5754M_PLLE, 1);
+ if (ret != 0) {
+ dev_err(component->dev, "Failed to enable PLL: %d\n", ret);
+ return ret;
+ }
+
+ return 0;
+}
+
+int tas5754m_set_dai_mode(struct snd_soc_dai *dai)
+{
+ struct snd_soc_component *component = dai->component;
+ struct tas5754m_priv *tas5754m =
+ snd_soc_component_get_drvdata(component);
+ int fmt = tas5754m->fmt;
+
+ /* only I2S MASTER mode implemented */
+ if (((fmt & SND_SOC_DAIFMT_FORMAT_MASK) != SND_SOC_DAIFMT_I2S)) {
+ dev_err(component->dev,
+ "DAI format not supported (I2S master only)\n");
+ return -EINVAL;
+ }
+ /* TAS5754/6m do not support inverted clocks in MASTER mode */
+ if (((fmt & SND_SOC_DAIFMT_CLOCK_MASK) != SND_SOC_DAIFMT_NB_NF)) {
+ dev_err(component->dev, "Inverted clocks not supported\n");
+ return -EINVAL;
+ }
+
+ switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
+ case SND_SOC_DAIFMT_CBM_CFM:
+ regmap_update_bits(tas5754m->regmap,
+ TAS5754M_BCLK_LRCLK_CFG,
+ TAS5754M_LRKO | TAS5754M_BCKO,
+ TAS5754M_LRKO | TAS5754M_BCKO);
+ /* reset CLK dividers */
+ regmap_update_bits(tas5754m->regmap,
+ TAS5754M_MASTER_MODE,
+ 0x00,
+ TAS5754M_RLRK | TAS5754M_RBCK);
+ /* ignore all clock error detection but MCLK */
+ regmap_update_bits(tas5754m->regmap,
+ TAS5754M_ERROR_DETECT,
+ TAS5754M_IPLK | TAS5754M_DCAS |
+ TAS5754M_IDCM | TAS5754M_IDSK |
+ TAS5754M_IDBK | TAS5754M_IDFS,
+ TAS5754M_IPLK | TAS5754M_DCAS |
+ TAS5754M_IDCM | TAS5754M_IDSK |
+ TAS5754M_IDBK | TAS5754M_IDFS);
+ break;
+ case SND_SOC_DAIFMT_CBS_CFS:
+ case SND_SOC_DAIFMT_CBM_CFS:
+ default:
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
+int tas5754m_set_dividers_master(struct snd_soc_dai *dai,
+ struct snd_pcm_hw_params *params)
+{
+ struct snd_soc_component *component = dai->component;
+ struct tas5754m_priv *tas5754m =
+ snd_soc_component_get_drvdata(component);
+ unsigned long bclk;
+ unsigned long mclk;
+ int bclk_div;
+ int lrclk_div;
+ int osr;
+ int ret;
+
+ mclk = clk_get_rate(tas5754m->sclk);
+ bclk = tas5754m->sample_len * 2 * params_rate(params);
+ bclk_div = mclk / bclk;
+ lrclk_div = tas5754m->sample_len * 2;
+ osr = mclk / 4 / params_rate(params) / 16;
+
+ // stop LR / SCLK clocks
+ ret = regmap_update_bits(tas5754m->regmap,
+ TAS5754M_MASTER_MODE,
+ !TAS5754M_RLRK | !TAS5754M_RBCK,
+ TAS5754M_RLRK | TAS5754M_RBCK);
+ if (ret != 0) {
+ dev_err(component->dev, "Failed to stop PLL\n");
+ return ret;
+ }
+
+ // set SCLK divider
+ ret = regmap_write(tas5754m->regmap, TAS5754M_MASTER_SCLKDIV,
+ bclk_div - 1);
+ if (ret != 0) {
+ dev_err(component->dev, "Failed to set SCLK divider\n");
+ return ret;
+ }
+
+ // set LRCLK divider
+ ret = regmap_write(tas5754m->regmap, TAS5754M_MASTER_LRCLKDIV,
+ lrclk_div - 1);
+ if (ret != 0) {
+ dev_err(component->dev, "Failed to set LRCLK divider\n");
+ return ret;
+ }
+
+ ret = regmap_write(tas5754m->regmap,
+ TAS5754M_OSR_CLKDIV, osr - 1);
+ if (ret != 0) {
+ dev_err(component->dev, "Failed to set OSR divider\n");
+ return ret;
+ }
+
+ // restart LR / SCLK clocks
+ ret = regmap_update_bits(tas5754m->regmap,
+ TAS5754M_MASTER_MODE,
+ TAS5754M_RLRK | TAS5754M_RBCK,
+ TAS5754M_RLRK | TAS5754M_RBCK);
+ if (ret != 0) {
+ dev_err(component->dev, "Failed to restart PLL\n");
+ return ret;
+ }
+
+ return 0;
+}
+
+static int tas5754m_hw_params(struct snd_pcm_substream *substream,
+ struct snd_pcm_hw_params *params,
+ struct snd_soc_dai *dai)
+{
+ struct snd_soc_component *component = dai->component;
+ struct tas5754m_priv *tas5754m =
+ snd_soc_component_get_drvdata(component);
+ int alen;
+ int ret;
+
+ switch (params_width(params)) {
+ case 16:
+ tas5754m->sample_len = 16;
+ alen = TAS5754M_ALEN_16;
+ break;
+ case 20:
+ tas5754m->sample_len = 32;
+ alen = TAS5754M_ALEN_20;
+ break;
+ case 24:
+ tas5754m->sample_len = 32;
+ alen = TAS5754M_ALEN_24;
+ break;
+ case 32:
+ tas5754m->sample_len = 32;
+ alen = TAS5754M_ALEN_32;
+ break;
+ default:
+ dev_err(component->dev, "Unsupported sample size: %d\n",
+ params_width(params));
+ return -EINVAL;
+ }
+ ret = regmap_update_bits(tas5754m->regmap, TAS5754M_I2S_1, alen, alen);
+ if (ret != 0) {
+ dev_err(component->dev,
+ "Cannot set sample size: %d\n", ret);
+ return ret;
+ }
+
+ ret = tas5754m_set_dai_mode(dai);
+ if (ret != 0) {
+ dev_err(component->dev,
+ "DAI mode not supported: %d\n", ret);
+ return ret;
+ }
+
+ ret = tas5754m_set_clock_tree_master(dai, params);
+ if (ret != 0)
+ return ret;
+
+ switch (params_rate(params)) {
+ case 44100:
+ case 48000:
+ ret = regmap_write(tas5754m->regmap,
+ TAS5754M_FS_SPEED_MODE, TAS5754M_FSSP_48KHZ);
+ break;
+ case 88200:
+ case 96000:
+ ret = regmap_write(tas5754m->regmap,
+ TAS5754M_FS_SPEED_MODE, TAS5754M_FSSP_96KHZ);
+ break;
+ case 176400:
+ case 192000:
+ ret = regmap_write(tas5754m->regmap,
+ TAS5754M_FS_SPEED_MODE, TAS5754M_FSSP_192KHZ);
+ break;
+ default:
+ dev_err(component->dev, "Sample rate not supported: %d\n",
+ params_rate(params));
+ return -EINVAL;
+ }
+ if (ret != 0) {
+ dev_err(component->dev, "Failed to config PLL\n");
+ return ret;
+ }
+
+ ret = tas5754m_set_dividers_master(dai, params);
+ if (ret != 0)
+ return ret;
+
+ return 0;
+}
+
+static int tas5754m_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
+{
+ struct snd_soc_component *component = dai->component;
+ struct tas5754m_priv *tas5754m =
+ snd_soc_component_get_drvdata(component);
+
+ tas5754m->fmt = fmt;
+
+ return 0;
+}
+
+
+static const struct snd_soc_component_driver tas5754m_soc_component = {
+ .set_bias_level = tas5754m_set_bias_level,
+ .idle_bias_on = true,
+ .controls = tas5754m_controls,
+ .num_controls = ARRAY_SIZE(tas5754m_controls),
+};
+
+static int tas5754m_mute(struct snd_soc_dai *dai, int mute, int stream)
+{
+ struct snd_soc_component *component = dai->component;
+
+ if (mute) {
+ snd_soc_component_write(component, TAS5754M_MUTE, 0x11);
+ } else {
+ /* wait for stable operation before unmute */
+ usleep_range(1000, 2000);
+ snd_soc_component_write(component, TAS5754M_MUTE, 0x00);
+ }
+ return 0;
+}
+
+static const struct snd_soc_dai_ops tas5754m_dai_ops = {
+ .mute_stream = tas5754m_mute,
+ .hw_params = tas5754m_hw_params,
+ .set_fmt = tas5754m_set_fmt,
+};
+
+static struct snd_soc_dai_driver tas5754m_dai = {
+ .name = "tas5754m-amplifier",
+ .playback = {
+ .stream_name = "Playback",
+ .channels_min = 2,
+ .channels_max = 2,
+ .rates = TAS5754M_RATES,
+ .formats = TAS5754M_FORMATS,
+ },
+ .ops = &tas5754m_dai_ops,
+};
+
+static int tas5754m_probe(struct device *dev, struct regmap *regmap)
+{
+ struct tas5754m_priv *tas5754m;
+ int ret;
+
+ tas5754m = devm_kzalloc(dev, sizeof(struct tas5754m_priv), GFP_KERNEL);
+ if (!tas5754m)
+ return -ENOMEM;
+
+ dev_set_drvdata(dev, tas5754m);
+ tas5754m->regmap = regmap;
+
+ regmap_write(regmap, TAS5754M_RESET, TAS5754M_RSTR | TAS5754M_RSTM);
+
+ if (ret != 0) {
+ dev_err(dev, "Failed to initialize TAS5754M: %d\n", ret);
+ goto err;
+ }
+
+ tas5754m->sclk = devm_clk_get(dev, NULL);
+ if (PTR_ERR(tas5754m->sclk) == -EPROBE_DEFER) {
+ ret = -EPROBE_DEFER;
+ goto err;
+ }
+ if (!IS_ERR(tas5754m->sclk)) {
+ ret = clk_prepare_enable(tas5754m->sclk);
+ if (ret != 0) {
+ dev_err(dev, "Failed to enable SCLK: %d\n", ret);
+ goto err;
+ }
+ }
+
+ ret = devm_snd_soc_register_component(dev,
+ &tas5754m_soc_component, &tas5754m_dai, 1);
+ if (ret != 0) {
+ dev_err(dev, "Failed to register CODEC: %d\n", ret);
+ goto err;
+ }
+
+ return 0;
+
+err:
+ return ret;
+
+}
+
+static int tas5754m_i2c_probe(struct i2c_client *i2c, const struct i2c_device_id *id)
+{
+ struct regmap *regmap;
+ struct regmap_config config = tas5754m_regmap;
+
+ /* enable auto-increment mode */
+ config.read_flag_mask = 0x80;
+ config.write_flag_mask = 0x80;
+
+ regmap = devm_regmap_init_i2c(i2c, &config);
+ if (IS_ERR(regmap))
+ return PTR_ERR(regmap);
+
+ return tas5754m_probe(&i2c->dev, regmap);
+}
+
+static int tas5754m_remove(struct device *dev)
+{
+ snd_soc_unregister_component(dev);
+
+ return 0;
+}
+
+static int tas5754m_i2c_remove(struct i2c_client *i2c)
+{
+ tas5754m_remove(&i2c->dev);
+
+ return 0;
+}
+
+static const struct i2c_device_id tas5754m_i2c_id[] = {
+ { "tas5754m", },
+ { "tas5756m", },
+ { }
+};
+MODULE_DEVICE_TABLE(i2c, tas5754m_i2c_id);
+
+#ifdef CONFIG_OF
+static const struct of_device_id tas5754m_of_match[] = {
+ { .compatible = "ti,tas5754m", },
+ { .compatible = "ti,tas5756m", },
+ { }
+};
+MODULE_DEVICE_TABLE(of, tas5754m_of_match);
+#endif
+
+static struct i2c_driver tas5754m_i2c_driver = {
+ .probe = tas5754m_i2c_probe,
+ .remove = tas5754m_i2c_remove,
+ .id_table = tas5754m_i2c_id,
+ .driver = {
+ .name = "tas5754m",
+ .of_match_table = of_match_ptr(tas5754m_of_match),
+ },
+};
+
+module_i2c_driver(tas5754m_i2c_driver);
+
+MODULE_AUTHOR("Joerg Schambacher <joerg(a)hifiberry.com>");
+MODULE_DESCRIPTION("TAS5754M Audio Amplifier Driver - Master mode only");
+MODULE_LICENSE("GPL");
diff --git a/sound/soc/codecs/tas5754m.h b/sound/soc/codecs/tas5754m.h
new file mode 100644
index 000000000000..c6e26dba169f
--- /dev/null
+++ b/sound/soc/codecs/tas5754m.h
@@ -0,0 +1,260 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Driver for the TAS575xM DAC+amplifier combo devices
+ *
+ * Author: (copied from pcm512x.h)
+ * Mark Brown <broonie(a)kernel.org>
+ * Copyright 2014 Linaro Ltd
+ *
+ * Register names adapted and non available
+ * register definitions removed according
+ + to TAS5754M specification
+ * Joerg Schambacher <joerg(a)hifiberry.com>
+ */
+
+#ifndef _SND_SOC_TAS5754M
+#define _SND_SOC_TAS5754M
+
+#include <linux/pm.h>
+#include <linux/regmap.h>
+
+#define TAS5754M_VIRT_BASE 0x000
+#define TAS5754M_PAGE_LEN 0x80
+#define TAS5754M_PAGE_BASE(n) (TAS5754M_VIRT_BASE + (TAS5754M_PAGE_LEN * n))
+
+#define TAS5754M_PAGE 0
+
+#define TAS5754M_RESET (TAS5754M_PAGE_BASE(0) + 1)
+#define TAS5754M_POWER (TAS5754M_PAGE_BASE(0) + 2)
+#define TAS5754M_MUTE (TAS5754M_PAGE_BASE(0) + 3)
+#define TAS5754M_PLL_EN (TAS5754M_PAGE_BASE(0) + 4)
+#define TAS5754M_DSP (TAS5754M_PAGE_BASE(0) + 7)
+#define TAS5754M_GPIO_EN (TAS5754M_PAGE_BASE(0) + 8)
+#define TAS5754M_BCLK_LRCLK_CFG (TAS5754M_PAGE_BASE(0) + 9)
+#define TAS5754M_DSP_GPIO_INPUT (TAS5754M_PAGE_BASE(0) + 10)
+#define TAS5754M_MASTER_MODE (TAS5754M_PAGE_BASE(0) + 12)
+#define TAS5754M_PLL_REF (TAS5754M_PAGE_BASE(0) + 13)
+#define TAS5754M_DAC_REF (TAS5754M_PAGE_BASE(0) + 14)
+#define TAS5754M_GPIO_PLLIN (TAS5754M_PAGE_BASE(0) + 18)
+#define TAS5754M_SYNCHRONIZE (TAS5754M_PAGE_BASE(0) + 19)
+#define TAS5754M_PLL_COEFF_P (TAS5754M_PAGE_BASE(0) + 20)
+#define TAS5754M_PLL_COEFF_J (TAS5754M_PAGE_BASE(0) + 21)
+#define TAS5754M_PLL_COEFF_DH (TAS5754M_PAGE_BASE(0) + 22)
+#define TAS5754M_PLL_COEFF_DL (TAS5754M_PAGE_BASE(0) + 23)
+#define TAS5754M_PLL_COEFF_R (TAS5754M_PAGE_BASE(0) + 24)
+#define TAS5754M_DSP_CLKDIV (TAS5754M_PAGE_BASE(0) + 27)
+#define TAS5754M_DAC_CLKDIV (TAS5754M_PAGE_BASE(0) + 28)
+#define TAS5754M_NCP_CLKDIV (TAS5754M_PAGE_BASE(0) + 29)
+#define TAS5754M_OSR_CLKDIV (TAS5754M_PAGE_BASE(0) + 30)
+#define TAS5754M_MASTER_SCLKDIV (TAS5754M_PAGE_BASE(0) + 32)
+#define TAS5754M_MASTER_LRCLKDIV (TAS5754M_PAGE_BASE(0) + 33)
+#define TAS5754M_FS_SPEED_MODE (TAS5754M_PAGE_BASE(0) + 34)
+#define TAS5754M_IDAC_1 (TAS5754M_PAGE_BASE(0) + 35)
+#define TAS5754M_IDAC_2 (TAS5754M_PAGE_BASE(0) + 36)
+#define TAS5754M_ERROR_DETECT (TAS5754M_PAGE_BASE(0) + 37)
+#define TAS5754M_I2S_1 (TAS5754M_PAGE_BASE(0) + 40)
+#define TAS5754M_I2S_2 (TAS5754M_PAGE_BASE(0) + 41)
+#define TAS5754M_DAC_ROUTING (TAS5754M_PAGE_BASE(0) + 42)
+#define TAS5754M_DSP_PROGRAM (TAS5754M_PAGE_BASE(0) + 43)
+#define TAS5754M_CLKDET (TAS5754M_PAGE_BASE(0) + 44)
+#define TAS5754M_AUTO_MUTE (TAS5754M_PAGE_BASE(0) + 59)
+#define TAS5754M_DIGITAL_VOLUME_1 (TAS5754M_PAGE_BASE(0) + 60)
+#define TAS5754M_DIGITAL_VOLUME_2 (TAS5754M_PAGE_BASE(0) + 61)
+#define TAS5754M_DIGITAL_VOLUME_3 (TAS5754M_PAGE_BASE(0) + 62)
+#define TAS5754M_DIGITAL_MUTE_1 (TAS5754M_PAGE_BASE(0) + 63)
+#define TAS5754M_DIGITAL_MUTE_2 (TAS5754M_PAGE_BASE(0) + 64)
+#define TAS5754M_DIGITAL_MUTE_3 (TAS5754M_PAGE_BASE(0) + 65)
+#define TAS5754M_GPIO_OUTPUT_1 (TAS5754M_PAGE_BASE(0) + 82)
+#define TAS5754M_GPIO_OUTPUT_0 (TAS5754M_PAGE_BASE(0) + 83)
+#define TAS5754M_GPIO_OUTPUT_2 (TAS5754M_PAGE_BASE(0) + 85)
+#define TAS5754M_GPIO_CONTROL_1 (TAS5754M_PAGE_BASE(0) + 86)
+#define TAS5754M_GPIO_CONTROL_2 (TAS5754M_PAGE_BASE(0) + 87)
+#define TAS5754M_OVERFLOW (TAS5754M_PAGE_BASE(0) + 90)
+#define TAS5754M_RATE_DET_1 (TAS5754M_PAGE_BASE(0) + 91)
+#define TAS5754M_RATE_DET_2 (TAS5754M_PAGE_BASE(0) + 92)
+#define TAS5754M_RATE_DET_3 (TAS5754M_PAGE_BASE(0) + 93)
+#define TAS5754M_RATE_DET_4 (TAS5754M_PAGE_BASE(0) + 94)
+#define TAS5754M_CLOCK_STATUS (TAS5754M_PAGE_BASE(0) + 95)
+#define TAS5754M_ANALOG_MUTE_DET (TAS5754M_PAGE_BASE(0) + 108)
+#define TAS5754M_FS_MODE_MON (TAS5754M_PAGE_BASE(0) + 115)
+#define TAS5754M_GPIN (TAS5754M_PAGE_BASE(0) + 119)
+#define TAS5754M_DIGITAL_MUTE_DET (TAS5754M_PAGE_BASE(0) + 120)
+
+#define TAS5754M_OUTPUT_AMPLITUDE (TAS5754M_PAGE_BASE(1) + 1)
+#define TAS5754M_ANALOG_GAIN_CTRL (TAS5754M_PAGE_BASE(1) + 2)
+#define TAS5754M_UNDERVOLTAGE_PROT (TAS5754M_PAGE_BASE(1) + 5)
+#define TAS5754M_ANALOG_MUTE_CTRL (TAS5754M_PAGE_BASE(1) + 6)
+#define TAS5754M_ANALOG_GAIN_BOOST (TAS5754M_PAGE_BASE(1) + 7)
+#define TAS5754M_VCOM_CTRL_1 (TAS5754M_PAGE_BASE(1) + 8)
+#define TAS5754M_VCOM_CTRL_2 (TAS5754M_PAGE_BASE(1) + 9)
+
+#define TAS5754M_CRAM_CTRL (TAS5754M_PAGE_BASE(44) + 1)
+
+#define TAS5754M_FLEX_A (TAS5754M_PAGE_BASE(253) + 63)
+#define TAS5754M_FLEX_B (TAS5754M_PAGE_BASE(253) + 64)
+
+#define TAS5754M_MAX_REGISTER (TAS5754M_PAGE_BASE(253) + 64)
+
+/* Page 0, Register 1 - reset */
+#define TAS5754M_RSTR (1 << 0)
+#define TAS5754M_RSTM (1 << 4)
+
+/* Page 0, Register 2 - power */
+#define TAS5754M_RQPD (1 << 0)
+#define TAS5754M_RQPD_SHIFT 0
+#define TAS5754M_RQST (1 << 4)
+#define TAS5754M_RQST_SHIFT 4
+
+/* Page 0, Register 3 - mute */
+#define TAS5754M_RQMR (1 << 0)
+#define TAS5754M_RQMR_SHIFT 0
+#define TAS5754M_RQML (1 << 4)
+#define TAS5754M_RQML_SHIFT 4
+
+/* Page 0, Register 4 - PLL */
+#define TAS5754M_PLLE (1 << 0)
+#define TAS5754M_PLLE_SHIFT 0
+#define TAS5754M_PLCK (1 << 4)
+#define TAS5754M_PLCK_SHIFT 4
+
+/* Page 0, Register 7 - DSP */
+#define TAS5754M_SDSL (1 << 0)
+#define TAS5754M_SDSL_SHIFT 0
+#define TAS5754M_DEMP (1 << 4)
+#define TAS5754M_DEMP_SHIFT 4
+
+/* Page 0, Register 8 - GPIO output enable */
+#define TAS5754M_G1OE (1 << 0)
+#define TAS5754M_G2OE (1 << 1)
+#define TAS5754M_G3OE (1 << 2)
+#define TAS5754M_G4OE (1 << 3)
+#define TAS5754M_G5OE (1 << 4)
+#define TAS5754M_G6OE (1 << 5)
+
+/* Page 0, Register 9 - BCK, LRCLK configuration */
+#define TAS5754M_LRKO (1 << 0)
+#define TAS5754M_LRKO_SHIFT 0
+#define TAS5754M_BCKO (1 << 4)
+#define TAS5754M_BCKO_SHIFT 4
+#define TAS5754M_BCKP (1 << 5)
+#define TAS5754M_BCKP_SHIFT 5
+
+/* Page 0, Register 12 - Master mode BCK, LRCLK reset */
+#define TAS5754M_RLRK (1 << 0)
+#define TAS5754M_RLRK_SHIFT 0
+#define TAS5754M_RBCK (1 << 1)
+#define TAS5754M_RBCK_SHIFT 1
+
+/* Page 0, Register 13 - PLL reference */
+#define TAS5754M_SREF (7 << 4)
+#define TAS5754M_SREF_SHIFT 4
+#define TAS5754M_SREF_SCK (0 << 4)
+#define TAS5754M_SREF_BCK (1 << 4)
+#define TAS5754M_SREF_GPIO (3 << 4)
+
+/* Page 0, Register 14 - DAC reference */
+#define TAS5754M_SDAC (7 << 4)
+#define TAS5754M_SDAC_SHIFT 4
+#define TAS5754M_SDAC_MCK (0 << 4)
+#define TAS5754M_SDAC_PLL (1 << 4)
+#define TAS5754M_SDAC_SCK (3 << 4)
+#define TAS5754M_SDAC_BCK (4 << 4)
+#define TAS5754M_SDAC_GPIO (5 << 4)
+
+/* Page 0, Register 16, 18 - GPIO source for DAC, PLL */
+#define TAS5754M_GREF (7 << 0)
+#define TAS5754M_GREF_SHIFT 0
+#define TAS5754M_GREF_GPIO1 (0 << 0)
+#define TAS5754M_GREF_GPIO2 (1 << 0)
+#define TAS5754M_GREF_GPIO3 (2 << 0)
+#define TAS5754M_GREF_GPIO4 (3 << 0)
+#define TAS5754M_GREF_GPIO5 (4 << 0)
+#define TAS5754M_GREF_GPIO6 (5 << 0)
+
+/* Page 0, Register 19 - synchronize */
+#define TAS5754M_RQSY (1 << 0)
+#define TAS5754M_RQSY_RESUME (0 << 0)
+#define TAS5754M_RQSY_HALT (1 << 0)
+
+/* Page 0, Register 34 - fs speed mode */
+#define TAS5754M_FSSP (3 << 0)
+#define TAS5754M_FSSP_SHIFT 0
+#define TAS5754M_FSSP_48KHZ (0 << 0)
+#define TAS5754M_FSSP_96KHZ (1 << 0)
+#define TAS5754M_FSSP_192KHZ (2 << 0)
+#define TAS5754M_FSSP_384KHZ (3 << 0)
+
+/* Page 0, Register 37 - Error detection */
+#define TAS5754M_IPLK (1 << 0)
+#define TAS5754M_DCAS (1 << 1)
+#define TAS5754M_IDCM (1 << 2)
+#define TAS5754M_IDCH (1 << 3)
+#define TAS5754M_IDSK (1 << 4)
+#define TAS5754M_IDBK (1 << 5)
+#define TAS5754M_IDFS (1 << 6)
+
+/* Page 0, Register 40 - I2S configuration */
+#define TAS5754M_ALEN (3 << 0)
+#define TAS5754M_ALEN_SHIFT 0
+#define TAS5754M_ALEN_16 (0 << 0)
+#define TAS5754M_ALEN_20 (1 << 0)
+#define TAS5754M_ALEN_24 (2 << 0)
+#define TAS5754M_ALEN_32 (3 << 0)
+#define TAS5754M_AFMT (3 << 4)
+#define TAS5754M_AFMT_SHIFT 4
+#define TAS5754M_AFMT_I2S (0 << 4)
+#define TAS5754M_AFMT_DSP (1 << 4)
+#define TAS5754M_AFMT_RTJ (2 << 4)
+#define TAS5754M_AFMT_LTJ (3 << 4)
+
+/* Page 0, Register 42 - DAC routing */
+#define TAS5754M_AUPR_SHIFT 0
+#define TAS5754M_AUPL_SHIFT 4
+
+/* Page 0, Register 59 - auto mute */
+#define TAS5754M_ATMR_SHIFT 0
+#define TAS5754M_ATML_SHIFT 4
+
+/* Page 0, Register 63 - ramp rates */
+#define TAS5754M_VNDF_SHIFT 6
+#define TAS5754M_VNDS_SHIFT 4
+#define TAS5754M_VNUF_SHIFT 2
+#define TAS5754M_VNUS_SHIFT 0
+
+/* Page 0, Register 64 - emergency ramp rates */
+#define TAS5754M_VEDF_SHIFT 6
+#define TAS5754M_VEDS_SHIFT 4
+
+/* Page 0, Register 65 - Digital mute enables */
+#define TAS5754M_ACTL_SHIFT 2
+#define TAS5754M_AMLE_SHIFT 1
+#define TAS5754M_AMRE_SHIFT 0
+
+/* Page 0, Register 80-85, GPIO output selection */
+#define TAS5754M_GxSL (31 << 0)
+#define TAS5754M_GxSL_SHIFT 0
+#define TAS5754M_GxSL_OFF (0 << 0)
+#define TAS5754M_GxSL_DSP (1 << 0)
+#define TAS5754M_GxSL_REG (2 << 0)
+#define TAS5754M_GxSL_AMUTB (3 << 0)
+#define TAS5754M_GxSL_AMUTL (4 << 0)
+#define TAS5754M_GxSL_AMUTR (5 << 0)
+#define TAS5754M_GxSL_CLKI (6 << 0)
+#define TAS5754M_GxSL_SDOUT (7 << 0)
+#define TAS5754M_GxSL_ANMUL (8 << 0)
+#define TAS5754M_GxSL_ANMUR (9 << 0)
+#define TAS5754M_GxSL_PLLLK (10 << 0)
+#define TAS5754M_GxSL_CPCLK (11 << 0)
+#define TAS5754M_GxSL_UV0_7 (14 << 0)
+#define TAS5754M_GxSL_UV0_3 (15 << 0)
+#define TAS5754M_GxSL_PLLCK (16 << 0)
+
+/* Page 1, Register 2 - analog volume control */
+#define TAS5754M_RAGN_SHIFT 0
+#define TAS5754M_LAGN_SHIFT 4
+
+/* Page 1, Register 7 - analog boost control */
+#define TAS5754M_AGBR_SHIFT 0
+#define TAS5754M_AGBL_SHIFT 4
+
+#endif
--
2.25.1
3
4

[PATCH] ALSA: core: Simplify snd_power_ref_and_wait() with the standard macro
by Takashi Iwai 19 Jan '22
by Takashi Iwai 19 Jan '22
19 Jan '22
Use wait_event_cmd() macro and simplify snd_power_ref_wait()
implementation. This may also cover possible races in the current
open code, too.
Signed-off-by: Takashi Iwai <tiwai(a)suse.de>
---
sound/core/init.c | 25 +++++--------------------
1 file changed, 5 insertions(+), 20 deletions(-)
diff --git a/sound/core/init.c b/sound/core/init.c
index ac335f5906c6..31ba7024e3ad 100644
--- a/sound/core/init.c
+++ b/sound/core/init.c
@@ -1111,29 +1111,14 @@ EXPORT_SYMBOL(snd_card_file_remove);
*/
int snd_power_ref_and_wait(struct snd_card *card)
{
- wait_queue_entry_t wait;
- int result = 0;
-
snd_power_ref(card);
- /* fastpath */
if (snd_power_get_state(card) == SNDRV_CTL_POWER_D0)
return 0;
- init_waitqueue_entry(&wait, current);
- add_wait_queue(&card->power_sleep, &wait);
- while (1) {
- if (card->shutdown) {
- result = -ENODEV;
- break;
- }
- if (snd_power_get_state(card) == SNDRV_CTL_POWER_D0)
- break;
- snd_power_unref(card);
- set_current_state(TASK_UNINTERRUPTIBLE);
- schedule_timeout(30 * HZ);
- snd_power_ref(card);
- }
- remove_wait_queue(&card->power_sleep, &wait);
- return result;
+ wait_event_cmd(card->power_sleep,
+ card->shutdown ||
+ snd_power_get_state(card) == SNDRV_CTL_POWER_D0,
+ snd_power_unref(card), snd_power_ref(card));
+ return card->shutdown ? -ENODEV : 0;
}
EXPORT_SYMBOL_GPL(snd_power_ref_and_wait);
--
2.31.1
2
1

19 Jan '22
codec system clock source support 512FS MCLK synchronous directly, so
no need to set PLL configuration when MCLK 24.576MHz.
Suggested-by: Shuming Fan <shumingf(a)realtek.com>
Signed-off-by: Mac Chiang <mac.chiang(a)intel.com>
---
sound/soc/intel/boards/sof_rt5682.c | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/sound/soc/intel/boards/sof_rt5682.c b/sound/soc/intel/boards/sof_rt5682.c
index bd6d2e7dea53..a6efffc14cad 100644
--- a/sound/soc/intel/boards/sof_rt5682.c
+++ b/sound/soc/intel/boards/sof_rt5682.c
@@ -61,7 +61,6 @@
#define SOF_MAX98390_SPEAKER_AMP_PRESENT BIT(24)
#define SOF_MAX98390_TWEETER_SPEAKER_PRESENT BIT(25)
-
/* Default: MCLK on, MCLK 19.2M, SSP0 */
static unsigned long sof_rt5682_quirk = SOF_RT5682_MCLK_EN |
SOF_RT5682_SSP_CODEC(0);
@@ -362,6 +361,9 @@ static int sof_rt5682_hw_params(struct snd_pcm_substream *substream,
if (sof_rt5682_quirk & SOF_RT5682S_HEADPHONE_CODEC_PRESENT) {
pll_id = RT5682S_PLL2;
clk_id = RT5682S_SCLK_S_PLL2;
+
+ if (pll_in == 24576000)
+ clk_id = RT5682S_SCLK_S_MCLK;
} else {
pll_id = RT5682_PLL1;
clk_id = RT5682_SCLK_S_PLL1;
@@ -369,11 +371,14 @@ static int sof_rt5682_hw_params(struct snd_pcm_substream *substream,
pll_out = params_rate(params) * 512;
- /* Configure pll for codec */
- ret = snd_soc_dai_set_pll(codec_dai, pll_id, pll_source, pll_in,
- pll_out);
- if (ret < 0)
- dev_err(rtd->dev, "snd_soc_dai_set_pll err = %d\n", ret);
+ /* when MCLK is 512FS, no need to set PLL configuration additionally. */
+ if (pll_in != 24576000) {
+ /* Configure pll for codec */
+ ret = snd_soc_dai_set_pll(codec_dai, pll_id, pll_source, pll_in,
+ pll_out);
+ if (ret < 0)
+ dev_err(rtd->dev, "snd_soc_dai_set_pll err = %d\n", ret);
+ }
/* Configure sysclk for codec */
ret = snd_soc_dai_set_sysclk(codec_dai, clk_id,
--
2.20.1
4
3

[PATCH] ASoC: soc-pcm: use GFP_ATOMIC in dpcm_create_debugfs_state()
by Christophe JAILLET 19 Jan '22
by Christophe JAILLET 19 Jan '22
19 Jan '22
The commit below states that dpcm_be_connect() may be called from atomic
context. It changes a GFP_KERNEL into a GFP_ATOMIC to deal with it.
Another memory allocation is done in dpcm_create_debugfs_state() which is
called by dpcm_be_connect(). Also use GFP_ATOMIC there to be consistent
and be compliant with atomic context.
Fixes: d8a9c6e1f676 ("ASoC: soc-pcm: use GFP_ATOMIC for dpcm structure")
Signed-off-by: Christophe JAILLET <christophe.jaillet(a)wanadoo.fr>
---
Not clear to me how dpcm_be_connect() can be called from an atomic context,
though. But better safe than sorry.
---
sound/soc/soc-pcm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c
index 7abfc48b26ca..1a536a2b9dc3 100644
--- a/sound/soc/soc-pcm.c
+++ b/sound/soc/soc-pcm.c
@@ -212,7 +212,7 @@ static void dpcm_create_debugfs_state(struct snd_soc_dpcm *dpcm, int stream)
{
char *name;
- name = kasprintf(GFP_KERNEL, "%s:%s", dpcm->be->dai_link->name,
+ name = kasprintf(GFP_ATOMIC, "%s:%s", dpcm->be->dai_link->name,
stream ? "capture" : "playback");
if (name) {
dpcm->debugfs_state = debugfs_create_dir(
--
2.32.0
4
4

[PATCH v2 0/1] ALSA: hda/realtek: fix speakers and micmute on HP 855
by Alexander Sergeyev 19 Jan '22
by Alexander Sergeyev 19 Jan '22
19 Jan '22
Rebased and re-tested on the latest sound.git tree.
Alexander Sergeyev (1):
ALSA: hda/realtek: fix speakers and micmute on HP 855 G8
sound/pci/hda/patch_realtek.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
--
2.34.1
3
7
Hi.
The current snd-hda-intel/snd_hda_codec_realtek combo in the Linux kernel
does not appear to enable the S/PDIF (toslink, iec958) port on Intel's Hades
Canyon NUC. None of the current models/quirks changes this. To my knowledge.
(The physical port in question is a minijack/mini toslink combo port.)
I have found a number of people having the same issue with S/PDIF under
Linux, on this particular hardware. None of these people reporting being
able to find a solution, apart from a warm reboot into Linux from Windows.
Until ...
https://www.insanelymac.com/?app=core&module=system&controller=content&do=f…
So. cyber4o claims the BIOS is wrong, and came up with the patch=
solution first, then a modification to sound/pci/hda/patch_realtek.c
to avoid having to boot to windows first. (IIUIC). I have been able to
employ this solution and get the optical output enabled.
I have (until now) used model=dell-headset-multi to enable my headphones
with (on-wire) microphone in the front jack. (Kudos to arch-linux docs)
The suggested fix for the missing optical out didn't cover headset config,
so some modifications were needed. I'll freely admit to have very limited
knowledge of what I am doing. Monkey see, monkey do.
Anyways: I took cyber4o's solution and chained in the dell-headset-multi
fixup. I now have optical output, my headset and on-wire microphone works.
My current patch is below, and is purely intended as an illustration of
how to make this work.
I would be very happy if someone with an actual clue took the
patch below and beat it into shape acceptable for inclusion in the kernel.
Reading the forum post above may be wise, in case I have missed something.
Some things which still make me scratch my head:
- There is a slider named 'Digital' in the 'Capture' tab of alsamixer.
Not sure what it does.
- 'Headset Mic Boost', 'Headphone Mic Boost', 'Internal Mic Boost',
'Internal Mic Boost 1' all appear in *both* the 'Playback' *and*
'Capture' tabs of alsamixer. Is this on purpose? Bug in alsamixer?
- There is no 'Headset' output slider in the 'Playback' tab. I do have
'Headphone' and 'Line out', though. And Mic boost for both headset and
headphone. Not a problem, just ... 'asymmetrical'?
- Marketing materials name the jack in the rear as
'Stereo headphones/TOSLINK combo rear jack'. Can we pretend it doesn't
support a microphone (no idea...), and just name it (the copper
bits) Line-Out? Less confusion? Again, really no clue about where these
strings come from or what the 'correct' action is.
- Inserting the jack in the front does not automatically mute the (optical)
output in the back. Independent of the Auto-Mute state. Unsure if this
is a corner case not covered by current code or not. Auto-mute only
offers Enabled/Disabled here. (And not 'Disabled', 'Speaker Only' and
'Line-Out+Speaker'. I propose to mute S/PDIF together with Line Out.)
/lib/firmware/nuc.patch: (loaded by patch= parameter to snd-hda-intel)
[codec]
0x10ec0700 0x80862073 0
[pincfg]
0x1e 0x03441060
--- patch_realtek.c.orig 2021-12-10 21:07:29.324951606 -0000
+++ patch_realtek.c 2021-12-14 10:23:18.452173524 -0000
@@ -4669,6 +4669,12 @@
}
}
+static void alc700_fixup_nuc_spdif(struct hda_codec *codec,
+ const struct hda_fixup *fix, int action)
+{
+ snd_hda_override_wcaps(codec, 0x6, 0x611);
+}
+
/* Line2 = mic mute hotkey
* GPIO2 = mic mute LED
*/
@@ -6667,6 +6673,7 @@
ALC225_FIXUP_DELL_WYSE_MIC_NO_PRESENCE,
ALC225_FIXUP_S3_POP_NOISE,
ALC700_FIXUP_INTEL_REFERENCE,
+ ALC700_FIXUP_NUC_SPDIF,
ALC274_FIXUP_DELL_BIND_DACS,
ALC274_FIXUP_DELL_AIO_LINEOUT_VERB,
ALC298_FIXUP_TPT470_DOCK_FIX,
@@ -6975,6 +6982,12 @@
.chained = true,
.chain_id = ALC269_FIXUP_THINKPAD_ACPI,
},
+ [ALC700_FIXUP_NUC_SPDIF] = {
+ .type = HDA_FIXUP_FUNC,
+ .v.func = alc700_fixup_nuc_spdif,
+ .chained = true,
+ .chain_id = ALC269_FIXUP_DELL1_MIC_NO_PRESENCE,
+ },
[ALC269_FIXUP_DELL1_MIC_NO_PRESENCE] = {
.type = HDA_FIXUP_PINS,
.v.pins = (const struct hda_pintbl[]) {
@@ -8761,6 +8774,7 @@
SND_PCI_QUIRK(0x10cf, 0x1757, "Lifebook E752", ALC269_FIXUP_LIFEBOOK_HP_PIN),
SND_PCI_QUIRK(0x10cf, 0x1845, "Lifebook U904", ALC269_FIXUP_LIFEBOOK_EXTMIC),
SND_PCI_QUIRK(0x10ec, 0x10f2, "Intel Reference board", ALC700_FIXUP_INTEL_REFERENCE),
+ SND_PCI_QUIRK(0x10ec, 0x2073, "Intel NUC8 Hades Canyon", ALC700_FIXUP_NUC_SPDIF),
SND_PCI_QUIRK(0x10ec, 0x118c, "Medion EE4254 MD62100", ALC256_FIXUP_MEDION_HEADSET_NO_PRESENCE),
SND_PCI_QUIRK(0x10ec, 0x1230, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK),
SND_PCI_QUIRK(0x10ec, 0x1252, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK),
@@ -9024,6 +9038,7 @@
{.id = ALC298_FIXUP_TPT470_DOCK, .name = "tpt470-dock"},
{.id = ALC233_FIXUP_LENOVO_MULTI_CODECS, .name = "dual-codecs"},
{.id = ALC700_FIXUP_INTEL_REFERENCE, .name = "alc700-ref"},
+ {.id = ALC700_FIXUP_NUC_SPDIF, .name = "nuc-hc"},
{.id = ALC269_FIXUP_SONY_VAIO, .name = "vaio"},
{.id = ALC269_FIXUP_DELL_M101Z, .name = "dell-m101z"},
{.id = ALC269_FIXUP_ASUS_G73JW, .name = "asus-g73jw"},
1
0
On Sat, Jan 15, 2022 at 12:29:18PM +0530, Nandakumar Edamana wrote:
> Could compile and reload the module successfully, but the stuttering is
> still there.
Hi Nandakumar,
OK, my mistake, scratch that patch.
The codepath that activates Implicit Feedback when implicit_fb=1 is
passed to the module as an option is the same that should activate when
the quirk is in place.
Like I said, it's very strange that your device skips implicit feedback
when the quirk is in place, but can pick implicit feedback when
implicit_fb=1 is passed to the module as an option.
I've prepared some printk's hooked up to every codepath I can think of
that will skip implicit feedback. Please test and share your results,
always with dyndbg on.
--- implicit.c 2022-01-14 16:41:53.946606013 -0300
+++ implicit.c 2022-01-15 21:45:15.108655890 -0300
@@ -90,8 +90,10 @@ static int add_implicit_fb_sync_ep(struc
if (!alts) {
iface = usb_ifnum_to_if(chip->dev, ifnum);
- if (!iface || iface->num_altsetting < 2)
+ if (!iface || iface->num_altsetting < 2) {
+ printk(KERN_WARNING "implicit: add_implicit_fb_sync_ep(): not a usb_host_interface or less than 2 altsettings");
return 0;
+ }
alts = &iface->altsetting[1];
}
@@ -242,17 +244,23 @@ static int __add_generic_implicit_fb(str
struct usb_endpoint_descriptor *epd;
alts = snd_usb_get_host_interface(chip, iface, altset);
- if (!alts)
+ if (!alts) {
+ printk(KERN_WARNING "implicit: __add_generic_implicit_fb(): not a usb_host_interface");
return 0;
+ }
if ((alts->desc.bInterfaceClass != USB_CLASS_VENDOR_SPEC &&
alts->desc.bInterfaceClass != USB_CLASS_AUDIO) ||
- alts->desc.bNumEndpoints < 1)
+ alts->desc.bNumEndpoints < 1) {
+ printk(KERN_WARNING "implicit: __add_generic_implicit_fb(): no endpoints or wrong Interface Class");
return 0;
+ }
epd = get_endpoint(alts, 0);
if (!usb_endpoint_is_isoc_in(epd) ||
- (epd->bmAttributes & USB_ENDPOINT_SYNCTYPE) != USB_ENDPOINT_SYNC_ASYNC)
+ (epd->bmAttributes & USB_ENDPOINT_SYNCTYPE) != USB_ENDPOINT_SYNC_ASYNC) {
+ printk(KERN_WARNING "implicit: __add_generic_implicit_fb(): not Isochronous IN or not Asynchronous");
return 0;
+ }
return add_implicit_fb_sync_ep(chip, fmt, epd->bEndpointAddress, 0,
iface, alts);
}
@@ -262,8 +270,10 @@ static int add_generic_implicit_fb(struc
struct audioformat *fmt,
struct usb_host_interface *alts)
{
- if ((fmt->ep_attr & USB_ENDPOINT_SYNCTYPE) != USB_ENDPOINT_SYNC_ASYNC)
+ if ((fmt->ep_attr & USB_ENDPOINT_SYNCTYPE) != USB_ENDPOINT_SYNC_ASYNC) {
+ printk(KERN_WARNING "implicit: add_generic_implicit_fb(): not Asynchronous");
return 0;
+ }
if (__add_generic_implicit_fb(chip, fmt,
alts->desc.bInterfaceNumber + 1,
@@ -302,8 +312,10 @@ static int audioformat_implicit_fb_quirk
if (p) {
switch (p->type) {
case IMPLICIT_FB_GENERIC:
+ printk(KERN_WARNING "implicit: audioformat_implicit_fb_quirk(): matched GENERIC inside playback_implicit_fb_quirks[]");
return add_generic_implicit_fb(chip, fmt, alts);
case IMPLICIT_FB_NONE:
+ printk(KERN_WARNING "implicit: audioformat_implicit_fb_quirk(): matched SKIP_DEV inside playback_implicit_fb_quirks[]");
return 0; /* No quirk */
case IMPLICIT_FB_FIXED:
return add_implicit_fb_sync_ep(chip, fmt, p->ep_num, 0,
@@ -311,6 +323,10 @@ static int audioformat_implicit_fb_quirk
}
}
+ else {
+ printk(KERN_WARNING "implicit: audioformat_implicit_fb_quirk(): no matches found inside playback_implicit_fb_quirks[]");
+ }
+
/* Special handling for devices with capture quirks */
p = find_implicit_fb_entry(chip, capture_implicit_fb_quirks, alts);
if (p) {
@@ -354,6 +370,7 @@ static int audioformat_implicit_fb_quirk
return add_generic_implicit_fb(chip, fmt, alts);
/* No quirk */
+ printk(KERN_WARNING "implicit: audioformat_implicit_fb_quirk(): returning 0 because no quirk was found");
return 0;
}
2
2
From: Daniel Baluta <daniel.baluta(a)nxp.com>
Implement snd_compress_ops. There are a lot of similarities with
PCM implementation.
For now we use sof_ipc_pcm_params to transfer compress parameters to SOF
firmware.
This will be changed in the future once we either add new compress
parameters to SOF or enhance existing sof_ipc_pcm_params structure
to support all native compress params.
Signed-off-by: Daniel Baluta <daniel.baluta(a)nxp.com>
---
sound/soc/sof/compress.c | 270 ++++++++++++++++++++++++++++++++++++++-
sound/soc/sof/sof-priv.h | 6 +
2 files changed, 271 insertions(+), 5 deletions(-)
diff --git a/sound/soc/sof/compress.c b/sound/soc/sof/compress.c
index 01ca85f0b87f..2db1517d906d 100644
--- a/sound/soc/sof/compress.c
+++ b/sound/soc/sof/compress.c
@@ -10,6 +10,22 @@
#include "sof-audio.h"
#include "sof-priv.h"
+static void sof_set_transferred_bytes(struct sof_compr_stream *sstream,
+ u64 host_pos, u64 buffer_size)
+{
+ u64 prev_pos;
+ unsigned int copied;
+
+ div64_u64_rem(sstream->copied_total, buffer_size, &prev_pos);
+
+ if (host_pos < prev_pos)
+ copied = (buffer_size - prev_pos) + host_pos;
+ else
+ copied = host_pos - prev_pos;
+
+ sstream->copied_total += copied;
+}
+
static void snd_sof_compr_fragment_elapsed_work(struct work_struct *work)
{
struct snd_sof_pcm_stream *sps =
@@ -29,16 +45,16 @@ void snd_sof_compr_init_elapsed_work(struct work_struct *work)
*/
void snd_sof_compr_fragment_elapsed(struct snd_compr_stream *cstream)
{
- struct snd_soc_component *component;
- struct snd_soc_pcm_runtime *rtd;
+ struct snd_soc_pcm_runtime *rtd = cstream->private_data;
+ struct snd_compr_runtime *runtime = cstream->runtime;
+ struct sof_compr_stream *sstream = runtime->private_data;
+ struct snd_soc_component *component =
+ snd_soc_rtdcom_lookup(rtd, SOF_AUDIO_PCM_DRV_NAME);
struct snd_sof_pcm *spcm;
if (!cstream)
return;
- rtd = cstream->private_data;
- component = snd_soc_rtdcom_lookup(rtd, SOF_AUDIO_PCM_DRV_NAME);
-
spcm = snd_sof_find_spcm_dai(component, rtd);
if (!spcm) {
dev_err(component->dev,
@@ -46,6 +62,250 @@ void snd_sof_compr_fragment_elapsed(struct snd_compr_stream *cstream)
return;
}
+ sof_set_transferred_bytes(sstream, spcm->stream[cstream->direction].posn.host_posn,
+ runtime->buffer_size);
+
/* use the same workqueue-based solution as for PCM, cf. snd_sof_pcm_elapsed */
schedule_work(&spcm->stream[cstream->direction].period_elapsed_work);
}
+
+static int create_page_table(struct snd_soc_component *component,
+ struct snd_compr_stream *cstream,
+ unsigned char *dma_area, size_t size)
+{
+ struct snd_soc_pcm_runtime *rtd = cstream->private_data;
+ struct snd_dma_buffer *dmab = cstream->runtime->dma_buffer_p;
+ int dir = cstream->direction;
+ struct snd_sof_pcm *spcm;
+
+ spcm = snd_sof_find_spcm_dai(component, rtd);
+ if (!spcm)
+ return -EINVAL;
+
+ return snd_sof_create_page_table(component->dev, dmab,
+ spcm->stream[dir].page_table.area, size);
+}
+
+int sof_compr_open(struct snd_soc_component *component,
+ struct snd_compr_stream *cstream)
+{
+ struct snd_soc_pcm_runtime *rtd = cstream->private_data;
+ struct snd_compr_runtime *runtime = cstream->runtime;
+ struct sof_compr_stream *sstream;
+ struct snd_sof_pcm *spcm;
+ int dir;
+
+ sstream = kzalloc(sizeof(*sstream), GFP_KERNEL);
+ if (!sstream)
+ return -ENOMEM;
+
+ spcm = snd_sof_find_spcm_dai(component, rtd);
+ if (!spcm) {
+ kfree(sstream);
+ return -EINVAL;
+ }
+
+ dir = cstream->direction;
+
+ if (spcm->stream[dir].cstream) {
+ kfree(sstream);
+ return -EBUSY;
+ }
+
+ spcm->stream[dir].cstream = cstream;
+ spcm->stream[dir].posn.host_posn = 0;
+ spcm->stream[dir].posn.dai_posn = 0;
+ spcm->prepared[dir] = false;
+
+ runtime->private_data = sstream;
+
+ return 0;
+}
+
+int sof_compr_free(struct snd_soc_component *component,
+ struct snd_compr_stream *cstream)
+{
+ struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(component);
+ struct snd_soc_pcm_runtime *rtd = cstream->private_data;
+ struct snd_compr_runtime *runtime = cstream->runtime;
+ struct sof_compr_stream *sstream = runtime->private_data;
+ struct sof_ipc_stream stream;
+ struct sof_ipc_reply reply;
+ struct snd_sof_pcm *spcm;
+ int ret = 0;
+
+ spcm = snd_sof_find_spcm_dai(component, rtd);
+ if (!spcm)
+ return -EINVAL;
+
+ stream.hdr.size = sizeof(stream);
+ stream.hdr.cmd = SOF_IPC_GLB_STREAM_MSG | SOF_IPC_STREAM_PCM_FREE;
+ stream.comp_id = spcm->stream[cstream->direction].comp_id;
+
+ if (spcm->prepared[cstream->direction]) {
+ ret = sof_ipc_tx_message(sdev->ipc, stream.hdr.cmd,
+ &stream, sizeof(stream),
+ &reply, sizeof(reply));
+ if (!ret)
+ spcm->prepared[cstream->direction] = false;
+ }
+
+ cancel_work_sync(&spcm->stream[cstream->direction].period_elapsed_work);
+ spcm->stream[cstream->direction].cstream = NULL;
+ kfree(sstream);
+
+ return ret;
+}
+
+int sof_compr_set_params(struct snd_soc_component *component,
+ struct snd_compr_stream *cstream, struct snd_compr_params *params)
+{
+ struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(component);
+ struct snd_soc_pcm_runtime *rtd_pcm = cstream->private_data;
+ struct snd_compr_runtime *rtd = cstream->runtime;
+ struct sof_compr_stream *sstream = rtd->private_data;
+ struct sof_ipc_pcm_params_reply ipc_params_reply;
+ struct sof_ipc_pcm_params pcm;
+ struct snd_sof_pcm *spcm;
+ int ret;
+
+ spcm = snd_sof_find_spcm_dai(component, rtd_pcm);
+ if (!spcm)
+ return -EINVAL;
+
+ cstream->dma_buffer.dev.type = SNDRV_DMA_TYPE_DEV_SG;
+ cstream->dma_buffer.dev.dev = sdev->dev;
+ ret = snd_compr_malloc_pages(cstream, rtd->buffer_size);
+ if (ret < 0)
+ return ret;
+
+ create_page_table(component, cstream, rtd->dma_area, rtd->dma_bytes);
+
+ memset(&pcm, 0, sizeof(pcm));
+
+ pcm.params.buffer.pages = PFN_UP(rtd->dma_bytes);
+ pcm.hdr.size = sizeof(pcm);
+ pcm.hdr.cmd = SOF_IPC_GLB_STREAM_MSG | SOF_IPC_STREAM_PCM_PARAMS;
+
+ pcm.comp_id = spcm->stream[cstream->direction].comp_id;
+ pcm.params.hdr.size = sizeof(pcm.params);
+ pcm.params.buffer.phy_addr = spcm->stream[cstream->direction].page_table.addr;
+ pcm.params.buffer.size = rtd->dma_bytes;
+ pcm.params.direction = cstream->direction;
+ pcm.params.channels = params->codec.ch_out;
+ pcm.params.rate = params->codec.sample_rate;
+ pcm.params.buffer_fmt = SOF_IPC_BUFFER_INTERLEAVED;
+ pcm.params.frame_fmt = SOF_IPC_FRAME_S32_LE;
+ pcm.params.sample_container_bytes =
+ snd_pcm_format_physical_width(SNDRV_PCM_FORMAT_S32) >> 3;
+ pcm.params.host_period_bytes = params->buffer.fragment_size;
+
+ ret = sof_ipc_tx_message(sdev->ipc, pcm.hdr.cmd, &pcm, sizeof(pcm),
+ &ipc_params_reply, sizeof(ipc_params_reply));
+ if (ret < 0) {
+ dev_err(component->dev, "error ipc failed\n");
+ return ret;
+ }
+
+ sstream->posn_offset = sdev->stream_box.offset + ipc_params_reply.posn_offset;
+ sstream->sample_rate = params->codec.sample_rate;
+ spcm->prepared[cstream->direction] = true;
+
+ return 0;
+}
+
+int sof_compr_get_params(struct snd_soc_component *component,
+ struct snd_compr_stream *cstream, struct snd_codec *params)
+{
+ return 0;
+}
+
+int sof_compr_trigger(struct snd_soc_component *component,
+ struct snd_compr_stream *cstream, int cmd)
+{
+ struct sof_ipc_stream stream;
+ struct sof_ipc_reply reply;
+ struct snd_soc_pcm_runtime *rtd = cstream->private_data;
+ struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(component);
+ struct snd_sof_pcm *spcm;
+
+ spcm = snd_sof_find_spcm_dai(component, rtd);
+ if (!spcm)
+ return -EINVAL;
+
+ stream.hdr.size = sizeof(stream);
+ stream.hdr.cmd = SOF_IPC_GLB_STREAM_MSG;
+ stream.comp_id = spcm->stream[cstream->direction].comp_id;
+
+ switch (cmd) {
+ case SNDRV_PCM_TRIGGER_START:
+ stream.hdr.cmd |= SOF_IPC_STREAM_TRIG_START;
+ break;
+ case SNDRV_PCM_TRIGGER_STOP:
+ stream.hdr.cmd |= SOF_IPC_STREAM_TRIG_STOP;
+ break;
+ case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
+ stream.hdr.cmd |= SOF_IPC_STREAM_TRIG_PAUSE;
+ break;
+ case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
+ stream.hdr.cmd |= SOF_IPC_STREAM_TRIG_RELEASE;
+ break;
+ default:
+ dev_err(component->dev, "error: unhandled trigger cmd %d\n", cmd);
+ break;
+ }
+
+ return sof_ipc_tx_message(sdev->ipc, stream.hdr.cmd,
+ &stream, sizeof(stream),
+ &reply, sizeof(reply));
+}
+
+int sof_compr_copy(struct snd_soc_component *component,
+ struct snd_compr_stream *cstream,
+ char __user *buf, size_t count)
+{
+ struct snd_compr_runtime *rtd = cstream->runtime;
+ unsigned int offset, n;
+ void *ptr;
+ int ret;
+
+ if (count > rtd->buffer_size)
+ count = rtd->buffer_size;
+
+ div_u64_rem(rtd->total_bytes_available, rtd->buffer_size, &offset);
+ ptr = rtd->dma_area + offset;
+ n = rtd->buffer_size - offset;
+
+ if (count < n) {
+ ret = copy_from_user(ptr, buf, count);
+ } else {
+ ret = copy_from_user(ptr, buf, n);
+ ret += copy_from_user(rtd->dma_area, buf + n, count - n);
+ }
+
+ return count - ret;
+}
+
+static int sof_compr_pointer(struct snd_soc_component *component,
+ struct snd_compr_stream *cstream,
+ struct snd_compr_tstamp *tstamp)
+{
+ struct snd_compr_runtime *runtime = cstream->runtime;
+ struct sof_compr_stream *sstream = runtime->private_data;
+
+ tstamp->sampling_rate = sstream->sample_rate;
+ tstamp->copied_total = sstream->copied_total;
+
+ return 0;
+}
+
+struct snd_compress_ops sof_compressed_ops = {
+ .open = sof_compr_open,
+ .free = sof_compr_free,
+ .set_params = sof_compr_set_params,
+ .get_params = sof_compr_get_params,
+ .trigger = sof_compr_trigger,
+ .pointer = sof_compr_pointer,
+ .copy = sof_compr_copy,
+};
+EXPORT_SYMBOL(sof_compressed_ops);
diff --git a/sound/soc/sof/sof-priv.h b/sound/soc/sof/sof-priv.h
index 087935192ce8..d001a762a866 100644
--- a/sound/soc/sof/sof-priv.h
+++ b/sound/soc/sof/sof-priv.h
@@ -108,6 +108,12 @@ enum sof_debugfs_access_type {
SOF_DEBUGFS_ACCESS_D0_ONLY,
};
+struct sof_compr_stream {
+ unsigned int copied_total;
+ unsigned int sample_rate;
+ size_t posn_offset;
+};
+
struct snd_sof_dev;
struct snd_sof_ipc_msg;
struct snd_sof_ipc;
--
2.27.0
4
4

18 Jan '22
When SND_SOC_AMD_YC_MACH is selected,
and GPIOLIB is not selected,
Kbuild gives the following warning:
WARNING: unmet direct dependencies detected for SND_SOC_DMIC
Depends on [n]: SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && GPIOLIB [=n]
Selected by [y]:
- SND_SOC_AMD_YC_MACH [=y] && SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && SND_SOC_AMD_ACP6x [=y]
This is because SND_SOC_AMD_YC_MACH selects SND_SOC_DMIC,
without selecting or depending on GPIOLIB, despite
SND_SOC_DMIC depending on GPIOLIB.
This unmet dependency bug was detected by Kismet,
a static analysis tool for Kconfig. Please advise
if this is not the appropriate solution.
Signed-off-by: Julian Braha <julianbraha(a)gmail.com>
---
sound/soc/amd/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/soc/amd/Kconfig b/sound/soc/amd/Kconfig
index 7a9e45094f37..4aa067c5f054 100644
--- a/sound/soc/amd/Kconfig
+++ b/sound/soc/amd/Kconfig
@@ -88,7 +88,7 @@ config SND_SOC_AMD_ACP6x
config SND_SOC_AMD_YC_MACH
tristate "AMD YC support for DMIC"
select SND_SOC_DMIC
- depends on SND_SOC_AMD_ACP6x
+ depends on SND_SOC_AMD_ACP6x && GPIOLIB
help
This option enables machine driver for Yellow Carp platform
using dmic. ACP IP has PDM Decoder block with DMA controller.
--
2.32.0
3
3

[PATCH] ASoC: au1x: fix unmet dependency on SND_SOC_I2C_AND_SPI for SND_SOC_WM8731
by Julian Braha 18 Jan '22
by Julian Braha 18 Jan '22
18 Jan '22
When SND_SOC_DB1200 is selected,
and SND_SOC_I2C_AND_SPI is not selected,
Kbuild gives the following warning:
WARNING: unmet direct dependencies detected for SND_SOC_WM8731
Depends on [n]: SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && SND_SOC_I2C_AND_SPI [=n]
Selected by [y]:
- SND_SOC_DB1200 [=y] && SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && SND_SOC_AU1XPSC [=y]
This is because SND_SOC_DB1200 selects
SND_SOC_WM8731 without selecting or depending on
SND_SOC_I2C_AND_SPI, despite SND_SOC_WM8731
depending on SND_SOC_I2C_AND_SPI.
This unmet dependency bug was detected by Kismet,
a static analysis tool for Kconfig. Please advise
if this is not the appropriate solution.
Signed-off-by: Julian Braha <julianbraha(a)gmail.com>
---
sound/soc/au1x/Kconfig | 1 +
1 file changed, 1 insertion(+)
diff --git a/sound/soc/au1x/Kconfig b/sound/soc/au1x/Kconfig
index 38de7c0efbc7..3dccdfddbf9d 100644
--- a/sound/soc/au1x/Kconfig
+++ b/sound/soc/au1x/Kconfig
@@ -54,6 +54,7 @@ config SND_SOC_DB1000
config SND_SOC_DB1200
tristate "DB1200/DB1300/DB1550 Audio support"
depends on SND_SOC_AU1XPSC
+ depends on SND_SOC_I2C_AND_SPI
select SND_SOC_AU1XPSC_AC97
select SND_SOC_AC97_CODEC
select SND_SOC_WM9712
--
2.32.0
2
1

18 Jan '22
Up to now cs35l41_hda_remove() returns zero unconditionally. Make it
return void instead which makes it easier to see in the callers that
there is no error to handle.
Also the return value of i2c and spi remove callbacks is ignored anyway.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig(a)pengutronix.de>
---
sound/pci/hda/cs35l41_hda.c | 4 +---
sound/pci/hda/cs35l41_hda.h | 2 +-
sound/pci/hda/cs35l41_hda_i2c.c | 4 +++-
sound/pci/hda/cs35l41_hda_spi.c | 4 +++-
4 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/sound/pci/hda/cs35l41_hda.c b/sound/pci/hda/cs35l41_hda.c
index 30b40d865863..ce3782826830 100644
--- a/sound/pci/hda/cs35l41_hda.c
+++ b/sound/pci/hda/cs35l41_hda.c
@@ -508,7 +508,7 @@ int cs35l41_hda_probe(struct device *dev, const char *device_name, int id, int i
}
EXPORT_SYMBOL_GPL(cs35l41_hda_probe);
-int cs35l41_hda_remove(struct device *dev)
+void cs35l41_hda_remove(struct device *dev)
{
struct cs35l41_hda *cs35l41 = dev_get_drvdata(dev);
@@ -517,8 +517,6 @@ int cs35l41_hda_remove(struct device *dev)
if (!cs35l41->vspk_always_on)
gpiod_set_value_cansleep(cs35l41->reset_gpio, 0);
gpiod_put(cs35l41->reset_gpio);
-
- return 0;
}
EXPORT_SYMBOL_GPL(cs35l41_hda_remove);
diff --git a/sound/pci/hda/cs35l41_hda.h b/sound/pci/hda/cs35l41_hda.h
index 76c69a8a22f6..8ecaddf5f132 100644
--- a/sound/pci/hda/cs35l41_hda.h
+++ b/sound/pci/hda/cs35l41_hda.h
@@ -64,6 +64,6 @@ struct cs35l41_hda {
int cs35l41_hda_probe(struct device *dev, const char *device_name, int id, int irq,
struct regmap *regmap);
-int cs35l41_hda_remove(struct device *dev);
+void cs35l41_hda_remove(struct device *dev);
#endif /*__CS35L41_HDA_H__*/
diff --git a/sound/pci/hda/cs35l41_hda_i2c.c b/sound/pci/hda/cs35l41_hda_i2c.c
index 4a9462fb5c14..d4240b8ded10 100644
--- a/sound/pci/hda/cs35l41_hda_i2c.c
+++ b/sound/pci/hda/cs35l41_hda_i2c.c
@@ -32,7 +32,9 @@ static int cs35l41_hda_i2c_probe(struct i2c_client *clt, const struct i2c_device
static int cs35l41_hda_i2c_remove(struct i2c_client *clt)
{
- return cs35l41_hda_remove(&clt->dev);
+ cs35l41_hda_remove(&clt->dev);
+
+ return 0;
}
static const struct i2c_device_id cs35l41_hda_i2c_id[] = {
diff --git a/sound/pci/hda/cs35l41_hda_spi.c b/sound/pci/hda/cs35l41_hda_spi.c
index 77426e96c58f..d63c487bc3a9 100644
--- a/sound/pci/hda/cs35l41_hda_spi.c
+++ b/sound/pci/hda/cs35l41_hda_spi.c
@@ -30,7 +30,9 @@ static int cs35l41_hda_spi_probe(struct spi_device *spi)
static int cs35l41_hda_spi_remove(struct spi_device *spi)
{
- return cs35l41_hda_remove(&spi->dev);
+ cs35l41_hda_remove(&spi->dev);
+
+ return 0;
}
static const struct spi_device_id cs35l41_hda_spi_id[] = {
base-commit: 0c947b893d69231a9add855939da7c66237ab44f
--
2.34.1
3
4

18 Jan '22
From: Charles Keepax <ckeepax(a)opensource.cirrus.com>
regmap_register_patch can't be used to apply the probe sequence as a
patch is already registers with the regmap by
cs35l41_register_errata_patch and only a single patch can be attached to
a single regmap. The driver doesn't currently rely on a cache sync to
re-apply this probe sequence so simply switch it to a multi write.
Fixes: 7b2f3eb492da ("ALSA: hda: cs35l41: Add support for CS35L41 in HDA systems")
Signed-off-by: Charles Keepax <ckeepax(a)opensource.cirrus.com>
Signed-off-by: Lucas Tanure <tanureal(a)opensource.cirrus.com>
---
V2: Add Fixes tag
---
sound/pci/hda/cs35l41_hda.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/pci/hda/cs35l41_hda.c b/sound/pci/hda/cs35l41_hda.c
index 30b40d865863..c47c5f0b4e59 100644
--- a/sound/pci/hda/cs35l41_hda.c
+++ b/sound/pci/hda/cs35l41_hda.c
@@ -480,7 +480,7 @@ int cs35l41_hda_probe(struct device *dev, const char *device_name, int id, int i
acpi_hw_cfg = NULL;
if (cs35l41->reg_seq->probe) {
- ret = regmap_register_patch(cs35l41->regmap, cs35l41->reg_seq->probe,
+ ret = regmap_multi_reg_write(cs35l41->regmap, cs35l41->reg_seq->probe,
cs35l41->reg_seq->num_probe);
if (ret) {
dev_err(cs35l41->dev, "Fail to apply probe reg patch: %d\n", ret);
--
2.34.1
2
6
From: Allen-KH Cheng <Allen-KH.Cheng(a)mediatek.com>
Mediatek ADSP IPC is used to send notification or short message
between processors with dsp. It will place the message to the
share buffer and will access the ADSP mailbox registers to kick
dsp. Two mailboxes used to send notification or short message
between processors with dsp
changes since v14:
- add paragraphs to describe the config symbols fully
changes since v14:
- add inline for get_mtk_adsp_mbox_priv
changes since v13:
- rebase on v5.16-rc8
- add back ptr check from of_device_get_match_data
changes since v12:
- remove of_device_get_match_data ptr check:
of_device_get_match_data(dev) will never going to return NULL.
driver probe with compatible mediatek,mt8195-adsp-mbox.
changes since v11:
- remove useless MODULE_LICENSE
changes since v10:
- split up v9 into two separate submissions
changes since v9:
- rename adsp_mbox_chan_ops to mtk_adsp_mbox_chan_ops
changes since v8:
- remove struct adsp_mbox_ch_info
- add get_mtk_adsp_mbox_priv
- use mtk_adsp_mbox_priv va_mboxreg address in adsp mbox driver
- add struct mtk_adsp_mbox_cfg for DSP mbox register offset
- remove adsp mbox register offset hard code define
- remove mtk-adsp-ipc.h reference in adsp mbox driver
changes since v7:
- add mtk prefix for adsp ipc functions
- rename adsp_mbox_ch_info to mtk_adsp_mbox_ch_info
- remove incorrect reviewers in commit message
changes since v6:
- dt-bindings: change example dtsi node.
- rename config MTK_ADSP_IPC_MBOX to MTK_ADSP_MBOX
- remove unused variable
- add reviewers
changes since v5:
- remove some redundant code
changes since v4:
- use switch ... case in adsp_ipc_recv
- add error handling path for chan_name pointer
- refine some code to be concise
changes since v3:
- reorder MTK_ADSP_IPC_MBOX config
- remove some redundant code
- remove lock in mtk-adsp-mailbox
changes since v2:
- separate adsp_mailbox into two instances
changes since v1:
- fix dt_binding_check error
Allen-KH Cheng (2):
dt-bindings: mediatek: add adsp-mbox document
mailbox: mediatek: add support for adsp mailbox controller
.../bindings/mailbox/mtk,adsp-mbox.yaml | 52 ++++++
drivers/mailbox/Kconfig | 9 +
drivers/mailbox/Makefile | 2 +
drivers/mailbox/mtk-adsp-mailbox.c | 175 ++++++++++++++++++
4 files changed, 238 insertions(+)
create mode 100644 Documentation/devicetree/bindings/mailbox/mtk,adsp-mbox.yaml
create mode 100644 drivers/mailbox/mtk-adsp-mailbox.c
--
2.18.0
1
2
From: Allen-KH Cheng <Allen-KH.Cheng(a)mediatek.com>
This patch provides mtk adsp ipc support for sof.
ADSP IPC protocol offers (send/recv) interfaces using
mediatek-mailbox APIs.
changes since v4:
- add error message for wrong mbox chan
changes since v3:
- rebase on v5.16-rc8
- update reviewers
changes since v2:
- add out tag for two memory free phases
changes since v1:
- add comments for mtk_adsp_ipc_send and mtk_adsp_ipc_recv
- remove useless MODULE_LICENSE
- change label name to out_free
Allen-KH Cheng (1):
firmware: mediatek: add adsp ipc protocol interface
drivers/firmware/Kconfig | 1 +
drivers/firmware/Makefile | 1 +
drivers/firmware/mediatek/Kconfig | 9 +
drivers/firmware/mediatek/Makefile | 2 +
drivers/firmware/mediatek/mtk-adsp-ipc.c | 160 ++++++++++++++++++
.../linux/firmware/mediatek/mtk-adsp-ipc.h | 65 +++++++
6 files changed, 238 insertions(+)
create mode 100644 drivers/firmware/mediatek/Kconfig
create mode 100644 drivers/firmware/mediatek/Makefile
create mode 100644 drivers/firmware/mediatek/mtk-adsp-ipc.c
create mode 100644 include/linux/firmware/mediatek/mtk-adsp-ipc.h
--
2.18.0
1
1

[PATCH] CHROMIUM:ASOC: amd: Add Machine driver Support for rt5682s codec
by V sujith kumar Reddy 17 Jan '22
by V sujith kumar Reddy 17 Jan '22
17 Jan '22
Add sound card support with rt5682s as headset codec and max98357 as
speaker amp codec on Raven based chrome platform
Signed-off-by: V sujith kumar Reddy <vsujithkumar.reddy(a)amd.com>
---
sound/soc/amd/Kconfig | 1 +
sound/soc/amd/acp3x-rt5682-max9836.c | 111 ++++++++++++++++++++++++++-
2 files changed, 111 insertions(+), 1 deletion(-)
diff --git a/sound/soc/amd/Kconfig b/sound/soc/amd/Kconfig
index 7a9e45094f37..5eb855eb4b7e 100644
--- a/sound/soc/amd/Kconfig
+++ b/sound/soc/amd/Kconfig
@@ -36,6 +36,7 @@ config SND_SOC_AMD_RV_RT5682_MACH
select SND_SOC_MAX98357A
select SND_SOC_CROS_EC_CODEC
select I2C_CROS_EC_TUNNEL
+ select SND_SOC_RT5682S
select SND_SOC_RT1015
select SND_SOC_RT1015P
depends on SND_SOC_AMD_ACP3x && I2C && CROS_EC && GPIOLIB
diff --git a/sound/soc/amd/acp3x-rt5682-max9836.c b/sound/soc/amd/acp3x-rt5682-max9836.c
index dad70436d063..9b74b2a8da26 100644
--- a/sound/soc/amd/acp3x-rt5682-max9836.c
+++ b/sound/soc/amd/acp3x-rt5682-max9836.c
@@ -20,6 +20,7 @@
#include <linux/acpi.h>
#include "raven/acp3x.h"
+#include "../codecs/rt5682s.h"
#include "../codecs/rt5682.h"
#include "../codecs/rt1015.h"
@@ -39,6 +40,77 @@ enum {
EC,
};
+static int acp3x_5682s_init(struct snd_soc_pcm_runtime *rtd)
+{
+ int ret;
+ struct snd_soc_card *card = rtd->card;
+ struct snd_soc_dai *codec_dai = asoc_rtd_to_codec(rtd, 0);
+ struct snd_soc_component *component = codec_dai->component;
+
+ dev_info(rtd->dev, "codec dai name = %s\n", codec_dai->name);
+
+ /* set rt5682s dai fmt */
+ ret = snd_soc_dai_set_fmt(codec_dai, SND_SOC_DAIFMT_I2S
+ | SND_SOC_DAIFMT_NB_NF
+ | SND_SOC_DAIFMT_CBM_CFM);
+ if (ret < 0) {
+ dev_err(rtd->card->dev,
+ "Failed to set rt5682s dai fmt: %d\n", ret);
+ return ret;
+ }
+
+ /* set codec PLL */
+ ret = snd_soc_dai_set_pll(codec_dai, RT5682S_PLL2, RT5682S_PLL_S_MCLK,
+ PCO_PLAT_CLK, RT5682_PLL_FREQ);
+ if (ret < 0) {
+ dev_err(rtd->dev, "can't set rt5682s PLL: %d\n", ret);
+ return ret;
+ }
+
+ /* Set codec sysclk */
+ ret = snd_soc_dai_set_sysclk(codec_dai, RT5682S_SCLK_S_PLL2,
+ RT5682_PLL_FREQ, SND_SOC_CLOCK_IN);
+ if (ret < 0) {
+ dev_err(rtd->dev,
+ "Failed to set rt5682s SYSCLK: %d\n", ret);
+ return ret;
+ }
+
+ /* Set tdm/i2s1 master bclk ratio */
+ ret = snd_soc_dai_set_bclk_ratio(codec_dai, 64);
+ if (ret < 0) {
+ dev_err(rtd->dev,
+ "Failed to set rt5682s tdm bclk ratio: %d\n", ret);
+ return ret;
+ }
+
+ rt5682_dai_wclk = clk_get(component->dev, "rt5682-dai-wclk");
+ rt5682_dai_bclk = clk_get(component->dev, "rt5682-dai-bclk");
+
+ ret = snd_soc_card_jack_new(card, "Headset Jack",
+ SND_JACK_HEADSET | SND_JACK_LINEOUT |
+ SND_JACK_BTN_0 | SND_JACK_BTN_1 |
+ SND_JACK_BTN_2 | SND_JACK_BTN_3,
+ &pco_jack, NULL, 0);
+ if (ret) {
+ dev_err(card->dev, "HP jack creation failed %d\n", ret);
+ return ret;
+ }
+
+ snd_jack_set_key(pco_jack.jack, SND_JACK_BTN_0, KEY_PLAYPAUSE);
+ snd_jack_set_key(pco_jack.jack, SND_JACK_BTN_1, KEY_VOICECOMMAND);
+ snd_jack_set_key(pco_jack.jack, SND_JACK_BTN_2, KEY_VOLUMEUP);
+ snd_jack_set_key(pco_jack.jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN);
+
+ ret = snd_soc_component_set_jack(component, &pco_jack, NULL);
+ if (ret) {
+ dev_err(rtd->dev, "Headset Jack call-back failed: %d\n", ret);
+ return ret;
+ }
+
+ return ret;
+}
+
static int acp3x_5682_init(struct snd_soc_pcm_runtime *rtd)
{
int ret;
@@ -271,6 +343,8 @@ SND_SOC_DAILINK_DEF(acp3x_i2s,
SND_SOC_DAILINK_DEF(acp3x_bt,
DAILINK_COMP_ARRAY(COMP_CPU("acp3x_i2s_playcap.2")));
+SND_SOC_DAILINK_DEF(rt5682s,
+ DAILINK_COMP_ARRAY(COMP_CODEC("i2c-RTL5682:00", "rt5682s-aif1")));
SND_SOC_DAILINK_DEF(rt5682,
DAILINK_COMP_ARRAY(COMP_CODEC("i2c-10EC5682:00", "rt5682-aif1")));
SND_SOC_DAILINK_DEF(max,
@@ -458,6 +532,19 @@ static struct snd_soc_card acp3x_1015p = {
.num_controls = ARRAY_SIZE(acp3x_mc_1015p_controls),
};
+static struct snd_soc_card acp3x_5682s = {
+ .name = "acp3xrt5682s98357",
+ .owner = THIS_MODULE,
+ .dai_link = acp3x_dai,
+ .num_links = ARRAY_SIZE(acp3x_dai),
+ .dapm_widgets = acp3x_1015p_widgets,
+ .num_dapm_widgets = ARRAY_SIZE(acp3x_1015p_widgets),
+ .dapm_routes = acp3x_1015p_route,
+ .num_dapm_routes = ARRAY_SIZE(acp3x_1015p_route),
+ .controls = acp3x_mc_1015p_controls,
+ .num_controls = ARRAY_SIZE(acp3x_mc_1015p_controls),
+};
+
void *soc_is_rltk_max(struct device *dev)
{
const struct acpi_device_id *match;
@@ -468,6 +555,27 @@ void *soc_is_rltk_max(struct device *dev)
return (void *)match->driver_data;
}
+static void card_hs_dai_link_present(struct snd_soc_dai_link *links,
+ const char *card_name)
+{
+ if (!strcmp(card_name, "acp3xrt5682s98357")) {
+ links[0].name = "acp3x-5682s-play";
+ links[0].stream_name = "Playback";
+ links[0].dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
+ SND_SOC_DAIFMT_CBM_CFM;
+
+ links[0].codecs = rt5682s;
+ links[0].num_codecs = ARRAY_SIZE(rt5682s);
+ links[0].init = acp3x_5682s_init;
+ links[0].dpcm_playback = 1;
+ links[0].dpcm_capture = 1;
+ links[0].cpus = acp3x_i2s;
+ links[0].num_cpus = ARRAY_SIZE(acp3x_i2s);
+ links[0].platforms = platform;
+ links[0].num_platforms = ARRAY_SIZE(platform);
+ }
+}
+
static void card_spk_dai_link_present(struct snd_soc_dai_link *links,
const char *card_name)
{
@@ -497,7 +605,7 @@ static int acp3x_probe(struct platform_device *pdev)
machine = devm_kzalloc(&pdev->dev, sizeof(*machine), GFP_KERNEL);
if (!machine)
return -ENOMEM;
-
+ card_hs_dai_link_present(card->dai_link, card->name);
card_spk_dai_link_present(card->dai_link, card->name);
card->dev = &pdev->dev;
platform_set_drvdata(pdev, card);
@@ -523,6 +631,7 @@ static const struct acpi_device_id acp3x_audio_acpi_match[] = {
{ "AMDI5682", (unsigned long)&acp3x_5682},
{ "AMDI1015", (unsigned long)&acp3x_1015},
{ "10021015", (unsigned long)&acp3x_1015p},
+ { "10029835", (unsigned long)&acp3x_5682s},
{},
};
MODULE_DEVICE_TABLE(acpi, acp3x_audio_acpi_match);
--
2.25.1
2
1

17 Jan '22
From: Takashi Iwai <tiwai(a)suse.de>
[ Upstream commit 6fadb494a638d8b8a55864ecc6ac58194f03f327 ]
Currently ALSA sequencer core tries to process the queued events as
much as possible when they become dispatchable. If applications try
to queue too massive events to be processed at the very same timing,
the sequencer core would still try to process such all events, either
in the interrupt context or via some notifier; in either away, it
might be a cause of RCU stall or such problems.
As a potential workaround for those problems, this patch adds the
upper limit of the amount of events to be processed. The remaining
events are processed in the next batch, so they won't be lost.
For the time being, it's limited up to 1000 events per queue, which
should be high enough for any normal usages.
Reported-by: Zqiang <qiang.zhang1211(a)gmail.com>
Reported-by: syzbot+bb950e68b400ab4f65f8(a)syzkaller.appspotmail.com
Link: https://lore.kernel.org/r/20211102033222.3849-1-qiang.zhang1211@gmail.com
Link: https://lore.kernel.org/r/20211207165146.2888-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai(a)suse.de>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
---
sound/core/seq/seq_queue.c | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/sound/core/seq/seq_queue.c b/sound/core/seq/seq_queue.c
index ea1aa07962761..b923059a22276 100644
--- a/sound/core/seq/seq_queue.c
+++ b/sound/core/seq/seq_queue.c
@@ -257,12 +257,15 @@ struct snd_seq_queue *snd_seq_queue_find_name(char *name)
/* -------------------------------------------------------- */
+#define MAX_CELL_PROCESSES_IN_QUEUE 1000
+
void snd_seq_check_queue(struct snd_seq_queue *q, int atomic, int hop)
{
unsigned long flags;
struct snd_seq_event_cell *cell;
snd_seq_tick_time_t cur_tick;
snd_seq_real_time_t cur_time;
+ int processed = 0;
if (q == NULL)
return;
@@ -285,6 +288,8 @@ void snd_seq_check_queue(struct snd_seq_queue *q, int atomic, int hop)
if (!cell)
break;
snd_seq_dispatch_event(cell, atomic, hop);
+ if (++processed >= MAX_CELL_PROCESSES_IN_QUEUE)
+ goto out; /* the rest processed at the next batch */
}
/* Process time queue... */
@@ -294,14 +299,19 @@ void snd_seq_check_queue(struct snd_seq_queue *q, int atomic, int hop)
if (!cell)
break;
snd_seq_dispatch_event(cell, atomic, hop);
+ if (++processed >= MAX_CELL_PROCESSES_IN_QUEUE)
+ goto out; /* the rest processed at the next batch */
}
+ out:
/* free lock */
spin_lock_irqsave(&q->check_lock, flags);
if (q->check_again) {
q->check_again = 0;
- spin_unlock_irqrestore(&q->check_lock, flags);
- goto __again;
+ if (processed < MAX_CELL_PROCESSES_IN_QUEUE) {
+ spin_unlock_irqrestore(&q->check_lock, flags);
+ goto __again;
+ }
}
q->check_blocked = 0;
spin_unlock_irqrestore(&q->check_lock, flags);
--
2.34.1
1
0

17 Jan '22
From: Tzung-Bi Shih <tzungbi(a)google.com>
[ Upstream commit 493433785df0075afc0c106ab65f10a605d0b35d ]
Fixes the device_node leak.
Signed-off-by: Tzung-Bi Shih <tzungbi(a)google.com>
Link: https://lore.kernel.org/r/20211224064719.2031210-2-tzungbi@google.com
Signed-off-by: Mark Brown <broonie(a)kernel.org>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
---
sound/soc/mediatek/mt8173/mt8173-max98090.c | 3 +++
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c | 2 ++
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c | 2 ++
sound/soc/mediatek/mt8173/mt8173-rt5650.c | 2 ++
4 files changed, 9 insertions(+)
diff --git a/sound/soc/mediatek/mt8173/mt8173-max98090.c b/sound/soc/mediatek/mt8173/mt8173-max98090.c
index 5524a2c727ec7..cab30cb48366d 100644
--- a/sound/soc/mediatek/mt8173/mt8173-max98090.c
+++ b/sound/soc/mediatek/mt8173/mt8173-max98090.c
@@ -183,6 +183,9 @@ static int mt8173_max98090_dev_probe(struct platform_device *pdev)
if (ret)
dev_err(&pdev->dev, "%s snd_soc_register_card fail %d\n",
__func__, ret);
+
+ of_node_put(codec_node);
+ of_node_put(platform_node);
return ret;
}
diff --git a/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c b/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c
index 467f7049a2886..52fdd766ee82c 100644
--- a/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c
+++ b/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c
@@ -228,6 +228,8 @@ static int mt8173_rt5650_rt5514_dev_probe(struct platform_device *pdev)
if (ret)
dev_err(&pdev->dev, "%s snd_soc_register_card fail %d\n",
__func__, ret);
+
+ of_node_put(platform_node);
return ret;
}
diff --git a/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c b/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c
index 1b8b2a7788450..5d75b04f074fe 100644
--- a/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c
+++ b/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c
@@ -285,6 +285,8 @@ static int mt8173_rt5650_rt5676_dev_probe(struct platform_device *pdev)
if (ret)
dev_err(&pdev->dev, "%s snd_soc_register_card fail %d\n",
__func__, ret);
+
+ of_node_put(platform_node);
return ret;
}
diff --git a/sound/soc/mediatek/mt8173/mt8173-rt5650.c b/sound/soc/mediatek/mt8173/mt8173-rt5650.c
index ba65f4157a7e0..d02a90201b13b 100644
--- a/sound/soc/mediatek/mt8173/mt8173-rt5650.c
+++ b/sound/soc/mediatek/mt8173/mt8173-rt5650.c
@@ -317,6 +317,8 @@ static int mt8173_rt5650_dev_probe(struct platform_device *pdev)
if (ret)
dev_err(&pdev->dev, "%s snd_soc_register_card fail %d\n",
__func__, ret);
+
+ of_node_put(platform_node);
return ret;
}
--
2.34.1
1
0

17 Jan '22
From: Takashi Iwai <tiwai(a)suse.de>
[ Upstream commit 6fadb494a638d8b8a55864ecc6ac58194f03f327 ]
Currently ALSA sequencer core tries to process the queued events as
much as possible when they become dispatchable. If applications try
to queue too massive events to be processed at the very same timing,
the sequencer core would still try to process such all events, either
in the interrupt context or via some notifier; in either away, it
might be a cause of RCU stall or such problems.
As a potential workaround for those problems, this patch adds the
upper limit of the amount of events to be processed. The remaining
events are processed in the next batch, so they won't be lost.
For the time being, it's limited up to 1000 events per queue, which
should be high enough for any normal usages.
Reported-by: Zqiang <qiang.zhang1211(a)gmail.com>
Reported-by: syzbot+bb950e68b400ab4f65f8(a)syzkaller.appspotmail.com
Link: https://lore.kernel.org/r/20211102033222.3849-1-qiang.zhang1211@gmail.com
Link: https://lore.kernel.org/r/20211207165146.2888-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai(a)suse.de>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
---
sound/core/seq/seq_queue.c | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/sound/core/seq/seq_queue.c b/sound/core/seq/seq_queue.c
index ea1aa07962761..b923059a22276 100644
--- a/sound/core/seq/seq_queue.c
+++ b/sound/core/seq/seq_queue.c
@@ -257,12 +257,15 @@ struct snd_seq_queue *snd_seq_queue_find_name(char *name)
/* -------------------------------------------------------- */
+#define MAX_CELL_PROCESSES_IN_QUEUE 1000
+
void snd_seq_check_queue(struct snd_seq_queue *q, int atomic, int hop)
{
unsigned long flags;
struct snd_seq_event_cell *cell;
snd_seq_tick_time_t cur_tick;
snd_seq_real_time_t cur_time;
+ int processed = 0;
if (q == NULL)
return;
@@ -285,6 +288,8 @@ void snd_seq_check_queue(struct snd_seq_queue *q, int atomic, int hop)
if (!cell)
break;
snd_seq_dispatch_event(cell, atomic, hop);
+ if (++processed >= MAX_CELL_PROCESSES_IN_QUEUE)
+ goto out; /* the rest processed at the next batch */
}
/* Process time queue... */
@@ -294,14 +299,19 @@ void snd_seq_check_queue(struct snd_seq_queue *q, int atomic, int hop)
if (!cell)
break;
snd_seq_dispatch_event(cell, atomic, hop);
+ if (++processed >= MAX_CELL_PROCESSES_IN_QUEUE)
+ goto out; /* the rest processed at the next batch */
}
+ out:
/* free lock */
spin_lock_irqsave(&q->check_lock, flags);
if (q->check_again) {
q->check_again = 0;
- spin_unlock_irqrestore(&q->check_lock, flags);
- goto __again;
+ if (processed < MAX_CELL_PROCESSES_IN_QUEUE) {
+ spin_unlock_irqrestore(&q->check_lock, flags);
+ goto __again;
+ }
}
q->check_blocked = 0;
spin_unlock_irqrestore(&q->check_lock, flags);
--
2.34.1
1
0

17 Jan '22
From: Tzung-Bi Shih <tzungbi(a)google.com>
[ Upstream commit 493433785df0075afc0c106ab65f10a605d0b35d ]
Fixes the device_node leak.
Signed-off-by: Tzung-Bi Shih <tzungbi(a)google.com>
Link: https://lore.kernel.org/r/20211224064719.2031210-2-tzungbi@google.com
Signed-off-by: Mark Brown <broonie(a)kernel.org>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
---
sound/soc/mediatek/mt8173/mt8173-max98090.c | 3 +++
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c | 2 ++
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c | 2 ++
sound/soc/mediatek/mt8173/mt8173-rt5650.c | 2 ++
4 files changed, 9 insertions(+)
diff --git a/sound/soc/mediatek/mt8173/mt8173-max98090.c b/sound/soc/mediatek/mt8173/mt8173-max98090.c
index e0c2b23ec7118..0adb7ded61e9c 100644
--- a/sound/soc/mediatek/mt8173/mt8173-max98090.c
+++ b/sound/soc/mediatek/mt8173/mt8173-max98090.c
@@ -177,6 +177,9 @@ static int mt8173_max98090_dev_probe(struct platform_device *pdev)
if (ret)
dev_err(&pdev->dev, "%s snd_soc_register_card fail %d\n",
__func__, ret);
+
+ of_node_put(codec_node);
+ of_node_put(platform_node);
return ret;
}
diff --git a/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c b/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c
index 99c15219dbc81..aa52e2f81760a 100644
--- a/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c
+++ b/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c
@@ -227,6 +227,8 @@ static int mt8173_rt5650_rt5514_dev_probe(struct platform_device *pdev)
if (ret)
dev_err(&pdev->dev, "%s snd_soc_register_card fail %d\n",
__func__, ret);
+
+ of_node_put(platform_node);
return ret;
}
diff --git a/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c b/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c
index 42de84ca8c844..61b0d8f8678e9 100644
--- a/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c
+++ b/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c
@@ -284,6 +284,8 @@ static int mt8173_rt5650_rt5676_dev_probe(struct platform_device *pdev)
if (ret)
dev_err(&pdev->dev, "%s snd_soc_register_card fail %d\n",
__func__, ret);
+
+ of_node_put(platform_node);
return ret;
}
diff --git a/sound/soc/mediatek/mt8173/mt8173-rt5650.c b/sound/soc/mediatek/mt8173/mt8173-rt5650.c
index e69c141d8ed4c..3492c02f72c1a 100644
--- a/sound/soc/mediatek/mt8173/mt8173-rt5650.c
+++ b/sound/soc/mediatek/mt8173/mt8173-rt5650.c
@@ -316,6 +316,8 @@ static int mt8173_rt5650_dev_probe(struct platform_device *pdev)
if (ret)
dev_err(&pdev->dev, "%s snd_soc_register_card fail %d\n",
__func__, ret);
+
+ of_node_put(platform_node);
return ret;
}
--
2.34.1
1
0

17 Jan '22
From: Takashi Iwai <tiwai(a)suse.de>
[ Upstream commit 6fadb494a638d8b8a55864ecc6ac58194f03f327 ]
Currently ALSA sequencer core tries to process the queued events as
much as possible when they become dispatchable. If applications try
to queue too massive events to be processed at the very same timing,
the sequencer core would still try to process such all events, either
in the interrupt context or via some notifier; in either away, it
might be a cause of RCU stall or such problems.
As a potential workaround for those problems, this patch adds the
upper limit of the amount of events to be processed. The remaining
events are processed in the next batch, so they won't be lost.
For the time being, it's limited up to 1000 events per queue, which
should be high enough for any normal usages.
Reported-by: Zqiang <qiang.zhang1211(a)gmail.com>
Reported-by: syzbot+bb950e68b400ab4f65f8(a)syzkaller.appspotmail.com
Link: https://lore.kernel.org/r/20211102033222.3849-1-qiang.zhang1211@gmail.com
Link: https://lore.kernel.org/r/20211207165146.2888-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai(a)suse.de>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
---
sound/core/seq/seq_queue.c | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/sound/core/seq/seq_queue.c b/sound/core/seq/seq_queue.c
index ea1aa07962761..b923059a22276 100644
--- a/sound/core/seq/seq_queue.c
+++ b/sound/core/seq/seq_queue.c
@@ -257,12 +257,15 @@ struct snd_seq_queue *snd_seq_queue_find_name(char *name)
/* -------------------------------------------------------- */
+#define MAX_CELL_PROCESSES_IN_QUEUE 1000
+
void snd_seq_check_queue(struct snd_seq_queue *q, int atomic, int hop)
{
unsigned long flags;
struct snd_seq_event_cell *cell;
snd_seq_tick_time_t cur_tick;
snd_seq_real_time_t cur_time;
+ int processed = 0;
if (q == NULL)
return;
@@ -285,6 +288,8 @@ void snd_seq_check_queue(struct snd_seq_queue *q, int atomic, int hop)
if (!cell)
break;
snd_seq_dispatch_event(cell, atomic, hop);
+ if (++processed >= MAX_CELL_PROCESSES_IN_QUEUE)
+ goto out; /* the rest processed at the next batch */
}
/* Process time queue... */
@@ -294,14 +299,19 @@ void snd_seq_check_queue(struct snd_seq_queue *q, int atomic, int hop)
if (!cell)
break;
snd_seq_dispatch_event(cell, atomic, hop);
+ if (++processed >= MAX_CELL_PROCESSES_IN_QUEUE)
+ goto out; /* the rest processed at the next batch */
}
+ out:
/* free lock */
spin_lock_irqsave(&q->check_lock, flags);
if (q->check_again) {
q->check_again = 0;
- spin_unlock_irqrestore(&q->check_lock, flags);
- goto __again;
+ if (processed < MAX_CELL_PROCESSES_IN_QUEUE) {
+ spin_unlock_irqrestore(&q->check_lock, flags);
+ goto __again;
+ }
}
q->check_blocked = 0;
spin_unlock_irqrestore(&q->check_lock, flags);
--
2.34.1
1
0

17 Jan '22
From: Tzung-Bi Shih <tzungbi(a)google.com>
[ Upstream commit 493433785df0075afc0c106ab65f10a605d0b35d ]
Fixes the device_node leak.
Signed-off-by: Tzung-Bi Shih <tzungbi(a)google.com>
Link: https://lore.kernel.org/r/20211224064719.2031210-2-tzungbi@google.com
Signed-off-by: Mark Brown <broonie(a)kernel.org>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
---
sound/soc/mediatek/mt8173/mt8173-max98090.c | 3 +++
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c | 2 ++
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c | 2 ++
sound/soc/mediatek/mt8173/mt8173-rt5650.c | 2 ++
4 files changed, 9 insertions(+)
diff --git a/sound/soc/mediatek/mt8173/mt8173-max98090.c b/sound/soc/mediatek/mt8173/mt8173-max98090.c
index 902d111016d6f..431ba3db17594 100644
--- a/sound/soc/mediatek/mt8173/mt8173-max98090.c
+++ b/sound/soc/mediatek/mt8173/mt8173-max98090.c
@@ -169,6 +169,9 @@ static int mt8173_max98090_dev_probe(struct platform_device *pdev)
if (ret)
dev_err(&pdev->dev, "%s snd_soc_register_card fail %d\n",
__func__, ret);
+
+ of_node_put(codec_node);
+ of_node_put(platform_node);
return ret;
}
diff --git a/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c b/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c
index 582174d98c6c9..cdb3940710379 100644
--- a/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c
+++ b/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c
@@ -217,6 +217,8 @@ static int mt8173_rt5650_rt5514_dev_probe(struct platform_device *pdev)
if (ret)
dev_err(&pdev->dev, "%s snd_soc_register_card fail %d\n",
__func__, ret);
+
+ of_node_put(platform_node);
return ret;
}
diff --git a/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c b/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c
index b3670c8a5b8de..242f99716c619 100644
--- a/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c
+++ b/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c
@@ -274,6 +274,8 @@ static int mt8173_rt5650_rt5676_dev_probe(struct platform_device *pdev)
if (ret)
dev_err(&pdev->dev, "%s snd_soc_register_card fail %d\n",
__func__, ret);
+
+ of_node_put(platform_node);
return ret;
}
diff --git a/sound/soc/mediatek/mt8173/mt8173-rt5650.c b/sound/soc/mediatek/mt8173/mt8173-rt5650.c
index 7a89b4aad182f..14011a70bcc41 100644
--- a/sound/soc/mediatek/mt8173/mt8173-rt5650.c
+++ b/sound/soc/mediatek/mt8173/mt8173-rt5650.c
@@ -301,6 +301,8 @@ static int mt8173_rt5650_dev_probe(struct platform_device *pdev)
if (ret)
dev_err(&pdev->dev, "%s snd_soc_register_card fail %d\n",
__func__, ret);
+
+ of_node_put(platform_node);
return ret;
}
--
2.34.1
1
0

17 Jan '22
From: Takashi Iwai <tiwai(a)suse.de>
[ Upstream commit 6fadb494a638d8b8a55864ecc6ac58194f03f327 ]
Currently ALSA sequencer core tries to process the queued events as
much as possible when they become dispatchable. If applications try
to queue too massive events to be processed at the very same timing,
the sequencer core would still try to process such all events, either
in the interrupt context or via some notifier; in either away, it
might be a cause of RCU stall or such problems.
As a potential workaround for those problems, this patch adds the
upper limit of the amount of events to be processed. The remaining
events are processed in the next batch, so they won't be lost.
For the time being, it's limited up to 1000 events per queue, which
should be high enough for any normal usages.
Reported-by: Zqiang <qiang.zhang1211(a)gmail.com>
Reported-by: syzbot+bb950e68b400ab4f65f8(a)syzkaller.appspotmail.com
Link: https://lore.kernel.org/r/20211102033222.3849-1-qiang.zhang1211@gmail.com
Link: https://lore.kernel.org/r/20211207165146.2888-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai(a)suse.de>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
---
sound/core/seq/seq_queue.c | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/sound/core/seq/seq_queue.c b/sound/core/seq/seq_queue.c
index 28b4dd45b8d1d..a23ba648db845 100644
--- a/sound/core/seq/seq_queue.c
+++ b/sound/core/seq/seq_queue.c
@@ -247,12 +247,15 @@ struct snd_seq_queue *snd_seq_queue_find_name(char *name)
/* -------------------------------------------------------- */
+#define MAX_CELL_PROCESSES_IN_QUEUE 1000
+
void snd_seq_check_queue(struct snd_seq_queue *q, int atomic, int hop)
{
unsigned long flags;
struct snd_seq_event_cell *cell;
snd_seq_tick_time_t cur_tick;
snd_seq_real_time_t cur_time;
+ int processed = 0;
if (q == NULL)
return;
@@ -275,6 +278,8 @@ void snd_seq_check_queue(struct snd_seq_queue *q, int atomic, int hop)
if (!cell)
break;
snd_seq_dispatch_event(cell, atomic, hop);
+ if (++processed >= MAX_CELL_PROCESSES_IN_QUEUE)
+ goto out; /* the rest processed at the next batch */
}
/* Process time queue... */
@@ -284,14 +289,19 @@ void snd_seq_check_queue(struct snd_seq_queue *q, int atomic, int hop)
if (!cell)
break;
snd_seq_dispatch_event(cell, atomic, hop);
+ if (++processed >= MAX_CELL_PROCESSES_IN_QUEUE)
+ goto out; /* the rest processed at the next batch */
}
+ out:
/* free lock */
spin_lock_irqsave(&q->check_lock, flags);
if (q->check_again) {
q->check_again = 0;
- spin_unlock_irqrestore(&q->check_lock, flags);
- goto __again;
+ if (processed < MAX_CELL_PROCESSES_IN_QUEUE) {
+ spin_unlock_irqrestore(&q->check_lock, flags);
+ goto __again;
+ }
}
q->check_blocked = 0;
spin_unlock_irqrestore(&q->check_lock, flags);
--
2.34.1
1
0

17 Jan '22
From: Tzung-Bi Shih <tzungbi(a)google.com>
[ Upstream commit 493433785df0075afc0c106ab65f10a605d0b35d ]
Fixes the device_node leak.
Signed-off-by: Tzung-Bi Shih <tzungbi(a)google.com>
Link: https://lore.kernel.org/r/20211224064719.2031210-2-tzungbi@google.com
Signed-off-by: Mark Brown <broonie(a)kernel.org>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
---
sound/soc/mediatek/mt8173/mt8173-max98090.c | 3 +++
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c | 2 ++
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c | 2 ++
sound/soc/mediatek/mt8173/mt8173-rt5650.c | 2 ++
4 files changed, 9 insertions(+)
diff --git a/sound/soc/mediatek/mt8173/mt8173-max98090.c b/sound/soc/mediatek/mt8173/mt8173-max98090.c
index 22c00600c999f..de1410c2c446f 100644
--- a/sound/soc/mediatek/mt8173/mt8173-max98090.c
+++ b/sound/soc/mediatek/mt8173/mt8173-max98090.c
@@ -180,6 +180,9 @@ static int mt8173_max98090_dev_probe(struct platform_device *pdev)
if (ret)
dev_err(&pdev->dev, "%s snd_soc_register_card fail %d\n",
__func__, ret);
+
+ of_node_put(codec_node);
+ of_node_put(platform_node);
return ret;
}
diff --git a/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c b/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c
index 8717e87bfe264..6f8542329bab9 100644
--- a/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c
+++ b/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c
@@ -218,6 +218,8 @@ static int mt8173_rt5650_rt5514_dev_probe(struct platform_device *pdev)
if (ret)
dev_err(&pdev->dev, "%s snd_soc_register_card fail %d\n",
__func__, ret);
+
+ of_node_put(platform_node);
return ret;
}
diff --git a/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c b/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c
index 9d4dd97211548..727ff0f7f20b1 100644
--- a/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c
+++ b/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c
@@ -285,6 +285,8 @@ static int mt8173_rt5650_rt5676_dev_probe(struct platform_device *pdev)
if (ret)
dev_err(&pdev->dev, "%s snd_soc_register_card fail %d\n",
__func__, ret);
+
+ of_node_put(platform_node);
return ret;
}
diff --git a/sound/soc/mediatek/mt8173/mt8173-rt5650.c b/sound/soc/mediatek/mt8173/mt8173-rt5650.c
index ef6f236752867..21e7d4d3ded5a 100644
--- a/sound/soc/mediatek/mt8173/mt8173-rt5650.c
+++ b/sound/soc/mediatek/mt8173/mt8173-rt5650.c
@@ -309,6 +309,8 @@ static int mt8173_rt5650_dev_probe(struct platform_device *pdev)
if (ret)
dev_err(&pdev->dev, "%s snd_soc_register_card fail %d\n",
__func__, ret);
+
+ of_node_put(platform_node);
return ret;
}
--
2.34.1
1
0

17 Jan '22
From: Takashi Iwai <tiwai(a)suse.de>
[ Upstream commit 6fadb494a638d8b8a55864ecc6ac58194f03f327 ]
Currently ALSA sequencer core tries to process the queued events as
much as possible when they become dispatchable. If applications try
to queue too massive events to be processed at the very same timing,
the sequencer core would still try to process such all events, either
in the interrupt context or via some notifier; in either away, it
might be a cause of RCU stall or such problems.
As a potential workaround for those problems, this patch adds the
upper limit of the amount of events to be processed. The remaining
events are processed in the next batch, so they won't be lost.
For the time being, it's limited up to 1000 events per queue, which
should be high enough for any normal usages.
Reported-by: Zqiang <qiang.zhang1211(a)gmail.com>
Reported-by: syzbot+bb950e68b400ab4f65f8(a)syzkaller.appspotmail.com
Link: https://lore.kernel.org/r/20211102033222.3849-1-qiang.zhang1211@gmail.com
Link: https://lore.kernel.org/r/20211207165146.2888-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai(a)suse.de>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
---
sound/core/seq/seq_queue.c | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/sound/core/seq/seq_queue.c b/sound/core/seq/seq_queue.c
index 71a6ea62c3be7..4ff0b927230c2 100644
--- a/sound/core/seq/seq_queue.c
+++ b/sound/core/seq/seq_queue.c
@@ -234,12 +234,15 @@ struct snd_seq_queue *snd_seq_queue_find_name(char *name)
/* -------------------------------------------------------- */
+#define MAX_CELL_PROCESSES_IN_QUEUE 1000
+
void snd_seq_check_queue(struct snd_seq_queue *q, int atomic, int hop)
{
unsigned long flags;
struct snd_seq_event_cell *cell;
snd_seq_tick_time_t cur_tick;
snd_seq_real_time_t cur_time;
+ int processed = 0;
if (q == NULL)
return;
@@ -262,6 +265,8 @@ void snd_seq_check_queue(struct snd_seq_queue *q, int atomic, int hop)
if (!cell)
break;
snd_seq_dispatch_event(cell, atomic, hop);
+ if (++processed >= MAX_CELL_PROCESSES_IN_QUEUE)
+ goto out; /* the rest processed at the next batch */
}
/* Process time queue... */
@@ -271,14 +276,19 @@ void snd_seq_check_queue(struct snd_seq_queue *q, int atomic, int hop)
if (!cell)
break;
snd_seq_dispatch_event(cell, atomic, hop);
+ if (++processed >= MAX_CELL_PROCESSES_IN_QUEUE)
+ goto out; /* the rest processed at the next batch */
}
+ out:
/* free lock */
spin_lock_irqsave(&q->check_lock, flags);
if (q->check_again) {
q->check_again = 0;
- spin_unlock_irqrestore(&q->check_lock, flags);
- goto __again;
+ if (processed < MAX_CELL_PROCESSES_IN_QUEUE) {
+ spin_unlock_irqrestore(&q->check_lock, flags);
+ goto __again;
+ }
}
q->check_blocked = 0;
spin_unlock_irqrestore(&q->check_lock, flags);
--
2.34.1
1
0

[PATCH AUTOSEL 5.10 01/34] ALSA: usb-audio: Fix dB level of Bose Revolve+ SoundLink
by Sasha Levin 17 Jan '22
by Sasha Levin 17 Jan '22
17 Jan '22
From: Takashi Iwai <tiwai(a)suse.de>
[ Upstream commit 02eb1d098e26f34c8f047b0b1cee6f4433a34bd1 ]
Bose Revolve+ SoundLink (0a57:40fa) advertises invalid dB level for
the speaker volume. This patch provides the correction in the mixer
map quirk table entry.
Note that this requires the prerequisite change to add min_mute flag
to the dB map table.
BugLink: https://bugzilla.suse.com/show_bug.cgi?id=1192375
Link: https://lore.kernel.org/r/20211116065415.11159-4-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai(a)suse.de>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
---
sound/usb/mixer_maps.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/sound/usb/mixer_maps.c b/sound/usb/mixer_maps.c
index 8f6823df944ff..01a30968e7e1f 100644
--- a/sound/usb/mixer_maps.c
+++ b/sound/usb/mixer_maps.c
@@ -337,6 +337,13 @@ static const struct usbmix_name_map bose_companion5_map[] = {
{ 0 } /* terminator */
};
+/* Bose Revolve+ SoundLink, correction of dB maps */
+static const struct usbmix_dB_map bose_soundlink_dB = {-8283, -0, true};
+static const struct usbmix_name_map bose_soundlink_map[] = {
+ { 2, NULL, .dB = &bose_soundlink_dB },
+ { 0 } /* terminator */
+};
+
/* Sennheiser Communications Headset [PC 8], the dB value is reported as -6 negative maximum */
static const struct usbmix_dB_map sennheiser_pc8_dB = {-9500, 0};
static const struct usbmix_name_map sennheiser_pc8_map[] = {
@@ -551,6 +558,11 @@ static const struct usbmix_ctl_map usbmix_ctl_maps[] = {
.id = USB_ID(0x05a7, 0x1020),
.map = bose_companion5_map,
},
+ {
+ /* Bose Revolve+ SoundLink */
+ .id = USB_ID(0x05a7, 0x40fa),
+ .map = bose_soundlink_map,
+ },
{
/* Corsair Virtuoso SE (wired mode) */
.id = USB_ID(0x1b1c, 0x0a3d),
--
2.34.1
1
3

17 Jan '22
From: Tzung-Bi Shih <tzungbi(a)google.com>
[ Upstream commit cb006006fe6221f092fadaffd3f219288304c9ad ]
Fixes the device_node leak.
Signed-off-by: Tzung-Bi Shih <tzungbi(a)google.com>
Link: https://lore.kernel.org/r/20211224064719.2031210-3-tzungbi@google.com
Signed-off-by: Mark Brown <broonie(a)kernel.org>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
---
sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c | 6 +++++-
sound/soc/mediatek/mt8183/mt8183-mt6358-ts3a227-max98357.c | 7 ++++++-
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c b/sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c
index a4d26a6fc8492..bda103211e0bd 100644
--- a/sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c
+++ b/sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c
@@ -781,7 +781,11 @@ static int mt8183_da7219_max98357_dev_probe(struct platform_device *pdev)
return ret;
}
- return devm_snd_soc_register_card(&pdev->dev, card);
+ ret = devm_snd_soc_register_card(&pdev->dev, card);
+
+ of_node_put(platform_node);
+ of_node_put(hdmi_codec);
+ return ret;
}
#ifdef CONFIG_OF
diff --git a/sound/soc/mediatek/mt8183/mt8183-mt6358-ts3a227-max98357.c b/sound/soc/mediatek/mt8183/mt8183-mt6358-ts3a227-max98357.c
index 94dcbd36c8697..c7b10c48c6c22 100644
--- a/sound/soc/mediatek/mt8183/mt8183-mt6358-ts3a227-max98357.c
+++ b/sound/soc/mediatek/mt8183/mt8183-mt6358-ts3a227-max98357.c
@@ -780,7 +780,12 @@ mt8183_mt6358_ts3a227_max98357_dev_probe(struct platform_device *pdev)
__func__, ret);
}
- return devm_snd_soc_register_card(&pdev->dev, card);
+ ret = devm_snd_soc_register_card(&pdev->dev, card);
+
+ of_node_put(platform_node);
+ of_node_put(ec_codec);
+ of_node_put(hdmi_codec);
+ return ret;
}
#ifdef CONFIG_OF
--
2.34.1
1
0

17 Jan '22
From: Tzung-Bi Shih <tzungbi(a)google.com>
[ Upstream commit 493433785df0075afc0c106ab65f10a605d0b35d ]
Fixes the device_node leak.
Signed-off-by: Tzung-Bi Shih <tzungbi(a)google.com>
Link: https://lore.kernel.org/r/20211224064719.2031210-2-tzungbi@google.com
Signed-off-by: Mark Brown <broonie(a)kernel.org>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
---
sound/soc/mediatek/mt8173/mt8173-max98090.c | 3 +++
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c | 2 ++
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c | 2 ++
sound/soc/mediatek/mt8173/mt8173-rt5650.c | 2 ++
4 files changed, 9 insertions(+)
diff --git a/sound/soc/mediatek/mt8173/mt8173-max98090.c b/sound/soc/mediatek/mt8173/mt8173-max98090.c
index fc94314bfc02f..3bdd4931316cd 100644
--- a/sound/soc/mediatek/mt8173/mt8173-max98090.c
+++ b/sound/soc/mediatek/mt8173/mt8173-max98090.c
@@ -180,6 +180,9 @@ static int mt8173_max98090_dev_probe(struct platform_device *pdev)
if (ret)
dev_err(&pdev->dev, "%s snd_soc_register_card fail %d\n",
__func__, ret);
+
+ of_node_put(codec_node);
+ of_node_put(platform_node);
return ret;
}
diff --git a/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c b/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c
index 0f28dc2217c09..390da5bf727eb 100644
--- a/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c
+++ b/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c
@@ -218,6 +218,8 @@ static int mt8173_rt5650_rt5514_dev_probe(struct platform_device *pdev)
if (ret)
dev_err(&pdev->dev, "%s snd_soc_register_card fail %d\n",
__func__, ret);
+
+ of_node_put(platform_node);
return ret;
}
diff --git a/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c b/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c
index 077c6ee067806..c8e4e85e10575 100644
--- a/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c
+++ b/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c
@@ -285,6 +285,8 @@ static int mt8173_rt5650_rt5676_dev_probe(struct platform_device *pdev)
if (ret)
dev_err(&pdev->dev, "%s snd_soc_register_card fail %d\n",
__func__, ret);
+
+ of_node_put(platform_node);
return ret;
}
diff --git a/sound/soc/mediatek/mt8173/mt8173-rt5650.c b/sound/soc/mediatek/mt8173/mt8173-rt5650.c
index c28ebf891cb05..e168d31f44459 100644
--- a/sound/soc/mediatek/mt8173/mt8173-rt5650.c
+++ b/sound/soc/mediatek/mt8173/mt8173-rt5650.c
@@ -323,6 +323,8 @@ static int mt8173_rt5650_dev_probe(struct platform_device *pdev)
if (ret)
dev_err(&pdev->dev, "%s snd_soc_register_card fail %d\n",
__func__, ret);
+
+ of_node_put(platform_node);
return ret;
}
--
2.34.1
1
0

[PATCH AUTOSEL 5.15 37/44] ASoC: mediatek: mt8192-mt6359: fix device_node leak
by Sasha Levin 17 Jan '22
by Sasha Levin 17 Jan '22
17 Jan '22
From: Tzung-Bi Shih <tzungbi(a)google.com>
[ Upstream commit 4e28491a7a198c668437f2be8a91a76aa52f20eb ]
The of_parse_phandle() document:
>>> Use of_node_put() on it when done.
The driver didn't call of_node_put(). Fixes the leak.
Signed-off-by: Tzung-Bi Shih <tzungbi(a)google.com>
Link: https://lore.kernel.org/r/20211214040028.2992627-1-tzungbi@google.com
Signed-off-by: Mark Brown <broonie(a)kernel.org>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
---
sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c b/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c
index a606133951b70..24a5d0adec1ba 100644
--- a/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c
+++ b/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c
@@ -1172,7 +1172,11 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev)
return ret;
}
- return devm_snd_soc_register_card(&pdev->dev, card);
+ ret = devm_snd_soc_register_card(&pdev->dev, card);
+
+ of_node_put(platform_node);
+ of_node_put(hdmi_codec);
+ return ret;
}
#ifdef CONFIG_OF
--
2.34.1
1
0

17 Jan '22
From: Takashi Iwai <tiwai(a)suse.de>
[ Upstream commit 6fadb494a638d8b8a55864ecc6ac58194f03f327 ]
Currently ALSA sequencer core tries to process the queued events as
much as possible when they become dispatchable. If applications try
to queue too massive events to be processed at the very same timing,
the sequencer core would still try to process such all events, either
in the interrupt context or via some notifier; in either away, it
might be a cause of RCU stall or such problems.
As a potential workaround for those problems, this patch adds the
upper limit of the amount of events to be processed. The remaining
events are processed in the next batch, so they won't be lost.
For the time being, it's limited up to 1000 events per queue, which
should be high enough for any normal usages.
Reported-by: Zqiang <qiang.zhang1211(a)gmail.com>
Reported-by: syzbot+bb950e68b400ab4f65f8(a)syzkaller.appspotmail.com
Link: https://lore.kernel.org/r/20211102033222.3849-1-qiang.zhang1211@gmail.com
Link: https://lore.kernel.org/r/20211207165146.2888-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai(a)suse.de>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
---
sound/core/seq/seq_queue.c | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/sound/core/seq/seq_queue.c b/sound/core/seq/seq_queue.c
index d6c02dea976c8..bc933104c3eea 100644
--- a/sound/core/seq/seq_queue.c
+++ b/sound/core/seq/seq_queue.c
@@ -235,12 +235,15 @@ struct snd_seq_queue *snd_seq_queue_find_name(char *name)
/* -------------------------------------------------------- */
+#define MAX_CELL_PROCESSES_IN_QUEUE 1000
+
void snd_seq_check_queue(struct snd_seq_queue *q, int atomic, int hop)
{
unsigned long flags;
struct snd_seq_event_cell *cell;
snd_seq_tick_time_t cur_tick;
snd_seq_real_time_t cur_time;
+ int processed = 0;
if (q == NULL)
return;
@@ -263,6 +266,8 @@ void snd_seq_check_queue(struct snd_seq_queue *q, int atomic, int hop)
if (!cell)
break;
snd_seq_dispatch_event(cell, atomic, hop);
+ if (++processed >= MAX_CELL_PROCESSES_IN_QUEUE)
+ goto out; /* the rest processed at the next batch */
}
/* Process time queue... */
@@ -272,14 +277,19 @@ void snd_seq_check_queue(struct snd_seq_queue *q, int atomic, int hop)
if (!cell)
break;
snd_seq_dispatch_event(cell, atomic, hop);
+ if (++processed >= MAX_CELL_PROCESSES_IN_QUEUE)
+ goto out; /* the rest processed at the next batch */
}
+ out:
/* free lock */
spin_lock_irqsave(&q->check_lock, flags);
if (q->check_again) {
q->check_again = 0;
- spin_unlock_irqrestore(&q->check_lock, flags);
- goto __again;
+ if (processed < MAX_CELL_PROCESSES_IN_QUEUE) {
+ spin_unlock_irqrestore(&q->check_lock, flags);
+ goto __again;
+ }
}
q->check_blocked = 0;
spin_unlock_irqrestore(&q->check_lock, flags);
--
2.34.1
1
0

[PATCH AUTOSEL 5.15 07/44] ASoC: imx-hdmi: add put_device() after of_find_device_by_node()
by Sasha Levin 17 Jan '22
by Sasha Levin 17 Jan '22
17 Jan '22
From: Ye Guojin <ye.guojin(a)zte.com.cn>
[ Upstream commit f670b274f7f6f4b2722d7f08d0fddf606a727e92 ]
This was found by coccicheck:
./sound/soc/fsl/imx-hdmi.c,209,1-7,ERROR missing put_device; call
of_find_device_by_node on line 119, but without a corresponding object
release within this function.
Reported-by: Zeal Robot <zealci(a)zte.com.cn>
Signed-off-by: Ye Guojin <ye.guojin(a)zte.com.cn>
Link: https://lore.kernel.org/r/20211110002910.134915-1-ye.guojin@zte.com.cn
Signed-off-by: Mark Brown <broonie(a)kernel.org>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
---
sound/soc/fsl/imx-hdmi.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/sound/soc/fsl/imx-hdmi.c b/sound/soc/fsl/imx-hdmi.c
index 34a0dceae6216..ef8d7a65ebc61 100644
--- a/sound/soc/fsl/imx-hdmi.c
+++ b/sound/soc/fsl/imx-hdmi.c
@@ -145,6 +145,8 @@ static int imx_hdmi_probe(struct platform_device *pdev)
data->dai.capture_only = false;
data->dai.init = imx_hdmi_init;
+ put_device(&cpu_pdev->dev);
+
if (of_node_name_eq(cpu_np, "sai")) {
data->cpu_priv.sysclk_id[1] = FSL_SAI_CLK_MAST1;
data->cpu_priv.sysclk_id[0] = FSL_SAI_CLK_MAST1;
--
2.34.1
1
0

17 Jan '22
From: Tzung-Bi Shih <tzungbi(a)google.com>
[ Upstream commit cb006006fe6221f092fadaffd3f219288304c9ad ]
Fixes the device_node leak.
Signed-off-by: Tzung-Bi Shih <tzungbi(a)google.com>
Link: https://lore.kernel.org/r/20211224064719.2031210-3-tzungbi@google.com
Signed-off-by: Mark Brown <broonie(a)kernel.org>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
---
sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c | 6 +++++-
sound/soc/mediatek/mt8183/mt8183-mt6358-ts3a227-max98357.c | 7 ++++++-
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c b/sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c
index a4d26a6fc8492..bda103211e0bd 100644
--- a/sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c
+++ b/sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c
@@ -781,7 +781,11 @@ static int mt8183_da7219_max98357_dev_probe(struct platform_device *pdev)
return ret;
}
- return devm_snd_soc_register_card(&pdev->dev, card);
+ ret = devm_snd_soc_register_card(&pdev->dev, card);
+
+ of_node_put(platform_node);
+ of_node_put(hdmi_codec);
+ return ret;
}
#ifdef CONFIG_OF
diff --git a/sound/soc/mediatek/mt8183/mt8183-mt6358-ts3a227-max98357.c b/sound/soc/mediatek/mt8183/mt8183-mt6358-ts3a227-max98357.c
index aeb1af86047ef..9f0bf15fe465e 100644
--- a/sound/soc/mediatek/mt8183/mt8183-mt6358-ts3a227-max98357.c
+++ b/sound/soc/mediatek/mt8183/mt8183-mt6358-ts3a227-max98357.c
@@ -780,7 +780,12 @@ mt8183_mt6358_ts3a227_max98357_dev_probe(struct platform_device *pdev)
__func__, ret);
}
- return devm_snd_soc_register_card(&pdev->dev, card);
+ ret = devm_snd_soc_register_card(&pdev->dev, card);
+
+ of_node_put(platform_node);
+ of_node_put(ec_codec);
+ of_node_put(hdmi_codec);
+ return ret;
}
#ifdef CONFIG_OF
--
2.34.1
1
0

17 Jan '22
From: Tzung-Bi Shih <tzungbi(a)google.com>
[ Upstream commit 493433785df0075afc0c106ab65f10a605d0b35d ]
Fixes the device_node leak.
Signed-off-by: Tzung-Bi Shih <tzungbi(a)google.com>
Link: https://lore.kernel.org/r/20211224064719.2031210-2-tzungbi@google.com
Signed-off-by: Mark Brown <broonie(a)kernel.org>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
---
sound/soc/mediatek/mt8173/mt8173-max98090.c | 3 +++
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c | 2 ++
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c | 2 ++
sound/soc/mediatek/mt8173/mt8173-rt5650.c | 2 ++
4 files changed, 9 insertions(+)
diff --git a/sound/soc/mediatek/mt8173/mt8173-max98090.c b/sound/soc/mediatek/mt8173/mt8173-max98090.c
index fc94314bfc02f..3bdd4931316cd 100644
--- a/sound/soc/mediatek/mt8173/mt8173-max98090.c
+++ b/sound/soc/mediatek/mt8173/mt8173-max98090.c
@@ -180,6 +180,9 @@ static int mt8173_max98090_dev_probe(struct platform_device *pdev)
if (ret)
dev_err(&pdev->dev, "%s snd_soc_register_card fail %d\n",
__func__, ret);
+
+ of_node_put(codec_node);
+ of_node_put(platform_node);
return ret;
}
diff --git a/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c b/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c
index 0f28dc2217c09..390da5bf727eb 100644
--- a/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c
+++ b/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c
@@ -218,6 +218,8 @@ static int mt8173_rt5650_rt5514_dev_probe(struct platform_device *pdev)
if (ret)
dev_err(&pdev->dev, "%s snd_soc_register_card fail %d\n",
__func__, ret);
+
+ of_node_put(platform_node);
return ret;
}
diff --git a/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c b/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c
index 077c6ee067806..c8e4e85e10575 100644
--- a/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c
+++ b/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c
@@ -285,6 +285,8 @@ static int mt8173_rt5650_rt5676_dev_probe(struct platform_device *pdev)
if (ret)
dev_err(&pdev->dev, "%s snd_soc_register_card fail %d\n",
__func__, ret);
+
+ of_node_put(platform_node);
return ret;
}
diff --git a/sound/soc/mediatek/mt8173/mt8173-rt5650.c b/sound/soc/mediatek/mt8173/mt8173-rt5650.c
index 2cbf679f5c74b..d8cf0802813a0 100644
--- a/sound/soc/mediatek/mt8173/mt8173-rt5650.c
+++ b/sound/soc/mediatek/mt8173/mt8173-rt5650.c
@@ -323,6 +323,8 @@ static int mt8173_rt5650_dev_probe(struct platform_device *pdev)
if (ret)
dev_err(&pdev->dev, "%s snd_soc_register_card fail %d\n",
__func__, ret);
+
+ of_node_put(platform_node);
return ret;
}
--
2.34.1
1
0

[PATCH AUTOSEL 5.16 43/52] ASoC: mediatek: mt8192-mt6359: fix device_node leak
by Sasha Levin 17 Jan '22
by Sasha Levin 17 Jan '22
17 Jan '22
From: Tzung-Bi Shih <tzungbi(a)google.com>
[ Upstream commit 4e28491a7a198c668437f2be8a91a76aa52f20eb ]
The of_parse_phandle() document:
>>> Use of_node_put() on it when done.
The driver didn't call of_node_put(). Fixes the leak.
Signed-off-by: Tzung-Bi Shih <tzungbi(a)google.com>
Link: https://lore.kernel.org/r/20211214040028.2992627-1-tzungbi@google.com
Signed-off-by: Mark Brown <broonie(a)kernel.org>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
---
sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c b/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c
index a606133951b70..24a5d0adec1ba 100644
--- a/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c
+++ b/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c
@@ -1172,7 +1172,11 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev)
return ret;
}
- return devm_snd_soc_register_card(&pdev->dev, card);
+ ret = devm_snd_soc_register_card(&pdev->dev, card);
+
+ of_node_put(platform_node);
+ of_node_put(hdmi_codec);
+ return ret;
}
#ifdef CONFIG_OF
--
2.34.1
1
0

[PATCH AUTOSEL 5.16 38/52] ASoC: SOF: ipc: Add null pointer check for substream->runtime
by Sasha Levin 17 Jan '22
by Sasha Levin 17 Jan '22
17 Jan '22
From: Ajit Kumar Pandey <AjitKumar.Pandey(a)amd.com>
[ Upstream commit 182b682b9ab1348e07ea1bf9d8f2505cc67f9237 ]
When pcm stream is stopped "substream->runtime" pointer will be set
to NULL by ALSA core. In case host received an ipc msg from firmware
of type IPC_STREAM_POSITION after pcm stream is stopped, there will
be kernel NULL pointer exception in ipc_period_elapsed(). This patch
fixes it by adding NULL pointer check for "substream->runtime".
Reviewed-by: Ranjani Sridharan <ranjani.sridharan(a)linux.intel.com>
Signed-off-by: Ajit Kumar Pandey <AjitKumar.Pandey(a)amd.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart(a)linux.intel.com>
Link: https://lore.kernel.org/r/20211216232422.345164-3-pierre-louis.bossart@linu…
Signed-off-by: Mark Brown <broonie(a)kernel.org>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
---
sound/soc/sof/ipc.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/sound/soc/sof/ipc.c b/sound/soc/sof/ipc.c
index e6c53c6c470e4..ca30c506a0fd6 100644
--- a/sound/soc/sof/ipc.c
+++ b/sound/soc/sof/ipc.c
@@ -547,7 +547,8 @@ static void ipc_period_elapsed(struct snd_sof_dev *sdev, u32 msg_id)
if (spcm->pcm.compress)
snd_sof_compr_fragment_elapsed(stream->cstream);
- else if (!stream->substream->runtime->no_period_wakeup)
+ else if (stream->substream->runtime &&
+ !stream->substream->runtime->no_period_wakeup)
/* only inform ALSA for period_wakeup mode */
snd_sof_pcm_period_elapsed(stream->substream);
}
--
2.34.1
1
0

[PATCH AUTOSEL 5.16 31/52] ASoC: SOF: Intel: hda: add quirks for HDAudio DMA position information
by Sasha Levin 17 Jan '22
by Sasha Levin 17 Jan '22
17 Jan '22
From: Pierre-Louis Bossart <pierre-louis.bossart(a)linux.intel.com>
[ Upstream commit 288fad2f71fa0b989c075d4984879c26d47cfb06 ]
The code inherited from the Skylake driver does not seem to follow any
known hardware recommendations.
The only two recommended options are
a) use DPIB registers if VC1 traffic is not allowed
b) use DPIB DDR update if VC1 traffic is used
In all of SOF-based updated, VC1 is not supported so we can 'safely'
move to using DPIB registers only.
This patch keeps the legacy code, in case there was an undocumented
issue lost to history, and adds the DPIB DDR update for additional
debug.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart(a)linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan(a)linux.intel.com>
Reviewed-by: Péter Ujfalusi <peter.ujfalusi(a)linux.intel.com>
Link: https://lore.kernel.org/r/20211207193947.71080-6-pierre-louis.bossart@linux…
Signed-off-by: Mark Brown <broonie(a)kernel.org>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
---
sound/soc/sof/intel/hda-pcm.c | 86 +++++++++++++++++++++++++----------
sound/soc/sof/intel/hda.c | 9 +++-
sound/soc/sof/intel/hda.h | 6 +++
3 files changed, 75 insertions(+), 26 deletions(-)
diff --git a/sound/soc/sof/intel/hda-pcm.c b/sound/soc/sof/intel/hda-pcm.c
index cc8ddef37f37b..41cb60955f5c1 100644
--- a/sound/soc/sof/intel/hda-pcm.c
+++ b/sound/soc/sof/intel/hda-pcm.c
@@ -172,38 +172,74 @@ snd_pcm_uframes_t hda_dsp_pcm_pointer(struct snd_sof_dev *sdev,
goto found;
}
- /*
- * DPIB/posbuf position mode:
- * For Playback, Use DPIB register from HDA space which
- * reflects the actual data transferred.
- * For Capture, Use the position buffer for pointer, as DPIB
- * is not accurate enough, its update may be completed
- * earlier than the data written to DDR.
- */
- if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
+ switch (sof_hda_position_quirk) {
+ case SOF_HDA_POSITION_QUIRK_USE_SKYLAKE_LEGACY:
+ /*
+ * This legacy code, inherited from the Skylake driver,
+ * mixes DPIB registers and DPIB DDR updates and
+ * does not seem to follow any known hardware recommendations.
+ * It's not clear e.g. why there is a different flow
+ * for capture and playback, the only information that matters is
+ * what traffic class is used, and on all SOF-enabled platforms
+ * only VC0 is supported so the work-around was likely not necessary
+ * and quite possibly wrong.
+ */
+
+ /* DPIB/posbuf position mode:
+ * For Playback, Use DPIB register from HDA space which
+ * reflects the actual data transferred.
+ * For Capture, Use the position buffer for pointer, as DPIB
+ * is not accurate enough, its update may be completed
+ * earlier than the data written to DDR.
+ */
+ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
+ pos = snd_sof_dsp_read(sdev, HDA_DSP_HDA_BAR,
+ AZX_REG_VS_SDXDPIB_XBASE +
+ (AZX_REG_VS_SDXDPIB_XINTERVAL *
+ hstream->index));
+ } else {
+ /*
+ * For capture stream, we need more workaround to fix the
+ * position incorrect issue:
+ *
+ * 1. Wait at least 20us before reading position buffer after
+ * the interrupt generated(IOC), to make sure position update
+ * happens on frame boundary i.e. 20.833uSec for 48KHz.
+ * 2. Perform a dummy Read to DPIB register to flush DMA
+ * position value.
+ * 3. Read the DMA Position from posbuf. Now the readback
+ * value should be >= period boundary.
+ */
+ usleep_range(20, 21);
+ snd_sof_dsp_read(sdev, HDA_DSP_HDA_BAR,
+ AZX_REG_VS_SDXDPIB_XBASE +
+ (AZX_REG_VS_SDXDPIB_XINTERVAL *
+ hstream->index));
+ pos = snd_hdac_stream_get_pos_posbuf(hstream);
+ }
+ break;
+ case SOF_HDA_POSITION_QUIRK_USE_DPIB_REGISTERS:
+ /*
+ * In case VC1 traffic is disabled this is the recommended option
+ */
pos = snd_sof_dsp_read(sdev, HDA_DSP_HDA_BAR,
AZX_REG_VS_SDXDPIB_XBASE +
(AZX_REG_VS_SDXDPIB_XINTERVAL *
hstream->index));
- } else {
+ break;
+ case SOF_HDA_POSITION_QUIRK_USE_DPIB_DDR_UPDATE:
/*
- * For capture stream, we need more workaround to fix the
- * position incorrect issue:
- *
- * 1. Wait at least 20us before reading position buffer after
- * the interrupt generated(IOC), to make sure position update
- * happens on frame boundary i.e. 20.833uSec for 48KHz.
- * 2. Perform a dummy Read to DPIB register to flush DMA
- * position value.
- * 3. Read the DMA Position from posbuf. Now the readback
- * value should be >= period boundary.
+ * This is the recommended option when VC1 is enabled.
+ * While this isn't needed for SOF platforms it's added for
+ * consistency and debug.
*/
- usleep_range(20, 21);
- snd_sof_dsp_read(sdev, HDA_DSP_HDA_BAR,
- AZX_REG_VS_SDXDPIB_XBASE +
- (AZX_REG_VS_SDXDPIB_XINTERVAL *
- hstream->index));
pos = snd_hdac_stream_get_pos_posbuf(hstream);
+ break;
+ default:
+ dev_err_once(sdev->dev, "hda_position_quirk value %d not supported\n",
+ sof_hda_position_quirk);
+ pos = 0;
+ break;
}
if (pos >= hstream->bufsize)
diff --git a/sound/soc/sof/intel/hda.c b/sound/soc/sof/intel/hda.c
index 2c0d4d06ab364..25200a0e1dc9d 100644
--- a/sound/soc/sof/intel/hda.c
+++ b/sound/soc/sof/intel/hda.c
@@ -440,6 +440,10 @@ MODULE_PARM_DESC(use_msi, "SOF HDA use PCI MSI mode");
#define hda_use_msi (1)
#endif
+int sof_hda_position_quirk = SOF_HDA_POSITION_QUIRK_USE_DPIB_REGISTERS;
+module_param_named(position_quirk, sof_hda_position_quirk, int, 0444);
+MODULE_PARM_DESC(position_quirk, "SOF HDaudio position quirk");
+
static char *hda_model;
module_param(hda_model, charp, 0444);
MODULE_PARM_DESC(hda_model, "Use the given HDA board model.");
@@ -618,7 +622,10 @@ static int hda_init(struct snd_sof_dev *sdev)
/* HDA bus init */
sof_hda_bus_init(bus, &pci->dev);
- bus->use_posbuf = 1;
+ if (sof_hda_position_quirk == SOF_HDA_POSITION_QUIRK_USE_DPIB_REGISTERS)
+ bus->use_posbuf = 0;
+ else
+ bus->use_posbuf = 1;
bus->bdl_pos_adj = 0;
bus->sync_write = 1;
diff --git a/sound/soc/sof/intel/hda.h b/sound/soc/sof/intel/hda.h
index 1195018a1f4f5..dba4733ccf9ae 100644
--- a/sound/soc/sof/intel/hda.h
+++ b/sound/soc/sof/intel/hda.h
@@ -738,4 +738,10 @@ struct sof_ipc_dai_config;
int hda_ctrl_dai_widget_setup(struct snd_soc_dapm_widget *w);
int hda_ctrl_dai_widget_free(struct snd_soc_dapm_widget *w);
+#define SOF_HDA_POSITION_QUIRK_USE_SKYLAKE_LEGACY (0) /* previous implementation */
+#define SOF_HDA_POSITION_QUIRK_USE_DPIB_REGISTERS (1) /* recommended if VC0 only */
+#define SOF_HDA_POSITION_QUIRK_USE_DPIB_DDR_UPDATE (2) /* recommended with VC0 or VC1 */
+
+extern int sof_hda_position_quirk;
+
#endif
--
2.34.1
1
0

17 Jan '22
From: Takashi Iwai <tiwai(a)suse.de>
[ Upstream commit 6fadb494a638d8b8a55864ecc6ac58194f03f327 ]
Currently ALSA sequencer core tries to process the queued events as
much as possible when they become dispatchable. If applications try
to queue too massive events to be processed at the very same timing,
the sequencer core would still try to process such all events, either
in the interrupt context or via some notifier; in either away, it
might be a cause of RCU stall or such problems.
As a potential workaround for those problems, this patch adds the
upper limit of the amount of events to be processed. The remaining
events are processed in the next batch, so they won't be lost.
For the time being, it's limited up to 1000 events per queue, which
should be high enough for any normal usages.
Reported-by: Zqiang <qiang.zhang1211(a)gmail.com>
Reported-by: syzbot+bb950e68b400ab4f65f8(a)syzkaller.appspotmail.com
Link: https://lore.kernel.org/r/20211102033222.3849-1-qiang.zhang1211@gmail.com
Link: https://lore.kernel.org/r/20211207165146.2888-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai(a)suse.de>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
---
sound/core/seq/seq_queue.c | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/sound/core/seq/seq_queue.c b/sound/core/seq/seq_queue.c
index d6c02dea976c8..bc933104c3eea 100644
--- a/sound/core/seq/seq_queue.c
+++ b/sound/core/seq/seq_queue.c
@@ -235,12 +235,15 @@ struct snd_seq_queue *snd_seq_queue_find_name(char *name)
/* -------------------------------------------------------- */
+#define MAX_CELL_PROCESSES_IN_QUEUE 1000
+
void snd_seq_check_queue(struct snd_seq_queue *q, int atomic, int hop)
{
unsigned long flags;
struct snd_seq_event_cell *cell;
snd_seq_tick_time_t cur_tick;
snd_seq_real_time_t cur_time;
+ int processed = 0;
if (q == NULL)
return;
@@ -263,6 +266,8 @@ void snd_seq_check_queue(struct snd_seq_queue *q, int atomic, int hop)
if (!cell)
break;
snd_seq_dispatch_event(cell, atomic, hop);
+ if (++processed >= MAX_CELL_PROCESSES_IN_QUEUE)
+ goto out; /* the rest processed at the next batch */
}
/* Process time queue... */
@@ -272,14 +277,19 @@ void snd_seq_check_queue(struct snd_seq_queue *q, int atomic, int hop)
if (!cell)
break;
snd_seq_dispatch_event(cell, atomic, hop);
+ if (++processed >= MAX_CELL_PROCESSES_IN_QUEUE)
+ goto out; /* the rest processed at the next batch */
}
+ out:
/* free lock */
spin_lock_irqsave(&q->check_lock, flags);
if (q->check_again) {
q->check_again = 0;
- spin_unlock_irqrestore(&q->check_lock, flags);
- goto __again;
+ if (processed < MAX_CELL_PROCESSES_IN_QUEUE) {
+ spin_unlock_irqrestore(&q->check_lock, flags);
+ goto __again;
+ }
}
q->check_blocked = 0;
spin_unlock_irqrestore(&q->check_lock, flags);
--
2.34.1
1
0

[PATCH AUTOSEL 5.16 20/52] ASoC: test-component: fix null pointer dereference.
by Sasha Levin 17 Jan '22
by Sasha Levin 17 Jan '22
17 Jan '22
From: Ameer Hamza <amhamza.mgc(a)gmail.com>
[ Upstream commit c686316ec1210d43653c91e104c1e4cd0156dc89 ]
Dereferncing of_id pointer will result in exception in current
implementation since of_match_device() will assign it to NULL.
Adding NULL check for protection.
Signed-off-by: Ameer Hamza <amhamza.mgc(a)gmail.com>
Link: https://lore.kernel.org/r/20211205204200.7852-1-amhamza.mgc@gmail.com
Signed-off-by: Mark Brown <broonie(a)kernel.org>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
---
sound/soc/generic/test-component.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/sound/soc/generic/test-component.c b/sound/soc/generic/test-component.c
index 85385a771d807..8fc97d3ff0110 100644
--- a/sound/soc/generic/test-component.c
+++ b/sound/soc/generic/test-component.c
@@ -532,13 +532,16 @@ static int test_driver_probe(struct platform_device *pdev)
struct device_node *node = dev->of_node;
struct device_node *ep;
const struct of_device_id *of_id = of_match_device(test_of_match, &pdev->dev);
- const struct test_adata *adata = of_id->data;
+ const struct test_adata *adata;
struct snd_soc_component_driver *cdriv;
struct snd_soc_dai_driver *ddriv;
struct test_dai_name *dname;
struct test_priv *priv;
int num, ret, i;
+ if (!of_id)
+ return -EINVAL;
+ adata = of_id->data;
num = of_graph_get_endpoint_count(node);
if (!num) {
dev_err(dev, "no port exits\n");
--
2.34.1
1
0

[PATCH AUTOSEL 5.16 08/52] ASoC: imx-hdmi: add put_device() after of_find_device_by_node()
by Sasha Levin 17 Jan '22
by Sasha Levin 17 Jan '22
17 Jan '22
From: Ye Guojin <ye.guojin(a)zte.com.cn>
[ Upstream commit f670b274f7f6f4b2722d7f08d0fddf606a727e92 ]
This was found by coccicheck:
./sound/soc/fsl/imx-hdmi.c,209,1-7,ERROR missing put_device; call
of_find_device_by_node on line 119, but without a corresponding object
release within this function.
Reported-by: Zeal Robot <zealci(a)zte.com.cn>
Signed-off-by: Ye Guojin <ye.guojin(a)zte.com.cn>
Link: https://lore.kernel.org/r/20211110002910.134915-1-ye.guojin@zte.com.cn
Signed-off-by: Mark Brown <broonie(a)kernel.org>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
---
sound/soc/fsl/imx-hdmi.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/sound/soc/fsl/imx-hdmi.c b/sound/soc/fsl/imx-hdmi.c
index f10359a288005..929f69b758af4 100644
--- a/sound/soc/fsl/imx-hdmi.c
+++ b/sound/soc/fsl/imx-hdmi.c
@@ -145,6 +145,8 @@ static int imx_hdmi_probe(struct platform_device *pdev)
data->dai.capture_only = false;
data->dai.init = imx_hdmi_init;
+ put_device(&cpu_pdev->dev);
+
if (of_node_name_eq(cpu_np, "sai")) {
data->cpu_priv.sysclk_id[1] = FSL_SAI_CLK_MAST1;
data->cpu_priv.sysclk_id[0] = FSL_SAI_CLK_MAST1;
--
2.34.1
1
0

[PATCH v2 0/6] ASOC: amd: acp: Add generic PDM and PCI driver support for ACP
by Ajit Kumar Pandey 17 Jan '22
by Ajit Kumar Pandey 17 Jan '22
17 Jan '22
changes since v1:
PATCH 3/6 - Added platform_unregister() for error case
Ajit Kumar Pandey (6):
ASoC: amd: acp: Add generic support for PDM controller on ACP
ASoC: amd: acp: Add PDM controller based dmic dai for Renoir
ASoC: amd: acp: Add generic PCI driver module for ACP device
ASoC: amd: acp: Add ACP init()/deinit() callback for Renoir.
ASoC: amd: acp: acp-legacy: Add DMIC dai link support for Renoir
ASoC: amd: renoir: Add check for acp configuration flags.
sound/soc/amd/acp/Kconfig | 10 ++
sound/soc/amd/acp/Makefile | 4 +
sound/soc/amd/acp/acp-legacy-mach.c | 4 +-
sound/soc/amd/acp/acp-mach-common.c | 15 +++
sound/soc/amd/acp/acp-pci.c | 160 +++++++++++++++++++++++
sound/soc/amd/acp/acp-pdm.c | 181 ++++++++++++++++++++++++++
sound/soc/amd/acp/acp-renoir.c | 183 +++++++++++++++++++++++++++
sound/soc/amd/acp/amd.h | 23 +++-
sound/soc/amd/acp/chip_offset_byte.h | 26 ++++
sound/soc/amd/mach-config.h | 1 +
sound/soc/amd/renoir/rn-pci-acp3x.c | 7 +-
sound/soc/amd/renoir/rn_acp3x.h | 3 +
12 files changed, 613 insertions(+), 4 deletions(-)
create mode 100644 sound/soc/amd/acp/acp-pci.c
create mode 100644 sound/soc/amd/acp/acp-pdm.c
--
2.25.1
3
12

17 Jan '22
From: Charles Keepax <ckeepax(a)opensource.cirrus.com>
regmap_register_patch can't be used to apply the probe sequence as a
patch is already registers with the regmap by
cs35l41_register_errata_patch and only a single patch can be attached to
a single regmap. The driver doesn't currently rely on a cache sync to
re-apply this probe sequence so simply switch it to a multi write.
Signed-off-by: Charles Keepax <ckeepax(a)opensource.cirrus.com>
Signed-off-by: Lucas Tanure <tanureal(a)opensource.cirrus.com>
---
sound/pci/hda/cs35l41_hda.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/pci/hda/cs35l41_hda.c b/sound/pci/hda/cs35l41_hda.c
index 30b40d865863..c47c5f0b4e59 100644
--- a/sound/pci/hda/cs35l41_hda.c
+++ b/sound/pci/hda/cs35l41_hda.c
@@ -480,7 +480,7 @@ int cs35l41_hda_probe(struct device *dev, const char *device_name, int id, int i
acpi_hw_cfg = NULL;
if (cs35l41->reg_seq->probe) {
- ret = regmap_register_patch(cs35l41->regmap, cs35l41->reg_seq->probe,
+ ret = regmap_multi_reg_write(cs35l41->regmap, cs35l41->reg_seq->probe,
cs35l41->reg_seq->num_probe);
if (ret) {
dev_err(cs35l41->dev, "Fail to apply probe reg patch: %d\n", ret);
--
2.34.1
6
13

17 Jan '22
From: Allen-KH Cheng <Allen-KH.Cheng(a)mediatek.com>
Mediatek ADSP IPC is used to send notification or short message between processors with dsp.·
It will place the message to the share buffer and will access the ADSP mailbox registers to kick dsp.
Two mailboxes used to send notification or short message between processors with dsp
changes since v14:
- add inline for get_mtk_adsp_mbox_priv
changes since v13:
- rebase on v5.16-rc8
- add back ptr check from of_device_get_match_data
changes since v12:
- remove of_device_get_match_data ptr check:
of_device_get_match_data(dev) will never going to return NULL.
driver probe with compatible mediatek,mt8195-adsp-mbox.
changes since v11:
- remove unuseful MODULE_LICENSE
changes since v10:
- split up v9 into two separate submissions
https://patchwork.kernel.org/project/linux-mediatek/patch/20220111071011.59…
changes since v9:
- rename adsp_mbox_chan_ops to mtk_adsp_mbox_chan_ops
changes since v8:
- remove struct adsp_mbox_ch_info
- add get_mtk_adsp_mbox_priv
- use mtk_adsp_mbox_priv va_mboxreg address in adsp mbox driver
- add struct mtk_adsp_mbox_cfg for DSP mbox register offset
- remove adsp mbox register offset hard code define
- remove mtk-adsp-ipc.h reference in adsp mbox driver
changes since v7:
- add mtk prefix for adsp ipc functions
- rename adsp_mbox_ch_info to mtk_adsp_mbox_ch_info
- remove incorrect reviewers in commit message
changes since v6:
- dt-bindings: change example dtsi node.
- rename config MTK_ADSP_IPC_MBOX to MTK_ADSP_MBOX
- remove unused variable
- add reviewers
changes since v5:
- remove some redundant code
changes since v4:
- use switch ... case in adsp_ipc_recv
- add error handling path for chan_name pointer
- refine some code to be concise
changes since v3:
- reorder MTK_ADSP_IPC_MBOX config
- remove some redundant code
- remove lock in mtk-adsp-mailbox
changes since v2:
- separate adsp_mailbox into two instances
changes since v1:
- fix dt_binding_check error
Allen-KH Cheng (2):
dt-bindings: mediatek: add adsp-mbox document
mailbox: mediatek: add support for adsp mailbox controller
.../bindings/mailbox/mtk,adsp-mbox.yaml | 52 ++++++
drivers/mailbox/Kconfig | 7 +
drivers/mailbox/Makefile | 2 +
drivers/mailbox/mtk-adsp-mailbox.c | 175 ++++++++++++++++++
4 files changed, 236 insertions(+)
create mode 100644 Documentation/devicetree/bindings/mailbox/mtk,adsp-mbox.yaml
create mode 100644 drivers/mailbox/mtk-adsp-mailbox.c
--
2.18.0
1
2

17 Jan '22
From: Allen-KH Cheng <Allen-KH.Cheng(a)mediatek.com>
Mediatek ADSP IPC is used to send notification or short message between processors with dsp.·
It will place the message to the share buffer and will access the ADSP mailbox registers to kick dsp.
Two mailboxes used to send notification or short message between processors with dsp
changes since v13:
- rebase on v5.16-rc8
- add back ptr check from of_device_get_match_data
changes since v12:
- remove of_device_get_match_data ptr check:
of_device_get_match_data(dev) will never going to return NULL.
driver probe with compatible mediatek,mt8195-adsp-mbox.
changes since v11:
- remove unuseful MODULE_LICENSE
changes since v10:
- split up v9 into two separate submissions
https://patchwork.kernel.org/project/linux-mediatek/patch/20220111071011.59…
changes since v9:
- rename adsp_mbox_chan_ops to mtk_adsp_mbox_chan_ops
changes since v8:
- remove struct adsp_mbox_ch_info
- add get_mtk_adsp_mbox_priv
- use mtk_adsp_mbox_priv va_mboxreg address in adsp mbox driver
- add struct mtk_adsp_mbox_cfg for DSP mbox register offset
- remove adsp mbox register offset hard code define
- remove mtk-adsp-ipc.h reference in adsp mbox driver
changes since v7:
- add mtk prefix for adsp ipc functions
- rename adsp_mbox_ch_info to mtk_adsp_mbox_ch_info
- remove incorrect reviewers in commit message
changes since v6:
- dt-bindings: change example dtsi node.
- rename config MTK_ADSP_IPC_MBOX to MTK_ADSP_MBOX
- remove unused variable
- add reviewers
changes since v5:
- remove some redundant code
changes since v4:
- use switch ... case in adsp_ipc_recv
- add error handling path for chan_name pointer
- refine some code to be concise
changes since v3:
- reorder MTK_ADSP_IPC_MBOX config
- remove some redundant code
- remove lock in mtk-adsp-mailbox
changes since v2:
- separate adsp_mailbox into two instances
changes since v1:
- fix dt_binding_check error
Allen-KH Cheng (2):
dt-bindings: mediatek: add adsp-mbox document
mailbox: mediatek: add support for adsp mailbox controller
.../bindings/mailbox/mtk,adsp-mbox.yaml | 52 ++++++
drivers/mailbox/Kconfig | 7 +
drivers/mailbox/Makefile | 2 +
drivers/mailbox/mtk-adsp-mailbox.c | 175 ++++++++++++++++++
4 files changed, 236 insertions(+)
create mode 100644 Documentation/devicetree/bindings/mailbox/mtk,adsp-mbox.yaml
create mode 100644 drivers/mailbox/mtk-adsp-mailbox.c
--
2.18.0
2
4

17 Jan '22
When SND_SOC_STM32_DFSDM is selected,
and GPIOLIB is not selected,
Kbuild gives the following warning:
WARNING: unmet direct dependencies detected for SND_SOC_DMIC
Depends on [n]: SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && GPIOLIB [=n]
Selected by [y]:
- SND_SOC_STM32_DFSDM [=y] && SOUND [=y] && !UML && SND [=y] && (ARCH_STM32 || COMPILE_TEST [=y]) && SND_SOC [=y] && STM32_DFSDM_ADC [=y]
This is because SND_SOC_STM32_DFSDM selects
SND_SOC_DMIC without selecting or depending on
GPIOLIB, despite SND_SOC_DMIC depending on GPIOLIB.
This unmet dependency bug was detected by Kismet,
a static analysis tool for Kconfig. Please advise
if this is not the appropriate solution.
Signed-off-by: Julian Braha <julianbraha(a)gmail.com>
---
sound/soc/stm/Kconfig | 1 +
1 file changed, 1 insertion(+)
diff --git a/sound/soc/stm/Kconfig b/sound/soc/stm/Kconfig
index da1f7a16605b..bfc11b606bbd 100644
--- a/sound/soc/stm/Kconfig
+++ b/sound/soc/stm/Kconfig
@@ -37,6 +37,7 @@ config SND_SOC_STM32_DFSDM
depends on ARCH_STM32 || COMPILE_TEST
depends on SND_SOC
depends on STM32_DFSDM_ADC
+ depends on GPIOLIB
select SND_SOC_GENERIC_DMAENGINE_PCM
select SND_SOC_DMIC
select IIO_BUFFER_CB
--
2.32.0
1
0

[PATCH] ASoC: intel: fix unmet dependencies on GPIOLIB for SND_SOC_DMIC and SND_SOC_MAX98357A
by Julian Braha 17 Jan '22
by Julian Braha 17 Jan '22
17 Jan '22
When SND_SOC_INTEL_SOF_CS42L42_MACH is selected,
and GPIOLIB is not selected,
Kbuild gives the following warnings:
WARNING: unmet direct dependencies detected for SND_SOC_MAX98357A
Depends on [n]: SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && GPIOLIB [=n]
Selected by [y]:
- SND_SOC_INTEL_SOF_CS42L42_MACH [=y] && SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && SND_SOC_INTEL_MACH [=y] && (SND_SOC_SOF_HDA_LINK [=y] || SND_SOC_SOF_BAYTRAIL [=y]) && I2C [=y] && ACPI [=y] && SND_HDA_CODEC_HDMI [=y] && SND_SOC_SOF_HDA_AUDIO_CODEC [=y] && (MFD_INTEL_LPSS [=y] || COMPILE_TEST [=n])
WARNING: unmet direct dependencies detected for SND_SOC_DMIC
Depends on [n]: SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && GPIOLIB [=n]
Selected by [y]:
- SND_SOC_INTEL_SOF_CS42L42_MACH [=y] && SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && SND_SOC_INTEL_MACH [=y] && (SND_SOC_SOF_HDA_LINK [=y] || SND_SOC_SOF_BAYTRAIL [=y]) && I2C [=y] && ACPI [=y] && SND_HDA_CODEC_HDMI [=y] && SND_SOC_SOF_HDA_AUDIO_CODEC [=y] && (MFD_INTEL_LPSS [=y] || COMPILE_TEST [=n])
This is because SND_SOC_INTEL_SOF_CS42L42_MACH
selects SND_SOC_MAX98357A and SND_SOC_DMIC without
selecting or depending on GPIOLIB, despite these
config options depending on GPIOLIB.
These unmet dependency bugs were detected by Kismet,
a static analysis tool for Kconfig. Please advise
if this is not the appropriate solution.
Signed-off-by: Julian Braha <julianbraha(a)gmail.com>
---
sound/soc/intel/boards/Kconfig | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/sound/soc/intel/boards/Kconfig b/sound/soc/intel/boards/Kconfig
index 34ccefcc30c7..6309a37789c7 100644
--- a/sound/soc/intel/boards/Kconfig
+++ b/sound/soc/intel/boards/Kconfig
@@ -279,6 +279,7 @@ endif ## SND_SOC_INTEL_SKL
config SND_SOC_INTEL_DA7219_MAX98357A_GENERIC
tristate
+ depends on GPIOLIB
select SND_SOC_DA7219
select SND_SOC_MAX98357A
select SND_SOC_MAX98390
@@ -288,6 +289,7 @@ config SND_SOC_INTEL_DA7219_MAX98357A_GENERIC
config SND_SOC_INTEL_BXT_DA7219_MAX98357A_COMMON
tristate
+ depends on GPIOLIB
select SND_SOC_INTEL_DA7219_MAX98357A_GENERIC
if SND_SOC_INTEL_APL
@@ -485,7 +487,7 @@ config SND_SOC_INTEL_SOF_RT5682_MACH
config SND_SOC_INTEL_SOF_CS42L42_MACH
tristate "SOF with cs42l42 codec in I2S Mode"
- depends on I2C && ACPI
+ depends on I2C && ACPI && GPIOLIB
depends on ((SND_HDA_CODEC_HDMI && SND_SOC_SOF_HDA_AUDIO_CODEC) &&\
(MFD_INTEL_LPSS || COMPILE_TEST))
select SND_SOC_CS42L42
--
2.32.0
1
0
alsa-project/alsa-ucm-conf pull request #134 was edited from tomfitzhenry:
Fixes https://github.com/alsa-project/alsa-ucm-conf/issues/124.
The DTS configuration has had a unique audio card name since 5.14:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arc…
This UCM config is copied from https://gitlab.com/pine64-org/pine64-alsa-ucm/, which is BSD-3-Clause licensed.
This UCM has been tested via Pulseaudio's ALSA_CONFIG_UCM2 environment variable, but I've not yet tested that this UCM, when included in this package, is correctly recognised on a PinePhone as part of this
Todo:
* [ ] Test that this UCM is correctly recognised on a PinePhone.
See also:
* https://gitlab.com/pine64-org/pine64-alsa-ucm/-/merge_requests/1
* https://gitlab.com/pine64-org/pine64-alsa-ucm/-/issues/3
Request URL : https://github.com/alsa-project/alsa-ucm-conf/pull/134
Patch URL : https://github.com/alsa-project/alsa-ucm-conf/pull/134.patch
Repository URL: https://github.com/alsa-project/alsa-ucm-conf
1
0
alsa-project/alsa-ucm-conf pull request #134 was opened from tomfitzhenry:
Fixes https://github.com/alsa-project/alsa-ucm-conf/issues/124.
The DTS configuration has had a unique audio card name since 5.14:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arc…
This UCM config is copied from https://gitlab.com/pine64-org/pine64-alsa-ucm/, which is BSD-3-Clause licensed.
This UCM has been tested via Pulseaudio's ALSA_CONFIG_UCM2 environment variable, but I've not yet tested that this UCM, when included in this package, is correctly recognised on a PinePhone as part of this
Todo:
* [ ] Test that this UCM is correctly recognised on a PinePhone.
See also:
* https://gitlab.com/pine64-org/pine64-alsa-ucm/-/merge_requests/1
* https://gitlab.com/pine64-org/pine64-alsa-ucm/-/issues/3
Request URL : https://github.com/alsa-project/alsa-ucm-conf/pull/134
Patch URL : https://github.com/alsa-project/alsa-ucm-conf/pull/134.patch
Repository URL: https://github.com/alsa-project/alsa-ucm-conf
1
0

[PATCH] ALSA: usb-audio: add mapping for MSI MPG X570S Carbon Max Wifi.
by Johannes Schickel 16 Jan '22
by Johannes Schickel 16 Jan '22
16 Jan '22
The USB audio device 0db0:419c based on the Realtek ALC4080 chip exposes
all playback volume controls as "PCM". This is makes distinguishing the
individual functions hard.
The added mapping distinguishes all playback volume controls as their
respective function:
- Speaker - for back panel output
- Frontpanel Headphone - for front panel output
- IEC958 - for digital output on the back panel
This clarifies the individual volume control functions for users.
Signed-off-by: Johannes Schickel <lordhoto(a)gmail.com>
---
sound/usb/mixer_maps.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/sound/usb/mixer_maps.c b/sound/usb/mixer_maps.c
index 5d391f62351b..96991ddf5055 100644
--- a/sound/usb/mixer_maps.c
+++ b/sound/usb/mixer_maps.c
@@ -431,6 +431,14 @@ static const struct usbmix_name_map aorus_master_alc1220vb_map[] = {
{}
};
+/* MSI MPG X570S Carbon Max Wifi with ALC4080 */
+static const struct usbmix_name_map msi_mpg_x570s_carbon_max_wifi_alc4080_map[] = {
+ { 29, "Speaker Playback" },
+ { 30, "Front Headphone Playback" },
+ { 32, "IEC958 Playback" },
+ {}
+};
+
/*
* Control map entries
*/
@@ -577,6 +585,10 @@ static const struct usbmix_ctl_map usbmix_ctl_maps[] = {
.map = trx40_mobo_map,
.connector_map = trx40_mobo_connector_map,
},
+ { /* MSI MPG X570S Carbon Max Wifi */
+ .id = USB_ID(0x0db0, 0x419c),
+ .map = msi_mpg_x570s_carbon_max_wifi_alc4080_map,
+ },
{ /* MSI TRX40 */
.id = USB_ID(0x0db0, 0x543d),
.map = trx40_mobo_map,
--
2.34.1
2
1
Some weird devices set the codec SSID vendor ID 0, and
snd_pci_quirk_lookup_id() loop aborts at the point although it should
still try matching with the SSID device ID. This resulted in a
missing quirk for some old Macs.
Fix the loop termination condition to check both subvendor and
subdevice.
Fixes: 73355ddd8775 ("ALSA: hda: Code refactoring snd_hda_pick_fixup()")
Cc: <stable(a)vger.kernel.org>
BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=215495
Signed-off-by: Takashi Iwai <tiwai(a)suse.de>
---
v1->v2: Fix a typo of logical OR in the condition
sound/core/misc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/core/misc.c b/sound/core/misc.c
index 3579dd7a161f..50e4aaa6270d 100644
--- a/sound/core/misc.c
+++ b/sound/core/misc.c
@@ -112,7 +112,7 @@ snd_pci_quirk_lookup_id(u16 vendor, u16 device,
{
const struct snd_pci_quirk *q;
- for (q = list; q->subvendor; q++) {
+ for (q = list; q->subvendor || q->subdevice; q++) {
if (q->subvendor != vendor)
continue;
if (!q->subdevice ||
--
2.31.1
1
0
Some weird devices set the codec SSID vendor ID 0, and
snd_pci_quirk_lookup_id() loop aborts at the point although it should
still try matching with the SSID device ID. This resulted in a
missing quirk for some old Macs.
Fix the loop termination condition to check both subvendor and
subdevice.
Fixes: 73355ddd8775 ("ALSA: hda: Code refactoring snd_hda_pick_fixup()")
Cc: <stable(a)vger.kernel.org>
BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=215495
Signed-off-by: Takashi Iwai <tiwai(a)suse.de>
---
sound/core/misc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/core/misc.c b/sound/core/misc.c
index 3579dd7a161f..a512c849a9e5 100644
--- a/sound/core/misc.c
+++ b/sound/core/misc.c
@@ -112,7 +112,7 @@ snd_pci_quirk_lookup_id(u16 vendor, u16 device,
{
const struct snd_pci_quirk *q;
- for (q = list; q->subvendor; q++) {
+ for (q = list; q->subvendor && q->subdevice; q++) {
if (q->subvendor != vendor)
continue;
if (!q->subdevice ||
--
2.31.1
1
1

[PATCH v2 5/5] ASoC: sh: rz-ssi: Add rz_ssi_set_substream() helper function
by Lad Prabhakar 15 Jan '22
by Lad Prabhakar 15 Jan '22
15 Jan '22
A copy of substream pointer is stored in priv structure during
rz_ssi_dai_trigger() callback ie in SNDRV_PCM_TRIGGER_START case
and the pointer is assigned to NULL in case of SNDRV_PCM_TRIGGER_STOP.
The driver used the locks only in rz_ssi_stream_is_valid() and assigned
the local substream pointer to NULL in rz_ssi_dai_trigger() callback but
never locked it while making a local copy.
This patch adds the rz_ssi_set_substream() helper function to set the
substream pointer with locks acquired and replaces the instances of
setting the local substream pointer with the rz_ssi_set_substream()
function.
Reported-by: Pavel Machek <pavel(a)denx.de>
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj(a)bp.renesas.com>
Reviewed-by: Biju Das <biju.das.jz(a)bp.renesas.com>
---
v1->v2
* Dropped rz_ssi_get_substream() helper.
---
sound/soc/sh/rz-ssi.c | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)
diff --git a/sound/soc/sh/rz-ssi.c b/sound/soc/sh/rz-ssi.c
index 2da43eecfb3e..07fdbcfa5b63 100644
--- a/sound/soc/sh/rz-ssi.c
+++ b/sound/soc/sh/rz-ssi.c
@@ -188,6 +188,17 @@ static inline bool rz_ssi_is_dma_enabled(struct rz_ssi_priv *ssi)
return (ssi->playback.dma_ch && (ssi->dma_rt || ssi->capture.dma_ch));
}
+static void rz_ssi_set_substream(struct rz_ssi_stream *strm,
+ struct snd_pcm_substream *substream)
+{
+ struct rz_ssi_priv *ssi = strm->priv;
+ unsigned long flags;
+
+ spin_lock_irqsave(&ssi->lock, flags);
+ strm->substream = substream;
+ spin_unlock_irqrestore(&ssi->lock, flags);
+}
+
static bool rz_ssi_stream_is_valid(struct rz_ssi_priv *ssi,
struct rz_ssi_stream *strm)
{
@@ -206,7 +217,7 @@ static void rz_ssi_stream_init(struct rz_ssi_stream *strm,
{
struct snd_pcm_runtime *runtime = substream->runtime;
- strm->substream = substream;
+ rz_ssi_set_substream(strm, substream);
strm->sample_width = samples_to_bytes(runtime, 1);
strm->dma_buffer_pos = 0;
strm->period_counter = 0;
@@ -224,11 +235,8 @@ static void rz_ssi_stream_quit(struct rz_ssi_priv *ssi,
struct rz_ssi_stream *strm)
{
struct snd_soc_dai *dai = rz_ssi_get_dai(strm->substream);
- unsigned long flags;
- spin_lock_irqsave(&ssi->lock, flags);
- strm->substream = NULL;
- spin_unlock_irqrestore(&ssi->lock, flags);
+ rz_ssi_set_substream(strm, NULL);
if (strm->oerr_num > 0)
dev_info(dai->dev, "overrun = %d\n", strm->oerr_num);
--
2.17.1
1
0

[PATCH v2 4/5] ASoC: sh: rz-ssi: Change return type of rz_ssi_stream_is_valid() to bool
by Lad Prabhakar 15 Jan '22
by Lad Prabhakar 15 Jan '22
15 Jan '22
rz_ssi_stream_is_valid() never returns an int, it returns the result of
a condition which is either true or false.
While at it, drop "!!" as the expression is boolean.
Reported-by: Pavel Machek <pavel(a)denx.de>
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj(a)bp.renesas.com>
Reviewed-by: Biju Das <biju.das.jz(a)bp.renesas.com>
---
v1->v2
* No change
---
sound/soc/sh/rz-ssi.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/sound/soc/sh/rz-ssi.c b/sound/soc/sh/rz-ssi.c
index 50699e94772b..2da43eecfb3e 100644
--- a/sound/soc/sh/rz-ssi.c
+++ b/sound/soc/sh/rz-ssi.c
@@ -188,14 +188,14 @@ static inline bool rz_ssi_is_dma_enabled(struct rz_ssi_priv *ssi)
return (ssi->playback.dma_ch && (ssi->dma_rt || ssi->capture.dma_ch));
}
-static int rz_ssi_stream_is_valid(struct rz_ssi_priv *ssi,
- struct rz_ssi_stream *strm)
+static bool rz_ssi_stream_is_valid(struct rz_ssi_priv *ssi,
+ struct rz_ssi_stream *strm)
{
unsigned long flags;
- int ret;
+ bool ret;
spin_lock_irqsave(&ssi->lock, flags);
- ret = !!(strm->substream && strm->substream->runtime);
+ ret = strm->substream && strm->substream->runtime;
spin_unlock_irqrestore(&ssi->lock, flags);
return ret;
--
2.17.1
1
0

[PATCH v2 3/5] ASoC: sh: rz-ssi: Drop ssi parameter from rz_ssi_stream_init()
by Lad Prabhakar 15 Jan '22
by Lad Prabhakar 15 Jan '22
15 Jan '22
ssi parameter is unused in rz_ssi_stream_init() so just drop it.
While at it, change the return type of rz_ssi_stream_init() to void
instead of int.
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj(a)bp.renesas.com>
Reviewed-by: Biju Das <biju.das.jz(a)bp.renesas.com>
---
v1->v2
* No change
---
sound/soc/sh/rz-ssi.c | 11 +++--------
1 file changed, 3 insertions(+), 8 deletions(-)
diff --git a/sound/soc/sh/rz-ssi.c b/sound/soc/sh/rz-ssi.c
index 89428945d48b..50699e94772b 100644
--- a/sound/soc/sh/rz-ssi.c
+++ b/sound/soc/sh/rz-ssi.c
@@ -201,9 +201,8 @@ static int rz_ssi_stream_is_valid(struct rz_ssi_priv *ssi,
return ret;
}
-static int rz_ssi_stream_init(struct rz_ssi_priv *ssi,
- struct rz_ssi_stream *strm,
- struct snd_pcm_substream *substream)
+static void rz_ssi_stream_init(struct rz_ssi_stream *strm,
+ struct snd_pcm_substream *substream)
{
struct snd_pcm_runtime *runtime = substream->runtime;
@@ -219,8 +218,6 @@ static int rz_ssi_stream_init(struct rz_ssi_priv *ssi,
/* fifo init */
strm->fifo_sample_size = SSI_FIFO_DEPTH;
-
- return 0;
}
static void rz_ssi_stream_quit(struct rz_ssi_priv *ssi,
@@ -723,9 +720,7 @@ static int rz_ssi_dai_trigger(struct snd_pcm_substream *substream, int cmd,
rz_ssi_reg_mask_setl(ssi, SSIFCR, SSIFCR_SSIRST, 0);
udelay(5);
- ret = rz_ssi_stream_init(ssi, strm, substream);
- if (ret)
- goto done;
+ rz_ssi_stream_init(strm, substream);
if (ssi->dma_rt) {
bool is_playback;
--
2.17.1
1
0

[PATCH v2 2/5] ASoC: sh: rz-ssi: Make the data structures available before registering the handlers
by Lad Prabhakar 15 Jan '22
by Lad Prabhakar 15 Jan '22
15 Jan '22
Initialize the spinlock and make the data structures available before
registering the interrupt handlers.
Reported-by: Pavel Machek <pavel(a)denx.de>
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj(a)bp.renesas.com>
Reviewed-by: Biju Das <biju.das.jz(a)bp.renesas.com>
---
v1->v2
* No change
---
sound/soc/sh/rz-ssi.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/sound/soc/sh/rz-ssi.c b/sound/soc/sh/rz-ssi.c
index 637802117c6c..89428945d48b 100644
--- a/sound/soc/sh/rz-ssi.c
+++ b/sound/soc/sh/rz-ssi.c
@@ -972,6 +972,9 @@ static int rz_ssi_probe(struct platform_device *pdev)
ssi->playback.priv = ssi;
ssi->capture.priv = ssi;
+ spin_lock_init(&ssi->lock);
+ dev_set_drvdata(&pdev->dev, ssi);
+
/* Error Interrupt */
ssi->irq_int = platform_get_irq_byname(pdev, "int_req");
if (ssi->irq_int < 0)
@@ -1019,8 +1022,6 @@ static int rz_ssi_probe(struct platform_device *pdev)
pm_runtime_enable(&pdev->dev);
pm_runtime_resume_and_get(&pdev->dev);
- spin_lock_init(&ssi->lock);
- dev_set_drvdata(&pdev->dev, ssi);
ret = devm_snd_soc_register_component(&pdev->dev, &rz_ssi_soc_component,
rz_ssi_soc_dai,
ARRAY_SIZE(rz_ssi_soc_dai));
--
2.17.1
1
0
Trying to make my Behringer UMC202HD audio interface work with GNU/Linux.
While doing so, I managed to make a warning disappear by editing a file in
the kernel source. The main issue I'm having with the interface isn't
gone, and
I am not sure whether to bother you people with that now. However I'd
like to
read your comments on the edit I made regarding the warning.
Details:
- Product: 1397:0507 BEHRINGER International GmbH UMC202HD 192k
- dmesg warning: clock source 41 is not valid, cannot use
- kernel: linux-5.15.13
- Edit that made the warning disappear:
$ diff -u sound/usb/clock.c.orig sound/usb/clock.c
--- sound/usb/clock.c.orig 2022-01-13 08:14:49.555281286 +0530
+++ sound/usb/clock.c 2022-01-13 08:18:38.004618792 +0530
@@ -180,7 +180,11 @@
* Sample rate changes takes more than 2 seconds for this device.
Clock
* validity request returns false during that period.
*/
- if (chip->usb_id == USB_ID(0x07fd, 0x0004)) {
+ if (chip->usb_id == USB_ID(0x07fd, 0x0004) ||
+ /* Trying the same for BEHRINGER International GmbH UMC202HD
192k */
+ chip->usb_id == USB_ID(0x1397, 0x0507)
+ )
+ {
count = 0;
while ((!ret) && (count < 50)) {
Yes, I was just adding the ID of UMC202HD to an existing workaround. I'm not
sure if the device's clock should actually be accepted (but I think so
because
the retry works, right?), or if two seconds is the right delay for UMC202HD.
The real issue I'm having with this device is related to the periodic
stuttering/pops while playback (recording is okay). I remember having
read that
UMC20x is well-supported in Linux. Maybe now they're using a different
firmware version or something? If you are interested, here is a list of
things
I've already tried:
- Different ports, including USB 2.0, and disabling xHCI using `setpci`
- Disconnecting other USB devices
- Disabling wireless
- Making sure speech-dispatcher isn't running
- Old and new GNU/Linux distros on different computers
- Switching sound servers (PulseAudio and JACK) and direct ALSA
- Different sampling rates, buffer sizes, etc.
- Lower volume levels
- Making sure there are no xruns
- tsched=0 and 1 for module-udev-detect (pulse)
- realtime-scheduling, high-priority, and nice-level (pulse)
- Choosing Performance mode for CPU Governer and disabling Intel Boost
(as recommended by Ubuntu Studio dashboard)
- lowlatency kernel
- A recent kernel (v5.15.13) built from source with oldconfig
- Clock source workaround in sound/usb/clock.c
- Quirk entries in sound/usb/implicit.c (I won't claim I did it right)
Again, I'd like to hear your comments on the clock detection workaround
first,
since that's the only thing I seem to have solved with all these hours spent
(except for learning a lot, of course). But if you have time, please
consider
the second (main) issue also. Maybe I'm posting this in the wrong place;
if so,
please let me know where to repost it (official forum or a kernel
mailing list).
Thank you,
--
Nandakumar Edamana
https://nandakumar.org
GPG Key: https://nandakumar.org/contact/gpgkey.asc
GPG Key Fingerprint: BA6B 8FDE 644F F861 B638 3E2F 45D6 05FC 646A F75D
2
7
This series fixes DP/HDMI audio for RK3399 Gru systems.
First, there was a regression with the switch to SPDIF. Patch 1 can be
taken separately as a regression fix if desired. But it's not quite so
useful (at least on Chrome OS systems) without the second part.
Second, jack detection was never upstreamed, because the hdmi-codec
dependencies were still being worked out when this platform was first
supported.
Patches cover a few subsystems. Perhaps this is something for arm-soc?
Brian Norris (3):
arm64: dts: rockchip: Switch RK3399-Gru DP to SPDIF output
drm/rockchip: cdn-dp: Support HDMI codec plug-change callback
ASoC: rk3399_gru_sound: Wire up DP jack detection
arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi | 10 +++----
drivers/gpu/drm/rockchip/cdn-dp-core.c | 28 ++++++++++++++++++++
drivers/gpu/drm/rockchip/cdn-dp-core.h | 4 +++
sound/soc/rockchip/rk3399_gru_sound.c | 20 ++++++++++++++
4 files changed, 57 insertions(+), 5 deletions(-)
--
2.34.1.703.g22d0c6ccf7-goog
1
4

14 Jan '22
There are several PCI ids associated with HP EliteBook 855 G8 Notebook
PC. Commit 0e68c4b11f1e6 ("ALSA: hda/realtek: fix mute/micmute LEDs for
HP 855 G8") covers 0x103c:0x8896, while this commit covers 0x103c:0x8895
which needs some additional work on top of the quirk from 0e68c4b11f1e6.
Note that the device can boot up with working speakers and micmute LED
without this patch, but the success rate would be quite low (order of
16 working boots across 709 boots) at least for the built-in drivers
scenario. This also means that there are some timing issues during early
boot and this patch is a workaround.
Changes are tested on v5.16. Speakers and headphones are consistenly
working, as well as mute/micmute LEDs and the internal microphone.
Signed-off-by: Alexander Sergeyev <sergeev917(a)gmail.com>
---
sound/pci/hda/patch_realtek.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 28255e752c4a..b809de2b9759 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -6784,6 +6784,7 @@ enum {
ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE,
ALC233_FIXUP_NO_AUDIO_JACK,
ALC256_FIXUP_MIC_NO_PRESENCE_AND_RESUME,
+ ALC285_FIXUP_HP_SPEAKERS_MICMUTE_LED,
};
static const struct hda_fixup alc269_fixups[] = {
@@ -8514,6 +8515,16 @@ static const struct hda_fixup alc269_fixups[] = {
.chained = true,
.chain_id = ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC
},
+ [ALC285_FIXUP_HP_SPEAKERS_MICMUTE_LED] = {
+ .type = HDA_FIXUP_VERBS,
+ .v.verbs = (const struct hda_verb[]) {
+ { 0x20, AC_VERB_SET_COEF_INDEX, 0x19 },
+ { 0x20, AC_VERB_SET_PROC_COEF, 0x8e11 },
+ { }
+ },
+ .chained = true,
+ .chain_id = ALC285_FIXUP_HP_MUTE_LED,
+ },
};
static const struct snd_pci_quirk alc269_fixup_tbl[] = {
@@ -8727,6 +8738,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
SND_PCI_QUIRK(0x103c, 0x8870, "HP ZBook Fury 15.6 Inch G8 Mobile Workstation PC", ALC285_FIXUP_HP_GPIO_AMP_INIT),
SND_PCI_QUIRK(0x103c, 0x8873, "HP ZBook Studio 15.6 Inch G8 Mobile Workstation PC", ALC285_FIXUP_HP_GPIO_AMP_INIT),
SND_PCI_QUIRK(0x103c, 0x888d, "HP ZBook Power 15.6 inch G8 Mobile Workstation PC", ALC236_FIXUP_HP_GPIO_LED),
+ SND_PCI_QUIRK(0x103c, 0x8895, "HP EliteBook 855 G8 Notebook PC", ALC285_FIXUP_HP_SPEAKERS_MICMUTE_LED),
SND_PCI_QUIRK(0x103c, 0x8896, "HP EliteBook 855 G8 Notebook PC", ALC285_FIXUP_HP_MUTE_LED),
SND_PCI_QUIRK(0x103c, 0x8898, "HP EliteBook 845 G8 Notebook PC", ALC285_FIXUP_HP_LIMIT_INT_MIC_BOOST),
SND_PCI_QUIRK(0x103c, 0x88d0, "HP Pavilion 15-eh1xxx (mainboard 88D0)", ALC287_FIXUP_HP_GPIO_LED),
--
2.34.1
2
2
The TAS5805M is a class D speaker amplifier with integrated DSP. The
example here includes a tested flat configuration for mono (PBTL)
output.
Signed-off-by: Daniel Beer <daniel.beer(a)igorinstitute.com>
---
.../devicetree/bindings/sound/tas5805m.yaml | 201 ++++++++++++++++++
1 file changed, 201 insertions(+)
create mode 100644 Documentation/devicetree/bindings/sound/tas5805m.yaml
diff --git a/Documentation/devicetree/bindings/sound/tas5805m.yaml b/Documentation/devicetree/bindings/sound/tas5805m.yaml
new file mode 100644
index 000000000000..162008e6a1ed
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/tas5805m.yaml
@@ -0,0 +1,201 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/tas5805m.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: TAS5805M audio amplifier
+
+maintainers:
+ - Daniel Beer <daniel.beer(a)igorinstitute.com>
+
+description: |
+ The TAS5805M is a class D audio amplifier with a built-in DSP.
+
+properties:
+ compatible:
+ enum:
+ - ti,tas5805m
+
+ reg:
+ maxItems: 1
+ description: |
+ I2C address of the amplifier. See the datasheet for possible values.
+
+ pvdd-supply:
+ description: |
+ Regulator for audio power supply (PVDD in the datasheet).
+
+ pdn-gpio:
+ description: |
+ Power-down control GPIO (PDN pin in the datasheet).
+
+ ti,dsp-config: |
+ description: |
+ A byte sequence giving DSP configuration. Each pair of bytes, in
+ sequence, gives a register address and a value to write. If you
+ are taking this data from TI's PPC3 tool, this should contain only
+ the register writes following the 5ms delay.
+
+examples:
+ - |
+ i2c0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ tas5805m: tas5805m@2c {
+ reg = <0x2c>;
+ compatible = "ti,tas5805m";
+ status = "ok";
+
+ pvdd-supply = <&audiopwr>;
+ pdn-gpio = <&tlmm 160 0>;
+
+ // Mono PBTL DSP configuration
+ ti,dsp-config = [
+ 00 00 7f 00 03 00 00 00 7f 00 46 01 00 00 7f 00
+ 03 02 00 00 7f 00 78 80 00 00 7f 00 61 0b 60 01
+ 7d 11 7e ff 00 01 51 05 00 00 02 04 53 00 54 00
+ 00 00 00 00 00 00 00 00 00 00 7f 00 66 87 7f 8c
+ 00 29 18 00 19 40 1a 26 1b e7 1c 00 1d 40 1e 26
+ 1f e7 20 00 21 00 22 00 23 00 24 00 25 00 26 00
+ 27 00 00 2a 24 00 25 80 26 00 27 00 28 00 29 80
+ 2a 00 2b 00 30 00 31 71 32 94 33 9a 00 2c 0c 00
+ 0d 00 0e 00 0f 00 10 00 11 00 12 00 13 00 14 00
+ 15 80 16 00 17 00 18 00 19 00 1a 00 1b 00 1c 00
+ 1d 80 1e 00 1f 00 20 00 21 00 22 00 23 00 28 00
+ 29 80 2a 00 2b 00 2c 00 2d 00 2e 00 2f 00 34 00
+ 35 80 36 00 37 00 38 00 39 00 3a 00 3b 00 48 00
+ 49 80 4a 00 4b 00 4c 00 4d 00 4e 00 4f 00 5c 00
+ 5d 00 5e 57 5f 62 60 00 61 89 62 37 63 4c 64 08
+ 65 13 66 85 67 62 68 40 69 00 6a 00 6b 00 6c 02
+ 6d 66 6e c4 6f 1b 74 00 75 80 76 00 77 00 00 2d
+ 18 7d 19 99 1a 3b 1b e5 1c 00 1d 00 1e 57 1f 62
+ 20 00 21 00 22 00 23 00 24 00 25 00 26 00 27 00
+ 28 00 29 00 2a 00 2b 00 2c 00 2d 80 2e 00 2f 00
+ 00 2e 24 11 25 3d 26 c3 27 1a 00 00 7f aa 00 24
+ 18 08 19 00 1a 00 1b 00 1c 00 1d 00 1e 00 1f 00
+ 20 00 21 00 22 00 23 00 24 00 25 00 26 00 27 00
+ 28 00 29 00 2a 00 2b 00 2c 08 2d 00 2e 00 2f 00
+ 30 00 31 00 32 00 33 00 34 00 35 00 36 00 37 00
+ 38 00 39 00 3a 00 3b 00 3c 00 3d 00 3e 00 3f 00
+ 40 08 41 00 42 00 43 00 44 00 45 00 46 00 47 00
+ 48 00 49 00 4a 00 4b 00 4c 00 4d 00 4e 00 4f 00
+ 50 00 51 00 52 00 53 00 54 08 55 00 56 00 57 00
+ 58 00 59 00 5a 00 5b 00 5c 00 5d 00 5e 00 5f 00
+ 60 00 61 00 62 00 63 00 64 00 65 00 66 00 67 00
+ 68 08 69 00 6a 00 6b 00 6c 00 6d 00 6e 00 6f 00
+ 70 00 71 00 72 00 73 00 74 00 75 00 76 00 77 00
+ 78 00 79 00 7a 00 7b 00 7c 08 7d 00 7e 00 7f 00
+ 00 25 08 00 09 00 0a 00 0b 00 0c 00 0d 00 0e 00
+ 0f 00 10 00 11 00 12 00 13 00 14 00 15 00 16 00
+ 17 00 18 08 19 00 1a 00 1b 00 1c 00 1d 00 1e 00
+ 1f 00 20 00 21 00 22 00 23 00 24 00 25 00 26 00
+ 27 00 28 00 29 00 2a 00 2b 00 2c 08 2d 00 2e 00
+ 2f 00 30 00 31 00 32 00 33 00 34 00 35 00 36 00
+ 37 00 38 00 39 00 3a 00 3b 00 3c 00 3d 00 3e 00
+ 3f 00 40 08 41 00 42 00 43 00 44 00 45 00 46 00
+ 47 00 48 00 49 00 4a 00 4b 00 4c 00 4d 00 4e 00
+ 4f 00 50 00 51 00 52 00 53 00 54 08 55 00 56 00
+ 57 00 58 00 59 00 5a 00 5b 00 5c 00 5d 00 5e 00
+ 5f 00 60 00 61 00 62 00 63 00 64 00 65 00 66 00
+ 67 00 68 08 69 00 6a 00 6b 00 6c 00 6d 00 6e 00
+ 6f 00 70 00 71 00 72 00 73 00 74 00 75 00 76 00
+ 77 00 78 00 79 00 7a 00 7b 00 7c 08 7d 00 7e 00
+ 7f 00 00 26 08 00 09 00 0a 00 0b 00 0c 00 0d 00
+ 0e 00 0f 00 10 00 11 00 12 00 13 00 14 00 15 00
+ 16 00 17 00 18 08 19 00 1a 00 1b 00 1c 00 1d 00
+ 1e 00 1f 00 20 00 21 00 22 00 23 00 24 00 25 00
+ 26 00 27 00 28 00 29 00 2a 00 2b 00 2c 08 2d 00
+ 2e 00 2f 00 30 00 31 00 32 00 33 00 34 00 35 00
+ 36 00 37 00 38 00 39 00 3a 00 3b 00 3c 00 3d 00
+ 3e 00 3f 00 40 08 41 00 42 00 43 00 44 00 45 00
+ 46 00 47 00 48 00 49 00 4a 00 4b 00 4c 00 4d 00
+ 4e 00 4f 00 50 00 51 00 52 00 53 00 54 08 55 00
+ 56 00 57 00 58 00 59 00 5a 00 5b 00 5c 00 5d 00
+ 5e 00 5f 00 60 00 61 00 62 00 63 00 64 00 65 00
+ 66 00 67 00 68 08 69 00 6a 00 6b 00 6c 00 6d 00
+ 6e 00 6f 00 70 00 71 00 72 00 73 00 74 00 75 00
+ 76 00 77 00 78 00 79 00 7a 00 7b 00 7c 08 7d 00
+ 7e 00 7f 00 00 27 08 00 09 00 0a 00 0b 00 0c 00
+ 0d 00 0e 00 0f 00 10 00 11 00 12 00 13 00 14 00
+ 15 00 16 00 17 00 18 08 19 00 1a 00 1b 00 1c 00
+ 1d 00 1e 00 1f 00 20 00 21 00 22 00 23 00 24 00
+ 25 00 26 00 27 00 28 00 29 00 2a 00 2b 00 2c 08
+ 2d 00 2e 00 2f 00 30 00 31 00 32 00 33 00 34 00
+ 35 00 36 00 37 00 38 00 39 00 3a 00 3b 00 3c 00
+ 3d 00 3e 00 3f 00 40 08 41 00 42 00 43 00 44 00
+ 45 00 46 00 47 00 48 00 49 00 4a 00 4b 00 4c 00
+ 4d 00 4e 00 4f 00 50 00 51 00 52 00 53 00 54 08
+ 55 00 56 00 57 00 58 00 59 00 5a 00 5b 00 5c 00
+ 5d 00 5e 00 5f 00 60 00 61 00 62 00 63 00 64 00
+ 65 00 66 00 67 00 68 08 69 00 6a 00 6b 00 6c 00
+ 6d 00 6e 00 6f 00 70 00 71 00 72 00 73 00 74 00
+ 75 00 76 00 77 00 78 00 79 00 7a 00 7b 00 7c 08
+ 7d 00 7e 00 7f 00 00 28 08 00 09 00 0a 00 0b 00
+ 0c 00 0d 00 0e 00 0f 00 10 00 11 00 12 00 13 00
+ 14 00 15 00 16 00 17 00 18 08 19 00 1a 00 1b 00
+ 1c 00 1d 00 1e 00 1f 00 20 00 21 00 22 00 23 00
+ 24 00 25 00 26 00 27 00 28 00 29 00 2a 00 2b 00
+ 2c 08 2d 00 2e 00 2f 00 30 00 31 00 32 00 33 00
+ 34 00 35 00 36 00 37 00 38 00 39 00 3a 00 3b 00
+ 3c 00 3d 00 3e 00 3f 00 40 08 41 00 42 00 43 00
+ 44 00 45 00 46 00 47 00 48 00 49 00 4a 00 4b 00
+ 4c 00 4d 00 4e 00 4f 00 50 00 51 00 52 00 53 00
+ 54 08 55 00 56 00 57 00 58 00 59 00 5a 00 5b 00
+ 5c 00 5d 00 5e 00 5f 00 60 00 61 00 62 00 63 00
+ 64 00 65 00 66 00 67 00 68 08 69 00 6a 00 6b 00
+ 6c 00 6d 00 6e 00 6f 00 70 00 71 00 72 00 73 00
+ 74 00 75 00 76 00 77 00 78 00 79 00 7a 00 7b 00
+ 7c 08 7d 00 7e 00 7f 00 00 29 08 00 09 00 0a 00
+ 0b 00 0c 00 0d 00 0e 00 0f 00 10 00 11 00 12 00
+ 13 00 14 00 15 00 16 00 17 00 00 2e 7c 08 7d 00
+ 7e 00 7f 00 00 2f 08 00 09 00 0a 00 0b 00 0c 00
+ 0d 00 0e 00 0f 00 10 00 11 00 12 00 13 00 14 00
+ 15 00 16 00 17 00 1c 08 1d 00 1e 00 1f 00 20 00
+ 21 00 22 00 23 00 24 00 25 00 26 00 27 00 28 00
+ 29 00 2a 00 2b 00 2c 00 2d 00 2e 00 2f 00 00 2a
+ 48 00 49 01 4a 64 4b 0a 4c 00 4d 01 4e 64 4f 0a
+ 50 00 51 01 52 64 53 0a 54 7e 55 d0 56 b5 57 2d
+ 58 82 59 59 5a 05 5b 7b 00 00 7f 8c 00 2b 34 00
+ 35 0d 36 a6 37 86 38 00 39 0d 3a a6 3b 86 3c 00
+ 3d 06 3e d3 3f 72 40 00 41 00 42 00 43 00 44 00
+ 45 00 46 00 47 00 48 ff 49 81 4a 47 4b ae 4c f9
+ 4d 06 4e 21 4f a9 50 fe 51 01 52 c0 53 79 54 00
+ 55 00 56 00 57 00 58 00 59 00 5a 00 5b 00 00 2d
+ 58 01 59 53 5a 8f 5b cc 5c 01 5d 53 5e 8f 5f cc
+ 60 00 61 22 62 1d 63 95 64 00 65 00 66 00 67 00
+ 68 00 69 00 6a 00 6b 00 6c ff 6d 81 6e 47 6f ae
+ 70 f9 71 06 72 21 73 a9 74 fe 75 01 76 c0 77 79
+ 78 00 79 00 7a 00 7b 00 7c 00 7d 00 7e 00 7f 00
+ 00 00 7f aa 00 2e 40 01 41 d7 42 e8 43 0a 44 01
+ 45 d7 46 e8 47 0a 48 01 49 d7 4a e8 4b 0a 4c 68
+ 4d 82 4e f5 4f bf 50 a7 51 9a 52 74 53 5a 00 2b
+ 20 6a 21 5a 22 dd 23 c9 24 95 25 a5 26 22 27 37
+ 28 6a 29 5a 2a dd 2b c9 2c 68 2d 82 2e f5 2f bf
+ 30 a7 31 9a 32 74 33 5a 0c 6a 0d 5a 0e dd 0f c9
+ 10 95 11 a5 12 22 13 37 14 6a 15 5a 16 dd 17 c9
+ 18 68 19 82 1a f5 1b bf 1c a7 1d 9a 1e 74 1f 5a
+ 00 2a 34 00 35 01 36 64 37 0a 38 00 39 01 3a 64
+ 3b 0a 3c 00 3d 01 3e 64 3f 0a 40 7e 41 d0 42 b5
+ 43 2d 44 82 45 59 46 05 47 7b 00 00 7f 8c 00 2d
+ 30 01 31 53 32 8f 33 cc 34 01 35 53 36 8f 37 cc
+ 38 00 39 03 3a 69 3b c5 3c 00 3d 00 3e 00 3f 00
+ 40 00 41 00 42 00 43 00 44 ff 45 81 46 47 47 ae
+ 48 f9 49 06 4a 21 4b a9 4c fe 4d 01 4e c0 4f 79
+ 50 00 51 00 52 00 53 00 54 00 55 00 56 00 57 00
+ 00 00 7f aa 00 2a 5c 7e 5d d2 5e 19 5f 37 60 81
+ 61 2d 62 e6 63 c9 64 7e 65 d2 66 19 67 37 68 7e
+ 69 d0 6a b5 6b 2d 6c 82 6d 59 6e 05 6f 7b 70 7e
+ 71 d2 72 19 73 37 74 81 75 2d 76 e6 77 c9 78 7e
+ 79 d2 7a 19 7b 37 7c 7e 7d d0 7e b5 7f 2d 00 2b
+ 08 82 09 59 0a 05 0b 7b 00 2e 54 01 55 d7 56 e8
+ 57 0a 58 01 59 d7 5a e8 5b 0a 5c 01 5d d7 5e e8
+ 5f 0a 60 68 61 82 62 f5 63 bf 64 a7 65 9a 66 74
+ 67 5a 00 00 7f 8c 00 2e 10 00 11 80 12 00 13 00
+ 0c 00 0d 80 0e 00 0f 00 08 00 09 80 0a 00 0b 00
+ 18 00 19 80 1a 00 1b 00 1c 40 1d 00 1e 00 1f 00
+ 20 40 21 00 22 00 23 00 00 00 7f 00 30 00 4c 30
+ 03 03 00 00 7f 00 78 80
+ ];
+ };
+ };
--
2.30.2
3
4
From: Allen-KH Cheng <Allen-KH.Cheng(a)mediatek.com>
This patch provides mtk adsp ipc support for sof.
ADSP IPC protocol offers (send/recv) interfaces using mediatek-mailbox APIs.
changes since v3:
- rebase on v5.16-rc8
- update reviewers
changes since v2:
- add out tag for two memroy free phases
changes since v1:
- add comments for mtk_adsp_ipc_send and mtk_adsp_ipc_recv
- remove unuseful MODULE_LICENSE
- change label name to out_free
Allen-KH Cheng (1):
firmware: mediatek: add adsp ipc protocol interface
drivers/firmware/Kconfig | 1 +
drivers/firmware/Makefile | 1 +
drivers/firmware/mediatek/Kconfig | 9 +
drivers/firmware/mediatek/Makefile | 2 +
drivers/firmware/mediatek/mtk-adsp-ipc.c | 160 ++++++++++++++++++
.../linux/firmware/mediatek/mtk-adsp-ipc.h | 65 +++++++
6 files changed, 238 insertions(+)
create mode 100644 drivers/firmware/mediatek/Kconfig
create mode 100644 drivers/firmware/mediatek/Makefile
create mode 100644 drivers/firmware/mediatek/mtk-adsp-ipc.c
create mode 100644 include/linux/firmware/mediatek/mtk-adsp-ipc.h
--
2.18.0
1
1

14 Jan '22
From: Allen-KH Cheng <Allen-KH.Cheng(a)mediatek.com>
Mediatek ADSP IPC is used to send notification or short message between processors with dsp.·
It will place the message to the share buffer and will access the ADSP mailbox registers to kick dsp.
Two mailboxes used to send notification or short message between processors with dsp
changes since v12:
- remove of_device_get_match_data ptr check:
of_device_get_match_data(dev) will never going to return NULL.
driver probe with compatible mediatek,mt8195-adsp-mbox.
changes since v11:
- remove unuseful MODULE_LICENSE
changes since v10:
- split up v9 into two separate submissions
https://patchwork.kernel.org/project/linux-mediatek/patch/20220111071011.59…
changes since v9:
- rename adsp_mbox_chan_ops to mtk_adsp_mbox_chan_ops
changes since v8:
- remove struct adsp_mbox_ch_info
- add get_mtk_adsp_mbox_priv
- use mtk_adsp_mbox_priv va_mboxreg address in adsp mbox driver
- add struct mtk_adsp_mbox_cfg for DSP mbox register offset
- remove adsp mbox register offset hard code define
- remove mtk-adsp-ipc.h reference in adsp mbox driver
changes since v7:
- add mtk prefix for adsp ipc functions
- rename adsp_mbox_ch_info to mtk_adsp_mbox_ch_info
- remove incorrect reviewers in commit message
changes since v6:
- dt-bindings: change example dtsi node.
- rename config MTK_ADSP_IPC_MBOX to MTK_ADSP_MBOX
- remove unused variable
- add reviewers
changes since v5:
- remove some redundant code
changes since v4:
- use switch ... case in adsp_ipc_recv
- add error handling path for chan_name pointer
- refine some code to be concise
changes since v3:
- reorder MTK_ADSP_IPC_MBOX config
- remove some redundant code
- remove lock in mtk-adsp-mailbox
changes since v2:
- separate adsp_mailbox into two instances
changes since v1:
- fix dt_binding_check error
Allen-KH Cheng (2):
dt-bindings: mediatek: add adsp-mbox document
mailbox: mediatek: add support for adsp mailbox controller
.../bindings/mailbox/mtk,adsp-mbox.yaml | 52 ++++++
drivers/mailbox/Kconfig | 7 +
drivers/mailbox/Makefile | 2 +
drivers/mailbox/mtk-adsp-mailbox.c | 172 ++++++++++++++++++
4 files changed, 233 insertions(+)
create mode 100644 Documentation/devicetree/bindings/mailbox/mtk,adsp-mbox.yaml
create mode 100644 drivers/mailbox/mtk-adsp-mailbox.c
--
2.18.0
2
4

14 Jan '22
This pair of patches implements support for the TAS5805M class D audio
amplifier. This driver, and the example configuration in the device-tree
file, were originally based on a 4.19 series kernel and have been
modified slightly from the tested version.
This resubmission differs from the first as follows:
- Some explanatory comments and constants have been introduced
- The volume control allows L/R to be set independently
- gpiod is used, and regmap is used directly
- .trigger is used instead of DAPM to coordinate DSP boot
- The component is manually registered after power-on, and explicitly
deregistered prior to power-off
- Corrections have been made to the bindings file
Daniel Beer (2):
ASoC: add support for TAS5805M digital amplifier
ASoC: dt-bindings: add bindings for TI TAS5805M.
.../devicetree/bindings/sound/tas5805m.yaml | 204 +++++++
sound/soc/codecs/Kconfig | 9 +
sound/soc/codecs/Makefile | 2 +
sound/soc/codecs/tas5805m.c | 554 ++++++++++++++++++
4 files changed, 769 insertions(+)
create mode 100644 Documentation/devicetree/bindings/sound/tas5805m.yaml
create mode 100644 sound/soc/codecs/tas5805m.c
--
2.30.2
3
6
From: Allen-KH Cheng <Allen-KH.Cheng(a)mediatek.com>
This patch provides mtk adsp ipc support for sof.
ADSP IPC protocol offers (send/recv) interfaces using mediatek-mailbox APIs.
changes since v2:
- add out tag for two memroy free phases
changes since v1:
- add comments for mtk_adsp_ipc_send and mtk_adsp_ipc_recv
- remove unuseful MODULE_LICENSE
- change label name to out_free
Allen-KH Cheng (1):
firmware: mediatek: add adsp ipc protocol interface
drivers/firmware/Kconfig | 1 +
drivers/firmware/Makefile | 1 +
drivers/firmware/mediatek/Kconfig | 9 +
drivers/firmware/mediatek/Makefile | 2 +
drivers/firmware/mediatek/mtk-adsp-ipc.c | 160 ++++++++++++++++++
.../linux/firmware/mediatek/mtk-adsp-ipc.h | 65 +++++++
6 files changed, 238 insertions(+)
create mode 100644 drivers/firmware/mediatek/Kconfig
create mode 100644 drivers/firmware/mediatek/Makefile
create mode 100644 drivers/firmware/mediatek/mtk-adsp-ipc.c
create mode 100644 include/linux/firmware/mediatek/mtk-adsp-ipc.h
--
2.18.0
2
2

[PATCH 0/6] ASOC: amd: acp: Add generic PDM and PCI driver support for ACP
by Ajit Kumar Pandey 13 Jan '22
by Ajit Kumar Pandey 13 Jan '22
13 Jan '22
This patch series add a generic PDM controller driver module and
PCI driver module for non dsp based audio support on ACP devices.
Initial support is added for acp3x devices or Renoir platform but
we will use such driver module to support upcoming platform and
other acp architectures in near future.
Ajit Kumar Pandey (6):
ASoC: amd: acp: Add generic support for PDM controller on ACP
ASoC: amd: acp: Add PDM controller based dmic dai for Renoir
ASoC: amd: acp: Add generic PCI driver module for ACP device
ASoC: amd: acp: Add ACP init()/deinit() callback for Renoir.
ASoC: amd: acp: acp-legacy: Add DMIC dai link support for Renoir
ASoC: amd: renoir: Add check for acp configuration flags.
sound/soc/amd/acp/Kconfig | 10 ++
sound/soc/amd/acp/Makefile | 4 +
sound/soc/amd/acp/acp-legacy-mach.c | 4 +-
sound/soc/amd/acp/acp-mach-common.c | 15 +++
sound/soc/amd/acp/acp-pci.c | 158 +++++++++++++++++++++++
sound/soc/amd/acp/acp-pdm.c | 181 ++++++++++++++++++++++++++
sound/soc/amd/acp/acp-renoir.c | 183 +++++++++++++++++++++++++++
sound/soc/amd/acp/amd.h | 23 +++-
sound/soc/amd/acp/chip_offset_byte.h | 26 ++++
sound/soc/amd/mach-config.h | 1 +
sound/soc/amd/renoir/rn-pci-acp3x.c | 7 +-
sound/soc/amd/renoir/rn_acp3x.h | 3 +
12 files changed, 611 insertions(+), 4 deletions(-)
create mode 100644 sound/soc/amd/acp/acp-pci.c
create mode 100644 sound/soc/amd/acp/acp-pdm.c
--
2.25.1
2
8

Re: Re: [PATCH] ASoC: codecs: Check for error pointer after calling devm_regmap_init_mmio
by Jiasheng Jiang 13 Jan '22
by Jiasheng Jiang 13 Jan '22
13 Jan '22
On Wed, Jan 12, 2022 at 10:20:34PM +0800, Mark Brown wrote:
>> The devm_regmap_init_mmio() may return error pointer under certain
>> circumstances, for example the possible failure of the kzalloc() in
>> regmap_mmio_gen_context(), which is called by devm_regmap_init_mmio().
>
> This doesn't apply against current code, please check and resend.
I checked linux-5.16, and don't think what I said is not against the
latest code.
The devm_regmap_init_mmio() is defined as devm_regmap_init_mmio_clk()
in `include/linux/regmap.h`.
And in the same file, the devm_regmap_init_mmio_clk() is defined as
__devm_regmap_init_mmio_clk().
Then, __devm_regmap_init_mmio_clk() -> regmap_mmio_gen_context() ->
kzalloc().
So I have no idea what's wrong.
Maybe I didn't write the commit message clear.
Please give me more detail.
Sincerely thanks,
Jiang
2
1

13 Jan '22
Support JasperLake Chromebooks and fix a order issue in config table.
v2:
- rebase to Takashi's tree
- add a fix for config table
*** BLURB HERE ***
Brent Lu (2):
ALSA: hda: intel-dsp-config: add JasperLake support
ALSA: hda: intel-dsp-config: reorder the config table
sound/hda/intel-dsp-config.c | 43 +++++++++++++++++++++++++-----------
1 file changed, 30 insertions(+), 13 deletions(-)
--
2.25.1
2
3
Add rules to select SOF driver for Jasper Lake systems if digital
microphone is present or the system is a Chromebook.
Signed-off-by: Brent Lu <brent.lu(a)intel.com>
---
sound/hda/intel-dsp-config.c | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/sound/hda/intel-dsp-config.c b/sound/hda/intel-dsp-config.c
index b9ac9e9e45a4..be47a1ca12b6 100644
--- a/sound/hda/intel-dsp-config.c
+++ b/sound/hda/intel-dsp-config.c
@@ -299,6 +299,27 @@ static const struct config_entry config_table[] = {
},
#endif
+/* Jasper Lake */
+#if IS_ENABLED(CONFIG_SND_SOC_SOF_JASPERLAKE)
+ {
+ .flags = FLAG_SOF,
+ .device = 0x4dc8,
+ .dmi_table = (const struct dmi_system_id []) {
+ {
+ .ident = "Google Chromebooks",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Google"),
+ }
+ },
+ {}
+ }
+ },
+ {
+ .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
+ .device = 0x4dc8,
+ },
+#endif
+
/* Tigerlake */
#if IS_ENABLED(CONFIG_SND_SOC_SOF_TIGERLAKE)
{
--
2.25.1
4
5
The Texas Instruments TAS5805M is a class D audio amplifier with an
integrated DSP. DSP configuration is expected to be supplied via a
device-tree attribute. See the bindings file for more details.
Signed-off-by: Daniel Beer <daniel.beer(a)igorinstitute.com>
---
sound/soc/codecs/Kconfig | 9 +
sound/soc/codecs/Makefile | 2 +
sound/soc/codecs/tas5805m.c | 534 ++++++++++++++++++++++++++++++++++++
3 files changed, 545 insertions(+)
create mode 100644 sound/soc/codecs/tas5805m.c
diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig
index d3e5ae8310ef..d6b8f5cb6ef8 100644
--- a/sound/soc/codecs/Kconfig
+++ b/sound/soc/codecs/Kconfig
@@ -1485,6 +1485,15 @@ config SND_SOC_TAS5720
Enable support for Texas Instruments TAS5720L/M high-efficiency mono
Class-D audio power amplifiers.
+config SND_SOC_TAS5805M
+ tristate "Texas Instruments TAS5805M speaker amplifier"
+ depends on I2C
+ help
+ Enable support for Texas Instruments TAS5805M Class-D
+ amplifiers. This is a speaker amplifier with an integrated
+ DSP. DSP configuration for each instance needs to be supplied
+ via a device-tree attribute.
+
config SND_SOC_TAS6424
tristate "Texas Instruments TAS6424 Quad-Channel Audio amplifier"
depends on I2C
diff --git a/sound/soc/codecs/Makefile b/sound/soc/codecs/Makefile
index ac7f20972470..b4e11c3e4a08 100644
--- a/sound/soc/codecs/Makefile
+++ b/sound/soc/codecs/Makefile
@@ -236,6 +236,7 @@ snd-soc-sti-sas-objs := sti-sas.o
snd-soc-tas5086-objs := tas5086.o
snd-soc-tas571x-objs := tas571x.o
snd-soc-tas5720-objs := tas5720.o
+snd-soc-tas5805m-objs := tas5805m.o
snd-soc-tas6424-objs := tas6424.o
snd-soc-tda7419-objs := tda7419.o
snd-soc-tas2770-objs := tas2770.o
@@ -574,6 +575,7 @@ obj-$(CONFIG_SND_SOC_TAS2764) += snd-soc-tas2764.o
obj-$(CONFIG_SND_SOC_TAS5086) += snd-soc-tas5086.o
obj-$(CONFIG_SND_SOC_TAS571X) += snd-soc-tas571x.o
obj-$(CONFIG_SND_SOC_TAS5720) += snd-soc-tas5720.o
+obj-$(CONFIG_SND_SOC_TAS5805M) += snd-soc-tas5805m.o
obj-$(CONFIG_SND_SOC_TAS6424) += snd-soc-tas6424.o
obj-$(CONFIG_SND_SOC_TDA7419) += snd-soc-tda7419.o
obj-$(CONFIG_SND_SOC_TAS2770) += snd-soc-tas2770.o
diff --git a/sound/soc/codecs/tas5805m.c b/sound/soc/codecs/tas5805m.c
new file mode 100644
index 000000000000..efbdff0f5180
--- /dev/null
+++ b/sound/soc/codecs/tas5805m.c
@@ -0,0 +1,534 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Driver for the TAS5805M Audio Amplifier
+ *
+ * Author: Andy Liu <andy-liu(a)ti.com>
+ * Author: Daniel Beer <daniel.beer(a)igorinstitute.com>
+ *
+ * This is based on a driver originally written by Andy Liu at TI and
+ * posted here:
+ *
+ * https://e2e.ti.com/support/audio-group/audio/f/audio-forum/722027/linux-tas…
+ *
+ * It has been simplified a little and reworked for the 5.x ALSA SoC API.
+ */
+
+#include <linux/module.h>
+#include <linux/moduleparam.h>
+#include <linux/kernel.h>
+#include <linux/slab.h>
+#include <linux/of.h>
+#include <linux/init.h>
+#include <linux/i2c.h>
+#include <linux/regmap.h>
+#include <linux/gpio.h>
+#include <linux/of_gpio.h>
+#include <linux/regulator/consumer.h>
+#include <linux/atomic.h>
+#include <linux/workqueue.h>
+
+#include <sound/soc.h>
+#include <sound/pcm.h>
+#include <sound/initval.h>
+
+#define REG_PAGE 0x00
+#define REG_DEVICE_CTRL_1 0x02
+#define REG_DEVICE_CTRL_2 0x03
+#define REG_SIG_CH_CTRL 0x28
+#define REG_SAP_CTRL_1 0x33
+#define REG_FS_MON 0x37
+#define REG_BCK_MON 0x38
+#define REG_CLKDET_STATUS 0x39
+#define REG_VOL_CTL 0x4c
+#define REG_AGAIN 0x54
+#define REG_ADR_PIN_CTRL 0x60
+#define REG_ADR_PIN_CONFIG 0x61
+#define REG_CHAN_FAULT 0x70
+#define REG_GLOBAL_FAULT1 0x71
+#define REG_GLOBAL_FAULT2 0x72
+#define REG_FAULT 0x78
+#define REG_BOOK 0x7f
+
+/* This sequence of register writes must always be sent, prior to the
+ * 5ms delay while we wait for the DSP to boot.
+ */
+static const uint8_t dsp_cfg_preboot[] = {
+ 0x00, 0x00, 0x7f, 0x00, 0x03, 0x02, 0x01, 0x11,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x7f, 0x00, 0x03, 0x02,
+};
+
+static const uint32_t tas5805m_volume[] = {
+ 0x0000001B, /* 0, -110dB */ 0x0000001E, /* 1, -109dB */
+ 0x00000021, /* 2, -108dB */ 0x00000025, /* 3, -107dB */
+ 0x0000002A, /* 4, -106dB */ 0x0000002F, /* 5, -105dB */
+ 0x00000035, /* 6, -104dB */ 0x0000003B, /* 7, -103dB */
+ 0x00000043, /* 8, -102dB */ 0x0000004B, /* 9, -101dB */
+ 0x00000054, /* 10, -100dB */ 0x0000005E, /* 11, -99dB */
+ 0x0000006A, /* 12, -98dB */ 0x00000076, /* 13, -97dB */
+ 0x00000085, /* 14, -96dB */ 0x00000095, /* 15, -95dB */
+ 0x000000A7, /* 16, -94dB */ 0x000000BC, /* 17, -93dB */
+ 0x000000D3, /* 18, -92dB */ 0x000000EC, /* 19, -91dB */
+ 0x00000109, /* 20, -90dB */ 0x0000012A, /* 21, -89dB */
+ 0x0000014E, /* 22, -88dB */ 0x00000177, /* 23, -87dB */
+ 0x000001A4, /* 24, -86dB */ 0x000001D8, /* 25, -85dB */
+ 0x00000211, /* 26, -84dB */ 0x00000252, /* 27, -83dB */
+ 0x0000029A, /* 28, -82dB */ 0x000002EC, /* 29, -81dB */
+ 0x00000347, /* 30, -80dB */ 0x000003AD, /* 31, -79dB */
+ 0x00000420, /* 32, -78dB */ 0x000004A1, /* 33, -77dB */
+ 0x00000532, /* 34, -76dB */ 0x000005D4, /* 35, -75dB */
+ 0x0000068A, /* 36, -74dB */ 0x00000756, /* 37, -73dB */
+ 0x0000083B, /* 38, -72dB */ 0x0000093C, /* 39, -71dB */
+ 0x00000A5D, /* 40, -70dB */ 0x00000BA0, /* 41, -69dB */
+ 0x00000D0C, /* 42, -68dB */ 0x00000EA3, /* 43, -67dB */
+ 0x0000106C, /* 44, -66dB */ 0x0000126D, /* 45, -65dB */
+ 0x000014AD, /* 46, -64dB */ 0x00001733, /* 47, -63dB */
+ 0x00001A07, /* 48, -62dB */ 0x00001D34, /* 49, -61dB */
+ 0x000020C5, /* 50, -60dB */ 0x000024C4, /* 51, -59dB */
+ 0x00002941, /* 52, -58dB */ 0x00002E49, /* 53, -57dB */
+ 0x000033EF, /* 54, -56dB */ 0x00003A45, /* 55, -55dB */
+ 0x00004161, /* 56, -54dB */ 0x0000495C, /* 57, -53dB */
+ 0x0000524F, /* 58, -52dB */ 0x00005C5A, /* 59, -51dB */
+ 0x0000679F, /* 60, -50dB */ 0x00007444, /* 61, -49dB */
+ 0x00008274, /* 62, -48dB */ 0x0000925F, /* 63, -47dB */
+ 0x0000A43B, /* 64, -46dB */ 0x0000B845, /* 65, -45dB */
+ 0x0000CEC1, /* 66, -44dB */ 0x0000E7FB, /* 67, -43dB */
+ 0x00010449, /* 68, -42dB */ 0x0001240C, /* 69, -41dB */
+ 0x000147AE, /* 70, -40dB */ 0x00016FAA, /* 71, -39dB */
+ 0x00019C86, /* 72, -38dB */ 0x0001CEDC, /* 73, -37dB */
+ 0x00020756, /* 74, -36dB */ 0x000246B5, /* 75, -35dB */
+ 0x00028DCF, /* 76, -34dB */ 0x0002DD96, /* 77, -33dB */
+ 0x00033718, /* 78, -32dB */ 0x00039B87, /* 79, -31dB */
+ 0x00040C37, /* 80, -30dB */ 0x00048AA7, /* 81, -29dB */
+ 0x00051884, /* 82, -28dB */ 0x0005B7B1, /* 83, -27dB */
+ 0x00066A4A, /* 84, -26dB */ 0x000732AE, /* 85, -25dB */
+ 0x00081385, /* 86, -24dB */ 0x00090FCC, /* 87, -23dB */
+ 0x000A2ADB, /* 88, -22dB */ 0x000B6873, /* 89, -21dB */
+ 0x000CCCCD, /* 90, -20dB */ 0x000E5CA1, /* 91, -19dB */
+ 0x00101D3F, /* 92, -18dB */ 0x0012149A, /* 93, -17dB */
+ 0x00144961, /* 94, -16dB */ 0x0016C311, /* 95, -15dB */
+ 0x00198A13, /* 96, -14dB */ 0x001CA7D7, /* 97, -13dB */
+ 0x002026F3, /* 98, -12dB */ 0x00241347, /* 99, -11dB */
+ 0x00287A27, /* 100, -10dB */ 0x002D6A86, /* 101, -9dB */
+ 0x0032F52D, /* 102, -8dB */ 0x00392CEE, /* 103, -7dB */
+ 0x004026E7, /* 104, -6dB */ 0x0047FACD, /* 105, -5dB */
+ 0x0050C336, /* 106, -4dB */ 0x005A9DF8, /* 107, -3dB */
+ 0x0065AC8C, /* 108, -2dB */ 0x00721483, /* 109, -1dB */
+ 0x00800000, /* 110, 0dB */ 0x008F9E4D, /* 111, 1dB */
+ 0x00A12478, /* 112, 2dB */ 0x00B4CE08, /* 113, 3dB */
+ 0x00CADDC8, /* 114, 4dB */ 0x00E39EA9, /* 115, 5dB */
+ 0x00FF64C1, /* 116, 6dB */ 0x011E8E6A, /* 117, 7dB */
+ 0x0141857F, /* 118, 8dB */ 0x0168C0C6, /* 119, 9dB */
+ 0x0194C584, /* 120, 10dB */ 0x01C62940, /* 121, 11dB */
+ 0x01FD93C2, /* 122, 12dB */ 0x023BC148, /* 123, 13dB */
+ 0x02818508, /* 124, 14dB */ 0x02CFCC01, /* 125, 15dB */
+ 0x0327A01A, /* 126, 16dB */ 0x038A2BAD, /* 127, 17dB */
+ 0x03F8BD7A, /* 128, 18dB */ 0x0474CD1B, /* 129, 19dB */
+ 0x05000000, /* 130, 20dB */ 0x059C2F02, /* 131, 21dB */
+ 0x064B6CAE, /* 132, 22dB */ 0x07100C4D, /* 133, 23dB */
+ 0x07ECA9CD, /* 134, 24dB */ 0x08E43299, /* 135, 25dB */
+ 0x09F9EF8E, /* 136, 26dB */ 0x0B319025, /* 137, 27dB */
+ 0x0C8F36F2, /* 138, 28dB */ 0x0E1787B8, /* 139, 29dB */
+ 0x0FCFB725, /* 140, 30dB */ 0x11BD9C84, /* 141, 31dB */
+ 0x13E7C594, /* 142, 32dB */ 0x16558CCB, /* 143, 33dB */
+ 0x190F3254, /* 144, 34dB */ 0x1C1DF80E, /* 145, 35dB */
+ 0x1F8C4107, /* 146, 36dB */ 0x2365B4BF, /* 147, 37dB */
+ 0x27B766C2, /* 148, 38dB */ 0x2C900313, /* 149, 39dB */
+ 0x32000000, /* 150, 40dB */ 0x3819D612, /* 151, 41dB */
+ 0x3EF23ECA, /* 152, 42dB */ 0x46A07B07, /* 153, 43dB */
+ 0x4F3EA203, /* 154, 44dB */ 0x58E9F9F9, /* 155, 45dB */
+ 0x63C35B8E, /* 156, 46dB */ 0x6FEFA16D, /* 157, 47dB */
+ 0x7D982575, /* 158, 48dB */
+};
+
+#define TAS5805M_VOLUME_MAX ((int)ARRAY_SIZE(tas5805m_volume) - 1)
+#define TAS5805M_VOLUME_MIN 0
+
+struct tas5805m_priv {
+ struct regulator *pvdd;
+ int gpio_pdn_n;
+
+ uint8_t *dsp_cfg_data;
+ int dsp_cfg_len;
+
+ struct snd_soc_component *component;
+ struct regmap *regmap;
+ struct mutex lock;
+
+ int vol;
+ bool is_powered;
+ bool is_muted;
+};
+
+static void tas5805m_refresh_unlocked(struct snd_soc_component *component)
+{
+ struct tas5805m_priv *tas5805m =
+ snd_soc_component_get_drvdata(component);
+ uint8_t v[4];
+ unsigned int i;
+ uint32_t x;
+
+ dev_dbg(component->dev, "refresh: is_muted=%d, vol=%d\n",
+ tas5805m->is_muted, tas5805m->vol);
+
+ x = tas5805m_volume[tas5805m->vol];
+ for (i = 0; i < 4; i++) {
+ v[3 - i] = x;
+ x >>= 8;
+ }
+
+ snd_soc_component_write(component, REG_PAGE, 0x00);
+ snd_soc_component_write(component, REG_BOOK, 0x8c);
+ snd_soc_component_write(component, REG_PAGE, 0x2a);
+
+ for (i = 0; i < 4; i++)
+ snd_soc_component_write(component, 0x24 + i, v[i]);
+ for (i = 0; i < 4; i++)
+ snd_soc_component_write(component, 0x28 + i, v[i]);
+
+ /* Volume controls */
+ snd_soc_component_write(component, REG_DEVICE_CTRL_2,
+ tas5805m->is_muted ? 0x0b : 0x03);
+}
+
+static int tas5805m_vol_info(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_info *uinfo)
+{
+ uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
+ uinfo->count = 1;
+
+ uinfo->value.integer.min = TAS5805M_VOLUME_MIN;
+ uinfo->value.integer.max = TAS5805M_VOLUME_MAX;
+ return 0;
+}
+
+static int tas5805m_vol_get(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_value *ucontrol)
+{
+ struct snd_soc_component *component =
+ snd_soc_kcontrol_component(kcontrol);
+ struct tas5805m_priv *tas5805m =
+ snd_soc_component_get_drvdata(component);
+
+ mutex_lock(&tas5805m->lock);
+ ucontrol->value.integer.value[0] = tas5805m->vol;
+ mutex_unlock(&tas5805m->lock);
+
+ return 0;
+}
+
+static int tas5805m_vol_put(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_value *ucontrol)
+{
+ struct snd_soc_component *component =
+ snd_soc_kcontrol_component(kcontrol);
+ struct tas5805m_priv *tas5805m =
+ snd_soc_component_get_drvdata(component);
+
+ mutex_lock(&tas5805m->lock);
+ tas5805m->vol = clamp((int)ucontrol->value.integer.value[0],
+ TAS5805M_VOLUME_MIN, TAS5805M_VOLUME_MAX);
+ dev_dbg(component->dev, "set vol=%d (is_powered=%d)\n",
+ tas5805m->vol, tas5805m->is_powered);
+ if (tas5805m->is_powered)
+ tas5805m_refresh_unlocked(component);
+ mutex_unlock(&tas5805m->lock);
+
+ return 0;
+}
+
+static const struct snd_kcontrol_new tas5805m_snd_controls[] = {
+ {
+ .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
+ .name = "Master Playback Volume",
+ .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
+ SNDRV_CTL_ELEM_ACCESS_READWRITE,
+ .info = tas5805m_vol_info,
+ .get = tas5805m_vol_get,
+ .put = tas5805m_vol_put,
+ },
+};
+
+/* This must not run until after the I2S clocks (BCLK, LRCLK) are up and
+ * stable.
+ */
+static void send_cfg(struct snd_soc_component *component,
+ const uint8_t *s, unsigned int len)
+{
+ unsigned int i;
+
+ for (i = 0; i + 1 < len; i += 2)
+ snd_soc_component_write(component, s[i], s[i + 1]);
+}
+
+/* The TAS5805M can't be configured or brought out of power-down without
+ * an I2S clock. In power-down, registers are reset.
+ *
+ * We rely on DAPM not powering up the DAC widget until the source for
+ * it is ready, which we think implies that the I2S clock is present and
+ * stable.
+ */
+static int tas5805m_dac_event(struct snd_soc_dapm_widget *w,
+ struct snd_kcontrol *kcontrol, int event)
+{
+ struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm);
+ struct tas5805m_priv *tas5805m =
+ snd_soc_component_get_drvdata(component);
+
+ if (event & SND_SOC_DAPM_POST_PMU) {
+ dev_dbg(component->dev, "SND_SOC_DAPM_POST_PMU\n");
+
+ /* We mustn't issue any I2C transactions until the I2S
+ * clock is stable. Furthermore, we must allow a 5ms
+ * delay after the first set of register writes to
+ * allow the DSP to boot before configuring it.
+ */
+ mutex_lock(&tas5805m->lock);
+ usleep_range(5000, 10000);
+ send_cfg(component, dsp_cfg_preboot,
+ ARRAY_SIZE(dsp_cfg_preboot));
+ usleep_range(5000, 15000);
+ send_cfg(component, tas5805m->dsp_cfg_data,
+ tas5805m->dsp_cfg_len);
+
+ tas5805m->is_powered = true;
+ tas5805m_refresh_unlocked(component);
+ mutex_unlock(&tas5805m->lock);
+ } else if (event & SND_SOC_DAPM_PRE_PMD) {
+ unsigned int chan, global1, global2;
+
+ dev_dbg(component->dev, "SND_SOC_DAPM_PRE_PMD\n");
+ mutex_lock(&tas5805m->lock);
+ tas5805m->is_powered = false;
+
+ snd_soc_component_write(component, REG_PAGE, 0x00);
+ snd_soc_component_write(component, REG_BOOK, 0x00);
+
+ chan = snd_soc_component_read(component, REG_CHAN_FAULT);
+ global1 = snd_soc_component_read(component, REG_GLOBAL_FAULT1);
+ global2 = snd_soc_component_read(component, REG_GLOBAL_FAULT2);
+
+ dev_dbg(component->dev,
+ "fault regs: CHAN=%02x, GLOBAL1=%02x, GLOBAL2=%02x\n",
+ chan, global1, global2);
+
+ snd_soc_component_write(component, REG_DEVICE_CTRL_2,
+ 0x02); /* Hi-Z mode */
+ mutex_unlock(&tas5805m->lock);
+ }
+
+ return 0;
+}
+
+static int tas5805m_probe(struct snd_soc_component *component)
+{
+ struct tas5805m_priv *tas5805m =
+ snd_soc_component_get_drvdata(component);
+
+ tas5805m->component = component;
+ return 0;
+}
+
+static const struct snd_soc_dapm_route tas5805m_audio_map[] = {
+ { "DAC", NULL, "DAC IN" },
+ { "OUT", NULL, "DAC" },
+};
+
+static const struct snd_soc_dapm_widget tas5805m_dapm_widgets[] = {
+ SND_SOC_DAPM_AIF_IN("DAC IN", "Playback", 0, SND_SOC_NOPM, 0, 0),
+ SND_SOC_DAPM_DAC_E("DAC", NULL, SND_SOC_NOPM, 0, 0,
+ tas5805m_dac_event,
+ SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD),
+ SND_SOC_DAPM_OUTPUT("OUT")
+};
+
+static const struct snd_soc_component_driver soc_codec_dev_tas5805m = {
+ .probe = tas5805m_probe,
+ .controls = tas5805m_snd_controls,
+ .num_controls = ARRAY_SIZE(tas5805m_snd_controls),
+ .dapm_widgets = tas5805m_dapm_widgets,
+ .num_dapm_widgets = ARRAY_SIZE(tas5805m_dapm_widgets),
+ .dapm_routes = tas5805m_audio_map,
+ .num_dapm_routes = ARRAY_SIZE(tas5805m_audio_map),
+ .use_pmdown_time = 1,
+ .endianness = 1,
+ .non_legacy_dai_naming = 1,
+};
+
+static int tas5805m_mute(struct snd_soc_dai *dai, int mute, int direction)
+{
+ struct snd_soc_component *component = dai->component;
+ struct tas5805m_priv *tas5805m =
+ snd_soc_component_get_drvdata(component);
+
+ mutex_lock(&tas5805m->lock);
+ dev_dbg(component->dev, "set mute=%d (is_powered=%d)\n",
+ mute, tas5805m->is_powered);
+ tas5805m->is_muted = !!mute;
+ if (tas5805m->is_powered)
+ tas5805m_refresh_unlocked(component);
+ mutex_unlock(&tas5805m->lock);
+
+ return 0;
+}
+
+static const struct snd_soc_dai_ops tas5805m_dai_ops = {
+ .mute_stream = tas5805m_mute,
+ .no_capture_mute = 1,
+};
+
+static struct snd_soc_dai_driver tas5805m_dai = {
+ .name = "tas5805m-amplifier",
+ .playback = {
+ .stream_name = "Playback",
+ .channels_min = 2,
+ .channels_max = 2,
+ .rates = SNDRV_PCM_RATE_48000,
+ .formats = SNDRV_PCM_FMTBIT_S32_LE,
+ },
+ .ops = &tas5805m_dai_ops,
+};
+
+static const struct regmap_config tas5805m_regmap = {
+ .reg_bits = 8,
+ .val_bits = 8,
+
+ /* We have quite a lot of multi-level bank switching and a
+ * relatively small number of register writes between bank
+ * switches.
+ */
+ .cache_type = REGCACHE_NONE,
+};
+
+static int tas5805m_i2c_probe(struct i2c_client *i2c)
+{
+ struct device *dev = &i2c->dev;
+ struct regmap *regmap;
+ struct tas5805m_priv *tas5805m;
+ int ret;
+
+ regmap = devm_regmap_init_i2c(i2c, &tas5805m_regmap);
+ if (IS_ERR(regmap)) {
+ ret = PTR_ERR(regmap);
+ dev_err(dev, "unable to allocate register map: %d\n", ret);
+ return ret;
+ }
+
+ tas5805m = devm_kzalloc(dev, sizeof(struct tas5805m_priv), GFP_KERNEL);
+ if (!tas5805m)
+ return -ENOMEM;
+
+ tas5805m->pvdd = devm_regulator_get(dev, "pvdd");
+ if (IS_ERR(tas5805m->pvdd)) {
+ dev_err(dev, "failed to get pvdd supply: %ld\n",
+ PTR_ERR(tas5805m->pvdd));
+ return PTR_ERR(tas5805m->pvdd);
+ }
+
+ dev_set_drvdata(dev, tas5805m);
+ tas5805m->regmap = regmap;
+ tas5805m->gpio_pdn_n = of_get_named_gpio(dev->of_node, "pdn-gpio", 0);
+ if (!gpio_is_valid(tas5805m->gpio_pdn_n)) {
+ dev_err(dev, "power-down GPIO not specified\n");
+ return -EINVAL;
+ }
+
+ tas5805m->dsp_cfg_len = of_property_count_elems_of_size(dev->of_node,
+ "ti,dsp-config", 1);
+ if (tas5805m->dsp_cfg_len < 0) {
+ dev_err(dev, "no DSP config provided\n");
+ return tas5805m->dsp_cfg_len;
+ }
+
+ tas5805m->dsp_cfg_data = devm_kmalloc(dev, tas5805m->dsp_cfg_len,
+ GFP_KERNEL);
+ if (!tas5805m->dsp_cfg_data)
+ return -ENOMEM;
+
+ of_property_read_u8_array(dev->of_node, "ti,dsp-config",
+ tas5805m->dsp_cfg_data, tas5805m->dsp_cfg_len);
+ dev_dbg(dev, "%d bytes of DSP config loaded\n",
+ tas5805m->dsp_cfg_len);
+
+ ret = devm_gpio_request(dev, tas5805m->gpio_pdn_n,
+ "TAS5805M power-down");
+ if (ret < 0) {
+ dev_err(dev,
+ "unable to request power-down GPIO: %d\n", ret);
+ return ret;
+ }
+
+ /* Do the first part of the power-on here, while we can expect
+ * the I2S interface to be quiet. We must raise PDN# and then
+ * wait 5ms before any I2S clock is sent, or else the internal
+ * regulator apparently won't come on.
+ *
+ * Also, we must keep the device in power down for 100ms or so
+ * after PVDD is applied, or else the ADR pin is sampled
+ * incorrectly and the device comes up with an unpredictable I2C
+ * address.
+ */
+ gpio_direction_output(tas5805m->gpio_pdn_n, 0);
+ tas5805m->vol = TAS5805M_VOLUME_MIN;
+ mutex_init(&tas5805m->lock);
+
+ ret = devm_snd_soc_register_component(dev, &soc_codec_dev_tas5805m,
+ &tas5805m_dai, 1);
+ if (ret < 0) {
+ dev_err(dev, "unable to register codec: %d\n", ret);
+ return ret;
+ }
+
+ ret = regulator_enable(tas5805m->pvdd);
+ if (ret < 0) {
+ dev_err(dev, "failed to enable pvdd: %d\n", ret);
+ return ret;
+ }
+
+ usleep_range(100000, 150000);
+ gpio_set_value(tas5805m->gpio_pdn_n, 1);
+ usleep_range(10000, 15000);
+
+ return 0;
+}
+
+static int tas5805m_i2c_remove(struct i2c_client *i2c)
+{
+ struct tas5805m_priv *tas5805m = dev_get_drvdata(&i2c->dev);
+
+ gpio_set_value(tas5805m->gpio_pdn_n, 0);
+ usleep_range(10000, 15000);
+ regulator_disable(tas5805m->pvdd);
+ return 0;
+}
+
+static const struct i2c_device_id tas5805m_i2c_id[] = {
+ { "tas5805m", },
+ { }
+};
+MODULE_DEVICE_TABLE(i2c, tas5805m_i2c_id);
+
+#if IS_ENABLED(CONFIG_OF)
+static const struct of_device_id tas5805m_of_match[] = {
+ { .compatible = "ti,tas5805m", },
+ { }
+};
+MODULE_DEVICE_TABLE(of, tas5805m_of_match);
+#endif
+
+static struct i2c_driver tas5805m_i2c_driver = {
+ .probe_new = tas5805m_i2c_probe,
+ .remove = tas5805m_i2c_remove,
+ .id_table = tas5805m_i2c_id,
+ .driver = {
+ .name = "tas5805m",
+ .of_match_table = of_match_ptr(tas5805m_of_match),
+ },
+};
+
+module_i2c_driver(tas5805m_i2c_driver);
+
+MODULE_AUTHOR("Andy Liu <andy-liu(a)ti.com>");
+MODULE_AUTHOR("Daniel Beer <daniel.beer(a)igorinstitute.com>");
+MODULE_DESCRIPTION("TAS5805M Audio Amplifier Driver");
+MODULE_LICENSE("GPL v2");
--
2.30.2
2
3
From: Allen-KH Cheng <Allen-KH.Cheng(a)mediatek.com>
This patch provides mtk adsp ipc support for sof.
ADSP IPC protocol offers (send/recv) interfaces using
mediatek-mailbox APIs.
changes since v1:
- add comments for mtk_adsp_ipc_send and mtk_adsp_ipc_recv
- remove unuseful MODULE_LICENSE
- change label name to out_free
Allen-KH Cheng (1):
firmware: mediatek: add adsp ipc protocol interface
drivers/firmware/Kconfig | 1 +
drivers/firmware/Makefile | 1 +
drivers/firmware/mediatek/Kconfig | 9 +
drivers/firmware/mediatek/Makefile | 2 +
drivers/firmware/mediatek/mtk-adsp-ipc.c | 159 ++++++++++++++++++
.../linux/firmware/mediatek/mtk-adsp-ipc.h | 65 +++++++
6 files changed, 237 insertions(+)
create mode 100644 drivers/firmware/mediatek/Kconfig
create mode 100644 drivers/firmware/mediatek/Makefile
create mode 100644 drivers/firmware/mediatek/mtk-adsp-ipc.c
create mode 100644 include/linux/firmware/mediatek/mtk-adsp-ipc.h
--
2.18.0
3
3

[PATCH] ASoC: cpcap: Check for NULL pointer after calling of_get_child_by_name
by Jiasheng Jiang 12 Jan '22
by Jiasheng Jiang 12 Jan '22
12 Jan '22
If the device does not exist, of_get_child_by_name() will return NULL
pointer.
And devm_snd_soc_register_component() does not check it.
Also, I have noticed that cpcap_codec_driver has not been used yet.
Therefore, it should be better to check it in order to avoid the future
dereference of the NULL pointer.
Fixes: f6cdf2d3445d ("ASoC: cpcap: new codec")
Signed-off-by: Jiasheng Jiang <jiasheng(a)iscas.ac.cn>
---
sound/soc/codecs/cpcap.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/sound/soc/codecs/cpcap.c b/sound/soc/codecs/cpcap.c
index 05bbacd0d174..f1c13f42e1c1 100644
--- a/sound/soc/codecs/cpcap.c
+++ b/sound/soc/codecs/cpcap.c
@@ -1667,6 +1667,8 @@ static int cpcap_codec_probe(struct platform_device *pdev)
{
struct device_node *codec_node =
of_get_child_by_name(pdev->dev.parent->of_node, "audio-codec");
+ if (!codec_node)
+ return -ENODEV;
pdev->dev.of_node = codec_node;
--
2.25.1
2
1

12 Jan '22
From: Allen-KH Cheng <Allen-KH.Cheng(a)mediatek.com>
Mediatek ADSP IPC is used to send notification or short message between processors with dsp.·
It will place the message to the share buffer and will access the ADSP mailbox registers to kick dsp.
Two mailboxes used to send notification or short message between processors with dsp
changes since v11:
- remove unuseful MODULE_LICENSE
changes since v10:
- split up v9 into two separate submissions
https://patchwork.kernel.org/project/linux-mediatek/patch/20220111071011.59…
changes since v9:
- rename adsp_mbox_chan_ops to mtk_adsp_mbox_chan_ops
changes since v8:
- remove struct adsp_mbox_ch_info
- add get_mtk_adsp_mbox_priv
- use mtk_adsp_mbox_priv va_mboxreg address in adsp mbox driver
- add struct mtk_adsp_mbox_cfg for DSP mbox register offset
- remove adsp mbox register offset hard code define
- remove mtk-adsp-ipc.h reference in adsp mbox driver
changes since v7:
- add mtk prefix for adsp ipc functions
- rename adsp_mbox_ch_info to mtk_adsp_mbox_ch_info
- remove incorrect reviewers in commit message
changes since v6:
- dt-bindings: change example dtsi node.
- rename config MTK_ADSP_IPC_MBOX to MTK_ADSP_MBOX
- remove unused variable
- add reviewers
changes since v5:
- remove some redundant code
changes since v4:
- use switch ... case in adsp_ipc_recv
- add error handling path for chan_name pointer
- refine some code to be concise
changes since v3:
- reorder MTK_ADSP_IPC_MBOX config
- remove some redundant code
- remove lock in mtk-adsp-mailbox
changes since v2:
- separate adsp_mailbox into two instances
changes since v1:
- fix dt_binding_check error
Allen-KH Cheng (2):
dt-bindings: mediatek: add adsp-mbox document
mailbox: mediatek: add support for adsp mailbox controller
.../bindings/mailbox/mtk,adsp-mbox.yaml | 52 ++++++
drivers/mailbox/Kconfig | 7 +
drivers/mailbox/Makefile | 2 +
drivers/mailbox/mtk-adsp-mailbox.c | 175 ++++++++++++++++++
4 files changed, 236 insertions(+)
create mode 100644 Documentation/devicetree/bindings/mailbox/mtk,adsp-mbox.yaml
create mode 100644 drivers/mailbox/mtk-adsp-mailbox.c
--
2.18.0
1
2

12 Jan '22
From: Allen-KH Cheng <Allen-KH.Cheng(a)mediatek.com>
Mediatek ADSP IPC is used to send notification or short message between
processors with dsp.·
It will place the message to the share buffer and will access the ADSP mailbox
registers to kick dsp.
Two mailboxes used to send notification or short message between processors with
dsp
changes since v10:
- split up v9 into two separate submissions
https://patchwork.kernel.org/project/linux-mediatek/patch/20220111071011.59…
changes since v9:
- rename adsp_mbox_chan_ops to mtk_adsp_mbox_chan_ops
changes since v8:
- remove struct adsp_mbox_ch_info
- add get_mtk_adsp_mbox_priv
- use mtk_adsp_mbox_priv va_mboxreg address in adsp mbox driver
- add struct mtk_adsp_mbox_cfg for DSP mbox register offset
- remove adsp mbox register offset hard code define
- remove mtk-adsp-ipc.h reference in adsp mbox driver
changes since v7:
- add mtk prefix for adsp ipc functions
- rename adsp_mbox_ch_info to mtk_adsp_mbox_ch_info
- remove incorrect reviewers in commit message
changes since v6:
- dt-bindings: change example dtsi node.
- rename config MTK_ADSP_IPC_MBOX to MTK_ADSP_MBOX
- remove unused variable
- add reviewers
changes since v5:
- remove some redundant code
changes since v4:
- use switch ... case in adsp_ipc_recv
- add error handling path for chan_name pointer
- refine some code to be concise
changes since v3:
- reorder MTK_ADSP_IPC_MBOX config
- remove some redundant code
- remove lock in mtk-adsp-mailbox
changes since v2:
- separate adsp_mailbox into two instances
changes since v1:
- fix dt_binding_check error
Allen-KH Cheng (2):
dt-bindings: mediatek: add adsp-mbox document
mailbox: mediatek: add support for adsp mailbox controller
.../bindings/mailbox/mtk,adsp-mbox.yaml | 52 ++++++
drivers/mailbox/Kconfig | 7 +
drivers/mailbox/Makefile | 2 +
drivers/mailbox/mtk-adsp-mailbox.c | 176 ++++++++++++++++++
4 files changed, 237 insertions(+)
create mode 100644 Documentation/devicetree/bindings/mailbox/mtk,adsp-mbox.yaml
create mode 100644 drivers/mailbox/mtk-adsp-mailbox.c
--
2.18.0
1
2
From: Allen-KH Cheng <Allen-KH.Cheng(a)mediatek.com>
Some of mediatek processors contain
the Tensilica HiFix DSP for audio processing.
The communication between Host CPU and DSP firmware is
taking place using a shared memory area for message passing.
ADSP IPC protocol offers (send/recv) interfaces using
mediatek-mailbox APIs.
We use two mbox channels to implement a request-reply protocol.
Reviewed-by: Tzung-Bi Shih <tzungbi(a)google.com>
Signed-off-by: Allen-KH Cheng <Allen-KH.Cheng(a)mediatek.com>
---
drivers/firmware/Kconfig | 1 +
drivers/firmware/Makefile | 1 +
drivers/firmware/mediatek/Kconfig | 9 ++
drivers/firmware/mediatek/Makefile | 2 +
drivers/firmware/mediatek/mtk-adsp-ipc.c | 137 ++++++++++++++++++
.../linux/firmware/mediatek/mtk-adsp-ipc.h | 65 +++++++++
6 files changed, 215 insertions(+)
create mode 100644 drivers/firmware/mediatek/Kconfig
create mode 100644 drivers/firmware/mediatek/Makefile
create mode 100644 drivers/firmware/mediatek/mtk-adsp-ipc.c
create mode 100644 include/linux/firmware/mediatek/mtk-adsp-ipc.h
diff --git a/drivers/firmware/Kconfig b/drivers/firmware/Kconfig
index 75cb91055c17..f3578c60cff0 100644
--- a/drivers/firmware/Kconfig
+++ b/drivers/firmware/Kconfig
@@ -299,6 +299,7 @@ source "drivers/firmware/cirrus/Kconfig"
source "drivers/firmware/google/Kconfig"
source "drivers/firmware/efi/Kconfig"
source "drivers/firmware/imx/Kconfig"
+source "drivers/firmware/mediatek/Kconfig"
source "drivers/firmware/meson/Kconfig"
source "drivers/firmware/psci/Kconfig"
source "drivers/firmware/smccc/Kconfig"
diff --git a/drivers/firmware/Makefile b/drivers/firmware/Makefile
index 4e58cb474a68..88fbdc110100 100644
--- a/drivers/firmware/Makefile
+++ b/drivers/firmware/Makefile
@@ -34,6 +34,7 @@ obj-$(CONFIG_GOOGLE_FIRMWARE) += google/
obj-$(CONFIG_EFI) += efi/
obj-$(CONFIG_UEFI_CPER) += efi/
obj-y += imx/
+obj-y += mediatek/
obj-y += psci/
obj-y += smccc/
obj-y += tegra/
diff --git a/drivers/firmware/mediatek/Kconfig b/drivers/firmware/mediatek/Kconfig
new file mode 100644
index 000000000000..6d1e580b967b
--- /dev/null
+++ b/drivers/firmware/mediatek/Kconfig
@@ -0,0 +1,9 @@
+# SPDX-License-Identifier: GPL-2.0-only
+config MTK_ADSP_IPC
+ tristate "MTK ADSP IPC Protocol driver"
+ depends on MTK_ADSP_MBOX
+ help
+ Say yes here to add support for the MediaTek ADSP IPC
+ between host AP (Linux) and the firmware running on ADSP.
+ ADSP exists on some mtk processors.
+ Client might use shared memory to exchange information with ADSP side.
diff --git a/drivers/firmware/mediatek/Makefile b/drivers/firmware/mediatek/Makefile
new file mode 100644
index 000000000000..4e840b65650d
--- /dev/null
+++ b/drivers/firmware/mediatek/Makefile
@@ -0,0 +1,2 @@
+# SPDX-License-Identifier: GPL-2.0
+obj-$(CONFIG_MTK_ADSP_IPC) += mtk-adsp-ipc.o
diff --git a/drivers/firmware/mediatek/mtk-adsp-ipc.c b/drivers/firmware/mediatek/mtk-adsp-ipc.c
new file mode 100644
index 000000000000..b45f16cec063
--- /dev/null
+++ b/drivers/firmware/mediatek/mtk-adsp-ipc.c
@@ -0,0 +1,137 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (c) 2022 MediaTek Corporation. All rights reserved.
+ * Author: Allen-KH Cheng <allen-kh.cheng(a)mediatek.com>
+ */
+
+#include <linux/firmware/mediatek/mtk-adsp-ipc.h>
+#include <linux/kernel.h>
+#include <linux/mailbox_client.h>
+#include <linux/module.h>
+#include <linux/of_platform.h>
+#include <linux/platform_device.h>
+#include <linux/slab.h>
+
+int mtk_adsp_ipc_send(struct mtk_adsp_ipc *ipc, unsigned int idx, uint32_t msg)
+{
+ struct mtk_adsp_chan *dsp_chan;
+ int ret;
+
+ if (idx >= MTK_ADSP_MBOX_NUM)
+ return -EINVAL;
+
+ dsp_chan = &ipc->chans[idx];
+ ret = mbox_send_message(dsp_chan->ch, &msg);
+ if (ret < 0)
+ return ret;
+
+ return 0;
+}
+EXPORT_SYMBOL(mtk_adsp_ipc_send);
+
+static void mtk_adsp_ipc_recv(struct mbox_client *c, void *msg)
+{
+ struct mtk_adsp_chan *chan = container_of(c, struct mtk_adsp_chan, cl);
+ struct device *dev = c->dev;
+
+ switch (chan->idx) {
+ case MTK_ADSP_MBOX_REPLY:
+ chan->ipc->ops->handle_reply(chan->ipc);
+ break;
+ case MTK_ADSP_MBOX_REQUEST:
+ chan->ipc->ops->handle_request(chan->ipc);
+ break;
+ default:
+ dev_err(dev, "Wrong mbox chan %d \n", chan->idx);
+ break;
+ }
+}
+
+static int mtk_adsp_ipc_probe(struct platform_device *pdev)
+{
+ struct device *dev = &pdev->dev;
+ struct mtk_adsp_ipc *dsp_ipc;
+ struct mtk_adsp_chan *dsp_chan;
+ struct mbox_client *cl;
+ char *chan_name;
+ int ret;
+ int i, j;
+
+ device_set_of_node_from_dev(&pdev->dev, pdev->dev.parent);
+
+ dsp_ipc = devm_kzalloc(dev, sizeof(*dsp_ipc), GFP_KERNEL);
+ if (!dsp_ipc)
+ return -ENOMEM;
+
+ for (i = 0; i < MTK_ADSP_MBOX_NUM; i++) {
+ chan_name = kasprintf(GFP_KERNEL, "mbox%d", i);
+ if (!chan_name) {
+ ret = -ENOMEM;
+ goto out;
+ }
+
+ dsp_chan = &dsp_ipc->chans[i];
+ cl = &dsp_chan->cl;
+ cl->dev = dev->parent;
+ cl->tx_block = false;
+ cl->knows_txdone = false;
+ cl->tx_prepare = NULL;
+ cl->rx_callback = mtk_adsp_ipc_recv;
+
+ dsp_chan->ipc = dsp_ipc;
+ dsp_chan->idx = i;
+ dsp_chan->ch = mbox_request_channel_byname(cl, chan_name);
+ if (IS_ERR(dsp_chan->ch)) {
+ ret = PTR_ERR(dsp_chan->ch);
+ if (ret != -EPROBE_DEFER)
+ dev_err(dev, "Failed to request mbox chan %d ret %d\n",
+ i, ret);
+ goto out;
+ }
+
+ dev_dbg(dev, "request mbox chan %s\n", chan_name);
+ kfree(chan_name);
+ }
+
+ dsp_ipc->dev = dev;
+ dev_set_drvdata(dev, dsp_ipc);
+ dev_dbg(dev, "MTK ADSP IPC initialized\n");
+
+ return 0;
+
+out:
+ kfree(chan_name);
+ for (j = 0; j < i; j++) {
+ dsp_chan = &dsp_ipc->chans[j];
+ mbox_free_channel(dsp_chan->ch);
+ }
+
+ return ret;
+}
+
+static int mtk_adsp_ipc_remove(struct platform_device *pdev)
+{
+ struct mtk_adsp_ipc *dsp_ipc = dev_get_drvdata(&pdev->dev);
+ struct mtk_adsp_chan *dsp_chan;
+ int i;
+
+ for (i = 0; i < MTK_ADSP_MBOX_NUM; i++) {
+ dsp_chan = &dsp_ipc->chans[i];
+ mbox_free_channel(dsp_chan->ch);
+ }
+
+ return 0;
+}
+
+static struct platform_driver mtk_adsp_ipc_driver = {
+ .driver = {
+ .name = "mtk-adsp-ipc",
+ },
+ .probe = mtk_adsp_ipc_probe,
+ .remove = mtk_adsp_ipc_remove,
+};
+builtin_platform_driver(mtk_adsp_ipc_driver);
+
+MODULE_AUTHOR("Allen-KH Cheng <allen-kh.cheng(a)mediatek.com>");
+MODULE_DESCRIPTION("MTK ADSP IPC Driver");
+MODULE_LICENSE("GPL v2");
diff --git a/include/linux/firmware/mediatek/mtk-adsp-ipc.h b/include/linux/firmware/mediatek/mtk-adsp-ipc.h
new file mode 100644
index 000000000000..08e3c7d3b405
--- /dev/null
+++ b/include/linux/firmware/mediatek/mtk-adsp-ipc.h
@@ -0,0 +1,65 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (c) 2021 MediaTek Inc.
+ */
+
+#ifndef MTK_ADSP_IPC_H
+#define MTK_ADSP_IPC_H
+
+#include <linux/device.h>
+#include <linux/types.h>
+#include <linux/mailbox_controller.h>
+#include <linux/mailbox_client.h>
+
+#define MTK_ADSP_IPC_REQ 0
+#define MTK_ADSP_IPC_RSP 1
+#define MTK_ADSP_IPC_OP_REQ 0x1
+#define MTK_ADSP_IPC_OP_RSP 0x2
+
+enum {
+ MTK_ADSP_MBOX_REPLY,
+ MTK_ADSP_MBOX_REQUEST,
+ MTK_ADSP_MBOX_NUM,
+};
+
+struct mtk_adsp_ipc;
+
+struct mtk_adsp_ipc_ops {
+ void (*handle_reply)(struct mtk_adsp_ipc *ipc);
+ void (*handle_request)(struct mtk_adsp_ipc *ipc);
+};
+
+struct mtk_adsp_chan {
+ struct mtk_adsp_ipc *ipc;
+ struct mbox_client cl;
+ struct mbox_chan *ch;
+ char *name;
+ int idx;
+};
+
+struct mtk_adsp_ipc {
+ struct mtk_adsp_chan chans[MTK_ADSP_MBOX_NUM];
+ struct device *dev;
+ struct mtk_adsp_ipc_ops *ops;
+ void *private_data;
+};
+
+static inline void mtk_adsp_ipc_set_data(struct mtk_adsp_ipc *ipc, void *data)
+{
+ if (!ipc)
+ return;
+
+ ipc->private_data = data;
+}
+
+static inline void *mtk_adsp_ipc_get_data(struct mtk_adsp_ipc *ipc)
+{
+ if (!ipc)
+ return NULL;
+
+ return ipc->private_data;
+}
+
+int mtk_adsp_ipc_send(struct mtk_adsp_ipc *ipc, unsigned int idx, uint32_t op);
+
+#endif /* MTK_ADSP_IPC_H */
--
2.18.0
1
0
Following series performs few cleanups in topology code.
First patch reduces number of prints we get from failure.
Second allos TLV controls to be either read or write which should be
possible as evidenced by further code in function.
Last one cleanups after refactoring of memory handling.
Amadeusz Sławiński (3):
ASoC: topology: Remove superfluous error prints
ASoC: topology: Allow TLV control to be either read or write
ASoC: topology: Optimize soc_tplg_dapm_graph_elems_load behavior
sound/soc/soc-topology.c | 103 ++++++++++-----------------------------
1 file changed, 27 insertions(+), 76 deletions(-)
--
2.25.1
2
6

12 Jan '22
Hi,
In 1394 OHCI specification, each descriptor of IR/IT/AR/AT DMA context
has timeStamp field. The value of timeStamp field express the time in
which the controller accept packet. The resolution of value is isochronous
cycle count (8,000 Hz) with second up to 7.
I have a plan to use the value of timeStamp field for ALSA firewire stack
so that userspace ALSA PCM/Rawmidi applications can get converted timestamp
(ktime) for PCM frame/MIDI message. The timestamp can ideally express
finer granularity than the time to invoke IRQ handler (and co).
Current implementation of Linux FireWire subsystem delivers the value of
timeStamp field to unit driver for IR/IT/AT DMA context, but not for AR
DMA context. Additionally, the way to refer to Isochronous Cycle Timer
Register in MMIO region of 1394 OHCI controller is transaction to local
node. It includes overhead of transaction and it's preferable to add
less-overhead way available in any type of IRQ context.
This patchset adds two functions exposed in kernel space:
* fw_card_read_cycle_time()
* allow unit driver to access to CYCLE_TIME register in MMIO region
without initiate transaction
* fw_request_get_timestamp()
* allow unit driver to get timestamp of request packet inner request
handler
I note that Hector Martin found kernel null pointer dereference during
process to remove PCI card and has posted a patch:
* https://lore.kernel.org/lkml/20211027113130.8802-1-marcan@marcan.st/
His patch is included in the series with my comment for relevant commit
20802224298c ("firewire: core: add forgotten dummy driver methods, remove
unused ones"). The patch is required since unit driver can refer to dummy
driver between removal callback of PCI subsystem and removal callback of
FireWire subsystem.
Hector Martin (1):
firewire: Add dummy read_csr/write_csr functions
Takashi Sakamoto (2):
firewire: add kernel API to access CYCLE_TIME register
firewire: add kernel API to access packet structure in request
structure for AR context
drivers/firewire/core-card.c | 39 +++++++++++++++++++++++++++++
drivers/firewire/core-cdev.c | 6 +++--
drivers/firewire/core-transaction.c | 18 +++++++++++++
include/linux/firewire.h | 3 +++
4 files changed, 64 insertions(+), 2 deletions(-)
--
2.32.0
2
7
'interrupt-parent' is never required as it can be in a parent node or a
parent node itself can be an interrupt provider. Where exactly it lives is
outside the scope of a binding schema.
Signed-off-by: Rob Herring <robh(a)kernel.org>
---
.../devicetree/bindings/gpio/toshiba,gpio-visconti.yaml | 1 -
.../devicetree/bindings/mailbox/ti,omap-mailbox.yaml | 9 ---------
Documentation/devicetree/bindings/mfd/cirrus,madera.yaml | 1 -
.../devicetree/bindings/net/lantiq,etop-xway.yaml | 1 -
.../devicetree/bindings/net/lantiq,xrx200-net.yaml | 1 -
.../devicetree/bindings/pci/sifive,fu740-pcie.yaml | 1 -
.../devicetree/bindings/pci/xilinx-versal-cpm.yaml | 1 -
7 files changed, 15 deletions(-)
diff --git a/Documentation/devicetree/bindings/gpio/toshiba,gpio-visconti.yaml b/Documentation/devicetree/bindings/gpio/toshiba,gpio-visconti.yaml
index 9ad470e01953..b085450b527f 100644
--- a/Documentation/devicetree/bindings/gpio/toshiba,gpio-visconti.yaml
+++ b/Documentation/devicetree/bindings/gpio/toshiba,gpio-visconti.yaml
@@ -43,7 +43,6 @@ required:
- gpio-controller
- interrupt-controller
- "#interrupt-cells"
- - interrupt-parent
additionalProperties: false
diff --git a/Documentation/devicetree/bindings/mailbox/ti,omap-mailbox.yaml b/Documentation/devicetree/bindings/mailbox/ti,omap-mailbox.yaml
index e864d798168d..d433e496ec6e 100644
--- a/Documentation/devicetree/bindings/mailbox/ti,omap-mailbox.yaml
+++ b/Documentation/devicetree/bindings/mailbox/ti,omap-mailbox.yaml
@@ -175,15 +175,6 @@ required:
- ti,mbox-num-fifos
allOf:
- - if:
- properties:
- compatible:
- enum:
- - ti,am654-mailbox
- then:
- required:
- - interrupt-parent
-
- if:
properties:
compatible:
diff --git a/Documentation/devicetree/bindings/mfd/cirrus,madera.yaml b/Documentation/devicetree/bindings/mfd/cirrus,madera.yaml
index 499c62c04daa..5dce62a7eff2 100644
--- a/Documentation/devicetree/bindings/mfd/cirrus,madera.yaml
+++ b/Documentation/devicetree/bindings/mfd/cirrus,madera.yaml
@@ -221,7 +221,6 @@ required:
- '#gpio-cells'
- interrupt-controller
- '#interrupt-cells'
- - interrupt-parent
- interrupts
- AVDD-supply
- DBVDD1-supply
diff --git a/Documentation/devicetree/bindings/net/lantiq,etop-xway.yaml b/Documentation/devicetree/bindings/net/lantiq,etop-xway.yaml
index 437502c5ca96..3ce9f9a16baf 100644
--- a/Documentation/devicetree/bindings/net/lantiq,etop-xway.yaml
+++ b/Documentation/devicetree/bindings/net/lantiq,etop-xway.yaml
@@ -46,7 +46,6 @@ properties:
required:
- compatible
- reg
- - interrupt-parent
- interrupts
- interrupt-names
- lantiq,tx-burst-length
diff --git a/Documentation/devicetree/bindings/net/lantiq,xrx200-net.yaml b/Documentation/devicetree/bindings/net/lantiq,xrx200-net.yaml
index 7bc074a42369..5bc1a21ca579 100644
--- a/Documentation/devicetree/bindings/net/lantiq,xrx200-net.yaml
+++ b/Documentation/devicetree/bindings/net/lantiq,xrx200-net.yaml
@@ -38,7 +38,6 @@ properties:
required:
- compatible
- reg
- - interrupt-parent
- interrupts
- interrupt-names
- "#address-cells"
diff --git a/Documentation/devicetree/bindings/pci/sifive,fu740-pcie.yaml b/Documentation/devicetree/bindings/pci/sifive,fu740-pcie.yaml
index 2b9d1d6fc661..72c78f4ec269 100644
--- a/Documentation/devicetree/bindings/pci/sifive,fu740-pcie.yaml
+++ b/Documentation/devicetree/bindings/pci/sifive,fu740-pcie.yaml
@@ -61,7 +61,6 @@ required:
- num-lanes
- interrupts
- interrupt-names
- - interrupt-parent
- interrupt-map-mask
- interrupt-map
- clock-names
diff --git a/Documentation/devicetree/bindings/pci/xilinx-versal-cpm.yaml b/Documentation/devicetree/bindings/pci/xilinx-versal-cpm.yaml
index a2bbc0eb7220..32f4641085bc 100644
--- a/Documentation/devicetree/bindings/pci/xilinx-versal-cpm.yaml
+++ b/Documentation/devicetree/bindings/pci/xilinx-versal-cpm.yaml
@@ -55,7 +55,6 @@ required:
- reg-names
- "#interrupt-cells"
- interrupts
- - interrupt-parent
- interrupt-map
- interrupt-map-mask
- bus-range
--
2.32.0
4
7
From: Allen-KH Cheng <Allen-KH.Cheng(a)mediatek.com>
Some of mediatek processors contain
the Tensilica HiFix DSP for audio processing.
The communication between Host CPU and DSP firmware is
taking place using a shared memory area for message passing.
ADSP IPC protocol offers (send/recv) interfaces using
mediatek-mailbox APIs.
We use two mbox channels to implement a request-reply protocol.
Reviewed-by: Tzung-Bi Shih <tzungbi(a)google.com>
Signed-off-by: Allen-KH Cheng <Allen-KH.Cheng(a)mediatek.com>
---
drivers/firmware/Kconfig | 1 +
drivers/firmware/Makefile | 1 +
drivers/firmware/mediatek/Kconfig | 9 ++
drivers/firmware/mediatek/Makefile | 2 +
drivers/firmware/mediatek/mtk-adsp-ipc.c | 137 ++++++++++++++++++
.../linux/firmware/mediatek/mtk-adsp-ipc.h | 65 +++++++++
6 files changed, 215 insertions(+)
create mode 100644 drivers/firmware/mediatek/Kconfig
create mode 100644 drivers/firmware/mediatek/Makefile
create mode 100644 drivers/firmware/mediatek/mtk-adsp-ipc.c
create mode 100644 include/linux/firmware/mediatek/mtk-adsp-ipc.h
diff --git a/drivers/firmware/Kconfig b/drivers/firmware/Kconfig
index 75cb91055c17..f3578c60cff0 100644
--- a/drivers/firmware/Kconfig
+++ b/drivers/firmware/Kconfig
@@ -299,6 +299,7 @@ source "drivers/firmware/cirrus/Kconfig"
source "drivers/firmware/google/Kconfig"
source "drivers/firmware/efi/Kconfig"
source "drivers/firmware/imx/Kconfig"
+source "drivers/firmware/mediatek/Kconfig"
source "drivers/firmware/meson/Kconfig"
source "drivers/firmware/psci/Kconfig"
source "drivers/firmware/smccc/Kconfig"
diff --git a/drivers/firmware/Makefile b/drivers/firmware/Makefile
index 4e58cb474a68..88fbdc110100 100644
--- a/drivers/firmware/Makefile
+++ b/drivers/firmware/Makefile
@@ -34,6 +34,7 @@ obj-$(CONFIG_GOOGLE_FIRMWARE) += google/
obj-$(CONFIG_EFI) += efi/
obj-$(CONFIG_UEFI_CPER) += efi/
obj-y += imx/
+obj-y += mediatek/
obj-y += psci/
obj-y += smccc/
obj-y += tegra/
diff --git a/drivers/firmware/mediatek/Kconfig b/drivers/firmware/mediatek/Kconfig
new file mode 100644
index 000000000000..6d1e580b967b
--- /dev/null
+++ b/drivers/firmware/mediatek/Kconfig
@@ -0,0 +1,9 @@
+# SPDX-License-Identifier: GPL-2.0-only
+config MTK_ADSP_IPC
+ tristate "MTK ADSP IPC Protocol driver"
+ depends on MTK_ADSP_MBOX
+ help
+ Say yes here to add support for the MediaTek ADSP IPC
+ between host AP (Linux) and the firmware running on ADSP.
+ ADSP exists on some mtk processors.
+ Client might use shared memory to exchange information with ADSP side.
diff --git a/drivers/firmware/mediatek/Makefile b/drivers/firmware/mediatek/Makefile
new file mode 100644
index 000000000000..4e840b65650d
--- /dev/null
+++ b/drivers/firmware/mediatek/Makefile
@@ -0,0 +1,2 @@
+# SPDX-License-Identifier: GPL-2.0
+obj-$(CONFIG_MTK_ADSP_IPC) += mtk-adsp-ipc.o
diff --git a/drivers/firmware/mediatek/mtk-adsp-ipc.c b/drivers/firmware/mediatek/mtk-adsp-ipc.c
new file mode 100644
index 000000000000..b45f16cec063
--- /dev/null
+++ b/drivers/firmware/mediatek/mtk-adsp-ipc.c
@@ -0,0 +1,137 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (c) 2022 MediaTek Corporation. All rights reserved.
+ * Author: Allen-KH Cheng <allen-kh.cheng(a)mediatek.com>
+ */
+
+#include <linux/firmware/mediatek/mtk-adsp-ipc.h>
+#include <linux/kernel.h>
+#include <linux/mailbox_client.h>
+#include <linux/module.h>
+#include <linux/of_platform.h>
+#include <linux/platform_device.h>
+#include <linux/slab.h>
+
+int mtk_adsp_ipc_send(struct mtk_adsp_ipc *ipc, unsigned int idx, uint32_t msg)
+{
+ struct mtk_adsp_chan *dsp_chan;
+ int ret;
+
+ if (idx >= MTK_ADSP_MBOX_NUM)
+ return -EINVAL;
+
+ dsp_chan = &ipc->chans[idx];
+ ret = mbox_send_message(dsp_chan->ch, &msg);
+ if (ret < 0)
+ return ret;
+
+ return 0;
+}
+EXPORT_SYMBOL(mtk_adsp_ipc_send);
+
+static void mtk_adsp_ipc_recv(struct mbox_client *c, void *msg)
+{
+ struct mtk_adsp_chan *chan = container_of(c, struct mtk_adsp_chan, cl);
+ struct device *dev = c->dev;
+
+ switch (chan->idx) {
+ case MTK_ADSP_MBOX_REPLY:
+ chan->ipc->ops->handle_reply(chan->ipc);
+ break;
+ case MTK_ADSP_MBOX_REQUEST:
+ chan->ipc->ops->handle_request(chan->ipc);
+ break;
+ default:
+ dev_err(dev, "Wrong mbox chan %d \n", chan->idx);
+ break;
+ }
+}
+
+static int mtk_adsp_ipc_probe(struct platform_device *pdev)
+{
+ struct device *dev = &pdev->dev;
+ struct mtk_adsp_ipc *dsp_ipc;
+ struct mtk_adsp_chan *dsp_chan;
+ struct mbox_client *cl;
+ char *chan_name;
+ int ret;
+ int i, j;
+
+ device_set_of_node_from_dev(&pdev->dev, pdev->dev.parent);
+
+ dsp_ipc = devm_kzalloc(dev, sizeof(*dsp_ipc), GFP_KERNEL);
+ if (!dsp_ipc)
+ return -ENOMEM;
+
+ for (i = 0; i < MTK_ADSP_MBOX_NUM; i++) {
+ chan_name = kasprintf(GFP_KERNEL, "mbox%d", i);
+ if (!chan_name) {
+ ret = -ENOMEM;
+ goto out;
+ }
+
+ dsp_chan = &dsp_ipc->chans[i];
+ cl = &dsp_chan->cl;
+ cl->dev = dev->parent;
+ cl->tx_block = false;
+ cl->knows_txdone = false;
+ cl->tx_prepare = NULL;
+ cl->rx_callback = mtk_adsp_ipc_recv;
+
+ dsp_chan->ipc = dsp_ipc;
+ dsp_chan->idx = i;
+ dsp_chan->ch = mbox_request_channel_byname(cl, chan_name);
+ if (IS_ERR(dsp_chan->ch)) {
+ ret = PTR_ERR(dsp_chan->ch);
+ if (ret != -EPROBE_DEFER)
+ dev_err(dev, "Failed to request mbox chan %d ret %d\n",
+ i, ret);
+ goto out;
+ }
+
+ dev_dbg(dev, "request mbox chan %s\n", chan_name);
+ kfree(chan_name);
+ }
+
+ dsp_ipc->dev = dev;
+ dev_set_drvdata(dev, dsp_ipc);
+ dev_dbg(dev, "MTK ADSP IPC initialized\n");
+
+ return 0;
+
+out:
+ kfree(chan_name);
+ for (j = 0; j < i; j++) {
+ dsp_chan = &dsp_ipc->chans[j];
+ mbox_free_channel(dsp_chan->ch);
+ }
+
+ return ret;
+}
+
+static int mtk_adsp_ipc_remove(struct platform_device *pdev)
+{
+ struct mtk_adsp_ipc *dsp_ipc = dev_get_drvdata(&pdev->dev);
+ struct mtk_adsp_chan *dsp_chan;
+ int i;
+
+ for (i = 0; i < MTK_ADSP_MBOX_NUM; i++) {
+ dsp_chan = &dsp_ipc->chans[i];
+ mbox_free_channel(dsp_chan->ch);
+ }
+
+ return 0;
+}
+
+static struct platform_driver mtk_adsp_ipc_driver = {
+ .driver = {
+ .name = "mtk-adsp-ipc",
+ },
+ .probe = mtk_adsp_ipc_probe,
+ .remove = mtk_adsp_ipc_remove,
+};
+builtin_platform_driver(mtk_adsp_ipc_driver);
+
+MODULE_AUTHOR("Allen-KH Cheng <allen-kh.cheng(a)mediatek.com>");
+MODULE_DESCRIPTION("MTK ADSP IPC Driver");
+MODULE_LICENSE("GPL v2");
diff --git a/include/linux/firmware/mediatek/mtk-adsp-ipc.h b/include/linux/firmware/mediatek/mtk-adsp-ipc.h
new file mode 100644
index 000000000000..08e3c7d3b405
--- /dev/null
+++ b/include/linux/firmware/mediatek/mtk-adsp-ipc.h
@@ -0,0 +1,65 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (c) 2021 MediaTek Inc.
+ */
+
+#ifndef MTK_ADSP_IPC_H
+#define MTK_ADSP_IPC_H
+
+#include <linux/device.h>
+#include <linux/types.h>
+#include <linux/mailbox_controller.h>
+#include <linux/mailbox_client.h>
+
+#define MTK_ADSP_IPC_REQ 0
+#define MTK_ADSP_IPC_RSP 1
+#define MTK_ADSP_IPC_OP_REQ 0x1
+#define MTK_ADSP_IPC_OP_RSP 0x2
+
+enum {
+ MTK_ADSP_MBOX_REPLY,
+ MTK_ADSP_MBOX_REQUEST,
+ MTK_ADSP_MBOX_NUM,
+};
+
+struct mtk_adsp_ipc;
+
+struct mtk_adsp_ipc_ops {
+ void (*handle_reply)(struct mtk_adsp_ipc *ipc);
+ void (*handle_request)(struct mtk_adsp_ipc *ipc);
+};
+
+struct mtk_adsp_chan {
+ struct mtk_adsp_ipc *ipc;
+ struct mbox_client cl;
+ struct mbox_chan *ch;
+ char *name;
+ int idx;
+};
+
+struct mtk_adsp_ipc {
+ struct mtk_adsp_chan chans[MTK_ADSP_MBOX_NUM];
+ struct device *dev;
+ struct mtk_adsp_ipc_ops *ops;
+ void *private_data;
+};
+
+static inline void mtk_adsp_ipc_set_data(struct mtk_adsp_ipc *ipc, void *data)
+{
+ if (!ipc)
+ return;
+
+ ipc->private_data = data;
+}
+
+static inline void *mtk_adsp_ipc_get_data(struct mtk_adsp_ipc *ipc)
+{
+ if (!ipc)
+ return NULL;
+
+ return ipc->private_data;
+}
+
+int mtk_adsp_ipc_send(struct mtk_adsp_ipc *ipc, unsigned int idx, uint32_t op);
+
+#endif /* MTK_ADSP_IPC_H */
--
2.18.0
2
1
The following changes since commit ee907afb0c39a41ee74b862882cfe12820c74b98:
ASoC: meson: aiu: Move AIU_I2S_MISC hold setting to aiu-fifo-i2s (2021-12-14 17:15:32 +0000)
are available in the Git repository at:
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git tags/asoc-v5.17-2
for you to fetch changes up to f517ba4924ad026f2583553db02f3c8bc69de88b:
ASoC: cs35l41: Add support for hibernate memory retention mode (2022-01-07 17:14:27 +0000)
----------------------------------------------------------------
ASoC: Updates for v5.17
A few more updates for v5.17, nothing hugely stand out in the few days
since the initial pull request was sent.
----------------------------------------------------------------
Ajit Kumar Pandey (17):
ASoC: SOF: amd: Add Renoir ACP HW support
ASoC: SOF: amd: Add helper callbacks for ACP's DMA configuration
ASoC: SOF: amd: Add fw loader and renoir dsp ops to load firmware
ASoC: SOF: amd: Add IPC support for ACP IP block
ASoC: SOF: amd: Add dai driver dsp ops callback for Renoir
ASoC: SOF: amd: Add PCM stream callback for Renoir dai's
ASoC: amd: Add module to determine ACP configuration
ASoC: SOF: amd: Add machine driver dsp ops for Renoir platform
ASoC: SOF: amd: Add Renoir PCI driver interface
ASoC: amd: acp-config: Remove legacy acpi based machine struct
ASoC: SOF: topology: Add support for AMD ACP DAIs
ASoC: SOF: amd: Add support for SOF firmware authentication
ASoC: SOF: ipc: Add null pointer check for substream->runtime
ASoC: amd: acp-config: Enable SOF audio for Google chrome boards.
ASoC: amd: acp-config: Update sof_tplg_filename for SOF machines
ASoC: amd: acp: Remove duplicate dependency in Kconfig
ASoC: amd: acp: acp-mach: Change default RT1019 amp dev id
Alexander Stein (5):
ASoC: dt-bindings: Use name-prefix schema
ASoC: meson: t9015: add missing sound-name-prefix property
ASoC: meson: g12a: add missing sound-name-prefix property
ASoC: dt-bindings: spdif-dit: add missing sound-name-prefix property
ASoC: dt-bindings: aiu: spdif-dit: add missing sound-name-prefix property
Allen-KH Cheng (1):
ASoC: SOF: Remove pm_runtime_put_autosuspend() for SOF OF device
Alyssa Ross (1):
ASoC: fsl_mqs: fix MODULE_ALIAS
Ameer Hamza (2):
ASoC: test-component: fix null pointer dereference.
ASoC: test-component: fix null pointer dereference.
Andy Shevchenko (3):
ASoC: zl38060: Setup parent device and get rid of unnecessary of_node assignment
ASoC: ti: davinci-mcasp: Get rid of duplicate of_node assignment
ASoC: ti: davinci-mcasp: Remove unnecessary conditional
Ariel D'Alessandro (6):
ASoC: tlv320aic31xx: Fix typo in BCLK clock name
ASoC: tlv320aic31xx: Add support for pll_r coefficient
ASoC: tlv320aic31xx: Add divs for bclk as clk_in
ASoC: tlv320aic31xx: Handle BCLK set as PLL input configuration
ASoC: fsl-asoc-card: Support fsl,imx-audio-tlv320aic31xx codec
ASoC: fsl-asoc-card: Add missing Kconfig option for tlv320aic31xx
Arnd Bergmann (11):
ASoC: tegra20-spdif: stop setting slave_id
dmaengine: tegra20-apb: stop checking config->slave_id
ASoC: dai_dma: remove slave_id field
spi: pic32: stop setting dma_config->slave_id
mmc: bcm2835: stop setting chan_config->slave_id
dmaengine: shdma: remove legacy slave_id parsing
dmaengine: pxa/mmp: stop referencing config->slave_id
dmaengine: sprd: stop referencing config->slave_id
dmaengine: qcom-adm: stop abusing slave_id config
dmaengine: xilinx_dpdma: stop using slave_id field
dmaengine: remove slave_id config field
Bard Liao (8):
ASoC: intel: sof_sdw: return the original error number
ASoC: intel: sof_sdw: rename be_index/link_id to link_index
ASoC: intel: sof_sdw: Use a fixed DAI link id for AMP
ASoC: intel: sof_sdw: move DMIC link id overwrite to create_sdw_dailink
ASoC: intel: sof_sdw: remove SOF_RT715_DAI_ID_FIX quirk
ASoC: intel: sof_sdw: remove sof_sdw_mic_codec_mockup_init
ASoC: intel: sof_sdw: remove get_next_be_id
ASoC: intel: sof_sdw: add link adr order check
Bernard Zhao (1):
sound/soc: remove useless bool conversion to bool variable
Cezary Rojewski (3):
ASoC: Intel: catpt: Test dmaengine_submit() result before moving on
ASoC: Intel: catpt: Reduce size of catpt_component_open()
ASoC: Intel: catpt: Streamline locals declaration for PCM-functions
Charles Keepax (18):
ASoC: wm_adsp: Remove the wmfw_add_ctl helper function
firmware: cs_dsp: Add lockdep asserts to interface functions
firmware: cs_dsp: Add version checks on coefficient loading
firmware: cs_dsp: Add pre_run callback
firmware: cs_dsp: Print messages from bin files
firmware: cs_dsp: Add support for rev 2 coefficient files
firmware: cs_dsp: Perform NULL check in cs_dsp_coeff_write/read_ctrl
firmware: cs_dsp: Clarify some kernel doc comments
firmware: cs_dsp: Add offset to cs_dsp read/write
firmware: cs_dsp: Allow creation of event controls
firmware: cs_dsp: Move lockdep asserts to avoid potential null pointer
ASoC: cs35l41: Remove incorrect comment
ASoC: cs35l41: Correct DSP power down
ASoC: cs35l41: Correct handling of some registers in the cache
firmware: cs_dsp: Clear core reset for cache
ASoC: wm_adsp: Add support for "toggle" preloaders
ASoC: cs35l41: Update handling of test key registers
ASoC: cs35l41: Add support for hibernate memory retention mode
Chris Down (1):
ASoC: Intel: hda_dsp_common: don't multiline PCM topology warning
Christophe JAILLET (1):
ASoC: codecs: Axe some dead code in 'wcd_mbhc_adc_hs_rem_irq()'
Colin Ian King (1):
ASoC: mediatek: mt8195: make several arrays static const
Dan Carpenter (2):
ASoC: mediatek: mt8195: silence uninitialized variable warning
ASoC: qdsp6: fix a use after free bug in open()
Daniel Baluta (6):
ASoC: SOF: imx: Add code to manage DSP related clocks
ASoC: SOF: imx8: Add runtime PM / System PM support
ASoC: SOF: imx8m: Add runtime PM / System PM support
ASoC: SOF: imx8m: Implement DSP start
ASoC: SOF: imx8m: Implement reset callback
ASoC: SOF: OF: Avoid reverse module dependency
David Heidelberg (2):
ASoC: wm8903: Convert txt bindings to yaml
ASoC: nvidia,tegra-audio: Convert multiple txt bindings to yaml
David Rhodes (2):
ASoC: cs35l41: DSP Support
ASoC: cs35l41: Add cs35l51/53 IDs
Derek Fang (1):
ASoC: rt5682: Register wclk with its parent_hws instead of parent_data
Dmitry Osipenko (12):
ASoC: dt-bindings: Add binding for Tegra20 S/PDIF
ASoC: dt-bindings: tegra20-i2s: Convert to schema
ASoC: dt-bindings: tegra20-i2s: Document new nvidia,fixed-parent-rate property
ASoC: tegra20: spdif: Set FIFO trigger level
ASoC: tegra20: spdif: Support device-tree
ASoC: tegra20: spdif: Improve driver's code
ASoC: tegra20: spdif: Use more resource-managed helpers
ASoC: tegra20: spdif: Reset hardware
ASoC: tegra20: spdif: Support system suspend
ASoC: tegra20: spdif: Filter out unsupported rates
ASoC: tegra20: i2s: Filter out unsupported rates
ASoC: tegra-audio-rt5677: Correct example
Fabio Estevam (2):
ASoC: cs4265: Fix part number ID error message
ASoC: cs4265: Add a remove() function
Geert Uytterhoeven (1):
ASoC: SOF: mediatek: Use %pR/%pa to print resources/physical addresses
Guennadi Liakhovetski (1):
ASoC: SOF: avoid casting "const" attribute away
Hans de Goede (6):
ASoC: rt5640: Fix possible NULL pointer deref on resume
ASoC: rt5640: Change jack_work to a delayed_work
ASoC: rt5640: Allow snd_soc_component_set_jack() to override the codec IRQ
ASoC: rt5640: Add support for boards with an external jack-detect GPIO
ASoC: Intel: bytcr_rt5640: Support retrieving the codec IRQ from the AMCR0F28 ACPI dev
ASoC: Intel: bytcr_rt5640: Add support for external GPIO jack-detect
Heiner Kallweit (1):
ASoC: sh: rz-ssi: Check return value of pm_runtime_resume_and_get()
Jernej Skrabec (1):
ASoC: sunxi: sun4i-spdif: Implement IEC958 control
Jiasheng Jiang (3):
ASoC: rt5663: Handle device_property_read_u32_array error codes
ASoC: mediatek: Check for error clk pointer
ASoC: samsung: idma: Check of ioremap return value
Jiaxin Yu (2):
ASoC: mediatek: remove unnecessary CONFIG_PM
ASoC: mediatek: assign correct type to argument
Judy Hsiao (1):
ASoC: qcom: Distinguish headset codec by codec_dai->name
Kai Vehmanen (1):
ASoC: SOF: Intel: fix build issue related to CODEC_PROBE_ENTRIES
Karol Trzcinski (1):
ipc: debug: Add shared memory heap to memory scan
Kuninori Morimoto (28):
ASoC: soc-dai: update snd_soc_dai_delay() to snd_soc_pcm_dai_delay()
ASoC: soc-component: add snd_soc_pcm_component_delay()
ASoC: amd: acp-pcm-dma: add .delay support
ASoC: intel: sst-mfld-platform-pcm: add .delay support
ASoC: soc-pcm: tidyup soc_pcm_pointer()'s delay update method
ASoC: dt-bindings: audio-graph-port: enable both flag/phandle for bitclock/frame-master
ASoC: codecs: ak4118: Use dev_err_probe() helper
ASoC: codecs: es7241: Use dev_err_probe() helper
ASoC: codecs: max9759: Use dev_err_probe() helper
ASoC: codecs: max9860: Use dev_err_probe() helper
ASoC: codecs: pcm3168a: Use dev_err_probe() helper
ASoC: codecs: sgtl5000: Use dev_err_probe() helper
ASoC: codecs: simple-amplifier: Use dev_err_probe() helper
ASoC: codecs: simple-mux: Use dev_err_probe() helper
ASoC: codecs: ssm2305: Use dev_err_probe() helper
ASoC: codecs: tlv320aic31xx: Use dev_err_probe() helper
ASoC: ateml: Use dev_err_probe() helper
ASoC: ti: Use dev_err_probe() helper
ASoC: fsl: Use dev_err_probe() helper
ASoC: generic: Use dev_err_probe() helper
ASoC: img: Use dev_err_probe() helper
ASoC: meson: Use dev_err_probe() helper
ASoC: mxs: Use dev_err_probe() helper
ASoC: qcom: Use dev_err_probe() helper
ASoC: rockchip: Use dev_err_probe() helper
ASoC: samsung: Use dev_err_probe() helper
ASoC: stm: Use dev_err_probe() helper
ASoC: sunxi: Use dev_err_probe() helper
Lad Prabhakar (2):
ASoC: xlnx: Use platform_get_irq() to get the interrupt
ASoC: bcm: Use platform_get_irq() to get the interrupt
Lucas Tanure (9):
ASoC: cs35l41: Fix link problem
ASoC: amd: Fix dependency for SPI master
ASoC: cs35l41: Fix undefined reference to core functions
ASoC: cs35l41: Convert tables to shared source code
ASoC: cs35l41: Move cs35l41_otp_unpack to shared code
ASoC: cs35l41: Move power initializations to reg_sequence
ASoC: cs35l41: Create shared function for errata patches
ASoC: cs35l41: Create shared function for setting channels
ASoC: cs35l41: Create shared function for boost configuration
Lukas Bulwahn (2):
ASoC: uniphier: drop selecting non-existing SND_SOC_UNIPHIER_AIO_DMA
ASoC: codecs: wcd938x: add SND_SOC_WCD938_SDW to codec list instead
Mac Chiang (2):
ASoC: Intel: add sof-nau8825 machine driver
ASoC: Intel: boards: add max98390 2/4 speakers support
Mark Brown (38):
Merge series "" from :
Merge existing fixes from asoc/for-5.16 into new branch
Merge series "Add tfa9897 rcv-gpios support" from Vincent Knecht <vincent.knecht(a)mailoo.org>:
Merge series "ASoC: Intel: sof_sdw: Use fixed DAI link id" from Bard Liao <yung-chuan.liao(a)linux.intel.com>:
ASoC: cs42l42: Remove redundant code
ASoC: SOF: New debug feature: IPC message injector
ASoC: SOF: Platform updates for AMD and Mediatek
ASoC: SOF: Add support for Mediatek MT8195
ASoC: SOF: enable multicore with dynamic pipelines
Support BCLK input clock in tlv320aic31xx
ASoC: stm32: add pm runtime support
ASoC: SOF: Add PM support for i.MX8/i.MX8X/i.MX8M
ASoC: SOF: Intel: power optimizations with HDaudio SPIB register
ASoC: SOF: Fixes for Intel HD-Audio DMA stopping
ASoC: soc-pcm: tidyup soc_pcm_pointer()'s delay update method
Merge branch 'for-5.16' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-5.17 so we can apply new Tegra work
ASoC: mediatek: Update MT8195 machine driver
ASoC: mediatek: support memory-region assignment
ASoC: fsl-asoc-card: Add missing Kconfig option for tlv320aic31xx
ASoC: amd: Convert to new style DAI format definitions
ASoC: qcom: apq8016_sbc: Allow routing audio through QDSP6
ASoC : soc-pcm: fix trigger race conditions with shared BE
ASoC: Changes to SOF kcontrol data set/get ops
Merge tag 'dmaengine_topic_slave_id_removal_5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine into v4_20211204_digetx_support_hdmi_audio_on_nvidia_tegra20
ASoC: SOF: remove suport for TRIGGER_RESUME
ASoC: SOF: couple of cleanups
Support HDMI audio on NVIDIA Tegra20
ASoC: Intel: catpt: Dma-transfer fix and couple
ASoC: Use dev_err_probe() helper
ASoC: SOF: Re-visit firmware state and panic tracking/handling
ASoC: More amlogic sound-name-prefix DT fixes
ASoC: qcom: Parse "pin-switches" and "widgets" from DT
ASoC/SoundWire: improve suspend flows and use set_stream() instead of set_tdm_slots() for HDAudio
ASoC: Merge fixes
ASoC: Add support for CS35L41 in HDA systems
ASoC: mediatek: mt8195: repair pcmif BE dai
Add low power hibernation support to cs35l41
ASoC: imx-card: several improvement and fixes
Maíra Canal (1):
ASoC: adau1701: Replace legacy gpio interface for gpiod
Miaoqian Lin (1):
ASoC: qdsp6: Fix an IS_ERR() vs NULL bug
Oder Chiou (3):
ASoC: rt5640: Add the binding include file for the HDA header support
ASoC: rt5640: Add the HDA header support
ASoC: rt5640: Fix the wrong state of the JD in the HDA header
Olivier Moysan (4):
ASoC: stm32: sai: increase channels_max limit
ASoC: stm32: i2s: add pm_runtime support
ASoC: stm32: dfsdm: add pm_runtime support for audio
ASoC: stm32: spdifrx: add pm_runtime support
Paul Cercueil (1):
ASoC: codecs/jz4770: Add missing gain control after DAC/ADC mixer
Peter Ujfalusi (33):
ASoC: SOF: core: Unregister machine driver before IPC and debugfs
ASoC: SOF: utils: Add generic function to get the reply for a tx message
ASoC: SOF: imx: Use the generic helper to get the reply
ASoC: SOF: intel: Use the generic helper to get the reply
ASoC: SOF: debug: Add support for IPC message injection
ASoC: SOF: ipc: Rename send parameter in snd_sof_ipc_set_get_comp_data()
ASoC: SOF: Drop ipc_cmd parameter for snd_sof_ipc_set_get_comp_data()
ASoC: SOF: topology: Set control_data->cmd alongside scontrol->cmd
ASoC: SOF: Drop ctrl_cmd parameter for snd_sof_ipc_set_get_comp_data()
ASoC: SOF: sof-audio: Drop the `cmd` member from struct snd_sof_control
ASoC: SOF: control: Do not handle control notification with component type
ASoC: SOF: Drop ctrl_type parameter for snd_sof_ipc_set_get_comp_data()
ASoC: SOF: Kconfig: Make the SOF_DEVELOPER_SUPPORT depend on SND_SOC_SOF
ASoC: SOF: ops: Use dev_warn() if the panic offsets differ
ASoC: SOF: Intel: hda-loader: Avoid re-defining the HDA_FW_BOOT_ATTEMPTS
ASoC: SOF: core: Add simple wrapper to check flags in sof_core_debug
ASoC: SOF: Use sof_debug_check_flag() instead of sof_core_debug directly
ASoC: SOF: Add 'non_recoverable' parameter to snd_sof_dsp_panic()
ASoC: SOF: Add a 'message' parameter to snd_sof_dsp_dbg_dump()
ASoC: SOF: Introduce new firmware state: SOF_FW_CRASHED
ASoC: SOF: Introduce new firmware state: SOF_FW_BOOT_READY_OK
ASoC: SOF: Move the definition of enum snd_sof_fw_state to global header
ASoC: SOF: Rename 'enum snd_sof_fw_state' to 'enum sof_fw_state'
ASoC: SOF: ipc: Only allow sending of an IPC in SOF_FW_BOOT_COMPLETE state
ASoC: SOF: Set SOF_FW_BOOT_FAILED in case we have failure during boot
ASoC: SOF: pm: Force DSP off on suspend in BOOT_FAILED state also
ASoc: SOF: core: Update the FW boot state transition diagram
ASoC: SOF: ops: Always print DSP Panic message but use different message
ASoC: SOF: dsp_arch_ops: add kernel log level parameter for oops and stack
ASoC: SOF: Rename snd_sof_get_status() and add kernel log level parameter
ASoC: SOF: Add clarifying comments for sof_core_debug and DSP dump flags
ASoC: SOF: debug: Use DEBUG log level for optional prints
ASoC: SOF: Intel: hda: Use DEBUG log level for optional prints
Pierre-Louis Bossart (28):
ASoC: Intel: sof_sdw: fix jack detection on HP Spectre x360 convertible
ASoC: Intel: sof_sdw: add SKU for Dell Latitude 9520
ASoC: SOF: i.MX: simplify Kconfig
ASoC: SOF: sof-pci-dev: use community key on all Up boards
ALSA: pcm: unconditionally check if appl_ptr is in 0..boundary range
ALSA: pcm: introduce INFO_NO_REWINDS flag
ASoC: SOF: sof-audio: setup sched widgets during pipeline complete step
ASoC: SOF: topology: don't use list_for_each_entry_reverse()
ASoC: Intel: boards: add 'static' qualifiers for max98390 routes
ASoC: AMD: acp-config: fix missing dependency on SND_SOC_ACPI
ASoC: SOF: Intel: hda-stream: limit PROCEN workaround
ASoC: SOF: Intel: hda-ctrl: apply symmetry for DPIB
ASoC: SOF: hda-stream: only enable DPIB if needed
ASoC: SOF: Intel: hda: add quirks for HDAudio DMA position information
ASoC: SOF: Intel: hda-dai: remove unused fields
ASoC: SOF: Intel: add comment on JasperLake support
ASoC: soc-pcm: use GFP_ATOMIC for dpcm structure
ASoC: soc-pcm: align BE 'atomicity' with that of the FE
ASoC: soc-pcm: test refcount before triggering
ASoC: soc-pcm: fix BE handling of PAUSE_RELEASE
ASoC: AMD: fix depend/select mistake on SND_AMD_ACP_CONFIG
ASoC: SOF: AMD: simplify return status handling
ASOC: SOF: Intel: use snd_soc_dai_get_widget()
ASoC/soundwire: intel: simplify callbacks for params/hw_free
ASoC/SoundWire: dai: expand 'stream' concept beyond SoundWire
ASoC: Intel/SOF: use set_stream() instead of set_tdm_slots() for HDAudio
soundwire: intel: remove unnecessary init
soundwire: intel: remove PDM support
Qinghua Jin (1):
ASoC: topology: Fix typo
Ranjani Sridharan (32):
ASoC: SOF: IPC: Add new IPC command to free trace DMA
ASoC: SOF: IPC: update ipc_log_header()
ASoC: SOF: trace: send DMA_TRACE_FREE IPC during release
ASoC: SOF: Intel: hda: expose get_chip_info()
ASoC: SOF: Introduce num_cores and ref count per core
ASoC: SOF: Add ops for core_get and core_put
ASoC: SOF: Intel: TGL: set core_get/put ops
ASoC: SOF: Intel: CNL/ICL/APL: set core_get/core_put ops
ASoC: SOF: topology: remove sof_load_pipeline_ipc()
ASoC: SOF: free widgets in sof_tear_down_pipelines() for static pipelines
ASoC: SOF: hda: don't use the core op for power up/power down
ASoC: SOF: add support for dynamic pipelines with multi-core
ASoC: SOF: Intel: hda: free DAI widget during stop and suspend
ASoC: SOF: pcm: add .ack callback support
ASoC: SOF: Intel: add .ack support for HDaudio platforms
ASoC: SOF: handle paused streams during system suspend
ASoC: SOF: Intel: hda: clear stream before freeing the DAI widget
ASoC: SOF: Intel: hda: Add a helper function for stream reset
ASoC: SOF: Intel: hda: reset stream before coupling host and link DMA's
ASoC: SOF: pcm: invoke platform hw_free for STOP/SUSPEND triggers
ASoC: SOF: call platform hw_free for paused streams during suspend
ASoC: SOF: Add a helper for freeing PCM stream
ASoC: SOF: pcm: move the check for prepared flag
ASoC: SOF: align the hw_free sequence with stop
ASoC: SOF: IPC: dai: Expand DAI_CONFIG IPC flags
ASoC: SOF: Intel: hda: send DAI_CONFIG IPC during pause
ASoC: SOF: Intel: ICL: move ICL-specific ops to icl.c
ASoC: SOF: topology: read back control data from DSP
ASoC: SOF: pcm: remove support for RESUME trigger
ASoC: SOF: Intel: hda: remove support for RESUME trigger
ASoC: SOF: Intel: hda: remove support for RESUME in platform trigger
soundwire: intel: improve suspend flows
Ricard Wanderlof (2):
ASoC: tlv320adc3xxx: New codec bindings
ASoC: codec: tlv320adc3xxx: New codec driver
Richard Fitzgerald (7):
ASoC: dt-bindings: cs42l42: Convert binding to yaml
ASoC: cs42l42: Add control for audio slow-start switch
ASoC: cs42l42: Remove redundant writes to DETECT_MODE
ASoC: cs42l42: Remove redundant writes to RS_PLUG/RS_UNPLUG masks
ASoC: cs42l42: Simplify reporting of jack unplug
ASoC: cs42l42: Remove redundant pll_divout member
ASoC: cs42l42: Report initial jack state
Rikard Falkeborn (4):
ASoC: mediatek: mt8195: Constify static snd_soc_ops
ASoC: intel: boards: bytcht*: Constify static snd_soc_ops
ASoC: amd: acp6x-pdm-dma: Constify static snd_soc_dai_ops
ASoC: SOF: sof-probes: Constify sof_probe_compr_ops
Sameer Pujar (1):
ASoC: tegra: Add master volume/mute control support
Samuel Holland (1):
ASoC: sun8i-codec: Add AIF, ADC, and DAC volume controls
Shengjiu Wang (4):
ASoC: imx-card: Need special setting for ak4497 on i.MX8MQ
ASoC: imx-card: Fix mclk calculation issue for akcodec
ASoC: imx-card: improve the sound quality for low rate
ASoC: fsl_asrc: refine the check of available clock divider
Shuming Fan (2):
ASoC: rt5682s: add delay time to fix pop sound issue
ASoC: dt-bindings: rt5682s: add AMIC delay time property
Simon Trimmer (1):
firmware: cs_dsp: tidy includes in cs_dsp.c and cs_dsp.h
Srinivas Kandagatla (2):
ASoC: qcom: sdm845: only setup slim ports once
ASoC: codecs: wcd934x: remove redundant ret variable
Srinivasa Rao Mandadapu (2):
ASoC: codecs: MBHC: Add support for special headset
ASoC: codecs: MBHC: Remove useless condition check
Stephan Gerhold (9):
ASoC: dt-bindings: qcom: sm8250: Drop redundant MultiMedia routes
ASoC: dt-bindings: qcom: sm8250: Document "aux-devs"
ASoC: dt-bindings: qcom: apq8016-sbc: Move to qcom,sm8250 DT schema
ASoC: dt-bindings: qcom: Document qcom,msm8916-qdsp6-sndcard compatible
ASoC: qcom: apq8016_sbc: Allow routing audio through QDSP6
ASoC: core: Add snd_soc_of_parse_pin_switches() from simple-card-utils
ASoC: dt-bindings: qcom: sm8250: Document "pin-switches" and "widgets"
ASoC: qcom: common: Parse "pin-switches" and "widgets" from DT
ASoC: msm8916-wcd-analog: Use separate outputs for HPH_L/HPH_R
Takashi Iwai (3):
ASoC: soc-pcm: Fix and cleanup DPCM locking
ASoC: soc-pcm: serialize BE triggers
ASoC: ak4375: Fix unused function error
Thierry Reding (1):
ASoC: dt-bindings: tegra: Document interconnects property
Trevor Wu (10):
ASoC: mediatek: mt8195: support reserved memory assignment
ASoC: mediatek: mt8195: add headset codec rt5682s support
ASoC: mediatek: mt8195: add model property
ASoC: mediatek: mt8195: add sof support on mt8195-mt6359-rt1019-rt5682
ASoC: mediatek: mt8195: add adsp and dai-link property
ASoC: mediatek: mt8195: add memory-region property
ASoC: mediatek: mt8195: correct default value
ASoC: mediatek: mt8195: update control for RT5682 series
ASoC: mediatek: mt8195: correct pcmif BE dai control flow
ASoC: mediatek: mt8195: add playback support to PCM1_BE dai_link
Tzung-Bi Shih (7):
ASoC: mediatek: mt8195-mt6359: reduce log verbosity in probe()
ASoC: mediatek: mt8192-mt6359: fix device_node leak
ASoC: mediatek: mt8173: fix device_node leak
ASoC: mediatek: mt8183: fix device_node leak
ASoC: mediatek: mt8173: reduce log verbosity in probe()
ASoC: mediatek: mt8195: release device_node after snd_soc_register_card
ASoC: mediatek: use of_device_get_match_data()
V sujith kumar Reddy (2):
ASoC: SOF: amd: Add trace logger support
ASoC: amd: acp: Power on/off the speaker enable gpio pin based on DAPM callback.
Vincent Knecht (5):
ASoC: dt-bindings: nxp, tfa989x: Add rcv-gpios property for tfa9897
ASoC: codecs: tfa989x: Add support for tfa9897 optional rcv-gpios
ASoC: dt-bindings: codecs: Add bindings for ak4375
ASoC: Add AK4375 support
ASoC: codecs: ak4375: Change invert controls to a stereo switch
YC Hung (8):
ASoC: SOF: mediatek: Add mt8195 hardware support
ASoC: SOF: tokens: add token for Mediatek AFE
ASoC: SOF: topology: Add support for Mediatek AFE DAI
ASoC: SOF: mediatek: Add fw loader and mt8195 dsp ops to load firmware
ASoC: SOF: Add mt8195 device descriptor
ASoC: SOF: mediatek: Add dai driver dsp ops callback for mt8195
ASoC: SOF: mediatek: Add mt8195 dsp clock support
ASoC: SOF: mediatek: Add DSP system PM callback for mt8195
Yang Yingliang (2):
ASoC: SOF: mediatek: Add missing of_node_put() in platform_parse_resource()
ASoC: codec: tlv320adc3xxx: Fix missing clk_disable_unprepare() on error in adc3xxx_i2c_probe()
Yassine Oudjana (1):
ASoC: wcd9335: Keep a RX port value for each SLIM RX mux
Ye Guojin (1):
ASoC: imx-hdmi: add put_device() after of_find_device_by_node()
Yong Zhi (1):
ASoC: Intel: sof_rt5682: Move rt1015 speaker amp to common file
chiminghao (1):
ASoC: remove unneeded variable
lvzhaoxiong (1):
ASoC: qcom: Add support for ALC5682I-VS codec
.mailmap | 6 +
Documentation/ABI/obsolete/o2cb | 11 +
Documentation/ABI/obsolete/sysfs-bus-iio | 4 +
Documentation/ABI/stable/o2cb | 2 +-
Documentation/ABI/stable/sysfs-class-infiniband | 64 +-
Documentation/ABI/stable/sysfs-class-tpm | 2 +-
Documentation/ABI/stable/sysfs-devices | 7 +
Documentation/ABI/stable/sysfs-devices-system-cpu | 15 +
Documentation/ABI/stable/sysfs-driver-mlxreg-io | 244 +
Documentation/ABI/stable/sysfs-module | 25 +-
Documentation/ABI/testing/configfs-usb-gadget-uac1 | 42 +-
Documentation/ABI/testing/configfs-usb-gadget-uac2 | 43 +-
.../ABI/testing/debugfs-driver-habanalabs | 6 +
Documentation/ABI/testing/evm | 5 +-
Documentation/ABI/testing/ima_policy | 10 +-
Documentation/ABI/testing/pstore | 3 +-
Documentation/ABI/testing/sysfs-ata | 2 +-
Documentation/ABI/testing/sysfs-block | 16 +
Documentation/ABI/testing/sysfs-bus-counter | 38 +-
.../ABI/testing/sysfs-bus-fsi-devices-sbefifo | 10 +
Documentation/ABI/testing/sysfs-bus-iio | 42 +
.../ABI/testing/sysfs-bus-iio-chemical-sunrise-co2 | 38 +
Documentation/ABI/testing/sysfs-bus-iio-scd30 | 34 -
.../ABI/testing/sysfs-bus-iio-temperature-max31865 | 20 +
Documentation/ABI/testing/sysfs-bus-mdio | 9 +
Documentation/ABI/testing/sysfs-bus-pci | 35 +-
Documentation/ABI/testing/sysfs-bus-platform | 12 +
.../testing/sysfs-bus-platform-devices-occ-hwmon | 13 +
Documentation/ABI/testing/sysfs-bus-rapidio | 32 +-
.../ABI/testing/sysfs-bus-soundwire-master | 20 +-
.../ABI/testing/sysfs-bus-soundwire-slave | 62 +-
Documentation/ABI/testing/sysfs-bus-usb | 292 +-
Documentation/ABI/testing/sysfs-class-bdi | 30 +-
Documentation/ABI/testing/sysfs-class-cxl | 15 +-
.../ABI/testing/sysfs-class-devfreq-event | 12 +-
Documentation/ABI/testing/sysfs-class-extcon | 12 +-
Documentation/ABI/testing/sysfs-class-fc | 27 +
Documentation/ABI/testing/sysfs-class-gnss | 2 +-
Documentation/ABI/testing/sysfs-class-hwmon | 932 +
Documentation/ABI/testing/sysfs-class-mei | 18 +-
Documentation/ABI/testing/sysfs-class-mic | 24 +-
Documentation/ABI/testing/sysfs-class-mux | 2 +-
Documentation/ABI/testing/sysfs-class-power | 13 +
Documentation/ABI/testing/sysfs-class-pwm | 20 +-
Documentation/ABI/testing/sysfs-class-rapidio | 4 +-
Documentation/ABI/testing/sysfs-class-rc | 14 +-
Documentation/ABI/testing/sysfs-class-rc-nuvoton | 2 +-
Documentation/ABI/testing/sysfs-class-thermal | 259 +
Documentation/ABI/testing/sysfs-class-typec | 2 +-
Documentation/ABI/testing/sysfs-class-uwb_rc | 26 +-
.../ABI/testing/sysfs-class-uwb_rc-wusbhc | 10 +-
.../ABI/testing/sysfs-devices-platform-dock | 10 +-
Documentation/ABI/testing/sysfs-devices-power | 36 +
Documentation/ABI/testing/sysfs-devices-removable | 8 +-
Documentation/ABI/testing/sysfs-devices-system-cpu | 68 +-
.../ABI/testing/sysfs-driver-aspeed-uart-routing | 27 +
Documentation/ABI/testing/sysfs-driver-ufs | 128 +-
Documentation/ABI/testing/sysfs-driver-xen-blkback | 4 +-
.../ABI/testing/sysfs-driver-xen-blkfront | 2 +-
Documentation/ABI/testing/sysfs-firmware-efi-esrt | 16 +-
Documentation/ABI/testing/sysfs-fs-f2fs | 16 +
Documentation/ABI/testing/sysfs-kernel-slab | 115 +-
Documentation/ABI/testing/sysfs-mce | 129 +
Documentation/ABI/testing/sysfs-module | 7 +
.../ABI/testing/sysfs-platform-dell-privacy-wmi | 60 +-
Documentation/ABI/testing/sysfs-platform-dptf | 4 +
Documentation/ABI/testing/sysfs-platform-intel-pmc | 2 +
Documentation/ABI/testing/sysfs-platform-sst-atom | 2 +-
Documentation/ABI/testing/sysfs-ptp | 30 +-
Documentation/ABI/testing/sysfs-timecard | 174 +
Documentation/ABI/testing/sysfs-tty | 32 +-
.../Memory-Ordering/Tree-RCU-Memory-Ordering.rst | 69 +-
Documentation/RCU/stallwarn.rst | 10 +
Documentation/admin-guide/blockdev/zram.rst | 8 +
Documentation/admin-guide/cgroup-v1/memory.rst | 11 +-
Documentation/admin-guide/cgroup-v2.rst | 18 +
Documentation/admin-guide/cputopology.rst | 12 +-
Documentation/admin-guide/dynamic-debug-howto.rst | 15 +-
.../admin-guide/filesystem-monitoring.rst | 78 +
.../admin-guide/hw-vuln/core-scheduling.rst | 5 +-
Documentation/admin-guide/hw-vuln/spectre.rst | 61 +-
Documentation/admin-guide/index.rst | 1 +
Documentation/admin-guide/kernel-parameters.txt | 81 +-
Documentation/admin-guide/media/i2c-cardlist.rst | 8 +-
Documentation/admin-guide/media/imx7.rst | 60 +
Documentation/admin-guide/media/ipu3.rst | 14 +-
Documentation/admin-guide/media/ivtv.rst | 2 +-
Documentation/admin-guide/media/vimc.rst | 20 +-
Documentation/admin-guide/mm/damon/index.rst | 1 +
Documentation/admin-guide/mm/damon/reclaim.rst | 235 +
Documentation/admin-guide/mm/damon/start.rst | 128 +-
Documentation/admin-guide/mm/damon/usage.rst | 109 +-
Documentation/admin-guide/mm/hugetlbpage.rst | 42 +-
Documentation/admin-guide/mm/index.rst | 2 +
Documentation/admin-guide/mm/memory-hotplug.rst | 143 +-
Documentation/admin-guide/mm/pagemap.rst | 75 +-
Documentation/{vm => admin-guide/mm}/swap_numa.rst | 0
Documentation/{vm => admin-guide/mm}/zswap.rst | 0
Documentation/admin-guide/ramoops.rst | 2 +-
Documentation/admin-guide/spkguide.txt | 2 +-
Documentation/arm/index.rst | 1 +
Documentation/arm/marvell.rst | 19 +
Documentation/arm/microchip.rst | 20 +
Documentation/arm/stm32/stm32mp13-overview.rst | 37 +
Documentation/arm64/booting.rst | 10 +
Documentation/arm64/cpu-feature-registers.rst | 12 +-
Documentation/arm64/elf_hwcaps.rst | 4 +
Documentation/arm64/silicon-errata.rst | 12 +
Documentation/asm-annotations.rst | 2 +-
Documentation/block/inline-encryption.rst | 453 +-
Documentation/block/queue-sysfs.rst | 42 +-
Documentation/bpf/bpf_licensing.rst | 92 +
Documentation/bpf/btf.rst | 29 +-
Documentation/bpf/index.rst | 9 +
.../bpf/libbpf/libbpf_naming_convention.rst | 40 +
Documentation/cdrom/cdrom-standard.rst | 11 +
Documentation/conf.py | 3 +
Documentation/core-api/cachetlb.rst | 6 +
Documentation/core-api/irq/irq-domain.rst | 3 -
Documentation/core-api/memory-hotplug.rst | 3 -
Documentation/core-api/mm-api.rst | 5 +
Documentation/core-api/printk-formats.rst | 2 +-
Documentation/core-api/workqueue.rst | 21 +-
Documentation/crypto/crypto_engine.rst | 4 +
Documentation/dev-tools/checkpatch.rst | 81 +
Documentation/dev-tools/kasan.rst | 7 +-
Documentation/dev-tools/kcov.rst | 5 +
Documentation/dev-tools/kfence.rst | 23 +-
Documentation/dev-tools/kunit/running_tips.rst | 11 +-
Documentation/devicetree/bindings/Makefile | 20 +-
Documentation/devicetree/bindings/arm/amlogic.yaml | 3 +
.../devicetree/bindings/arm/arm,cci-400.yaml | 216 +
.../devicetree/bindings/arm/arm,vexpress-juno.yaml | 46 +-
.../devicetree/bindings/arm/atmel-at91.yaml | 24 +
.../devicetree/bindings/arm/bcm/bcm2835.yaml | 1 +
.../devicetree/bindings/arm/bcm/brcm,nsp.yaml | 65 +-
.../devicetree/bindings/arm/cci-control-port.yaml | 38 +
Documentation/devicetree/bindings/arm/cci.txt | 224 -
.../devicetree/bindings/arm/coresight.txt | 5 +
Documentation/devicetree/bindings/arm/cpus.yaml | 10 +-
.../arm/firmware/tlm,trusted-foundations.txt | 20 -
.../arm/firmware/tlm,trusted-foundations.yaml | 46 +
Documentation/devicetree/bindings/arm/fsl.yaml | 99 +-
.../devicetree/bindings/arm/mediatek.yaml | 1 +
.../bindings/arm/mediatek/mediatek,mmsys.yaml | 4 +
.../arm/mediatek/mediatek,mt8195-clock.yaml | 254 +
.../arm/mediatek/mediatek,mt8195-sys-clock.yaml | 73 +
Documentation/devicetree/bindings/arm/qcom.yaml | 23 +
Documentation/devicetree/bindings/arm/renesas.yaml | 61 +
.../devicetree/bindings/arm/rockchip.yaml | 48 +-
.../devicetree/bindings/arm/rockchip/pmu.yaml | 4 +
.../bindings/arm/samsung/exynos-chipid.yaml | 5 +-
.../bindings/arm/samsung/samsung-boards.yaml | 6 +
.../devicetree/bindings/arm/sprd/sprd.yaml | 5 +
Documentation/devicetree/bindings/arm/sti.yaml | 2 +-
.../devicetree/bindings/arm/stm32/st,mlahb.yaml | 4 +-
.../bindings/arm/stm32/st,stm32-syscon.yaml | 4 +-
.../devicetree/bindings/arm/stm32/stm32.yaml | 6 +-
.../arm/sunxi/allwinner,sun4i-a10-mbus.yaml | 1 +
.../arm/sunxi/allwinner,sun6i-a31-cpuconfig.yaml | 38 +
.../arm/sunxi/allwinner,sun9i-a80-prcm.yaml | 33 +
Documentation/devicetree/bindings/arm/ti/k3.yaml | 15 +-
Documentation/devicetree/bindings/arm/toshiba.yaml | 1 +
Documentation/devicetree/bindings/arm/xilinx.yaml | 17 +
.../bindings/auxdisplay/holtek,ht16k33.yaml | 32 +-
Documentation/devicetree/bindings/bus/palmbus.yaml | 79 +
Documentation/devicetree/bindings/bus/ti-sysc.txt | 139 -
Documentation/devicetree/bindings/bus/ti-sysc.yaml | 216 +
.../clock/allwinner,sun8i-a83t-de2-clk.yaml | 2 +-
.../devicetree/bindings/clock/arm,syscon-icst.yaml | 5 +
.../devicetree/bindings/clock/fixed-mmio-clock.txt | 24 -
.../bindings/clock/fixed-mmio-clock.yaml | 47 +
.../bindings/clock/imx8ulp-cgc-clock.yaml | 43 +
.../bindings/clock/imx8ulp-pcc-clock.yaml | 50 +
.../devicetree/bindings/clock/ingenic,cgu.yaml | 2 +-
.../devicetree/bindings/clock/maxim,max77686.txt | 4 +-
.../bindings/clock/qcom,dispcc-sm8x50.yaml | 13 +
.../bindings/clock/qcom,gcc-msm8994.yaml | 70 +
.../bindings/clock/qcom,gcc-msm8998.yaml | 26 +-
.../bindings/clock/qcom,gcc-qcm2290.yaml | 72 +
.../devicetree/bindings/clock/qcom,gcc.yaml | 2 -
.../devicetree/bindings/clock/qcom,rpmcc.txt | 1 +
.../bindings/clock/qcom,sc7280-camcc.yaml | 71 +
.../bindings/clock/qcom,sc7280-lpasscc.yaml | 68 +
.../devicetree/bindings/clock/qcom,videocc.yaml | 13 +
.../bindings/clock/samsung,exynos850-clock.yaml | 185 +
.../devicetree/bindings/clock/samsung,s2mps11.txt | 49 -
.../devicetree/bindings/clock/samsung,s2mps11.yaml | 45 +
.../bindings/clock/sifive/fu740-prci.yaml | 4 +
.../devicetree/bindings/clock/silabs,si5351.txt | 2 +-
.../bindings/clock/socionext,uniphier-clock.yaml | 6 +
.../devicetree/bindings/clock/st,stm32mp1-rcc.yaml | 2 +-
.../bindings/clock/stericsson,u8500-clks.yaml | 121 +
Documentation/devicetree/bindings/clock/ux500.txt | 64 -
.../bindings/crypto/intel,keembay-ocs-ecc.yaml | 47 +
.../devicetree/bindings/crypto/st,stm32-crc.yaml | 2 +-
.../devicetree/bindings/crypto/st,stm32-cryp.yaml | 2 +-
.../devicetree/bindings/crypto/st,stm32-hash.yaml | 2 +-
Documentation/devicetree/bindings/ddr/lpddr2.txt | 102 -
Documentation/devicetree/bindings/ddr/lpddr3.txt | 106 -
.../devicetree/bindings/devfreq/rk3399_dmc.txt | 2 +-
.../bindings/display/brcm,bcm2835-dsi0.yaml | 3 +
.../bindings/display/brcm,bcm2835-hdmi.yaml | 3 +
.../bindings/display/brcm,bcm2835-v3d.yaml | 3 +
.../bindings/display/brcm,bcm2835-vec.yaml | 3 +
.../bindings/display/bridge/lvds-codec.yaml | 33 +-
.../devicetree/bindings/display/bridge/ps8640.yaml | 19 +-
.../bindings/display/bridge/snps,dw-mipi-dsi.yaml | 2 +-
.../bindings/display/bridge/toshiba,tc358767.txt | 54 -
.../bindings/display/bridge/toshiba,tc358767.yaml | 158 +
.../devicetree/bindings/display/ingenic,ipu.yaml | 2 +-
.../devicetree/bindings/display/ingenic,lcd.yaml | 4 +-
.../bindings/display/mediatek/mediatek,dsi.txt | 6 +
.../bindings/display/msm/dp-controller.yaml | 16 +-
.../bindings/display/msm/dpu-sc7280.yaml | 232 +
.../bindings/display/msm/dsi-phy-14nm.yaml | 1 +
.../devicetree/bindings/display/msm/gpu.txt | 157 -
.../devicetree/bindings/display/msm/gpu.yaml | 288 +
.../bindings/display/panel/boe,tv101wum-nl6.yaml | 7 +
.../bindings/display/panel/orisetech,otm8009a.yaml | 2 +-
.../bindings/display/panel/panel-edp.yaml | 188 +
.../bindings/display/panel/panel-simple.yaml | 5 +
.../bindings/display/panel/raydium,rm68200.yaml | 2 +-
.../bindings/display/panel/samsung,s6d27a1.yaml | 98 +
.../bindings/display/panel/sharp,ls060t1sx01.yaml | 56 +
.../devicetree/bindings/display/renesas,du.yaml | 51 +
.../devicetree/bindings/display/st,stm32-dsi.yaml | 4 +-
.../devicetree/bindings/display/st,stm32-ltdc.yaml | 4 +-
.../devicetree/bindings/display/tilcdc/tilcdc.txt | 4 +-
.../bindings/display/xlnx/xlnx,zynqmp-dpsub.yaml | 4 +-
.../bindings/display/xylon,logicvc-display.yaml | 301 +
.../devicetree/bindings/dma/ingenic,dma.yaml | 2 +-
.../devicetree/bindings/dma/qcom_bam_dma.txt | 2 +
.../devicetree/bindings/dma/st,stm32-dma.yaml | 2 +-
.../devicetree/bindings/dma/st,stm32-dmamux.yaml | 2 +-
.../devicetree/bindings/dma/st,stm32-mdma.yaml | 2 +-
Documentation/devicetree/bindings/dsp/fsl,dsp.yaml | 123 +-
Documentation/devicetree/bindings/eeprom/at24.yaml | 6 +
.../devicetree/bindings/example-schema.yaml | 14 +-
.../bindings/extcon/extcon-usbc-tusb320.yaml | 4 +-
.../devicetree/bindings/firmware/qcom,scm.txt | 4 +-
.../devicetree/bindings/gnss/u-blox,neo-6m.yaml | 62 +
Documentation/devicetree/bindings/gnss/u-blox.txt | 45 -
.../devicetree/bindings/gpio/gpio-axp209.txt | 75 -
.../devicetree/bindings/gpio/gpio-xlp.txt | 49 -
.../bindings/gpio/rockchip,gpio-bank.yaml | 2 +
.../bindings/gpio/x-powers,axp209-gpio.yaml | 55 +
.../bindings/gpio/xlnx,zynqmp-gpio-modepin.yaml | 43 +
.../bindings/gpu/host1x/nvidia,tegra210-nvdec.yaml | 106 +
.../bindings/hwlock/st,stm32-hwspinlock.yaml | 3 +-
.../devicetree/bindings/hwmon/dps650ab.txt | 11 -
.../devicetree/bindings/hwmon/hih6130.txt | 12 -
.../devicetree/bindings/hwmon/ibm,cffps1.txt | 26 -
.../devicetree/bindings/hwmon/iio-hwmon.yaml | 37 +
Documentation/devicetree/bindings/hwmon/jc42.txt | 46 -
.../devicetree/bindings/hwmon/jedec,jc42.yaml | 78 +
.../devicetree/bindings/hwmon/lltc,ltc4151.yaml | 41 +
Documentation/devicetree/bindings/hwmon/lm70.txt | 22 -
Documentation/devicetree/bindings/hwmon/lm90.txt | 51 -
.../devicetree/bindings/hwmon/ltc4151.txt | 18 -
.../devicetree/bindings/hwmon/mcp3021.txt | 21 -
.../bindings/hwmon/microchip,mcp3021.yaml | 43 +
.../devicetree/bindings/hwmon/national,lm90.yaml | 78 +
.../devicetree/bindings/hwmon/ntc-thermistor.yaml | 141 +
.../devicetree/bindings/hwmon/ntc_thermistor.txt | 44 -
.../devicetree/bindings/hwmon/nuvoton,nct7802.yaml | 145 +
.../bindings/hwmon/pmbus/ti,lm25066.yaml | 54 +
.../devicetree/bindings/hwmon/sensirion,sht15.yaml | 43 +
Documentation/devicetree/bindings/hwmon/sht15.txt | 19 -
.../devicetree/bindings/hwmon/ti,tmp102.yaml | 47 +
.../devicetree/bindings/hwmon/ti,tmp108.yaml | 50 +
.../devicetree/bindings/hwmon/ti,tmp421.yaml | 110 +
Documentation/devicetree/bindings/hwmon/tmp108.txt | 18 -
.../bindings/i2c/allwinner,sun6i-a31-p2wi.yaml | 2 +-
.../devicetree/bindings/i2c/apple,i2c.yaml | 61 +
Documentation/devicetree/bindings/i2c/i2c-imx.yaml | 4 +-
.../devicetree/bindings/i2c/i2c-xlp9xx.txt | 22 -
.../devicetree/bindings/i2c/ingenic,i2c.yaml | 2 +-
.../devicetree/bindings/i2c/st,stm32-i2c.yaml | 2 +-
.../devicetree/bindings/iio/accel/adi,adxl313.yaml | 86 +
.../devicetree/bindings/iio/accel/adi,adxl355.yaml | 88 +
.../bindings/iio/accel/kionix,kxcjk1013.yaml | 3 +
.../devicetree/bindings/iio/adc/adi,ad7949.yaml | 51 +-
.../devicetree/bindings/iio/adc/adi,ad799x.yaml | 73 +
.../bindings/iio/adc/aspeed,ast2600-adc.yaml | 100 +
.../bindings/iio/adc/atmel,sama5d2-adc.yaml | 1 +
.../devicetree/bindings/iio/adc/ingenic,adc.yaml | 2 +-
.../bindings/iio/adc/nxp,imx8qxp-adc.yaml | 78 +
.../bindings/iio/adc/sigma-delta-modulator.yaml | 2 +-
.../devicetree/bindings/iio/adc/st,stm32-adc.yaml | 110 +-
.../bindings/iio/adc/st,stm32-dfsdm-adc.yaml | 4 +-
.../devicetree/bindings/iio/adc/ti,am3359-adc.yaml | 70 +
.../bindings/iio/chemical/senseair,sunrise.yaml | 55 +
.../bindings/iio/chemical/sensirion,scd4x.yaml | 46 +
.../devicetree/bindings/iio/dac/adi,ad5766.yaml | 2 +-
.../devicetree/bindings/iio/dac/st,stm32-dac.yaml | 2 +-
.../bindings/iio/frequency/adi,adrf6780.yaml | 131 +
.../bindings/iio/light/liteon,ltr501.yaml | 51 +
.../iio/magnetometer/asahi-kasei,ak8975.yaml | 7 +
.../bindings/iio/multiplexer/io-channel-mux.yaml | 13 +-
.../bindings/iio/temperature/maxim,max31865.yaml | 52 +
.../devicetree/bindings/input/cap11xx.txt | 78 -
.../devicetree/bindings/input/cypress-sf.yaml | 61 +
.../devicetree/bindings/input/elan,ekth3000.yaml | 81 +
.../devicetree/bindings/input/elan_i2c.txt | 44 -
.../bindings/input/microchip,cap11xx.yaml | 149 +
.../bindings/input/touchscreen/silead,gsl1680.yaml | 91 +
.../bindings/input/touchscreen/silead_gsl1680.txt | 44 -
.../bindings/input/touchscreen/ti,am3359-tsc.yaml | 76 +
.../bindings/input/touchscreen/ti-tsc-adc.txt | 91 -
.../interrupt-controller/microchip,eic.yaml | 73 +
.../interrupt-controller/msi-controller.yaml | 46 +
.../interrupt-controller/renesas,irqc.yaml | 1 +
.../interrupt-controller/st,stm32-exti.yaml | 4 +-
.../devicetree/bindings/iommu/arm,smmu.yaml | 2 +
.../bindings/iommu/renesas,ipmmu-vmsa.yaml | 1 +
.../bindings/ipmi/aspeed,ast2400-ibt-bmc.txt | 1 +
.../devicetree/bindings/ipmi/ipmi-ipmb.yaml | 59 +
.../devicetree/bindings/leds/register-bit-led.txt | 94 -
.../devicetree/bindings/leds/register-bit-led.yaml | 95 +
.../devicetree/bindings/mailbox/apple,mailbox.yaml | 77 +
.../devicetree/bindings/mailbox/fsl,mu.yaml | 1 +
.../devicetree/bindings/mailbox/mtk-gce.txt | 4 +-
.../bindings/mailbox/qcom,apcs-kpss-global.yaml | 3 +-
.../devicetree/bindings/mailbox/st,stm32-ipcc.yaml | 4 +-
.../devicetree/bindings/media/i2c/adv7604.yaml | 13 +-
.../bindings/media/i2c/aptina,mt9p031.yaml | 108 +
.../devicetree/bindings/media/i2c/hynix,hi846.yaml | 120 +
.../devicetree/bindings/media/i2c/mt9p031.txt | 40 -
.../devicetree/bindings/media/i2c/ov5640.txt | 92 -
.../devicetree/bindings/media/i2c/ovti,ov5640.yaml | 154 +
.../devicetree/bindings/media/mediatek-vcodec.txt | 2 +
.../bindings/media/qcom,sc7280-venus.yaml | 161 +
.../bindings/media/qcom,sdm660-venus.yaml | 186 +
.../devicetree/bindings/media/renesas,csi2.yaml | 1 +
.../devicetree/bindings/media/renesas,imr.txt | 31 -
.../devicetree/bindings/media/renesas,imr.yaml | 67 +
.../devicetree/bindings/media/rockchip-isp1.yaml | 114 +-
.../devicetree/bindings/media/st,stm32-cec.yaml | 3 +-
.../devicetree/bindings/media/st,stm32-dcmi.yaml | 2 +-
.../devicetree/bindings/media/ti,cal.yaml | 4 +-
.../memory-controllers/ddr/jedec,lpddr2.yaml | 223 +
.../ddr/lpddr2-timings.txt | 0
.../ddr/lpddr3-timings.txt | 0
.../bindings/memory-controllers/ddr/lpddr3.txt | 107 +
.../bindings/memory-controllers/fsl/ddr.txt | 29 -
.../bindings/memory-controllers/fsl/fsl,ddr.yaml | 83 +
.../bindings/memory-controllers/ingenic,nemc.yaml | 2 +-
.../memory-controllers/mediatek,mt7621-memc.yaml | 30 +
.../memory-controllers/mediatek,smi-common.yaml | 34 +-
.../memory-controllers/mediatek,smi-larb.yaml | 3 +
.../memory-controllers/nvidia,tegra20-emc.yaml | 23 +-
.../bindings/memory-controllers/omap-gpmc.txt | 157 -
.../memory-controllers/renesas,rpc-if.yaml | 1 +
.../memory-controllers/samsung,exynos5422-dmc.yaml | 3 +-
.../memory-controllers/st,stm32-fmc2-ebi.yaml | 2 +-
.../bindings/memory-controllers/ti,gpmc-child.yaml | 245 +
.../bindings/memory-controllers/ti,gpmc.yaml | 172 +
Documentation/devicetree/bindings/mfd/ac100.txt | 50 -
.../devicetree/bindings/mfd/aspeed-lpc.txt | 157 -
.../devicetree/bindings/mfd/aspeed-lpc.yaml | 199 +
Documentation/devicetree/bindings/mfd/axp20x.txt | 273 -
.../devicetree/bindings/mfd/brcm,cru.yaml | 32 +-
.../devicetree/bindings/mfd/brcm,misc.yaml | 60 +
Documentation/devicetree/bindings/mfd/max14577.txt | 4 +-
Documentation/devicetree/bindings/mfd/max77686.txt | 2 +-
Documentation/devicetree/bindings/mfd/max77693.txt | 2 +-
.../devicetree/bindings/mfd/qcom,spmi-pmic.txt | 39 +-
.../devicetree/bindings/mfd/qcom,tcsr.txt | 1 +
.../devicetree/bindings/mfd/qcom-pm8xxx.yaml | 1 +
.../devicetree/bindings/mfd/samsung,s2mpa01.yaml | 91 +
.../devicetree/bindings/mfd/samsung,s2mps11.yaml | 267 +
.../devicetree/bindings/mfd/samsung,s5m8767.yaml | 307 +
.../devicetree/bindings/mfd/samsung,sec-core.txt | 86 -
.../devicetree/bindings/mfd/st,stm32-lptimer.yaml | 2 +-
.../devicetree/bindings/mfd/st,stm32-timers.yaml | 3 +-
.../devicetree/bindings/mfd/st,stmfx.yaml | 2 +-
.../devicetree/bindings/mfd/st,stpmic1.yaml | 2 +-
Documentation/devicetree/bindings/mfd/syscon.yaml | 3 +
.../devicetree/bindings/mfd/ti,am3359-tscadc.yaml | 84 +
.../devicetree/bindings/mfd/x-powers,ac100.yaml | 116 +
.../devicetree/bindings/mfd/x-powers,axp152.yaml | 400 +
.../devicetree/bindings/mfd/xylon,logicvc.yaml | 3 +
.../bindings/mips/ingenic/ingenic,cpu.yaml | 2 +-
Documentation/devicetree/bindings/mips/ralink.txt | 32 -
Documentation/devicetree/bindings/mips/ralink.yaml | 87 +
.../devicetree/bindings/mmc/arasan,sdhci.yaml | 26 +-
.../devicetree/bindings/mmc/cdns,sdhci.yaml | 1 +
.../devicetree/bindings/mmc/fsl-imx-esdhc.yaml | 1 +
.../devicetree/bindings/mmc/ingenic,mmc.yaml | 2 +-
Documentation/devicetree/bindings/mmc/mmc-card.txt | 30 -
.../devicetree/bindings/mmc/mmc-card.yaml | 48 +
.../devicetree/bindings/mmc/mmc-controller.yaml | 6 -
Documentation/devicetree/bindings/mmc/mtk-sd.yaml | 12 +
.../devicetree/bindings/mmc/sdhci-msm.txt | 1 +
.../devicetree/bindings/mmc/sdhci-omap.txt | 9 +-
.../devicetree/bindings/mtd/gpmc-nand.txt | 147 -
Documentation/devicetree/bindings/mtd/gpmc-nor.txt | 98 -
.../devicetree/bindings/mtd/gpmc-onenand.txt | 48 -
.../devicetree/bindings/mtd/ingenic,nand.yaml | 2 +-
.../bindings/mtd/st,stm32-fmc2-nand.yaml | 2 +-
.../devicetree/bindings/mtd/ti,gpmc-nand.yaml | 121 +
.../devicetree/bindings/mtd/ti,gpmc-onenand.yaml | 81 +
.../bindings/net/allwinner,sun8i-a83t-emac.yaml | 4 +-
.../devicetree/bindings/net/asix,ax88796c.yaml | 73 +
.../devicetree/bindings/net/brcm,bcmgenet.txt | 3 +-
.../bindings/net/broadcom-bluetooth.yaml | 17 +-
Documentation/devicetree/bindings/net/dsa/dsa.yaml | 12 +-
.../devicetree/bindings/net/dsa/nxp,sja1105.yaml | 43 +
.../devicetree/bindings/net/dsa/qca8k.txt | 215 -
.../devicetree/bindings/net/dsa/qca8k.yaml | 362 +
.../devicetree/bindings/net/dsa/realtek-smi.txt | 87 +
Documentation/devicetree/bindings/net/gpmc-eth.txt | 97 -
.../devicetree/bindings/net/ingenic,mac.yaml | 2 +-
.../devicetree/bindings/net/lantiq,etop-xway.yaml | 69 +
.../devicetree/bindings/net/lantiq,xrx200-net.txt | 21 -
.../devicetree/bindings/net/lantiq,xrx200-net.yaml | 59 +
Documentation/devicetree/bindings/net/macb.txt | 4 +
.../devicetree/bindings/net/marvell-bluetooth.txt | 25 -
.../devicetree/bindings/net/marvell-bluetooth.yaml | 31 +
.../devicetree/bindings/net/nfc/marvell,nci.yaml | 170 +
.../devicetree/bindings/net/nfc/nfcmrvl.txt | 84 -
.../devicetree/bindings/net/nfc/nxp,nci.yaml | 61 +
.../devicetree/bindings/net/nfc/nxp,pn532.yaml | 65 +
.../devicetree/bindings/net/nfc/nxp,pn544.yaml | 58 +
.../devicetree/bindings/net/nfc/nxp-nci.txt | 33 -
.../devicetree/bindings/net/nfc/pn532.txt | 46 -
.../devicetree/bindings/net/nfc/pn544.txt | 33 -
.../devicetree/bindings/net/nfc/st,st-nci.yaml | 106 +
.../devicetree/bindings/net/nfc/st,st21nfca.yaml | 64 +
.../devicetree/bindings/net/nfc/st,st95hf.yaml | 57 +
.../devicetree/bindings/net/nfc/st-nci-i2c.txt | 38 -
.../devicetree/bindings/net/nfc/st-nci-spi.txt | 36 -
.../devicetree/bindings/net/nfc/st21nfca.txt | 37 -
.../devicetree/bindings/net/nfc/st95hf.txt | 45 -
.../devicetree/bindings/net/nfc/ti,trf7970a.yaml | 98 +
.../devicetree/bindings/net/nfc/trf7970a.txt | 43 -
.../devicetree/bindings/net/qcom,ipa.yaml | 3 +-
.../devicetree/bindings/net/qcom,ipq8064-mdio.yaml | 5 +-
.../devicetree/bindings/net/realtek-bluetooth.yaml | 2 +
.../devicetree/bindings/net/renesas,ether.yaml | 17 +-
.../devicetree/bindings/net/renesas,etheravb.yaml | 3 +
.../devicetree/bindings/net/snps,dwmac.yaml | 8 +-
.../bindings/net/socionext,uniphier-ave4.yaml | 1 +
.../devicetree/bindings/net/stm32-dwmac.yaml | 4 +-
.../devicetree/bindings/net/ti,bluetooth.yaml | 92 +
.../devicetree/bindings/net/ti-bluetooth.txt | 60 -
.../bindings/net/wireless/esp,esp8089.txt | 30 -
.../bindings/net/wireless/esp,esp8089.yaml | 43 +
.../bindings/net/wireless/mediatek,mt76.yaml | 5 +
.../devicetree/bindings/net/wireless/qca,ath9k.txt | 48 -
.../bindings/net/wireless/qca,ath9k.yaml | 90 +
.../bindings/net/wireless/ti,wlcore,spi.txt | 57 -
.../devicetree/bindings/net/wireless/ti,wlcore.txt | 45 -
.../bindings/net/wireless/ti,wlcore.yaml | 134 +
Documentation/devicetree/bindings/numa.txt | 46 +-
.../bindings/nvmem/ingenic,jz4780-efuse.yaml | 2 +-
.../devicetree/bindings/nvmem/st,stm32-romem.yaml | 2 +-
.../devicetree/bindings/opp/opp-v2-base.yaml | 2 +-
.../devicetree/bindings/pci/apple,pcie.yaml | 160 +
.../devicetree/bindings/pci/brcm,stb-pcie.yaml | 1 +
.../bindings/pci/mediatek,mt7621-pcie.yaml | 142 +
.../bindings/pci/microchip,pcie-host.yaml | 1 +
.../bindings/pci/nvidia,tegra194-pcie.txt | 2 +-
.../devicetree/bindings/pci/qcom,pcie-ep.yaml | 158 +
.../devicetree/bindings/pci/qcom,pcie.txt | 5 +-
.../devicetree/bindings/pci/rcar-pci-ep.yaml | 1 +
.../devicetree/bindings/pci/rockchip-dw-pcie.yaml | 141 +
.../devicetree/bindings/phy/bcm-ns-usb2-phy.yaml | 25 +-
.../devicetree/bindings/phy/ingenic,phy-usb.yaml | 2 +-
.../bindings/phy/nvidia,tegra20-usb-phy.txt | 74 -
.../bindings/phy/nvidia,tegra20-usb-phy.yaml | 373 +
.../devicetree/bindings/phy/phy-stm32-usbphyc.yaml | 131 +-
.../devicetree/bindings/phy/qcom,qmp-phy.yaml | 84 +-
.../devicetree/bindings/phy/qcom,qusb2-phy.yaml | 7 +
.../devicetree/bindings/phy/rockchip-usb-phy.yaml | 11 +-
.../devicetree/bindings/pinctrl/apple,pinctrl.yaml | 10 +
.../bindings/pinctrl/brcm,ns-pinmux.yaml | 33 +-
.../bindings/pinctrl/mediatek,mt7986-pinctrl.yaml | 363 +
.../bindings/pinctrl/microchip,sparx5-sgpio.yaml | 7 +
.../bindings/pinctrl/pinctrl-mt8195.yaml | 86 +-
.../bindings/pinctrl/qcom,pmic-gpio.yaml | 4 +
.../devicetree/bindings/pinctrl/qcom,pmic-mpp.txt | 187 -
.../devicetree/bindings/pinctrl/qcom,pmic-mpp.yaml | 188 +
.../bindings/pinctrl/qcom,qcm2290-pinctrl.yaml | 165 +
.../bindings/pinctrl/qcom,sm6350-pinctrl.yaml | 148 +
.../bindings/pinctrl/rockchip,pinctrl.txt | 114 -
.../bindings/pinctrl/rockchip,pinctrl.yaml | 184 +
.../bindings/pinctrl/samsung-pinctrl.txt | 1 +
.../pinctrl/socionext,uniphier-pinctrl.yaml | 1 +
.../bindings/pinctrl/st,stm32-pinctrl.yaml | 2 +-
.../devicetree/bindings/power/qcom,rpmpd.yaml | 2 +
.../bindings/power/supply/maxim,max17040.yaml | 2 +-
.../bindings/power/supply/samsung,battery.yaml | 56 +
.../power/supply/stericsson,ab8500-btemp.yaml | 10 +-
.../power/supply/stericsson,ab8500-chargalg.yaml | 10 +-
.../power/supply/stericsson,ab8500-charger.yaml | 10 +-
.../power/supply/stericsson,ab8500-fg.yaml | 10 +-
.../devicetree/bindings/pwm/renesas,tpu-pwm.yaml | 2 +
.../devicetree/bindings/regulator/max77686.txt | 2 +-
.../devicetree/bindings/regulator/max8952.txt | 52 -
.../bindings/regulator/max8973-regulator.txt | 52 -
.../bindings/regulator/max8997-regulator.txt | 145 -
.../bindings/regulator/maxim,max8952.yaml | 109 +
.../bindings/regulator/maxim,max8973.yaml | 139 +
.../bindings/regulator/maxim,max8997.yaml | 445 +
.../bindings/regulator/qcom,rpmh-regulator.yaml | 2 +
.../bindings/regulator/qcom,smd-rpm-regulator.yaml | 4 +
.../bindings/regulator/samsung,s2mpa01.txt | 79 -
.../bindings/regulator/samsung,s2mpa01.yaml | 62 +
.../bindings/regulator/samsung,s2mps11.txt | 102 -
.../bindings/regulator/samsung,s2mps11.yaml | 44 +
.../bindings/regulator/samsung,s2mps13.yaml | 44 +
.../bindings/regulator/samsung,s2mps14.yaml | 44 +
.../bindings/regulator/samsung,s2mps15.yaml | 44 +
.../bindings/regulator/samsung,s2mpu02.yaml | 44 +
.../bindings/regulator/samsung,s5m8767.txt | 145 -
.../bindings/regulator/samsung,s5m8767.yaml | 74 +
.../bindings/regulator/silergy,sy8106a.yaml | 52 +
.../regulator/socionext,uniphier-regulator.yaml | 1 +
.../bindings/regulator/st,stm32-booster.yaml | 2 +-
.../bindings/regulator/st,stm32-vrefbuf.yaml | 2 +-
.../bindings/regulator/st,stm32mp1-pwr-reg.yaml | 2 +-
.../bindings/regulator/sy8106a-regulator.txt | 23 -
.../remoteproc/amlogic,meson-mx-ao-arc.yaml | 87 +
.../bindings/remoteproc/ingenic,vpu.yaml | 2 +-
.../devicetree/bindings/remoteproc/mtk,scp.txt | 36 -
.../devicetree/bindings/remoteproc/mtk,scp.yaml | 92 +
.../devicetree/bindings/remoteproc/qcom,adsp.yaml | 59 +-
.../devicetree/bindings/remoteproc/qcom,q6v5.txt | 39 +-
.../bindings/remoteproc/st,stm32-rproc.yaml | 4 +-
.../bindings/remoteproc/ti,k3-dsp-rproc.yaml | 4 +-
.../bindings/remoteproc/ti,k3-r5f-rproc.yaml | 4 +-
.../bindings/reserved-memory/memory-region.yaml | 40 +
.../bindings/reserved-memory/ramoops.txt | 66 -
.../bindings/reserved-memory/ramoops.yaml | 145 +
.../bindings/reserved-memory/reserved-memory.txt | 172 +-
.../bindings/reserved-memory/reserved-memory.yaml | 100 +
.../bindings/reserved-memory/shared-dma-pool.yaml | 87 +
.../devicetree/bindings/reset/microchip,rst.yaml | 4 +-
.../reset/socionext,uniphier-glue-reset.yaml | 1 +
.../bindings/reset/socionext,uniphier-reset.yaml | 3 +
Documentation/devicetree/bindings/riscv/cpus.yaml | 8 +-
.../devicetree/bindings/rng/ingenic,trng.yaml | 2 +-
Documentation/devicetree/bindings/rng/omap_rng.txt | 38 -
.../devicetree/bindings/rng/omap_rng.yaml | 92 +
.../devicetree/bindings/rng/st,stm32-rng.yaml | 2 +-
.../devicetree/bindings/rtc/ingenic,rtc.yaml | 2 +-
.../devicetree/bindings/rtc/mstar,msc313-rtc.yaml | 49 +
.../devicetree/bindings/rtc/nxp,pcf85063.txt | 9 +
.../devicetree/bindings/rtc/st,stm32-rtc.yaml | 2 +-
.../devicetree/bindings/serial/8250_omap.yaml | 2 +-
.../bindings/serial/brcm,bcm6345-uart.txt | 36 -
.../bindings/serial/brcm,bcm6345-uart.yaml | 47 +
.../bindings/serial/fsl,s32-linflexuart.txt | 22 -
.../bindings/serial/fsl,s32-linflexuart.yaml | 48 +
.../devicetree/bindings/serial/ingenic,uart.yaml | 2 +-
.../devicetree/bindings/serial/samsung_uart.yaml | 1 +
.../devicetree/bindings/serial/sprd-uart.yaml | 1 +
.../devicetree/bindings/serial/st,stm32-uart.yaml | 2 +-
.../bindings/serial/xlnx,opb-uartlite.txt | 23 -
.../bindings/serial/xlnx,opb-uartlite.yaml | 89 +
.../bindings/soc/aspeed/uart-routing.yaml | 56 +
.../bindings/soc/imx/fsl,imx8mm-disp-blk-ctrl.yaml | 94 +
.../bindings/soc/imx/fsl,imx8mm-vpu-blk-ctrl.yaml | 76 +
.../bindings/soc/qcom/qcom,aoss-qmp.yaml | 12 +-
.../devicetree/bindings/soc/qcom/qcom,smd-rpm.yaml | 3 +
.../devicetree/bindings/soc/qcom/qcom,smem.yaml | 34 +-
.../devicetree/bindings/soc/qcom/qcom,spm.yaml | 81 +
.../devicetree/bindings/soc/qcom/qcom-stats.yaml | 47 +
.../devicetree/bindings/sound/ak4375.yaml | 57 +
.../bindings/sound/allwinner,sun4i-a10-i2s.yaml | 3 +
.../devicetree/bindings/sound/amlogic,aiu.yaml | 5 +
.../bindings/sound/amlogic,g12a-toacodec.yaml | 5 +
.../devicetree/bindings/sound/amlogic,t9015.yaml | 11 +
.../bindings/sound/audio-graph-port.yaml | 9 +-
.../devicetree/bindings/sound/cirrus,cs42l42.yaml | 225 +
.../devicetree/bindings/sound/cirrus,cs42l51.yaml | 2 +-
.../devicetree/bindings/sound/cs42l42.txt | 115 -
.../devicetree/bindings/sound/ingenic,aic.yaml | 2 +-
.../devicetree/bindings/sound/ingenic,codec.yaml | 2 +-
.../devicetree/bindings/sound/linux,spdif-dit.yaml | 5 +
.../devicetree/bindings/sound/mt8195-afe-pcm.yaml | 8 +
.../sound/mt8195-mt6359-rt1011-rt5682.yaml | 4 +
.../sound/mt8195-mt6359-rt1019-rt5682.yaml | 14 +
.../bindings/sound/nvidia,tegra-audio-alc5632.txt | 48 -
.../bindings/sound/nvidia,tegra-audio-alc5632.yaml | 74 +
.../bindings/sound/nvidia,tegra-audio-common.yaml | 83 +
.../sound/nvidia,tegra-audio-graph-card.yaml | 10 +
.../bindings/sound/nvidia,tegra-audio-max98090.txt | 53 -
.../sound/nvidia,tegra-audio-max98090.yaml | 97 +
.../bindings/sound/nvidia,tegra-audio-rt5640.txt | 52 -
.../bindings/sound/nvidia,tegra-audio-rt5640.yaml | 85 +
.../bindings/sound/nvidia,tegra-audio-rt5677.txt | 67 -
.../bindings/sound/nvidia,tegra-audio-rt5677.yaml | 100 +
.../bindings/sound/nvidia,tegra-audio-sgtl5000.txt | 42 -
.../sound/nvidia,tegra-audio-sgtl5000.yaml | 67 +
.../sound/nvidia,tegra-audio-trimslice.txt | 21 -
.../sound/nvidia,tegra-audio-trimslice.yaml | 33 +
.../bindings/sound/nvidia,tegra-audio-wm8753.txt | 40 -
.../bindings/sound/nvidia,tegra-audio-wm8753.yaml | 79 +
.../bindings/sound/nvidia,tegra-audio-wm8903.txt | 62 -
.../bindings/sound/nvidia,tegra-audio-wm8903.yaml | 93 +
.../bindings/sound/nvidia,tegra-audio-wm9712.txt | 60 -
.../bindings/sound/nvidia,tegra-audio-wm9712.yaml | 76 +
.../bindings/sound/nvidia,tegra20-i2s.txt | 30 -
.../bindings/sound/nvidia,tegra20-i2s.yaml | 77 +
.../bindings/sound/nvidia,tegra20-spdif.yaml | 85 +
.../devicetree/bindings/sound/nxp,tfa989x.yaml | 41 +
.../devicetree/bindings/sound/qcom,apq8016-sbc.txt | 96 -
.../devicetree/bindings/sound/qcom,sm8250.yaml | 152 +-
.../devicetree/bindings/sound/realtek,rt5682s.yaml | 4 +
.../bindings/sound/simple-audio-amplifier.yaml | 8 +-
.../devicetree/bindings/sound/st,stm32-i2s.yaml | 2 +-
.../devicetree/bindings/sound/st,stm32-sai.yaml | 2 +-
.../bindings/sound/st,stm32-spdifrx.yaml | 2 +-
.../bindings/sound/ti,tlv320adc3xxx.yaml | 137 +
.../devicetree/bindings/sound/wlf,wm8903.yaml | 116 +
Documentation/devicetree/bindings/sound/wm8903.txt | 82 -
.../devicetree/bindings/spi/cdns,qspi-nor.yaml | 12 +
.../devicetree/bindings/spi/cdns,xspi.yaml | 77 +
.../devicetree/bindings/spi/ingenic,spi.yaml | 72 +
.../bindings/spi/qcom,spi-qcom-qspi.yaml | 6 +-
.../devicetree/bindings/spi/spi-nxp-fspi.txt | 44 -
.../devicetree/bindings/spi/spi-nxp-fspi.yaml | 86 +
Documentation/devicetree/bindings/spi/spi-xlp.txt | 38 -
.../devicetree/bindings/spi/st,stm32-qspi.yaml | 4 +-
.../devicetree/bindings/spi/st,stm32-spi.yaml | 4 +-
Documentation/devicetree/bindings/sram/sram.yaml | 7 +-
.../devicetree/bindings/submitting-patches.rst | 3 +
.../bindings/thermal/qcom-spmi-adc-tm-hc.yaml | 149 +
.../bindings/thermal/rockchip-thermal.yaml | 23 +-
.../thermal/socionext,uniphier-thermal.yaml | 1 +
.../bindings/thermal/st,stm32-thermal.yaml | 2 +-
.../devicetree/bindings/timer/ingenic,sysost.yaml | 2 +-
.../devicetree/bindings/timer/ingenic,tcu.yaml | 2 +-
.../devicetree/bindings/timer/st,stm32-timer.yaml | 3 +-
.../devicetree/bindings/trivial-devices.yaml | 26 +-
.../bindings/ufs/samsung,exynos-ufs.yaml | 10 +
.../devicetree/bindings/usb/atmel-usb.txt | 4 +
Documentation/devicetree/bindings/usb/dwc2.yaml | 16 +-
.../devicetree/bindings/usb/ingenic,musb.yaml | 2 +-
.../devicetree/bindings/usb/qcom,dwc3.yaml | 1 +
.../devicetree/bindings/usb/smsc,usb3503.yaml | 108 +
.../devicetree/bindings/usb/snps,dwc3.yaml | 18 +-
.../devicetree/bindings/usb/st,stusb160x.yaml | 2 +-
.../devicetree/bindings/usb/ti,tps6598x.yaml | 4 +
.../devicetree/bindings/usb/udc-xilinx.txt | 18 -
Documentation/devicetree/bindings/usb/usb3503.txt | 39 -
.../devicetree/bindings/usb/xlnx,usb2.yaml | 47 +
.../devicetree/bindings/vendor-prefixes.yaml | 24 +
Documentation/devicetree/bindings/w1/w1-gpio.txt | 27 -
Documentation/devicetree/bindings/w1/w1-gpio.yaml | 43 +
.../bindings/watchdog/allwinner,sun4i-a10-wdt.yaml | 46 +-
.../devicetree/bindings/watchdog/mtk-wdt.txt | 2 +
.../bindings/watchdog/st,stm32-iwdg.yaml | 4 +-
.../devicetree/bindings/writing-bindings.rst | 2 +-
.../devicetree/bindings/writing-schema.rst | 29 +-
Documentation/driver-api/cxl/memory-devices.rst | 6 +
Documentation/driver-api/dma-buf.rst | 6 -
Documentation/driver-api/driver-model/devres.rst | 1 +
Documentation/driver-api/generic-counter.rst | 363 +-
Documentation/driver-api/ipmi.rst | 64 +-
Documentation/driver-api/media/drivers/rkisp1.rst | 43 +
.../driver-api/media/maintainer-entry-profile.rst | 2 +-
Documentation/driver-api/media/v4l2-subdev.rst | 14 +-
Documentation/driver-api/mmc/mmc-tools.rst | 4 +-
Documentation/driver-api/serial/n_gsm.rst | 71 +-
Documentation/driver-api/serial/tty.rst | 2 +-
Documentation/driver-api/thermal/sysfs-api.rst | 225 +-
.../driver-api/usb/writing_usb_driver.rst | 13 +-
.../core/thread-info-in-task/arch-support.txt | 2 +-
Documentation/filesystems/erofs.rst | 12 +-
Documentation/filesystems/ext4/orphan.rst | 44 +-
Documentation/filesystems/f2fs.rst | 21 +-
Documentation/filesystems/fscrypt.rst | 83 +-
Documentation/filesystems/index.rst | 1 -
Documentation/filesystems/locks.rst | 17 +-
Documentation/filesystems/netfs_library.rst | 2 +
Documentation/filesystems/nfs/index.rst | 1 +
Documentation/filesystems/nfs/reexport.rst | 113 +
Documentation/filesystems/proc.rst | 26 +-
Documentation/firmware-guide/acpi/index.rst | 1 +
Documentation/firmware-guide/acpi/non-d0-probe.rst | 78 +
Documentation/firmware-guide/acpi/osi.rst | 2 +-
Documentation/gpu/drm-kms-helpers.rst | 12 +
Documentation/gpu/drm-mm.rst | 84 +-
Documentation/gpu/i915.rst | 35 +-
Documentation/gpu/rfc/i915_parallel_execbuf.h | 122 -
Documentation/gpu/rfc/i915_scheduler.rst | 4 +-
Documentation/gpu/todo.rst | 30 +-
Documentation/hwmon/dell-smm-hwmon.rst | 3 +
Documentation/hwmon/index.rst | 1 +
Documentation/hwmon/lm25066.rst | 2 +
Documentation/hwmon/lm90.rst | 10 +
Documentation/hwmon/max6620.rst | 46 +
Documentation/hwmon/sysfs-interface.rst | 596 +-
Documentation/hwmon/tmp401.rst | 15 +-
Documentation/hwmon/tmp421.rst | 10 +
Documentation/kbuild/Kconfig.recursion-issue-02 | 2 +-
Documentation/kbuild/gcc-plugins.rst | 28 +-
Documentation/kbuild/makefiles.rst | 17 +-
Documentation/kernel-hacking/locking.rst | 14 +-
Documentation/leds/well-known-leds.txt | 14 +
Documentation/locking/ww-mutex-design.rst | 2 +-
Documentation/maintainer/pull-requests.rst | 2 +-
.../device_drivers/ethernet/mellanox/mlx5.rst | 60 +
Documentation/networking/devlink/bnxt.rst | 2 +
.../networking/devlink/devlink-region.rst | 4 +-
Documentation/networking/devlink/ice.rst | 13 +-
Documentation/networking/devlink/index.rst | 2 +
Documentation/networking/devlink/iosm.rst | 162 +
Documentation/networking/devlink/octeontx2.rst | 42 +
Documentation/networking/ethtool-netlink.rst | 81 +-
Documentation/networking/ip-sysctl.rst | 32 +-
Documentation/networking/ipvs-sysctl.rst | 11 +
Documentation/networking/mctp.rst | 69 +-
Documentation/networking/msg_zerocopy.rst | 2 +-
Documentation/process/coding-style.rst | 39 +-
Documentation/process/deprecated.rst | 5 +-
Documentation/process/index.rst | 1 +
Documentation/process/maintainer-handbooks.rst | 18 +
Documentation/process/maintainer-tip.rst | 785 +
Documentation/process/submitting-drivers.rst | 2 +-
Documentation/process/submitting-patches.rst | 42 +-
Documentation/scheduler/sched-bwc.rst | 84 +-
Documentation/security/SCTP.rst | 43 +-
Documentation/spi/spi-summary.rst | 8 -
Documentation/timers/no_hz.rst | 8 +-
Documentation/trace/histogram.rst | 15 +
Documentation/trace/kprobes.rst | 2 +-
Documentation/trace/timerlat-tracer.rst | 24 +-
.../translations/it_IT/kernel-hacking/locking.rst | 14 +-
.../it_IT/process/submitting-patches.rst | 4 +-
.../translations/ko_KR/memory-barriers.txt | 8 +-
Documentation/translations/zh_CN/PCI/index.rst | 36 +
Documentation/translations/zh_CN/PCI/pci.rst | 514 +
.../translations/zh_CN/admin-guide/index.rst | 2 +-
.../translations/zh_CN/admin-guide/sysrq.rst | 280 +
.../translations/zh_CN/core-api/assoc_array.rst | 473 +
.../translations/zh_CN/core-api/boot-time-mm.rst | 49 +
.../translations/zh_CN/core-api/genalloc.rst | 109 +
.../zh_CN/core-api/gfp_mask-from-fs-io.rst | 66 +
.../translations/zh_CN/core-api/index.rst | 22 +-
.../zh_CN/core-api/irq/irq-affinity.rst | 2 +-
Documentation/translations/zh_CN/core-api/kref.rst | 311 +
.../zh_CN/core-api/memory-allocation.rst | 138 +
.../translations/zh_CN/core-api/memory-hotplug.rst | 6 +-
.../translations/zh_CN/core-api/mm-api.rst | 110 +
.../zh_CN/core-api/unaligned-memory-access.rst | 229 +
.../translations/zh_CN/core-api/xarray.rst | 371 +
.../zh_CN/maintainer/pull-requests.rst | 2 +-
.../translations/zh_CN/process/5.Posting.rst | 8 +-
Documentation/translations/zh_CN/process/howto.rst | 10 +-
.../zh_CN/process/submitting-patches.rst | 8 +-
Documentation/translations/zh_TW/index.rst | 10 +-
.../zh_TW/process/submitting-patches.rst | 4 +-
Documentation/userspace-api/futex2.rst | 86 +
Documentation/userspace-api/index.rst | 1 +
Documentation/userspace-api/ioctl/cdrom.rst | 113 +-
Documentation/userspace-api/ioctl/ioctl-number.rst | 2 +
.../userspace-api/media/drivers/cx2341x-uapi.rst | 8 +-
Documentation/userspace-api/media/v4l/buffer.rst | 40 +-
.../userspace-api/media/v4l/ext-ctrls-codec.rst | 57 +
.../media/v4l/ext-ctrls-image-source.rst | 20 +
.../userspace-api/media/v4l/pixfmt-reserved.rst | 29 +-
.../userspace-api/media/v4l/pixfmt-yuv-planar.rst | 50 +-
.../userspace-api/media/v4l/vidioc-create-bufs.rst | 7 +-
.../userspace-api/media/v4l/vidioc-g-ctrl.rst | 3 +
.../userspace-api/media/v4l/vidioc-g-ext-ctrls.rst | 3 +
.../userspace-api/media/v4l/vidioc-queryctrl.rst | 6 +
.../userspace-api/media/v4l/vidioc-reqbufs.rst | 16 +-
.../userspace-api/media/videodev2.h.rst.exceptions | 2 +
Documentation/virt/kvm/api.rst | 255 +-
Documentation/virt/kvm/devices/vcpu.rst | 70 +
Documentation/virt/kvm/devices/xics.rst | 2 +-
Documentation/virt/kvm/devices/xive.rst | 2 +-
Documentation/virt/ne_overview.rst | 21 +-
.../virt/uml/user_mode_linux_howto_v2.rst | 119 +-
Documentation/vm/damon/design.rst | 29 +-
Documentation/vm/damon/faq.rst | 5 +-
Documentation/vm/damon/index.rst | 1 -
Documentation/vm/hmm.rst | 2 +-
Documentation/vm/index.rst | 26 +-
Documentation/vm/page_migration.rst | 2 +-
Documentation/vm/page_owner.rst | 23 +-
Documentation/w1/masters/w1-gpio.rst | 2 +-
Documentation/x86/entry_64.rst | 2 +-
Documentation/x86/index.rst | 1 +
Documentation/x86/orc-unwinder.rst | 4 +-
Documentation/x86/sgx.rst | 35 +
Documentation/x86/x86_64/machinecheck.rst | 56 +-
Documentation/x86/xstate.rst | 74 +
MAINTAINERS | 503 +-
Makefile | 90 +-
arch/Kconfig | 14 +
arch/alpha/Kbuild | 3 +
arch/alpha/Makefile | 3 -
arch/alpha/include/asm/processor.h | 2 +-
arch/alpha/include/uapi/asm/socket.h | 2 +
arch/alpha/kernel/audit.c | 10 +-
arch/alpha/kernel/core_irongate.c | 2 +-
arch/alpha/kernel/process.c | 5 +-
arch/alpha/kernel/traps.c | 4 +-
arch/arc/Kbuild | 3 +
arch/arc/Kconfig | 1 -
arch/arc/Makefile | 3 -
arch/arc/include/asm/cacheflush.h | 1 +
arch/arc/include/asm/kprobes.h | 2 +-
arch/arc/include/asm/processor.h | 2 +-
arch/arc/include/asm/ptrace.h | 5 +
arch/arc/kernel/irq.c | 10 +-
arch/arc/kernel/kprobes.c | 13 +-
arch/arc/kernel/process.c | 2 +-
arch/arc/kernel/stacktrace.c | 4 +-
arch/arc/mm/init.c | 6 +-
arch/arm/Kbuild | 3 +
arch/arm/Kconfig | 25 +-
arch/arm/Makefile | 35 +-
arch/arm/boot/compressed/decompress.c | 3 +
arch/arm/boot/compressed/fdt_check_mem_start.c | 48 +-
arch/arm/boot/compressed/string.c | 1 +
arch/arm/boot/dts/Makefile | 26 +-
arch/arm/boot/dts/am335x-pocketbeagle.dts | 1 +
arch/arm/boot/dts/arm-realview-eb.dtsi | 42 +-
arch/arm/boot/dts/arm-realview-pb1176.dts | 42 +-
arch/arm/boot/dts/arm-realview-pb11mp.dts | 48 +-
arch/arm/boot/dts/arm-realview-pbx.dtsi | 42 +-
arch/arm/boot/dts/armada-381-netgear-gs110emx.dts | 295 +
arch/arm/boot/dts/aspeed-bmc-amd-ethanolx.dts | 5 +
arch/arm/boot/dts/aspeed-bmc-ampere-mtjade.dts | 21 +-
arch/arm/boot/dts/aspeed-bmc-ibm-everest.dts | 883 +-
arch/arm/boot/dts/aspeed-bmc-ibm-rainier.dts | 1287 +-
arch/arm/boot/dts/aspeed-bmc-inspur-fp5280g2.dts | 9 +-
.../boot/dts/aspeed-bmc-inventec-transformers.dts | 328 +
arch/arm/boot/dts/aspeed-bmc-tyan-s7106.dts | 488 +
arch/arm/boot/dts/aspeed-g4.dtsi | 6 +
arch/arm/boot/dts/aspeed-g5.dtsi | 6 +
arch/arm/boot/dts/aspeed-g6.dtsi | 26 +
arch/arm/boot/dts/at91-lmu5000.dts | 147 +
arch/arm/boot/dts/at91-q5xr5.dts | 199 +
arch/arm/boot/dts/at91-sama5d27_som1.dtsi | 12 +-
arch/arm/boot/dts/at91-sama5d27_som1_ek.dts | 23 +-
arch/arm/boot/dts/at91-sama5d27_wlsom1.dtsi | 70 +
arch/arm/boot/dts/at91-sama5d2_icp.dts | 22 +-
arch/arm/boot/dts/at91-sama7g5ek.dts | 20 +
arch/arm/boot/dts/at91-tse850-3.dts | 2 +-
arch/arm/boot/dts/at91sam9260.dtsi | 2 +-
arch/arm/boot/dts/axp209.dtsi | 6 +-
arch/arm/boot/dts/axp22x.dtsi | 6 +-
arch/arm/boot/dts/axp81x.dtsi | 10 +-
arch/arm/boot/dts/bcm-nsp-ax.dtsi | 70 +
arch/arm/boot/dts/bcm-nsp.dtsi | 52 +-
arch/arm/boot/dts/bcm2711-rpi-4-b.dts | 38 +-
arch/arm/boot/dts/bcm2711-rpi-cm4-io.dts | 138 +
arch/arm/boot/dts/bcm2711-rpi-cm4.dtsi | 113 +
arch/arm/boot/dts/bcm2835-rpi-zero-w.dts | 31 +-
arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dts | 36 +-
arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts | 36 +-
arch/arm/boot/dts/bcm2837-rpi-3-b.dts | 36 +-
arch/arm/boot/dts/bcm283x-rpi-wifi-bt.dtsi | 34 +
arch/arm/boot/dts/bcm4708-netgear-r6250.dts | 39 +-
arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts | 37 +
arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts | 2 +-
arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts | 2 +-
arch/arm/boot/dts/bcm4709-linksys-ea9200.dts | 2 +-
arch/arm/boot/dts/bcm4709-netgear-r7000.dts | 2 +-
arch/arm/boot/dts/bcm4709-netgear-r8000.dts | 44 +-
arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts | 2 +-
arch/arm/boot/dts/bcm47094-asus-rt-ac88u.dts | 200 +
arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts | 42 +
arch/arm/boot/dts/bcm47094-linksys-panamera.dts | 2 +-
arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts | 37 +
arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts | 37 +
arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts | 2 +-
arch/arm/boot/dts/bcm47189-tenda-ac9.dts | 37 +
arch/arm/boot/dts/bcm53016-meraki-mr32.dts | 35 +-
arch/arm/boot/dts/bcm5301x.dtsi | 10 +-
arch/arm/boot/dts/bcm53573.dtsi | 18 +
arch/arm/boot/dts/bcm94708.dts | 2 +-
arch/arm/boot/dts/bcm94709.dts | 2 +-
arch/arm/boot/dts/bcm958522er.dts | 3 +-
arch/arm/boot/dts/bcm958525er.dts | 3 +-
arch/arm/boot/dts/bcm958525xmc.dts | 3 +-
arch/arm/boot/dts/bcm958622hr.dts | 3 +-
arch/arm/boot/dts/bcm958623hr.dts | 3 +-
arch/arm/boot/dts/bcm958625-meraki-alamo.dtsi | 281 +
arch/arm/boot/dts/bcm958625-meraki-kingpin.dtsi | 163 +
arch/arm/boot/dts/bcm958625-meraki-mx64-a0.dts | 25 +
arch/arm/boot/dts/bcm958625-meraki-mx64.dts | 24 +
arch/arm/boot/dts/bcm958625-meraki-mx64w-a0.dts | 33 +
arch/arm/boot/dts/bcm958625-meraki-mx64w.dts | 32 +
arch/arm/boot/dts/bcm958625-meraki-mx65.dts | 24 +
arch/arm/boot/dts/bcm958625-meraki-mx65w.dts | 32 +
.../arm/boot/dts/bcm958625-meraki-mx6x-common.dtsi | 129 +
arch/arm/boot/dts/bcm958625hr.dts | 3 +-
arch/arm/boot/dts/bcm958625k.dts | 3 +-
arch/arm/boot/dts/bcm988312hr.dts | 7 +-
arch/arm/boot/dts/dra7.dtsi | 19 +
arch/arm/boot/dts/e60k02.dtsi | 2 +-
arch/arm/boot/dts/e70k02.dtsi | 320 +
arch/arm/boot/dts/emev2-kzm9d.dts | 2 +-
arch/arm/boot/dts/exynos3250-rinato.dts | 1 +
arch/arm/boot/dts/exynos4210-i9100.dts | 1 +
arch/arm/boot/dts/exynos4210-origen.dts | 24 +-
arch/arm/boot/dts/exynos4210-trats.dts | 1 +
arch/arm/boot/dts/exynos4210-universal_c210.dts | 1 +
arch/arm/boot/dts/exynos4412-i9300.dts | 1 +
arch/arm/boot/dts/exynos4412-i9305.dts | 1 +
arch/arm/boot/dts/exynos4412-n710x.dts | 1 +
arch/arm/boot/dts/exynos4412-origen.dts | 14 +-
arch/arm/boot/dts/exynos4412-p4note-n8010.dts | 1 +
arch/arm/boot/dts/exynos4412-trats2.dts | 1 +
arch/arm/boot/dts/exynos5250-arndale.dts | 3 -
arch/arm/boot/dts/exynos5250-snow-rev5.dts | 1 +
arch/arm/boot/dts/exynos5250-snow.dts | 1 +
arch/arm/boot/dts/exynos5250-spring.dts | 1 +
arch/arm/boot/dts/exynos5250.dtsi | 1 -
arch/arm/boot/dts/exynos5420-peach-pit.dts | 1 +
arch/arm/boot/dts/exynos5800-peach-pi.dts | 1 +
arch/arm/boot/dts/gemini-dlink-dir-685.dts | 18 -
arch/arm/boot/dts/gemini-ns2502.dts | 148 +
arch/arm/boot/dts/gemini-sl93512r.dts | 18 -
arch/arm/boot/dts/gemini-sq201.dts | 18 -
arch/arm/boot/dts/gemini-ssi1328.dts | 138 +
arch/arm/boot/dts/gemini-wbd111.dts | 18 -
arch/arm/boot/dts/gemini-wbd222.dts | 18 -
arch/arm/boot/dts/gemini.dtsi | 33 +-
arch/arm/boot/dts/imx6dl-alti6p.dts | 2 +-
arch/arm/boot/dts/imx6dl-b1x5v2.dtsi | 1 -
arch/arm/boot/dts/imx6dl-prtrvt.dts | 2 -
arch/arm/boot/dts/imx6dl-skov-revc-lt2.dts | 1 +
arch/arm/boot/dts/imx6dl-yapp4-common.dtsi | 8 -
arch/arm/boot/dts/imx6q-skov-revc-lt2.dts | 1 +
arch/arm/boot/dts/imx6qdl-apalis.dtsi | 7 +-
arch/arm/boot/dts/imx6qdl-phytec-mira.dtsi | 31 +-
arch/arm/boot/dts/imx6qdl-phytec-phycore-som.dtsi | 12 +-
arch/arm/boot/dts/imx6qdl-skov-revc-lt2.dtsi | 99 +
arch/arm/boot/dts/imx6qdl-tqma6.dtsi | 2 +-
arch/arm/boot/dts/imx6qdl.dtsi | 7 +-
arch/arm/boot/dts/imx6qp-prtwd3.dts | 4 +-
arch/arm/boot/dts/imx6qp.dtsi | 2 +-
arch/arm/boot/dts/imx6sl-tolino-vision5.dts | 349 +
arch/arm/boot/dts/imx6sl.dtsi | 18 +-
arch/arm/boot/dts/imx6sll-kobo-librah2o.dts | 339 +
arch/arm/boot/dts/imx6sll.dtsi | 22 +-
arch/arm/boot/dts/imx6sx.dtsi | 6 +-
arch/arm/boot/dts/imx6ul-phytec-phycore-som.dtsi | 12 +-
arch/arm/boot/dts/imx6ul-phytec-segin.dtsi | 1 +
arch/arm/boot/dts/imx6ull-colibri-emmc-eval-v3.dts | 17 +
.../arm/boot/dts/imx6ull-colibri-emmc-nonwifi.dtsi | 185 +
arch/arm/boot/dts/imx6ull-colibri.dtsi | 32 +-
arch/arm/boot/dts/imx7-mba7.dtsi | 42 +-
arch/arm/boot/dts/imx7-tqma7.dtsi | 47 +-
arch/arm/boot/dts/imx7d-mba7.dts | 6 +-
arch/arm/boot/dts/imx7d-sdb.dts | 2 +-
arch/arm/boot/dts/imx7d-tqma7.dtsi | 4 +-
arch/arm/boot/dts/imx7d.dtsi | 7 +-
arch/arm/boot/dts/imx7s-mba7.dts | 6 +-
arch/arm/boot/dts/imx7s-tqma7.dtsi | 4 +-
arch/arm/boot/dts/integrator.dtsi | 23 +-
arch/arm/boot/dts/integratorap-im-pd1.dts | 9 +-
arch/arm/boot/dts/integratorap.dts | 15 +-
arch/arm/boot/dts/integratorcp.dts | 9 +-
arch/arm/boot/dts/intel-ixp42x-adi-coyote.dts | 2 +
arch/arm/boot/dts/intel-ixp42x-arcom-vulcan.dts | 2 +
arch/arm/boot/dts/intel-ixp42x-dlink-dsm-g600.dts | 2 +
arch/arm/boot/dts/intel-ixp42x-freecom-fsg-3.dts | 2 +
.../arm/boot/dts/intel-ixp42x-gateworks-gw2348.dts | 2 +
arch/arm/boot/dts/intel-ixp42x-iomega-nas100d.dts | 2 +
arch/arm/boot/dts/intel-ixp42x-ixdpg425.dts | 2 +
arch/arm/boot/dts/intel-ixp42x-linksys-nslu2.dts | 2 +
arch/arm/boot/dts/intel-ixp42x-linksys-wrv54g.dts | 2 +
arch/arm/boot/dts/intel-ixp42x-netgear-wg302v2.dts | 2 +
.../arm/boot/dts/intel-ixp43x-gateworks-gw2358.dts | 2 +
arch/arm/boot/dts/intel-ixp45x-ixp46x.dtsi | 8 +
.../boot/dts/intel-ixp4xx-reference-design.dtsi | 2 +
arch/arm/boot/dts/intel-ixp4xx.dtsi | 2 -
arch/arm/boot/dts/iwg20d-q7-common.dtsi | 2 +
arch/arm/boot/dts/ls1021a-qds.dts | 85 +-
arch/arm/boot/dts/ls1021a-tsn.dts | 4 +-
arch/arm/boot/dts/ls1021a-twr.dts | 63 +-
arch/arm/boot/dts/ls1021a.dtsi | 219 +-
arch/arm/boot/dts/mps2.dtsi | 10 +-
arch/arm/boot/dts/mstar-v7.dtsi | 9 +
arch/arm/boot/dts/mt7623.dtsi | 33 +
arch/arm/boot/dts/mt7623a.dtsi | 4 +
arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts | 25 +
arch/arm/boot/dts/mt7629-rfb.dts | 3 +-
arch/arm/boot/dts/mt7629.dtsi | 45 +-
arch/arm/boot/dts/omap-gpmc-smsc911x.dtsi | 4 +-
arch/arm/boot/dts/omap-gpmc-smsc9221.dtsi | 2 +-
arch/arm/boot/dts/omap-zoom-common.dtsi | 4 +-
arch/arm/boot/dts/omap2430-sdp.dts | 4 +-
arch/arm/boot/dts/omap3-cpu-thermal.dtsi | 2 +-
arch/arm/boot/dts/omap3-devkit8000-common.dtsi | 4 +-
arch/arm/boot/dts/omap3-gta04.dtsi | 23 +-
arch/arm/boot/dts/omap3-gta04a5.dts | 4 +-
arch/arm/boot/dts/omap3-overo-tobiduo-common.dtsi | 2 +-
arch/arm/boot/dts/omap3-sb-t35.dtsi | 4 +-
arch/arm/boot/dts/qcom-apq8026-lg-lenok.dts | 237 +
arch/arm/boot/dts/qcom-apq8060-dragonboard.dts | 10 +-
arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dts | 2 +-
arch/arm/boot/dts/qcom-apq8064-cm-qs600.dts | 6 +-
arch/arm/boot/dts/qcom-apq8064-ifc6410.dts | 6 +-
.../arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dts | 4 +-
arch/arm/boot/dts/qcom-apq8064.dtsi | 63 +-
arch/arm/boot/dts/qcom-apq8084.dtsi | 8 +-
arch/arm/boot/dts/qcom-ipq4019-ap.dk01.1-c1.dts | 2 +-
arch/arm/boot/dts/qcom-ipq4019-ap.dk01.1.dtsi | 1 -
arch/arm/boot/dts/qcom-ipq4019-ap.dk04.1-c1.dts | 2 +-
arch/arm/boot/dts/qcom-ipq4019-ap.dk04.1-c3.dts | 2 +-
arch/arm/boot/dts/qcom-ipq4019-ap.dk07.1-c1.dts | 2 +-
arch/arm/boot/dts/qcom-ipq4019-ap.dk07.1-c2.dts | 2 +-
arch/arm/boot/dts/qcom-ipq8064-ap148.dts | 2 +-
arch/arm/boot/dts/qcom-ipq8064-rb3011.dts | 8 +-
arch/arm/boot/dts/qcom-ipq8064.dtsi | 26 +-
arch/arm/boot/dts/qcom-mdm9615-wp8548.dtsi | 2 +-
arch/arm/boot/dts/qcom-mdm9615.dtsi | 16 +-
arch/arm/boot/dts/qcom-msm8226.dtsi | 263 +-
arch/arm/boot/dts/qcom-msm8660-surf.dts | 4 +-
arch/arm/boot/dts/qcom-msm8660.dtsi | 27 +-
.../boot/dts/qcom-msm8916-samsung-serranove.dts | 3 +
arch/arm/boot/dts/qcom-msm8916-smp.dtsi | 62 +
arch/arm/boot/dts/qcom-msm8960-cdp.dts | 4 +-
arch/arm/boot/dts/qcom-msm8960.dtsi | 4 +-
arch/arm/boot/dts/qcom-msm8974.dtsi | 16 +-
arch/arm/boot/dts/qcom-pm8226.dtsi | 27 +
arch/arm/boot/dts/qcom-pm8841.dtsi | 7 +-
arch/arm/boot/dts/qcom-pm8941.dtsi | 11 +-
arch/arm/boot/dts/qcom-pma8084.dtsi | 11 +-
arch/arm/boot/dts/qcom-sdx55.dtsi | 1 -
arch/arm/boot/dts/r7s72100-genmai.dts | 2 +
arch/arm/boot/dts/r7s72100-gr-peach.dts | 2 +
arch/arm/boot/dts/r7s72100-rskrza1.dts | 2 +
arch/arm/boot/dts/r7s9210-rza2mevb.dts | 21 +
arch/arm/boot/dts/r8a73a4-ape6evm.dts | 1 +
arch/arm/boot/dts/r8a7740-armadillo800eva.dts | 3 +
arch/arm/boot/dts/r8a7742-iwg21d-q7-dbcm-ca.dts | 2 +
arch/arm/boot/dts/r8a7742-iwg21d-q7.dts | 2 +
arch/arm/boot/dts/r8a7743-sk-rzg1m.dts | 4 +
arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts | 2 +
arch/arm/boot/dts/r8a7745-sk-rzg1e.dts | 4 +
arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts | 2 +
arch/arm/boot/dts/r8a7778-bockw.dts | 2 +-
arch/arm/boot/dts/r8a7779-marzen.dts | 2 +-
arch/arm/boot/dts/r8a7790-lager.dts | 2 +
arch/arm/boot/dts/r8a7790-stout.dts | 2 +
arch/arm/boot/dts/r8a7791-koelsch.dts | 2 +
arch/arm/boot/dts/r8a7791-porter.dts | 2 +
arch/arm/boot/dts/r8a7793-gose.dts | 2 +
arch/arm/boot/dts/r8a7794-alt.dts | 2 +
arch/arm/boot/dts/r8a7794-silk.dts | 2 +
arch/arm/boot/dts/rk3036.dtsi | 10 +-
arch/arm/boot/dts/rk3066a-mk808.dts | 27 +
arch/arm/boot/dts/rk3066a.dtsi | 32 +-
arch/arm/boot/dts/rk3188.dtsi | 13 +-
arch/arm/boot/dts/rk3229.dtsi | 2 +-
arch/arm/boot/dts/rk322x.dtsi | 14 +-
arch/arm/boot/dts/rk3288.dtsi | 22 +-
arch/arm/boot/dts/rv1108.dtsi | 16 +-
arch/arm/boot/dts/s5pv210-fascinate4g.dts | 1 +
arch/arm/boot/dts/s5pv210-galaxys.dts | 1 +
arch/arm/boot/dts/sama5d29.dtsi | 16 +
arch/arm/boot/dts/sama7g5.dtsi | 43 +
arch/arm/boot/dts/sh73a0-kzm9g.dts | 2 +-
arch/arm/boot/dts/socfpga_arria10_mercury_aa1.dts | 112 +
arch/arm/boot/dts/spear1310.dtsi | 6 -
arch/arm/boot/dts/spear1340.dtsi | 2 -
arch/arm/boot/dts/ste-ab8500.dtsi | 13 +-
arch/arm/boot/dts/ste-ab8505.dtsi | 13 +-
arch/arm/boot/dts/ste-href.dtsi | 6 +
arch/arm/boot/dts/ste-snowball.dts | 6 +
arch/arm/boot/dts/ste-ux500-samsung-codina.dts | 4 +
arch/arm/boot/dts/ste-ux500-samsung-gavini.dts | 4 +
arch/arm/boot/dts/ste-ux500-samsung-golden.dts | 4 +
arch/arm/boot/dts/ste-ux500-samsung-janice.dts | 7 +
arch/arm/boot/dts/ste-ux500-samsung-kyle.dts | 4 +
arch/arm/boot/dts/ste-ux500-samsung-skomer.dts | 38 +-
arch/arm/boot/dts/stm32mp13-pinctrl.dtsi | 64 +
arch/arm/boot/dts/stm32mp131.dtsi | 283 +
arch/arm/boot/dts/stm32mp133.dtsi | 37 +
arch/arm/boot/dts/stm32mp135.dtsi | 12 +
arch/arm/boot/dts/stm32mp135f-dk.dts | 56 +
arch/arm/boot/dts/stm32mp13xc.dtsi | 17 +
arch/arm/boot/dts/stm32mp13xf.dtsi | 17 +
arch/arm/boot/dts/stm32mp15-pinctrl.dtsi | 8 +-
arch/arm/boot/dts/stm32mp151.dtsi | 19 +-
arch/arm/boot/dts/stm32mp157c-odyssey.dts | 6 +
arch/arm/boot/dts/stm32mp15xx-dhcor-som.dtsi | 2 +-
arch/arm/boot/dts/stm32mp15xx-dkx.dtsi | 2 +-
arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts | 11 +-
arch/arm/boot/dts/sun4i-a10.dtsi | 11 +-
arch/arm/boot/dts/sun5i-a13.dtsi | 15 +-
arch/arm/boot/dts/sun6i-a31.dtsi | 44 +-
arch/arm/boot/dts/sun7i-a20-bananapi.dts | 17 +-
arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts | 2 +-
arch/arm/boot/dts/sun7i-a20.dtsi | 34 +-
arch/arm/boot/dts/sun8i-a33.dtsi | 4 +-
arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts | 2 +-
arch/arm/boot/dts/sun8i-a83t.dtsi | 4 +-
arch/arm/boot/dts/sun8i-h3.dtsi | 4 +-
arch/arm/boot/dts/sun8i-r40.dtsi | 39 +
arch/arm/boot/dts/sun8i-v3-sl631.dtsi | 2 +-
arch/arm/boot/dts/sun9i-a80-cubieboard4.dts | 2 +-
arch/arm/boot/dts/sunxi-libretech-all-h3-it.dtsi | 2 +-
arch/arm/boot/dts/tegra114.dtsi | 8 +-
arch/arm/boot/dts/tegra124.dtsi | 12 +-
arch/arm/boot/dts/tegra20-acer-a500-picasso.dts | 7 +-
arch/arm/boot/dts/tegra20-paz00.dts | 2 -
arch/arm/boot/dts/tegra20.dtsi | 13 +-
.../dts/tegra30-asus-nexus7-grouper-common.dtsi | 30 +-
arch/arm/boot/dts/tegra30-ouya.dts | 5 +-
arch/arm/boot/dts/tegra30.dtsi | 12 +-
arch/arm/boot/dts/versatile-ab-ib2.dts | 6 +-
arch/arm/boot/dts/versatile-ab.dts | 27 +-
arch/arm/common/scoop.c | 3 -
arch/arm/configs/aspeed_g4_defconfig | 1 +
arch/arm/configs/aspeed_g5_defconfig | 35 +-
arch/arm/configs/at91_dt_defconfig | 1 +
arch/arm/configs/exynos_defconfig | 1 +
arch/arm/configs/imx_v6_v7_defconfig | 48 +-
arch/arm/configs/lpc32xx_defconfig | 1 +
arch/arm/configs/multi_v5_defconfig | 1 +
arch/arm/configs/multi_v7_defconfig | 87 +-
arch/arm/configs/mvebu_v7_defconfig | 18 +-
arch/arm/configs/omap2plus_defconfig | 1 +
arch/arm/configs/qcom_defconfig | 1 +
arch/arm/configs/realview_defconfig | 1 +
arch/arm/configs/sama5_defconfig | 1 +
arch/arm/configs/shmobile_defconfig | 1 +
arch/arm/configs/sunxi_defconfig | 1 +
arch/arm/configs/tegra_defconfig | 1 +
arch/arm/configs/versatile_defconfig | 1 +
arch/arm/configs/vexpress_defconfig | 1 +
arch/arm/include/asm/arch_timer.h | 37 +-
arch/arm/include/asm/assembler.h | 29 +
arch/arm/include/asm/cacheflush.h | 1 +
arch/arm/include/asm/current.h | 55 +
arch/arm/include/asm/io.h | 1 +
arch/arm/include/asm/opcodes.h | 9 +-
arch/arm/include/asm/processor.h | 2 +-
arch/arm/include/asm/setup.h | 2 +-
arch/arm/include/asm/smp.h | 3 +-
arch/arm/include/asm/stackprotector.h | 2 -
arch/arm/include/asm/stacktrace.h | 9 +
arch/arm/include/asm/switch_to.h | 16 +
arch/arm/include/asm/syscall.h | 10 -
arch/arm/include/asm/thread_info.h | 26 +-
arch/arm/include/asm/tls.h | 10 +-
arch/arm/include/asm/uaccess.h | 4 +-
arch/arm/kernel/asm-offsets.c | 6 +-
arch/arm/kernel/devtree.c | 22 +-
arch/arm/kernel/entry-armv.S | 10 +-
arch/arm/kernel/entry-common.S | 1 +
arch/arm/kernel/entry-header.S | 8 +
arch/arm/kernel/ftrace.c | 5 -
arch/arm/kernel/head-common.S | 5 +
arch/arm/kernel/head-nommu.S | 1 +
arch/arm/kernel/head.S | 9 +-
arch/arm/kernel/irq.c | 14 +-
arch/arm/kernel/process.c | 12 +-
arch/arm/kernel/return_address.c | 4 +
arch/arm/kernel/smp.c | 13 +-
arch/arm/kernel/stacktrace.c | 17 +-
arch/arm/kernel/traps.c | 2 +-
arch/arm/kernel/vmlinux-xip.lds.S | 8 +-
arch/arm/kernel/vmlinux.lds.S | 2 +
arch/arm/mach-at91/Kconfig | 9 +
arch/arm/mach-bcm/Kconfig | 4 -
arch/arm/mach-bcm/bcm63xx_pmb.c | 6 +-
arch/arm/mach-ep93xx/clock.c | 975 +-
arch/arm/mach-ep93xx/core.c | 2 +-
arch/arm/mach-ep93xx/soc.h | 42 +-
arch/arm/mach-exynos/Kconfig | 2 -
arch/arm/mach-hisi/platmcpm.c | 2 +-
arch/arm/mach-imx/avic.c | 2 +-
arch/arm/mach-imx/pm-imx6.c | 2 +
arch/arm/mach-imx/tzic.c | 2 +-
arch/arm/mach-integrator/Kconfig | 2 +-
arch/arm/mach-omap1/irq.c | 2 +-
arch/arm/mach-omap2/cm-regbits-44xx.h | 101 -
arch/arm/mach-omap2/cm1_44xx.h | 174 -
arch/arm/mach-omap2/cm1_54xx.h | 168 -
arch/arm/mach-omap2/cm1_7xx.h | 263 -
arch/arm/mach-omap2/cm2_44xx.h | 386 -
arch/arm/mach-omap2/cm2_54xx.h | 325 -
arch/arm/mach-omap2/cm2_7xx.h | 449 -
arch/arm/mach-omap2/cm33xx.h | 280 -
arch/arm/mach-omap2/omap_hwmod.c | 6 +-
arch/arm/mach-omap2/pdata-quirks.c | 36 -
arch/arm/mach-omap2/powerdomain.c | 6 +-
arch/arm/mach-omap2/prcm43xx.h | 94 -
arch/arm/mach-omap2/prm33xx.h | 40 -
arch/arm/mach-omap2/prm44xx.h | 630 -
arch/arm/mach-omap2/prm54xx.h | 358 -
arch/arm/mach-omap2/prm7xx.h | 613 -
arch/arm/mach-omap2/scrm44xx.h | 141 -
arch/arm/mach-omap2/scrm54xx.h | 228 -
arch/arm/mach-qcom/Kconfig | 10 +
arch/arm/mach-qcom/platsmp.c | 72 +
arch/arm/mach-realview/Kconfig | 2 +-
arch/arm/mach-s3c/irq-s3c24xx.c | 24 +-
arch/arm/mach-s3c/mach-mini6410.c | 2 +-
arch/arm/mach-s5pv210/Kconfig | 1 -
arch/arm/mach-sa1100/assabet.c | 24 +-
arch/arm/mach-stm32/Kconfig | 8 +
arch/arm/mach-stm32/board-dt.c | 3 +
arch/arm/mach-sunxi/platsmp.c | 4 +-
arch/arm/mach-sunxi/sunxi.c | 4 +-
arch/arm/mach-ux500/Kconfig | 1 +
arch/arm/mach-versatile/Kconfig | 2 +-
arch/arm/mach-vexpress/Kconfig | 2 +-
arch/arm/mm/Kconfig | 4 +-
arch/arm/mm/context.c | 2 +-
arch/arm/mm/fault.c | 119 +-
arch/arm/mm/fault.h | 4 +
arch/arm/mm/init.c | 2 +-
arch/arm/mm/ioremap.c | 6 +
arch/arm/mm/kasan_init.c | 4 +-
arch/arm/mm/mmu.c | 4 +-
arch/arm/mm/proc-macros.S | 4 +-
arch/arm/net/bpf_jit_32.c | 5 -
arch/arm/probes/kprobes/core.c | 45 +-
arch/arm/probes/kprobes/opt-arm.c | 7 +-
arch/arm/probes/kprobes/test-core.h | 2 +-
arch/arm/tools/syscall.tbl | 1 +
arch/arm/xen/enlighten.c | 1 -
arch/arm/xen/hypercall.S | 1 -
arch/arm64/Kbuild | 3 +
arch/arm64/Kconfig | 134 +-
arch/arm64/Kconfig.platforms | 6 -
arch/arm64/Makefile | 7 -
arch/arm64/boot/dts/allwinner/axp803.dtsi | 10 +-
arch/arm64/boot/dts/allwinner/sun50i-a100.dtsi | 6 +-
.../boot/dts/allwinner/sun50i-a64-cpu-opp.dtsi | 2 +-
.../boot/dts/allwinner/sun50i-a64-orangepi-win.dts | 2 +-
.../boot/dts/allwinner/sun50i-a64-pinetab.dts | 28 +-
.../boot/dts/allwinner/sun50i-a64-teres-i.dts | 3 +-
arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 17 +
.../boot/dts/allwinner/sun50i-h5-cpu-opp.dtsi | 2 +-
.../boot/dts/allwinner/sun50i-h5-nanopi-neo2.dts | 2 +-
.../boot/dts/allwinner/sun50i-h5-nanopi-r1s-h5.dts | 9 +-
arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi | 2 +-
.../boot/dts/allwinner/sun50i-h6-cpu-opp.dtsi | 2 +-
arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 8 +-
arch/arm64/boot/dts/amlogic/Makefile | 3 +
.../dts/amlogic/meson-axg-jethome-jethub-j100.dts | 362 +
.../boot/dts/amlogic/meson-g12a-radxa-zero.dts | 405 +
arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts | 2 +-
arch/arm64/boot/dts/amlogic/meson-g12a-u200.dts | 2 +-
arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts | 2 +-
.../boot/dts/amlogic/meson-g12b-khadas-vim3.dtsi | 4 +-
.../boot/dts/amlogic/meson-g12b-odroid-n2.dtsi | 6 +-
arch/arm64/boot/dts/amlogic/meson-g12b-w400.dtsi | 4 +-
.../amlogic/meson-gxl-s905w-jethome-jethub-j80.dts | 241 +
arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts | 61 +
.../boot/dts/amlogic/meson-sm1-bananapi-m5.dts | 2 +-
.../boot/dts/amlogic/meson-sm1-khadas-vim3l.dts | 2 +-
arch/arm64/boot/dts/amlogic/meson-sm1-odroid.dtsi | 6 +-
arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts | 2 +-
arch/arm64/boot/dts/apple/t8103-j274.dts | 23 +
arch/arm64/boot/dts/apple/t8103.dtsi | 207 +
arch/arm64/boot/dts/arm/juno-motherboard.dtsi | 27 +-
arch/arm64/boot/dts/broadcom/Makefile | 1 +
.../arm64/boot/dts/broadcom/bcm2711-rpi-cm4-io.dts | 2 +
arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi | 16 +-
arch/arm64/boot/dts/exynos/Makefile | 3 +-
arch/arm64/boot/dts/exynos/exynos5433-bus.dtsi | 10 +-
arch/arm64/boot/dts/exynos/exynos5433-tm2.dts | 1 +
arch/arm64/boot/dts/exynos/exynos5433-tm2e.dts | 1 +
arch/arm64/boot/dts/exynos/exynos5433.dtsi | 6 +-
.../boot/dts/exynos/exynosautov9-pinctrl.dtsi | 1189 +
arch/arm64/boot/dts/exynos/exynosautov9-sadk.dts | 56 +
arch/arm64/boot/dts/exynos/exynosautov9.dtsi | 306 +
arch/arm64/boot/dts/freescale/Makefile | 4 +
arch/arm64/boot/dts/freescale/fsl-ls1012a-rdb.dts | 1 +
.../freescale/fsl-ls1028a-kontron-sl28-var1.dts | 60 +-
.../freescale/fsl-ls1028a-kontron-sl28-var2.dts | 17 +-
.../freescale/fsl-ls1028a-kontron-sl28-var4.dts | 49 +-
.../dts/freescale/fsl-ls1028a-kontron-sl28.dts | 31 +-
arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts | 10 +-
arch/arm64/boot/dts/freescale/fsl-ls1028a-rdb.dts | 19 +-
arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi | 72 +-
arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 40 +-
arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi | 40 +-
.../dts/freescale/fsl-lx2160a-bluebox3-rev-a.dts | 34 +
.../boot/dts/freescale/fsl-lx2160a-bluebox3.dts | 658 +
arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi | 24 +-
.../boot/dts/freescale/imx8mm-kontron-n801x-s.dts | 40 +-
.../dts/freescale/imx8mm-kontron-n801x-som.dtsi | 12 +-
.../boot/dts/freescale/imx8mm-venice-gw71xx.dtsi | 2 +-
.../boot/dts/freescale/imx8mm-venice-gw72xx.dtsi | 2 +-
.../boot/dts/freescale/imx8mm-venice-gw73xx.dtsi | 2 +-
.../boot/dts/freescale/imx8mm-venice-gw7901.dts | 24 +
arch/arm64/boot/dts/freescale/imx8mm.dtsi | 180 +
arch/arm64/boot/dts/freescale/imx8mp.dtsi | 2 +-
arch/arm64/boot/dts/freescale/imx8mq-librem5.dtsi | 46 +-
.../boot/dts/freescale/imx8mq-mnt-reform2.dts | 1 +
.../arm64/boot/dts/freescale/imx8mq-zii-ultra.dtsi | 2 +
arch/arm64/boot/dts/freescale/imx8mq.dtsi | 10 +-
arch/arm64/boot/dts/freescale/s32g2.dtsi | 124 +
arch/arm64/boot/dts/freescale/s32g274a-evb.dts | 34 +
arch/arm64/boot/dts/freescale/s32g274a-rdb2.dts | 40 +
arch/arm64/boot/dts/hisilicon/hi3660.dtsi | 8 +-
arch/arm64/boot/dts/hisilicon/hi3670-hikey970.dts | 22 +-
arch/arm64/boot/dts/hisilicon/hi3670.dtsi | 2 +-
arch/arm64/boot/dts/hisilicon/hi6220.dtsi | 4 +-
arch/arm64/boot/dts/hisilicon/hikey970-pmic.dtsi | 86 +
arch/arm64/boot/dts/marvell/Makefile | 1 +
.../boot/dts/marvell/armada-7040-mochabin.dts | 458 +
arch/arm64/boot/dts/mediatek/mt2712e.dtsi | 97 +-
arch/arm64/boot/dts/mediatek/mt6358.dtsi | 1 +
.../boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts | 16 +-
arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts | 6 +-
arch/arm64/boot/dts/mediatek/mt7622.dtsi | 112 +-
arch/arm64/boot/dts/mediatek/mt8173.dtsi | 2 +
.../mt8183-kukui-audio-da7219-max98357a.dtsi | 13 +
.../mt8183-kukui-audio-da7219-rt1015p.dtsi | 13 +
.../dts/mediatek/mt8183-kukui-audio-da7219.dtsi | 54 +
.../dts/mediatek/mt8183-kukui-audio-max98357a.dtsi | 13 +
.../dts/mediatek/mt8183-kukui-audio-rt1015p.dtsi | 13 +
.../mt8183-kukui-audio-ts3a227e-max98357a.dtsi | 13 +
.../mt8183-kukui-audio-ts3a227e-rt1015p.dtsi | 13 +
.../dts/mediatek/mt8183-kukui-audio-ts3a227e.dtsi | 32 +
.../dts/mediatek/mt8183-kukui-jacuzzi-burnet.dts | 1 +
.../dts/mediatek/mt8183-kukui-jacuzzi-damu.dts | 1 +
.../dts/mediatek/mt8183-kukui-jacuzzi-fennel.dtsi | 1 +
.../mt8183-kukui-jacuzzi-juniper-sku16.dts | 1 +
.../dts/mediatek/mt8183-kukui-jacuzzi-kappa.dts | 1 +
.../dts/mediatek/mt8183-kukui-jacuzzi-kenzo.dts | 1 +
.../mediatek/mt8183-kukui-jacuzzi-willow-sku0.dts | 1 +
.../mediatek/mt8183-kukui-jacuzzi-willow-sku1.dts | 1 +
.../boot/dts/mediatek/mt8183-kukui-kakadu.dts | 1 +
.../boot/dts/mediatek/mt8183-kukui-kodama.dtsi | 1 +
.../boot/dts/mediatek/mt8183-kukui-krane.dtsi | 5 +
arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi | 67 +-
arch/arm64/boot/dts/mediatek/mt8183.dtsi | 99 +-
arch/arm64/boot/dts/mediatek/mt8192.dtsi | 163 +
arch/arm64/boot/dts/nvidia/tegra132-norrin.dts | 2 -
arch/arm64/boot/dts/nvidia/tegra132.dtsi | 12 +-
arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts | 1554 +-
.../dts/nvidia/tegra186-p3509-0000+p3636-0001.dts | 506 +-
arch/arm64/boot/dts/nvidia/tegra186.dtsi | 136 +
arch/arm64/boot/dts/nvidia/tegra194-p2972-0000.dts | 1495 +-
.../arm64/boot/dts/nvidia/tegra194-p3509-0000.dtsi | 1522 +-
arch/arm64/boot/dts/nvidia/tegra194.dtsi | 209 +-
arch/arm64/boot/dts/nvidia/tegra210-p2371-2180.dts | 876 +
arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts | 876 +
arch/arm64/boot/dts/nvidia/tegra210.dtsi | 81 +-
arch/arm64/boot/dts/qcom/Makefile | 12 +
arch/arm64/boot/dts/qcom/apq8016-sbc.dts | 832 +-
arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi | 826 -
.../apq8094-sony-xperia-kitakami-karin_windy.dts | 1 +
arch/arm64/boot/dts/qcom/apq8096-db820c.dts | 1070 +-
arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi | 1105 -
arch/arm64/boot/dts/qcom/apq8096-ifc6640.dts | 3 -
arch/arm64/boot/dts/qcom/ipq6018.dtsi | 93 +-
arch/arm64/boot/dts/qcom/ipq8074-hk01.dts | 6 +
arch/arm64/boot/dts/qcom/ipq8074.dtsi | 92 +-
.../boot/dts/qcom/msm8916-alcatel-idol347.dts | 1 +
arch/arm64/boot/dts/qcom/msm8916-asus-z00l.dts | 126 +
arch/arm64/boot/dts/qcom/msm8916-huawei-g7.dts | 1 +
.../boot/dts/qcom/msm8916-longcheer-l8150.dts | 63 +-
.../boot/dts/qcom/msm8916-longcheer-l8910.dts | 1 +
arch/arm64/boot/dts/qcom/msm8916-mtp.dts | 15 +-
arch/arm64/boot/dts/qcom/msm8916-mtp.dtsi | 21 -
.../boot/dts/qcom/msm8916-samsung-a3u-eur.dts | 1 +
.../boot/dts/qcom/msm8916-samsung-a5u-eur.dts | 1 +
.../boot/dts/qcom/msm8916-samsung-serranove.dts | 534 +
.../boot/dts/qcom/msm8916-wingtech-wt88047.dts | 1 +
arch/arm64/boot/dts/qcom/msm8916.dtsi | 89 +-
.../boot/dts/qcom/msm8992-bullhead-rev-101.dts | 2 +
.../qcom/msm8992-msft-lumia-octagon-talkman.dts | 1 +
arch/arm64/boot/dts/qcom/msm8992-xiaomi-libra.dts | 2 +
.../arm64/boot/dts/qcom/msm8994-angler-rev-101.dts | 1 +
.../qcom/msm8994-msft-lumia-octagon-cityman.dts | 1 +
.../dts/qcom/msm8994-sony-xperia-kitakami-ivy.dts | 1 +
.../qcom/msm8994-sony-xperia-kitakami-karin.dts | 1 +
.../qcom/msm8994-sony-xperia-kitakami-satsuki.dts | 1 +
.../qcom/msm8994-sony-xperia-kitakami-sumire.dts | 1 +
.../qcom/msm8994-sony-xperia-kitakami-suzuran.dts | 1 +
arch/arm64/boot/dts/qcom/msm8994.dtsi | 2 +-
arch/arm64/boot/dts/qcom/msm8996-mtp.dts | 24 +-
arch/arm64/boot/dts/qcom/msm8996-mtp.dtsi | 30 -
.../dts/qcom/msm8996-sony-xperia-tone-dora.dts | 1 +
.../dts/qcom/msm8996-sony-xperia-tone-kagura.dts | 1 +
.../dts/qcom/msm8996-sony-xperia-tone-keyaki.dts | 1 +
.../boot/dts/qcom/msm8996-sony-xperia-tone.dtsi | 1 +
.../arm64/boot/dts/qcom/msm8996-xiaomi-common.dtsi | 673 +
arch/arm64/boot/dts/qcom/msm8996-xiaomi-gemini.dts | 465 +
.../arm64/boot/dts/qcom/msm8996-xiaomi-scorpio.dts | 432 +
arch/arm64/boot/dts/qcom/msm8996.dtsi | 96 +-
.../boot/dts/qcom/msm8998-asus-novago-tp370ql.dts | 1 +
arch/arm64/boot/dts/qcom/msm8998-clamshell.dtsi | 2 +
arch/arm64/boot/dts/qcom/msm8998-fxtec-pro1.dts | 320 +
arch/arm64/boot/dts/qcom/msm8998-hp-envy-x2.dts | 1 +
.../boot/dts/qcom/msm8998-lenovo-miix-630.dts | 1 +
arch/arm64/boot/dts/qcom/msm8998-mtp.dtsi | 4 -
.../boot/dts/qcom/msm8998-oneplus-cheeseburger.dts | 1 +
.../boot/dts/qcom/msm8998-oneplus-common.dtsi | 4 -
.../boot/dts/qcom/msm8998-oneplus-dumpling.dts | 1 +
.../dts/qcom/msm8998-sony-xperia-yoshino-lilac.dts | 31 +
.../dts/qcom/msm8998-sony-xperia-yoshino-maple.dts | 55 +
.../qcom/msm8998-sony-xperia-yoshino-poplar.dts | 36 +
.../boot/dts/qcom/msm8998-sony-xperia-yoshino.dtsi | 670 +
arch/arm64/boot/dts/qcom/msm8998.dtsi | 223 +-
arch/arm64/boot/dts/qcom/pm6150l.dtsi | 1 +
arch/arm64/boot/dts/qcom/pm6350.dtsi | 54 +
arch/arm64/boot/dts/qcom/pm660.dtsi | 5 +-
arch/arm64/boot/dts/qcom/pm660l.dtsi | 7 -
arch/arm64/boot/dts/qcom/pm8916.dtsi | 18 +-
arch/arm64/boot/dts/qcom/pm8994.dtsi | 13 +-
arch/arm64/boot/dts/qcom/pmi8994.dtsi | 5 +-
arch/arm64/boot/dts/qcom/pmi8998.dtsi | 12 +
arch/arm64/boot/dts/qcom/pmk8350.dtsi | 1 +
arch/arm64/boot/dts/qcom/qcs404.dtsi | 7 +-
arch/arm64/boot/dts/qcom/qrb5165-rb5.dts | 4 +-
arch/arm64/boot/dts/qcom/sa8155p-adp.dts | 12 +-
.../boot/dts/qcom/sc7180-trogdor-coachz-r1.dts | 14 +
.../arm64/boot/dts/qcom/sc7180-trogdor-coachz.dtsi | 3 +-
.../boot/dts/qcom/sc7180-trogdor-homestar-r2.dts | 20 +
.../boot/dts/qcom/sc7180-trogdor-homestar-r3.dts | 15 +
.../boot/dts/qcom/sc7180-trogdor-homestar.dtsi | 336 +
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor.dtsi | 13 +
.../boot/dts/qcom/sc7180-trogdor-lte-sku.dtsi | 11 +
.../dts/qcom/sc7180-trogdor-parade-ps8640.dtsi | 109 +
.../boot/dts/qcom/sc7180-trogdor-pompom-r1.dts | 8 +
.../boot/dts/qcom/sc7180-trogdor-pompom-r2.dts | 8 +
.../arm64/boot/dts/qcom/sc7180-trogdor-pompom.dtsi | 9 +-
arch/arm64/boot/dts/qcom/sc7180-trogdor-r1.dts | 1 +
.../boot/dts/qcom/sc7180-trogdor-ti-sn65dsi86.dtsi | 90 +
arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi | 101 +-
arch/arm64/boot/dts/qcom/sc7180.dtsi | 85 +-
arch/arm64/boot/dts/qcom/sc7280-herobrine.dts | 14 +
arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi | 1412 +
arch/arm64/boot/dts/qcom/sc7280-idp.dts | 12 +
arch/arm64/boot/dts/qcom/sc7280-idp.dtsi | 271 +-
arch/arm64/boot/dts/qcom/sc7280-idp2.dts | 8 +
arch/arm64/boot/dts/qcom/sc7280.dtsi | 3562 +-
.../dts/qcom/sdm630-sony-xperia-ganges-kirin.dts | 1 +
.../dts/qcom/sdm630-sony-xperia-nile-discovery.dts | 1 +
.../dts/qcom/sdm630-sony-xperia-nile-pioneer.dts | 1 +
.../dts/qcom/sdm630-sony-xperia-nile-voyager.dts | 1 +
.../boot/dts/qcom/sdm630-sony-xperia-nile.dtsi | 8 +-
arch/arm64/boot/dts/qcom/sdm630.dtsi | 58 +-
.../arm64/boot/dts/qcom/sdm660-xiaomi-lavender.dts | 1 +
arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi | 17 +-
arch/arm64/boot/dts/qcom/sdm845-db845c.dts | 16 +-
arch/arm64/boot/dts/qcom/sdm845-mtp.dts | 18 +-
.../arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi | 26 +-
.../boot/dts/qcom/sdm845-oneplus-enchilada.dts | 1 +
arch/arm64/boot/dts/qcom/sdm845-oneplus-fajita.dts | 1 +
.../boot/dts/qcom/sdm845-xiaomi-beryllium.dts | 19 +-
arch/arm64/boot/dts/qcom/sdm845.dtsi | 243 +-
.../boot/dts/qcom/sdm850-lenovo-yoga-c630.dts | 21 +-
.../dts/qcom/sm6125-sony-xperia-seine-pdx201.dts | 1 +
arch/arm64/boot/dts/qcom/sm6125.dtsi | 59 +-
.../dts/qcom/sm6350-sony-xperia-lena-pdx213.dts | 58 +
arch/arm64/boot/dts/qcom/sm6350.dtsi | 965 +
arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts | 320 +
arch/arm64/boot/dts/qcom/sm7225.dtsi | 16 +
arch/arm64/boot/dts/qcom/sm8150-hdk.dts | 2 -
.../boot/dts/qcom/sm8150-microsoft-surface-duo.dts | 3 +-
arch/arm64/boot/dts/qcom/sm8150-mtp.dts | 2 -
.../dts/qcom/sm8150-sony-xperia-kumano-bahamut.dts | 1 +
.../dts/qcom/sm8150-sony-xperia-kumano-griffin.dts | 1 +
arch/arm64/boot/dts/qcom/sm8150.dtsi | 161 +-
arch/arm64/boot/dts/qcom/sm8250-hdk.dts | 2 -
arch/arm64/boot/dts/qcom/sm8250-mtp.dts | 2 -
.../dts/qcom/sm8250-sony-xperia-edo-pdx203.dts | 1 +
.../dts/qcom/sm8250-sony-xperia-edo-pdx206.dts | 1 +
arch/arm64/boot/dts/qcom/sm8250.dtsi | 55 +-
arch/arm64/boot/dts/qcom/sm8350-hdk.dts | 2 -
arch/arm64/boot/dts/qcom/sm8350-mtp.dts | 6 +-
arch/arm64/boot/dts/qcom/sm8350.dtsi | 302 +-
arch/arm64/boot/dts/renesas/Makefile | 2 +
.../arm64/boot/dts/renesas/beacon-renesom-som.dtsi | 3 +
arch/arm64/boot/dts/renesas/cat875.dtsi | 2 +
arch/arm64/boot/dts/renesas/draak.dtsi | 686 +
arch/arm64/boot/dts/renesas/ebisu.dtsi | 803 +
arch/arm64/boot/dts/renesas/hihope-rzg2-ex.dtsi | 2 +
arch/arm64/boot/dts/renesas/r8a77961.dtsi | 11 +
arch/arm64/boot/dts/renesas/r8a77970-eagle.dts | 4 +
arch/arm64/boot/dts/renesas/r8a77970-v3msk.dts | 4 +
arch/arm64/boot/dts/renesas/r8a77980-condor.dts | 4 +
arch/arm64/boot/dts/renesas/r8a77980-v3hsk.dts | 4 +
arch/arm64/boot/dts/renesas/r8a77990-ebisu.dts | 788 +-
arch/arm64/boot/dts/renesas/r8a77995-draak.dts | 671 +-
.../boot/dts/renesas/r8a779a0-falcon-cpu.dtsi | 70 +
arch/arm64/boot/dts/renesas/r8a779a0-falcon.dts | 2 +
arch/arm64/boot/dts/renesas/r8a779a0.dtsi | 1458 +
arch/arm64/boot/dts/renesas/r8a779m0.dtsi | 12 +
arch/arm64/boot/dts/renesas/r8a779m1.dtsi | 9 +
arch/arm64/boot/dts/renesas/r8a779m2.dtsi | 12 +
arch/arm64/boot/dts/renesas/r8a779m3.dtsi | 9 +
arch/arm64/boot/dts/renesas/r8a779m4.dtsi | 12 +
.../boot/dts/renesas/r8a779m5-salvator-xs.dts | 36 +
arch/arm64/boot/dts/renesas/r8a779m5.dtsi | 21 +
arch/arm64/boot/dts/renesas/r8a779m6.dtsi | 12 +
arch/arm64/boot/dts/renesas/r8a779m7.dtsi | 12 +
arch/arm64/boot/dts/renesas/r8a779m8.dtsi | 12 +
arch/arm64/boot/dts/renesas/r9a07g044.dtsi | 337 +
arch/arm64/boot/dts/renesas/r9a07g044l2-smarc.dts | 7 +-
arch/arm64/boot/dts/renesas/rzg2l-smarc-som.dtsi | 275 +
arch/arm64/boot/dts/renesas/rzg2l-smarc.dtsi | 292 +-
arch/arm64/boot/dts/renesas/salvator-common.dtsi | 56 +-
arch/arm64/boot/dts/renesas/ulcb.dtsi | 2 +
arch/arm64/boot/dts/rockchip/Makefile | 6 +
arch/arm64/boot/dts/rockchip/px30-evb.dts | 52 +
arch/arm64/boot/dts/rockchip/px30.dtsi | 126 +-
arch/arm64/boot/dts/rockchip/rk3308.dtsi | 49 +-
arch/arm64/boot/dts/rockchip/rk3318-a95x-z2.dts | 3 -
arch/arm64/boot/dts/rockchip/rk3326-odroid-go2.dts | 28 +-
arch/arm64/boot/dts/rockchip/rk3328-roc-pc.dts | 110 +
arch/arm64/boot/dts/rockchip/rk3328-rock64.dts | 2 +-
arch/arm64/boot/dts/rockchip/rk3328.dtsi | 17 +-
arch/arm64/boot/dts/rockchip/rk3368-lion.dtsi | 47 +-
arch/arm64/boot/dts/rockchip/rk3368.dtsi | 191 +-
arch/arm64/boot/dts/rockchip/rk3399-gru-bob.dts | 1 +
.../boot/dts/rockchip/rk3399-gru-chromebook.dtsi | 176 +
arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dts | 1 +
.../boot/dts/rockchip/rk3399-gru-scarlet-dumo.dts | 41 +
.../boot/dts/rockchip/rk3399-gru-scarlet.dtsi | 182 +
arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi | 4 +-
.../boot/dts/rockchip/rk3399-kobol-helios64.dts | 36 +
arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi | 6 +-
arch/arm64/boot/dts/rockchip/rk3399-opp.dtsi | 6 +-
.../boot/dts/rockchip/rk3399-pinebook-pro.dts | 7 +-
.../arm64/boot/dts/rockchip/rk3399-roc-pc-plus.dts | 218 +
arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi | 54 +
.../boot/dts/rockchip/rk3399-rock-pi-4a-plus.dts | 14 +
.../boot/dts/rockchip/rk3399-rock-pi-4b-plus.dts | 47 +
arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dtsi | 29 +
arch/arm64/boot/dts/rockchip/rk3399.dtsi | 116 +-
arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts | 548 +
arch/arm64/boot/dts/rockchip/rk3566.dtsi | 20 +
arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts | 313 +
arch/arm64/boot/dts/rockchip/rk3568-pinctrl.dtsi | 9 +
arch/arm64/boot/dts/rockchip/rk3568.dtsi | 644 +-
arch/arm64/boot/dts/rockchip/rk356x.dtsi | 1145 +
arch/arm64/boot/dts/ti/Makefile | 4 +-
arch/arm64/boot/dts/ti/k3-am64-main.dtsi | 280 +
arch/arm64/boot/dts/ti/k3-am64-mcu.dtsi | 8 +
arch/arm64/boot/dts/ti/k3-am64.dtsi | 2 +
arch/arm64/boot/dts/ti/k3-am642-evm.dts | 8 +
arch/arm64/boot/dts/ti/k3-am642-sk.dts | 8 +
.../boot/dts/ti/k3-am65-iot2050-common-pg1.dtsi | 46 +
.../boot/dts/ti/k3-am65-iot2050-common-pg2.dtsi | 51 +
arch/arm64/boot/dts/ti/k3-am65-iot2050-common.dtsi | 39 +-
arch/arm64/boot/dts/ti/k3-am65-main.dtsi | 8 +-
arch/arm64/boot/dts/ti/k3-am65-wakeup.dtsi | 4 -
arch/arm64/boot/dts/ti/k3-am65.dtsi | 2 +
.../dts/ti/k3-am6528-iot2050-basic-common.dtsi | 60 +
.../boot/dts/ti/k3-am6528-iot2050-basic-pg2.dts | 24 +
arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dts | 56 +-
arch/arm64/boot/dts/ti/k3-am654.dtsi | 4 +
.../dts/ti/k3-am6548-iot2050-advanced-common.dtsi | 56 +
.../boot/dts/ti/k3-am6548-iot2050-advanced-pg2.dts | 29 +
.../boot/dts/ti/k3-am6548-iot2050-advanced.dts | 50 +-
.../boot/dts/ti/k3-j7200-common-proc-board.dts | 3 +
arch/arm64/boot/dts/ti/k3-j7200-main.dtsi | 7 +-
arch/arm64/boot/dts/ti/k3-j7200.dtsi | 2 +
.../boot/dts/ti/k3-j721e-common-proc-board.dts | 3 +
arch/arm64/boot/dts/ti/k3-j721e-main.dtsi | 16 +-
arch/arm64/boot/dts/ti/k3-j721e-sk.dts | 1002 +
arch/arm64/boot/dts/ti/k3-j721e.dtsi | 3 +
arch/arm64/boot/dts/toshiba/Makefile | 1 +
arch/arm64/boot/dts/toshiba/tmpv7708-rm-mbrc.dts | 6 +
.../boot/dts/toshiba/tmpv7708-visrobo-vrb.dts | 61 +
.../boot/dts/toshiba/tmpv7708-visrobo-vrc.dtsi | 44 +
arch/arm64/boot/dts/toshiba/tmpv7708.dtsi | 59 +
arch/arm64/boot/dts/xilinx/Makefile | 14 +
arch/arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi | 13 +-
.../arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dts | 315 +
.../arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dts | 298 +
arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts | 289 +
arch/arm64/boot/dts/xilinx/zynqmp-smk-k26-revA.dts | 21 +
arch/arm64/boot/dts/xilinx/zynqmp-zc1232-revA.dts | 16 +-
arch/arm64/boot/dts/xilinx/zynqmp-zc1254-revA.dts | 16 +-
arch/arm64/boot/dts/xilinx/zynqmp-zc1275-revA.dts | 18 +-
.../boot/dts/xilinx/zynqmp-zc1751-xm015-dc1.dts | 298 +-
.../boot/dts/xilinx/zynqmp-zc1751-xm016-dc2.dts | 342 +-
.../boot/dts/xilinx/zynqmp-zc1751-xm017-dc3.dts | 49 +-
.../boot/dts/xilinx/zynqmp-zc1751-xm018-dc4.dts | 24 +-
.../boot/dts/xilinx/zynqmp-zc1751-xm019-dc5.dts | 330 +-
arch/arm64/boot/dts/xilinx/zynqmp-zcu100-revC.dts | 264 +-
.../arm64/boot/dts/xilinx/zynqmp-zcu102-rev1.1.dts | 15 +
arch/arm64/boot/dts/xilinx/zynqmp-zcu102-revA.dts | 320 +-
arch/arm64/boot/dts/xilinx/zynqmp-zcu102-revB.dts | 3 +-
arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revA.dts | 292 +-
arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revC.dts | 250 +-
arch/arm64/boot/dts/xilinx/zynqmp-zcu106-revA.dts | 340 +-
arch/arm64/boot/dts/xilinx/zynqmp-zcu111-revA.dts | 274 +-
arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 93 +-
arch/arm64/configs/defconfig | 28 +-
arch/arm64/crypto/Kconfig | 6 -
arch/arm64/crypto/aes-ce-ccm-core.S | 24 +-
arch/arm64/crypto/aes-ce-ccm-glue.c | 203 +-
arch/arm64/crypto/aes-glue.c | 102 +-
arch/arm64/crypto/aes-neonbs-glue.c | 122 +-
arch/arm64/crypto/ghash-ce-glue.c | 209 +-
arch/arm64/include/asm/arch_timer.h | 78 +-
arch/arm64/include/asm/asm-extable.h | 95 +
arch/arm64/include/asm/asm-uaccess.h | 7 +-
arch/arm64/include/asm/assembler.h | 78 +-
arch/arm64/include/asm/barrier.h | 16 +-
arch/arm64/include/asm/cputype.h | 4 +
arch/arm64/include/asm/esr.h | 7 +
arch/arm64/include/asm/extable.h | 23 +-
arch/arm64/include/asm/fpsimd.h | 118 +-
arch/arm64/include/asm/fpsimdmacros.h | 21 +-
arch/arm64/include/asm/ftrace.h | 2 +-
arch/arm64/include/asm/futex.h | 25 +-
arch/arm64/include/asm/gpr-num.h | 26 +
arch/arm64/include/asm/hwcap.h | 1 +
arch/arm64/include/asm/kexec.h | 12 +
arch/arm64/include/asm/kprobes.h | 2 +-
arch/arm64/include/asm/kvm_arm.h | 1 +
arch/arm64/include/asm/kvm_asm.h | 55 +-
arch/arm64/include/asm/kvm_emulate.h | 5 +-
arch/arm64/include/asm/kvm_host.h | 6 +-
arch/arm64/include/asm/kvm_hyp.h | 5 +
arch/arm64/include/asm/memory.h | 1 +
arch/arm64/include/asm/mmu_context.h | 24 +
arch/arm64/include/asm/mte-kasan.h | 5 +
arch/arm64/include/asm/mte.h | 8 +-
arch/arm64/include/asm/page.h | 1 -
arch/arm64/include/asm/pgtable.h | 17 +-
arch/arm64/include/asm/processor.h | 51 +-
arch/arm64/include/asm/sections.h | 1 +
arch/arm64/include/asm/setup.h | 6 +
arch/arm64/include/asm/stacktrace.h | 4 +
arch/arm64/include/asm/syscall.h | 10 -
arch/arm64/include/asm/sysreg.h | 34 +-
arch/arm64/include/asm/thread_info.h | 3 +-
arch/arm64/include/asm/trans_pgd.h | 14 +-
arch/arm64/include/asm/uaccess.h | 30 +-
arch/arm64/include/asm/unistd.h | 2 +-
arch/arm64/include/asm/unistd32.h | 2 +
arch/arm64/include/asm/vdso/compat_barrier.h | 7 -
arch/arm64/include/asm/virt.h | 7 +
arch/arm64/include/asm/vmalloc.h | 4 +-
arch/arm64/include/asm/word-at-a-time.h | 21 +-
arch/arm64/include/uapi/asm/hwcap.h | 1 +
arch/arm64/kernel/Makefile | 3 +
arch/arm64/kernel/armv8_deprecated.c | 12 +-
arch/arm64/kernel/asm-offsets.c | 13 +-
arch/arm64/kernel/cpu-reset.S | 7 +-
arch/arm64/kernel/cpu-reset.h | 32 -
arch/arm64/kernel/cpu_errata.c | 64 +
arch/arm64/kernel/cpufeature.c | 40 +-
arch/arm64/kernel/cpuinfo.c | 1 +
arch/arm64/kernel/entry-common.c | 52 +-
arch/arm64/kernel/entry-fpsimd.S | 34 +-
arch/arm64/kernel/entry.S | 10 +-
arch/arm64/kernel/fpsimd.c | 342 +-
arch/arm64/kernel/ftrace.c | 5 -
arch/arm64/kernel/head.S | 2 +-
arch/arm64/kernel/hibernate-asm.S | 72 -
arch/arm64/kernel/hibernate.c | 49 +-
arch/arm64/kernel/machine_kexec.c | 177 +-
arch/arm64/kernel/mte.c | 67 +-
arch/arm64/kernel/probes/kprobes.c | 12 +-
arch/arm64/kernel/probes/kprobes_trampoline.S | 8 +-
arch/arm64/kernel/process.c | 4 +-
arch/arm64/kernel/ptrace.c | 6 +-
arch/arm64/kernel/relocate_kernel.S | 69 +-
arch/arm64/kernel/sdei.c | 2 +-
arch/arm64/kernel/signal.c | 8 +-
arch/arm64/kernel/smp.c | 34 +-
arch/arm64/kernel/stacktrace.c | 7 +
arch/arm64/kernel/topology.c | 2 +
arch/arm64/kernel/traps.c | 24 +-
arch/arm64/kernel/vdso/Makefile | 2 +-
arch/arm64/kernel/vdso32/Makefile | 38 +-
arch/arm64/kernel/vmlinux.lds.S | 22 +-
arch/arm64/kvm/Kconfig | 10 +-
arch/arm64/kvm/arm.c | 107 +-
arch/arm64/kvm/guest.c | 7 +-
arch/arm64/kvm/hyp/fpsimd.S | 6 +-
arch/arm64/kvm/hyp/hyp-entry.S | 2 +-
arch/arm64/kvm/hyp/include/hyp/fault.h | 75 +
arch/arm64/kvm/hyp/include/hyp/switch.h | 245 +-
arch/arm64/kvm/hyp/include/nvhe/fixed_config.h | 200 +
arch/arm64/kvm/hyp/include/nvhe/gfp.h | 1 +
arch/arm64/kvm/hyp/include/nvhe/trap_handler.h | 2 +
arch/arm64/kvm/hyp/nvhe/Makefile | 2 +-
arch/arm64/kvm/hyp/nvhe/host.S | 26 +-
arch/arm64/kvm/hyp/nvhe/hyp-main.c | 48 +-
arch/arm64/kvm/hyp/nvhe/mem_protect.c | 24 +-
arch/arm64/kvm/hyp/nvhe/page_alloc.c | 15 +
arch/arm64/kvm/hyp/nvhe/pkvm.c | 185 +
arch/arm64/kvm/hyp/nvhe/setup.c | 17 +-
arch/arm64/kvm/hyp/nvhe/switch.c | 99 +
arch/arm64/kvm/hyp/nvhe/sys_regs.c | 487 +
arch/arm64/kvm/hyp/vgic-v3-sr.c | 22 +-
arch/arm64/kvm/hyp/vhe/switch.c | 16 +
arch/arm64/kvm/mmu.c | 8 +-
arch/arm64/kvm/pmu-emul.c | 2 +-
arch/arm64/kvm/reset.c | 8 +-
arch/arm64/kvm/sys_regs.c | 41 +-
arch/arm64/kvm/vgic/vgic-init.c | 2 +-
arch/arm64/kvm/vgic/vgic-irqfd.c | 2 +-
arch/arm64/kvm/vgic/vgic-its.c | 18 +-
arch/arm64/kvm/vgic/vgic-kvm-device.c | 25 +-
arch/arm64/kvm/vgic/vgic-mmio-v3.c | 8 +-
arch/arm64/kvm/vgic/vgic-v3.c | 27 +-
arch/arm64/kvm/vgic/vgic-v4.c | 2 +-
arch/arm64/kvm/vgic/vgic.h | 5 +-
arch/arm64/lib/Makefile | 2 +
arch/arm64/lib/clear_user.S | 10 +-
arch/arm64/lib/copy_from_user.S | 8 +-
arch/arm64/lib/copy_to_user.S | 8 +-
arch/arm64/mm/Makefile | 1 +
arch/arm64/mm/extable.c | 85 +-
arch/arm64/mm/hugetlbpage.c | 27 +-
arch/arm64/mm/init.c | 39 -
arch/arm64/mm/kasan_init.c | 23 +-
arch/arm64/mm/mmu.c | 12 +-
arch/arm64/mm/trans_pgd-asm.S | 65 +
arch/arm64/mm/trans_pgd.c | 84 +-
arch/arm64/net/bpf_jit_comp.c | 14 +-
arch/arm64/tools/cpucaps | 5 +
arch/arm64/xen/hypercall.S | 1 -
arch/csky/Kbuild | 3 +
arch/csky/Kconfig | 1 -
arch/csky/Makefile | 3 -
arch/csky/include/asm/kprobes.h | 2 +-
arch/csky/include/asm/processor.h | 2 +-
arch/csky/include/asm/syscall.h | 9 -
arch/csky/kernel/entry.S | 2 +-
arch/csky/kernel/ftrace.c | 5 -
arch/csky/kernel/irq.c | 5 -
arch/csky/kernel/probes/ftrace.c | 9 -
arch/csky/kernel/probes/kprobes.c | 14 +-
arch/csky/kernel/probes/kprobes_trampoline.S | 4 +-
arch/csky/kernel/smp.c | 6 +-
arch/csky/kernel/stacktrace.c | 5 +-
arch/h8300/Kbuild | 3 +
arch/h8300/Makefile | 3 -
arch/h8300/include/asm/irq.h | 2 -
arch/h8300/include/asm/processor.h | 2 +-
arch/h8300/kernel/irq.c | 1 +
arch/h8300/kernel/process.c | 5 +-
arch/hexagon/include/asm/processor.h | 2 +-
arch/hexagon/kernel/process.c | 4 +-
arch/ia64/Kconfig.debug | 2 +-
arch/ia64/Makefile | 2 -
arch/ia64/include/asm/processor.h | 2 +-
arch/ia64/include/asm/ptrace.h | 9 +-
arch/ia64/include/asm/spinlock.h | 23 +-
arch/ia64/include/asm/syscall.h | 17 +-
arch/ia64/kernel/audit.c | 10 +-
arch/ia64/kernel/ftrace.c | 6 -
arch/ia64/kernel/kprobes.c | 15 +-
arch/ia64/kernel/process.c | 5 +-
arch/ia64/kernel/ptrace.c | 31 +-
arch/ia64/mm/contig.c | 2 +-
arch/ia64/mm/init.c | 2 +-
arch/m68k/Kconfig.cpu | 11 -
arch/m68k/Kconfig.machine | 1 +
arch/m68k/Makefile | 4 +-
arch/m68k/configs/amiga_defconfig | 7 +-
arch/m68k/configs/apollo_defconfig | 7 +-
arch/m68k/configs/atari_defconfig | 7 +-
arch/m68k/configs/bvme6000_defconfig | 7 +-
arch/m68k/configs/hp300_defconfig | 7 +-
arch/m68k/configs/mac_defconfig | 7 +-
arch/m68k/configs/multi_defconfig | 7 +-
arch/m68k/configs/mvme147_defconfig | 7 +-
arch/m68k/configs/mvme16x_defconfig | 7 +-
arch/m68k/configs/q40_defconfig | 7 +-
arch/m68k/configs/sun3_defconfig | 7 +-
arch/m68k/configs/sun3x_defconfig | 7 +-
arch/m68k/emu/nfblock.c | 12 +-
arch/m68k/emu/nfeth.c | 2 +-
arch/m68k/include/asm/bitops.h | 2 +-
arch/m68k/include/asm/cacheflush_mm.h | 1 +
arch/m68k/include/asm/processor.h | 2 +-
arch/m68k/kernel/process.c | 4 +-
arch/m68k/kernel/traps.c | 2 +-
arch/m68k/lib/muldi3.c | 2 +-
arch/m68k/mm/mcfmmu.c | 3 +-
arch/m68k/mm/motorola.c | 6 +-
arch/microblaze/Kbuild | 3 +
arch/microblaze/Makefile | 3 -
arch/microblaze/boot/dts/system.dts | 5 -
arch/microblaze/include/asm/processor.h | 2 +-
arch/microblaze/include/asm/syscall.h | 33 -
arch/microblaze/kernel/ftrace.c | 5 -
arch/microblaze/kernel/process.c | 2 +-
arch/microblaze/mm/pgtable.c | 3 +-
arch/microblaze/pci/pci-common.c | 3 +-
arch/mips/Kbuild | 3 +
arch/mips/Kbuild.platforms | 3 +-
arch/mips/Kconfig | 114 +-
arch/mips/Makefile | 10 +-
arch/mips/alchemy/devboards/db1550.c | 1 +
arch/mips/boot/Makefile | 3 +
arch/mips/boot/compressed/.gitignore | 3 -
arch/mips/boot/compressed/Makefile | 12 +-
arch/mips/boot/compressed/ashldi3.c | 2 +
arch/mips/boot/compressed/bswapdi.c | 2 +
arch/mips/boot/compressed/bswapsi.c | 2 +
arch/mips/boot/compressed/uart-16550.c | 12 -
arch/mips/boot/compressed/uart-ath79.c | 2 +
arch/mips/boot/dts/Makefile | 1 -
arch/mips/boot/dts/ingenic/ci20.dts | 9 +-
arch/mips/boot/dts/ingenic/jz4725b.dtsi | 2 +-
arch/mips/boot/dts/ingenic/jz4740.dtsi | 2 +-
arch/mips/boot/dts/ingenic/jz4770.dtsi | 2 +-
arch/mips/boot/dts/ingenic/jz4780.dtsi | 46 +-
arch/mips/boot/dts/ingenic/x1000.dtsi | 2 +-
arch/mips/boot/dts/ingenic/x1830.dtsi | 2 +-
arch/mips/boot/dts/netlogic/Makefile | 8 -
arch/mips/boot/dts/netlogic/xlp_evp.dts | 131 -
arch/mips/boot/dts/netlogic/xlp_fvp.dts | 131 -
arch/mips/boot/dts/netlogic/xlp_gvp.dts | 89 -
arch/mips/boot/dts/netlogic/xlp_rvp.dts | 89 -
arch/mips/boot/dts/netlogic/xlp_svp.dts | 131 -
arch/mips/cavium-octeon/executive/cvmx-helper.c | 10 -
arch/mips/cavium-octeon/executive/cvmx-pko.c | 14 -
arch/mips/cavium-octeon/octeon-irq.c | 5 +-
arch/mips/configs/bmips_stb_defconfig | 155 +-
arch/mips/configs/loongson3_defconfig | 1 +
arch/mips/configs/nlm_xlp_defconfig | 557 -
arch/mips/configs/nlm_xlr_defconfig | 508 -
arch/mips/dec/setup.c | 6 +-
arch/mips/include/asm/cacheflush.h | 2 +
arch/mips/include/asm/cmpxchg.h | 5 +-
arch/mips/include/asm/cop2.h | 11 -
arch/mips/include/asm/cpu-type.h | 8 -
arch/mips/include/asm/cpu.h | 2 +-
arch/mips/include/asm/ginvt.h | 11 +-
arch/mips/include/asm/hazards.h | 2 +-
arch/mips/include/asm/mach-lantiq/xway/xway_dma.h | 2 +-
.../include/asm/mach-loongson64/loongson_regs.h | 12 +
.../asm/mach-netlogic/cpu-feature-overrides.h | 57 -
arch/mips/include/asm/mach-netlogic/irq.h | 17 -
arch/mips/include/asm/mach-netlogic/multi-node.h | 74 -
arch/mips/include/asm/mach-ralink/spaces.h | 4 +-
arch/mips/include/asm/mips-cm.h | 12 +-
arch/mips/include/asm/mipsregs.h | 190 +-
arch/mips/include/asm/msa.h | 34 +-
arch/mips/include/asm/netlogic/common.h | 132 -
arch/mips/include/asm/netlogic/haldefs.h | 171 -
arch/mips/include/asm/netlogic/interrupt.h | 45 -
arch/mips/include/asm/netlogic/mips-extns.h | 301 -
arch/mips/include/asm/netlogic/psb-bootinfo.h | 95 -
arch/mips/include/asm/netlogic/xlp-hal/bridge.h | 186 -
.../mips/include/asm/netlogic/xlp-hal/cpucontrol.h | 89 -
arch/mips/include/asm/netlogic/xlp-hal/iomap.h | 214 -
arch/mips/include/asm/netlogic/xlp-hal/pcibus.h | 113 -
arch/mips/include/asm/netlogic/xlp-hal/pic.h | 366 -
arch/mips/include/asm/netlogic/xlp-hal/sys.h | 213 -
arch/mips/include/asm/netlogic/xlp-hal/uart.h | 192 -
arch/mips/include/asm/netlogic/xlp-hal/xlp.h | 119 -
arch/mips/include/asm/netlogic/xlr/bridge.h | 104 -
arch/mips/include/asm/netlogic/xlr/flash.h | 55 -
arch/mips/include/asm/netlogic/xlr/fmn.h | 365 -
arch/mips/include/asm/netlogic/xlr/gpio.h | 74 -
arch/mips/include/asm/netlogic/xlr/iomap.h | 109 -
arch/mips/include/asm/netlogic/xlr/msidef.h | 84 -
arch/mips/include/asm/netlogic/xlr/pic.h | 306 -
arch/mips/include/asm/netlogic/xlr/xlr.h | 59 -
arch/mips/include/asm/octeon/cvmx-helper.h | 7 -
arch/mips/include/asm/octeon/cvmx-pko.h | 1 -
arch/mips/include/asm/pci.h | 4 +
arch/mips/include/asm/pgtable.h | 45 +-
arch/mips/include/asm/processor.h | 15 +-
arch/mips/include/asm/traps.h | 2 +-
arch/mips/include/asm/uasm.h | 5 +
arch/mips/include/asm/vermagic.h | 4 -
arch/mips/include/uapi/asm/socket.h | 2 +
arch/mips/kernel/cpu-probe.c | 84 -
arch/mips/kernel/idle.c | 2 -
arch/mips/kernel/irq.c | 8 +-
arch/mips/kernel/kprobes.c | 26 +-
arch/mips/kernel/mips-cm.c | 21 +-
arch/mips/kernel/perf_event_mipsxx.c | 86 -
arch/mips/kernel/proc.c | 227 +-
arch/mips/kernel/process.c | 8 +-
arch/mips/kernel/r2300_fpu.S | 4 +-
arch/mips/kernel/smp-bmips.c | 3 +-
arch/mips/kernel/syscall.c | 9 -
arch/mips/kernel/traps.c | 8 +-
arch/mips/kernel/uprobes.c | 1 +
arch/mips/kvm/entry.c | 8 +-
arch/mips/kvm/mips.c | 2 +-
arch/mips/lantiq/xway/dma.c | 57 +-
arch/mips/loongson64/init.c | 5 +-
arch/mips/loongson64/smp.c | 1 -
arch/mips/mm/c-r4k.c | 2 -
arch/mips/mm/init.c | 2 +-
arch/mips/mm/tlbex.c | 9 +-
arch/mips/mm/uasm-mips.c | 4 +-
arch/mips/mm/uasm.c | 3 +-
arch/mips/net/Makefile | 9 +-
arch/mips/net/bpf_jit.c | 1299 -
arch/mips/net/bpf_jit.h | 81 -
arch/mips/net/bpf_jit_asm.S | 285 -
arch/mips/net/bpf_jit_comp.c | 1034 +
arch/mips/net/bpf_jit_comp.h | 235 +
arch/mips/net/bpf_jit_comp32.c | 1899 +
arch/mips/net/bpf_jit_comp64.c | 1060 +
arch/mips/net/ebpf_jit.c | 1938 -
arch/mips/netlogic/Kconfig | 86 -
arch/mips/netlogic/Makefile | 4 -
arch/mips/netlogic/Platform | 16 -
arch/mips/netlogic/common/Makefile | 5 -
arch/mips/netlogic/common/earlycons.c | 63 -
arch/mips/netlogic/common/irq.c | 350 -
arch/mips/netlogic/common/reset.S | 299 -
arch/mips/netlogic/common/smp.c | 285 -
arch/mips/netlogic/common/smpboot.S | 141 -
arch/mips/netlogic/common/time.c | 110 -
arch/mips/netlogic/xlp/Makefile | 11 -
arch/mips/netlogic/xlp/ahci-init-xlp2.c | 390 -
arch/mips/netlogic/xlp/ahci-init.c | 209 -
arch/mips/netlogic/xlp/cop2-ex.c | 121 -
arch/mips/netlogic/xlp/dt.c | 95 -
arch/mips/netlogic/xlp/nlm_hal.c | 508 -
arch/mips/netlogic/xlp/setup.c | 174 -
arch/mips/netlogic/xlp/usb-init-xlp2.c | 288 -
arch/mips/netlogic/xlp/usb-init.c | 149 -
arch/mips/netlogic/xlp/wakeup.c | 212 -
arch/mips/netlogic/xlr/Makefile | 3 -
arch/mips/netlogic/xlr/fmn-config.c | 296 -
arch/mips/netlogic/xlr/fmn.c | 199 -
arch/mips/netlogic/xlr/platform-flash.c | 216 -
arch/mips/netlogic/xlr/platform.c | 250 -
arch/mips/netlogic/xlr/setup.c | 206 -
arch/mips/netlogic/xlr/wakeup.c | 85 -
arch/mips/pci/Makefile | 3 -
arch/mips/pci/fixup-cobalt.c | 15 +
arch/mips/pci/msi-xlp.c | 571 -
arch/mips/pci/pci-bcm47xx.c | 16 +-
arch/mips/pci/pci-generic.c | 14 +
arch/mips/pci/pci-xlp.c | 332 -
arch/mips/pci/pci-xlr.c | 368 -
arch/mips/ralink/Kconfig | 3 +-
arch/mips/rb532/prom.c | 1 -
arch/mips/sgi-ip22/ip22-berr.c | 2 +-
arch/mips/sgi-ip22/ip28-berr.c | 2 +-
arch/mips/sgi-ip27/ip27-berr.c | 2 +-
arch/mips/sgi-ip27/ip27-memory.c | 3 +-
arch/mips/sgi-ip30/ip30-setup.c | 6 +-
arch/mips/sgi-ip32/ip32-berr.c | 2 +-
arch/mips/sibyte/common/cfe.c | 1 -
arch/mips/sibyte/swarm/setup.c | 3 +-
arch/mips/sni/time.c | 4 +-
arch/mips/txx9/generic/setup_tx4927.c | 2 +-
arch/mips/txx9/generic/setup_tx4938.c | 2 +-
arch/mips/txx9/generic/setup_tx4939.c | 2 +-
arch/mips/vdso/Makefile | 2 +-
arch/nds32/Kbuild | 3 +
arch/nds32/Kconfig | 1 -
arch/nds32/Makefile | 5 +-
arch/nds32/include/asm/cacheflush.h | 1 +
arch/nds32/include/asm/processor.h | 2 +-
arch/nds32/include/asm/syscall.h | 22 -
arch/nds32/kernel/ftrace.c | 7 +-
arch/nds32/kernel/process.c | 7 +-
arch/nds32/kernel/traps.c | 2 +-
arch/nds32/mm/fault.c | 6 +-
arch/nios2/Kbuild | 3 +
arch/nios2/Makefile | 9 +-
arch/nios2/boot/Makefile | 3 -
arch/nios2/include/asm/cacheflush.h | 3 +-
arch/nios2/include/asm/irqflags.h | 4 +-
arch/nios2/include/asm/processor.h | 2 +-
arch/nios2/include/asm/registers.h | 2 +-
arch/nios2/include/asm/syscall.h | 11 -
arch/nios2/kernel/process.c | 5 +-
arch/nios2/platform/Kconfig.platform | 1 +
arch/openrisc/Kbuild | 3 +
arch/openrisc/Kconfig | 1 -
arch/openrisc/Makefile | 7 +-
arch/openrisc/include/asm/processor.h | 2 +-
arch/openrisc/include/asm/spinlock.h | 3 -
arch/openrisc/include/asm/syscall.h | 7 -
arch/openrisc/kernel/dma.c | 4 +-
arch/openrisc/kernel/entry.S | 4 +-
arch/openrisc/kernel/irq.c | 5 -
arch/openrisc/kernel/process.c | 2 +-
arch/openrisc/kernel/signal.c | 2 -
arch/openrisc/kernel/smp.c | 12 +-
arch/openrisc/kernel/time.c | 2 +-
arch/openrisc/kernel/traps.c | 2 +-
arch/openrisc/mm/fault.c | 4 +-
arch/openrisc/mm/init.c | 1 -
arch/parisc/Kbuild | 3 +
arch/parisc/Kconfig | 22 +-
arch/parisc/Makefile | 7 +-
arch/parisc/boot/compressed/Makefile | 9 +-
arch/parisc/configs/generic-32bit_defconfig | 9 +-
arch/parisc/configs/generic-64bit_defconfig | 21 +-
arch/parisc/include/asm/assembly.h | 32 +
arch/parisc/include/asm/bitops.h | 10 -
arch/parisc/include/asm/cacheflush.h | 3 +-
arch/parisc/include/asm/current.h | 19 +
arch/parisc/include/asm/futex.h | 27 +-
arch/parisc/include/asm/ide.h | 4 -
arch/parisc/include/asm/kfence.h | 44 +
arch/parisc/include/asm/mckinley.h | 2 -
arch/parisc/include/asm/pdc.h | 2 +
arch/parisc/include/asm/pgtable.h | 10 +-
arch/parisc/include/asm/processor.h | 13 +-
arch/parisc/include/asm/ptrace.h | 6 +-
arch/parisc/include/asm/runway.h | 2 -
arch/parisc/include/asm/smp.h | 4 +-
arch/parisc/include/asm/spinlock.h | 15 -
arch/parisc/include/asm/thread_info.h | 15 +-
arch/parisc/include/asm/traps.h | 1 +
arch/parisc/include/asm/unaligned.h | 2 -
arch/parisc/include/uapi/asm/pdc.h | 28 +-
arch/parisc/include/uapi/asm/socket.h | 2 +
arch/parisc/kernel/Makefile | 1 +
arch/parisc/kernel/asm-offsets.c | 29 +-
arch/parisc/kernel/audit.c | 10 +-
arch/parisc/kernel/cache.c | 91 +-
arch/parisc/kernel/compat_audit.c | 11 +-
arch/parisc/kernel/entry.S | 92 +-
arch/parisc/kernel/firmware.c | 32 +
arch/parisc/kernel/ftrace.c | 27 +-
arch/parisc/kernel/head.S | 40 +-
arch/parisc/kernel/irq.c | 6 +-
arch/parisc/kernel/kprobes.c | 6 +-
arch/parisc/kernel/pdt.c | 4 +-
arch/parisc/kernel/process.c | 9 +-
arch/parisc/kernel/smp.c | 25 +-
arch/parisc/kernel/stacktrace.c | 31 +-
arch/parisc/kernel/sys_parisc.c | 10 +-
arch/parisc/kernel/syscall.S | 36 +-
arch/parisc/kernel/toc.c | 111 +
arch/parisc/kernel/toc_asm.S | 88 +
arch/parisc/kernel/traps.c | 9 +-
arch/parisc/kernel/unwind.c | 34 +-
arch/parisc/kernel/vmlinux.lds.S | 3 +-
arch/parisc/lib/bitops.c | 12 +-
arch/parisc/mm/fault.c | 2 +-
arch/parisc/mm/fixmap.c | 5 +-
arch/parisc/mm/init.c | 10 +-
arch/powerpc/Kbuild | 3 +
arch/powerpc/Kconfig | 20 +-
arch/powerpc/Makefile | 18 +-
arch/powerpc/boot/Makefile | 2 +-
arch/powerpc/boot/dts/a4m072.dts | 6 +-
arch/powerpc/boot/dts/charon.dts | 8 +-
arch/powerpc/boot/dts/digsy_mtc.dts | 8 +-
arch/powerpc/boot/dts/lite5200.dts | 8 +-
arch/powerpc/boot/dts/lite5200b.dts | 8 +-
arch/powerpc/boot/dts/media5200.dts | 8 +-
arch/powerpc/boot/dts/mpc5200b.dtsi | 6 +-
arch/powerpc/boot/dts/mucmc52.dts | 6 +-
arch/powerpc/boot/dts/o2d.dts | 2 +-
arch/powerpc/boot/dts/o2d.dtsi | 2 +-
arch/powerpc/boot/dts/o2dnt2.dts | 2 +-
arch/powerpc/boot/dts/o3dnt.dts | 2 +-
arch/powerpc/boot/dts/pcm030.dts | 6 +-
arch/powerpc/boot/dts/pcm032.dts | 8 +-
arch/powerpc/boot/dts/tqm5200.dts | 8 +-
arch/powerpc/boot/serial.c | 2 +-
arch/powerpc/boot/wrapper | 2 +
arch/powerpc/configs/cell_defconfig | 1 -
arch/powerpc/configs/g5_defconfig | 1 +
arch/powerpc/configs/maple_defconfig | 1 +
arch/powerpc/configs/microwatt_defconfig | 1 +
arch/powerpc/configs/pasemi_defconfig | 1 -
arch/powerpc/configs/powernv_defconfig | 1 -
arch/powerpc/configs/ppc64_defconfig | 1 -
arch/powerpc/configs/ps3_defconfig | 1 +
arch/powerpc/configs/pseries_defconfig | 1 -
arch/powerpc/configs/skiroot_defconfig | 2 -
arch/powerpc/include/asm/asm-const.h | 2 -
arch/powerpc/include/asm/atomic.h | 8 +-
arch/powerpc/include/asm/book3s/64/hash.h | 2 +
arch/powerpc/include/asm/book3s/64/pgtable.h | 10 +
arch/powerpc/include/asm/book3s/64/radix.h | 3 +
arch/powerpc/include/asm/io.h | 4 +-
arch/powerpc/include/asm/iommu.h | 6 -
arch/powerpc/include/asm/kexec.h | 1 -
arch/powerpc/include/asm/kprobes.h | 2 +-
arch/powerpc/include/asm/kvm_book3s.h | 2 +-
arch/powerpc/include/asm/kvm_book3s_64.h | 4 +
arch/powerpc/include/asm/kvm_host.h | 6 +-
arch/powerpc/include/asm/machdep.h | 15 +-
arch/powerpc/include/asm/mem_encrypt.h | 5 -
arch/powerpc/include/asm/nohash/32/pgtable.h | 21 +-
arch/powerpc/include/asm/nohash/32/pte-8xx.h | 22 +
arch/powerpc/include/asm/nohash/64/pgtable.h | 5 -
arch/powerpc/include/asm/nohash/pte-book3e.h | 18 +-
arch/powerpc/include/asm/nohash/tlbflush.h | 15 +
arch/powerpc/include/asm/paravirt.h | 40 +-
arch/powerpc/include/asm/pgtable-types.h | 18 +-
arch/powerpc/include/asm/ppc-pci.h | 5 -
arch/powerpc/include/asm/ppc_asm.h | 4 +-
arch/powerpc/include/asm/processor.h | 2 +-
arch/powerpc/include/asm/sections.h | 13 -
arch/powerpc/include/asm/simple_spinlock.h | 21 -
arch/powerpc/include/asm/smp.h | 17 +-
arch/powerpc/include/asm/static_call.h | 28 +
arch/powerpc/include/asm/syscall.h | 10 -
arch/powerpc/include/asm/thread_info.h | 3 +
arch/powerpc/include/asm/uaccess.h | 6 +-
arch/powerpc/include/uapi/asm/perf_regs.h | 28 +-
arch/powerpc/kernel/Makefile | 2 +-
arch/powerpc/kernel/align.c | 1 +
arch/powerpc/kernel/asm-offsets.c | 4 +-
arch/powerpc/kernel/audit.c | 12 +-
arch/powerpc/kernel/compat_audit.c | 13 +-
arch/powerpc/kernel/dt_cpu_ftrs.c | 4 +-
arch/powerpc/kernel/eeh.c | 20 +-
arch/powerpc/kernel/eeh_driver.c | 10 +-
arch/powerpc/kernel/firmware.c | 7 +-
arch/powerpc/kernel/head_8xx.S | 2 +-
arch/powerpc/kernel/head_booke.h | 15 +-
arch/powerpc/kernel/hw_breakpoint_constraints.c | 15 +-
arch/powerpc/kernel/idle_book3s.S | 10 +-
arch/powerpc/kernel/interrupt.c | 2 +-
arch/powerpc/kernel/kprobes-ftrace.c | 2 -
arch/powerpc/kernel/kprobes.c | 29 +-
arch/powerpc/kernel/kvm.c | 3 +-
arch/powerpc/kernel/optprobes.c | 8 +-
arch/powerpc/kernel/paca.c | 8 +-
arch/powerpc/kernel/pci-common.c | 2 +-
arch/powerpc/kernel/process.c | 9 +-
arch/powerpc/kernel/setup-common.c | 5 +-
arch/powerpc/kernel/setup_64.c | 4 +-
arch/powerpc/kernel/signal_32.c | 10 +-
arch/powerpc/kernel/signal_64.c | 11 +-
arch/powerpc/kernel/smp.c | 11 +-
arch/powerpc/kernel/stacktrace.c | 2 +-
arch/powerpc/kernel/static_call.c | 37 +
arch/powerpc/kernel/swsusp_64.c | 5 -
arch/powerpc/kernel/swsusp_asm64.S | 1 -
arch/powerpc/kernel/sysfs.c | 3 +-
arch/powerpc/kernel/time.c | 22 +-
arch/powerpc/kernel/vmlinux.lds.S | 12 +-
arch/powerpc/kexec/core.c | 13 -
arch/powerpc/kexec/core_32.c | 2 +-
arch/powerpc/kexec/core_64.c | 2 +-
arch/powerpc/kexec/file_load_64.c | 1 +
arch/powerpc/kvm/book3s_64_vio.c | 3 +-
arch/powerpc/kvm/book3s_hv.c | 30 +-
arch/powerpc/kvm/book3s_hv_rm_mmu.c | 9 +
arch/powerpc/kvm/book3s_hv_uvmem.c | 4 +-
arch/powerpc/kvm/book3s_xive.c | 2 +-
arch/powerpc/kvm/booke.c | 16 +-
arch/powerpc/kvm/powerpc.c | 6 +-
arch/powerpc/lib/Makefile | 2 +
arch/powerpc/lib/feature-fixups.c | 11 +
arch/powerpc/lib/sstep.c | 197 +-
arch/powerpc/mm/book3s64/hash_utils.c | 2 +-
arch/powerpc/mm/book3s64/radix_pgtable.c | 7 +
arch/powerpc/mm/hugetlbpage.c | 9 +-
arch/powerpc/mm/mem.c | 4 +-
arch/powerpc/mm/mmu_decl.h | 4 +-
arch/powerpc/mm/nohash/Makefile | 4 +-
arch/powerpc/mm/nohash/fsl_book3e.c | 379 +
arch/powerpc/mm/nohash/fsl_booke.c | 333 -
arch/powerpc/mm/nohash/kaslr_booke.c | 2 +-
arch/powerpc/mm/nohash/tlb.c | 6 +-
arch/powerpc/mm/nohash/tlb_low.S | 8 +-
arch/powerpc/mm/nohash/tlb_low_64e.S | 8 +-
arch/powerpc/mm/pgtable.c | 2 +-
arch/powerpc/mm/pgtable_32.c | 9 +-
arch/powerpc/net/bpf_jit_comp.c | 2 +-
arch/powerpc/perf/isa207-common.c | 26 +-
arch/powerpc/perf/isa207-common.h | 2 +
arch/powerpc/perf/perf_regs.c | 4 +
arch/powerpc/perf/power10-events-list.h | 8 +-
arch/powerpc/perf/power10-pmu.c | 44 +-
arch/powerpc/platforms/44x/fsp2.c | 2 +
arch/powerpc/platforms/44x/ppc476.c | 4 +-
arch/powerpc/platforms/83xx/mcu_mpc8349emitx.c | 7 +-
arch/powerpc/platforms/85xx/Makefile | 4 +-
arch/powerpc/platforms/85xx/mpc85xx_pm_ops.c | 7 +-
arch/powerpc/platforms/85xx/smp.c | 12 +-
arch/powerpc/platforms/book3s/vas-api.c | 4 +-
arch/powerpc/platforms/cell/spufs/inode.c | 1 +
arch/powerpc/platforms/powermac/pmac.h | 1 -
arch/powerpc/platforms/powermac/setup.c | 2 -
arch/powerpc/platforms/powernv/ocxl.c | 3 +-
arch/powerpc/platforms/powernv/opal-dump.c | 2 +-
arch/powerpc/platforms/powernv/opal-prd.c | 12 +-
arch/powerpc/platforms/powernv/pci-ioda.c | 2 +-
arch/powerpc/platforms/powernv/pci-sriov.c | 8 +-
arch/powerpc/platforms/powernv/setup.c | 4 +-
arch/powerpc/platforms/pseries/Kconfig | 1 +
arch/powerpc/platforms/pseries/Makefile | 2 +
arch/powerpc/platforms/pseries/cc_platform.c | 26 +
arch/powerpc/platforms/pseries/hotplug-cpu.c | 298 +-
arch/powerpc/platforms/pseries/iommu.c | 41 +-
arch/powerpc/platforms/pseries/mobility.c | 34 +
arch/powerpc/platforms/pseries/setup.c | 5 +-
arch/powerpc/platforms/pseries/svm.c | 8 +-
arch/powerpc/sysdev/dcr-low.S | 2 +-
arch/powerpc/xmon/xmon.c | 3 +-
arch/riscv/Kbuild | 3 +
arch/riscv/Kconfig | 10 +-
arch/riscv/Makefile | 16 +-
.../dts/microchip/microchip-mpfs-icicle-kit.dts | 18 +-
arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi | 40 +-
arch/riscv/boot/dts/sifive/fu540-c000.dtsi | 2 +-
.../riscv/boot/dts/sifive/hifive-unleashed-a00.dts | 10 +-
.../riscv/boot/dts/sifive/hifive-unmatched-a00.dts | 7 +-
arch/riscv/configs/32-bit.config | 2 +
arch/riscv/configs/64-bit.config | 2 +
arch/riscv/configs/defconfig | 7 +-
arch/riscv/include/asm/csr.h | 87 +
arch/riscv/include/asm/kasan.h | 3 +-
arch/riscv/include/asm/kprobes.h | 2 +-
arch/riscv/include/asm/kvm_host.h | 264 +
arch/riscv/include/asm/kvm_types.h | 7 +
arch/riscv/include/asm/kvm_vcpu_fp.h | 59 +
arch/riscv/include/asm/kvm_vcpu_timer.h | 44 +
arch/riscv/include/asm/page.h | 2 +
arch/riscv/include/asm/pgtable.h | 6 +-
arch/riscv/include/asm/processor.h | 2 +-
arch/riscv/include/asm/syscall.h | 9 -
arch/riscv/include/asm/vdso.h | 13 +-
arch/riscv/include/asm/vdso/gettimeofday.h | 7 +
arch/riscv/include/uapi/asm/kvm.h | 128 +
arch/riscv/kernel/asm-offsets.c | 157 +-
arch/riscv/kernel/cpu.c | 3 +-
arch/riscv/kernel/entry.S | 8 +-
arch/riscv/kernel/ftrace.c | 5 -
arch/riscv/kernel/head.S | 14 +-
arch/riscv/kernel/probes/ftrace.c | 2 -
arch/riscv/kernel/probes/kprobes.c | 15 +-
arch/riscv/kernel/probes/kprobes_trampoline.S | 4 +-
arch/riscv/kernel/reset.c | 12 +-
arch/riscv/kernel/setup.c | 4 +-
arch/riscv/kernel/smp.c | 9 +-
arch/riscv/kernel/stacktrace.c | 12 +-
arch/riscv/kernel/vdso.c | 250 +-
arch/riscv/kernel/vdso/vdso.lds.S | 3 +
arch/riscv/kernel/vmlinux-xip.lds.S | 10 +-
arch/riscv/kvm/Kconfig | 35 +
arch/riscv/kvm/Makefile | 26 +
arch/riscv/kvm/main.c | 118 +
arch/riscv/kvm/mmu.c | 802 +
arch/riscv/kvm/tlb.S | 74 +
arch/riscv/kvm/vcpu.c | 825 +
arch/riscv/kvm/vcpu_exit.c | 701 +
arch/riscv/kvm/vcpu_fp.c | 167 +
arch/riscv/kvm/vcpu_sbi.c | 185 +
arch/riscv/kvm/vcpu_switch.S | 400 +
arch/riscv/kvm/vcpu_timer.c | 225 +
arch/riscv/kvm/vm.c | 97 +
arch/riscv/kvm/vmid.c | 120 +
arch/riscv/lib/delay.c | 4 +
arch/riscv/mm/context.c | 8 +-
arch/riscv/mm/extable.c | 19 +-
arch/riscv/mm/init.c | 7 +-
arch/riscv/mm/kasan_init.c | 14 +-
arch/riscv/net/bpf_jit.h | 1 +
arch/riscv/net/bpf_jit_comp64.c | 187 +-
arch/riscv/net/bpf_jit_core.c | 29 +-
arch/s390/Kbuild | 3 +
arch/s390/Kconfig | 26 +
arch/s390/Makefile | 8 +-
arch/s390/boot/compressed/decompressor.h | 1 +
arch/s390/boot/head.S | 54 +-
arch/s390/boot/ipl_parm.c | 4 +-
arch/s390/boot/pgm_check_info.c | 4 +-
arch/s390/boot/startup.c | 8 +
arch/s390/configs/debug_defconfig | 9 +-
arch/s390/configs/defconfig | 6 +
arch/s390/include/asm/barrier.h | 24 +-
arch/s390/include/asm/bitops.h | 2 +-
arch/s390/include/asm/cpu.h | 3 +
arch/s390/include/asm/debug.h | 2 +-
arch/s390/include/asm/facility.h | 4 +
arch/s390/include/asm/ftrace.h | 58 +-
arch/s390/include/asm/jump_label.h | 2 +
arch/s390/include/asm/kdebug.h | 2 +-
arch/s390/include/asm/kprobes.h | 2 +-
arch/s390/include/asm/livepatch.h | 4 +-
arch/s390/include/asm/lowcore.h | 9 +-
arch/s390/include/asm/mem_encrypt.h | 2 -
arch/s390/include/asm/nospec-branch.h | 5 +
arch/s390/include/asm/pci.h | 6 +-
arch/s390/include/asm/pgtable.h | 21 +-
arch/s390/include/asm/processor.h | 2 +-
arch/s390/include/asm/ptrace.h | 23 +-
arch/s390/include/asm/qdio.h | 2 -
arch/s390/include/asm/sclp.h | 1 +
arch/s390/include/asm/sections.h | 12 -
arch/s390/include/asm/setup.h | 9 +-
arch/s390/include/asm/spinlock.h | 8 -
arch/s390/include/asm/string.h | 4 -
arch/s390/include/asm/syscall.h | 12 -
arch/s390/include/asm/text-patching.h | 16 +
arch/s390/include/asm/thread_info.h | 1 +
arch/s390/include/asm/uv.h | 15 +-
arch/s390/include/uapi/asm/setup.h | 13 -
arch/s390/kernel/alternative.c | 20 +
arch/s390/kernel/asm-offsets.c | 7 +-
arch/s390/kernel/audit.c | 12 +-
arch/s390/kernel/compat_audit.c | 13 +-
arch/s390/kernel/cpcmd.c | 6 +-
arch/s390/kernel/dumpstack.c | 4 +-
arch/s390/kernel/early.c | 3 +-
arch/s390/kernel/entry.S | 45 +-
arch/s390/kernel/entry.h | 1 +
arch/s390/kernel/ftrace.c | 101 +-
arch/s390/kernel/head64.S | 18 -
arch/s390/kernel/irq.c | 10 +-
arch/s390/kernel/jump_label.c | 34 +-
arch/s390/kernel/kprobes.c | 64 +-
arch/s390/kernel/machine_kexec_file.c | 35 +-
arch/s390/kernel/mcount.S | 64 +-
arch/s390/kernel/nospec-branch.c | 2 +-
arch/s390/kernel/nospec-sysfs.c | 2 +-
arch/s390/kernel/perf_cpum_cf.c | 232 +-
arch/s390/kernel/process.c | 6 +-
arch/s390/kernel/setup.c | 51 +-
arch/s390/kernel/smp.c | 4 +-
arch/s390/kernel/stacktrace.c | 2 +-
arch/s390/kernel/syscall.c | 2 +
arch/s390/kernel/traps.c | 12 +-
arch/s390/kernel/uv.c | 67 +-
arch/s390/kernel/vmlinux.lds.S | 1 +
arch/s390/kvm/gaccess.c | 12 +
arch/s390/kvm/intercept.c | 9 +-
arch/s390/kvm/interrupt.c | 7 +-
arch/s390/kvm/kvm-s390.c | 8 +-
arch/s390/kvm/kvm-s390.h | 9 +
arch/s390/kvm/priv.c | 2 +
arch/s390/kvm/pv.c | 21 +-
arch/s390/kvm/sigp.c | 14 +-
arch/s390/lib/Makefile | 2 +
arch/s390/lib/spinlock.c | 2 +-
arch/s390/lib/string.c | 48 +-
arch/s390/lib/test_kprobes.c | 75 +
arch/s390/lib/test_kprobes.h | 10 +
arch/s390/lib/test_kprobes_asm.S | 45 +
arch/s390/lib/test_unwind.c | 169 +-
arch/s390/mm/cmm.c | 11 +-
arch/s390/mm/dump_pagetables.c | 14 +-
arch/s390/mm/fault.c | 2 -
arch/s390/mm/gmap.c | 15 +-
arch/s390/mm/init.c | 3 -
arch/s390/mm/kasan_init.c | 2 +-
arch/s390/mm/pageattr.c | 4 +-
arch/s390/mm/pgtable.c | 109 +-
arch/s390/mm/vmem.c | 10 +-
arch/s390/net/bpf_jit_comp.c | 6 +-
arch/s390/pci/pci.c | 150 +-
arch/s390/pci/pci_dma.c | 25 +-
arch/s390/pci/pci_event.c | 234 +-
arch/s390/pci/pci_insn.c | 4 +-
arch/s390/pci/pci_irq.c | 9 +
arch/s390/pci/pci_sysfs.c | 8 +
arch/sh/Kbuild | 3 +
arch/sh/Kconfig | 1 -
arch/sh/Kconfig.debug | 1 +
arch/sh/Makefile | 4 -
arch/sh/boards/mach-ap325rxa/setup.c | 2 +-
arch/sh/boards/mach-ecovec24/setup.c | 4 +-
arch/sh/boards/mach-kfr2r09/setup.c | 2 +-
arch/sh/boards/mach-landisk/irq.c | 4 +-
arch/sh/boards/mach-migor/setup.c | 2 +-
arch/sh/boards/mach-se/7724/setup.c | 4 +-
arch/sh/boards/of-generic.c | 5 +-
arch/sh/boot/Makefile | 4 +-
arch/sh/boot/compressed/.gitignore | 5 -
arch/sh/boot/compressed/Makefile | 32 +-
arch/sh/boot/compressed/ashiftrt.S | 2 +
arch/sh/boot/compressed/ashldi3.c | 2 +
arch/sh/boot/compressed/ashlsi3.S | 2 +
arch/sh/boot/compressed/ashrsi3.S | 2 +
arch/sh/boot/compressed/lshrsi3.S | 2 +
arch/sh/boot/compressed/misc.c | 3 +
arch/sh/boot/dts/j2_mimas_v2.dts | 2 +
arch/sh/configs/sdk7786_defconfig | 1 -
arch/sh/include/asm/cacheflush.h | 3 +-
arch/sh/include/asm/checksum_32.h | 5 +-
arch/sh/include/asm/irq.h | 11 -
arch/sh/include/asm/kprobes.h | 2 +-
arch/sh/include/asm/processor_32.h | 2 +-
arch/sh/include/asm/sfp-machine.h | 8 +
arch/sh/include/asm/syscall_32.h | 12 -
arch/sh/include/asm/uaccess.h | 4 +-
arch/sh/kernel/cpu/fpu.c | 10 +-
arch/sh/kernel/cpu/sh4a/smp-shx3.c | 5 +-
arch/sh/kernel/crash_dump.c | 4 +-
arch/sh/kernel/ftrace.c | 5 -
arch/sh/kernel/kprobes.c | 12 +-
arch/sh/kernel/process_32.c | 5 +-
arch/sh/kernel/traps.c | 2 +-
arch/sh/kernel/traps_32.c | 8 +-
arch/sh/math-emu/math.c | 147 +-
arch/sh/mm/fault.c | 2 -
arch/sh/mm/nommu.c | 4 +-
arch/sparc/Kbuild | 3 +
arch/sparc/Kconfig | 3 +-
arch/sparc/Makefile | 3 -
arch/sparc/boot/Makefile | 8 +-
arch/sparc/include/asm/kprobes.h | 2 +-
arch/sparc/include/asm/processor_32.h | 2 +-
arch/sparc/include/asm/processor_64.h | 2 +-
arch/sparc/include/asm/ptrace.h | 8 +-
arch/sparc/include/asm/syscall.h | 10 -
arch/sparc/include/uapi/asm/socket.h | 3 +
arch/sparc/kernel/audit.c | 12 +-
arch/sparc/kernel/compat_audit.c | 13 +-
arch/sparc/kernel/ftrace.c | 5 -
arch/sparc/kernel/ioport.c | 76 +-
arch/sparc/kernel/kprobes.c | 12 +-
arch/sparc/kernel/pci.c | 2 +-
arch/sparc/kernel/process_32.c | 5 +-
arch/sparc/kernel/process_64.c | 5 +-
arch/sparc/kernel/signal_32.c | 4 +-
arch/sparc/kernel/smp_64.c | 2 +-
arch/sparc/kernel/windows.c | 6 +-
arch/sparc/mm/fault_32.c | 1 -
arch/sparc/mm/tsb.c | 2 +-
arch/um/drivers/net_kern.c | 3 +-
arch/um/drivers/ubd_kern.c | 14 +-
arch/um/include/asm/processor-generic.h | 2 +-
arch/um/include/asm/syscall-generic.h | 14 -
arch/um/kernel/mem.c | 2 +-
arch/um/kernel/process.c | 5 +-
arch/um/kernel/trap.c | 2 +-
arch/um/kernel/um_arch.c | 4 +
arch/x86/Kbuild | 3 +
arch/x86/Kconfig | 45 +-
arch/x86/Kconfig.cpu | 13 +
arch/x86/Makefile | 4 +-
arch/x86/boot/compressed/kaslr.c | 4 -
arch/x86/boot/compressed/misc.c | 3 +
arch/x86/boot/compressed/misc.h | 4 +
arch/x86/boot/compressed/pgtable_64.c | 2 +
arch/x86/boot/genimage.sh | 15 +-
arch/x86/boot/mtools.conf.in | 5 +-
arch/x86/crypto/aesni-intel_glue.c | 2 +-
arch/x86/crypto/sm4-aesni-avx-asm_64.S | 6 +-
arch/x86/crypto/sm4-aesni-avx2-asm_64.S | 6 +-
arch/x86/entry/syscalls/syscall_32.tbl | 1 +
arch/x86/entry/syscalls/syscall_64.tbl | 1 +
arch/x86/entry/vsyscall/vsyscall_64.c | 3 +-
arch/x86/events/core.c | 6 +
arch/x86/events/intel/bts.c | 6 +
arch/x86/events/intel/core.c | 92 +-
arch/x86/events/intel/ds.c | 7 +-
arch/x86/events/intel/lbr.c | 22 +-
arch/x86/events/intel/uncore.c | 2 +-
arch/x86/events/intel/uncore_discovery.h | 2 +-
arch/x86/events/intel/uncore_snbep.c | 16 +-
arch/x86/events/perf_event.h | 21 +
arch/x86/hyperv/Makefile | 2 +-
arch/x86/hyperv/hv_init.c | 82 +-
arch/x86/hyperv/ivm.c | 289 +
arch/x86/ia32/audit.c | 13 +-
arch/x86/ia32/ia32_signal.c | 15 +-
arch/x86/include/asm/GEN-for-each-reg.h | 14 +-
arch/x86/include/asm/alternative.h | 1 +
arch/x86/include/asm/asm-prototypes.h | 18 -
arch/x86/include/asm/asm.h | 55 +-
arch/x86/include/asm/cpu_entry_area.h | 8 +-
arch/x86/include/asm/cpufeature.h | 13 +-
arch/x86/include/asm/cpufeatures.h | 2 +
arch/x86/include/asm/extable.h | 44 +-
arch/x86/include/asm/extable_fixup_types.h | 22 +
arch/x86/include/asm/fpu/api.h | 58 +-
arch/x86/include/asm/fpu/internal.h | 540 -
arch/x86/include/asm/fpu/sched.h | 68 +
arch/x86/include/asm/fpu/signal.h | 13 +-
arch/x86/include/asm/fpu/types.h | 214 +-
arch/x86/include/asm/fpu/xcr.h | 23 +-
arch/x86/include/asm/fpu/xstate.h | 91 +-
arch/x86/include/asm/ftrace.h | 9 +-
arch/x86/include/asm/hyperv-tlfs.h | 17 +
arch/x86/include/asm/ia32.h | 2 +-
arch/x86/include/asm/insn-eval.h | 1 +
arch/x86/include/asm/intel-family.h | 2 +
arch/x86/include/asm/io.h | 8 +
arch/x86/include/asm/irq_stack.h | 42 +-
arch/x86/include/asm/kexec.h | 2 +-
arch/x86/include/asm/kprobes.h | 1 -
arch/x86/include/asm/kvm_host.h | 64 +-
arch/x86/include/asm/kvm_page_track.h | 11 +-
arch/x86/include/asm/kvm_para.h | 12 +
arch/x86/include/asm/mce.h | 14 +-
arch/x86/include/asm/mem_encrypt.h | 16 +-
arch/x86/include/asm/microcode.h | 3 -
arch/x86/include/asm/mshyperv.h | 70 +-
arch/x86/include/asm/msr-index.h | 2 +
arch/x86/include/asm/msr.h | 4 +-
arch/x86/include/asm/nospec-branch.h | 72 +-
arch/x86/include/asm/page_32.h | 2 +-
arch/x86/include/asm/page_64_types.h | 2 +-
arch/x86/include/asm/paravirt.h | 37 +-
arch/x86/include/asm/paravirt_types.h | 3 +
arch/x86/include/asm/pkru.h | 2 +-
arch/x86/include/asm/processor.h | 20 +-
arch/x86/include/asm/proto.h | 2 +-
arch/x86/include/asm/ptrace.h | 2 +-
arch/x86/include/asm/segment.h | 2 +-
arch/x86/include/asm/set_memory.h | 1 +
arch/x86/include/asm/sev.h | 6 +
arch/x86/include/asm/smp.h | 8 +
arch/x86/include/asm/stacktrace.h | 10 +
arch/x86/include/asm/static_call.h | 1 +
arch/x86/include/asm/syscall.h | 33 -
arch/x86/include/asm/thread_info.h | 3 +
arch/x86/include/asm/topology.h | 3 +
arch/x86/include/asm/trace/fpu.h | 4 +-
arch/x86/include/asm/traps.h | 6 +-
arch/x86/include/asm/uaccess.h | 2 +-
arch/x86/include/asm/unwind.h | 29 +
arch/x86/include/asm/unwind_hints.h | 5 +
arch/x86/include/asm/xen/hypercall.h | 235 +-
arch/x86/include/asm/xen/hypervisor.h | 4 +
arch/x86/include/asm/xen/pci.h | 19 -
arch/x86/include/uapi/asm/kvm.h | 4 +
arch/x86/include/uapi/asm/kvm_para.h | 1 +
arch/x86/include/uapi/asm/prctl.h | 4 +
arch/x86/include/uapi/asm/sgx.h | 2 +
arch/x86/kernel/Makefile | 6 +
arch/x86/kernel/acpi/boot.c | 9 +
arch/x86/kernel/acpi/cstate.c | 15 +
arch/x86/kernel/alternative.c | 191 +-
arch/x86/kernel/aperture_64.c | 13 +-
arch/x86/kernel/apic/x2apic_cluster.c | 27 +-
arch/x86/kernel/audit_64.c | 10 +-
arch/x86/kernel/cc_platform.c | 69 +
arch/x86/kernel/cpu/Makefile | 1 +
arch/x86/kernel/cpu/amd.c | 2 +
arch/x86/kernel/cpu/bugs.c | 13 +-
arch/x86/kernel/cpu/cacheinfo.c | 1 +
arch/x86/kernel/cpu/common.c | 51 +-
arch/x86/kernel/cpu/cpu.h | 1 +
arch/x86/kernel/cpu/cpuid-deps.c | 3 +
arch/x86/kernel/cpu/hygon.c | 2 +
arch/x86/kernel/cpu/mce/amd.c | 13 +-
arch/x86/kernel/cpu/mce/core.c | 292 +-
arch/x86/kernel/cpu/mce/intel.c | 5 +-
arch/x86/kernel/cpu/mce/internal.h | 71 +-
arch/x86/kernel/cpu/mce/p5.c | 6 +-
arch/x86/kernel/cpu/mce/severity.c | 33 +-
arch/x86/kernel/cpu/mce/winchip.c | 6 +-
arch/x86/kernel/cpu/microcode/amd.c | 14 +-
arch/x86/kernel/cpu/microcode/core.c | 17 -
arch/x86/kernel/cpu/microcode/intel.c | 9 +-
arch/x86/kernel/cpu/mshyperv.c | 5 +
arch/x86/kernel/cpu/sgx/virt.c | 65 +-
arch/x86/kernel/cpu/vortex.c | 39 +
arch/x86/kernel/crash_dump_64.c | 4 +-
arch/x86/kernel/devicetree.c | 10 +-
arch/x86/kernel/doublefault_32.c | 3 -
arch/x86/kernel/dumpstack_64.c | 6 +
arch/x86/kernel/fpu/bugs.c | 2 +-
arch/x86/kernel/fpu/context.h | 83 +
arch/x86/kernel/fpu/core.c | 392 +-
arch/x86/kernel/fpu/init.c | 76 +-
arch/x86/kernel/fpu/internal.h | 28 +
arch/x86/kernel/fpu/legacy.h | 115 +
arch/x86/kernel/fpu/regset.c | 36 +-
arch/x86/kernel/fpu/signal.c | 285 +-
arch/x86/kernel/fpu/xstate.c | 898 +-
arch/x86/kernel/fpu/xstate.h | 311 +
arch/x86/kernel/ftrace.c | 76 +-
arch/x86/kernel/ftrace_64.S | 30 +-
arch/x86/kernel/head64.c | 9 +-
arch/x86/kernel/irq.c | 4 +-
arch/x86/kernel/irq_32.c | 2 +
arch/x86/kernel/irqflags.S | 2 +
arch/x86/kernel/itmt.c | 2 +-
arch/x86/kernel/kprobes/core.c | 71 +-
arch/x86/kernel/kprobes/ftrace.c | 2 -
arch/x86/kernel/kprobes/opt.c | 6 +-
arch/x86/kernel/kvm.c | 112 +-
arch/x86/kernel/kvmclock.c | 4 +-
arch/x86/kernel/machine_kexec_64.c | 19 +-
arch/x86/kernel/module.c | 9 +-
arch/x86/kernel/paravirt.c | 59 +-
arch/x86/kernel/pci-swiotlb.c | 9 +-
arch/x86/kernel/probe_roms.c | 2 +-
arch/x86/kernel/process.c | 93 +-
arch/x86/kernel/process_32.c | 5 +-
arch/x86/kernel/process_64.c | 5 +-
arch/x86/kernel/ptrace.c | 2 +-
arch/x86/kernel/relocate_kernel_64.S | 2 +-
arch/x86/kernel/setup.c | 4 +-
arch/x86/kernel/setup_percpu.c | 2 +-
arch/x86/kernel/sev-shared.c | 70 +-
arch/x86/kernel/sev.c | 74 +-
arch/x86/kernel/signal.c | 83 +-
arch/x86/kernel/smpboot.c | 66 +-
arch/x86/kernel/static_call.c | 14 +-
arch/x86/kernel/trace.c | 2 +-
arch/x86/kernel/traps.c | 100 +-
arch/x86/kernel/umip.c | 8 +-
arch/x86/kernel/unwind_frame.c | 3 +-
arch/x86/kernel/unwind_guess.c | 3 +-
arch/x86/kernel/unwind_orc.c | 23 +-
arch/x86/kernel/vm86_32.c | 10 +-
arch/x86/kernel/vmlinux.lds.S | 14 +
arch/x86/kvm/Kconfig | 3 +
arch/x86/kvm/cpuid.c | 103 +-
arch/x86/kvm/emulate.c | 5 +
arch/x86/kvm/hyperv.c | 26 +-
arch/x86/kvm/ioapic.c | 2 +-
arch/x86/kvm/ioapic.h | 4 +-
arch/x86/kvm/lapic.c | 43 +-
arch/x86/kvm/lapic.h | 2 +-
arch/x86/kvm/mmu.h | 114 +-
arch/x86/kvm/mmu/mmu.c | 718 +-
arch/x86/kvm/mmu/mmu_internal.h | 21 +-
arch/x86/kvm/mmu/mmutrace.h | 18 +-
arch/x86/kvm/mmu/page_track.c | 49 +-
arch/x86/kvm/mmu/paging_tmpl.h | 168 +-
arch/x86/kvm/mmu/spte.c | 34 +-
arch/x86/kvm/mmu/spte.h | 21 +-
arch/x86/kvm/mmu/tdp_mmu.c | 119 +-
arch/x86/kvm/mmu/tdp_mmu.h | 6 +-
arch/x86/kvm/pmu.c | 2 +-
arch/x86/kvm/pmu.h | 4 +-
arch/x86/kvm/svm/avic.c | 3 +-
arch/x86/kvm/svm/nested.c | 52 +-
arch/x86/kvm/svm/pmu.c | 5 +-
arch/x86/kvm/svm/sev.c | 334 +-
arch/x86/kvm/svm/svm.c | 192 +-
arch/x86/kvm/svm/svm.h | 45 +-
arch/x86/kvm/svm/svm_ops.h | 4 +-
arch/x86/kvm/trace.h | 9 +-
arch/x86/kvm/vmx/evmcs.h | 4 +-
arch/x86/kvm/vmx/nested.c | 229 +-
arch/x86/kvm/vmx/pmu_intel.c | 13 +-
arch/x86/kvm/vmx/sgx.c | 16 +-
arch/x86/kvm/vmx/vmx.c | 243 +-
arch/x86/kvm/vmx/vmx.h | 35 +-
arch/x86/kvm/x86.c | 1386 +-
arch/x86/kvm/x86.h | 2 -
arch/x86/kvm/xen.c | 27 +-
arch/x86/lib/copy_mc_64.S | 8 +-
arch/x86/lib/copy_user_64.S | 13 -
arch/x86/lib/insn-eval.c | 2 +-
arch/x86/lib/insn.c | 5 +-
arch/x86/lib/kaslr.c | 18 +-
arch/x86/lib/retpoline.S | 56 +-
arch/x86/lib/string_32.c | 1 +
arch/x86/math-emu/fpu_aux.c | 2 +-
arch/x86/math-emu/fpu_entry.c | 6 +-
arch/x86/math-emu/fpu_system.h | 2 +-
arch/x86/mm/cpu_entry_area.c | 7 +
arch/x86/mm/extable.c | 135 +-
arch/x86/mm/fault.c | 20 +-
arch/x86/mm/init.c | 2 +-
arch/x86/mm/init_32.c | 45 +-
arch/x86/mm/ioremap.c | 18 +-
arch/x86/mm/kasan_init_64.c | 4 +-
arch/x86/mm/mem_encrypt.c | 121 +-
arch/x86/mm/mem_encrypt_identity.c | 18 +-
arch/x86/mm/numa.c | 2 +-
arch/x86/mm/numa_emulation.c | 2 +-
arch/x86/mm/pat/set_memory.c | 30 +-
arch/x86/net/bpf_jit_comp.c | 330 +-
arch/x86/net/bpf_jit_comp32.c | 22 +-
arch/x86/pci/common.c | 2 +-
arch/x86/pci/xen.c | 76 +-
arch/x86/platform/efi/efi_64.c | 9 +-
arch/x86/power/cpu.c | 2 +-
arch/x86/realmode/init.c | 8 +-
arch/x86/tools/relocs.c | 105 +-
arch/x86/xen/enlighten.c | 116 +-
arch/x86/xen/enlighten_hvm.c | 6 +-
arch/x86/xen/enlighten_pv.c | 105 +-
arch/x86/xen/irq.c | 73 +-
arch/x86/xen/mmu_hvm.c | 37 +-
arch/x86/xen/mmu_pv.c | 151 +-
arch/x86/xen/p2m.c | 2 +-
arch/x86/xen/setup.c | 16 +-
arch/x86/xen/smp.c | 28 -
arch/x86/xen/smp_pv.c | 14 +-
arch/x86/xen/xen-asm.S | 79 +-
arch/x86/xen/xen-head.S | 46 +-
arch/x86/xen/xen-ops.h | 4 +-
arch/xtensa/Makefile | 4 +-
arch/xtensa/boot/boot-elf/bootstrap.S | 2 +
arch/xtensa/boot/boot-redboot/bootstrap.S | 72 +-
arch/xtensa/configs/nommu_kc705_defconfig | 1 -
arch/xtensa/include/asm/asmmacro.h | 65 +
arch/xtensa/include/asm/atomic.h | 26 +-
arch/xtensa/include/asm/cacheflush.h | 5 +-
arch/xtensa/include/asm/cmpxchg.h | 16 +-
arch/xtensa/include/asm/core.h | 11 +
arch/xtensa/include/asm/processor.h | 34 +-
arch/xtensa/include/asm/sections.h | 41 +
arch/xtensa/include/asm/syscall.h | 11 -
arch/xtensa/include/asm/traps.h | 2 +
arch/xtensa/kernel/align.S | 2 +
arch/xtensa/kernel/entry.S | 216 +-
arch/xtensa/kernel/head.S | 24 +-
arch/xtensa/kernel/mcount.S | 38 +-
arch/xtensa/kernel/process.c | 32 +-
arch/xtensa/kernel/setup.c | 102 +-
arch/xtensa/kernel/signal.c | 12 +-
arch/xtensa/kernel/traps.c | 8 +-
arch/xtensa/kernel/vectors.S | 55 +-
arch/xtensa/kernel/vmlinux.lds.S | 12 +-
arch/xtensa/lib/strncpy_user.S | 17 +-
arch/xtensa/lib/usercopy.S | 28 +-
arch/xtensa/mm/fault.c | 3 +-
arch/xtensa/platforms/iss/network.c | 5 +-
arch/xtensa/platforms/iss/simdisk.c | 16 +-
block/Kconfig | 28 +-
block/Kconfig.iosched | 4 -
block/Makefile | 6 +-
block/bdev.c | 46 +-
block/bfq-cgroup.c | 14 +-
block/bfq-iosched.c | 6 +-
block/bio-integrity.c | 4 +-
block/bio.c | 171 +-
block/blk-cgroup.c | 32 +-
block/blk-core.c | 479 +-
block/blk-crypto-fallback.c | 119 +-
block/blk-crypto-internal.h | 2 +-
block/blk-crypto-profile.c | 565 +
block/blk-crypto.c | 29 +-
block/blk-exec.c | 10 +-
block/blk-flush.c | 12 +-
block/blk-ia-ranges.c | 348 +
block/blk-integrity.c | 6 +-
block/blk-iocost.c | 12 +-
block/blk-iolatency.c | 1 +
block/blk-merge.c | 123 +-
block/blk-mq-debugfs.c | 135 +-
block/blk-mq-sched.c | 140 +-
block/blk-mq-sched.h | 49 +-
block/blk-mq-tag.c | 163 +-
block/blk-mq-tag.h | 38 +-
block/blk-mq.c | 1181 +-
block/blk-mq.h | 111 +-
block/blk-rq-qos.h | 5 +-
block/blk-settings.c | 20 +-
block/blk-sysfs.c | 50 +-
block/blk-throttle.c | 163 +-
block/blk-throttle.h | 182 +
block/blk-wbt.c | 3 +
block/blk-zoned.c | 15 +-
block/blk.h | 166 +-
block/bounce.c | 1 +
block/bsg-lib.c | 32 +-
block/elevator.c | 4 +-
block/elevator.h | 166 +
block/fops.c | 288 +-
block/genhd.c | 77 +-
block/holder.c | 1 +
block/ioctl.c | 61 +-
block/keyslot-manager.c | 578 -
block/kyber-iosched.c | 6 +-
block/mq-deadline.c | 224 +-
block/partitions/Kconfig | 4 +
block/partitions/core.c | 7 +-
block/partitions/efi.c | 2 +-
block/partitions/ibm.c | 19 +-
block/t10-pi.c | 2 +-
crypto/Kconfig | 2 +-
crypto/Makefile | 2 +
crypto/af_alg.c | 2 +-
crypto/algapi.c | 125 +-
crypto/api.c | 50 +-
crypto/crypto_engine.c | 26 +
crypto/drbg.c | 2 +-
crypto/ecc.c | 14 +-
crypto/ecc.h | 245 -
crypto/ecdh.c | 2 +-
crypto/ecdsa.c | 2 +-
crypto/ecrdsa.c | 2 +-
crypto/ecrdsa_defs.h | 2 +-
crypto/internal.h | 10 +
crypto/jitterentropy.c | 24 +-
crypto/pcrypt.c | 12 +-
crypto/tcrypt.c | 5 +-
crypto/testmgr.c | 4 +-
crypto/testmgr.h | 2 +-
crypto/zstd.c | 28 +-
drivers/acpi/Kconfig | 2 +-
drivers/acpi/ac.c | 19 +
drivers/acpi/acpi_lpss.c | 13 +-
drivers/acpi/acpi_pnp.c | 2 -
drivers/acpi/acpica/acglobal.h | 2 +
drivers/acpi/acpica/hwesleep.c | 8 +-
drivers/acpi/acpica/hwsleep.c | 11 +-
drivers/acpi/acpica/hwxfsleep.c | 7 +
drivers/acpi/acpica/utosi.c | 1 +
drivers/acpi/apei/einj.c | 15 +-
drivers/acpi/apei/hest.c | 5 +-
drivers/acpi/battery.c | 2 +-
drivers/acpi/cppc_acpi.c | 43 +-
drivers/acpi/device_pm.c | 26 +
drivers/acpi/dock.c | 8 +-
drivers/acpi/ec.c | 11 +-
drivers/acpi/glue.c | 66 +-
drivers/acpi/internal.h | 1 +
drivers/acpi/pci_root.c | 161 +-
drivers/acpi/pmic/intel_pmic.c | 51 +-
drivers/acpi/power.c | 102 +-
drivers/acpi/pptt.c | 67 +
drivers/acpi/prmt.c | 35 +-
drivers/acpi/processor_idle.c | 3 +-
drivers/acpi/resource.c | 56 +-
drivers/acpi/scan.c | 11 +
drivers/acpi/sleep.c | 10 +-
drivers/acpi/tables.c | 3 +
drivers/acpi/video_detect.c | 78 +-
drivers/amba/bus.c | 100 +-
drivers/android/binder.c | 41 +-
drivers/android/binder_internal.h | 4 +
drivers/ata/ahci.c | 13 +-
drivers/ata/ahci.h | 8 +-
drivers/ata/ata_piix.c | 8 +-
drivers/ata/libahci.c | 52 +-
drivers/ata/libata-core.c | 72 +-
drivers/ata/libata-eh.c | 8 +
drivers/ata/libata-sata.c | 21 +-
drivers/ata/libata-scsi.c | 81 +-
drivers/ata/pata_ali.c | 4 +-
drivers/ata/pata_amd.c | 2 +-
drivers/ata/pata_macio.c | 2 +-
drivers/ata/pata_optidma.c | 4 +-
drivers/ata/pata_radisys.c | 4 +-
drivers/ata/sata_highbank.c | 4 +-
drivers/ata/sata_mv.c | 6 +-
drivers/ata/sata_nv.c | 4 +-
drivers/ata/sata_sil24.c | 2 +-
drivers/auxdisplay/Kconfig | 12 +-
drivers/auxdisplay/Makefile | 1 +
drivers/auxdisplay/cfag12864bfb.c | 9 +-
drivers/auxdisplay/ht16k33.c | 501 +-
drivers/auxdisplay/img-ascii-lcd.c | 205 +-
drivers/auxdisplay/ks0108.c | 3 -
drivers/auxdisplay/line-display.c | 261 +
drivers/auxdisplay/line-display.h | 43 +
drivers/base/Makefile | 2 +-
drivers/base/arch_numa.c | 92 +-
drivers/base/arch_topology.c | 20 +-
drivers/base/component.c | 6 +-
drivers/base/core.c | 17 +-
drivers/base/firmware_loader/builtin/Makefile | 6 +-
drivers/base/firmware_loader/builtin/main.c | 106 +
drivers/base/firmware_loader/firmware.h | 17 +
drivers/base/firmware_loader/main.c | 65 +-
drivers/base/node.c | 9 +-
drivers/base/platform.c | 3 +-
drivers/base/power/main.c | 99 +-
drivers/base/power/power.h | 7 +-
drivers/base/power/runtime.c | 6 +-
drivers/base/power/wakeirq.c | 101 +-
drivers/base/property.c | 63 -
drivers/base/regmap/regcache-rbtree.c | 7 +-
drivers/base/regmap/regmap-mdio.c | 6 +-
drivers/base/regmap/regmap-spi.c | 36 +-
drivers/base/swnode.c | 6 -
drivers/base/topology.c | 10 +
drivers/bcma/host_pci.c | 6 +-
drivers/bcma/main.c | 2 +-
drivers/block/Kconfig | 26 +-
drivers/block/Makefile | 1 -
drivers/block/amiflop.c | 9 +-
drivers/block/aoe/aoeblk.c | 19 +-
drivers/block/ataflop.c | 161 +-
drivers/block/brd.c | 21 +-
drivers/block/cryptoloop.c | 206 -
drivers/block/drbd/drbd_int.h | 5 +-
drivers/block/drbd/drbd_main.c | 4 +-
drivers/block/drbd/drbd_req.c | 3 +-
drivers/block/floppy.c | 52 +-
drivers/block/loop.c | 421 +-
drivers/block/loop.h | 30 -
drivers/block/mtip32xx/mtip32xx.c | 6 +-
drivers/block/n64cart.c | 24 +-
drivers/block/nbd.c | 218 +-
drivers/block/null_blk/main.c | 195 +-
drivers/block/null_blk/null_blk.h | 6 +
drivers/block/paride/pcd.c | 312 +-
drivers/block/paride/pd.c | 148 +-
drivers/block/paride/pf.c | 236 +-
drivers/block/pktcdvd.c | 20 +-
drivers/block/ps3disk.c | 8 +-
drivers/block/ps3vram.c | 13 +-
drivers/block/rbd.c | 8 +-
drivers/block/rnbd/rnbd-clt.c | 15 +-
drivers/block/rnbd/rnbd-proto.h | 2 +-
drivers/block/rsxx/core.c | 4 +-
drivers/block/rsxx/dev.c | 19 +-
drivers/block/sunvdc.c | 14 +-
drivers/block/swim.c | 36 +-
drivers/block/swim3.c | 5 +-
drivers/block/sx8.c | 15 +-
drivers/block/virtio_blk.c | 194 +-
drivers/block/xen-blkback/xenbus.c | 2 +-
drivers/block/xen-blkfront.c | 9 +-
drivers/block/z2ram.c | 7 +-
drivers/block/zram/zram_drv.c | 121 +-
drivers/bluetooth/btintel.c | 239 +-
drivers/bluetooth/btintel.h | 11 +
drivers/bluetooth/btmrvl_main.c | 6 +-
drivers/bluetooth/btmtkuart.c | 13 +-
drivers/bluetooth/btrsi.c | 1 -
drivers/bluetooth/btrtl.c | 26 +-
drivers/bluetooth/btusb.c | 64 +-
drivers/bluetooth/hci_h5.c | 35 +-
drivers/bluetooth/hci_ldisc.c | 5 +-
drivers/bluetooth/hci_qca.c | 5 +-
drivers/bluetooth/hci_vhci.c | 122 +
drivers/bus/Kconfig | 2 +-
drivers/bus/brcmstb_gisb.c | 9 +-
drivers/bus/fsl-mc/Makefile | 3 +-
drivers/bus/fsl-mc/fsl-mc-private.h | 39 +-
drivers/bus/fsl-mc/obj-api.c | 103 +
drivers/bus/sun50i-de2.c | 7 +-
drivers/bus/ti-sysc.c | 276 +-
drivers/cdrom/cdrom.c | 63 +-
drivers/cdrom/gdrom.c | 7 +-
drivers/char/hw_random/Kconfig | 12 +-
drivers/char/hw_random/ixp4xx-rng.c | 4 +-
drivers/char/hw_random/meson-rng.c | 5 +-
drivers/char/hw_random/mtk-rng.c | 9 +-
drivers/char/hw_random/s390-trng.c | 4 +-
drivers/char/hw_random/virtio-rng.c | 86 +-
drivers/char/ipmi/Kconfig | 11 +-
drivers/char/ipmi/Makefile | 1 +
drivers/char/ipmi/bt-bmc.c | 69 +-
drivers/char/ipmi/ipmi_devintf.c | 8 +-
drivers/char/ipmi/ipmi_ipmb.c | 539 +
drivers/char/ipmi/ipmi_msghandler.c | 330 +-
drivers/char/ipmi/ipmi_si_intf.c | 8 +-
drivers/char/ipmi/ipmi_ssif.c | 4 +-
drivers/char/ipmi/ipmi_watchdog.c | 25 +-
drivers/char/ipmi/kcs_bmc_serio.c | 4 +-
drivers/char/mem.c | 8 +-
drivers/char/pcmcia/cm4000_cs.c | 9 +-
drivers/char/tpm/Kconfig | 2 +-
drivers/char/tpm/tpm2-space.c | 3 +
drivers/char/tpm/tpm_tis_core.c | 26 +-
drivers/char/tpm/tpm_tis_core.h | 4 +
drivers/char/tpm/tpm_tis_spi_main.c | 1 +
drivers/char/virtio_console.c | 9 +
drivers/char/xillybus/xillybus.h | 31 +-
drivers/char/xillybus/xillybus_core.c | 131 +-
drivers/char/xillybus/xillybus_of.c | 86 +-
drivers/char/xillybus/xillybus_pcie.c | 99 +-
drivers/char/xillybus/xillyusb.c | 1 +
drivers/clk/actions/owl-factor.c | 1 -
drivers/clk/at91/at91rm9200.c | 2 +-
drivers/clk/at91/at91sam9260.c | 2 +-
drivers/clk/at91/at91sam9g45.c | 2 +-
drivers/clk/at91/at91sam9n12.c | 2 +-
drivers/clk/at91/at91sam9rl.c | 2 +-
drivers/clk/at91/at91sam9x5.c | 2 +-
drivers/clk/at91/clk-generated.c | 46 +-
drivers/clk/at91/clk-main.c | 66 +
drivers/clk/at91/clk-master.c | 463 +-
drivers/clk/at91/clk-peripheral.c | 40 +-
drivers/clk/at91/clk-pll.c | 39 +
drivers/clk/at91/clk-programmable.c | 29 +-
drivers/clk/at91/clk-sam9x60-pll.c | 174 +-
drivers/clk/at91/clk-system.c | 20 +
drivers/clk/at91/clk-usb.c | 27 +
drivers/clk/at91/clk-utmi.c | 39 +
drivers/clk/at91/dt-compat.c | 2 +-
drivers/clk/at91/pmc.c | 178 +-
drivers/clk/at91/pmc.h | 29 +-
drivers/clk/at91/sam9x60.c | 6 +-
drivers/clk/at91/sama5d2.c | 2 +-
drivers/clk/at91/sama5d3.c | 2 +-
drivers/clk/at91/sama5d4.c | 2 +-
drivers/clk/at91/sama7g5.c | 29 +-
drivers/clk/clk-ast2600.c | 12 +-
drivers/clk/clk-composite.c | 78 +-
drivers/clk/clk-si5351.c | 8 +-
drivers/clk/clk-si5351.h | 2 +-
drivers/clk/clk-versaclock5.c | 4 +-
drivers/clk/clk.c | 5 +-
drivers/clk/imx/Kconfig | 7 +
drivers/clk/imx/Makefile | 2 +
drivers/clk/imx/clk-composite-7ulp.c | 88 +-
drivers/clk/imx/clk-composite-8m.c | 4 +-
drivers/clk/imx/clk-imx6ul.c | 9 +-
drivers/clk/imx/clk-imx7ulp.c | 20 +-
drivers/clk/imx/clk-imx8ulp.c | 569 +
drivers/clk/imx/clk-pfdv2.c | 23 +-
drivers/clk/imx/clk-pllv4.c | 35 +-
drivers/clk/imx/clk.h | 457 +-
drivers/clk/ingenic/cgu.c | 6 +-
drivers/clk/ingenic/jz4725b-cgu.c | 2 +-
drivers/clk/ingenic/jz4740-cgu.c | 2 +-
drivers/clk/ingenic/jz4760-cgu.c | 2 +-
drivers/clk/ingenic/jz4770-cgu.c | 2 +-
drivers/clk/ingenic/jz4780-cgu.c | 2 +-
drivers/clk/ingenic/x1000-cgu.c | 2 +-
drivers/clk/ingenic/x1830-cgu.c | 2 +-
drivers/clk/mediatek/Kconfig | 28 +-
drivers/clk/mediatek/Makefile | 8 +
drivers/clk/mediatek/clk-apmixed.c | 3 +
drivers/clk/mediatek/clk-cpumux.c | 3 +
drivers/clk/mediatek/clk-gate.c | 8 +
drivers/clk/mediatek/clk-mt6779-aud.c | 4 +-
drivers/clk/mediatek/clk-mt6779-cam.c | 4 +-
drivers/clk/mediatek/clk-mt6779-img.c | 4 +-
drivers/clk/mediatek/clk-mt6779-ipe.c | 4 +-
drivers/clk/mediatek/clk-mt6779-mfg.c | 4 +-
drivers/clk/mediatek/clk-mt6779-mm.c | 4 +-
drivers/clk/mediatek/clk-mt6779-vdec.c | 4 +-
drivers/clk/mediatek/clk-mt6779-venc.c | 4 +-
drivers/clk/mediatek/clk-mt6779.c | 2 +
drivers/clk/mediatek/clk-mt8195-apmixedsys.c | 145 +
drivers/clk/mediatek/clk-mt8195-apusys_pll.c | 92 +
drivers/clk/mediatek/clk-mt8195-cam.c | 142 +
drivers/clk/mediatek/clk-mt8195-ccu.c | 50 +
drivers/clk/mediatek/clk-mt8195-img.c | 96 +
drivers/clk/mediatek/clk-mt8195-imp_iic_wrap.c | 66 +
drivers/clk/mediatek/clk-mt8195-infra_ao.c | 206 +
drivers/clk/mediatek/clk-mt8195-ipe.c | 51 +
drivers/clk/mediatek/clk-mt8195-mfg.c | 47 +
drivers/clk/mediatek/clk-mt8195-peri_ao.c | 62 +
drivers/clk/mediatek/clk-mt8195-scp_adsp.c | 47 +
drivers/clk/mediatek/clk-mt8195-topckgen.c | 1273 +
drivers/clk/mediatek/clk-mt8195-vdec.c | 104 +
drivers/clk/mediatek/clk-mt8195-vdo0.c | 123 +
drivers/clk/mediatek/clk-mt8195-vdo1.c | 140 +
drivers/clk/mediatek/clk-mt8195-venc.c | 69 +
drivers/clk/mediatek/clk-mt8195-vpp0.c | 110 +
drivers/clk/mediatek/clk-mt8195-vpp1.c | 108 +
drivers/clk/mediatek/clk-mt8195-wpe.c | 143 +
drivers/clk/mediatek/clk-mtk.c | 29 +-
drivers/clk/mediatek/clk-mtk.h | 1 +
drivers/clk/mediatek/clk-mux.c | 6 +
drivers/clk/mediatek/clk-pll.c | 6 +-
drivers/clk/mediatek/reset.c | 2 +
drivers/clk/meson/meson8b.c | 163 +-
drivers/clk/meson/meson8b.h | 26 +-
drivers/clk/mvebu/ap-cpu-clk.c | 14 +-
drivers/clk/qcom/Kconfig | 43 +-
drivers/clk/qcom/Makefile | 3 +
drivers/clk/qcom/a53-pll.c | 4 +-
drivers/clk/qcom/camcc-sc7280.c | 2484 +
drivers/clk/qcom/clk-smd-rpm.c | 135 +-
drivers/clk/qcom/common.c | 8 +-
drivers/clk/qcom/dispcc-sm8250.c | 27 +-
drivers/clk/qcom/gcc-msm8953.c | 1 -
drivers/clk/qcom/gcc-msm8994.c | 1384 +-
drivers/clk/qcom/gcc-msm8996.c | 15 -
drivers/clk/qcom/gcc-msm8998.c | 705 +-
drivers/clk/qcom/gcc-qcm2290.c | 3044 ++
drivers/clk/qcom/gcc-sc7280.c | 85 -
drivers/clk/qcom/gcc-sdm660.c | 80 +-
drivers/clk/qcom/gdsc.c | 51 +-
drivers/clk/qcom/gdsc.h | 2 +
drivers/clk/qcom/gpucc-msm8998.c | 13 +-
drivers/clk/qcom/gpucc-sdm660.c | 15 +-
drivers/clk/qcom/kpss-xcc.c | 4 +-
drivers/clk/qcom/lpasscc-sc7280.c | 216 +
drivers/clk/qcom/mmcc-msm8998.c | 183 +-
drivers/clk/qcom/mmcc-sdm660.c | 75 +-
drivers/clk/qcom/videocc-sm8250.c | 27 +-
drivers/clk/renesas/r8a7795-cpg-mssr.c | 1 +
drivers/clk/renesas/r8a7796-cpg-mssr.c | 1 +
drivers/clk/renesas/r8a77965-cpg-mssr.c | 1 +
drivers/clk/renesas/r8a779a0-cpg-mssr.c | 191 +
drivers/clk/renesas/r9a07g044-cpg.c | 83 +-
drivers/clk/renesas/rcar-cpg-lib.c | 83 +
drivers/clk/renesas/rcar-cpg-lib.h | 7 +
drivers/clk/renesas/rcar-gen3-cpg.c | 89 +-
drivers/clk/renesas/rzg2l-cpg.c | 212 +
drivers/clk/renesas/rzg2l-cpg.h | 45 +-
drivers/clk/rockchip/Kconfig | 4 +-
drivers/clk/rockchip/clk-rk3399.c | 19 +-
drivers/clk/rockchip/clk-rk3568.c | 4 -
drivers/clk/samsung/Kconfig | 30 +-
drivers/clk/samsung/Makefile | 1 +
drivers/clk/samsung/clk-cpu.c | 18 +
drivers/clk/samsung/clk-exynos-audss.c | 4 +-
drivers/clk/samsung/clk-exynos4412-isp.c | 4 +-
drivers/clk/samsung/clk-exynos5433.c | 124 +-
drivers/clk/samsung/clk-exynos850.c | 835 +
drivers/clk/samsung/clk-pll.c | 196 +
drivers/clk/samsung/clk-pll.h | 2 +
drivers/clk/samsung/clk-s5pv210-audss.c | 4 +-
drivers/clk/samsung/clk.c | 2 +
drivers/clk/samsung/clk.h | 26 +
drivers/clk/sunxi-ng/Kconfig | 1 +
drivers/clk/sunxi-ng/ccu-sun4i-a10.c | 2 +-
drivers/clk/sunxi-ng/ccu-sun50i-a100-r.c | 3 +-
drivers/clk/sunxi-ng/ccu-sun50i-a100.c | 3 +-
drivers/clk/sunxi-ng/ccu-sun50i-a64.c | 7 +-
drivers/clk/sunxi-ng/ccu-sun50i-h6-r.c | 2 +-
drivers/clk/sunxi-ng/ccu-sun50i-h6.c | 7 +-
drivers/clk/sunxi-ng/ccu-sun50i-h616.c | 4 +-
drivers/clk/sunxi-ng/ccu-sun5i.c | 2 +-
drivers/clk/sunxi-ng/ccu-sun6i-a31.c | 2 +-
drivers/clk/sunxi-ng/ccu-sun8i-a23.c | 2 +-
drivers/clk/sunxi-ng/ccu-sun8i-a33.c | 2 +-
drivers/clk/sunxi-ng/ccu-sun8i-a83t.c | 7 +-
drivers/clk/sunxi-ng/ccu-sun8i-de2.c | 6 +-
drivers/clk/sunxi-ng/ccu-sun8i-h3.c | 2 +-
drivers/clk/sunxi-ng/ccu-sun8i-r.c | 2 +-
drivers/clk/sunxi-ng/ccu-sun8i-r40.c | 7 +-
drivers/clk/sunxi-ng/ccu-sun8i-v3s.c | 2 +-
drivers/clk/sunxi-ng/ccu-sun9i-a80-de.c | 8 +-
drivers/clk/sunxi-ng/ccu-sun9i-a80-usb.c | 7 +-
drivers/clk/sunxi-ng/ccu-sun9i-a80.c | 7 +-
drivers/clk/sunxi-ng/ccu-suniv-f1c100s.c | 2 +-
drivers/clk/sunxi-ng/ccu_common.c | 96 +-
drivers/clk/sunxi-ng/ccu_common.h | 6 +-
drivers/clk/sunxi-ng/ccu_mux.h | 1 -
drivers/clk/sunxi/clk-mod0.c | 4 +-
drivers/clk/sunxi/clk-sun6i-apb0-gates.c | 4 +-
drivers/clk/sunxi/clk-sun6i-apb0.c | 4 +-
drivers/clk/sunxi/clk-sun6i-ar100.c | 4 +-
drivers/clk/sunxi/clk-sun8i-apb0.c | 4 +-
drivers/clk/ti/clk-43xx.c | 1 +
drivers/clk/uniphier/clk-uniphier-core.c | 17 +
drivers/clk/uniphier/clk-uniphier-sys.c | 47 +
drivers/clk/uniphier/clk-uniphier.h | 6 +
drivers/clk/ux500/Makefile | 3 +
drivers/clk/ux500/prcc.h | 19 +
drivers/clk/ux500/reset-prcc.c | 181 +
drivers/clk/ux500/reset-prcc.h | 23 +
drivers/clk/ux500/u8500_of_clk.c | 30 +-
drivers/clk/versatile/Kconfig | 3 +-
drivers/clk/versatile/Makefile | 2 +-
drivers/clk/versatile/clk-icst.c | 9 +-
drivers/clocksource/Kconfig | 3 +
drivers/clocksource/arc_timer.c | 6 +-
drivers/clocksource/arm_arch_timer.c | 243 +-
drivers/clocksource/timer-riscv.c | 9 +
drivers/comedi/drivers/dt9812.c | 115 +-
drivers/comedi/drivers/ni_usb6501.c | 10 +
drivers/comedi/drivers/vmk80xx.c | 28 +-
drivers/counter/104-quad-8.c | 699 +-
drivers/counter/Kconfig | 6 +-
drivers/counter/Makefile | 1 +
drivers/counter/counter-chrdev.c | 573 +
drivers/counter/counter-chrdev.h | 14 +
drivers/counter/counter-core.c | 191 +
drivers/counter/counter-sysfs.c | 959 +
drivers/counter/counter-sysfs.h | 13 +
drivers/counter/counter.c | 1496 -
drivers/counter/ftm-quaddec.c | 60 +-
drivers/counter/intel-qep.c | 146 +-
drivers/counter/interrupt-cnt.c | 62 +-
drivers/counter/microchip-tcb-capture.c | 93 +-
drivers/counter/stm32-lptimer-cnt.c | 212 +-
drivers/counter/stm32-timer-cnt.c | 195 +-
drivers/counter/ti-eqep.c | 180 +-
drivers/cpufreq/acpi-cpufreq.c | 3 +-
drivers/cpufreq/amd_freq_sensitivity.c | 3 +-
drivers/cpufreq/cppc_cpufreq.c | 2 -
drivers/cpufreq/cpufreq.c | 19 +-
drivers/cpufreq/cpufreq_conservative.c | 6 +-
drivers/cpufreq/cpufreq_ondemand.c | 16 +-
drivers/cpufreq/intel_pstate.c | 156 +-
drivers/cpufreq/mediatek-cpufreq-hw.c | 2 +-
drivers/cpufreq/powernv-cpufreq.c | 4 +-
drivers/cpufreq/s3c2440-cpufreq.c | 2 +
drivers/cpufreq/s5pv210-cpufreq.c | 2 +-
drivers/cpufreq/tegra186-cpufreq.c | 4 +
drivers/cpufreq/tegra194-cpufreq.c | 8 +-
drivers/cpuidle/Kconfig.arm | 3 +-
drivers/cpuidle/cpuidle-qcom-spm.c | 318 +-
drivers/cpuidle/cpuidle-tegra.c | 3 +
drivers/cpuidle/sysfs.c | 5 +-
drivers/crypto/caam/caampkc.c | 19 +-
drivers/crypto/caam/regs.h | 3 +
drivers/crypto/ccp/ccp-dev-v3.c | 5 +-
drivers/crypto/ccp/ccp-dev-v5.c | 5 +-
drivers/crypto/ccp/sev-dev.c | 2 +-
drivers/crypto/ccree/cc_driver.c | 3 +-
drivers/crypto/chelsio/chcr_crypto.h | 14 +-
drivers/crypto/hisilicon/qm.c | 76 +-
drivers/crypto/hisilicon/zip/zip_main.c | 2 +-
drivers/crypto/img-hash.c | 7 +-
drivers/crypto/keembay/Kconfig | 19 +
drivers/crypto/keembay/Makefile | 2 +
drivers/crypto/keembay/keembay-ocs-ecc.c | 1017 +
drivers/crypto/marvell/cesa/cesa.c | 1 -
drivers/crypto/marvell/octeontx2/otx2_cptvf_algs.c | 1 +
drivers/crypto/qat/qat_4xxx/adf_4xxx_hw_data.c | 35 +-
drivers/crypto/qat/qat_4xxx/adf_4xxx_hw_data.h | 10 +
drivers/crypto/qat/qat_4xxx/adf_drv.c | 7 +-
drivers/crypto/qat/qat_c3xxx/adf_c3xxx_hw_data.c | 89 +-
drivers/crypto/qat/qat_c3xxx/adf_c3xxx_hw_data.h | 13 +-
drivers/crypto/qat/qat_c3xxx/adf_drv.c | 7 +-
drivers/crypto/qat/qat_c62x/adf_c62x_hw_data.c | 87 +-
drivers/crypto/qat/qat_c62x/adf_c62x_hw_data.h | 12 -
drivers/crypto/qat/qat_c62x/adf_drv.c | 7 +-
drivers/crypto/qat/qat_common/adf_accel_devices.h | 29 +-
drivers/crypto/qat/qat_common/adf_aer.c | 10 +-
drivers/crypto/qat/qat_common/adf_common_drv.h | 12 +-
drivers/crypto/qat/qat_common/adf_gen2_hw_data.c | 98 +
drivers/crypto/qat/qat_common/adf_gen2_hw_data.h | 27 +
drivers/crypto/qat/qat_common/adf_init.c | 5 +
drivers/crypto/qat/qat_common/adf_isr.c | 190 +-
drivers/crypto/qat/qat_common/adf_pf2vf_msg.c | 238 +-
drivers/crypto/qat/qat_common/adf_pf2vf_msg.h | 9 -
drivers/crypto/qat/qat_common/adf_vf2pf_msg.c | 4 +-
drivers/crypto/qat/qat_common/adf_vf_isr.c | 30 +-
.../crypto/qat/qat_dh895xcc/adf_dh895xcc_hw_data.c | 123 +-
.../crypto/qat/qat_dh895xcc/adf_dh895xcc_hw_data.h | 14 +-
drivers/crypto/qat/qat_dh895xcc/adf_drv.c | 7 +-
drivers/crypto/s5p-sss.c | 2 +
drivers/crypto/sa2ul.c | 13 +-
drivers/cxl/acpi.c | 139 +-
drivers/cxl/core/Makefile | 1 +
drivers/cxl/core/bus.c | 119 +-
drivers/cxl/core/core.h | 11 +-
drivers/cxl/core/mbox.c | 787 +
drivers/cxl/core/memdev.c | 118 +-
drivers/cxl/core/pmem.c | 39 +-
drivers/cxl/cxl.h | 119 +-
drivers/cxl/cxlmem.h | 202 +-
drivers/cxl/pci.c | 1240 +-
drivers/cxl/pci.h | 14 +-
drivers/cxl/pmem.c | 163 +-
drivers/dax/super.c | 100 +-
drivers/devfreq/devfreq.c | 28 +-
drivers/devfreq/event/exynos-ppmu.c | 12 +-
drivers/devfreq/governor.h | 3 +
drivers/devfreq/tegra30-devfreq.c | 109 +-
drivers/dma-buf/Makefile | 2 +-
drivers/dma-buf/dma-buf.c | 206 +-
drivers/dma-buf/dma-fence.c | 13 +-
drivers/dma-buf/dma-resv.c | 497 +-
drivers/dma-buf/heaps/system_heap.c | 5 +-
drivers/dma-buf/seqno-fence.c | 71 -
drivers/dma/Kconfig | 2 +-
drivers/dma/altera-msgdma.c | 10 +-
drivers/dma/at_xdmac.c | 69 +-
drivers/dma/bestcomm/ata.c | 2 +-
drivers/dma/bestcomm/bestcomm.c | 22 +-
drivers/dma/bestcomm/fec.c | 4 +-
drivers/dma/bestcomm/gen_bd.c | 4 +-
drivers/dma/dma-jz4780.c | 1 +
drivers/dma/dmaengine.c | 3 +-
drivers/dma/dmaengine.h | 2 +-
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c | 112 +-
drivers/dma/dw-axi-dmac/dw-axi-dmac.h | 35 +-
drivers/dma/dw-edma/dw-edma-core.c | 1 -
drivers/dma/dw-edma/dw-edma-pcie.c | 17 +-
drivers/dma/dw/pci.c | 6 +-
drivers/dma/fsl-edma-common.c | 35 +-
drivers/dma/fsl-edma-common.h | 4 +
drivers/dma/fsl-edma.c | 7 +
drivers/dma/hisi_dma.c | 6 +-
drivers/dma/hsu/pci.c | 6 +-
drivers/dma/idxd/device.c | 29 +-
drivers/dma/idxd/dma.c | 5 +-
drivers/dma/idxd/idxd.h | 2 -
drivers/dma/idxd/init.c | 14 +-
drivers/dma/idxd/irq.c | 8 +-
drivers/dma/idxd/registers.h | 4 +-
drivers/dma/imx-sdma.c | 28 +-
drivers/dma/ioat/init.c | 10 +-
drivers/dma/milbeaut-hdmac.c | 2 +-
drivers/dma/mmp_pdma.c | 7 +-
drivers/dma/plx_dma.c | 10 +-
drivers/dma/pxa_dma.c | 10 +-
drivers/dma/qcom/bam_dma.c | 90 +-
drivers/dma/qcom/qcom_adm.c | 56 +-
drivers/dma/sa11x0-dma.c | 11 +-
drivers/dma/sh/rcar-dmac.c | 13 +-
drivers/dma/sh/rz-dmac.c | 16 +-
drivers/dma/sh/shdma-base.c | 8 -
drivers/dma/sprd-dma.c | 3 -
drivers/dma/stm32-dma.c | 24 +-
drivers/dma/stm32-mdma.c | 3 +-
drivers/dma/tegra20-apb-dma.c | 6 -
drivers/dma/tegra210-adma.c | 58 +-
drivers/dma/ti/k3-udma.c | 32 +-
drivers/dma/xilinx/xilinx_dma.c | 14 +-
drivers/dma/xilinx/xilinx_dpdma.c | 32 +-
drivers/dma/xilinx/zynqmp_dma.c | 79 +-
drivers/edac/al_mc_edac.c | 12 +-
drivers/edac/amd64_edac.c | 22 +-
drivers/edac/edac_mc.c | 42 +-
drivers/edac/edac_mc_sysfs.c | 8 +-
drivers/edac/sb_edac.c | 2 +-
drivers/edac/ti_edac.c | 7 +-
drivers/extcon/Kconfig | 2 +-
drivers/extcon/extcon-axp288.c | 31 +-
drivers/extcon/extcon-max3355.c | 1 -
drivers/extcon/extcon-usb-gpio.c | 3 +-
drivers/extcon/extcon-usbc-tusb320.c | 163 +-
drivers/firewire/core-cdev.c | 32 +-
drivers/firewire/net.c | 14 +-
drivers/firewire/sbp2.c | 10 +-
drivers/firmware/arm_ffa/driver.c | 53 +-
drivers/firmware/cirrus/cs_dsp.c | 156 +-
drivers/firmware/efi/efi.c | 5 +-
drivers/firmware/efi/memmap.c | 2 +-
drivers/firmware/psci/psci_checker.c | 2 +-
drivers/firmware/qcom_scm.c | 6 +-
drivers/firmware/stratix10-svc.c | 4 +-
drivers/firmware/tegra/bpmp-debugfs.c | 26 +-
drivers/firmware/tegra/bpmp-tegra210.c | 7 +-
drivers/firmware/xilinx/zynqmp.c | 63 +
drivers/fsi/fsi-occ.c | 218 +-
drivers/fsi/fsi-sbefifo.c | 28 +-
drivers/gpio/Kconfig | 123 +-
drivers/gpio/Makefile | 1 +
drivers/gpio/gpio-aggregator.c | 25 +-
drivers/gpio/gpio-amdpt.c | 4 +-
drivers/gpio/gpio-max7300.c | 4 +-
drivers/gpio/gpio-max7301.c | 4 +-
drivers/gpio/gpio-max730x.c | 6 +-
drivers/gpio/gpio-max77620.c | 1 -
drivers/gpio/gpio-mc33880.c | 2 -
drivers/gpio/gpio-mlxbf2.c | 147 +-
drivers/gpio/gpio-realtek-otto.c | 2 +-
drivers/gpio/gpio-tegra186.c | 114 +-
drivers/gpio/gpio-tps65218.c | 1 -
drivers/gpio/gpio-uniphier.c | 18 +-
drivers/gpio/gpio-virtio.c | 302 +-
drivers/gpio/gpio-xgs-iproc.c | 2 +-
drivers/gpio/gpio-xilinx.c | 6 +-
drivers/gpio/gpio-zynqmp-modepin.c | 162 +
drivers/gpio/gpiolib-acpi.c | 5 +-
drivers/gpio/gpiolib.c | 9 +-
drivers/gpu/drm/Kconfig | 29 +-
drivers/gpu/drm/Makefile | 1 -
drivers/gpu/drm/amd/amdgpu/Makefile | 6 +-
drivers/gpu/drm/amd/amdgpu/aldebaran.c | 2 +
drivers/gpu/drm/amd/amdgpu/amdgpu.h | 11 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 17 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h | 13 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 64 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c | 2 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.h | 2 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 4 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 143 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.h | 8 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c | 256 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.h | 6 -
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 147 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_df.h | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c | 873 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.h | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 669 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 12 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c | 11 +
drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 2 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.h | 7 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c | 11 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 9 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | 6 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 44 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_mca.c | 8 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_mca.h | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 59 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_object.h | 2 -
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 755 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h | 46 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 394 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.h | 25 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c | 22 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 18 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h | 19 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 44 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 69 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h | 3 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c | 175 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_umc.h | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_umr.h | 51 +
drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 119 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.h | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 43 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vce.h | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c | 192 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.h | 4 +
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | 10 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 30 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c | 4 +-
drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h | 7 +-
drivers/gpu/drm/amd/amdgpu/athub_v2_0.c | 7 +-
drivers/gpu/drm/amd/amdgpu/athub_v2_1.c | 9 +-
drivers/gpu/drm/amd/amdgpu/beige_goby_reg_init.c | 54 -
.../gpu/drm/amd/amdgpu/cyan_skillfish_reg_init.c | 51 -
drivers/gpu/drm/amd/amdgpu/df_v3_6.c | 31 +
drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c | 411 +-
drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 4 +
drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 4 +
drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 235 +-
drivers/gpu/drm/amd/amdgpu/gfx_v9_4_2.c | 5 +
drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c | 4 +
drivers/gpu/drm/amd/amdgpu/gfxhub_v1_1.c | 18 +-
drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c | 6 +-
drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c | 91 +-
drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c | 4 +-
drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 136 +-
drivers/gpu/drm/amd/amdgpu/hdp_v4_0.c | 15 +-
drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.c | 20 -
drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.h | 20 +
drivers/gpu/drm/amd/amdgpu/jpeg_v2_5.c | 40 +-
drivers/gpu/drm/amd/amdgpu/mca_v3_0.c | 9 +-
drivers/gpu/drm/amd/amdgpu/mmhub_v2_0.c | 73 +-
drivers/gpu/drm/amd/amdgpu/mmhub_v2_3.c | 6 +-
drivers/gpu/drm/amd/amdgpu/navi10_ih.c | 13 +-
drivers/gpu/drm/amd/amdgpu/navi10_reg_init.c | 55 -
drivers/gpu/drm/amd/amdgpu/navi12_reg_init.c | 52 -
drivers/gpu/drm/amd/amdgpu/navi14_reg_init.c | 53 -
drivers/gpu/drm/amd/amdgpu/nbio_v2_3.c | 31 +
drivers/gpu/drm/amd/amdgpu/nbio_v2_3.h | 1 +
drivers/gpu/drm/amd/amdgpu/nbio_v7_4.c | 66 +-
drivers/gpu/drm/amd/amdgpu/nbio_v7_4.h | 1 +
drivers/gpu/drm/amd/amdgpu/nv.c | 383 +-
drivers/gpu/drm/amd/amdgpu/nv.h | 12 +-
drivers/gpu/drm/amd/amdgpu/psp_v10_0.c | 22 +-
drivers/gpu/drm/amd/amdgpu/psp_v11_0.c | 93 +-
drivers/gpu/drm/amd/amdgpu/psp_v12_0.c | 14 +-
drivers/gpu/drm/amd/amdgpu/psp_v13_0.c | 14 +-
drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c | 100 +-
drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c | 32 +-
drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c | 59 +-
.../gpu/drm/amd/amdgpu/sienna_cichlid_reg_init.c | 54 -
drivers/gpu/drm/amd/amdgpu/soc15.c | 346 +-
drivers/gpu/drm/amd/amdgpu/soc15.h | 5 +-
drivers/gpu/drm/amd/amdgpu/ta_ras_if.h | 51 +-
drivers/gpu/drm/amd/amdgpu/umc_v6_7.c | 34 +
drivers/gpu/drm/amd/amdgpu/uvd_v3_1.c | 24 +-
drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c | 24 +-
drivers/gpu/drm/amd/amdgpu/uvd_v5_0.c | 24 +-
drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c | 35 +-
drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c | 43 +-
drivers/gpu/drm/amd/amdgpu/vangogh_reg_init.c | 50 -
drivers/gpu/drm/amd/amdgpu/vce_v2_0.c | 23 +-
drivers/gpu/drm/amd/amdgpu/vce_v3_0.c | 32 +-
drivers/gpu/drm/amd/amdgpu/vce_v4_0.c | 52 +-
drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c | 15 +-
drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c | 28 +-
drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c | 44 +-
drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c | 62 +-
drivers/gpu/drm/amd/amdgpu/yellow_carp_reg_init.c | 51 -
drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 79 +-
drivers/gpu/drm/amd/amdkfd/kfd_device.c | 269 +-
.../gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 7 +-
.../gpu/drm/amd/amdkfd/kfd_device_queue_manager.h | 2 +-
drivers/gpu/drm/amd/amdkfd/kfd_flat_memory.c | 2 +-
drivers/gpu/drm/amd/amdkfd/kfd_int_process_v9.c | 4 +-
drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c | 1 -
drivers/gpu/drm/amd/amdkfd/kfd_migrate.c | 191 +-
drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager.h | 3 +-
drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_cik.c | 32 +-
drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v10.c | 19 +-
drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v9.c | 19 +-
drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_vi.c | 35 +-
drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 28 +-
drivers/gpu/drm/amd/amdkfd/kfd_process.c | 115 +-
.../gpu/drm/amd/amdkfd/kfd_process_queue_manager.c | 24 +-
drivers/gpu/drm/amd/amdkfd/kfd_svm.c | 262 +-
drivers/gpu/drm/amd/amdkfd/kfd_svm.h | 1 +
drivers/gpu/drm/amd/amdkfd/kfd_topology.c | 19 +-
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 1100 +-
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 103 +-
.../drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 44 +-
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c | 16 +-
.../drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 71 +-
.../amd/display/amdgpu_dm/amdgpu_dm_mst_types.c | 156 +-
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c | 10 +-
drivers/gpu/drm/amd/display/amdgpu_dm/dc_fpu.c | 2 +-
drivers/gpu/drm/amd/display/dc/Makefile | 3 +-
drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c | 102 +-
.../gpu/drm/amd/display/dc/bios/command_table2.c | 14 +-
.../amd/display/dc/bios/command_table_helper2.c | 1 +
drivers/gpu/drm/amd/display/dc/calcs/dcn_calcs.c | 55 +-
drivers/gpu/drm/amd/display/dc/clk_mgr/Makefile | 9 +
drivers/gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c | 21 +-
.../amd/display/dc/clk_mgr/dcn20/dcn20_clk_mgr.c | 12 +-
.../amd/display/dc/clk_mgr/dcn201/dcn201_clk_mgr.c | 258 +
.../amd/display/dc/clk_mgr/dcn201/dcn201_clk_mgr.h | 34 +
.../drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c | 16 +-
.../drm/amd/display/dc/clk_mgr/dcn301/vg_clk_mgr.c | 4 +-
.../amd/display/dc/clk_mgr/dcn31/dcn31_clk_mgr.c | 40 +-
drivers/gpu/drm/amd/display/dc/core/dc.c | 389 +-
drivers/gpu/drm/amd/display/dc/core/dc_link.c | 1111 +-
drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c | 26 +-
drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c | 1830 +-
drivers/gpu/drm/amd/display/dc/core/dc_link_dpcd.c | 11 +-
drivers/gpu/drm/amd/display/dc/core/dc_link_dpia.c | 962 +
.../gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c | 516 +-
drivers/gpu/drm/amd/display/dc/core/dc_link_hwss.c | 361 +-
drivers/gpu/drm/amd/display/dc/core/dc_resource.c | 165 +-
drivers/gpu/drm/amd/display/dc/core/dc_stat.c | 8 +
drivers/gpu/drm/amd/display/dc/core/dc_stream.c | 4 +
drivers/gpu/drm/amd/display/dc/dc.h | 108 +-
drivers/gpu/drm/amd/display/dc/dc_dp_types.h | 305 +-
drivers/gpu/drm/amd/display/dc/dc_dsc.h | 11 +-
drivers/gpu/drm/amd/display/dc/dc_link.h | 38 +-
drivers/gpu/drm/amd/display/dc/dc_stream.h | 13 +
drivers/gpu/drm/amd/display/dc/dc_types.h | 23 +
drivers/gpu/drm/amd/display/dc/dce/dce_abm.h | 16 +
drivers/gpu/drm/amd/display/dc/dce/dce_audio.c | 6 +-
drivers/gpu/drm/amd/display/dc/dce/dce_aux.c | 49 +-
.../gpu/drm/amd/display/dc/dce/dce_clock_source.h | 9 +
drivers/gpu/drm/amd/display/dc/dce/dce_hwseq.h | 44 +-
.../drm/amd/display/dc/dce/dce_stream_encoder.c | 2 +
drivers/gpu/drm/amd/display/dc/dce/dmub_abm.c | 21 +
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c | 22 +
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.h | 1 +
.../amd/display/dc/dce110/dce110_hw_sequencer.c | 168 +-
.../gpu/drm/amd/display/dc/dcn10/dcn10_dpp_dscl.c | 12 +-
.../drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c | 130 +-
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_ipp.h | 33 +-
.../drm/amd/display/dc/dcn10/dcn10_link_encoder.c | 9 +
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_optc.c | 2 +-
.../gpu/drm/amd/display/dc/dcn10/dcn10_resource.c | 2 +-
.../amd/display/dc/dcn10/dcn10_stream_encoder.c | 31 +
.../amd/display/dc/dcn10/dcn10_stream_encoder.h | 2 +
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_dccg.h | 34 +-
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c | 52 +-
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_optc.c | 5 +
.../gpu/drm/amd/display/dc/dcn20/dcn20_resource.c | 57 +-
.../amd/display/dc/dcn20/dcn20_stream_encoder.c | 17 +-
.../amd/display/dc/dcn20/dcn20_stream_encoder.h | 1 +
drivers/gpu/drm/amd/display/dc/dcn201/Makefile | 36 +
.../gpu/drm/amd/display/dc/dcn201/dcn201_dccg.c | 84 +
.../gpu/drm/amd/display/dc/dcn201/dcn201_dccg.h | 37 +
drivers/gpu/drm/amd/display/dc/dcn201/dcn201_dpp.c | 316 +
drivers/gpu/drm/amd/display/dc/dcn201/dcn201_dpp.h | 83 +
.../gpu/drm/amd/display/dc/dcn201/dcn201_hubbub.c | 107 +
.../gpu/drm/amd/display/dc/dcn201/dcn201_hubbub.h | 45 +
.../gpu/drm/amd/display/dc/dcn201/dcn201_hubp.c | 150 +
.../gpu/drm/amd/display/dc/dcn201/dcn201_hubp.h | 132 +
.../gpu/drm/amd/display/dc/dcn201/dcn201_hwseq.c | 630 +
.../gpu/drm/amd/display/dc/dcn201/dcn201_hwseq.h | 46 +
.../gpu/drm/amd/display/dc/dcn201/dcn201_init.c | 131 +
.../gpu/drm/amd/display/dc/dcn201/dcn201_init.h | 33 +
.../amd/display/dc/dcn201/dcn201_link_encoder.c | 209 +
.../amd/display/dc/dcn201/dcn201_link_encoder.h | 59 +
drivers/gpu/drm/amd/display/dc/dcn201/dcn201_mpc.c | 125 +
drivers/gpu/drm/amd/display/dc/dcn201/dcn201_mpc.h | 86 +
drivers/gpu/drm/amd/display/dc/dcn201/dcn201_opp.c | 72 +
drivers/gpu/drm/amd/display/dc/dcn201/dcn201_opp.h | 74 +
.../gpu/drm/amd/display/dc/dcn201/dcn201_optc.c | 203 +
.../gpu/drm/amd/display/dc/dcn201/dcn201_optc.h | 74 +
.../drm/amd/display/dc/dcn201/dcn201_resource.c | 1307 +
.../drm/amd/display/dc/dcn201/dcn201_resource.h | 50 +
.../gpu/drm/amd/display/dc/dcn21/dcn21_resource.c | 2 +-
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_afmt.c | 24 +-
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_afmt.h | 24 +
.../amd/display/dc/dcn30/dcn30_dio_link_encoder.c | 4 +
.../display/dc/dcn30/dcn30_dio_stream_encoder.c | 18 +-
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_dpp.c | 73 +-
.../gpu/drm/amd/display/dc/dcn30/dcn30_dpp_cm.c | 8 +-
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hubp.c | 6 -
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.c | 5 +-
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_init.c | 1 +
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_mpc.c | 7 +-
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_optc.c | 17 +-
.../gpu/drm/amd/display/dc/dcn30/dcn30_resource.c | 50 +-
.../gpu/drm/amd/display/dc/dcn30/dcn30_resource.h | 7 +
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_vpg.c | 200 +-
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_vpg.h | 15 +-
drivers/gpu/drm/amd/display/dc/dcn301/Makefile | 26 -
.../drm/amd/display/dc/dcn301/dcn301_resource.c | 263 +-
.../drm/amd/display/dc/dcn301/dcn301_resource.h | 3 +
.../drm/amd/display/dc/dcn302/dcn302_resource.c | 8 +-
.../drm/amd/display/dc/dcn303/dcn303_resource.c | 16 +-
drivers/gpu/drm/amd/display/dc/dcn31/Makefile | 4 +-
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_afmt.c | 92 +
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_afmt.h | 126 +
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_apg.c | 173 +
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_apg.h | 115 +
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_dccg.c | 383 +-
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_dccg.h | 52 +-
.../amd/display/dc/dcn31/dcn31_dio_link_encoder.c | 136 +-
.../display/dc/dcn31/dcn31_hpo_dp_link_encoder.c | 616 +
.../display/dc/dcn31/dcn31_hpo_dp_link_encoder.h | 222 +
.../display/dc/dcn31/dcn31_hpo_dp_stream_encoder.c | 752 +
.../display/dc/dcn31/dcn31_hpo_dp_stream_encoder.h | 241 +
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hwseq.c | 163 +-
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hwseq.h | 3 +-
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_init.c | 4 +-
.../gpu/drm/amd/display/dc/dcn31/dcn31_resource.c | 349 +-
.../gpu/drm/amd/display/dc/dcn31/dcn31_resource.h | 10 +
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_vpg.c | 87 +
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_vpg.h | 162 +
drivers/gpu/drm/amd/display/dc/dm_cp_psp.h | 3 +
drivers/gpu/drm/amd/display/dc/dm_helpers.h | 11 +
drivers/gpu/drm/amd/display/dc/dml/Makefile | 10 +-
.../gpu/drm/amd/display/dc/dml/dcn20/dcn20_fpu.c | 102 +
.../gpu/drm/amd/display/dc/dml/dcn20/dcn20_fpu.h | 34 +
.../display/dc/dml/dcn20/display_rq_dlg_calc_20.c | 158 +-
.../display/dc/dml/dcn20/display_rq_dlg_calc_20.h | 4 +-
.../dc/dml/dcn20/display_rq_dlg_calc_20v2.c | 156 +-
.../dc/dml/dcn20/display_rq_dlg_calc_20v2.h | 4 +-
.../amd/display/dc/dml/dcn21/display_mode_vba_21.c | 236 +-
.../display/dc/dml/dcn21/display_rq_dlg_calc_21.c | 156 +-
.../display/dc/dml/dcn21/display_rq_dlg_calc_21.h | 4 +-
drivers/gpu/drm/amd/display/dc/dml/dcn2x/dcn2x.c | 102 -
drivers/gpu/drm/amd/display/dc/dml/dcn2x/dcn2x.h | 34 -
.../amd/display/dc/dml/dcn30/display_mode_vba_30.c | 13 +-
.../display/dc/dml/dcn30/display_rq_dlg_calc_30.c | 132 +-
.../display/dc/dml/dcn30/display_rq_dlg_calc_30.h | 4 +-
.../gpu/drm/amd/display/dc/dml/dcn301/dcn301_fpu.c | 390 +
.../gpu/drm/amd/display/dc/dml/dcn301/dcn301_fpu.h | 42 +
.../amd/display/dc/dml/dcn31/display_mode_vba_31.c | 20 +-
.../display/dc/dml/dcn31/display_rq_dlg_calc_31.c | 166 +-
.../display/dc/dml/dcn31/display_rq_dlg_calc_31.h | 4 +-
.../drm/amd/display/dc/dml/display_mode_enums.h | 4 +-
.../gpu/drm/amd/display/dc/dml/display_mode_lib.c | 1 +
.../gpu/drm/amd/display/dc/dml/display_mode_lib.h | 5 +-
.../amd/display/dc/dml/display_rq_dlg_helpers.c | 256 +-
.../amd/display/dc/dml/display_rq_dlg_helpers.h | 20 +-
.../amd/display/dc/dml/dml1_display_rq_dlg_calc.c | 246 +-
.../amd/display/dc/dml/dml1_display_rq_dlg_calc.h | 10 +-
.../drm/amd/display/dc/{ => dml}/dsc/qp_tables.h | 0
.../gpu/drm/amd/display/dc/dml/dsc/rc_calc_fpu.c | 291 +
.../gpu/drm/amd/display/dc/dml/dsc/rc_calc_fpu.h | 94 +
drivers/gpu/drm/amd/display/dc/dsc/Makefile | 29 -
drivers/gpu/drm/amd/display/dc/dsc/dc_dsc.c | 195 +-
drivers/gpu/drm/amd/display/dc/dsc/rc_calc.c | 259 -
drivers/gpu/drm/amd/display/dc/dsc/rc_calc.h | 50 +-
drivers/gpu/drm/amd/display/dc/dsc/rc_calc_dpi.c | 1 -
drivers/gpu/drm/amd/display/dc/gpio/hw_factory.c | 1 +
drivers/gpu/drm/amd/display/dc/gpio/hw_translate.c | 1 +
drivers/gpu/drm/amd/display/dc/inc/core_types.h | 36 +-
drivers/gpu/drm/amd/display/dc/inc/dc_link_ddc.h | 1 +
drivers/gpu/drm/amd/display/dc/inc/dc_link_dp.h | 45 +-
drivers/gpu/drm/amd/display/dc/inc/dc_link_dpia.h | 99 +
drivers/gpu/drm/amd/display/dc/inc/hw/abm.h | 1 +
.../drm/amd/display/dc/inc/hw/clk_mgr_internal.h | 13 +
drivers/gpu/drm/amd/display/dc/inc/hw/dccg.h | 32 +
drivers/gpu/drm/amd/display/dc/inc/hw/dpp.h | 14 +
drivers/gpu/drm/amd/display/dc/inc/hw/dwb.h | 5 +-
drivers/gpu/drm/amd/display/dc/inc/hw/hw_shared.h | 4 +
.../gpu/drm/amd/display/dc/inc/hw/link_encoder.h | 97 +
drivers/gpu/drm/amd/display/dc/inc/hw/mpc.h | 2 +
.../gpu/drm/amd/display/dc/inc/hw/stream_encoder.h | 87 +-
.../drm/amd/display/dc/inc/hw/timing_generator.h | 3 +
drivers/gpu/drm/amd/display/dc/inc/hw_sequencer.h | 2 +-
.../drm/amd/display/dc/inc/hw_sequencer_private.h | 8 +
drivers/gpu/drm/amd/display/dc/inc/link_enc_cfg.h | 26 +-
drivers/gpu/drm/amd/display/dc/inc/link_hwss.h | 1 +
drivers/gpu/drm/amd/display/dc/inc/resource.h | 19 +
drivers/gpu/drm/amd/display/dc/irq/Makefile | 10 +
.../amd/display/dc/irq/dcn20/irq_service_dcn20.c | 25 +
.../amd/display/dc/irq/dcn20/irq_service_dcn20.h | 2 +
.../amd/display/dc/irq/dcn201/irq_service_dcn201.c | 374 +
.../amd/display/dc/irq/dcn201/irq_service_dcn201.h | 34 +
.../amd/display/dc/irq/dcn21/irq_service_dcn21.c | 25 +
.../amd/display/dc/irq/dcn21/irq_service_dcn21.h | 2 +
drivers/gpu/drm/amd/display/dc/irq/irq_service.c | 2 +-
drivers/gpu/drm/amd/display/dc/irq/irq_service.h | 4 +
drivers/gpu/drm/amd/display/dc/os_types.h | 2 +
.../display/dc/virtual/virtual_stream_encoder.c | 5 +-
drivers/gpu/drm/amd/display/dmub/dmub_srv.h | 11 +
drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h | 275 +-
drivers/gpu/drm/amd/display/dmub/src/dmub_dcn31.c | 13 +
drivers/gpu/drm/amd/display/dmub/src/dmub_dcn31.h | 2 +
drivers/gpu/drm/amd/display/dmub/src/dmub_srv.c | 21 +-
.../gpu/drm/amd/display/dmub/src/dmub_srv_stat.c | 16 +
.../drm/amd/display/include/bios_parser_types.h | 8 +
drivers/gpu/drm/amd/display/include/dal_asic_id.h | 3 +-
drivers/gpu/drm/amd/display/include/dal_types.h | 1 +
drivers/gpu/drm/amd/display/include/dpcd_defs.h | 17 +
.../amd/display/include/grph_object_ctrl_defs.h | 1 +
.../gpu/drm/amd/display/include/grph_object_defs.h | 12 +
.../gpu/drm/amd/display/include/grph_object_id.h | 8 +
.../gpu/drm/amd/display/include/i2caux_interface.h | 3 +
.../drm/amd/display/include/link_service_types.h | 86 +-
drivers/gpu/drm/amd/display/include/logger_types.h | 6 +
.../drm/amd/display/modules/color/color_gamma.c | 32 +-
.../drm/amd/display/modules/freesync/freesync.c | 15 +-
.../gpu/drm/amd/display/modules/hdcp/hdcp_psp.c | 6 +-
drivers/gpu/drm/amd/display/modules/inc/mod_hdcp.h | 2 +
drivers/gpu/drm/amd/include/amd_shared.h | 5 +-
.../amd/include/asic_reg/clk/clk_11_0_1_offset.h | 32 +
.../amd/include/asic_reg/clk/clk_11_0_1_sh_mask.h | 37 +
.../amd/include/asic_reg/dcn/dcn_2_0_3_offset.h | 6193 +++
.../amd/include/asic_reg/dcn/dcn_2_0_3_sh_mask.h | 22091 +++++++++
.../amd/include/asic_reg/dcn/dcn_3_1_2_offset.h | 2 +
.../amd/include/asic_reg/dcn/dcn_3_1_2_sh_mask.h | 8 +
.../drm/amd/include/asic_reg/df/df_3_6_offset.h | 5 +
.../drm/amd/include/asic_reg/df/df_3_6_sh_mask.h | 132 +
.../amd/include/asic_reg/dpcs/dpcs_2_0_3_offset.h | 151 +
.../amd/include/asic_reg/dpcs/dpcs_2_0_3_sh_mask.h | 952 +
.../amd/include/asic_reg/mp/mp_11_0_8_sh_mask.h | 355 +
drivers/gpu/drm/amd/include/atombios.h | 2 +-
drivers/gpu/drm/amd/include/atomfirmware.h | 4 +
drivers/gpu/drm/amd/include/soc15_hw_ip.h | 2 +
drivers/gpu/drm/amd/pm/amdgpu_pm.c | 26 +-
drivers/gpu/drm/amd/pm/inc/amdgpu_smu.h | 4 +-
drivers/gpu/drm/amd/pm/inc/smu_v11_0.h | 4 +-
drivers/gpu/drm/amd/pm/inc/smu_v13_0.h | 4 +-
drivers/gpu/drm/amd/pm/inc/smu_v13_0_1_ppsmc.h | 4 +-
drivers/gpu/drm/amd/pm/powerplay/amd_powerplay.c | 26 +-
.../gpu/drm/amd/pm/powerplay/hwmgr/ppatomfwctrl.h | 4 +-
.../gpu/drm/amd/pm/powerplay/hwmgr/smu10_hwmgr.c | 8 +-
.../gpu/drm/amd/pm/powerplay/hwmgr/smu7_hwmgr.c | 10 +-
.../gpu/drm/amd/pm/powerplay/hwmgr/smu8_hwmgr.c | 2 +
.../gpu/drm/amd/pm/powerplay/hwmgr/smu_helper.h | 13 +
.../gpu/drm/amd/pm/powerplay/hwmgr/vega10_hwmgr.c | 12 +-
.../gpu/drm/amd/pm/powerplay/hwmgr/vega12_hwmgr.c | 4 +
.../gpu/drm/amd/pm/powerplay/hwmgr/vega20_hwmgr.c | 14 +-
drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c | 146 +-
drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c | 14 +
.../drm/amd/pm/swsmu/smu11/cyan_skillfish_ppt.c | 17 +-
drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c | 64 +-
.../drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c | 119 +-
drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c | 117 +-
drivers/gpu/drm/amd/pm/swsmu/smu11/vangogh_ppt.c | 96 +-
drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c | 6 +-
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c | 33 +-
.../gpu/drm/amd/pm/swsmu/smu13/yellow_carp_ppt.c | 87 -
drivers/gpu/drm/arm/malidp_planes.c | 2 +-
drivers/gpu/drm/armada/armada_gem.c | 9 +-
drivers/gpu/drm/ast/ast_drv.h | 2 -
drivers/gpu/drm/ast/ast_mm.c | 27 +-
drivers/gpu/drm/ast/ast_mode.c | 18 +-
drivers/gpu/drm/bridge/adv7511/adv7511_cec.c | 15 +-
drivers/gpu/drm/bridge/analogix/anx7625.c | 27 +-
drivers/gpu/drm/bridge/cdns-dsi.c | 4 +-
drivers/gpu/drm/bridge/ite-it66121.c | 21 +-
drivers/gpu/drm/bridge/lontium-lt9611uxc.c | 9 +-
drivers/gpu/drm/bridge/lvds-codec.c | 76 +-
drivers/gpu/drm/bridge/nwl-dsi.c | 35 +
drivers/gpu/drm/bridge/panel.c | 37 +
drivers/gpu/drm/bridge/parade-ps8640.c | 292 +-
drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c | 6 +-
drivers/gpu/drm/bridge/ti-sn65dsi83.c | 17 +-
drivers/gpu/drm/bridge/ti-sn65dsi86.c | 25 +-
drivers/gpu/drm/drm_bridge.c | 78 +-
drivers/gpu/drm/drm_cache.c | 4 +-
drivers/gpu/drm/drm_connector.c | 113 +-
drivers/gpu/drm/drm_crtc_internal.h | 2 +
drivers/gpu/drm/drm_dp_helper.c | 42 +-
drivers/gpu/drm/drm_dp_mst_topology.c | 47 +-
drivers/gpu/drm/drm_edid.c | 367 +-
drivers/gpu/drm/drm_format_helper.c | 88 +
drivers/gpu/drm/drm_fourcc.c | 3 +
drivers/gpu/drm/drm_gem.c | 26 +-
drivers/gpu/drm/drm_gem_framebuffer_helper.c | 3 +
drivers/gpu/drm/drm_gem_shmem_helper.c | 25 +-
drivers/gpu/drm/drm_gem_vram_helper.c | 1 -
drivers/gpu/drm/drm_ioctl.c | 21 +-
drivers/gpu/drm/drm_kms_helper_common.c | 11 -
drivers/gpu/drm/drm_lease.c | 39 +-
drivers/gpu/drm/drm_mipi_dsi.c | 81 +
drivers/gpu/drm/drm_mm.c | 5 +-
drivers/gpu/drm/drm_modeset_lock.c | 51 +-
drivers/gpu/drm/drm_of.c | 3 +
drivers/gpu/drm/drm_panel_orientation_quirks.c | 61 +-
drivers/gpu/drm/drm_plane_helper.c | 1 -
drivers/gpu/drm/drm_prime.c | 9 +-
drivers/gpu/drm/drm_probe_helper.c | 119 +-
drivers/gpu/drm/drm_property.c | 9 +-
drivers/gpu/drm/drm_sysfs.c | 87 +-
drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c | 3 +
drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 1 -
drivers/gpu/drm/etnaviv/etnaviv_sched.c | 4 +-
drivers/gpu/drm/exynos/exynos_drm_gem.c | 3 +
drivers/gpu/drm/gma500/backlight.c | 12 +-
drivers/gpu/drm/gma500/cdv_device.c | 24 +-
drivers/gpu/drm/gma500/cdv_intel_display.c | 10 +-
drivers/gpu/drm/gma500/cdv_intel_dp.c | 12 +-
drivers/gpu/drm/gma500/cdv_intel_lvds.c | 22 +-
drivers/gpu/drm/gma500/framebuffer.c | 16 +-
drivers/gpu/drm/gma500/gem.c | 2 +-
drivers/gpu/drm/gma500/gma_device.c | 2 +-
drivers/gpu/drm/gma500/gma_display.c | 14 +-
drivers/gpu/drm/gma500/gtt.c | 18 +-
drivers/gpu/drm/gma500/intel_bios.c | 10 +-
drivers/gpu/drm/gma500/intel_gmbus.c | 12 +-
drivers/gpu/drm/gma500/mid_bios.c | 11 +-
drivers/gpu/drm/gma500/mmu.c | 12 +-
drivers/gpu/drm/gma500/oaktrail_crtc.c | 8 +-
drivers/gpu/drm/gma500/oaktrail_device.c | 20 +-
drivers/gpu/drm/gma500/oaktrail_hdmi.c | 18 +-
drivers/gpu/drm/gma500/oaktrail_lvds.c | 14 +-
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c | 2 +-
drivers/gpu/drm/gma500/opregion.c | 14 +-
drivers/gpu/drm/gma500/power.c | 20 +-
drivers/gpu/drm/gma500/psb_device.c | 16 +-
drivers/gpu/drm/gma500/psb_drv.c | 147 +-
drivers/gpu/drm/gma500/psb_drv.h | 24 +-
drivers/gpu/drm/gma500/psb_intel_display.c | 10 +-
drivers/gpu/drm/gma500/psb_intel_lvds.c | 31 +-
drivers/gpu/drm/gma500/psb_intel_sdvo.c | 10 +-
drivers/gpu/drm/gma500/psb_irq.c | 26 +-
drivers/gpu/drm/gma500/psb_lid.c | 2 +-
drivers/gpu/drm/gud/Kconfig | 2 +-
drivers/gpu/drm/gud/gud_drv.c | 6 +
drivers/gpu/drm/gud/gud_internal.h | 12 +
drivers/gpu/drm/gud/gud_pipe.c | 6 +
drivers/gpu/drm/i915/Kconfig | 12 +
drivers/gpu/drm/i915/Makefile | 36 +-
drivers/gpu/drm/i915/display/g4x_dp.c | 90 +-
drivers/gpu/drm/i915/display/g4x_hdmi.c | 3 +-
drivers/gpu/drm/i915/display/icl_dsi.c | 165 +-
drivers/gpu/drm/i915/display/intel_acpi.c | 46 +
drivers/gpu/drm/i915/display/intel_acpi.h | 3 +
drivers/gpu/drm/i915/display/intel_atomic_plane.c | 209 +
drivers/gpu/drm/i915/display/intel_audio.c | 43 +-
drivers/gpu/drm/i915/display/intel_backlight.c | 1776 +
drivers/gpu/drm/i915/display/intel_backlight.h | 52 +
drivers/gpu/drm/i915/display/intel_bios.c | 458 +-
drivers/gpu/drm/i915/display/intel_bw.c | 2 +-
drivers/gpu/drm/i915/display/intel_cdclk.c | 348 +-
drivers/gpu/drm/i915/display/intel_cdclk.h | 4 +-
drivers/gpu/drm/i915/display/intel_color.c | 140 +-
drivers/gpu/drm/i915/display/intel_combo_phy.c | 8 +-
drivers/gpu/drm/i915/display/intel_connector.c | 6 +-
drivers/gpu/drm/i915/display/intel_crt.c | 4 +-
drivers/gpu/drm/i915/display/intel_cursor.c | 11 +-
drivers/gpu/drm/i915/display/intel_ddi.c | 536 +-
drivers/gpu/drm/i915/display/intel_ddi.h | 7 +-
drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c | 672 +-
drivers/gpu/drm/i915/display/intel_ddi_buf_trans.h | 23 +-
drivers/gpu/drm/i915/display/intel_display.c | 2526 +-
drivers/gpu/drm/i915/display/intel_display.h | 47 +-
.../gpu/drm/i915/display/intel_display_debugfs.c | 127 +-
.../gpu/drm/i915/display/intel_display_debugfs.h | 10 +-
drivers/gpu/drm/i915/display/intel_display_power.c | 15 +-
drivers/gpu/drm/i915/display/intel_display_power.h | 4 +
drivers/gpu/drm/i915/display/intel_display_types.h | 48 +-
drivers/gpu/drm/i915/display/intel_dmc.c | 20 +-
drivers/gpu/drm/i915/display/intel_dp.c | 809 +-
drivers/gpu/drm/i915/display/intel_dp.h | 22 +-
drivers/gpu/drm/i915/display/intel_dp_aux.c | 6 +-
.../gpu/drm/i915/display/intel_dp_aux_backlight.c | 12 +-
drivers/gpu/drm/i915/display/intel_dp_hdcp.c | 78 +-
.../gpu/drm/i915/display/intel_dp_link_training.c | 467 +-
.../gpu/drm/i915/display/intel_dp_link_training.h | 1 +
drivers/gpu/drm/i915/display/intel_dp_mst.c | 49 +-
drivers/gpu/drm/i915/display/intel_dp_mst.h | 4 +-
drivers/gpu/drm/i915/display/intel_dpio_phy.c | 33 +-
drivers/gpu/drm/i915/display/intel_dpio_phy.h | 5 +-
drivers/gpu/drm/i915/display/intel_dpll.c | 674 +-
drivers/gpu/drm/i915/display/intel_dpll.h | 26 +-
drivers/gpu/drm/i915/display/intel_dpll_mgr.c | 46 +-
drivers/gpu/drm/i915/display/intel_dpll_mgr.h | 11 -
drivers/gpu/drm/i915/display/intel_dpt.c | 239 +
drivers/gpu/drm/i915/display/intel_dpt.h | 19 +
drivers/gpu/drm/i915/display/intel_drrs.c | 437 +
drivers/gpu/drm/i915/display/intel_drrs.h | 36 +
drivers/gpu/drm/i915/display/intel_dsi.c | 16 +-
drivers/gpu/drm/i915/display/intel_dsi.h | 3 +
.../gpu/drm/i915/display/intel_dsi_dcs_backlight.c | 33 +-
drivers/gpu/drm/i915/display/intel_dsi_vbt.c | 3 +-
drivers/gpu/drm/i915/display/intel_dvo.c | 24 +-
drivers/gpu/drm/i915/display/intel_fb.c | 606 +-
drivers/gpu/drm/i915/display/intel_fb.h | 20 +-
drivers/gpu/drm/i915/display/intel_fb_pin.c | 274 +
drivers/gpu/drm/i915/display/intel_fb_pin.h | 28 +
drivers/gpu/drm/i915/display/intel_fbc.c | 292 +-
drivers/gpu/drm/i915/display/intel_fbc.h | 2 +-
drivers/gpu/drm/i915/display/intel_fbdev.c | 4 +-
drivers/gpu/drm/i915/display/intel_fdi.c | 321 +-
drivers/gpu/drm/i915/display/intel_fdi.h | 17 +-
drivers/gpu/drm/i915/display/intel_frontbuffer.c | 5 +-
drivers/gpu/drm/i915/display/intel_frontbuffer.h | 4 +-
drivers/gpu/drm/i915/display/intel_hdcp.c | 70 +-
drivers/gpu/drm/i915/display/intel_hdmi.c | 36 +-
drivers/gpu/drm/i915/display/intel_hdmi.h | 1 +
drivers/gpu/drm/i915/display/intel_hotplug.c | 4 +-
drivers/gpu/drm/i915/display/intel_lvds.c | 33 +-
drivers/gpu/drm/i915/display/intel_opregion.c | 5 +-
drivers/gpu/drm/i915/display/intel_panel.c | 1835 +-
drivers/gpu/drm/i915/display/intel_panel.h | 48 +-
drivers/gpu/drm/i915/display/intel_plane_initial.c | 283 +
drivers/gpu/drm/i915/display/intel_plane_initial.h | 13 +
drivers/gpu/drm/i915/display/intel_pps.c | 59 +
drivers/gpu/drm/i915/display/intel_pps.h | 3 +
drivers/gpu/drm/i915/display/intel_psr.c | 476 +-
drivers/gpu/drm/i915/display/intel_psr.h | 13 +-
drivers/gpu/drm/i915/display/intel_sdvo.c | 19 +-
drivers/gpu/drm/i915/display/intel_snps_phy.c | 225 +-
drivers/gpu/drm/i915/display/intel_snps_phy.h | 4 +-
drivers/gpu/drm/i915/display/intel_tc.c | 290 +-
drivers/gpu/drm/i915/display/intel_tc.h | 6 +-
drivers/gpu/drm/i915/display/intel_tv.c | 2 +-
drivers/gpu/drm/i915/display/intel_vdsc.c | 77 +-
drivers/gpu/drm/i915/display/intel_vdsc.h | 6 +-
drivers/gpu/drm/i915/display/skl_universal_plane.c | 58 +-
drivers/gpu/drm/i915/display/vlv_dsi.c | 53 +-
drivers/gpu/drm/i915/display/vlv_dsi_pll.c | 25 +-
drivers/gpu/drm/i915/gem/i915_gem_busy.c | 57 +-
drivers/gpu/drm/i915/gem/i915_gem_context.c | 514 +-
drivers/gpu/drm/i915/gem/i915_gem_context.h | 19 +-
drivers/gpu/drm/i915/gem/i915_gem_context_types.h | 58 +-
drivers/gpu/drm/i915/gem/i915_gem_create.c | 75 +-
drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c | 14 +-
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c | 823 +-
drivers/gpu/drm/i915/gem/i915_gem_internal.c | 2 +
drivers/gpu/drm/i915/gem/i915_gem_lmem.c | 33 +-
drivers/gpu/drm/i915/gem/i915_gem_lmem.h | 4 +
drivers/gpu/drm/i915/gem/i915_gem_mman.c | 2 +-
drivers/gpu/drm/i915/gem/i915_gem_object.c | 70 +-
drivers/gpu/drm/i915/gem/i915_gem_object.h | 29 +-
drivers/gpu/drm/i915/gem/i915_gem_object_types.h | 57 +-
drivers/gpu/drm/i915/gem/i915_gem_pm.c | 91 +
drivers/gpu/drm/i915/gem/i915_gem_pm.h | 1 +
drivers/gpu/drm/i915/gem/i915_gem_region.c | 70 +
drivers/gpu/drm/i915/gem/i915_gem_region.h | 37 +
drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 29 +-
drivers/gpu/drm/i915/gem/i915_gem_ttm.c | 201 +-
drivers/gpu/drm/i915/gem/i915_gem_ttm.h | 14 +
drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c | 206 +
drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.h | 26 +
drivers/gpu/drm/i915/gem/i915_gem_userptr.c | 8 +-
drivers/gpu/drm/i915/gem/i915_gemfs.c | 22 +-
drivers/gpu/drm/i915/gem/selftests/huge_pages.c | 48 +-
.../drm/i915/gem/selftests/i915_gem_client_blt.c | 29 +-
.../gpu/drm/i915/gem/selftests/i915_gem_context.c | 36 +-
.../drm/i915/gem/selftests/i915_gem_execbuffer.c | 190 -
drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c | 2 +
drivers/gpu/drm/i915/gem/selftests/mock_context.c | 5 +-
drivers/gpu/drm/i915/gt/debugfs_engines.c | 36 -
drivers/gpu/drm/i915/gt/debugfs_engines.h | 14 -
drivers/gpu/drm/i915/gt/debugfs_gt.c | 47 -
drivers/gpu/drm/i915/gt/debugfs_gt.h | 38 -
drivers/gpu/drm/i915/gt/debugfs_gt_pm.c | 630 -
drivers/gpu/drm/i915/gt/debugfs_gt_pm.h | 14 -
drivers/gpu/drm/i915/gt/gen6_ppgtt.c | 2 +-
drivers/gpu/drm/i915/gt/gen8_ppgtt.c | 7 +-
drivers/gpu/drm/i915/gt/gen8_ppgtt.h | 4 +-
drivers/gpu/drm/i915/gt/intel_context.c | 61 +-
drivers/gpu/drm/i915/gt/intel_context.h | 56 +-
drivers/gpu/drm/i915/gt/intel_context_types.h | 153 +-
drivers/gpu/drm/i915/gt/intel_engine.h | 19 +-
drivers/gpu/drm/i915/gt/intel_engine_cs.c | 150 +-
drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c | 2 +-
drivers/gpu/drm/i915/gt/intel_engine_pm.c | 36 +
drivers/gpu/drm/i915/gt/intel_engine_pm.h | 39 +
drivers/gpu/drm/i915/gt/intel_engine_types.h | 31 +-
.../gpu/drm/i915/gt/intel_execlists_submission.c | 17 +-
drivers/gpu/drm/i915/gt/intel_ggtt.c | 55 +-
drivers/gpu/drm/i915/gt/intel_gpu_commands.h | 22 +-
drivers/gpu/drm/i915/gt/intel_gt.c | 22 +-
drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.c | 2 -
drivers/gpu/drm/i915/gt/intel_gt_debugfs.c | 104 +
drivers/gpu/drm/i915/gt/intel_gt_debugfs.h | 42 +
drivers/gpu/drm/i915/gt/intel_gt_engines_debugfs.c | 36 +
drivers/gpu/drm/i915/gt/intel_gt_engines_debugfs.h | 14 +
drivers/gpu/drm/i915/gt/intel_gt_irq.c | 7 +
drivers/gpu/drm/i915/gt/intel_gt_pm.c | 22 +-
drivers/gpu/drm/i915/gt/intel_gt_pm.h | 14 +
drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.c | 677 +
drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.h | 20 +
drivers/gpu/drm/i915/gt/intel_gt_types.h | 12 +
drivers/gpu/drm/i915/gt/intel_gtt.c | 9 +-
drivers/gpu/drm/i915/gt/intel_gtt.h | 11 +-
drivers/gpu/drm/i915/gt/intel_llc.c | 3 +-
drivers/gpu/drm/i915/gt/intel_lrc.c | 93 +-
drivers/gpu/drm/i915/gt/intel_migrate.c | 2 +-
drivers/gpu/drm/i915/gt/intel_mocs.c | 176 +-
drivers/gpu/drm/i915/gt/intel_mocs.h | 1 +
drivers/gpu/drm/i915/gt/intel_ppgtt.c | 13 +-
drivers/gpu/drm/i915/gt/intel_rc6.c | 2 +-
drivers/gpu/drm/i915/gt/intel_region_lmem.c | 4 +-
drivers/gpu/drm/i915/gt/intel_ring.c | 3 +-
drivers/gpu/drm/i915/gt/intel_ring_submission.c | 7 +-
drivers/gpu/drm/i915/gt/intel_rps.c | 22 +-
drivers/gpu/drm/i915/gt/intel_rps.h | 1 +
drivers/gpu/drm/i915/gt/intel_sseu.c | 65 +-
drivers/gpu/drm/i915/gt/intel_sseu.h | 11 +-
drivers/gpu/drm/i915/gt/intel_sseu_debugfs.c | 10 +-
drivers/gpu/drm/i915/gt/intel_timeline.c | 4 +-
drivers/gpu/drm/i915/gt/intel_workarounds.c | 262 +-
drivers/gpu/drm/i915/gt/intel_workarounds.h | 2 +-
drivers/gpu/drm/i915/gt/mock_engine.c | 2 +
.../gpu/drm/i915/gt/selftest_engine_heartbeat.c | 4 +-
drivers/gpu/drm/i915/gt/selftest_execlists.c | 28 +-
drivers/gpu/drm/i915/gt/selftest_hangcheck.c | 10 +-
drivers/gpu/drm/i915/gt/selftest_workarounds.c | 2 +-
drivers/gpu/drm/i915/gt/uc/abi/guc_actions_abi.h | 1 +
drivers/gpu/drm/i915/gt/uc/intel_guc.c | 39 +-
drivers/gpu/drm/i915/gt/uc/intel_guc.h | 119 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c | 28 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c | 60 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_debugfs.c | 18 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c | 13 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h | 34 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_log_debugfs.c | 8 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c | 2301 +-
drivers/gpu/drm/i915/gt/uc/intel_huc.c | 14 +-
drivers/gpu/drm/i915/gt/uc/intel_huc_debugfs.c | 6 +-
drivers/gpu/drm/i915/gt/uc/intel_uc.c | 2 +-
drivers/gpu/drm/i915/gt/uc/intel_uc_debugfs.c | 6 +-
drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c | 93 +-
drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h | 9 +
drivers/gpu/drm/i915/gt/uc/selftest_guc.c | 127 +
.../gpu/drm/i915/gt/uc/selftest_guc_multi_lrc.c | 179 +
drivers/gpu/drm/i915/gvt/gtt.c | 17 +-
drivers/gpu/drm/i915/gvt/kvmgt.c | 4 +-
drivers/gpu/drm/i915/gvt/scheduler.c | 2 +-
drivers/gpu/drm/i915/i915_buddy.c | 45 +
drivers/gpu/drm/i915/i915_buddy.h | 8 +
drivers/gpu/drm/i915/i915_config.c | 2 +-
drivers/gpu/drm/i915/i915_debugfs.c | 286 +-
drivers/gpu/drm/i915/i915_drv.c | 17 +-
drivers/gpu/drm/i915/i915_drv.h | 168 +-
drivers/gpu/drm/i915/i915_gem.c | 2 -
drivers/gpu/drm/i915/i915_gem_gtt.c | 4 +-
drivers/gpu/drm/i915/i915_gem_ww.h | 25 +-
drivers/gpu/drm/i915/i915_gpu_error.c | 42 +-
drivers/gpu/drm/i915/i915_irq.c | 94 +-
drivers/gpu/drm/i915/i915_irq.h | 51 +-
drivers/gpu/drm/i915/i915_module.c | 4 +-
drivers/gpu/drm/i915/i915_params.h | 2 +-
drivers/gpu/drm/i915/i915_pci.c | 14 +-
drivers/gpu/drm/i915/i915_pci.h | 12 +-
drivers/gpu/drm/i915/i915_query.c | 5 +-
drivers/gpu/drm/i915/i915_reg.h | 180 +-
drivers/gpu/drm/i915/i915_request.c | 183 +-
drivers/gpu/drm/i915/i915_request.h | 49 +-
drivers/gpu/drm/i915/i915_sysfs.c | 1 -
drivers/gpu/drm/i915/i915_trace.h | 19 +-
drivers/gpu/drm/i915/i915_ttm_buddy_manager.c | 20 +-
drivers/gpu/drm/i915/i915_utils.h | 14 +-
drivers/gpu/drm/i915/i915_vma.c | 26 +-
drivers/gpu/drm/i915/i915_vma.h | 13 +-
drivers/gpu/drm/i915/i915_vma_types.h | 7 +-
drivers/gpu/drm/i915/intel_device_info.h | 1 +
drivers/gpu/drm/i915/intel_dram.c | 36 +-
drivers/gpu/drm/i915/intel_memory_region.c | 12 +
drivers/gpu/drm/i915/intel_memory_region.h | 4 +
drivers/gpu/drm/i915/intel_pcode.c | 235 +
drivers/gpu/drm/i915/intel_pcode.h | 26 +
drivers/gpu/drm/i915/intel_pm.c | 307 +-
drivers/gpu/drm/i915/intel_pm.h | 3 +-
drivers/gpu/drm/i915/intel_runtime_pm.c | 20 +-
drivers/gpu/drm/i915/intel_runtime_pm.h | 2 -
drivers/gpu/drm/i915/intel_sbi.c | 73 +
drivers/gpu/drm/i915/intel_sbi.h | 23 +
drivers/gpu/drm/i915/intel_sideband.c | 577 -
drivers/gpu/drm/i915/intel_sideband.h | 143 -
drivers/gpu/drm/i915/intel_uncore.c | 447 +-
drivers/gpu/drm/i915/intel_uncore.h | 20 +-
drivers/gpu/drm/i915/intel_wakeref.h | 12 +
drivers/gpu/drm/i915/pxp/intel_pxp.c | 299 +
drivers/gpu/drm/i915/pxp/intel_pxp.h | 64 +
drivers/gpu/drm/i915/pxp/intel_pxp_cmd.c | 141 +
drivers/gpu/drm/i915/pxp/intel_pxp_cmd.h | 15 +
drivers/gpu/drm/i915/pxp/intel_pxp_debugfs.c | 78 +
drivers/gpu/drm/i915/pxp/intel_pxp_debugfs.h | 21 +
drivers/gpu/drm/i915/pxp/intel_pxp_irq.c | 101 +
drivers/gpu/drm/i915/pxp/intel_pxp_irq.h | 32 +
drivers/gpu/drm/i915/pxp/intel_pxp_pm.c | 46 +
drivers/gpu/drm/i915/pxp/intel_pxp_pm.h | 24 +
drivers/gpu/drm/i915/pxp/intel_pxp_session.c | 175 +
drivers/gpu/drm/i915/pxp/intel_pxp_session.h | 15 +
drivers/gpu/drm/i915/pxp/intel_pxp_tee.c | 172 +
drivers/gpu/drm/i915/pxp/intel_pxp_tee.h | 17 +
drivers/gpu/drm/i915/pxp/intel_pxp_tee_interface.h | 36 +
drivers/gpu/drm/i915/pxp/intel_pxp_types.h | 83 +
drivers/gpu/drm/i915/selftests/i915_gem_gtt.c | 8 +-
.../gpu/drm/i915/selftests/i915_live_selftests.h | 2 +
drivers/gpu/drm/i915/selftests/i915_vma.c | 4 +-
.../drm/i915/selftests/intel_scheduler_helpers.c | 12 +
.../drm/i915/selftests/intel_scheduler_helpers.h | 2 +
drivers/gpu/drm/i915/selftests/intel_uncore.c | 34 +-
drivers/gpu/drm/i915/selftests/mock_region.c | 2 -
drivers/gpu/drm/i915/vlv_sideband.c | 266 +
drivers/gpu/drm/i915/vlv_sideband.h | 123 +
drivers/gpu/drm/imx/imx-drm-core.c | 2 -
drivers/gpu/drm/kmb/kmb_crtc.c | 41 +-
drivers/gpu/drm/kmb/kmb_drv.c | 2 +-
drivers/gpu/drm/kmb/kmb_drv.h | 10 +-
drivers/gpu/drm/kmb/kmb_dsi.c | 25 +-
drivers/gpu/drm/kmb/kmb_dsi.h | 2 +-
drivers/gpu/drm/kmb/kmb_plane.c | 43 +-
drivers/gpu/drm/kmb/kmb_plane.h | 6 +
drivers/gpu/drm/lima/lima_gem.c | 9 +-
drivers/gpu/drm/lima/lima_sched.c | 28 +-
drivers/gpu/drm/lima/lima_sched.h | 6 +-
drivers/gpu/drm/mcde/mcde_drv.c | 4 +-
drivers/gpu/drm/mcde/mcde_dsi.c | 4 +-
drivers/gpu/drm/mediatek/mtk_dsi.c | 5 +-
drivers/gpu/drm/meson/meson_drv.c | 3 +-
drivers/gpu/drm/meson/meson_dw_hdmi.c | 4 +-
drivers/gpu/drm/mga/mga_ioc32.c | 27 +-
drivers/gpu/drm/mgag200/mgag200_drv.h | 2 -
drivers/gpu/drm/mgag200/mgag200_mm.c | 35 +-
drivers/gpu/drm/msm/Kconfig | 6 +-
drivers/gpu/drm/msm/Makefile | 1 -
drivers/gpu/drm/msm/adreno/a5xx_debugfs.c | 6 +-
drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 10 +-
drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 7 +
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c | 2 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_core_irq.c | 256 -
drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 147 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h | 19 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 39 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h | 4 +-
.../gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c | 2 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c | 8 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h | 8 -
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.c | 267 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.h | 92 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c | 56 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.h | 13 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c | 8 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.h | 3 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 70 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h | 13 -
drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c | 4 +-
drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c | 18 +-
drivers/gpu/drm/msm/disp/mdp5/mdp5_cfg.c | 89 +
drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c | 18 +-
drivers/gpu/drm/msm/disp/mdp5/mdp5_mdss.c | 12 +-
drivers/gpu/drm/msm/disp/msm_disp_snapshot_util.c | 8 +-
drivers/gpu/drm/msm/dp/dp_catalog.c | 64 +-
drivers/gpu/drm/msm/dp/dp_debug.c | 294 +-
drivers/gpu/drm/msm/dp/dp_debug.h | 4 +-
drivers/gpu/drm/msm/dp/dp_display.c | 143 +-
drivers/gpu/drm/msm/dp/dp_display.h | 2 +
drivers/gpu/drm/msm/dp/dp_drm.c | 13 +-
drivers/gpu/drm/msm/dp/dp_panel.c | 2 +-
drivers/gpu/drm/msm/dp/dp_parser.c | 138 +-
drivers/gpu/drm/msm/dp/dp_parser.h | 14 +-
drivers/gpu/drm/msm/dsi/dsi.h | 2 +
drivers/gpu/drm/msm/dsi/dsi_host.c | 147 +-
drivers/gpu/drm/msm/dsi/dsi_manager.c | 66 +-
drivers/gpu/drm/msm/dsi/phy/dsi_phy.c | 2 +
drivers/gpu/drm/msm/dsi/phy/dsi_phy.h | 1 +
drivers/gpu/drm/msm/dsi/phy/dsi_phy_14nm.c | 25 +-
drivers/gpu/drm/msm/dsi/phy/dsi_phy_7nm.c | 4 +-
drivers/gpu/drm/msm/edp/edp_ctrl.c | 5 +-
drivers/gpu/drm/msm/hdmi/hdmi.c | 38 +-
drivers/gpu/drm/msm/hdmi/hdmi.h | 6 +-
drivers/gpu/drm/msm/hdmi/hdmi_bridge.c | 20 +-
drivers/gpu/drm/msm/hdmi/hdmi_connector.c | 24 +-
drivers/gpu/drm/msm/hdmi/hdmi_phy.c | 33 +-
drivers/gpu/drm/msm/hdmi/hdmi_phy_8996.c | 4 +-
drivers/gpu/drm/msm/msm_atomic.c | 21 +-
drivers/gpu/drm/msm/msm_drv.c | 33 +-
drivers/gpu/drm/msm/msm_drv.h | 31 +-
drivers/gpu/drm/msm/msm_gem.c | 8 +-
drivers/gpu/drm/msm/msm_gem.h | 5 -
drivers/gpu/drm/msm/msm_gem_shrinker.c | 2 +
drivers/gpu/drm/msm/msm_gem_submit.c | 35 +-
drivers/gpu/drm/msm/msm_gpu.c | 2 +-
drivers/gpu/drm/msm/msm_gpu.h | 11 +
drivers/gpu/drm/msm/msm_gpu_devfreq.c | 41 +-
drivers/gpu/drm/msm/msm_kms.h | 3 +-
drivers/gpu/drm/msm/msm_ringbuffer.c | 12 -
drivers/gpu/drm/msm/msm_submitqueue.c | 1 +
drivers/gpu/drm/mxsfb/mxsfb_drv.c | 6 +-
drivers/gpu/drm/mxsfb/mxsfb_kms.c | 8 +-
drivers/gpu/drm/nouveau/dispnv50/disp.c | 2 +-
drivers/gpu/drm/nouveau/nouveau_acpi.c | 9 +-
drivers/gpu/drm/nouveau/nouveau_bo.c | 12 +-
drivers/gpu/drm/nouveau/nouveau_dmem.c | 4 +-
drivers/gpu/drm/nouveau/nouveau_drm.c | 42 +-
drivers/gpu/drm/nouveau/nouveau_drv.h | 5 +
drivers/gpu/drm/nouveau/nouveau_gem.c | 4 +-
drivers/gpu/drm/nouveau/nouveau_sgdma.c | 2 -
drivers/gpu/drm/nouveau/nouveau_svm.c | 6 +-
drivers/gpu/drm/nouveau/nvkm/engine/ce/gt215.c | 2 +-
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 3 +-
drivers/gpu/drm/nouveau/nvkm/engine/nvenc/base.c | 1 -
drivers/gpu/drm/nouveau/nvkm/subdev/mmu/uvmm.c | 2 +-
drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgp100.c | 4 +-
drivers/gpu/drm/omapdrm/Kconfig | 3 +-
drivers/gpu/drm/omapdrm/dss/dsi.c | 4 +-
drivers/gpu/drm/omapdrm/omap_drv.c | 2 +-
drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c | 2 +
drivers/gpu/drm/panel/Kconfig | 37 +-
drivers/gpu/drm/panel/Makefile | 3 +
drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c | 743 +-
drivers/gpu/drm/panel/panel-edp.c | 1896 +
drivers/gpu/drm/panel/panel-ilitek-ili9881c.c | 12 +-
drivers/gpu/drm/panel/panel-mantix-mlaf057we51.c | 9 +
drivers/gpu/drm/panel/panel-orisetech-otm8009a.c | 85 +-
drivers/gpu/drm/panel/panel-samsung-s6d27a1.c | 320 +
drivers/gpu/drm/panel/panel-samsung-s6e63m0-dsi.c | 3 +-
drivers/gpu/drm/panel/panel-samsung-s6e63m0-spi.c | 3 +-
drivers/gpu/drm/panel/panel-samsung-s6e63m0.c | 4 +-
drivers/gpu/drm/panel/panel-samsung-s6e63m0.h | 2 +-
drivers/gpu/drm/panel/panel-sharp-ls060t1sx01.c | 333 +
drivers/gpu/drm/panel/panel-simple.c | 1133 +-
drivers/gpu/drm/panel/panel-sitronix-st7703.c | 8 +
drivers/gpu/drm/panfrost/panfrost_device.c | 10 +-
drivers/gpu/drm/panfrost/panfrost_drv.c | 33 +-
drivers/gpu/drm/panfrost/panfrost_job.c | 48 +-
drivers/gpu/drm/panfrost/panfrost_job.h | 5 +-
drivers/gpu/drm/panfrost/panfrost_mmu.c | 42 +-
drivers/gpu/drm/panfrost/panfrost_perfcnt.c | 4 +-
drivers/gpu/drm/qxl/qxl_release.c | 4 +-
drivers/gpu/drm/qxl/qxl_ttm.c | 1 -
drivers/gpu/drm/r128/ati_pcigart.c | 11 +-
drivers/gpu/drm/radeon/atombios.h | 2 +-
drivers/gpu/drm/radeon/ci_dpm.c | 3 +-
drivers/gpu/drm/radeon/r600_dpm.c | 10 +-
drivers/gpu/drm/radeon/radeon_dp_mst.c | 4 +-
drivers/gpu/drm/radeon/radeon_fence.c | 24 +-
drivers/gpu/drm/radeon/radeon_gem.c | 2 +-
drivers/gpu/drm/radeon/radeon_ttm.c | 15 +-
drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 9 +-
drivers/gpu/drm/rcar-du/rcar_du_crtc.h | 11 -
drivers/gpu/drm/rcar-du/rcar_du_drv.c | 108 +-
drivers/gpu/drm/rcar-du/rcar_du_drv.h | 26 +-
drivers/gpu/drm/rcar-du/rcar_du_encoder.c | 12 +-
drivers/gpu/drm/rcar-du/rcar_du_group.c | 6 +-
drivers/gpu/drm/rcar-du/rcar_du_kms.c | 50 +-
drivers/gpu/drm/rcar-du/rcar_du_kms.h | 7 +
drivers/gpu/drm/rcar-du/rcar_du_regs.h | 9 +-
drivers/gpu/drm/rcar-du/rcar_du_vsp.c | 36 +-
drivers/gpu/drm/rcar-du/rcar_lvds.c | 4 +-
drivers/gpu/drm/rockchip/Kconfig | 1 -
drivers/gpu/drm/rockchip/analogix_dp-rockchip.c | 2 +-
drivers/gpu/drm/rockchip/cdn-dp-core.c | 4 +-
drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c | 3 +-
drivers/gpu/drm/rockchip/inno_hdmi.c | 4 +-
drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 14 +-
drivers/gpu/drm/rockchip/rockchip_drm_drv.h | 2 -
drivers/gpu/drm/rockchip/rockchip_lvds.c | 33 +-
drivers/gpu/drm/rockchip/rockchip_rgb.c | 26 +-
drivers/gpu/drm/rockchip/rockchip_vop_reg.c | 2 +-
drivers/gpu/drm/scheduler/sched_entity.c | 140 +-
drivers/gpu/drm/scheduler/sched_fence.c | 62 +-
drivers/gpu/drm/scheduler/sched_main.c | 185 +-
drivers/gpu/drm/selftests/test-drm_damage_helper.c | 1 +
drivers/gpu/drm/shmobile/shmob_drm_drv.c | 4 +-
drivers/gpu/drm/sti/sti_hqvdp.c | 4 +-
drivers/gpu/drm/stm/ltdc.c | 7 +-
drivers/gpu/drm/sun4i/sun4i_backend.c | 4 +-
drivers/gpu/drm/sun4i/sun4i_frontend.c | 4 +-
drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c | 4 +-
drivers/gpu/drm/sun4i/sun4i_tcon.c | 4 +-
drivers/gpu/drm/sun4i/sun4i_tv.c | 4 +-
drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | 18 +-
drivers/gpu/drm/sun4i/sun8i_csc.h | 4 +-
drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c | 21 +-
drivers/gpu/drm/sun4i/sun8i_mixer.c | 4 +-
drivers/gpu/drm/sun4i/sun8i_tcon_top.c | 4 +-
drivers/gpu/drm/tegra/fb.c | 2 +-
drivers/gpu/drm/tegra/gem.c | 3 +
drivers/gpu/drm/tegra/plane.c | 2 +-
drivers/gpu/drm/tilcdc/tilcdc_drv.c | 4 +-
drivers/gpu/drm/tiny/Kconfig | 4 +-
drivers/gpu/drm/tiny/bochs.c | 8 +
drivers/gpu/drm/ttm/ttm_bo.c | 90 +-
drivers/gpu/drm/ttm/ttm_bo_util.c | 22 +-
drivers/gpu/drm/ttm/ttm_bo_vm.c | 109 +-
drivers/gpu/drm/ttm/ttm_device.c | 48 +
drivers/gpu/drm/ttm/ttm_module.c | 12 +
drivers/gpu/drm/ttm/ttm_pool.c | 42 +-
drivers/gpu/drm/ttm/ttm_range_manager.c | 8 +-
drivers/gpu/drm/ttm/ttm_resource.c | 49 +
drivers/gpu/drm/ttm/ttm_tt.c | 69 +-
drivers/gpu/drm/udl/Kconfig | 1 +
drivers/gpu/drm/udl/udl_connector.c | 2 +-
drivers/gpu/drm/v3d/Kconfig | 2 +-
drivers/gpu/drm/v3d/v3d_drv.c | 15 +-
drivers/gpu/drm/v3d/v3d_drv.h | 30 +-
drivers/gpu/drm/v3d/v3d_gem.c | 472 +-
drivers/gpu/drm/v3d/v3d_sched.c | 44 +-
drivers/gpu/drm/vboxvideo/vbox_drv.c | 5 +-
drivers/gpu/drm/vboxvideo/vbox_drv.h | 1 -
drivers/gpu/drm/vboxvideo/vbox_ttm.c | 17 +-
drivers/gpu/drm/vc4/vc4_dpi.c | 15 +-
drivers/gpu/drm/vc4/vc4_drv.c | 6 +-
drivers/gpu/drm/vc4/vc4_dsi.c | 28 +-
drivers/gpu/drm/vc4/vc4_hdmi.c | 5 +-
drivers/gpu/drm/vgem/vgem_drv.c | 342 +-
drivers/gpu/drm/virtio/virtgpu_debugfs.c | 1 +
drivers/gpu/drm/virtio/virtgpu_display.c | 4 +-
drivers/gpu/drm/virtio/virtgpu_drv.c | 45 +-
drivers/gpu/drm/virtio/virtgpu_drv.h | 36 +-
drivers/gpu/drm/virtio/virtgpu_fence.c | 30 +-
drivers/gpu/drm/virtio/virtgpu_ioctl.c | 195 +-
drivers/gpu/drm/virtio/virtgpu_kms.c | 26 +-
drivers/gpu/drm/virtio/virtgpu_plane.c | 3 +-
drivers/gpu/drm/virtio/virtgpu_prime.c | 32 +-
drivers/gpu/drm/virtio/virtgpu_vq.c | 27 +-
drivers/gpu/drm/virtio/virtgpu_vram.c | 61 +
drivers/gpu/drm/vmwgfx/ttm_memory.c | 1 -
drivers/gpu/drm/vmwgfx/ttm_object.c | 3 +
drivers/gpu/drm/vmwgfx/vmwgfx_bo.c | 15 +-
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 4 +-
drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 4 -
drivers/gpu/drm/vmwgfx/vmwgfx_msg.c | 6 +-
drivers/gpu/drm/vmwgfx/vmwgfx_page_dirty.c | 72 +-
drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c | 10 +-
drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c | 3 -
drivers/gpu/drm/xlnx/zynqmp_disp.c | 9 +-
drivers/gpu/drm/zte/Kconfig | 10 -
drivers/gpu/drm/zte/Makefile | 10 -
drivers/gpu/drm/zte/zx_common_regs.h | 28 -
drivers/gpu/drm/zte/zx_drm_drv.c | 184 -
drivers/gpu/drm/zte/zx_drm_drv.h | 34 -
drivers/gpu/drm/zte/zx_hdmi.c | 760 -
drivers/gpu/drm/zte/zx_hdmi_regs.h | 66 -
drivers/gpu/drm/zte/zx_plane.c | 537 -
drivers/gpu/drm/zte/zx_plane.h | 26 -
drivers/gpu/drm/zte/zx_plane_regs.h | 120 -
drivers/gpu/drm/zte/zx_tvenc.c | 400 -
drivers/gpu/drm/zte/zx_tvenc_regs.h | 27 -
drivers/gpu/drm/zte/zx_vga.c | 527 -
drivers/gpu/drm/zte/zx_vga_regs.h | 33 -
drivers/gpu/drm/zte/zx_vou.c | 921 -
drivers/gpu/drm/zte/zx_vou.h | 64 -
drivers/gpu/drm/zte/zx_vou_regs.h | 212 -
drivers/gpu/ipu-v3/ipu-csi.c | 31 +-
drivers/hid/Kconfig | 32 +
drivers/hid/Makefile | 2 +
drivers/hid/amd-sfh-hid/amd_sfh_client.c | 3 +-
drivers/hid/amd-sfh-hid/amd_sfh_hid.c | 2 +
drivers/hid/amd-sfh-hid/amd_sfh_hid.h | 2 +
drivers/hid/amd-sfh-hid/amd_sfh_pcie.c | 21 +-
drivers/hid/amd-sfh-hid/amd_sfh_pcie.h | 3 +-
.../amd-sfh-hid/hid_descriptor/amd_sfh_hid_desc.c | 3 +-
.../amd-sfh-hid/hid_descriptor/amd_sfh_hid_desc.h | 3 +-
.../hid_descriptor/amd_sfh_hid_report_desc.h | 3 +-
drivers/hid/hid-apple.c | 66 +-
drivers/hid/hid-asus.c | 2 +-
drivers/hid/hid-cougar.c | 3 +-
drivers/hid/hid-cp2112.c | 14 +-
drivers/hid/hid-debug.c | 10 +-
drivers/hid/hid-ids.h | 18 +-
drivers/hid/hid-input.c | 1 +
drivers/hid/hid-multitouch.c | 13 +
drivers/hid/hid-nintendo.c | 2319 +
drivers/hid/hid-playstation.c | 159 +-
drivers/hid/hid-quirks.c | 3 +-
drivers/hid/hid-roccat-kone.c | 2 +-
drivers/hid/hid-roccat-kone.h | 12 +-
drivers/hid/hid-u2fzero.c | 55 +-
drivers/hid/hid-xiaomi.c | 94 +
drivers/hid/surface-hid/surface_hid.c | 4 +-
drivers/hid/wacom_sys.c | 15 +-
drivers/hsi/clients/cmt_speech.c | 4 +-
drivers/hsi/clients/ssi_protocol.c | 4 +-
drivers/hv/Kconfig | 1 +
drivers/hv/channel.c | 72 +-
drivers/hv/channel_mgmt.c | 34 -
drivers/hv/connection.c | 101 +-
drivers/hv/hv.c | 82 +-
drivers/hv/hv_common.c | 12 +
drivers/hv/hyperv_vmbus.h | 3 +
drivers/hv/ring_buffer.c | 57 +-
drivers/hwmon/Kconfig | 15 +-
drivers/hwmon/Makefile | 1 +
drivers/hwmon/abituguru3.c | 6 +-
drivers/hwmon/acpi_power_meter.c | 13 +-
drivers/hwmon/ad7414.c | 4 +-
drivers/hwmon/ad7418.c | 6 +-
drivers/hwmon/adm1021.c | 4 +-
drivers/hwmon/adm1025.c | 4 +-
drivers/hwmon/adm1026.c | 4 +-
drivers/hwmon/adm1029.c | 4 +-
drivers/hwmon/adm1031.c | 6 +-
drivers/hwmon/adt7310.c | 3 +-
drivers/hwmon/adt7410.c | 3 +-
drivers/hwmon/adt7x10.c | 3 +-
drivers/hwmon/adt7x10.h | 2 +-
drivers/hwmon/amc6821.c | 8 +-
drivers/hwmon/applesmc.c | 2 +-
drivers/hwmon/asb100.c | 4 +-
drivers/hwmon/asc7621.c | 4 +-
drivers/hwmon/atxp1.c | 10 +-
drivers/hwmon/coretemp.c | 2 +-
drivers/hwmon/dell-smm-hwmon.c | 103 +-
drivers/hwmon/dme1737.c | 4 +-
drivers/hwmon/ds1621.c | 4 +-
drivers/hwmon/ds620.c | 4 +-
drivers/hwmon/emc6w201.c | 4 +-
drivers/hwmon/f71805f.c | 4 +-
drivers/hwmon/f71882fg.c | 4 +-
drivers/hwmon/f75375s.c | 4 +-
drivers/hwmon/fschmd.c | 4 +-
drivers/hwmon/g760a.c | 2 +-
drivers/hwmon/gl518sm.c | 4 +-
drivers/hwmon/gl520sm.c | 4 +-
drivers/hwmon/hwmon.c | 6 +-
drivers/hwmon/i5500_temp.c | 114 +-
drivers/hwmon/ibmaem.c | 2 +-
drivers/hwmon/ibmpex.c | 4 +-
drivers/hwmon/it87.c | 12 +-
drivers/hwmon/lineage-pem.c | 2 +-
drivers/hwmon/lm63.c | 6 +-
drivers/hwmon/lm77.c | 4 +-
drivers/hwmon/lm78.c | 4 +-
drivers/hwmon/lm80.c | 6 +-
drivers/hwmon/lm83.c | 4 +-
drivers/hwmon/lm85.c | 4 +-
drivers/hwmon/lm87.c | 4 +-
drivers/hwmon/lm90.c | 75 +-
drivers/hwmon/lm92.c | 4 +-
drivers/hwmon/lm93.c | 4 +-
drivers/hwmon/lm95241.c | 8 +-
drivers/hwmon/ltc4151.c | 2 +-
drivers/hwmon/ltc4215.c | 2 +-
drivers/hwmon/ltc4261.c | 4 +-
drivers/hwmon/max16065.c | 2 +-
drivers/hwmon/max1619.c | 4 +-
drivers/hwmon/max1668.c | 4 +-
drivers/hwmon/max31722.c | 8 +-
drivers/hwmon/max6620.c | 514 +
drivers/hwmon/max6639.c | 4 +-
drivers/hwmon/max6642.c | 2 +-
drivers/hwmon/mlxreg-fan.c | 138 +-
drivers/hwmon/nct6683.c | 3 +
drivers/hwmon/nct6775.c | 717 +-
drivers/hwmon/nct7802.c | 131 +-
drivers/hwmon/occ/common.c | 30 +-
drivers/hwmon/occ/common.h | 3 +-
drivers/hwmon/occ/p8_i2c.c | 15 +-
drivers/hwmon/occ/p9_sbe.c | 91 +-
drivers/hwmon/pc87360.c | 4 +-
drivers/hwmon/pmbus/ibm-cffps.c | 23 +-
drivers/hwmon/pmbus/lm25066.c | 88 +-
drivers/hwmon/raspberrypi-hwmon.c | 2 +-
drivers/hwmon/sch5636.c | 4 +-
drivers/hwmon/sht21.c | 4 +-
drivers/hwmon/sis5595.c | 4 +-
drivers/hwmon/smm665.c | 2 +-
drivers/hwmon/smsc47b397.c | 4 +-
drivers/hwmon/smsc47m192.c | 4 +-
drivers/hwmon/thmc50.c | 4 +-
drivers/hwmon/tmp103.c | 105 +-
drivers/hwmon/tmp401.c | 31 +-
drivers/hwmon/tmp421.c | 186 +-
drivers/hwmon/via686a.c | 4 +-
drivers/hwmon/vt1211.c | 4 +-
drivers/hwmon/vt8231.c | 4 +-
drivers/hwmon/w83627ehf.c | 8 +-
drivers/hwmon/w83627hf.c | 6 +-
drivers/hwmon/w83781d.c | 4 +-
drivers/hwmon/w83791d.c | 4 +-
drivers/hwmon/w83792d.c | 6 +-
drivers/hwmon/w83793.c | 6 +-
drivers/hwmon/w83795.c | 6 +-
drivers/hwmon/w83l785ts.c | 4 +-
drivers/hwmon/w83l786ng.c | 4 +-
drivers/hwmon/xgene-hwmon.c | 35 +-
drivers/hwtracing/coresight/Kconfig | 13 +
drivers/hwtracing/coresight/coresight-cpu-debug.c | 2 +-
drivers/hwtracing/coresight/coresight-cti-core.c | 2 +-
drivers/hwtracing/coresight/coresight-etb10.c | 5 +-
drivers/hwtracing/coresight/coresight-etm-perf.c | 56 +-
drivers/hwtracing/coresight/coresight-etm4x-core.c | 101 +-
drivers/hwtracing/coresight/coresight-etm4x.h | 9 +-
.../coresight/coresight-self-hosted-trace.h | 33 +
drivers/hwtracing/coresight/coresight-tmc-core.c | 21 +-
drivers/hwtracing/coresight/coresight-tmc-etf.c | 10 +-
drivers/hwtracing/coresight/coresight-tmc-etr.c | 52 +-
drivers/hwtracing/coresight/coresight-tmc.h | 6 +-
drivers/hwtracing/coresight/coresight-trbe.c | 534 +-
drivers/i2c/busses/Kconfig | 16 +-
drivers/i2c/busses/Makefile | 3 +
drivers/i2c/busses/i2c-amd-mp2-pci.c | 4 +-
drivers/i2c/busses/i2c-amd-mp2-plat.c | 5 +-
drivers/i2c/busses/i2c-bcm-kona.c | 2 +-
drivers/i2c/busses/i2c-i801.c | 83 +-
drivers/i2c/busses/i2c-ismt.c | 12 +-
drivers/i2c/busses/i2c-kempld.c | 3 +-
drivers/i2c/busses/i2c-mlxcpld.c | 14 +-
drivers/i2c/busses/i2c-mt65xx.c | 82 +-
drivers/i2c/busses/i2c-pasemi-core.c | 353 +
drivers/i2c/busses/i2c-pasemi-core.h | 21 +
drivers/i2c/busses/i2c-pasemi-pci.c | 85 +
drivers/i2c/busses/i2c-pasemi-platform.c | 122 +
drivers/i2c/busses/i2c-pasemi.c | 409 -
drivers/i2c/busses/i2c-pxa.c | 1 -
drivers/i2c/busses/i2c-qup.c | 6 +-
drivers/i2c/busses/i2c-rcar.c | 6 +-
drivers/i2c/busses/i2c-tegra.c | 4 +-
drivers/i2c/busses/i2c-virtio.c | 56 +-
drivers/i2c/busses/i2c-xgene-slimpro.c | 33 +-
drivers/i2c/busses/i2c-xiic.c | 161 +-
drivers/i2c/busses/i2c-xlr.c | 6 +-
drivers/i2c/i2c-core-acpi.c | 32 +-
drivers/i2c/i2c-core-base.c | 7 +-
drivers/idle/intel_idle.c | 13 +-
drivers/iio/accel/Kconfig | 62 +
drivers/iio/accel/Makefile | 6 +
drivers/iio/accel/adxl313.h | 54 +
drivers/iio/accel/adxl313_core.c | 332 +
drivers/iio/accel/adxl313_i2c.c | 66 +
drivers/iio/accel/adxl313_spi.c | 92 +
drivers/iio/accel/adxl355.h | 21 +
drivers/iio/accel/adxl355_core.c | 765 +
drivers/iio/accel/adxl355_i2c.c | 62 +
drivers/iio/accel/adxl355_spi.c | 65 +
drivers/iio/accel/adxl372.c | 1 +
drivers/iio/accel/bma400.h | 2 +-
drivers/iio/accel/bma400_core.c | 7 +-
drivers/iio/accel/bma400_i2c.c | 4 +-
drivers/iio/accel/bma400_spi.c | 4 +-
drivers/iio/accel/bmc150-accel-core.c | 5 +-
drivers/iio/accel/bmc150-accel-i2c.c | 4 +-
drivers/iio/accel/bmc150-accel-spi.c | 4 +-
drivers/iio/accel/bmc150-accel.h | 2 +-
drivers/iio/accel/bmi088-accel-core.c | 4 +-
drivers/iio/accel/bmi088-accel-spi.c | 4 +-
drivers/iio/accel/bmi088-accel.h | 2 +-
drivers/iio/accel/fxls8962af-core.c | 347 +-
drivers/iio/accel/kxsd9-i2c.c | 4 +-
drivers/iio/accel/kxsd9-spi.c | 4 +-
drivers/iio/accel/kxsd9.c | 4 +-
drivers/iio/accel/kxsd9.h | 2 +-
drivers/iio/accel/mma7455.h | 2 +-
drivers/iio/accel/mma7455_core.c | 4 +-
drivers/iio/accel/mma7455_i2c.c | 4 +-
drivers/iio/accel/mma7455_spi.c | 4 +-
drivers/iio/accel/mma7660.c | 2 +-
drivers/iio/accel/sca3000.c | 3 +-
drivers/iio/accel/st_accel_core.c | 31 +-
drivers/iio/accel/st_accel_i2c.c | 23 +-
drivers/iio/accel/st_accel_spi.c | 23 +-
drivers/iio/adc/Kconfig | 18 +-
drivers/iio/adc/Makefile | 1 +
drivers/iio/adc/ab8500-gpadc.c | 22 +-
drivers/iio/adc/ad7291.c | 70 +-
drivers/iio/adc/ad7949.c | 254 +-
drivers/iio/adc/ad799x.c | 68 +-
drivers/iio/adc/aspeed_adc.c | 598 +-
drivers/iio/adc/at91-sama5d2_adc.c | 598 +-
drivers/iio/adc/axp288_adc.c | 28 +-
drivers/iio/adc/berlin2-adc.c | 34 +-
drivers/iio/adc/da9150-gpadc.c | 27 +-
drivers/iio/adc/ep93xx_adc.c | 4 +-
drivers/iio/adc/fsl-imx25-gcq.c | 55 +-
drivers/iio/adc/imx7d_adc.c | 18 +-
drivers/iio/adc/imx8qxp-adc.c | 494 +
drivers/iio/adc/intel_mrfld_adc.c | 24 +-
drivers/iio/adc/lp8788_adc.c | 31 +-
drivers/iio/adc/lpc18xx_adc.c | 75 +-
drivers/iio/adc/max1027.c | 278 +-
drivers/iio/adc/max1118.c | 7 +-
drivers/iio/adc/max1241.c | 17 +-
drivers/iio/adc/max1363.c | 82 +-
drivers/iio/adc/meson_saradc.c | 39 +-
drivers/iio/adc/nau7802.c | 50 +-
drivers/iio/adc/qcom-pm8xxx-xoadc.c | 9 +-
drivers/iio/adc/rn5t618-adc.c | 13 +-
drivers/iio/adc/rockchip_saradc.c | 31 +-
drivers/iio/adc/stm32-adc-core.c | 1 +
drivers/iio/adc/stm32-adc-core.h | 10 +
drivers/iio/adc/stm32-adc.c | 422 +-
drivers/iio/adc/ti-adc108s102.c | 11 +-
drivers/iio/adc/ti-adc128s052.c | 33 +-
drivers/iio/adc/ti-ads7950.c | 4 +-
drivers/iio/adc/ti-ads8344.c | 27 +-
drivers/iio/adc/ti-tsc2046.c | 2 +-
drivers/iio/adc/ti_am335x_adc.c | 220 +-
drivers/iio/adc/twl6030-gpadc.c | 6 +-
drivers/iio/adc/xilinx-xadc-core.c | 5 +-
drivers/iio/adc/xilinx-xadc.h | 1 -
drivers/iio/buffer/industrialio-triggered-buffer.c | 8 +-
drivers/iio/buffer/kfifo_buf.c | 50 +
drivers/iio/chemical/Kconfig | 24 +
drivers/iio/chemical/Makefile | 2 +
drivers/iio/chemical/scd4x.c | 696 +
drivers/iio/chemical/sunrise_co2.c | 537 +
.../common/cros_ec_sensors/cros_ec_sensors_core.c | 3 +-
.../iio/common/hid-sensors/hid-sensor-trigger.c | 5 +-
drivers/iio/common/st_sensors/st_sensors_core.c | 48 +-
drivers/iio/common/st_sensors/st_sensors_i2c.c | 1 -
drivers/iio/common/st_sensors/st_sensors_spi.c | 1 -
drivers/iio/common/st_sensors/st_sensors_trigger.c | 53 +-
drivers/iio/dac/ad5064.c | 49 +-
drivers/iio/dac/ad5380.c | 15 +-
drivers/iio/dac/ad5446.c | 21 +-
drivers/iio/dac/ad5592r-base.c | 4 +-
drivers/iio/dac/ad5592r-base.h | 2 +-
drivers/iio/dac/ad5592r.c | 4 +-
drivers/iio/dac/ad5593r.c | 4 +-
drivers/iio/dac/ad5686-spi.c | 4 +-
drivers/iio/dac/ad5686.c | 4 +-
drivers/iio/dac/ad5686.h | 2 +-
drivers/iio/dac/ad5696-i2c.c | 4 +-
drivers/iio/dac/ad5766.c | 48 +-
drivers/iio/dac/ad5770r.c | 2 +-
drivers/iio/dac/ad7303.c | 47 +-
drivers/iio/dac/ad8801.c | 11 +-
drivers/iio/dac/ds4424.c | 9 +-
drivers/iio/dac/lpc18xx_dac.c | 14 +-
drivers/iio/dac/ltc1660.c | 7 +-
drivers/iio/dac/max5821.c | 9 +-
drivers/iio/dac/mcp4922.c | 7 +-
drivers/iio/dac/stm32-dac-core.c | 18 +-
drivers/iio/dac/ti-dac7311.c | 7 +-
drivers/iio/frequency/Kconfig | 12 +
drivers/iio/frequency/Makefile | 1 +
drivers/iio/frequency/adrf6780.c | 527 +
drivers/iio/gyro/Kconfig | 1 -
drivers/iio/gyro/adis16080.c | 11 +-
drivers/iio/gyro/mpu3050-core.c | 24 +-
drivers/iio/gyro/st_gyro_core.c | 27 +-
drivers/iio/gyro/st_gyro_i2c.c | 23 +-
drivers/iio/gyro/st_gyro_spi.c | 23 +-
drivers/iio/health/afe4403.c | 14 +-
drivers/iio/health/afe4404.c | 8 +-
drivers/iio/iio_core.h | 4 +
drivers/iio/imu/adis.c | 17 +-
drivers/iio/imu/adis16400.c | 20 +-
drivers/iio/imu/adis16460.c | 18 +-
drivers/iio/imu/adis16475.c | 19 +-
drivers/iio/imu/adis_trigger.c | 4 +
drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c | 2 +-
drivers/iio/imu/inv_mpu6050/inv_mpu_magn.c | 36 +-
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h | 4 +-
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 22 +-
drivers/iio/imu/st_lsm9ds0/st_lsm9ds0.h | 1 -
drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_core.c | 29 +-
drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_i2c.c | 6 -
drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_spi.c | 6 -
drivers/iio/industrialio-buffer.c | 201 +-
drivers/iio/industrialio-core.c | 10 +-
drivers/iio/inkern.c | 17 +
drivers/iio/light/cm3605.c | 29 +-
drivers/iio/light/cm36651.c | 7 +-
drivers/iio/light/gp2ap002.c | 24 +-
drivers/iio/light/ltr501.c | 37 +
drivers/iio/light/max44000.c | 17 +-
drivers/iio/light/noa1305.c | 7 +-
drivers/iio/magnetometer/Kconfig | 2 +-
drivers/iio/magnetometer/ak8975.c | 35 +
drivers/iio/magnetometer/hmc5843.h | 2 +-
drivers/iio/magnetometer/hmc5843_core.c | 4 +-
drivers/iio/magnetometer/hmc5843_i2c.c | 4 +-
drivers/iio/magnetometer/hmc5843_spi.c | 4 +-
drivers/iio/magnetometer/st_magn_core.c | 29 +-
drivers/iio/magnetometer/st_magn_i2c.c | 23 +-
drivers/iio/magnetometer/st_magn_spi.c | 23 +-
drivers/iio/multiplexer/iio-mux.c | 7 +-
drivers/iio/potentiometer/max5487.c | 7 +-
drivers/iio/pressure/ms5611.h | 2 +-
drivers/iio/pressure/ms5611_core.c | 4 +-
drivers/iio/pressure/ms5611_i2c.c | 4 +-
drivers/iio/pressure/ms5611_spi.c | 4 +-
drivers/iio/pressure/st_pressure_core.c | 27 +-
drivers/iio/pressure/st_pressure_i2c.c | 23 +-
drivers/iio/pressure/st_pressure_spi.c | 27 +-
drivers/iio/temperature/Kconfig | 10 +
drivers/iio/temperature/Makefile | 1 +
drivers/iio/temperature/ltc2983.c | 16 +
drivers/iio/temperature/max31865.c | 349 +
drivers/infiniband/core/cma.c | 34 +-
drivers/infiniband/core/cma_priv.h | 11 +-
drivers/infiniband/core/counters.c | 40 +-
drivers/infiniband/core/device.c | 1 +
drivers/infiniband/core/iwpm_util.c | 2 +-
drivers/infiniband/core/nldev.c | 278 +-
drivers/infiniband/core/rw.c | 66 +-
drivers/infiniband/core/sa_query.c | 6 +-
drivers/infiniband/core/sysfs.c | 58 +-
drivers/infiniband/core/umem_dmabuf.c | 54 +
drivers/infiniband/core/uverbs_cmd.c | 3 -
drivers/infiniband/core/verbs.c | 49 +
drivers/infiniband/hw/bnxt_re/bnxt_re.h | 19 +-
drivers/infiniband/hw/bnxt_re/hw_counters.c | 380 +-
drivers/infiniband/hw/bnxt_re/hw_counters.h | 30 +-
drivers/infiniband/hw/bnxt_re/ib_verbs.c | 45 +-
drivers/infiniband/hw/bnxt_re/ib_verbs.h | 1 -
drivers/infiniband/hw/bnxt_re/main.c | 16 +-
drivers/infiniband/hw/bnxt_re/qplib_fp.c | 15 +-
drivers/infiniband/hw/bnxt_re/qplib_rcfw.c | 6 +-
drivers/infiniband/hw/bnxt_re/qplib_rcfw.h | 2 +-
drivers/infiniband/hw/bnxt_re/qplib_res.c | 22 +-
drivers/infiniband/hw/bnxt_re/qplib_res.h | 10 +-
drivers/infiniband/hw/bnxt_re/qplib_sp.c | 57 +-
drivers/infiniband/hw/bnxt_re/qplib_sp.h | 33 +-
drivers/infiniband/hw/bnxt_re/roce_hsi.h | 85 +
drivers/infiniband/hw/cxgb4/cm.c | 1 -
drivers/infiniband/hw/cxgb4/device.c | 1 -
drivers/infiniband/hw/cxgb4/provider.c | 22 +-
drivers/infiniband/hw/efa/efa.h | 23 +-
drivers/infiniband/hw/efa/efa_admin_cmds_defs.h | 100 +-
drivers/infiniband/hw/efa/efa_admin_defs.h | 41 +
drivers/infiniband/hw/efa/efa_com.c | 164 +
drivers/infiniband/hw/efa/efa_com.h | 38 +-
drivers/infiniband/hw/efa/efa_com_cmd.c | 35 +-
drivers/infiniband/hw/efa/efa_com_cmd.h | 10 +-
drivers/infiniband/hw/efa/efa_main.c | 182 +-
drivers/infiniband/hw/efa/efa_regs_defs.h | 7 +-
drivers/infiniband/hw/efa/efa_verbs.c | 213 +-
drivers/infiniband/hw/hfi1/Kconfig | 4 +-
drivers/infiniband/hw/hfi1/chip.c | 3 +-
drivers/infiniband/hw/hfi1/driver.c | 3 +-
drivers/infiniband/hw/hfi1/efivar.c | 10 +-
drivers/infiniband/hw/hfi1/init.c | 3 +-
drivers/infiniband/hw/hfi1/ipoib.h | 76 +-
drivers/infiniband/hw/hfi1/ipoib_main.c | 2 +-
drivers/infiniband/hw/hfi1/ipoib_tx.c | 314 +-
drivers/infiniband/hw/hfi1/pio.c | 9 +-
drivers/infiniband/hw/hfi1/trace_tx.h | 71 +-
drivers/infiniband/hw/hfi1/user_exp_rcv.c | 5 +-
drivers/infiniband/hw/hfi1/verbs.c | 53 +-
drivers/infiniband/hw/hns/hns_roce_device.h | 26 +-
drivers/infiniband/hw/hns/hns_roce_hw_v1.c | 10 +-
drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 32 +-
drivers/infiniband/hw/hns/hns_roce_main.c | 142 +-
drivers/infiniband/hw/irdma/cm.h | 12 +-
drivers/infiniband/hw/irdma/ctrl.c | 43 +-
drivers/infiniband/hw/irdma/hw.c | 7 +-
drivers/infiniband/hw/irdma/main.h | 5 +-
drivers/infiniband/hw/irdma/osdep.h | 1 -
drivers/infiniband/hw/irdma/protos.h | 2 -
drivers/infiniband/hw/irdma/trace_cm.h | 8 +-
drivers/infiniband/hw/irdma/type.h | 3 +-
drivers/infiniband/hw/irdma/uk.c | 105 +-
drivers/infiniband/hw/irdma/user.h | 32 +-
drivers/infiniband/hw/irdma/utils.c | 49 +-
drivers/infiniband/hw/irdma/verbs.c | 154 +-
drivers/infiniband/hw/irdma/ws.c | 13 +-
drivers/infiniband/hw/mlx4/alias_GUID.c | 4 +-
drivers/infiniband/hw/mlx4/main.c | 46 +-
drivers/infiniband/hw/mlx4/mlx4_ib.h | 2 +-
drivers/infiniband/hw/mlx4/qp.c | 6 +-
drivers/infiniband/hw/mlx5/cmd.c | 26 +
drivers/infiniband/hw/mlx5/cmd.h | 2 +
drivers/infiniband/hw/mlx5/counters.c | 283 +-
drivers/infiniband/hw/mlx5/devx.c | 13 +-
drivers/infiniband/hw/mlx5/devx.h | 2 +-
drivers/infiniband/hw/mlx5/fs.c | 187 +
drivers/infiniband/hw/mlx5/main.c | 55 +-
drivers/infiniband/hw/mlx5/mlx5_ib.h | 59 +-
drivers/infiniband/hw/mlx5/mr.c | 111 +-
drivers/infiniband/hw/mlx5/odp.c | 79 +-
drivers/infiniband/hw/mlx5/qp.c | 2 +
drivers/infiniband/hw/mlx5/wr.c | 10 +-
drivers/infiniband/hw/qedr/main.c | 3 +-
drivers/infiniband/hw/qedr/qedr.h | 1 +
drivers/infiniband/hw/qedr/qedr_iw_cm.c | 2 +-
drivers/infiniband/hw/qedr/verbs.c | 30 +-
drivers/infiniband/hw/qedr/verbs.h | 1 -
drivers/infiniband/hw/qib/qib_driver.c | 5 +-
drivers/infiniband/hw/qib/qib_user_sdma.c | 33 +-
drivers/infiniband/hw/usnic/usnic_fwd.c | 2 +-
drivers/infiniband/hw/usnic/usnic_fwd.h | 2 +-
drivers/infiniband/sw/rdmavt/qp.c | 2 +-
drivers/infiniband/sw/rxe/rxe_av.c | 20 +-
drivers/infiniband/sw/rxe/rxe_comp.c | 57 +-
drivers/infiniband/sw/rxe/rxe_cq.c | 28 +-
drivers/infiniband/sw/rxe/rxe_hw_counters.c | 42 +-
drivers/infiniband/sw/rxe/rxe_loc.h | 2 +
drivers/infiniband/sw/rxe/rxe_mr.c | 267 +-
drivers/infiniband/sw/rxe/rxe_mw.c | 36 +-
drivers/infiniband/sw/rxe/rxe_opcode.h | 6 +-
drivers/infiniband/sw/rxe/rxe_param.h | 34 +-
drivers/infiniband/sw/rxe/rxe_pool.c | 41 +-
drivers/infiniband/sw/rxe/rxe_pool.h | 15 -
drivers/infiniband/sw/rxe/rxe_qp.c | 16 +-
drivers/infiniband/sw/rxe/rxe_queue.c | 30 +-
drivers/infiniband/sw/rxe/rxe_queue.h | 292 +-
drivers/infiniband/sw/rxe/rxe_req.c | 65 +-
drivers/infiniband/sw/rxe/rxe_resp.c | 50 +-
drivers/infiniband/sw/rxe/rxe_srq.c | 3 +-
drivers/infiniband/sw/rxe/rxe_verbs.c | 139 +-
drivers/infiniband/sw/rxe/rxe_verbs.h | 60 +-
drivers/infiniband/sw/siw/siw_cm.c | 4 +-
drivers/infiniband/ulp/ipoib/ipoib_cm.c | 4 +-
drivers/infiniband/ulp/ipoib/ipoib_ib.c | 9 +-
drivers/infiniband/ulp/ipoib/ipoib_main.c | 18 +-
drivers/infiniband/ulp/opa_vnic/Kconfig | 4 +-
drivers/infiniband/ulp/opa_vnic/Makefile | 3 +-
drivers/infiniband/ulp/opa_vnic/opa_vnic_vema.c | 7 +-
drivers/infiniband/ulp/rtrs/rtrs-clt-stats.c | 49 +-
drivers/infiniband/ulp/rtrs/rtrs-clt-sysfs.c | 11 +-
drivers/infiniband/ulp/rtrs/rtrs-clt.c | 6 +
drivers/infiniband/ulp/rtrs/rtrs-clt.h | 13 +-
drivers/infiniband/ulp/rtrs/rtrs-pri.h | 2 +-
drivers/infiniband/ulp/rtrs/rtrs-srv-stats.c | 3 +-
drivers/infiniband/ulp/rtrs/rtrs-srv-sysfs.c | 2 +-
drivers/infiniband/ulp/rtrs/rtrs-srv.c | 6 +
drivers/infiniband/ulp/rtrs/rtrs-srv.h | 3 +-
drivers/infiniband/ulp/rtrs/rtrs.c | 31 +-
drivers/infiniband/ulp/srp/ib_srp.c | 59 +-
drivers/infiniband/ulp/srpt/ib_srpt.c | 38 +-
drivers/input/joydev.c | 10 +
drivers/input/joystick/analog.c | 18 +-
drivers/input/joystick/iforce/iforce-usb.c | 2 +-
drivers/input/joystick/tmdc.c | 2 +-
drivers/input/keyboard/Kconfig | 10 +
drivers/input/keyboard/Makefile | 1 +
drivers/input/keyboard/cap11xx.c | 43 +-
drivers/input/keyboard/cypress-sf.c | 224 +
drivers/input/keyboard/ep93xx_keypad.c | 172 +-
drivers/input/keyboard/mpr121_touchkey.c | 4 +-
drivers/input/keyboard/omap-keypad.c | 3 +-
drivers/input/keyboard/tm2-touchkey.c | 7 +
drivers/input/misc/adxl34x-i2c.c | 4 +-
drivers/input/misc/adxl34x-spi.c | 4 +-
drivers/input/misc/adxl34x.c | 6 +-
drivers/input/misc/adxl34x.h | 2 +-
drivers/input/misc/ariel-pwrbutton.c | 7 +
drivers/input/misc/axp20x-pek.c | 26 +-
drivers/input/misc/cpcap-pwrbutton.c | 7 +-
drivers/input/misc/max77693-haptic.c | 1 -
drivers/input/misc/max8925_onkey.c | 2 +-
drivers/input/misc/palmas-pwrbutton.c | 5 +
drivers/input/misc/pm8941-pwrkey.c | 6 +-
drivers/input/mouse/elantech.c | 13 +
drivers/input/rmi4/rmi_bus.c | 1 +
drivers/input/serio/i8042-x86ia64io.h | 14 +
drivers/input/serio/serport.c | 3 +-
drivers/input/touchscreen/Kconfig | 1 +
drivers/input/touchscreen/Makefile | 3 +-
drivers/input/touchscreen/ads7846.c | 200 +-
drivers/input/touchscreen/elants_i2c.c | 4 +-
drivers/input/touchscreen/goodix.c | 231 +-
drivers/input/touchscreen/goodix.h | 117 +
drivers/input/touchscreen/goodix_fwupload.c | 427 +
drivers/input/touchscreen/ili210x.c | 559 +-
drivers/input/touchscreen/raydium_i2c_ts.c | 54 +-
drivers/input/touchscreen/st1232.c | 3 +-
drivers/input/touchscreen/tsc2004.c | 4 +-
drivers/input/touchscreen/tsc2005.c | 4 +-
drivers/input/touchscreen/tsc200x-core.c | 4 +-
drivers/input/touchscreen/tsc200x-core.h | 2 +-
drivers/input/touchscreen/wacom_i2c.c | 22 +-
drivers/interconnect/qcom/icc-rpm.c | 263 +-
drivers/interconnect/qcom/icc-rpm.h | 56 +-
drivers/interconnect/qcom/msm8916.c | 1214 +-
drivers/interconnect/qcom/msm8939.c | 1283 +-
drivers/interconnect/qcom/qcs404.c | 967 +-
drivers/interconnect/qcom/sdm660.c | 1940 +-
drivers/interconnect/samsung/Kconfig | 6 +-
drivers/iommu/amd/amd_iommu_types.h | 2 +
drivers/iommu/amd/init.c | 16 +-
drivers/iommu/amd/iommu.c | 24 +-
drivers/iommu/amd/iommu_v2.c | 3 +-
drivers/iommu/apple-dart.c | 36 +-
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 21 +-
drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 3 +
drivers/iommu/dma-iommu.c | 200 +-
drivers/iommu/intel/Kconfig | 4 +
drivers/iommu/intel/cap_audit.c | 13 +
drivers/iommu/intel/cap_audit.h | 1 +
drivers/iommu/intel/dmar.c | 10 +-
drivers/iommu/intel/iommu.c | 213 +-
drivers/iommu/intel/svm.c | 24 +-
drivers/iommu/iommu.c | 6 +-
drivers/iommu/ipmmu-vmsa.c | 32 +-
drivers/iommu/mtk_iommu.c | 4 +-
drivers/iommu/tegra-smmu.c | 5 +-
drivers/ipack/devices/ipoctal.c | 48 +-
drivers/irqchip/Kconfig | 25 +-
drivers/irqchip/Makefile | 1 +
drivers/irqchip/irq-apple-aic.c | 20 +-
drivers/irqchip/irq-armada-370-xp.c | 13 +-
drivers/irqchip/irq-aspeed-vic.c | 2 +-
drivers/irqchip/irq-ativic32.c | 22 +-
drivers/irqchip/irq-atmel-aic.c | 2 +-
drivers/irqchip/irq-atmel-aic5.c | 2 +-
drivers/irqchip/irq-bcm2835.c | 2 +-
drivers/irqchip/irq-bcm2836.c | 2 +-
drivers/irqchip/irq-bcm6345-l1.c | 6 +-
drivers/irqchip/irq-bcm7038-l1.c | 47 +-
drivers/irqchip/irq-bcm7120-l2.c | 21 +-
drivers/irqchip/irq-brcmstb-l2.c | 16 +-
drivers/irqchip/irq-clps711x.c | 8 +-
drivers/irqchip/irq-csky-apb-intc.c | 2 +-
drivers/irqchip/irq-csky-mpintc.c | 12 +-
drivers/irqchip/irq-davinci-aintc.c | 2 +-
drivers/irqchip/irq-davinci-cp-intc.c | 2 +-
drivers/irqchip/irq-digicolor.c | 2 +-
drivers/irqchip/irq-dw-apb-ictl.c | 2 +-
drivers/irqchip/irq-ftintc010.c | 2 +-
drivers/irqchip/irq-gic-v3.c | 4 +-
drivers/irqchip/irq-gic.c | 2 +-
drivers/irqchip/irq-hip04.c | 2 +-
drivers/irqchip/irq-ixp4xx.c | 4 +-
drivers/irqchip/irq-lpc32xx.c | 2 +-
drivers/irqchip/irq-mchp-eic.c | 280 +
drivers/irqchip/irq-meson-gpio.c | 15 +-
drivers/irqchip/irq-mips-gic.c | 37 +-
drivers/irqchip/irq-mmp.c | 4 +-
drivers/irqchip/irq-mvebu-icu.c | 4 +-
drivers/irqchip/irq-mvebu-pic.c | 4 +-
drivers/irqchip/irq-mxs.c | 2 +-
drivers/irqchip/irq-nvic.c | 17 +-
drivers/irqchip/irq-omap-intc.c | 2 +-
drivers/irqchip/irq-or1k-pic.c | 2 +-
drivers/irqchip/irq-orion.c | 4 +-
drivers/irqchip/irq-rda-intc.c | 2 +-
drivers/irqchip/irq-riscv-intc.c | 2 +-
drivers/irqchip/irq-sa11x0.c | 4 +-
drivers/irqchip/irq-sifive-plic.c | 8 +-
drivers/irqchip/irq-stm32-exti.c | 4 +-
drivers/irqchip/irq-sun4i.c | 2 +-
drivers/irqchip/irq-ti-sci-inta.c | 4 +-
drivers/irqchip/irq-ts4800.c | 4 +-
drivers/irqchip/irq-versatile-fpga.c | 2 +-
drivers/irqchip/irq-vic.c | 2 +-
drivers/irqchip/irq-vt8500.c | 2 +-
drivers/irqchip/irq-wpcm450-aic.c | 2 +-
drivers/irqchip/irq-zevio.c | 2 +-
drivers/isdn/hardware/mISDN/hfcpci.c | 8 +-
drivers/leds/led-class-flash.c | 2 +-
drivers/leds/led-triggers.c | 41 +-
drivers/leds/trigger/Kconfig | 1 +
drivers/macintosh/smu.c | 5 +-
drivers/mailbox/Kconfig | 12 +
drivers/mailbox/Makefile | 2 +
drivers/mailbox/apple-mailbox.c | 384 +
drivers/mailbox/bcm2835-mailbox.c | 4 +-
drivers/mailbox/hi3660-mailbox.c | 4 +-
drivers/mailbox/hi6220-mailbox.c | 7 +-
drivers/mailbox/imx-mailbox.c | 124 +-
drivers/mailbox/mailbox-altera.c | 5 +-
drivers/mailbox/mailbox-sti.c | 4 +-
drivers/mailbox/mailbox-xgene-slimpro.c | 4 +-
drivers/mailbox/mtk-cmdq-mailbox.c | 15 +-
drivers/mailbox/omap-mailbox.c | 4 +-
drivers/mailbox/pcc.c | 598 +-
drivers/mailbox/platform_mhu.c | 4 +-
drivers/mailbox/qcom-apcs-ipc-mailbox.c | 31 +-
drivers/mailbox/stm32-ipcc.c | 4 +-
drivers/mailbox/sun6i-msgbox.c | 9 +-
drivers/md/Kconfig | 10 +
drivers/md/Makefile | 4 +
drivers/md/bcache/bcache.h | 6 +-
drivers/md/bcache/bcache_ondisk.h | 445 +
drivers/md/bcache/bset.h | 2 +-
drivers/md/bcache/btree.c | 4 +-
drivers/md/bcache/debug.c | 15 +-
drivers/md/bcache/features.c | 2 +-
drivers/md/bcache/features.h | 3 +-
drivers/md/bcache/io.c | 16 +-
drivers/md/bcache/request.c | 19 +-
drivers/md/bcache/request.h | 4 +-
drivers/md/bcache/super.c | 93 +-
drivers/md/bcache/sysfs.c | 2 +-
drivers/md/bcache/sysfs.h | 18 +-
drivers/md/bcache/util.h | 29 -
drivers/md/bcache/writeback.c | 2 +-
drivers/md/dm-audit.c | 84 +
drivers/md/dm-audit.h | 66 +
drivers/md/dm-bio-record.h | 1 +
drivers/md/dm-bufio.c | 3 +-
drivers/md/dm-cache-metadata.c | 2 +-
drivers/md/dm-cache-target.c | 2 +-
drivers/md/dm-clone-target.c | 2 +-
drivers/md/dm-core.h | 4 +-
drivers/md/dm-crypt.c | 26 +-
drivers/md/dm-dust.c | 5 +-
drivers/md/dm-ebs-target.c | 2 +-
drivers/md/dm-era-target.c | 2 +-
drivers/md/dm-exception-store.h | 2 +-
drivers/md/dm-flakey.c | 3 +-
drivers/md/dm-ima.c | 1 +
drivers/md/dm-integrity.c | 41 +-
drivers/md/dm-linear.c | 3 +-
drivers/md/dm-log-writes.c | 10 +-
drivers/md/dm-log.c | 2 +-
drivers/md/dm-mpath.c | 6 +-
drivers/md/dm-ps-historical-service-time.c | 1 +
drivers/md/dm-raid.c | 6 +-
drivers/md/dm-rq.c | 1 -
drivers/md/dm-switch.c | 2 +-
drivers/md/dm-table.c | 176 +-
drivers/md/dm-thin-metadata.c | 2 +-
drivers/md/dm-thin.c | 2 +-
drivers/md/dm-verity-target.c | 10 +-
drivers/md/dm-writecache.c | 8 +-
drivers/md/dm-zoned-target.c | 3 +-
drivers/md/dm.c | 54 +-
drivers/md/md-bitmap.c | 19 +
drivers/md/md.c | 130 +-
drivers/md/md.h | 2 +-
drivers/md/raid1.c | 13 +-
drivers/md/raid10.c | 2 +-
drivers/md/raid5-ppl.c | 6 +-
drivers/md/raid5.c | 7 +-
drivers/media/cec/Kconfig | 4 +
drivers/media/cec/core/cec-pin.c | 4 +-
drivers/media/cec/platform/meson/ao-cec-g12a.c | 4 +-
drivers/media/cec/platform/meson/ao-cec.c | 4 +-
drivers/media/cec/platform/s5p/s5p_cec.c | 4 +-
drivers/media/cec/platform/sti/stih-cec.c | 4 +-
drivers/media/cec/platform/stm32/stm32-cec.c | 4 +-
drivers/media/common/siano/smscoreapi.c | 7 +-
drivers/media/common/videobuf2/videobuf2-core.c | 150 +-
.../media/common/videobuf2/videobuf2-dma-contig.c | 199 +-
drivers/media/common/videobuf2/videobuf2-dma-sg.c | 40 +-
drivers/media/common/videobuf2/videobuf2-v4l2.c | 59 +-
drivers/media/common/videobuf2/videobuf2-vmalloc.c | 31 +-
drivers/media/dvb-core/dvb_net.c | 8 +-
drivers/media/dvb-core/dvb_vb2.c | 2 +-
drivers/media/dvb-frontends/cxd2099.c | 9 -
drivers/media/dvb-frontends/cxd2099.h | 9 -
drivers/media/dvb-frontends/cxd2820r_priv.h | 2 +-
.../media/dvb-frontends/cxd2880/cxd2880_common.h | 1 +
drivers/media/dvb-frontends/mb86a20s.c | 4 +-
drivers/media/dvb-frontends/mn88443x.c | 18 +-
drivers/media/dvb-frontends/mxl5xx.c | 9 -
drivers/media/dvb-frontends/mxl5xx.h | 9 -
drivers/media/dvb-frontends/mxl5xx_defs.h | 4 -
drivers/media/dvb-frontends/mxl5xx_regs.h | 10 -
drivers/media/dvb-frontends/mxl692.c | 9 -
drivers/media/dvb-frontends/mxl692.h | 9 -
drivers/media/dvb-frontends/mxl692_defs.h | 9 -
drivers/media/dvb-frontends/rtl2832_sdr.c | 5 +-
drivers/media/dvb-frontends/stv0910.c | 9 -
drivers/media/dvb-frontends/stv0910.h | 9 -
drivers/media/dvb-frontends/stv6111.c | 9 -
drivers/media/dvb-frontends/stv6111.h | 9 -
drivers/media/firewire/firedtv-avc.c | 14 +-
drivers/media/firewire/firedtv-ci.c | 2 +
drivers/media/i2c/Kconfig | 27 +
drivers/media/i2c/Makefile | 2 +
drivers/media/i2c/adv7604.c | 15 +-
drivers/media/i2c/dw9714.c | 14 +-
drivers/media/i2c/hi846.c | 2190 +
drivers/media/i2c/imx258.c | 12 +-
drivers/media/i2c/imx319.c | 74 +-
drivers/media/i2c/ir-kbd-i2c.c | 1 +
drivers/media/i2c/max9286.c | 17 +-
drivers/media/i2c/mt9p031.c | 80 +-
drivers/media/i2c/ov13858.c | 11 +-
drivers/media/i2c/ov13b10.c | 1491 +
drivers/media/i2c/ov5670.c | 11 +-
drivers/media/i2c/ov8856.c | 83 +-
drivers/media/i2c/st-mipid02.c | 22 +-
drivers/media/i2c/tda1997x.c | 131 +-
drivers/media/i2c/tda1997x_regs.h | 3 +
drivers/media/i2c/video-i2c.c | 21 +-
drivers/media/mc/Kconfig | 8 -
drivers/media/pci/cobalt/cobalt-driver.c | 4 +-
drivers/media/pci/cx18/cx18-driver.c | 2 +-
drivers/media/pci/cx18/cx18-ioctl.c | 4 +-
drivers/media/pci/cx18/cx18-queue.c | 13 +-
drivers/media/pci/cx18/cx18-streams.c | 24 +-
drivers/media/pci/cx23885/cx23885-alsa.c | 3 +-
drivers/media/pci/ddbridge/ddbridge-main.c | 4 +-
drivers/media/pci/intel/ipu3/cio2-bridge.c | 60 +-
drivers/media/pci/intel/ipu3/cio2-bridge.h | 9 +-
drivers/media/pci/intel/ipu3/ipu3-cio2-main.c | 274 +-
drivers/media/pci/intel/ipu3/ipu3-cio2.h | 4 +
drivers/media/pci/ivtv/ivtv-driver.c | 2 +-
drivers/media/pci/ivtv/ivtv-ioctl.c | 8 +-
drivers/media/pci/ivtv/ivtv-queue.c | 18 +-
drivers/media/pci/ivtv/ivtv-streams.c | 22 +-
drivers/media/pci/ivtv/ivtv-udma.c | 19 +-
drivers/media/pci/ivtv/ivtv-yuv.c | 10 +-
drivers/media/pci/ivtv/ivtvfb.c | 12 +-
drivers/media/pci/netup_unidvb/netup_unidvb_core.c | 29 +-
drivers/media/pci/pluto2/pluto2.c | 20 +-
drivers/media/pci/pt1/pt1.c | 2 +-
drivers/media/pci/saa7134/saa7134-cards.c | 53 +
drivers/media/pci/saa7134/saa7134-dvb.c | 29 +
drivers/media/pci/saa7134/saa7134.h | 1 +
drivers/media/pci/saa7164/saa7164-api.c | 2 -
drivers/media/pci/tw5864/tw5864-core.c | 2 +-
drivers/media/platform/Kconfig | 20 +
drivers/media/platform/Makefile | 1 +
drivers/media/platform/allegro-dvt/allegro-core.c | 311 +-
drivers/media/platform/allegro-dvt/allegro-mail.c | 23 +-
drivers/media/platform/allegro-dvt/allegro-mail.h | 10 +-
drivers/media/platform/allegro-dvt/nal-h264.c | 74 -
drivers/media/platform/allegro-dvt/nal-h264.h | 200 +-
drivers/media/platform/allegro-dvt/nal-hevc.c | 202 +-
drivers/media/platform/allegro-dvt/nal-hevc.h | 189 +-
drivers/media/platform/am437x/am437x-vpfe.c | 23 +-
drivers/media/platform/aspeed-video.c | 133 +-
drivers/media/platform/atmel/atmel-isc-base.c | 29 +-
drivers/media/platform/atmel/atmel-isc.h | 2 +
drivers/media/platform/atmel/atmel-isi.c | 17 +-
drivers/media/platform/atmel/atmel-sama5d2-isc.c | 54 +-
drivers/media/platform/atmel/atmel-sama7g5-isc.c | 37 +-
drivers/media/platform/cadence/cdns-csi2rx.c | 18 +-
drivers/media/platform/cadence/cdns-csi2tx.c | 4 +-
drivers/media/platform/coda/imx-vdoa.c | 3 +-
drivers/media/platform/davinci/vpbe_venc.c | 9 +-
drivers/media/platform/davinci/vpif.c | 5 +-
drivers/media/platform/davinci/vpif_capture.c | 21 +-
drivers/media/platform/davinci/vpss.c | 10 +-
drivers/media/platform/exynos-gsc/gsc-core.c | 3 +-
drivers/media/platform/exynos4-is/media-dev.c | 20 +-
drivers/media/platform/exynos4-is/mipi-csis.c | 4 +-
drivers/media/platform/imx-jpeg/mxc-jpeg.c | 109 +-
drivers/media/platform/imx-jpeg/mxc-jpeg.h | 2 +
drivers/media/platform/imx-pxp.c | 4 +-
drivers/media/platform/marvell-ccic/cafe-driver.c | 9 +-
drivers/media/platform/marvell-ccic/mcam-core.c | 10 +-
drivers/media/platform/marvell-ccic/mmp-driver.c | 6 +-
drivers/media/platform/meson/ge2d/ge2d.c | 10 +-
drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c | 4 +-
drivers/media/platform/mtk-vcodec/Makefile | 3 +
drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c | 820 +-
drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.h | 27 +-
.../media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c | 65 +-
.../platform/mtk-vcodec/mtk_vcodec_dec_stateful.c | 628 +
.../platform/mtk-vcodec/mtk_vcodec_dec_stateless.c | 360 +
drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h | 59 +-
drivers/media/platform/mtk-vcodec/mtk_vcodec_enc.c | 148 +-
.../media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c | 75 +-
.../platform/mtk-vcodec/vdec/vdec_h264_req_if.c | 774 +
drivers/media/platform/mtk-vcodec/vdec_drv_if.c | 3 +
drivers/media/platform/mtk-vcodec/vdec_drv_if.h | 1 +
drivers/media/platform/mtk-vcodec/vdec_ipi_msg.h | 23 +-
drivers/media/platform/mtk-vcodec/vdec_vpu_if.c | 43 +-
drivers/media/platform/mtk-vcodec/vdec_vpu_if.h | 5 +
drivers/media/platform/mtk-vpu/mtk_vpu.c | 5 +-
drivers/media/platform/mx2_emmaprp.c | 4 +-
drivers/media/platform/omap/omap_vout.c | 18 +-
drivers/media/platform/omap/omap_vout_vrfb.c | 2 +-
drivers/media/platform/omap/omap_voutdef.h | 2 +-
drivers/media/platform/omap3isp/isp.c | 21 +-
drivers/media/platform/pxa_camera.c | 26 +-
drivers/media/platform/qcom/camss/camss-vfe-170.c | 9 +-
drivers/media/platform/qcom/camss/camss-vfe-4-1.c | 28 +-
drivers/media/platform/qcom/camss/camss-vfe-4-7.c | 18 +-
drivers/media/platform/qcom/camss/camss-vfe-4-8.c | 17 +-
drivers/media/platform/qcom/camss/camss-vfe.c | 4 +-
drivers/media/platform/qcom/camss/camss-vfe.h | 2 +-
drivers/media/platform/qcom/camss/camss.c | 18 +-
drivers/media/platform/qcom/venus/core.c | 135 +-
drivers/media/platform/qcom/venus/core.h | 9 +-
drivers/media/platform/qcom/venus/firmware.c | 42 +-
drivers/media/platform/qcom/venus/helpers.c | 81 +-
drivers/media/platform/qcom/venus/helpers.h | 4 +
drivers/media/platform/qcom/venus/hfi.c | 48 +-
drivers/media/platform/qcom/venus/hfi_cmds.c | 7 +
drivers/media/platform/qcom/venus/hfi_helper.h | 14 +
drivers/media/platform/qcom/venus/hfi_msgs.c | 7 +
.../media/platform/qcom/venus/hfi_plat_bufs_v6.c | 6 +-
drivers/media/platform/qcom/venus/hfi_platform.c | 13 -
drivers/media/platform/qcom/venus/hfi_platform.h | 2 -
.../media/platform/qcom/venus/hfi_platform_v6.c | 6 -
drivers/media/platform/qcom/venus/hfi_venus.c | 4 +
drivers/media/platform/qcom/venus/hfi_venus_io.h | 2 +
drivers/media/platform/qcom/venus/pm_helpers.c | 13 +-
drivers/media/platform/qcom/venus/vdec.c | 67 +-
drivers/media/platform/qcom/venus/venc.c | 116 +-
drivers/media/platform/rcar-isp.c | 515 +
drivers/media/platform/rcar-vin/rcar-core.c | 1077 +-
drivers/media/platform/rcar-vin/rcar-csi2.c | 241 +-
drivers/media/platform/rcar-vin/rcar-dma.c | 40 +-
drivers/media/platform/rcar-vin/rcar-v4l2.c | 25 +
drivers/media/platform/rcar-vin/rcar-vin.h | 25 +-
drivers/media/platform/rcar_drif.c | 17 +-
drivers/media/platform/rcar_fdp1.c | 4 +-
drivers/media/platform/rcar_jpu.c | 4 +-
drivers/media/platform/renesas-ceu.c | 33 +-
drivers/media/platform/rockchip/rga/rga.c | 5 +-
.../platform/rockchip/rkisp1/rkisp1-capture.c | 9 +-
.../media/platform/rockchip/rkisp1/rkisp1-common.h | 44 +-
.../media/platform/rockchip/rkisp1/rkisp1-dev.c | 98 +-
.../media/platform/rockchip/rkisp1/rkisp1-isp.c | 29 +-
.../media/platform/rockchip/rkisp1/rkisp1-params.c | 557 +-
.../media/platform/rockchip/rkisp1/rkisp1-regs.h | 406 +-
.../media/platform/rockchip/rkisp1/rkisp1-stats.c | 107 +-
drivers/media/platform/s3c-camif/camif-core.c | 6 +-
drivers/media/platform/s5p-g2d/g2d.c | 4 +-
drivers/media/platform/s5p-jpeg/jpeg-core.c | 5 +-
drivers/media/platform/s5p-mfc/s5p_mfc.c | 9 +-
drivers/media/platform/sti/bdisp/bdisp-v4l2.c | 3 +-
.../media/platform/sti/c8sectpfe/c8sectpfe-core.c | 1 -
.../media/platform/sti/c8sectpfe/c8sectpfe-dvb.c | 1 -
drivers/media/platform/sti/hva/hva-hw.c | 4 +-
drivers/media/platform/stm32/stm32-dcmi.c | 37 +-
drivers/media/platform/sunxi/sun4i-csi/sun4i_csi.c | 16 +-
drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c | 33 +-
drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.h | 2 +-
.../media/platform/sunxi/sun6i-csi/sun6i_video.c | 8 +-
drivers/media/platform/sunxi/sun8i-di/sun8i-di.c | 4 +-
drivers/media/platform/ti-vpe/cal.c | 16 +-
drivers/media/platform/via-camera.c | 6 +-
drivers/media/platform/video-mux.c | 17 +-
drivers/media/platform/vsp1/vsp1_drm.c | 8 +-
drivers/media/platform/vsp1/vsp1_drv.c | 18 +-
drivers/media/platform/vsp1/vsp1_regs.h | 11 +-
drivers/media/platform/vsp1/vsp1_wpf.c | 2 +-
drivers/media/platform/xilinx/xilinx-vip.c | 4 +-
drivers/media/platform/xilinx/xilinx-vipp.c | 17 +-
drivers/media/radio/radio-wl1273.c | 2 +-
drivers/media/radio/si470x/radio-si470x-i2c.c | 2 +-
drivers/media/radio/si470x/radio-si470x-usb.c | 2 +-
drivers/media/rc/Kconfig | 8 -
drivers/media/rc/Makefile | 1 -
drivers/media/rc/img-ir/img-ir-core.c | 4 +-
drivers/media/rc/imon.c | 2 +
drivers/media/rc/ir-hix5hd2.c | 4 +-
drivers/media/rc/ir_toy.c | 63 +-
drivers/media/rc/ite-cir.c | 2 +-
drivers/media/rc/mceusb.c | 2 +
drivers/media/rc/meson-ir-tx.c | 1 -
drivers/media/rc/meson-ir.c | 4 +-
drivers/media/rc/mtk-cir.c | 4 +-
drivers/media/rc/sir_ir.c | 438 -
drivers/media/rc/st_rc.c | 5 +-
drivers/media/rc/streamzap.c | 1 +
drivers/media/rc/sunxi-cir.c | 4 +-
drivers/media/spi/cxd2880-spi.c | 2 +-
drivers/media/test-drivers/vidtv/vidtv_bridge.c | 4 +
drivers/media/test-drivers/vim2m.c | 5 -
drivers/media/test-drivers/vimc/vimc-scaler.c | 366 +-
drivers/media/test-drivers/vivid/vivid-cec.c | 341 +-
drivers/media/test-drivers/vivid/vivid-cec.h | 9 +-
drivers/media/test-drivers/vivid/vivid-core.c | 52 +-
drivers/media/test-drivers/vivid/vivid-core.h | 23 +-
drivers/media/tuners/mxl5007t.c | 9 -
drivers/media/tuners/tuner-types.c | 4 +
drivers/media/usb/airspy/airspy.c | 5 +-
drivers/media/usb/dvb-usb-v2/mxl111sf.c | 16 +-
drivers/media/usb/dvb-usb/az6027.c | 1 +
drivers/media/usb/dvb-usb/dibusb-common.c | 2 +-
drivers/media/usb/em28xx/em28xx-cards.c | 12 +-
drivers/media/usb/em28xx/em28xx-core.c | 5 +-
drivers/media/usb/gspca/gl860/gl860-mi1320.c | 87 +-
drivers/media/usb/gspca/gl860/gl860-ov9655.c | 169 +-
drivers/media/usb/gspca/gspca.c | 2 +
drivers/media/usb/gspca/m5602/m5602_ov7660.h | 1 -
drivers/media/usb/gspca/sn9c20x.c | 22 +-
drivers/media/usb/pvrusb2/pvrusb2-ctrl.c | 25 +-
drivers/media/usb/pvrusb2/pvrusb2-v4l2.c | 4 -
drivers/media/usb/stkwebcam/stk-webcam.c | 11 +-
drivers/media/usb/tm6000/tm6000-video.c | 3 +-
drivers/media/usb/ttusb-dec/ttusb_dec.c | 10 +-
drivers/media/usb/uvc/uvc_ctrl.c | 260 +-
drivers/media/usb/uvc/uvc_driver.c | 16 +-
drivers/media/usb/uvc/uvc_metadata.c | 2 +-
drivers/media/usb/uvc/uvc_v4l2.c | 103 +-
drivers/media/usb/uvc/uvc_video.c | 5 +
drivers/media/usb/uvc/uvcvideo.h | 17 +-
drivers/media/v4l2-core/v4l2-async.c | 168 +-
drivers/media/v4l2-core/v4l2-common.c | 3 +
drivers/media/v4l2-core/v4l2-compat-ioctl32.c | 9 +-
drivers/media/v4l2-core/v4l2-ctrls-core.c | 6 +
drivers/media/v4l2-core/v4l2-ctrls-defs.c | 5 +
drivers/media/v4l2-core/v4l2-fwnode.c | 83 +-
drivers/media/v4l2-core/v4l2-ioctl.c | 77 +-
drivers/memory/Kconfig | 5 +-
drivers/memory/fsl_ifc.c | 13 +-
drivers/memory/jedec_ddr.h | 47 +
drivers/memory/jedec_ddr_data.c | 41 +
drivers/memory/mtk-smi.c | 596 +-
drivers/memory/of_memory.c | 87 +
drivers/memory/of_memory.h | 9 +
drivers/memory/renesas-rpc-if.c | 159 +-
drivers/memory/samsung/Kconfig | 13 +-
drivers/memory/tegra/Kconfig | 1 +
drivers/memory/tegra/mc.c | 25 +-
drivers/memory/tegra/tegra186-emc.c | 5 +
drivers/memory/tegra/tegra20-emc.c | 200 +-
drivers/memory/tegra/tegra210-emc-cc-r21021.c | 2 +-
drivers/memory/tegra/tegra210-emc-core.c | 6 +-
drivers/memory/tegra/tegra30-emc.c | 4 +-
drivers/memstick/core/ms_block.c | 8 +-
drivers/memstick/core/mspro_block.c | 6 +-
drivers/memstick/host/jmb38x_ms.c | 5 +-
drivers/memstick/host/r592.c | 8 +-
drivers/message/fusion/mptbase.c | 7 +-
drivers/message/fusion/mptbase.h | 2 +-
drivers/message/fusion/mptctl.c | 4 +-
drivers/message/fusion/mptfc.c | 8 +-
drivers/message/fusion/mptlan.c | 4 +-
drivers/message/fusion/mptsas.c | 4 +-
drivers/message/fusion/mptscsih.c | 46 +-
drivers/message/fusion/mptscsih.h | 2 +-
drivers/message/fusion/mptspi.c | 6 +-
drivers/mfd/Kconfig | 23 +-
drivers/mfd/Makefile | 1 -
drivers/mfd/altera-a10sr.c | 9 +
drivers/mfd/altera-sysmgr.c | 2 +-
drivers/mfd/arizona-core.c | 13 -
drivers/mfd/arizona-i2c.c | 14 +-
drivers/mfd/arizona-spi.c | 13 +-
drivers/mfd/arizona.h | 2 -
drivers/mfd/cros_ec_dev.c | 5 +-
drivers/mfd/da9063-i2c.c | 2 +
drivers/mfd/db8500-prcmu.c | 13 +-
drivers/mfd/dln2.c | 18 +
drivers/mfd/hi6421-spmi-pmic.c | 16 +-
drivers/mfd/intel-lpss-pci.c | 2 +
drivers/mfd/janz-cmodio.c | 2 +-
drivers/mfd/max14577.c | 6 +-
drivers/mfd/max77686.c | 3 +-
drivers/mfd/max77693.c | 12 +-
drivers/mfd/mc13xxx-core.c | 4 +-
drivers/mfd/mc13xxx-i2c.c | 3 +-
drivers/mfd/mc13xxx-spi.c | 3 +-
drivers/mfd/mc13xxx.h | 2 +-
drivers/mfd/mfd-core.c | 2 +
drivers/mfd/motorola-cpcap.c | 8 +
drivers/mfd/qcom-pm8xxx.c | 39 +-
drivers/mfd/qcom-spmi-pmic.c | 47 +-
drivers/mfd/rk808.c | 4 +
drivers/mfd/sec-irq.c | 3 +-
drivers/mfd/sprd-sc27xx-spi.c | 17 +
drivers/mfd/stmpe-i2c.c | 4 +-
drivers/mfd/stmpe-spi.c | 4 +-
drivers/mfd/stmpe.c | 4 +-
drivers/mfd/stmpe.h | 2 +-
drivers/mfd/ti_am335x_tscadc.c | 237 +-
drivers/mfd/tps65912-core.c | 4 +-
drivers/mfd/tps65912-i2c.c | 4 +-
drivers/mfd/tps65912-spi.c | 4 +-
drivers/mfd/tps80031.c | 526 -
drivers/mfd/wcd934x.c | 21 +-
drivers/misc/ad525x_dpot-i2c.c | 3 +-
drivers/misc/ad525x_dpot-spi.c | 3 +-
drivers/misc/ad525x_dpot.c | 4 +-
drivers/misc/ad525x_dpot.h | 2 +-
drivers/misc/cardreader/rtsx_pcr.c | 2 +-
drivers/misc/cxl/guest.c | 30 +-
drivers/misc/cxl/pci.c | 35 +-
drivers/misc/eeprom/at24.c | 45 +-
drivers/misc/enclosure.c | 16 +-
drivers/misc/fastrpc.c | 21 +-
drivers/misc/genwqe/card_utils.c | 10 +-
drivers/misc/habanalabs/Kconfig | 2 +
drivers/misc/habanalabs/common/Makefile | 2 +-
.../misc/habanalabs/common/command_submission.c | 105 +-
drivers/misc/habanalabs/common/context.c | 8 +-
drivers/misc/habanalabs/common/debugfs.c | 51 +
drivers/misc/habanalabs/common/device.c | 159 +-
drivers/misc/habanalabs/common/firmware_if.c | 28 +-
drivers/misc/habanalabs/common/habanalabs.h | 64 +-
drivers/misc/habanalabs/common/habanalabs_drv.c | 24 +-
drivers/misc/habanalabs/common/hwmgr.c | 117 +
drivers/misc/habanalabs/common/hwmon.c | 194 +-
drivers/misc/habanalabs/common/irq.c | 5 +-
drivers/misc/habanalabs/common/memory.c | 515 +-
drivers/misc/habanalabs/common/mmu/mmu.c | 30 +-
drivers/misc/habanalabs/common/sysfs.c | 6 +-
drivers/misc/habanalabs/gaudi/Makefile | 2 +-
drivers/misc/habanalabs/gaudi/gaudi.c | 22 +-
drivers/misc/habanalabs/gaudi/gaudiP.h | 4 -
drivers/misc/habanalabs/gaudi/gaudi_hwmgr.c | 121 -
drivers/misc/habanalabs/goya/goya.c | 13 +-
drivers/misc/habanalabs/goya/goyaP.h | 1 -
drivers/misc/habanalabs/goya/goya_hwmgr.c | 31 -
drivers/misc/habanalabs/include/common/cpucp_if.h | 22 +-
.../misc/habanalabs/include/common/hl_boot_if.h | 189 +-
.../misc/habanalabs/include/gaudi/gaudi_fw_if.h | 10 +-
.../misc/habanalabs/include/gaudi/gaudi_reg_map.h | 1 +
drivers/misc/hi6421v600-irq.c | 9 +-
drivers/misc/hisi_hikey_usb.c | 119 +-
drivers/misc/lis3lv02d/lis3lv02d.c | 3 +-
drivers/misc/lis3lv02d/lis3lv02d.h | 2 +-
drivers/misc/lis3lv02d/lis3lv02d_spi.c | 4 +-
drivers/misc/lkdtm/bugs.c | 77 +
drivers/misc/lkdtm/core.c | 1 +
drivers/misc/lkdtm/lkdtm.h | 1 +
drivers/misc/mei/Kconfig | 2 +
drivers/misc/mei/Makefile | 1 +
drivers/misc/mei/pci-txe.c | 4 +-
drivers/misc/mei/pxp/Kconfig | 13 +
drivers/misc/mei/pxp/Makefile | 7 +
drivers/misc/mei/pxp/mei_pxp.c | 229 +
drivers/misc/mei/pxp/mei_pxp.h | 18 +
drivers/misc/ocxl/config.c | 13 +-
drivers/misc/pvpanic/pvpanic-mmio.c | 9 +-
drivers/misc/pvpanic/pvpanic-pci.c | 26 +-
drivers/misc/pvpanic/pvpanic.c | 16 +-
drivers/misc/sgi-xp/xpnet.c | 9 +-
drivers/misc/tifm_7xx1.c | 2 +-
drivers/misc/tifm_core.c | 8 +-
drivers/mmc/core/block.c | 27 +-
drivers/mmc/core/crypto.c | 11 +-
drivers/mmc/core/mmc.c | 8 +
drivers/mmc/core/mmc_ops.h | 1 -
drivers/mmc/core/mmc_test.c | 1 -
drivers/mmc/core/sd.c | 1 +
drivers/mmc/core/slot-gpio.c | 42 +-
drivers/mmc/host/Kconfig | 10 +-
drivers/mmc/host/Makefile | 1 -
drivers/mmc/host/bcm2835.c | 2 -
drivers/mmc/host/cqhci-core.c | 7 +-
drivers/mmc/host/cqhci-crypto.c | 33 +-
drivers/mmc/host/dw_mmc-exynos.c | 26 +-
drivers/mmc/host/dw_mmc.c | 42 +-
drivers/mmc/host/mmci.c | 4 +
drivers/mmc/host/moxart-mmc.c | 29 +-
drivers/mmc/host/mtk-sd.c | 137 +-
drivers/mmc/host/mxs-mmc.c | 10 +
drivers/mmc/host/omap_hsmmc.c | 12 +-
drivers/mmc/host/sdhci-acpi.c | 14 +-
drivers/mmc/host/sdhci-esdhc-imx.c | 33 +-
drivers/mmc/host/sdhci-of-arasan.c | 29 +-
drivers/mmc/host/sdhci-omap.c | 322 +-
drivers/mmc/host/sdhci-pci-core.c | 159 +-
drivers/mmc/host/sdhci-pci-data.c | 6 -
drivers/mmc/host/sdhci-pci-o2micro.c | 2 +-
drivers/mmc/host/sdhci-pci.h | 5 -
drivers/mmc/host/sdhci-s3c.c | 1 -
drivers/mmc/host/sdhci-sprd.c | 13 +
drivers/mmc/host/sdhci.c | 48 +-
drivers/mmc/host/sdhci.h | 2 +-
drivers/mmc/host/tmio_mmc_core.c | 17 +-
drivers/mmc/host/vub300.c | 18 +-
drivers/most/most_usb.c | 5 +-
drivers/mtd/chips/Kconfig | 2 +
drivers/mtd/devices/block2mtd.c | 29 +-
drivers/mtd/maps/Kconfig | 2 +-
drivers/mtd/mtd_blkdevs.c | 6 +-
drivers/mtd/mtdcore.c | 5 +-
drivers/mtd/mtdsuper.c | 1 +
drivers/mtd/mtdswap.c | 1 -
drivers/mtd/nand/ecc-sw-hamming.c | 7 +-
drivers/mtd/nand/onenand/Kconfig | 9 +-
drivers/mtd/nand/raw/ams-delta.c | 12 +-
drivers/mtd/nand/raw/arasan-nand-controller.c | 15 +
drivers/mtd/nand/raw/atmel/pmecc.c | 7 +-
drivers/mtd/nand/raw/au1550nd.c | 12 +-
drivers/mtd/nand/raw/brcmnand/bcm6368_nand.c | 5 +-
drivers/mtd/nand/raw/cs553x_nand.c | 12 +-
drivers/mtd/nand/raw/denali_dt.c | 7 +-
drivers/mtd/nand/raw/fsmc_nand.c | 4 +-
drivers/mtd/nand/raw/gpio.c | 15 +-
drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c | 4 +-
drivers/mtd/nand/raw/hisi504_nand.c | 7 +-
drivers/mtd/nand/raw/intel-nand-controller.c | 5 +
drivers/mtd/nand/raw/lpc32xx_slc.c | 15 +-
drivers/mtd/nand/raw/mpc5121_nfc.c | 12 +-
drivers/mtd/nand/raw/mtk_ecc.c | 4 +-
drivers/mtd/nand/raw/mtk_nand.c | 4 +-
drivers/mtd/nand/raw/nand_hynix.c | 14 +
drivers/mtd/nand/raw/nand_ids.c | 4 +
drivers/mtd/nand/raw/ndfc.c | 12 +-
drivers/mtd/nand/raw/omap_elm.c | 5 +-
drivers/mtd/nand/raw/orion_nand.c | 12 +-
drivers/mtd/nand/raw/oxnas_nand.c | 4 +-
drivers/mtd/nand/raw/pasemi_nand.c | 12 +-
drivers/mtd/nand/raw/plat_nand.c | 16 +-
drivers/mtd/nand/raw/qcom_nandc.c | 14 +-
drivers/mtd/nand/raw/sharpsl.c | 12 +-
drivers/mtd/nand/raw/socrates_nand.c | 12 +-
drivers/mtd/nand/raw/stm32_fmc2_nand.c | 8 +-
drivers/mtd/nand/raw/tegra_nand.c | 4 +-
drivers/mtd/nand/raw/tmio_nand.c | 8 +-
drivers/mtd/nand/raw/txx9ndfmc.c | 9 +-
drivers/mtd/nand/raw/vf610_nfc.c | 4 +-
drivers/mtd/nand/raw/xway_nand.c | 16 +-
drivers/mtd/spi-nor/controllers/hisi-sfc.c | 8 +-
drivers/mtd/spi-nor/controllers/nxp-spifi.c | 7 +-
drivers/mtd/spi-nor/micron-st.c | 4 +-
drivers/mtd/ubi/block.c | 8 +-
drivers/mux/core.c | 38 +-
drivers/net/Kconfig | 19 +-
drivers/net/Makefile | 1 +
drivers/net/amt.c | 3297 ++
drivers/net/appletalk/cops.c | 2 +-
drivers/net/appletalk/ltpc.c | 3 +-
drivers/net/arcnet/arc-rimi.c | 5 +-
drivers/net/arcnet/arcdevice.h | 5 +
drivers/net/arcnet/com20020-isa.c | 2 +-
drivers/net/arcnet/com20020-pci.c | 2 +-
drivers/net/arcnet/com20020.c | 4 +-
drivers/net/arcnet/com20020_cs.c | 2 +-
drivers/net/arcnet/com90io.c | 2 +-
drivers/net/arcnet/com90xx.c | 3 +-
drivers/net/bareudp.c | 7 +-
drivers/net/bonding/bond_alb.c | 28 +-
drivers/net/bonding/bond_main.c | 4 +-
drivers/net/bonding/bond_sysfs.c | 4 +-
drivers/net/bonding/bond_sysfs_slave.c | 36 +-
drivers/net/can/at91_can.c | 4 +-
drivers/net/can/dev/bittiming.c | 30 +-
drivers/net/can/dev/netlink.c | 221 +-
drivers/net/can/flexcan.c | 68 +-
drivers/net/can/janz-ican3.c | 2 +-
drivers/net/can/m_can/m_can_platform.c | 14 +-
drivers/net/can/mscan/mpc5xxx_can.c | 6 +-
drivers/net/can/rcar/Kconfig | 4 +-
drivers/net/can/rcar/rcar_can.c | 20 +-
drivers/net/can/sja1000/peak_pci.c | 9 +-
drivers/net/can/slcan.c | 5 +-
drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c | 6 +-
drivers/net/can/usb/etas_es58x/es581_4.h | 2 +-
drivers/net/can/usb/etas_es58x/es58x_core.c | 6 +-
drivers/net/can/usb/etas_es58x/es58x_fd.c | 7 +-
drivers/net/can/usb/etas_es58x/es58x_fd.h | 2 +-
drivers/net/can/usb/gs_usb.c | 12 +-
drivers/net/can/usb/peak_usb/pcan_usb.c | 27 +-
drivers/net/can/usb/peak_usb/pcan_usb_core.c | 13 +
drivers/net/can/usb/peak_usb/pcan_usb_core.h | 1 +
drivers/net/can/usb/peak_usb/pcan_usb_fd.c | 17 +-
drivers/net/can/xilinx_can.c | 7 +-
drivers/net/dsa/Kconfig | 1 +
drivers/net/dsa/Makefile | 2 +-
drivers/net/dsa/b53/b53_common.c | 101 +-
drivers/net/dsa/b53/b53_priv.h | 2 +-
drivers/net/dsa/bcm_sf2.c | 12 +-
drivers/net/dsa/hirschmann/hellcreek.c | 6 +-
drivers/net/dsa/lantiq_gswip.c | 44 +-
drivers/net/dsa/microchip/ksz8795.c | 8 +-
drivers/net/dsa/mt7530.c | 8 +-
drivers/net/dsa/mv88e6xxx/chip.c | 10 +-
drivers/net/dsa/ocelot/felix.c | 13 +-
drivers/net/dsa/ocelot/felix_vsc9959.c | 8 +-
drivers/net/dsa/ocelot/seville_vsc9953.c | 8 +-
drivers/net/dsa/qca/ar9331.c | 10 +-
drivers/net/dsa/qca8k.c | 443 +-
drivers/net/dsa/qca8k.h | 36 +-
drivers/net/dsa/realtek-smi-core.c | 4 +
drivers/net/dsa/realtek-smi-core.h | 4 +-
drivers/net/dsa/rtl8365mb.c | 1982 +
drivers/net/dsa/rtl8366.c | 96 +-
drivers/net/dsa/rtl8366rb.c | 301 +-
drivers/net/dsa/sja1105/sja1105.h | 29 +-
drivers/net/dsa/sja1105/sja1105_clocking.c | 35 +-
drivers/net/dsa/sja1105/sja1105_dynamic_config.c | 91 +-
drivers/net/dsa/sja1105/sja1105_main.c | 144 +-
drivers/net/dsa/sja1105/sja1105_vl.c | 15 +-
drivers/net/dsa/xrs700x/xrs700x.c | 8 +-
drivers/net/dsa/xrs700x/xrs700x_mdio.c | 12 +-
drivers/net/ethernet/3com/3c509.c | 2 +-
drivers/net/ethernet/3com/3c515.c | 5 +-
drivers/net/ethernet/3com/3c574_cs.c | 11 +-
drivers/net/ethernet/3com/3c589_cs.c | 10 +-
drivers/net/ethernet/3com/3c59x.c | 4 +-
drivers/net/ethernet/8390/apne.c | 3 +-
drivers/net/ethernet/8390/ax88796.c | 12 +-
drivers/net/ethernet/8390/axnet_cs.c | 7 +-
drivers/net/ethernet/8390/mcf8390.c | 3 +-
drivers/net/ethernet/8390/ne.c | 4 +-
drivers/net/ethernet/8390/ne2k-pci.c | 2 +-
drivers/net/ethernet/8390/pcnet_cs.c | 22 +-
drivers/net/ethernet/8390/stnic.c | 5 +-
drivers/net/ethernet/8390/zorro8390.c | 3 +-
drivers/net/ethernet/Kconfig | 1 +
drivers/net/ethernet/Makefile | 1 +
drivers/net/ethernet/actions/owl-emac.c | 6 +-
drivers/net/ethernet/adaptec/starfire.c | 14 +-
drivers/net/ethernet/aeroflex/greth.c | 8 +-
drivers/net/ethernet/agere/et131x.c | 4 +-
drivers/net/ethernet/alacritech/slicoss.c | 4 +-
drivers/net/ethernet/allwinner/sun4i-emac.c | 4 +-
drivers/net/ethernet/alteon/acenic.c | 20 +-
drivers/net/ethernet/altera/altera_tse_main.c | 4 +-
drivers/net/ethernet/amazon/ena/ena_netdev.c | 2 +-
drivers/net/ethernet/amd/Kconfig | 2 +-
drivers/net/ethernet/amd/amd8111e.c | 6 +-
drivers/net/ethernet/amd/atarilance.c | 4 +-
drivers/net/ethernet/amd/au1000_eth.c | 2 +-
drivers/net/ethernet/amd/nmclan_cs.c | 5 +-
drivers/net/ethernet/amd/pcnet32.c | 15 +-
drivers/net/ethernet/amd/sun3lance.c | 4 +-
drivers/net/ethernet/amd/sunlance.c | 4 +-
drivers/net/ethernet/amd/xgbe/xgbe-common.h | 8 +
drivers/net/ethernet/amd/xgbe/xgbe-dev.c | 2 +-
drivers/net/ethernet/amd/xgbe/xgbe-drv.c | 4 +-
drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c | 8 +-
drivers/net/ethernet/amd/xgbe/xgbe-main.c | 2 +-
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c | 20 +-
drivers/net/ethernet/amd/xgbe/xgbe.h | 2 +-
drivers/net/ethernet/apm/xgene-v2/mac.c | 2 +-
drivers/net/ethernet/apm/xgene-v2/main.c | 2 +-
drivers/net/ethernet/apm/xgene/xgene_enet_hw.c | 2 +-
drivers/net/ethernet/apm/xgene/xgene_enet_main.c | 2 +-
drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.c | 2 +-
drivers/net/ethernet/apm/xgene/xgene_enet_xgmac.c | 2 +-
drivers/net/ethernet/apple/bmac.c | 15 +-
drivers/net/ethernet/aquantia/atlantic/aq_hw.h | 6 +-
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c | 2 +-
drivers/net/ethernet/aquantia/atlantic/aq_nic.c | 8 +-
.../ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c | 4 +-
.../ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c | 4 +-
.../ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.h | 2 +-
.../aquantia/atlantic/hw_atl/hw_atl_utils.c | 4 +-
.../aquantia/atlantic/hw_atl/hw_atl_utils_fw2x.c | 4 +-
.../ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c | 2 +-
drivers/net/ethernet/arc/Kconfig | 4 +-
drivers/net/ethernet/arc/emac_main.c | 4 +-
drivers/net/ethernet/arc/emac_mdio.c | 9 +-
drivers/net/ethernet/asix/Kconfig | 35 +
drivers/net/ethernet/asix/Makefile | 6 +
drivers/net/ethernet/asix/ax88796c_ioctl.c | 239 +
drivers/net/ethernet/asix/ax88796c_ioctl.h | 26 +
drivers/net/ethernet/asix/ax88796c_main.c | 1166 +
drivers/net/ethernet/asix/ax88796c_main.h | 568 +
drivers/net/ethernet/asix/ax88796c_spi.c | 115 +
drivers/net/ethernet/asix/ax88796c_spi.h | 69 +
drivers/net/ethernet/atheros/ag71xx.c | 12 +-
drivers/net/ethernet/atheros/alx/main.c | 4 +-
drivers/net/ethernet/atheros/atl1c/atl1c_main.c | 12 +-
drivers/net/ethernet/atheros/atl1e/atl1e_main.c | 10 +-
drivers/net/ethernet/atheros/atlx/atl1.c | 2 +-
drivers/net/ethernet/atheros/atlx/atl2.c | 4 +-
drivers/net/ethernet/atheros/atlx/atlx.c | 2 +-
drivers/net/ethernet/broadcom/b44.c | 12 +-
drivers/net/ethernet/broadcom/bcm4908_enet.c | 4 +-
drivers/net/ethernet/broadcom/bcm63xx_enet.c | 6 +-
drivers/net/ethernet/broadcom/bcmsysport.c | 6 +-
drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c | 6 +-
drivers/net/ethernet/broadcom/bgmac-bcma.c | 37 +-
drivers/net/ethernet/broadcom/bgmac-platform.c | 2 +-
drivers/net/ethernet/broadcom/bgmac.c | 4 +-
drivers/net/ethernet/broadcom/bnx2.c | 6 +-
drivers/net/ethernet/broadcom/bnx2x/bnx2x.h | 2 +-
drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 2 +-
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 22 +-
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c | 2 +-
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.h | 3 +-
drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.c | 9 +-
drivers/net/ethernet/broadcom/bnxt/Makefile | 2 +-
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 283 +-
drivers/net/ethernet/broadcom/bnxt/bnxt.h | 113 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_coredump.c | 444 +
drivers/net/ethernet/broadcom/bnxt/bnxt_coredump.h | 51 +
drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c | 4 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.h | 14 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c | 785 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.h | 27 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 400 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.h | 46 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_hsi.h | 155 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c | 2 -
drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.h | 3 +
drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c | 6 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.h | 2 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.h | 3 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_vfr.c | 2 +-
drivers/net/ethernet/broadcom/genet/bcmgenet.c | 87 +-
drivers/net/ethernet/broadcom/genet/bcmgenet.h | 10 +-
drivers/net/ethernet/broadcom/genet/bcmmii.c | 202 +-
drivers/net/ethernet/broadcom/tg3.c | 61 +-
drivers/net/ethernet/brocade/bna/bnad.c | 5 +-
drivers/net/ethernet/cadence/macb.h | 7 +-
drivers/net/ethernet/cadence/macb_main.c | 42 +-
drivers/net/ethernet/cadence/macb_ptp.c | 13 +-
drivers/net/ethernet/calxeda/xgmac.c | 8 +-
drivers/net/ethernet/cavium/liquidio/lio_core.c | 3 +-
drivers/net/ethernet/cavium/liquidio/lio_main.c | 40 +-
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c | 4 +-
drivers/net/ethernet/cavium/octeon/octeon_mgmt.c | 2 +-
drivers/net/ethernet/cavium/thunder/nic_main.c | 5 +-
drivers/net/ethernet/cavium/thunder/nicvf_main.c | 15 +-
drivers/net/ethernet/cavium/thunder/thunder_bgx.c | 9 +-
drivers/net/ethernet/chelsio/cxgb/cxgb2.c | 2 +-
drivers/net/ethernet/chelsio/cxgb/gmac.h | 2 +-
drivers/net/ethernet/chelsio/cxgb/pm3393.c | 2 +-
drivers/net/ethernet/chelsio/cxgb/subr.c | 2 +-
drivers/net/ethernet/chelsio/cxgb/vsc7326.c | 4 +-
drivers/net/ethernet/chelsio/cxgb3/common.h | 4 +-
drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c | 40 +-
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c | 102 +-
drivers/net/ethernet/chelsio/cxgb3/xgmac.c | 2 +-
drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 2 +-
drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c | 7 +-
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 2 +-
drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 2 +-
drivers/net/ethernet/chelsio/cxgb4/t4_hw.h | 2 +
drivers/net/ethernet/chelsio/cxgb4vf/adapter.h | 3 +-
.../net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c | 8 +-
.../chelsio/inline_crypto/chtls/chtls_cm.c | 2 +-
.../chelsio/inline_crypto/chtls/chtls_cm.h | 2 +-
drivers/net/ethernet/cirrus/cs89x0.c | 13 +-
drivers/net/ethernet/cirrus/ep93xx_eth.c | 2 +-
drivers/net/ethernet/cirrus/mac89x0.c | 2 +-
drivers/net/ethernet/cisco/enic/enic_ethtool.c | 4 +-
drivers/net/ethernet/cisco/enic/enic_main.c | 9 +-
drivers/net/ethernet/cisco/enic/enic_pp.c | 2 +-
drivers/net/ethernet/cortina/gemini.c | 6 +-
drivers/net/ethernet/davicom/dm9000.c | 9 +-
drivers/net/ethernet/dec/tulip/de2104x.c | 15 +-
drivers/net/ethernet/dec/tulip/de4x5.c | 35 +-
drivers/net/ethernet/dec/tulip/dmfe.c | 9 +-
drivers/net/ethernet/dec/tulip/tulip_core.c | 45 +-
drivers/net/ethernet/dec/tulip/uli526x.c | 11 +-
drivers/net/ethernet/dec/tulip/winbond-840.c | 6 +-
drivers/net/ethernet/dec/tulip/xircom_cb.c | 4 +-
drivers/net/ethernet/dlink/dl2k.c | 5 +-
drivers/net/ethernet/dlink/sundance.c | 6 +-
drivers/net/ethernet/dnet.c | 8 +-
drivers/net/ethernet/ec_bhf.c | 4 +-
drivers/net/ethernet/emulex/benet/be_cmds.c | 2 +-
drivers/net/ethernet/emulex/benet/be_cmds.h | 2 +-
drivers/net/ethernet/emulex/benet/be_main.c | 7 +-
drivers/net/ethernet/ethoc.c | 28 +-
drivers/net/ethernet/ezchip/Kconfig | 2 +-
drivers/net/ethernet/ezchip/nps_enet.c | 4 +-
drivers/net/ethernet/faraday/ftgmac100.c | 9 +-
drivers/net/ethernet/fealnx.c | 8 +-
drivers/net/ethernet/freescale/dpaa/dpaa_eth.c | 6 +-
.../ethernet/freescale/dpaa2/dpaa2-eth-devlink.c | 21 +-
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c | 24 +-
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h | 7 +-
.../net/ethernet/freescale/dpaa2/dpaa2-ethtool.c | 58 +
drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c | 2 +-
.../net/ethernet/freescale/dpaa2/dpaa2-switch.c | 2 +-
drivers/net/ethernet/freescale/enetc/enetc.c | 332 +-
drivers/net/ethernet/freescale/enetc/enetc.h | 4 +
.../net/ethernet/freescale/enetc/enetc_ethtool.c | 2 +-
drivers/net/ethernet/freescale/enetc/enetc_hw.h | 6 +-
drivers/net/ethernet/freescale/enetc/enetc_pf.c | 37 +-
drivers/net/ethernet/freescale/enetc/enetc_ptp.c | 6 +-
drivers/net/ethernet/freescale/enetc/enetc_qos.c | 18 +-
drivers/net/ethernet/freescale/enetc/enetc_vf.c | 16 +-
drivers/net/ethernet/freescale/fec_main.c | 7 +-
drivers/net/ethernet/freescale/fec_mpc52xx.c | 4 +-
drivers/net/ethernet/freescale/fman/fman_dtsec.c | 8 +-
drivers/net/ethernet/freescale/fman/fman_dtsec.h | 2 +-
drivers/net/ethernet/freescale/fman/fman_memac.c | 8 +-
drivers/net/ethernet/freescale/fman/fman_memac.h | 2 +-
drivers/net/ethernet/freescale/fman/fman_tgec.c | 8 +-
drivers/net/ethernet/freescale/fman/fman_tgec.h | 2 +-
drivers/net/ethernet/freescale/fman/mac.h | 2 +-
.../net/ethernet/freescale/fs_enet/fs_enet-main.c | 2 +-
drivers/net/ethernet/freescale/gianfar.c | 2 +-
drivers/net/ethernet/freescale/ucc_geth.c | 4 +-
drivers/net/ethernet/fujitsu/fmvj18x_cs.c | 14 +-
drivers/net/ethernet/google/gve/gve.h | 52 +-
drivers/net/ethernet/google/gve/gve_adminq.c | 61 +-
drivers/net/ethernet/google/gve/gve_adminq.h | 15 +
drivers/net/ethernet/google/gve/gve_desc.h | 13 +-
drivers/net/ethernet/google/gve/gve_ethtool.c | 7 +-
drivers/net/ethernet/google/gve/gve_main.c | 109 +-
drivers/net/ethernet/google/gve/gve_rx.c | 414 +-
drivers/net/ethernet/google/gve/gve_rx_dqo.c | 68 +-
drivers/net/ethernet/google/gve/gve_tx.c | 117 +-
drivers/net/ethernet/google/gve/gve_tx_dqo.c | 84 +-
drivers/net/ethernet/google/gve/gve_utils.c | 37 +-
drivers/net/ethernet/google/gve/gve_utils.h | 2 +-
drivers/net/ethernet/hisilicon/hip04_eth.c | 2 +-
drivers/net/ethernet/hisilicon/hisi_femac.c | 6 +-
drivers/net/ethernet/hisilicon/hix5hd2_gmac.c | 4 +-
drivers/net/ethernet/hisilicon/hns/hnae.h | 4 +-
drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c | 7 +-
drivers/net/ethernet/hisilicon/hns/hns_dsaf_gmac.c | 2 +-
drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c | 2 +-
drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.h | 5 +-
drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.h | 2 +-
.../net/ethernet/hisilicon/hns/hns_dsaf_xgmac.c | 2 +-
drivers/net/ethernet/hisilicon/hns/hns_enet.c | 4 +-
drivers/net/ethernet/hisilicon/hns3/hnae3.c | 21 +
drivers/net/ethernet/hisilicon/hns3/hnae3.h | 12 +-
drivers/net/ethernet/hisilicon/hns3/hns3_debugfs.c | 215 +-
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 44 +-
drivers/net/ethernet/hisilicon/hns3/hns3_enet.h | 10 +-
drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c | 8 +-
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.c | 2 +
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h | 7 +-
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c | 29 +-
.../ethernet/hisilicon/hns3/hns3pf/hclge_debugfs.c | 33 +-
.../ethernet/hisilicon/hns3/hns3pf/hclge_devlink.c | 18 +-
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_err.c | 19 +-
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_err.h | 6 +
.../ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 693 +-
.../ethernet/hisilicon/hns3/hns3pf/hclge_main.h | 41 +-
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c | 79 +-
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.h | 4 +-
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_cmd.c | 32 +
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_cmd.h | 9 +
.../hisilicon/hns3/hns3vf/hclgevf_devlink.c | 18 +-
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c | 23 +-
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h | 5 +-
drivers/net/ethernet/huawei/hinic/hinic_devlink.c | 4 +-
drivers/net/ethernet/huawei/hinic/hinic_devlink.h | 2 +-
drivers/net/ethernet/huawei/hinic/hinic_ethtool.c | 10 +-
drivers/net/ethernet/huawei/hinic/hinic_hw_dev.c | 13 +-
drivers/net/ethernet/huawei/hinic/hinic_main.c | 12 +-
drivers/net/ethernet/i825xx/sun3_82586.c | 7 +-
drivers/net/ethernet/ibm/ehea/ehea_main.c | 4 +-
drivers/net/ethernet/ibm/emac/core.c | 14 +-
drivers/net/ethernet/ibm/ibmveth.c | 46 +-
drivers/net/ethernet/ibm/ibmvnic.c | 666 +-
drivers/net/ethernet/ibm/ibmvnic.h | 10 +-
drivers/net/ethernet/intel/Kconfig | 14 +
drivers/net/ethernet/intel/e100.c | 4 +-
drivers/net/ethernet/intel/e1000/e1000_main.c | 4 +-
drivers/net/ethernet/intel/e1000e/e1000.h | 5 +-
drivers/net/ethernet/intel/e1000e/ich8lan.c | 31 +-
drivers/net/ethernet/intel/e1000e/ich8lan.h | 3 +
drivers/net/ethernet/intel/e1000e/netdev.c | 50 +-
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c | 2 +-
drivers/net/ethernet/intel/fm10k/fm10k_pci.c | 4 +-
drivers/net/ethernet/intel/i40e/i40e.h | 2 +-
drivers/net/ethernet/intel/i40e/i40e_main.c | 4 +-
drivers/net/ethernet/intel/i40e/i40e_xsk.c | 52 +-
drivers/net/ethernet/intel/iavf/iavf.h | 48 +-
drivers/net/ethernet/intel/iavf/iavf_main.c | 238 +-
drivers/net/ethernet/intel/iavf/iavf_virtchnl.c | 6 +-
drivers/net/ethernet/intel/ice/Makefile | 5 +-
drivers/net/ethernet/intel/ice/ice.h | 220 +-
drivers/net/ethernet/intel/ice/ice_adminq_cmd.h | 94 +-
drivers/net/ethernet/intel/ice/ice_arfs.c | 4 +-
drivers/net/ethernet/intel/ice/ice_base.c | 123 +-
drivers/net/ethernet/intel/ice/ice_base.h | 8 +-
drivers/net/ethernet/intel/ice/ice_common.c | 131 +-
drivers/net/ethernet/intel/ice/ice_common.h | 7 +
drivers/net/ethernet/intel/ice/ice_dcb.c | 225 +-
drivers/net/ethernet/intel/ice/ice_dcb.h | 18 +
drivers/net/ethernet/intel/ice/ice_dcb_lib.c | 216 +-
drivers/net/ethernet/intel/ice/ice_dcb_lib.h | 32 +-
drivers/net/ethernet/intel/ice/ice_dcb_nl.c | 192 +-
drivers/net/ethernet/intel/ice/ice_devids.h | 6 +
drivers/net/ethernet/intel/ice/ice_devlink.c | 259 +-
drivers/net/ethernet/intel/ice/ice_devlink.h | 8 +-
drivers/net/ethernet/intel/ice/ice_eswitch.c | 655 +
drivers/net/ethernet/intel/ice/ice_eswitch.h | 83 +
drivers/net/ethernet/intel/ice/ice_ethtool.c | 236 +-
drivers/net/ethernet/intel/ice/ice_ethtool_fdir.c | 4 +-
drivers/net/ethernet/intel/ice/ice_fdir.c | 2 +-
drivers/net/ethernet/intel/ice/ice_fdir.h | 2 +-
drivers/net/ethernet/intel/ice/ice_flex_pipe.c | 307 +-
drivers/net/ethernet/intel/ice/ice_flex_pipe.h | 14 +
drivers/net/ethernet/intel/ice/ice_flex_type.h | 17 +
drivers/net/ethernet/intel/ice/ice_fltr.c | 80 +
drivers/net/ethernet/intel/ice/ice_fltr.h | 3 +
drivers/net/ethernet/intel/ice/ice_hw_autogen.h | 1 +
drivers/net/ethernet/intel/ice/ice_lag.c | 18 +-
drivers/net/ethernet/intel/ice/ice_lan_tx_rx.h | 43 +
drivers/net/ethernet/intel/ice/ice_lib.c | 864 +-
drivers/net/ethernet/intel/ice/ice_lib.h | 38 +-
drivers/net/ethernet/intel/ice/ice_main.c | 1645 +-
drivers/net/ethernet/intel/ice/ice_protocol_type.h | 204 +
drivers/net/ethernet/intel/ice/ice_ptp.c | 375 +-
drivers/net/ethernet/intel/ice/ice_ptp.h | 24 +-
drivers/net/ethernet/intel/ice/ice_ptp_hw.c | 151 +
drivers/net/ethernet/intel/ice/ice_ptp_hw.h | 22 +
drivers/net/ethernet/intel/ice/ice_repr.c | 389 +
drivers/net/ethernet/intel/ice/ice_repr.h | 28 +
drivers/net/ethernet/intel/ice/ice_sched.c | 197 +
drivers/net/ethernet/intel/ice/ice_sched.h | 9 +
drivers/net/ethernet/intel/ice/ice_switch.c | 2888 +-
drivers/net/ethernet/intel/ice/ice_switch.h | 152 +-
drivers/net/ethernet/intel/ice/ice_tc_lib.c | 1369 +
drivers/net/ethernet/intel/ice/ice_tc_lib.h | 162 +
drivers/net/ethernet/intel/ice/ice_trace.h | 28 +-
drivers/net/ethernet/intel/ice/ice_txrx.c | 326 +-
drivers/net/ethernet/intel/ice/ice_txrx.h | 147 +-
drivers/net/ethernet/intel/ice/ice_txrx_lib.c | 102 +-
drivers/net/ethernet/intel/ice/ice_txrx_lib.h | 14 +-
drivers/net/ethernet/intel/ice/ice_type.h | 19 +-
drivers/net/ethernet/intel/ice/ice_virtchnl_pf.c | 588 +-
drivers/net/ethernet/intel/ice/ice_virtchnl_pf.h | 79 +-
drivers/net/ethernet/intel/ice/ice_xsk.c | 158 +-
drivers/net/ethernet/intel/ice/ice_xsk.h | 20 +-
drivers/net/ethernet/intel/igb/igb_main.c | 27 +-
drivers/net/ethernet/intel/igbvf/netdev.c | 8 +-
drivers/net/ethernet/intel/igc/igc_base.c | 8 +-
drivers/net/ethernet/intel/igc/igc_defines.h | 2 +-
drivers/net/ethernet/intel/igc/igc_hw.h | 3 +-
drivers/net/ethernet/intel/igc/igc_main.c | 5 +-
drivers/net/ethernet/intel/igc/igc_ptp.c | 2 +-
drivers/net/ethernet/intel/ixgb/ixgb_hw.c | 2 +-
drivers/net/ethernet/intel/ixgb/ixgb_hw.h | 2 +-
drivers/net/ethernet/intel/ixgb/ixgb_main.c | 10 +-
drivers/net/ethernet/intel/ixgbe/ixgbe.h | 23 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 5 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c | 9 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 54 +-
.../net/ethernet/intel/ixgbe/ixgbe_txrx_common.h | 3 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c | 16 +-
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 6 +-
drivers/net/ethernet/intel/ixgbevf/vf.c | 2 +-
drivers/net/ethernet/jme.c | 4 +-
drivers/net/ethernet/korina.c | 4 +-
drivers/net/ethernet/lantiq_etop.c | 21 +-
drivers/net/ethernet/lantiq_xrx200.c | 74 +-
drivers/net/ethernet/litex/Kconfig | 2 +-
drivers/net/ethernet/litex/litex_liteeth.c | 7 +-
drivers/net/ethernet/marvell/mv643xx_eth.c | 16 +-
drivers/net/ethernet/marvell/mvneta.c | 75 +-
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 155 +-
drivers/net/ethernet/marvell/mvpp2/mvpp2_prs.c | 2 +-
drivers/net/ethernet/marvell/octeontx2/Kconfig | 1 +
drivers/net/ethernet/marvell/octeontx2/af/cgx.c | 11 +-
drivers/net/ethernet/marvell/octeontx2/af/common.h | 1 +
.../ethernet/marvell/octeontx2/af/lmac_common.h | 5 +
drivers/net/ethernet/marvell/octeontx2/af/mbox.h | 138 +-
drivers/net/ethernet/marvell/octeontx2/af/npc.h | 20 +-
.../ethernet/marvell/octeontx2/af/npc_profile.h | 994 +-
drivers/net/ethernet/marvell/octeontx2/af/ptp.c | 133 +-
drivers/net/ethernet/marvell/octeontx2/af/ptp.h | 1 +
drivers/net/ethernet/marvell/octeontx2/af/rpm.c | 17 +
drivers/net/ethernet/marvell/octeontx2/af/rpm.h | 3 +
drivers/net/ethernet/marvell/octeontx2/af/rvu.c | 76 +-
drivers/net/ethernet/marvell/octeontx2/af/rvu.h | 19 +-
.../net/ethernet/marvell/octeontx2/af/rvu_cgx.c | 13 +-
.../net/ethernet/marvell/octeontx2/af/rvu_cn10k.c | 4 +-
.../net/ethernet/marvell/octeontx2/af/rvu_cpt.c | 601 +-
.../ethernet/marvell/octeontx2/af/rvu_debugfs.c | 266 +-
.../ethernet/marvell/octeontx2/af/rvu_devlink.c | 16 +-
.../net/ethernet/marvell/octeontx2/af/rvu_nix.c | 225 +-
.../net/ethernet/marvell/octeontx2/af/rvu_npc.c | 100 +-
.../net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c | 3 +
.../net/ethernet/marvell/octeontx2/af/rvu_reg.h | 4 +
.../net/ethernet/marvell/octeontx2/af/rvu_struct.h | 18 +
.../net/ethernet/marvell/octeontx2/nic/Makefile | 6 +-
drivers/net/ethernet/marvell/octeontx2/nic/cn10k.c | 2 +-
.../ethernet/marvell/octeontx2/nic/otx2_common.c | 52 +-
.../ethernet/marvell/octeontx2/nic/otx2_common.h | 18 +-
.../ethernet/marvell/octeontx2/nic/otx2_devlink.c | 21 +-
.../ethernet/marvell/octeontx2/nic/otx2_ethtool.c | 43 +-
.../net/ethernet/marvell/octeontx2/nic/otx2_pf.c | 234 +-
.../net/ethernet/marvell/octeontx2/nic/otx2_ptp.c | 133 +-
.../net/ethernet/marvell/octeontx2/nic/otx2_txrx.c | 273 +-
.../net/ethernet/marvell/octeontx2/nic/otx2_txrx.h | 16 +-
.../net/ethernet/marvell/octeontx2/nic/otx2_vf.c | 8 +-
drivers/net/ethernet/marvell/prestera/prestera.h | 69 +-
.../ethernet/marvell/prestera/prestera_devlink.c | 35 +-
.../ethernet/marvell/prestera/prestera_devlink.h | 4 +-
.../ethernet/marvell/prestera/prestera_ethtool.c | 220 +-
.../ethernet/marvell/prestera/prestera_ethtool.h | 6 +
.../net/ethernet/marvell/prestera/prestera_hw.c | 1098 +-
.../net/ethernet/marvell/prestera/prestera_hw.h | 47 +-
.../net/ethernet/marvell/prestera/prestera_main.c | 163 +-
.../net/ethernet/marvell/prestera/prestera_pci.c | 117 +-
.../net/ethernet/marvell/prestera/prestera_rxtx.c | 7 -
drivers/net/ethernet/marvell/pxa168_eth.c | 21 +-
drivers/net/ethernet/marvell/skge.c | 6 +-
drivers/net/ethernet/marvell/sky2.c | 99 +-
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 2 +-
drivers/net/ethernet/mediatek/mtk_star_emac.c | 4 +-
drivers/net/ethernet/mellanox/mlx4/cmd.c | 6 +-
drivers/net/ethernet/mellanox/mlx4/cq.c | 3 +-
drivers/net/ethernet/mellanox/mlx4/en_ethtool.c | 29 +-
drivers/net/ethernet/mellanox/mlx4/en_main.c | 1 -
drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 40 +-
drivers/net/ethernet/mellanox/mlx4/en_port.c | 4 +
drivers/net/ethernet/mellanox/mlx4/en_rx.c | 15 +
drivers/net/ethernet/mellanox/mlx4/en_tx.c | 4 +-
drivers/net/ethernet/mellanox/mlx4/fw.c | 2 +-
drivers/net/ethernet/mellanox/mlx4/main.c | 12 +-
drivers/net/ethernet/mellanox/mlx4/mcg.c | 2 +-
drivers/net/ethernet/mellanox/mlx4/mlx4_en.h | 3 +
drivers/net/ethernet/mellanox/mlx4/mlx4_stats.h | 4 +-
drivers/net/ethernet/mellanox/mlx5/core/Makefile | 8 +-
drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 20 +-
drivers/net/ethernet/mellanox/mlx5/core/dev.c | 14 +-
drivers/net/ethernet/mellanox/mlx5/core/devlink.c | 30 +-
.../mellanox/mlx5/core/diag/fs_tracepoint.c | 3 +
.../ethernet/mellanox/mlx5/core/diag/fw_tracer.c | 7 +-
.../ethernet/mellanox/mlx5/core/diag/fw_tracer.h | 2 +-
.../ethernet/mellanox/mlx5/core/diag/rsc_dump.c | 10 +-
drivers/net/ethernet/mellanox/mlx5/core/en.h | 87 +-
.../net/ethernet/mellanox/mlx5/core/en/devlink.c | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/en/fs.h | 11 +-
.../net/ethernet/mellanox/mlx5/core/en/health.h | 1 -
.../net/ethernet/mellanox/mlx5/core/en/params.c | 163 +-
.../net/ethernet/mellanox/mlx5/core/en/params.h | 18 +-
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/en/qos.c | 102 +-
drivers/net/ethernet/mellanox/mlx5/core/en/qos.h | 9 +
.../net/ethernet/mellanox/mlx5/core/en/rep/tc.c | 134 +-
.../net/ethernet/mellanox/mlx5/core/en/rep/tc.h | 14 +-
.../ethernet/mellanox/mlx5/core/en/reporter_rx.c | 7 +-
.../ethernet/mellanox/mlx5/core/en/reporter_tx.c | 7 +-
drivers/net/ethernet/mellanox/mlx5/core/en/rss.c | 50 +-
drivers/net/ethernet/mellanox/mlx5/core/en/rss.h | 7 +-
.../net/ethernet/mellanox/mlx5/core/en/rx_res.c | 25 +-
.../net/ethernet/mellanox/mlx5/core/en/rx_res.h | 5 +-
.../ethernet/mellanox/mlx5/core/en/tc/int_port.c | 457 +
.../ethernet/mellanox/mlx5/core/en/tc/int_port.h | 65 +
.../ethernet/mellanox/mlx5/core/en/tc/post_act.c | 13 +-
.../net/ethernet/mellanox/mlx5/core/en/tc/sample.c | 39 +-
.../net/ethernet/mellanox/mlx5/core/en/tc/sample.h | 27 +
drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c | 51 +-
.../net/ethernet/mellanox/mlx5/core/en/tc_priv.h | 2 +
.../net/ethernet/mellanox/mlx5/core/en/tc_tun.c | 42 +-
.../net/ethernet/mellanox/mlx5/core/en/tc_tun.h | 1 +
.../ethernet/mellanox/mlx5/core/en/tc_tun_encap.c | 35 +
.../ethernet/mellanox/mlx5/core/en/tc_tun_vxlan.c | 9 +
drivers/net/ethernet/mellanox/mlx5/core/en/tir.c | 32 +-
drivers/net/ethernet/mellanox/mlx5/core/en/tir.h | 6 +-
drivers/net/ethernet/mellanox/mlx5/core/en/trap.c | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h | 6 +
.../mellanox/mlx5/core/en_accel/ipsec_rxtx.c | 51 +-
.../mellanox/mlx5/core/en_accel/ipsec_rxtx.h | 26 +
.../net/ethernet/mellanox/mlx5/core/en_common.c | 6 +-
.../net/ethernet/mellanox/mlx5/core/en_ethtool.c | 19 +-
drivers/net/ethernet/mellanox/mlx5/core/en_fs.c | 32 +-
.../ethernet/mellanox/mlx5/core/en_fs_ethtool.c | 12 +-
drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 427 +-
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c | 18 +-
drivers/net/ethernet/mellanox/mlx5/core/en_rep.h | 4 +
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 668 +-
.../net/ethernet/mellanox/mlx5/core/en_selftest.c | 92 +-
drivers/net/ethernet/mellanox/mlx5/core/en_stats.c | 15 +
drivers/net/ethernet/mellanox/mlx5/core/en_stats.h | 10 +
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 589 +-
drivers/net/ethernet/mellanox/mlx5/core/en_tc.h | 11 +-
drivers/net/ethernet/mellanox/mlx5/core/en_tx.c | 22 +-
drivers/net/ethernet/mellanox/mlx5/core/eq.c | 9 +-
.../net/ethernet/mellanox/mlx5/core/esw/bridge.c | 293 +-
.../ethernet/mellanox/mlx5/core/esw/bridge_priv.h | 1 +
.../ethernet/mellanox/mlx5/core/esw/devlink_port.c | 4 +-
drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c | 7 +-
drivers/net/ethernet/mellanox/mlx5/core/eswitch.h | 18 +-
.../ethernet/mellanox/mlx5/core/eswitch_offloads.c | 88 +-
.../mellanox/mlx5/core/eswitch_offloads_termtbl.c | 7 +-
.../net/ethernet/mellanox/mlx5/core/fpga/conn.c | 10 +-
.../net/ethernet/mellanox/mlx5/core/fpga/core.h | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.c | 66 +-
drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.h | 4 +
drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 126 +-
drivers/net/ethernet/mellanox/mlx5/core/fs_core.h | 12 +-
.../net/ethernet/mellanox/mlx5/core/fs_counters.c | 26 +-
drivers/net/ethernet/mellanox/mlx5/core/fw.c | 21 +-
drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c | 17 +-
drivers/net/ethernet/mellanox/mlx5/core/health.c | 147 +-
.../ethernet/mellanox/mlx5/core/ipoib/ethtool.c | 30 +
.../net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c | 20 +-
drivers/net/ethernet/mellanox/mlx5/core/lag.c | 1082 -
drivers/net/ethernet/mellanox/mlx5/core/lag.h | 81 -
drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c | 1138 +
drivers/net/ethernet/mellanox/mlx5/core/lag/lag.h | 86 +
drivers/net/ethernet/mellanox/mlx5/core/lag/mp.c | 355 +
drivers/net/ethernet/mellanox/mlx5/core/lag/mp.h | 37 +
.../net/ethernet/mellanox/mlx5/core/lag/port_sel.c | 611 +
.../net/ethernet/mellanox/mlx5/core/lag/port_sel.h | 52 +
drivers/net/ethernet/mellanox/mlx5/core/lag_mp.c | 352 -
drivers/net/ethernet/mellanox/mlx5/core/lag_mp.h | 35 -
.../net/ethernet/mellanox/mlx5/core/lib/fs_ttc.c | 4 +
.../net/ethernet/mellanox/mlx5/core/lib/fs_ttc.h | 2 +
drivers/net/ethernet/mellanox/mlx5/core/lib/tout.c | 162 +
drivers/net/ethernet/mellanox/mlx5/core/lib/tout.h | 41 +
drivers/net/ethernet/mellanox/mlx5/core/main.c | 88 +-
.../net/ethernet/mellanox/mlx5/core/mlx5_core.h | 24 +
drivers/net/ethernet/mellanox/mlx5/core/mlx5_irq.h | 2 -
drivers/net/ethernet/mellanox/mlx5/core/mr.c | 27 +-
.../net/ethernet/mellanox/mlx5/core/pagealloc.c | 16 +-
drivers/net/ethernet/mellanox/mlx5/core/pci_irq.c | 36 +-
.../net/ethernet/mellanox/mlx5/core/sf/dev/dev.c | 23 +-
.../net/ethernet/mellanox/mlx5/core/sf/dev/dev.h | 1 +
.../mlx5/core/sf/dev/diag/dev_tracepoint.h | 58 +
.../ethernet/mellanox/mlx5/core/sf/dev/driver.c | 7 +-
.../net/ethernet/mellanox/mlx5/core/sf/devlink.c | 10 +-
.../mellanox/mlx5/core/sf/diag/sf_tracepoint.h | 173 +
.../mellanox/mlx5/core/sf/diag/vhca_tracepoint.h | 40 +
.../net/ethernet/mellanox/mlx5/core/sf/hw_table.c | 4 +
.../ethernet/mellanox/mlx5/core/sf/vhca_event.c | 3 +
.../mellanox/mlx5/core/steering/dr_action.c | 27 +-
.../ethernet/mellanox/mlx5/core/steering/dr_cmd.c | 6 +-
.../mellanox/mlx5/core/steering/dr_domain.c | 212 +-
.../ethernet/mellanox/mlx5/core/steering/dr_fw.c | 2 +-
.../mellanox/mlx5/core/steering/dr_icm_pool.c | 10 +-
.../mellanox/mlx5/core/steering/dr_matcher.c | 28 +-
.../ethernet/mellanox/mlx5/core/steering/dr_rule.c | 6 +-
.../ethernet/mellanox/mlx5/core/steering/dr_send.c | 11 +-
.../ethernet/mellanox/mlx5/core/steering/dr_ste.c | 272 +-
.../mellanox/mlx5/core/steering/dr_ste_v0.c | 13 +-
.../mellanox/mlx5/core/steering/dr_ste_v1.c | 20 +-
.../mellanox/mlx5/core/steering/dr_types.h | 52 +-
.../ethernet/mellanox/mlx5/core/steering/fs_dr.c | 17 +-
.../ethernet/mellanox/mlx5/core/steering/mlx5dr.h | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/uar.c | 14 +-
drivers/net/ethernet/mellanox/mlx5/core/vport.c | 21 +-
drivers/net/ethernet/mellanox/mlxbf_gige/Makefile | 1 -
.../net/ethernet/mellanox/mlxbf_gige/mlxbf_gige.h | 12 -
.../ethernet/mellanox/mlxbf_gige/mlxbf_gige_gpio.c | 212 -
.../ethernet/mellanox/mlxbf_gige/mlxbf_gige_main.c | 24 +-
drivers/net/ethernet/mellanox/mlxfw/mlxfw.h | 2 +-
drivers/net/ethernet/mellanox/mlxsw/core.c | 90 +-
drivers/net/ethernet/mellanox/mlxsw/core.h | 2 -
drivers/net/ethernet/mellanox/mlxsw/core_env.c | 372 +-
drivers/net/ethernet/mellanox/mlxsw/core_env.h | 23 +
drivers/net/ethernet/mellanox/mlxsw/item.h | 56 +-
drivers/net/ethernet/mellanox/mlxsw/minimal.c | 66 +-
drivers/net/ethernet/mellanox/mlxsw/pci.c | 27 +-
drivers/net/ethernet/mellanox/mlxsw/reg.h | 357 +-
drivers/net/ethernet/mellanox/mlxsw/resources.h | 8 +-
drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 390 +-
drivers/net/ethernet/mellanox/mlxsw/spectrum.h | 10 +-
.../net/ethernet/mellanox/mlxsw/spectrum2_kvdl.c | 1 +
.../ethernet/mellanox/mlxsw/spectrum_acl_atcam.c | 8 +-
.../ethernet/mellanox/mlxsw/spectrum_acl_tcam.c | 15 +-
.../net/ethernet/mellanox/mlxsw/spectrum_buffers.c | 2 +-
drivers/net/ethernet/mellanox/mlxsw/spectrum_cnt.c | 9 +-
.../net/ethernet/mellanox/mlxsw/spectrum_ethtool.c | 45 +
.../net/ethernet/mellanox/mlxsw/spectrum_ipip.c | 432 +-
.../net/ethernet/mellanox/mlxsw/spectrum_ipip.h | 27 +-
.../net/ethernet/mellanox/mlxsw/spectrum_qdisc.c | 583 +-
.../net/ethernet/mellanox/mlxsw/spectrum_router.c | 662 +-
.../net/ethernet/mellanox/mlxsw/spectrum_router.h | 9 +-
.../net/ethernet/mellanox/mlxsw/spectrum_span.c | 16 +
.../net/ethernet/mellanox/mlxsw/spectrum_span.h | 1 +
.../ethernet/mellanox/mlxsw/spectrum_switchdev.c | 11 +-
drivers/net/ethernet/micrel/ks8842.c | 15 +-
drivers/net/ethernet/micrel/ks8851.h | 2 +-
drivers/net/ethernet/micrel/ks8851_common.c | 14 +-
drivers/net/ethernet/micrel/ks8851_par.c | 4 +-
drivers/net/ethernet/micrel/ks8851_spi.c | 4 +-
drivers/net/ethernet/micrel/ksz884x.c | 16 +-
drivers/net/ethernet/microchip/enc28j60.c | 7 +-
drivers/net/ethernet/microchip/encx24j600.c | 7 +-
drivers/net/ethernet/microchip/lan743x_main.c | 39 +-
drivers/net/ethernet/microchip/lan743x_main.h | 3 +-
drivers/net/ethernet/microchip/lan743x_ptp.c | 91 +-
.../net/ethernet/microchip/sparx5/sparx5_main.c | 4 +-
.../net/ethernet/microchip/sparx5/sparx5_netdev.c | 6 +-
.../net/ethernet/microchip/sparx5/sparx5_phylink.c | 7 +-
drivers/net/ethernet/microsoft/mana/gdma_main.c | 155 +-
drivers/net/ethernet/microsoft/mana/hw_channel.c | 75 +-
drivers/net/ethernet/microsoft/mana/mana.h | 4 +-
drivers/net/ethernet/microsoft/mana/mana_en.c | 96 +-
drivers/net/ethernet/microsoft/mana/mana_ethtool.c | 3 -
drivers/net/ethernet/moxa/moxart_ether.c | 2 +-
drivers/net/ethernet/mscc/Kconfig | 2 +-
drivers/net/ethernet/mscc/ocelot.c | 327 +-
drivers/net/ethernet/mscc/ocelot.h | 1 +
drivers/net/ethernet/mscc/ocelot_flower.c | 125 +-
drivers/net/ethernet/mscc/ocelot_mrp.c | 8 +-
drivers/net/ethernet/mscc/ocelot_net.c | 24 +-
drivers/net/ethernet/mscc/ocelot_vsc7514.c | 10 +-
drivers/net/ethernet/myricom/myri10ge/myri10ge.c | 9 +-
drivers/net/ethernet/natsemi/natsemi.c | 6 +-
drivers/net/ethernet/natsemi/ns83820.c | 11 +-
drivers/net/ethernet/neterion/s2io.c | 6 +-
drivers/net/ethernet/neterion/s2io.h | 2 +-
drivers/net/ethernet/neterion/vxge/vxge-main.c | 6 +-
drivers/net/ethernet/netronome/nfp/abm/main.c | 2 +-
drivers/net/ethernet/netronome/nfp/abm/qdisc.c | 2 +-
drivers/net/ethernet/netronome/nfp/bpf/main.c | 16 +-
drivers/net/ethernet/netronome/nfp/bpf/main.h | 2 +
drivers/net/ethernet/netronome/nfp/bpf/offload.c | 17 +-
drivers/net/ethernet/netronome/nfp/devlink_param.c | 9 +-
drivers/net/ethernet/netronome/nfp/flower/action.c | 3 +-
drivers/net/ethernet/netronome/nfp/flower/cmsg.h | 2 +-
.../net/ethernet/netronome/nfp/flower/offload.c | 2 +-
.../ethernet/netronome/nfp/flower/tunnel_conf.c | 6 +-
drivers/net/ethernet/netronome/nfp/nfp_asm.c | 4 +-
.../net/ethernet/netronome/nfp/nfp_net_common.c | 8 +-
.../net/ethernet/netronome/nfp/nfp_net_ethtool.c | 3 +-
drivers/net/ethernet/netronome/nfp/nfp_net_main.c | 11 +-
drivers/net/ethernet/netronome/nfp/nfp_net_repr.c | 3 +-
.../net/ethernet/netronome/nfp/nfp_netvf_main.c | 2 +-
drivers/net/ethernet/ni/nixge.c | 2 +-
drivers/net/ethernet/nvidia/forcedeth.c | 51 +-
drivers/net/ethernet/nxp/lpc_eth.c | 15 +-
.../net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c | 4 +-
drivers/net/ethernet/packetengines/hamachi.c | 5 +-
drivers/net/ethernet/packetengines/yellowfin.c | 6 +-
drivers/net/ethernet/pasemi/pasemi_mac.c | 4 +-
drivers/net/ethernet/pensando/ionic/ionic.h | 8 +-
.../net/ethernet/pensando/ionic/ionic_debugfs.c | 48 +-
drivers/net/ethernet/pensando/ionic/ionic_dev.c | 1 -
drivers/net/ethernet/pensando/ionic/ionic_dev.h | 4 -
.../net/ethernet/pensando/ionic/ionic_devlink.c | 10 +-
.../net/ethernet/pensando/ionic/ionic_ethtool.c | 41 +-
drivers/net/ethernet/pensando/ionic/ionic_lif.c | 264 +-
drivers/net/ethernet/pensando/ionic/ionic_lif.h | 49 +-
drivers/net/ethernet/pensando/ionic/ionic_main.c | 92 +-
drivers/net/ethernet/pensando/ionic/ionic_phc.c | 8 +-
.../net/ethernet/pensando/ionic/ionic_rx_filter.c | 241 +-
.../net/ethernet/pensando/ionic/ionic_rx_filter.h | 2 +
drivers/net/ethernet/pensando/ionic/ionic_stats.c | 121 -
drivers/net/ethernet/pensando/ionic/ionic_txrx.c | 14 -
.../net/ethernet/qlogic/netxen/netxen_nic_main.c | 8 +-
drivers/net/ethernet/qlogic/qed/qed.h | 44 +-
drivers/net/ethernet/qlogic/qed/qed_cxt.c | 16 +-
drivers/net/ethernet/qlogic/qed/qed_cxt.h | 143 +-
drivers/net/ethernet/qlogic/qed/qed_dbg_hsi.h | 1491 +
drivers/net/ethernet/qlogic/qed/qed_dcbx.h | 11 +-
drivers/net/ethernet/qlogic/qed/qed_debug.c | 1389 +-
drivers/net/ethernet/qlogic/qed/qed_debug.h | 7 +-
drivers/net/ethernet/qlogic/qed/qed_dev.c | 126 +-
drivers/net/ethernet/qlogic/qed/qed_dev_api.h | 347 +-
drivers/net/ethernet/qlogic/qed/qed_devlink.c | 12 +-
drivers/net/ethernet/qlogic/qed/qed_fcoe.c | 25 +-
drivers/net/ethernet/qlogic/qed/qed_hsi.h | 12643 ++---
drivers/net/ethernet/qlogic/qed/qed_hw.h | 222 +-
.../net/ethernet/qlogic/qed/qed_init_fw_funcs.c | 405 +-
drivers/net/ethernet/qlogic/qed/qed_init_ops.c | 98 +-
drivers/net/ethernet/qlogic/qed/qed_init_ops.h | 60 +-
drivers/net/ethernet/qlogic/qed/qed_int.c | 4 +-
drivers/net/ethernet/qlogic/qed/qed_int.h | 286 +-
drivers/net/ethernet/qlogic/qed/qed_iro_hsi.h | 500 +
drivers/net/ethernet/qlogic/qed/qed_iscsi.c | 15 +-
drivers/net/ethernet/qlogic/qed/qed_iscsi.h | 9 +-
drivers/net/ethernet/qlogic/qed/qed_iwarp.c | 2 +
drivers/net/ethernet/qlogic/qed/qed_l2.c | 43 +-
drivers/net/ethernet/qlogic/qed/qed_l2.h | 135 +-
drivers/net/ethernet/qlogic/qed/qed_ll2.c | 167 +-
drivers/net/ethernet/qlogic/qed/qed_ll2.h | 131 +-
drivers/net/ethernet/qlogic/qed/qed_main.c | 23 +-
drivers/net/ethernet/qlogic/qed/qed_mcp.c | 66 +-
drivers/net/ethernet/qlogic/qed/qed_mcp.h | 765 +-
drivers/net/ethernet/qlogic/qed/qed_mfw_hsi.h | 2474 +
drivers/net/ethernet/qlogic/qed/qed_ooo.c | 20 +-
drivers/net/ethernet/qlogic/qed/qed_ptp.c | 4 +-
drivers/net/ethernet/qlogic/qed/qed_rdma.c | 26 +-
drivers/net/ethernet/qlogic/qed/qed_rdma.h | 7 +-
drivers/net/ethernet/qlogic/qed/qed_reg_addr.h | 95 +-
drivers/net/ethernet/qlogic/qed/qed_roce.c | 1 -
drivers/net/ethernet/qlogic/qed/qed_selftest.h | 30 +-
drivers/net/ethernet/qlogic/qed/qed_sp.h | 223 +-
drivers/net/ethernet/qlogic/qed/qed_sp_commands.c | 10 +-
drivers/net/ethernet/qlogic/qed/qed_spq.c | 63 +-
drivers/net/ethernet/qlogic/qed/qed_sriov.c | 201 +-
drivers/net/ethernet/qlogic/qed/qed_sriov.h | 138 +-
drivers/net/ethernet/qlogic/qed/qed_vf.c | 13 +-
drivers/net/ethernet/qlogic/qed/qed_vf.h | 311 +-
drivers/net/ethernet/qlogic/qede/qede_filter.c | 53 +-
drivers/net/ethernet/qlogic/qede/qede_main.c | 21 +-
drivers/net/ethernet/qlogic/qla3xxx.c | 12 +-
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | 4 +-
drivers/net/ethernet/qualcomm/emac/emac-mac.c | 2 +-
drivers/net/ethernet/qualcomm/emac/emac.c | 5 +-
drivers/net/ethernet/qualcomm/qca_spi.c | 2 +-
drivers/net/ethernet/qualcomm/qca_uart.c | 2 +-
drivers/net/ethernet/qualcomm/rmnet/rmnet_vnd.c | 2 +-
drivers/net/ethernet/rdc/r6040.c | 24 +-
drivers/net/ethernet/realtek/8139cp.c | 7 +-
drivers/net/ethernet/realtek/8139too.c | 7 +-
drivers/net/ethernet/realtek/atp.c | 4 +-
drivers/net/ethernet/realtek/r8169.h | 2 +-
drivers/net/ethernet/realtek/r8169_main.c | 45 +-
drivers/net/ethernet/realtek/r8169_phy_config.c | 59 -
drivers/net/ethernet/renesas/ravb.h | 52 +-
drivers/net/ethernet/renesas/ravb_main.c | 728 +-
drivers/net/ethernet/renesas/sh_eth.c | 18 +-
drivers/net/ethernet/rocker/rocker_main.c | 10 +-
drivers/net/ethernet/samsung/sxgbe/sxgbe_common.h | 2 +-
drivers/net/ethernet/samsung/sxgbe/sxgbe_core.c | 3 +-
drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c | 9 +-
.../net/ethernet/samsung/sxgbe/sxgbe_platform.c | 2 +-
drivers/net/ethernet/seeq/sgiseeq.c | 4 +-
drivers/net/ethernet/sfc/ef10.c | 4 +-
drivers/net/ethernet/sfc/ef100_nic.c | 2 +-
drivers/net/ethernet/sfc/ef10_sriov.c | 4 +-
drivers/net/ethernet/sfc/ef10_sriov.h | 6 +-
drivers/net/ethernet/sfc/efx.c | 2 +-
drivers/net/ethernet/sfc/efx_common.c | 4 +-
drivers/net/ethernet/sfc/ethtool_common.c | 10 +-
drivers/net/ethernet/sfc/falcon/efx.c | 14 +-
drivers/net/ethernet/sfc/mcdi_port_common.c | 37 +-
drivers/net/ethernet/sfc/net_driver.h | 2 +-
drivers/net/ethernet/sfc/ptp.c | 4 +-
drivers/net/ethernet/sfc/siena_sriov.c | 4 +-
drivers/net/ethernet/sfc/siena_sriov.h | 2 +-
drivers/net/ethernet/sgi/ioc3-eth.c | 4 +-
drivers/net/ethernet/sgi/meth.c | 2 +-
drivers/net/ethernet/silan/sc92031.c | 14 +-
drivers/net/ethernet/sis/sis190.c | 10 +-
drivers/net/ethernet/sis/sis900.c | 19 +-
drivers/net/ethernet/smsc/epic100.c | 4 +-
drivers/net/ethernet/smsc/smc911x.c | 4 +-
drivers/net/ethernet/smsc/smc91c92_cs.c | 15 +-
drivers/net/ethernet/smsc/smc91x.c | 4 +-
drivers/net/ethernet/smsc/smsc911x.c | 22 +-
drivers/net/ethernet/smsc/smsc9420.c | 26 +-
drivers/net/ethernet/socionext/netsec.c | 46 +-
drivers/net/ethernet/socionext/sni_ave.c | 17 +-
drivers/net/ethernet/stmicro/stmmac/common.h | 4 +-
drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c | 2 +-
.../net/ethernet/stmicro/stmmac/dwmac-visconti.c | 7 +-
.../net/ethernet/stmicro/stmmac/dwmac1000_core.c | 2 +-
.../net/ethernet/stmicro/stmmac/dwmac100_core.c | 2 +-
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c | 2 +-
drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c | 2 +-
drivers/net/ethernet/stmicro/stmmac/dwmac_lib.c | 2 +-
.../net/ethernet/stmicro/stmmac/dwxgmac2_core.c | 3 +-
drivers/net/ethernet/stmicro/stmmac/hwif.h | 3 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 16 +-
.../net/ethernet/stmicro/stmmac/stmmac_selftests.c | 8 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c | 2 -
drivers/net/ethernet/sun/cassini.c | 7 +-
drivers/net/ethernet/sun/ldmvsw.c | 7 +-
drivers/net/ethernet/sun/niu.c | 46 +-
drivers/net/ethernet/sun/sunbmac.c | 6 +-
drivers/net/ethernet/sun/sungem.c | 15 +-
drivers/net/ethernet/sun/sunhme.c | 23 +-
drivers/net/ethernet/sun/sunqe.c | 4 +-
drivers/net/ethernet/sun/sunvnet.c | 4 +-
drivers/net/ethernet/synopsys/dwc-xlgmac-common.c | 2 +-
drivers/net/ethernet/synopsys/dwc-xlgmac-hw.c | 2 +-
drivers/net/ethernet/synopsys/dwc-xlgmac-net.c | 2 +-
drivers/net/ethernet/synopsys/dwc-xlgmac.h | 2 +-
drivers/net/ethernet/tehuti/tehuti.c | 8 +-
drivers/net/ethernet/ti/am65-cpsw-ethtool.c | 2 +-
drivers/net/ethernet/ti/am65-cpsw-nuss.c | 26 +-
drivers/net/ethernet/ti/cpmac.c | 2 +-
drivers/net/ethernet/ti/cpsw.c | 6 +-
drivers/net/ethernet/ti/cpsw_ale.c | 6 +-
drivers/net/ethernet/ti/cpsw_new.c | 17 +-
drivers/net/ethernet/ti/cpts.c | 6 +-
drivers/net/ethernet/ti/davinci_emac.c | 24 +-
drivers/net/ethernet/ti/netcp_core.c | 8 +-
drivers/net/ethernet/ti/tlan.c | 14 +-
drivers/net/ethernet/toshiba/ps3_gelic_net.c | 2 +-
drivers/net/ethernet/toshiba/spider_net.c | 2 +-
drivers/net/ethernet/toshiba/tc35815.c | 11 +-
drivers/net/ethernet/via/via-rhine.c | 4 +-
drivers/net/ethernet/via/via-velocity.c | 4 +-
drivers/net/ethernet/wiznet/w5100-spi.c | 4 +-
drivers/net/ethernet/wiznet/w5100.c | 11 +-
drivers/net/ethernet/wiznet/w5100.h | 2 +-
drivers/net/ethernet/wiznet/w5300.c | 4 +-
drivers/net/ethernet/xilinx/ll_temac_main.c | 4 +-
drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 10 +-
drivers/net/ethernet/xilinx/xilinx_emaclite.c | 11 +-
drivers/net/ethernet/xircom/xirc2ps_cs.c | 14 +-
drivers/net/ethernet/xscale/ixp4xx_eth.c | 7 +-
drivers/net/fddi/defxx.c | 12 +-
drivers/net/fddi/defza.c | 2 +-
drivers/net/fddi/skfp/h/smc.h | 2 +-
drivers/net/fddi/skfp/skfddi.c | 9 +-
drivers/net/fddi/skfp/smtinit.c | 4 +-
drivers/net/fjes/fjes_hw.c | 3 +-
drivers/net/fjes/fjes_hw.h | 2 +-
drivers/net/fjes/fjes_main.c | 14 +-
drivers/net/gtp.c | 2 +-
drivers/net/hamradio/6pack.c | 14 +-
drivers/net/hamradio/baycom_epp.c | 10 +-
drivers/net/hamradio/bpqether.c | 7 +-
drivers/net/hamradio/dmascc.c | 5 +-
drivers/net/hamradio/hdlcdrv.c | 4 +-
drivers/net/hamradio/mkiss.c | 15 +-
drivers/net/hamradio/scc.c | 7 +-
drivers/net/hamradio/yam.c | 4 +-
drivers/net/hippi/rrunner.c | 6 +-
drivers/net/hyperv/hyperv_net.h | 5 +-
drivers/net/hyperv/netvsc.c | 15 +-
drivers/net/hyperv/netvsc_drv.c | 6 +-
drivers/net/ieee802154/ca8210.c | 2 -
drivers/net/ifb.c | 5 +
drivers/net/ipvlan/ipvlan_main.c | 4 +-
drivers/net/ipvlan/ipvtap.c | 2 +-
drivers/net/macsec.c | 4 +-
drivers/net/macvlan.c | 7 +-
drivers/net/macvtap.c | 2 +-
drivers/net/net_failover.c | 3 +-
drivers/net/netdevsim/bus.c | 155 +-
drivers/net/netdevsim/dev.c | 204 +-
drivers/net/netdevsim/ethtool.c | 28 +
drivers/net/netdevsim/health.c | 32 -
drivers/net/netdevsim/netdev.c | 72 +-
drivers/net/netdevsim/netdevsim.h | 57 +-
drivers/net/ntb_netdev.c | 2 +-
drivers/net/pcs/pcs-xpcs.c | 2 +-
drivers/net/phy/at803x.c | 778 +-
drivers/net/phy/bcm7xxx.c | 203 +
drivers/net/phy/broadcom.c | 106 +-
drivers/net/phy/dp83867.c | 23 +-
drivers/net/phy/dp83869.c | 4 +-
drivers/net/phy/marvell10g.c | 107 +-
drivers/net/phy/mdio_bus.c | 28 +
drivers/net/phy/micrel.c | 107 +-
drivers/net/phy/microchip_t1.c | 283 +-
drivers/net/phy/mscc/mscc_main.c | 2 +-
drivers/net/phy/phy-c45.c | 35 +
drivers/net/phy/phy.c | 145 +-
drivers/net/phy/phy_device.c | 10 +
drivers/net/phy/phylink.c | 142 +-
drivers/net/phy/realtek.c | 8 +
drivers/net/phy/sfp-bus.c | 2 +-
drivers/net/plip/plip.c | 8 +-
drivers/net/ppp/ppp_async.c | 7 +-
drivers/net/ppp/ppp_generic.c | 2 +-
drivers/net/ppp/ppp_synctty.c | 7 +-
drivers/net/rionet.c | 14 +-
drivers/net/sb1000.c | 12 +-
drivers/net/slip/slip.c | 5 +-
drivers/net/sungem_phy.c | 2 +-
drivers/net/team/team.c | 2 +-
drivers/net/thunderbolt.c | 8 +-
drivers/net/usb/Kconfig | 1 +
drivers/net/usb/aqc111.c | 4 +-
drivers/net/usb/asix_common.c | 2 +-
drivers/net/usb/asix_devices.c | 2 +-
drivers/net/usb/ax88172a.c | 2 +-
drivers/net/usb/ax88179_178a.c | 12 +-
drivers/net/usb/catc.c | 24 +-
drivers/net/usb/cdc-phonet.c | 4 +-
drivers/net/usb/ch9200.c | 4 +-
drivers/net/usb/cx82310_eth.c | 5 +-
drivers/net/usb/dm9601.c | 7 +-
drivers/net/usb/ipheth.c | 2 +-
drivers/net/usb/kalmia.c | 2 +-
drivers/net/usb/kaweth.c | 3 +-
drivers/net/usb/lan78xx.c | 10 +-
drivers/net/usb/mcs7830.c | 9 +-
drivers/net/usb/pegasus.c | 2 +-
drivers/net/usb/qmi_wwan.c | 7 +-
drivers/net/usb/r8152.c | 4 +-
drivers/net/usb/rndis_host.c | 2 +-
drivers/net/usb/rtl8150.c | 4 +-
drivers/net/usb/sierra_net.c | 6 +-
drivers/net/usb/smsc75xx.c | 9 +-
drivers/net/usb/smsc95xx.c | 9 +-
drivers/net/usb/sr9700.c | 9 +-
drivers/net/usb/sr9800.c | 7 +-
drivers/net/usb/usbnet.c | 11 +-
drivers/net/virtio_net.c | 54 +-
drivers/net/vmxnet3/vmxnet3_drv.c | 9 +-
drivers/net/vmxnet3/vmxnet3_ethtool.c | 10 +-
drivers/net/vrf.c | 32 +-
drivers/net/wan/hdlc_fr.c | 4 +-
drivers/net/wan/lapbether.c | 2 +-
drivers/net/wireless/ath/ar5523/ar5523.c | 3 +-
drivers/net/wireless/ath/ath10k/bmi.h | 10 +-
drivers/net/wireless/ath/ath10k/core.c | 16 +-
drivers/net/wireless/ath/ath10k/coredump.c | 11 +-
drivers/net/wireless/ath/ath10k/coredump.h | 7 +
drivers/net/wireless/ath/ath10k/htt.h | 7 +-
drivers/net/wireless/ath/ath10k/mac.c | 45 +-
drivers/net/wireless/ath/ath10k/qmi.c | 3 +-
drivers/net/wireless/ath/ath10k/sdio.c | 6 +-
drivers/net/wireless/ath/ath10k/snoc.c | 77 +
drivers/net/wireless/ath/ath10k/snoc.h | 5 +
drivers/net/wireless/ath/ath10k/usb.c | 7 +-
drivers/net/wireless/ath/ath10k/wmi.c | 4 +
drivers/net/wireless/ath/ath10k/wmi.h | 3 +
drivers/net/wireless/ath/ath11k/core.c | 73 +-
drivers/net/wireless/ath/ath11k/core.h | 49 +-
drivers/net/wireless/ath/ath11k/dbring.c | 16 +-
drivers/net/wireless/ath/ath11k/debugfs.c | 27 +-
drivers/net/wireless/ath/ath11k/debugfs.h | 4 +
.../net/wireless/ath/ath11k/debugfs_htt_stats.c | 4344 +-
.../net/wireless/ath/ath11k/debugfs_htt_stats.h | 226 +
drivers/net/wireless/ath/ath11k/debugfs_sta.c | 8 +-
drivers/net/wireless/ath/ath11k/dp.c | 14 +-
drivers/net/wireless/ath/ath11k/dp.h | 9 +
drivers/net/wireless/ath/ath11k/dp_rx.c | 282 +-
drivers/net/wireless/ath/ath11k/dp_tx.c | 36 +-
drivers/net/wireless/ath/ath11k/dp_tx.h | 2 +-
drivers/net/wireless/ath/ath11k/hal_desc.h | 2 +
drivers/net/wireless/ath/ath11k/hal_rx.c | 6 +-
drivers/net/wireless/ath/ath11k/hw.c | 56 +-
drivers/net/wireless/ath/ath11k/hw.h | 24 +-
drivers/net/wireless/ath/ath11k/mac.c | 1445 +-
drivers/net/wireless/ath/ath11k/mac.h | 3 +
drivers/net/wireless/ath/ath11k/pci.c | 45 +-
drivers/net/wireless/ath/ath11k/peer.c | 11 +
drivers/net/wireless/ath/ath11k/qmi.c | 349 +-
drivers/net/wireless/ath/ath11k/qmi.h | 18 +-
drivers/net/wireless/ath/ath11k/reg.c | 18 +-
drivers/net/wireless/ath/ath11k/reg.h | 2 +-
drivers/net/wireless/ath/ath11k/spectral.c | 42 +-
drivers/net/wireless/ath/ath11k/trace.h | 11 +-
drivers/net/wireless/ath/ath11k/wmi.c | 162 +-
drivers/net/wireless/ath/ath11k/wmi.h | 107 +-
drivers/net/wireless/ath/ath5k/sysfs.c | 8 +-
drivers/net/wireless/ath/ath6kl/cfg80211.c | 9 +-
drivers/net/wireless/ath/ath6kl/usb.c | 7 +-
.../net/wireless/ath/ath9k/ath9k_pci_owl_loader.c | 105 +-
drivers/net/wireless/ath/ath9k/debug.c | 57 +-
drivers/net/wireless/ath/ath9k/debug.h | 1 +
drivers/net/wireless/ath/ath9k/eeprom.c | 12 +-
drivers/net/wireless/ath/ath9k/hw.h | 2 +
drivers/net/wireless/ath/ath9k/init.c | 58 +
drivers/net/wireless/ath/ath9k/main.c | 4 +-
drivers/net/wireless/ath/dfs_pattern_detector.c | 10 +-
drivers/net/wireless/ath/spectral_common.h | 1 -
drivers/net/wireless/ath/wcn36xx/debug.c | 2 +-
drivers/net/wireless/ath/wcn36xx/dxe.c | 49 +-
drivers/net/wireless/ath/wcn36xx/hal.h | 38 +-
drivers/net/wireless/ath/wcn36xx/main.c | 55 +-
drivers/net/wireless/ath/wcn36xx/pmc.c | 13 +-
drivers/net/wireless/ath/wcn36xx/smd.c | 189 +-
drivers/net/wireless/ath/wcn36xx/smd.h | 4 +
drivers/net/wireless/ath/wcn36xx/txrx.c | 147 +-
drivers/net/wireless/ath/wcn36xx/txrx.h | 3 +-
drivers/net/wireless/ath/wcn36xx/wcn36xx.h | 7 +-
drivers/net/wireless/ath/wil6210/cfg80211.c | 10 +-
drivers/net/wireless/ath/wil6210/main.c | 6 +-
drivers/net/wireless/ath/wil6210/wil6210.h | 2 +-
drivers/net/wireless/ath/wil6210/wmi.c | 2 +-
drivers/net/wireless/atmel/atmel.c | 19 +-
drivers/net/wireless/broadcom/b43/phy_g.c | 2 +-
drivers/net/wireless/broadcom/b43legacy/radio.c | 2 +-
.../broadcom/brcm80211/brcmfmac/cfg80211.c | 12 +-
.../wireless/broadcom/brcm80211/brcmfmac/core.c | 6 +-
.../net/wireless/broadcom/brcm80211/brcmfmac/dmi.c | 10 +
.../net/wireless/broadcom/brcm80211/brcmfmac/of.c | 2 +-
.../net/wireless/broadcom/brcm80211/brcmfmac/p2p.c | 4 +-
drivers/net/wireless/cisco/airo.c | 27 +-
drivers/net/wireless/intel/ipw2x00/ipw2100.c | 4 +-
drivers/net/wireless/intel/ipw2x00/ipw2200.c | 12 +-
drivers/net/wireless/intel/ipw2x00/ipw2200.h | 2 +-
drivers/net/wireless/intel/iwlegacy/3945-mac.c | 1 -
drivers/net/wireless/intel/iwlegacy/4965-mac.c | 1 -
drivers/net/wireless/intel/iwlegacy/commands.h | 6 +-
drivers/net/wireless/intel/iwlwifi/Makefile | 2 +-
drivers/net/wireless/intel/iwlwifi/cfg/1000.c | 5 -
drivers/net/wireless/intel/iwlwifi/cfg/2000.c | 5 -
drivers/net/wireless/intel/iwlwifi/cfg/22000.c | 35 +-
drivers/net/wireless/intel/iwlwifi/cfg/5000.c | 5 -
drivers/net/wireless/intel/iwlwifi/cfg/6000.c | 5 -
drivers/net/wireless/intel/iwlwifi/dvm/agn.h | 11 +-
drivers/net/wireless/intel/iwlwifi/dvm/commands.h | 6 +-
drivers/net/wireless/intel/iwlwifi/dvm/debugfs.c | 4 -
drivers/net/wireless/intel/iwlwifi/dvm/dev.h | 5 -
drivers/net/wireless/intel/iwlwifi/dvm/devices.c | 5 -
drivers/net/wireless/intel/iwlwifi/dvm/led.c | 5 -
drivers/net/wireless/intel/iwlwifi/dvm/led.h | 5 -
drivers/net/wireless/intel/iwlwifi/dvm/lib.c | 5 -
drivers/net/wireless/intel/iwlwifi/dvm/mac80211.c | 5 -
drivers/net/wireless/intel/iwlwifi/dvm/main.c | 7 -
drivers/net/wireless/intel/iwlwifi/dvm/power.c | 4 -
drivers/net/wireless/intel/iwlwifi/dvm/power.h | 4 -
drivers/net/wireless/intel/iwlwifi/dvm/rs.c | 5 -
drivers/net/wireless/intel/iwlwifi/dvm/rs.h | 5 -
drivers/net/wireless/intel/iwlwifi/dvm/rx.c | 5 -
drivers/net/wireless/intel/iwlwifi/dvm/rxon.c | 5 -
drivers/net/wireless/intel/iwlwifi/dvm/scan.c | 4 -
drivers/net/wireless/intel/iwlwifi/dvm/sta.c | 5 -
drivers/net/wireless/intel/iwlwifi/dvm/tt.c | 4 -
drivers/net/wireless/intel/iwlwifi/dvm/tt.h | 4 -
drivers/net/wireless/intel/iwlwifi/dvm/tx.c | 5 -
drivers/net/wireless/intel/iwlwifi/dvm/ucode.c | 5 -
drivers/net/wireless/intel/iwlwifi/fw/acpi.c | 150 +-
drivers/net/wireless/intel/iwlwifi/fw/acpi.h | 43 +-
drivers/net/wireless/intel/iwlwifi/fw/api/d3.h | 45 +-
.../net/wireless/intel/iwlwifi/fw/api/dbg-tlv.h | 57 +
drivers/net/wireless/intel/iwlwifi/fw/api/debug.h | 35 +
.../net/wireless/intel/iwlwifi/fw/api/location.h | 10 +-
.../net/wireless/intel/iwlwifi/fw/api/mac-cfg.h | 10 +-
drivers/net/wireless/intel/iwlwifi/fw/api/mac.h | 3 +
.../net/wireless/intel/iwlwifi/fw/api/nvm-reg.h | 23 +
drivers/net/wireless/intel/iwlwifi/fw/api/phy.h | 6 +-
drivers/net/wireless/intel/iwlwifi/fw/api/power.h | 55 +-
drivers/net/wireless/intel/iwlwifi/fw/api/rs.h | 234 +-
drivers/net/wireless/intel/iwlwifi/fw/api/rx.h | 31 +-
drivers/net/wireless/intel/iwlwifi/fw/api/sta.h | 2 +
drivers/net/wireless/intel/iwlwifi/fw/api/tx.h | 52 +-
drivers/net/wireless/intel/iwlwifi/fw/dbg.c | 46 +-
drivers/net/wireless/intel/iwlwifi/fw/dump.c | 9 +-
drivers/net/wireless/intel/iwlwifi/fw/error-dump.h | 4 -
drivers/net/wireless/intel/iwlwifi/fw/file.h | 12 +-
drivers/net/wireless/intel/iwlwifi/fw/img.c | 58 +-
drivers/net/wireless/intel/iwlwifi/fw/img.h | 12 +
drivers/net/wireless/intel/iwlwifi/fw/init.c | 6 +-
drivers/net/wireless/intel/iwlwifi/fw/paging.c | 4 +-
drivers/net/wireless/intel/iwlwifi/fw/pnvm.c | 15 +-
drivers/net/wireless/intel/iwlwifi/fw/rs.c | 252 +
drivers/net/wireless/intel/iwlwifi/fw/runtime.h | 7 +-
drivers/net/wireless/intel/iwlwifi/fw/uefi.h | 5 +-
drivers/net/wireless/intel/iwlwifi/iwl-config.h | 8 +-
.../wireless/intel/iwlwifi/iwl-context-info-gen3.h | 4 +-
drivers/net/wireless/intel/iwlwifi/iwl-csr.h | 8 +
drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c | 228 +-
drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.h | 2 +
drivers/net/wireless/intel/iwlwifi/iwl-debug.c | 24 +-
drivers/net/wireless/intel/iwlwifi/iwl-debug.h | 26 +-
.../net/wireless/intel/iwlwifi/iwl-devtrace-data.h | 5 -
.../net/wireless/intel/iwlwifi/iwl-devtrace-io.h | 5 -
.../wireless/intel/iwlwifi/iwl-devtrace-iwlwifi.h | 5 -
.../net/wireless/intel/iwlwifi/iwl-devtrace-msg.h | 5 -
.../wireless/intel/iwlwifi/iwl-devtrace-ucode.h | 5 -
drivers/net/wireless/intel/iwlwifi/iwl-devtrace.c | 5 -
drivers/net/wireless/intel/iwlwifi/iwl-devtrace.h | 5 -
drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 44 +-
drivers/net/wireless/intel/iwlwifi/iwl-drv.h | 3 +-
.../net/wireless/intel/iwlwifi/iwl-eeprom-read.c | 4 +-
drivers/net/wireless/intel/iwlwifi/iwl-io.c | 50 +-
drivers/net/wireless/intel/iwlwifi/iwl-io.h | 5 +-
drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c | 17 +
drivers/net/wireless/intel/iwlwifi/iwl-prph.h | 36 +
drivers/net/wireless/intel/iwlwifi/iwl-trans.h | 30 +-
drivers/net/wireless/intel/iwlwifi/mvm/d3.c | 362 +-
drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c | 19 +-
.../net/wireless/intel/iwlwifi/mvm/ftm-initiator.c | 15 +-
.../net/wireless/intel/iwlwifi/mvm/ftm-responder.c | 15 +-
drivers/net/wireless/intel/iwlwifi/mvm/fw.c | 106 +-
drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c | 44 +-
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 269 +-
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 17 +-
drivers/net/wireless/intel/iwlwifi/mvm/nvm.c | 5 +-
drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 194 +-
drivers/net/wireless/intel/iwlwifi/mvm/power.c | 28 +-
drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c | 16 +-
drivers/net/wireless/intel/iwlwifi/mvm/rs.c | 182 +-
drivers/net/wireless/intel/iwlwifi/mvm/rs.h | 17 -
drivers/net/wireless/intel/iwlwifi/mvm/rx.c | 39 +-
drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c | 119 +-
drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 10 +-
drivers/net/wireless/intel/iwlwifi/mvm/tx.c | 117 +-
drivers/net/wireless/intel/iwlwifi/mvm/utils.c | 54 +-
.../wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c | 4 +
drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 306 +-
drivers/net/wireless/intel/iwlwifi/pcie/rx.c | 9 +-
.../net/wireless/intel/iwlwifi/pcie/trans-gen2.c | 38 +-
drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 90 +-
drivers/net/wireless/intersil/hostap/hostap_hw.c | 5 +-
drivers/net/wireless/intersil/hostap/hostap_main.c | 4 +-
drivers/net/wireless/intersil/orinoco/main.c | 2 +-
drivers/net/wireless/mac80211_hwsim.c | 163 +-
drivers/net/wireless/marvell/libertas/cmd.c | 5 +-
drivers/net/wireless/marvell/libertas/if_usb.c | 2 +
drivers/net/wireless/marvell/libertas/main.c | 4 +-
drivers/net/wireless/marvell/libertas/mesh.c | 18 +-
drivers/net/wireless/marvell/libertas_tf/if_usb.c | 2 +
drivers/net/wireless/marvell/mwifiex/11n.c | 7 +-
drivers/net/wireless/marvell/mwifiex/cfg80211.c | 384 +-
drivers/net/wireless/marvell/mwifiex/cmdevt.c | 21 +
drivers/net/wireless/marvell/mwifiex/main.c | 22 +-
drivers/net/wireless/marvell/mwifiex/main.h | 1 +
drivers/net/wireless/marvell/mwifiex/pcie.c | 36 +-
drivers/net/wireless/marvell/mwifiex/sta_cmd.c | 4 +
drivers/net/wireless/marvell/mwifiex/uap_event.c | 3 +-
drivers/net/wireless/marvell/mwifiex/usb.c | 16 +
drivers/net/wireless/marvell/mwl8k.c | 2 +-
drivers/net/wireless/mediatek/mt76/Makefile | 2 +-
drivers/net/wireless/mediatek/mt76/debugfs.c | 22 +-
drivers/net/wireless/mediatek/mt76/eeprom.c | 19 +-
drivers/net/wireless/mediatek/mt76/mac80211.c | 242 +-
drivers/net/wireless/mediatek/mt76/mcu.c | 8 +-
drivers/net/wireless/mediatek/mt76/mt76.h | 126 +-
drivers/net/wireless/mediatek/mt76/mt7603/mac.c | 11 +-
drivers/net/wireless/mediatek/mt76/mt7603/main.c | 3 +
drivers/net/wireless/mediatek/mt76/mt7603/pci.c | 2 +-
drivers/net/wireless/mediatek/mt76/mt7615/Makefile | 2 +-
.../net/wireless/mediatek/mt76/mt7615/debugfs.c | 29 +-
drivers/net/wireless/mediatek/mt76/mt7615/init.c | 6 +-
drivers/net/wireless/mediatek/mt76/mt7615/mac.c | 62 +-
drivers/net/wireless/mediatek/mt76/mt7615/main.c | 14 +-
drivers/net/wireless/mediatek/mt76/mt7615/mcu.c | 90 +-
drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h | 20 +-
drivers/net/wireless/mediatek/mt76/mt7615/pci.c | 4 +-
.../net/wireless/mediatek/mt76/mt7615/pci_mac.c | 5 +-
drivers/net/wireless/mediatek/mt76/mt7615/sdio.c | 296 +-
drivers/net/wireless/mediatek/mt76/mt7615/sdio.h | 115 -
.../net/wireless/mediatek/mt76/mt7615/sdio_mcu.c | 11 +-
.../net/wireless/mediatek/mt76/mt7615/sdio_txrx.c | 334 -
.../net/wireless/mediatek/mt76/mt7615/usb_sdio.c | 2 +-
drivers/net/wireless/mediatek/mt76/mt76_connac.h | 7 +-
.../net/wireless/mediatek/mt76/mt76_connac_mcu.c | 357 +-
.../net/wireless/mediatek/mt76/mt76_connac_mcu.h | 38 +-
drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.c | 2 +-
drivers/net/wireless/mediatek/mt76/mt76x0/pci.c | 4 +-
drivers/net/wireless/mediatek/mt76/mt76x02_mac.c | 15 +-
drivers/net/wireless/mediatek/mt76/mt76x02_mmio.c | 12 +-
drivers/net/wireless/mediatek/mt76/mt76x02_util.c | 3 +
drivers/net/wireless/mediatek/mt76/mt76x2/pci.c | 5 +-
.../net/wireless/mediatek/mt76/mt7915/debugfs.c | 542 +-
drivers/net/wireless/mediatek/mt76/mt7915/init.c | 170 +-
drivers/net/wireless/mediatek/mt76/mt7915/mac.c | 652 +-
drivers/net/wireless/mediatek/mt76/mt7915/mac.h | 11 +-
drivers/net/wireless/mediatek/mt76/mt7915/main.c | 366 +-
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c | 1192 +-
drivers/net/wireless/mediatek/mt76/mt7915/mcu.h | 128 +-
drivers/net/wireless/mediatek/mt76/mt7915/mmio.c | 6 +-
drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h | 161 +-
drivers/net/wireless/mediatek/mt76/mt7915/pci.c | 5 +-
drivers/net/wireless/mediatek/mt76/mt7915/regs.h | 166 +-
.../net/wireless/mediatek/mt76/mt7915/testmode.c | 23 +
.../net/wireless/mediatek/mt76/mt7915/testmode.h | 6 +
drivers/net/wireless/mediatek/mt76/mt7921/Kconfig | 19 +-
drivers/net/wireless/mediatek/mt76/mt7921/Makefile | 7 +-
.../net/wireless/mediatek/mt76/mt7921/debugfs.c | 99 +-
drivers/net/wireless/mediatek/mt76/mt7921/dma.c | 74 +-
drivers/net/wireless/mediatek/mt76/mt7921/eeprom.c | 100 -
drivers/net/wireless/mediatek/mt76/mt7921/init.c | 96 +-
drivers/net/wireless/mediatek/mt76/mt7921/mac.c | 776 +-
drivers/net/wireless/mediatek/mt76/mt7921/mac.h | 32 +
drivers/net/wireless/mediatek/mt76/mt7921/main.c | 328 +-
drivers/net/wireless/mediatek/mt76/mt7921/mcu.c | 448 +-
drivers/net/wireless/mediatek/mt76/mt7921/mcu.h | 63 +-
drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h | 179 +-
drivers/net/wireless/mediatek/mt76/mt7921/pci.c | 66 +-
.../net/wireless/mediatek/mt76/mt7921/pci_mac.c | 348 +
.../net/wireless/mediatek/mt76/mt7921/pci_mcu.c | 115 +
drivers/net/wireless/mediatek/mt76/mt7921/regs.h | 58 +-
drivers/net/wireless/mediatek/mt76/mt7921/sdio.c | 317 +
.../net/wireless/mediatek/mt76/mt7921/sdio_mac.c | 220 +
.../net/wireless/mediatek/mt76/mt7921/sdio_mcu.c | 135 +
.../net/wireless/mediatek/mt76/mt7921/testmode.c | 197 +
drivers/net/wireless/mediatek/mt76/sdio.c | 303 +-
drivers/net/wireless/mediatek/mt76/sdio.h | 138 +
drivers/net/wireless/mediatek/mt76/sdio_txrx.c | 364 +
drivers/net/wireless/mediatek/mt76/testmode.c | 4 +-
drivers/net/wireless/mediatek/mt76/testmode.h | 7 +
drivers/net/wireless/mediatek/mt76/tx.c | 84 +-
drivers/net/wireless/mediatek/mt76/usb.c | 2 +-
drivers/net/wireless/mediatek/mt76/util.h | 10 +-
drivers/net/wireless/mediatek/mt7601u/dma.c | 2 +-
drivers/net/wireless/microchip/wilc1000/cfg80211.c | 11 +-
drivers/net/wireless/microchip/wilc1000/hif.c | 31 +-
drivers/net/wireless/microchip/wilc1000/hif.h | 1 +
drivers/net/wireless/microchip/wilc1000/netdev.c | 14 +-
drivers/net/wireless/microchip/wilc1000/netdev.h | 5 +-
drivers/net/wireless/microchip/wilc1000/sdio.c | 1 +
drivers/net/wireless/microchip/wilc1000/spi.c | 91 +-
drivers/net/wireless/microchip/wilc1000/wlan.c | 134 +-
drivers/net/wireless/microchip/wilc1000/wlan.h | 5 +-
drivers/net/wireless/microchip/wilc1000/wlan_cfg.c | 1 +
drivers/net/wireless/microchip/wilc1000/wlan_if.h | 7 +-
drivers/net/wireless/quantenna/qtnfmac/core.c | 6 +-
drivers/net/wireless/quantenna/qtnfmac/pcie/pcie.c | 2 -
drivers/net/wireless/ralink/rt2x00/rt2800usb.c | 1 -
drivers/net/wireless/ray_cs.c | 2 +-
drivers/net/wireless/realtek/Kconfig | 1 +
drivers/net/wireless/realtek/Makefile | 1 +
.../net/wireless/realtek/rtl818x/rtl8187/rtl8225.c | 14 +-
.../net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 6 +-
.../net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h | 2 +
drivers/net/wireless/realtek/rtlwifi/pci.c | 1 -
.../net/wireless/realtek/rtlwifi/rtl8192ee/hw.c | 2 +-
drivers/net/wireless/realtek/rtw88/debug.c | 46 +-
drivers/net/wireless/realtek/rtw88/debug.h | 1 +
drivers/net/wireless/realtek/rtw88/fw.c | 54 +-
drivers/net/wireless/realtek/rtw88/fw.h | 24 +
drivers/net/wireless/realtek/rtw88/main.c | 22 +-
drivers/net/wireless/realtek/rtw88/main.h | 49 +-
drivers/net/wireless/realtek/rtw88/phy.c | 119 +-
drivers/net/wireless/realtek/rtw88/phy.h | 2 +
drivers/net/wireless/realtek/rtw88/reg.h | 6 +
drivers/net/wireless/realtek/rtw88/regd.c | 753 +-
drivers/net/wireless/realtek/rtw88/regd.h | 8 +-
drivers/net/wireless/realtek/rtw88/rtw8821c.c | 19 +-
drivers/net/wireless/realtek/rtw88/rtw8822b.c | 46 +-
drivers/net/wireless/realtek/rtw88/rtw8822b.h | 8 +
drivers/net/wireless/realtek/rtw88/rtw8822c.c | 47 +
drivers/net/wireless/realtek/rtw88/rtw8822c.h | 3 +
drivers/net/wireless/realtek/rtw89/Kconfig | 50 +
drivers/net/wireless/realtek/rtw89/Makefile | 25 +
drivers/net/wireless/realtek/rtw89/cam.c | 695 +
drivers/net/wireless/realtek/rtw89/cam.h | 165 +
drivers/net/wireless/realtek/rtw89/coex.c | 5716 +++
drivers/net/wireless/realtek/rtw89/coex.h | 181 +
drivers/net/wireless/realtek/rtw89/core.c | 2502 +
drivers/net/wireless/realtek/rtw89/core.h | 3384 ++
drivers/net/wireless/realtek/rtw89/debug.c | 2489 +
drivers/net/wireless/realtek/rtw89/debug.h | 77 +
drivers/net/wireless/realtek/rtw89/efuse.c | 188 +
drivers/net/wireless/realtek/rtw89/efuse.h | 13 +
drivers/net/wireless/realtek/rtw89/fw.c | 1641 +
drivers/net/wireless/realtek/rtw89/fw.h | 1378 +
drivers/net/wireless/realtek/rtw89/mac.c | 3836 ++
drivers/net/wireless/realtek/rtw89/mac.h | 860 +
drivers/net/wireless/realtek/rtw89/mac80211.c | 676 +
drivers/net/wireless/realtek/rtw89/pci.c | 3060 ++
drivers/net/wireless/realtek/rtw89/pci.h | 630 +
drivers/net/wireless/realtek/rtw89/phy.c | 2868 ++
drivers/net/wireless/realtek/rtw89/phy.h | 311 +
drivers/net/wireless/realtek/rtw89/ps.c | 150 +
drivers/net/wireless/realtek/rtw89/ps.h | 16 +
drivers/net/wireless/realtek/rtw89/reg.h | 2159 +
drivers/net/wireless/realtek/rtw89/regd.c | 353 +
drivers/net/wireless/realtek/rtw89/rtw8852a.c | 2036 +
drivers/net/wireless/realtek/rtw89/rtw8852a.h | 109 +
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c | 3911 ++
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.h | 24 +
.../wireless/realtek/rtw89/rtw8852a_rfk_table.c | 1607 +
.../wireless/realtek/rtw89/rtw8852a_rfk_table.h | 133 +
.../net/wireless/realtek/rtw89/rtw8852a_table.c | 48725 +++++++++++++++++++
.../net/wireless/realtek/rtw89/rtw8852a_table.h | 28 +
drivers/net/wireless/realtek/rtw89/sar.c | 190 +
drivers/net/wireless/realtek/rtw89/sar.h | 26 +
drivers/net/wireless/realtek/rtw89/ser.c | 491 +
drivers/net/wireless/realtek/rtw89/ser.h | 15 +
drivers/net/wireless/realtek/rtw89/txrx.h | 358 +
drivers/net/wireless/realtek/rtw89/util.h | 17 +
drivers/net/wireless/rndis_wlan.c | 2 -
drivers/net/wireless/rsi/rsi_91x_core.c | 2 +
drivers/net/wireless/rsi/rsi_91x_hal.c | 10 +-
drivers/net/wireless/rsi/rsi_91x_mac80211.c | 74 +-
drivers/net/wireless/rsi/rsi_91x_main.c | 17 +-
drivers/net/wireless/rsi/rsi_91x_mgmt.c | 24 +-
drivers/net/wireless/rsi/rsi_91x_sdio.c | 5 +-
drivers/net/wireless/rsi/rsi_91x_usb.c | 7 +-
drivers/net/wireless/rsi/rsi_hal.h | 11 +
drivers/net/wireless/rsi/rsi_main.h | 15 +-
drivers/net/wireless/st/cw1200/bh.c | 2 -
drivers/net/wireless/ti/wlcore/spi.c | 9 +-
drivers/net/wireless/wl3501_cs.c | 3 +-
drivers/net/wireless/zydas/zd1201.c | 9 +-
drivers/net/wireless/zydas/zd1211rw/zd_usb.c | 1 -
drivers/net/wwan/Kconfig | 1 +
drivers/net/wwan/iosm/Makefile | 5 +-
drivers/net/wwan/iosm/iosm_ipc_chnl_cfg.c | 6 +-
drivers/net/wwan/iosm/iosm_ipc_chnl_cfg.h | 1 +
drivers/net/wwan/iosm/iosm_ipc_coredump.c | 125 +
drivers/net/wwan/iosm/iosm_ipc_coredump.h | 59 +
drivers/net/wwan/iosm/iosm_ipc_devlink.c | 321 +
drivers/net/wwan/iosm/iosm_ipc_devlink.h | 205 +
drivers/net/wwan/iosm/iosm_ipc_flash.c | 594 +
drivers/net/wwan/iosm/iosm_ipc_flash.h | 229 +
drivers/net/wwan/iosm/iosm_ipc_imem.c | 107 +-
drivers/net/wwan/iosm/iosm_ipc_imem.h | 18 +-
drivers/net/wwan/iosm/iosm_ipc_imem_ops.c | 315 +
drivers/net/wwan/iosm/iosm_ipc_imem_ops.h | 49 +-
drivers/net/xen-netback/interface.c | 6 +-
drivers/net/xen-netback/netback.c | 2 +-
drivers/net/xen-netfront.c | 12 +-
drivers/nfc/fdp/i2c.c | 1 -
drivers/nfc/microread/i2c.c | 4 -
drivers/nfc/microread/mei.c | 6 +-
drivers/nfc/nfcmrvl/fw_dnld.c | 4 +-
drivers/nfc/pn533/i2c.c | 6 +-
drivers/nfc/pn533/pn533.c | 12 +-
drivers/nfc/pn533/pn533.h | 4 +-
drivers/nfc/pn533/uart.c | 4 +-
drivers/nfc/pn533/usb.c | 2 +-
drivers/nfc/pn544/mei.c | 8 +-
drivers/nfc/port100.c | 10 +-
drivers/nfc/s3fwrn5/firmware.c | 29 +-
drivers/nfc/s3fwrn5/nci.c | 18 +-
drivers/nfc/st-nci/i2c.c | 4 -
drivers/nfc/st-nci/ndlc.c | 4 -
drivers/nfc/st-nci/se.c | 6 -
drivers/nfc/st-nci/spi.c | 4 -
drivers/nfc/st21nfca/i2c.c | 4 -
drivers/nfc/st21nfca/se.c | 4 -
drivers/nfc/st95hf/core.c | 6 +-
drivers/nfc/trf7970a.c | 8 -
drivers/nvdimm/blk.c | 26 +-
drivers/nvdimm/btt.c | 37 +-
drivers/nvdimm/btt_devs.c | 14 +-
drivers/nvdimm/core.c | 41 +-
drivers/nvdimm/label.c | 139 +-
drivers/nvdimm/label.h | 94 +-
drivers/nvdimm/namespace_devs.c | 95 +-
drivers/nvdimm/nd-core.h | 5 +-
drivers/nvdimm/nd.h | 185 +-
drivers/nvdimm/pfn_devs.c | 2 +-
drivers/nvdimm/pmem.c | 90 +-
drivers/nvme/host/core.c | 144 +-
drivers/nvme/host/fabrics.c | 6 +-
drivers/nvme/host/fabrics.h | 8 +
drivers/nvme/host/fc.c | 34 +-
drivers/nvme/host/multipath.c | 54 +-
drivers/nvme/host/nvme.h | 19 +
drivers/nvme/host/pci.c | 58 +-
drivers/nvme/host/rdma.c | 28 +-
drivers/nvme/host/tcp.c | 29 +-
drivers/nvme/host/zns.c | 2 +
drivers/nvme/target/admin-cmd.c | 18 +-
drivers/nvme/target/configfs.c | 41 +
drivers/nvme/target/core.c | 18 +-
drivers/nvme/target/discovery.c | 19 +-
drivers/nvme/target/fabrics-cmd.c | 3 +-
drivers/nvme/target/io-cmd-bdev.c | 5 +-
drivers/nvme/target/io-cmd-file.c | 4 +-
drivers/nvme/target/loop.c | 6 +-
drivers/nvme/target/nvmet.h | 6 +
drivers/nvme/target/rdma.c | 31 +
drivers/nvme/target/tcp.c | 23 +-
drivers/nvmem/core.c | 174 +-
drivers/nvmem/imx-ocotp.c | 25 +
drivers/of/Kconfig | 4 -
drivers/of/Makefile | 1 -
drivers/of/base.c | 22 +
drivers/of/fdt.c | 52 +-
drivers/of/irq.c | 32 +-
drivers/of/kexec.c | 4 +-
drivers/of/kobj.c | 4 +-
drivers/of/of_net.c | 145 -
drivers/of/of_numa.c | 2 +
drivers/of/of_private.h | 10 +-
drivers/of/of_reserved_mem.c | 7 +-
drivers/of/platform.c | 17 +-
drivers/of/unittest-data/Makefile | 8 +-
drivers/of/unittest-data/tests-interrupts.dtsi | 19 +
drivers/of/unittest.c | 24 +-
drivers/opp/core.c | 6 +-
drivers/opp/of.c | 50 +-
drivers/pci/controller/Kconfig | 31 +-
drivers/pci/controller/Makefile | 3 +
drivers/pci/controller/cadence/pci-j721e.c | 2 +-
drivers/pci/controller/cadence/pcie-cadence-plat.c | 2 +
drivers/pci/controller/dwc/Kconfig | 30 +-
drivers/pci/controller/dwc/Makefile | 1 +
drivers/pci/controller/dwc/pci-dra7xx.c | 22 +-
drivers/pci/controller/dwc/pci-imx6.c | 2 +-
drivers/pci/controller/dwc/pcie-designware-ep.c | 3 +
drivers/pci/controller/dwc/pcie-designware-host.c | 19 +-
drivers/pci/controller/dwc/pcie-designware.c | 1 +
drivers/pci/controller/dwc/pcie-kirin.c | 646 +-
drivers/pci/controller/dwc/pcie-qcom-ep.c | 721 +
drivers/pci/controller/dwc/pcie-qcom.c | 96 +-
drivers/pci/controller/dwc/pcie-uniphier.c | 26 +-
drivers/pci/controller/dwc/pcie-visconti.c | 5 +-
drivers/pci/controller/pci-aardvark.c | 491 +-
drivers/pci/controller/pci-hyperv.c | 4 +-
drivers/pci/controller/pci-thunder-ecam.c | 4 +-
drivers/pci/controller/pci-xgene-msi.c | 2 +-
drivers/pci/controller/pci-xgene.c | 3 +-
drivers/pci/controller/pcie-apple.c | 824 +
drivers/pci/controller/pcie-brcmstb.c | 2 +-
drivers/pci/controller/pcie-iproc.c | 2 +-
drivers/pci/controller/pcie-mt7621.c | 600 +
drivers/pci/controller/pcie-rcar-ep.c | 5 +-
drivers/pci/controller/pcie-rcar-host.c | 2 -
drivers/pci/controller/vmd.c | 47 +-
drivers/pci/endpoint/functions/pci-epf-ntb.c | 22 +-
drivers/pci/endpoint/pci-ep-cfs.c | 48 +-
drivers/pci/endpoint/pci-epc-core.c | 2 +-
drivers/pci/endpoint/pci-epf-core.c | 4 +-
drivers/pci/hotplug/acpiphp_glue.c | 2 +-
drivers/pci/hotplug/cpqphp.h | 2 +-
drivers/pci/hotplug/cpqphp_ctrl.c | 4 +-
drivers/pci/hotplug/cpqphp_pci.c | 6 +-
drivers/pci/hotplug/ibmphp.h | 4 +-
drivers/pci/hotplug/pciehp.h | 2 +
drivers/pci/hotplug/pciehp_core.c | 2 +
drivers/pci/hotplug/pciehp_hpc.c | 26 +
drivers/pci/hotplug/s390_pci_hpc.c | 24 +
drivers/pci/hotplug/shpchp_hpc.c | 2 +-
drivers/pci/iov.c | 14 +-
drivers/pci/msi.c | 42 +-
drivers/pci/of.c | 10 +-
drivers/pci/p2pdma.c | 8 +-
drivers/pci/pci-acpi.c | 74 +-
drivers/pci/pci-bridge-emul.c | 13 +
drivers/pci/pci-driver.c | 22 +-
drivers/pci/pci-mid.c | 37 +-
drivers/pci/pci-sysfs.c | 57 +-
drivers/pci/pci.c | 239 +-
drivers/pci/pci.h | 97 +-
drivers/pci/pcie/Makefile | 4 +-
drivers/pci/pcie/aer.c | 2 +-
drivers/pci/pcie/aspm.c | 4 +-
drivers/pci/pcie/err.c | 40 +-
drivers/pci/pcie/portdrv.h | 6 +-
drivers/pci/pcie/portdrv_core.c | 67 +-
drivers/pci/pcie/portdrv_pci.c | 27 +-
drivers/pci/probe.c | 60 +-
drivers/pci/quirks.c | 76 +-
drivers/pci/rom.c | 2 +-
drivers/pci/setup-bus.c | 2 +-
drivers/pci/setup-irq.c | 26 +-
drivers/pci/switch/switchtec.c | 95 +-
drivers/pci/vpd.c | 93 +-
drivers/pci/xen-pcifront.c | 58 +-
drivers/pcmcia/db1xxx_ss.c | 1 +
drivers/pcmcia/pcmcia_cis.c | 5 +-
drivers/perf/Kconfig | 12 +-
drivers/perf/hisilicon/hisi_uncore_pa_pmu.c | 2 +-
drivers/perf/qcom_l2_pmu.c | 7 +-
drivers/perf/thunderx2_pmu.c | 2 +-
drivers/phy/broadcom/Kconfig | 4 +
drivers/phy/broadcom/phy-bcm-ns-usb3.c | 2 +-
drivers/phy/broadcom/phy-bcm-ns2-pcie.c | 6 +-
drivers/phy/cadence/phy-cadence-torrent.c | 316 +-
drivers/phy/hisilicon/Kconfig | 10 +
drivers/phy/hisilicon/Makefile | 1 +
drivers/phy/hisilicon/phy-hi3670-pcie.c | 845 +
drivers/phy/hisilicon/phy-hisi-inno-usb2.c | 10 +-
drivers/phy/microchip/sparx5_serdes.c | 4 +-
drivers/phy/qualcomm/phy-qcom-qmp.c | 157 +-
drivers/phy/qualcomm/phy-qcom-qmp.h | 2 +
drivers/phy/qualcomm/phy-qcom-qusb2.c | 21 +-
drivers/phy/qualcomm/phy-qcom-snps-femto-v2.c | 2 +-
drivers/phy/rockchip/phy-rockchip-inno-usb2.c | 11 +-
drivers/phy/samsung/Kconfig | 16 +-
drivers/phy/st/phy-stm32-usbphyc.c | 203 +
drivers/phy/ti/phy-gmii-sel.c | 2 +
drivers/pinctrl/Kconfig | 16 +
drivers/pinctrl/Makefile | 1 +
drivers/pinctrl/bcm/Kconfig | 2 +-
drivers/pinctrl/bcm/pinctrl-bcm2835.c | 9 +-
drivers/pinctrl/bcm/pinctrl-ns.c | 29 +-
drivers/pinctrl/core.c | 2 +
drivers/pinctrl/intel/Kconfig | 6 +-
drivers/pinctrl/mediatek/Kconfig | 7 +
drivers/pinctrl/mediatek/Makefile | 1 +
drivers/pinctrl/mediatek/pinctrl-moore.c | 18 +
drivers/pinctrl/mediatek/pinctrl-mt7986.c | 927 +
drivers/pinctrl/mediatek/pinctrl-mt8195.c | 134 +
drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c | 231 +-
drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.h | 46 +
drivers/pinctrl/mediatek/pinctrl-paris.c | 68 +-
drivers/pinctrl/nomadik/Kconfig | 1 -
drivers/pinctrl/pinctrl-amd.c | 31 +
drivers/pinctrl/pinctrl-apple-gpio.c | 534 +
drivers/pinctrl/pinctrl-equilibrium.c | 7 +-
drivers/pinctrl/pinctrl-gemini.c | 4 +-
drivers/pinctrl/pinctrl-microchip-sgpio.c | 7 +
drivers/pinctrl/pinctrl-st.c | 2 +-
drivers/pinctrl/qcom/Kconfig | 17 +
drivers/pinctrl/qcom/Makefile | 2 +
drivers/pinctrl/qcom/pinctrl-msm8226.c | 74 +-
drivers/pinctrl/qcom/pinctrl-qcm2290.c | 1129 +
drivers/pinctrl/qcom/pinctrl-sm6350.c | 1401 +
drivers/pinctrl/qcom/pinctrl-spmi-gpio.c | 7 +
drivers/pinctrl/qcom/pinctrl-spmi-mpp.c | 111 +-
drivers/pinctrl/qcom/pinctrl-ssbi-mpp.c | 133 +-
drivers/pinctrl/renesas/core.c | 83 +-
drivers/pinctrl/renesas/pfc-r8a77950.c | 14 +
drivers/pinctrl/renesas/pfc-r8a77951.c | 22 +-
drivers/pinctrl/renesas/pfc-r8a7796.c | 22 +-
drivers/pinctrl/renesas/pfc-r8a77965.c | 22 +-
drivers/pinctrl/renesas/pinctrl-rzg2l.c | 2 +-
drivers/pinctrl/samsung/pinctrl-exynos-arm64.c | 108 +
drivers/pinctrl/samsung/pinctrl-samsung.c | 2 +
drivers/pinctrl/samsung/pinctrl-samsung.h | 1 +
drivers/pinctrl/stm32/pinctrl-stm32.c | 20 +-
drivers/pinctrl/tegra/pinctrl-tegra.c | 32 +-
drivers/pinctrl/tegra/pinctrl-tegra.h | 2 +
drivers/pinctrl/tegra/pinctrl-tegra194.c | 1794 +-
drivers/pinctrl/tegra/pinctrl-tegra210.c | 330 +-
drivers/pinctrl/uniphier/Kconfig | 4 +
drivers/pinctrl/uniphier/Makefile | 1 +
drivers/pinctrl/uniphier/pinctrl-uniphier-ld11.c | 18 +
drivers/pinctrl/uniphier/pinctrl-uniphier-ld20.c | 35 +
drivers/pinctrl/uniphier/pinctrl-uniphier-nx1.c | 489 +
drivers/pinctrl/uniphier/pinctrl-uniphier-pxs3.c | 40 +
drivers/platform/chrome/cros_ec_lpc.c | 4 +-
drivers/platform/chrome/cros_ec_proto.c | 79 +-
drivers/platform/chrome/cros_ec_sensorhub.c | 6 +-
drivers/platform/chrome/cros_ec_typec.c | 74 +-
drivers/platform/chrome/cros_usbpd_notify.c | 50 +-
drivers/platform/mellanox/Kconfig | 12 +
drivers/platform/mellanox/Makefile | 1 +
drivers/platform/mellanox/mlxreg-hotplug.c | 123 +-
drivers/platform/mellanox/mlxreg-io.c | 2 +-
drivers/platform/mellanox/mlxreg-lc.c | 906 +
drivers/platform/surface/surface3-wmi.c | 9 +-
drivers/platform/surface/surface3_power.c | 3 +-
.../platform/surface/surface_aggregator_registry.c | 66 +
drivers/platform/surface/surface_gpe.c | 13 +
drivers/platform/x86/Kconfig | 29 +
drivers/platform/x86/Makefile | 4 +
drivers/platform/x86/acer-wmi.c | 14 +-
drivers/platform/x86/amd-pmc.c | 152 +-
drivers/platform/x86/asus-wmi.c | 12 +-
drivers/platform/x86/barco-p50-gpio.c | 436 +
drivers/platform/x86/dell/dell-wmi-base.c | 76 +-
drivers/platform/x86/hp-wmi.c | 337 +-
drivers/platform/x86/hp_accel.c | 3 +-
drivers/platform/x86/i2c-multi-instantiate.c | 31 +-
drivers/platform/x86/ideapad-laptop.c | 35 +-
drivers/platform/x86/intel/Kconfig | 16 +
drivers/platform/x86/intel/Makefile | 1 +
drivers/platform/x86/intel/int0002_vgpio.c | 14 +-
drivers/platform/x86/intel/ishtp_eclite.c | 701 +
drivers/platform/x86/lg-laptop.c | 11 +-
drivers/platform/x86/mlx-platform.c | 2420 +-
drivers/platform/x86/nvidia-wmi-ec-backlight.c | 213 +
drivers/platform/x86/panasonic-laptop.c | 18 +-
drivers/platform/x86/sony-laptop.c | 46 +-
drivers/platform/x86/system76_acpi.c | 427 +-
drivers/platform/x86/thinkpad_acpi.c | 195 +-
drivers/platform/x86/touchscreen_dmi.c | 25 +
drivers/platform/x86/wmi.c | 375 +-
drivers/pnp/system.c | 2 +-
drivers/power/reset/at91-reset.c | 4 +-
drivers/power/reset/ltc2952-poweroff.c | 4 +-
drivers/power/supply/Kconfig | 23 +-
drivers/power/supply/ab8500_bmdata.c | 3 +-
drivers/power/supply/axp288_charger.c | 178 +-
drivers/power/supply/bq25890_charger.c | 65 +-
drivers/power/supply/bq27xxx_battery_i2c.c | 3 +-
drivers/power/supply/cpcap-battery.c | 15 +-
drivers/power/supply/max17040_battery.c | 2 +
drivers/power/supply/max17042_battery.c | 14 +-
drivers/power/supply/power_supply_core.c | 65 +-
drivers/power/supply/rt5033_battery.c | 2 +-
drivers/power/supply/wm831x_power.c | 12 +-
drivers/powercap/dtpm.c | 78 +-
drivers/powercap/dtpm_cpu.c | 228 +-
drivers/ptp/idt8a340_reg.h | 720 -
drivers/ptp/ptp_clock.c | 16 +-
drivers/ptp/ptp_clockmatrix.c | 1588 +-
drivers/ptp/ptp_clockmatrix.h | 109 +-
drivers/ptp/ptp_kvm_x86.c | 4 +-
drivers/ptp/ptp_ocp.c | 1354 +-
drivers/pwm/Kconfig | 4 +-
drivers/pwm/core.c | 9 +
drivers/pwm/pwm-atmel.c | 1 -
drivers/pwm/pwm-samsung.c | 30 +-
drivers/pwm/pwm-visconti.c | 14 +-
drivers/pwm/pwm-vt8500.c | 16 +-
drivers/rapidio/devices/rio_mport_cdev.c | 9 +-
drivers/regulator/Kconfig | 15 +-
drivers/regulator/Makefile | 1 -
drivers/regulator/bd71815-regulator.c | 4 +-
drivers/regulator/core.c | 14 +-
drivers/regulator/dummy.c | 3 +-
drivers/regulator/hi6421v600-regulator.c | 10 +-
drivers/regulator/lp872x.c | 52 +-
drivers/regulator/max8973-regulator.c | 4 +-
drivers/regulator/pwm-regulator.c | 12 +-
drivers/regulator/qcom-rpmh-regulator.c | 32 +
drivers/regulator/qcom_smd-regulator.c | 49 +
drivers/regulator/rtq6752-regulator.c | 18 +-
drivers/regulator/s5m8767.c | 21 +-
drivers/regulator/sy7636a-regulator.c | 2 +-
drivers/regulator/ti-abb-regulator.c | 31 +-
drivers/regulator/tps62360-regulator.c | 59 +-
drivers/regulator/tps80031-regulator.c | 753 -
drivers/regulator/uniphier-regulator.c | 4 +
drivers/regulator/vqmmc-ipq4019-regulator.c | 4 +-
drivers/remoteproc/Kconfig | 32 +-
drivers/remoteproc/Makefile | 2 +
drivers/remoteproc/imx_dsp_rproc.c | 1206 +
drivers/remoteproc/imx_rproc.c | 71 +-
drivers/remoteproc/imx_rproc.h | 39 +
drivers/remoteproc/meson_mx_ao_arc.c | 261 +
drivers/remoteproc/mtk_common.h | 1 +
drivers/remoteproc/mtk_scp.c | 48 +-
drivers/remoteproc/omap_remoteproc.c | 6 +-
drivers/remoteproc/qcom_q6v5.c | 57 +-
drivers/remoteproc/qcom_q6v5.h | 7 +-
drivers/remoteproc/qcom_q6v5_adsp.c | 7 +-
drivers/remoteproc/qcom_q6v5_mss.c | 304 +-
drivers/remoteproc/qcom_q6v5_pas.c | 141 +-
drivers/remoteproc/qcom_q6v5_wcss.c | 5 +-
drivers/remoteproc/qcom_wcnss.c | 1 -
drivers/remoteproc/remoteproc_core.c | 8 +-
drivers/remoteproc/remoteproc_coredump.c | 2 +-
drivers/remoteproc/remoteproc_elf_loader.c | 4 +-
drivers/remoteproc/remoteproc_virtio.c | 12 +
drivers/remoteproc/ti_k3_dsp_remoteproc.c | 2 +-
drivers/remoteproc/ti_k3_r5_remoteproc.c | 2 +-
drivers/reset/Kconfig | 8 +-
drivers/reset/reset-brcmstb-rescal.c | 2 +-
drivers/reset/reset-microchip-sparx5.c | 40 +-
drivers/reset/reset-socfpga.c | 26 +
drivers/reset/reset-uniphier-glue.c | 4 +
drivers/reset/reset-uniphier.c | 27 +
drivers/reset/tegra/reset-bpmp.c | 9 +-
drivers/rpmsg/mtk_rpmsg.c | 2 +-
drivers/rpmsg/qcom_glink_native.c | 90 +-
drivers/rpmsg/rpmsg_char.c | 2 -
drivers/rpmsg/rpmsg_core.c | 21 +
drivers/rpmsg/rpmsg_internal.h | 2 +
drivers/rpmsg/virtio_rpmsg_bus.c | 13 +-
drivers/rtc/Kconfig | 29 +-
drivers/rtc/Makefile | 2 +-
drivers/rtc/class.c | 20 +-
drivers/rtc/dev.c | 65 +
drivers/rtc/interface.c | 15 +-
drivers/rtc/rtc-ab-eoz9.c | 3 +-
drivers/rtc/rtc-ab8500.c | 23 +-
drivers/rtc/rtc-ds1302.c | 7 +
drivers/rtc/rtc-ds1390.c | 7 +
drivers/rtc/rtc-m41t80.c | 2 +-
drivers/rtc/rtc-mcp795.c | 7 +
drivers/rtc/rtc-msc313.c | 259 +
drivers/rtc/rtc-omap.c | 1 -
drivers/rtc/rtc-pcf2123.c | 9 +
drivers/rtc/rtc-pcf85063.c | 16 +-
drivers/rtc/rtc-pcf8523.c | 434 +-
drivers/rtc/rtc-rv3028.c | 74 +
drivers/rtc/rtc-rv3032.c | 89 +-
drivers/rtc/rtc-rv8803.c | 4 +-
drivers/rtc/rtc-rx6110.c | 2 +-
drivers/rtc/rtc-rx8025.c | 141 +-
drivers/rtc/rtc-s35390a.c | 7 +-
drivers/rtc/rtc-s3c.c | 106 +-
drivers/rtc/rtc-s5m.c | 1 -
drivers/rtc/rtc-sun6i.c | 13 +-
drivers/rtc/rtc-tps80031.c | 324 -
drivers/s390/block/dasd.c | 9 +-
drivers/s390/block/dasd_3990_erp.c | 6 +-
drivers/s390/block/dasd_eckd.c | 294 +-
drivers/s390/block/dasd_eckd.h | 13 +-
drivers/s390/block/dasd_erp.c | 8 +-
drivers/s390/block/dasd_genhd.c | 11 +-
drivers/s390/block/dasd_int.h | 11 +-
drivers/s390/block/dasd_ioctl.c | 4 +-
drivers/s390/block/dcssblk.c | 15 +-
drivers/s390/block/scm_blk.c | 7 +-
drivers/s390/char/sclp.c | 14 +-
drivers/s390/char/sclp.h | 2 +-
drivers/s390/char/sclp_early.c | 7 +-
drivers/s390/char/sclp_ftp.c | 3 +
drivers/s390/char/sclp_sd.c | 11 +-
drivers/s390/char/sclp_vt220.c | 4 +-
drivers/s390/char/tape_std.c | 3 +-
drivers/s390/cio/css.c | 13 +-
drivers/s390/cio/device.c | 2 +
drivers/s390/cio/device_ops.c | 12 +-
drivers/s390/cio/qdio_setup.c | 34 +-
drivers/s390/cio/vfio_ccw_drv.c | 136 +-
drivers/s390/cio/vfio_ccw_ops.c | 142 +-
drivers/s390/cio/vfio_ccw_private.h | 5 +
drivers/s390/crypto/ap_bus.c | 81 +-
drivers/s390/crypto/ap_debug.h | 2 +-
drivers/s390/crypto/ap_queue.c | 9 +-
drivers/s390/crypto/vfio_ap_drv.c | 16 +-
drivers/s390/crypto/vfio_ap_ops.c | 7 +-
drivers/s390/crypto/vfio_ap_private.h | 43 +-
drivers/s390/crypto/zcrypt_api.c | 45 +-
drivers/s390/crypto/zcrypt_card.c | 8 +-
drivers/s390/crypto/zcrypt_debug.h | 2 +-
drivers/s390/crypto/zcrypt_error.h | 22 +-
drivers/s390/crypto/zcrypt_msgtype50.c | 18 +-
drivers/s390/crypto/zcrypt_msgtype6.c | 40 +-
drivers/s390/crypto/zcrypt_queue.c | 17 +-
drivers/s390/net/ctcm_fsms.c | 60 +-
drivers/s390/net/ctcm_main.c | 38 +-
drivers/s390/net/ctcm_mpc.c | 8 +-
drivers/s390/net/fsm.c | 2 +-
drivers/s390/net/ism_drv.c | 2 +-
drivers/s390/net/lcs.c | 123 +-
drivers/s390/net/netiucv.c | 104 +-
drivers/s390/net/qeth_core.h | 4 +-
drivers/s390/net/qeth_core_main.c | 63 +-
drivers/s390/net/qeth_l2_main.c | 33 +-
drivers/s390/net/qeth_l3_main.c | 15 +-
drivers/s390/scsi/zfcp_ext.h | 4 +-
drivers/s390/scsi/zfcp_fsf.c | 2 +-
drivers/s390/scsi/zfcp_scsi.c | 8 +-
drivers/s390/scsi/zfcp_sysfs.c | 52 +-
drivers/scsi/3w-9xxx.c | 18 +-
drivers/scsi/3w-sas.c | 18 +-
drivers/scsi/3w-xxxx.c | 26 +-
drivers/scsi/53c700.c | 20 +-
drivers/scsi/BusLogic.c | 13 +-
drivers/scsi/NCR5380.c | 12 +-
drivers/scsi/a100u2w.c | 5 +-
drivers/scsi/aacraid/aachba.c | 53 +-
drivers/scsi/aacraid/linit.c | 38 +-
drivers/scsi/advansys.c | 14 +-
drivers/scsi/aha152x.c | 29 +-
drivers/scsi/aha1542.c | 16 +-
drivers/scsi/aha1740.c | 4 +-
drivers/scsi/aic7xxx/aic79xx_osm.c | 6 +-
drivers/scsi/aic7xxx/aic79xx_osm.h | 2 +-
drivers/scsi/aic7xxx/aic7xxx_osm.c | 6 +-
drivers/scsi/aic7xxx/aic7xxx_osm.h | 2 +-
drivers/scsi/aic94xx/aic94xx_sds.c | 6 +-
drivers/scsi/arcmsr/arcmsr.h | 2 +-
drivers/scsi/arcmsr/arcmsr_attr.c | 33 +-
drivers/scsi/arcmsr/arcmsr_hba.c | 22 +-
drivers/scsi/arm/acornscsi.c | 20 +-
drivers/scsi/arm/arxescsi.c | 1 +
drivers/scsi/arm/cumana_2.c | 1 +
drivers/scsi/arm/eesox.c | 1 +
drivers/scsi/arm/fas216.c | 26 +-
drivers/scsi/arm/fas216.h | 10 +
drivers/scsi/arm/powertec.c | 2 +-
drivers/scsi/atp870u.c | 17 +-
drivers/scsi/be2iscsi/be_main.c | 21 +-
drivers/scsi/bfa/bfad_attr.c | 68 +-
drivers/scsi/bfa/bfad_im.c | 16 +-
drivers/scsi/bfa/bfad_im.h | 4 +-
drivers/scsi/bnx2fc/bnx2fc_fcoe.c | 8 +-
drivers/scsi/bnx2fc/bnx2fc_io.c | 8 +-
drivers/scsi/bnx2i/bnx2i.h | 2 +-
drivers/scsi/bnx2i/bnx2i_iscsi.c | 2 +-
drivers/scsi/bnx2i/bnx2i_sysfs.c | 15 +-
drivers/scsi/csiostor/csio_lnode.c | 2 +-
drivers/scsi/csiostor/csio_scsi.c | 32 +-
drivers/scsi/cxlflash/main.c | 46 +-
drivers/scsi/dc395x.c | 12 +-
drivers/scsi/dpt_i2o.c | 13 +-
drivers/scsi/elx/efct/efct_driver.c | 6 +-
drivers/scsi/elx/efct/efct_lio.c | 4 +-
drivers/scsi/elx/efct/efct_scsi.c | 3 +-
drivers/scsi/elx/libefc/efc.h | 2 +-
drivers/scsi/elx/libefc/efc_cmds.c | 7 +-
drivers/scsi/elx/libefc/efc_fabric.c | 2 +-
drivers/scsi/elx/libefc/efclib.h | 1 +
drivers/scsi/elx/libefc_sli/sli4.c | 9 +-
drivers/scsi/esas2r/esas2r_main.c | 8 +-
drivers/scsi/esp_scsi.c | 12 +-
drivers/scsi/fcoe/fcoe.c | 2 +-
drivers/scsi/fdomain.c | 2 +-
drivers/scsi/fnic/fnic.h | 2 +-
drivers/scsi/fnic/fnic_attrs.c | 17 +-
drivers/scsi/fnic/fnic_main.c | 2 +-
drivers/scsi/fnic/fnic_scsi.c | 122 +-
drivers/scsi/hisi_sas/hisi_sas.h | 3 +-
drivers/scsi/hisi_sas/hisi_sas_main.c | 113 +-
drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 23 +-
drivers/scsi/hisi_sas/hisi_sas_v2_hw.c | 35 +-
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 63 +-
drivers/scsi/hosts.c | 21 +-
drivers/scsi/hpsa.c | 56 +-
drivers/scsi/hptiop.c | 20 +-
drivers/scsi/ibmvscsi/ibmvfc.c | 33 +-
drivers/scsi/ibmvscsi/ibmvscsi.c | 31 +-
drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c | 42 +-
drivers/scsi/imm.c | 6 +-
drivers/scsi/initio.c | 7 +-
drivers/scsi/ipr.c | 48 +-
drivers/scsi/ips.c | 31 +-
drivers/scsi/isci/init.c | 8 +-
drivers/scsi/isci/task.h | 4 -
drivers/scsi/libfc/fc_fcp.c | 6 +-
drivers/scsi/libiscsi.c | 7 +-
drivers/scsi/libsas/sas_init.c | 8 +-
drivers/scsi/libsas/sas_scsi_host.c | 27 +-
drivers/scsi/lpfc/lpfc.h | 2 +
drivers/scsi/lpfc/lpfc_attr.c | 314 +-
drivers/scsi/lpfc/lpfc_crtn.h | 7 +-
drivers/scsi/lpfc/lpfc_disc.h | 12 +-
drivers/scsi/lpfc/lpfc_els.c | 61 +-
drivers/scsi/lpfc/lpfc_hbadisc.c | 144 +-
drivers/scsi/lpfc/lpfc_hw4.h | 4 +
drivers/scsi/lpfc/lpfc_init.c | 135 +-
drivers/scsi/lpfc/lpfc_nvme.c | 70 +-
drivers/scsi/lpfc/lpfc_nvmet.c | 44 +-
drivers/scsi/lpfc/lpfc_scsi.c | 131 +-
drivers/scsi/lpfc/lpfc_sli.c | 197 +-
drivers/scsi/lpfc/lpfc_sli4.h | 2 +
drivers/scsi/lpfc/lpfc_version.h | 2 +-
drivers/scsi/mac53c94.c | 6 +-
drivers/scsi/megaraid.c | 24 +-
drivers/scsi/megaraid/megaraid_mbox.c | 28 +-
drivers/scsi/megaraid/megaraid_sas.h | 4 +-
drivers/scsi/megaraid/megaraid_sas_base.c | 40 +-
drivers/scsi/megaraid/megaraid_sas_fusion.c | 56 +-
drivers/scsi/mesh.c | 18 +-
drivers/scsi/mpi3mr/mpi3mr_fw.c | 32 +-
drivers/scsi/mpi3mr/mpi3mr_os.c | 28 +-
drivers/scsi/mpt3sas/mpt3sas_base.h | 4 +-
drivers/scsi/mpt3sas/mpt3sas_ctl.c | 84 +-
drivers/scsi/mpt3sas/mpt3sas_scsih.c | 35 +-
drivers/scsi/mvsas/mv_init.c | 12 +-
drivers/scsi/mvumi.c | 4 +-
drivers/scsi/myrb.c | 60 +-
drivers/scsi/myrs.c | 50 +-
drivers/scsi/ncr53c8xx.c | 16 +-
drivers/scsi/nsp32.c | 7 +-
drivers/scsi/pcmcia/nsp_cs.c | 7 +-
drivers/scsi/pcmcia/sym53c500_cs.c | 14 +-
drivers/scsi/pm8001/pm8001_ctl.c | 70 +-
drivers/scsi/pm8001/pm8001_hwi.c | 12 +-
drivers/scsi/pm8001/pm8001_init.c | 14 +-
drivers/scsi/pm8001/pm8001_sas.c | 15 +
drivers/scsi/pm8001/pm8001_sas.h | 8 +-
drivers/scsi/pm8001/pm80xx_hwi.c | 63 +-
drivers/scsi/pmcraid.c | 27 +-
drivers/scsi/ppa.c | 6 +-
drivers/scsi/ps3rom.c | 8 +-
drivers/scsi/qedf/drv_fcoe_fw_funcs.c | 8 +-
drivers/scsi/qedf/drv_fcoe_fw_funcs.h | 2 +-
drivers/scsi/qedf/qedf.h | 6 +-
drivers/scsi/qedf/qedf_attr.c | 15 +-
drivers/scsi/qedf/qedf_els.c | 2 +-
drivers/scsi/qedf/qedf_io.c | 31 +-
drivers/scsi/qedf/qedf_main.c | 12 +-
drivers/scsi/qedi/qedi_debugfs.c | 4 +-
drivers/scsi/qedi/qedi_fw.c | 40 +-
drivers/scsi/qedi/qedi_fw_api.c | 22 +-
drivers/scsi/qedi/qedi_fw_iscsi.h | 2 +-
drivers/scsi/qedi/qedi_gbl.h | 2 +-
drivers/scsi/qedi/qedi_iscsi.c | 2 +-
drivers/scsi/qedi/qedi_iscsi.h | 2 +-
drivers/scsi/qedi/qedi_main.c | 11 +-
drivers/scsi/qedi/qedi_sysfs.c | 15 +-
drivers/scsi/qla1280.c | 8 +-
drivers/scsi/qla2xxx/qla_attr.c | 156 +-
drivers/scsi/qla2xxx/qla_bsg.c | 50 +-
drivers/scsi/qla2xxx/qla_bsg.h | 7 +
drivers/scsi/qla2xxx/qla_def.h | 8 +-
drivers/scsi/qla2xxx/qla_edif.c | 328 +-
drivers/scsi/qla2xxx/qla_edif.h | 13 +-
drivers/scsi/qla2xxx/qla_edif_bsg.h | 2 +-
drivers/scsi/qla2xxx/qla_gbl.h | 12 +-
drivers/scsi/qla2xxx/qla_gs.c | 3 +-
drivers/scsi/qla2xxx/qla_init.c | 123 +-
drivers/scsi/qla2xxx/qla_iocb.c | 3 +-
drivers/scsi/qla2xxx/qla_isr.c | 4 +
drivers/scsi/qla2xxx/qla_mbx.c | 35 +-
drivers/scsi/qla2xxx/qla_mr.c | 23 -
drivers/scsi/qla2xxx/qla_nvme.c | 35 +-
drivers/scsi/qla2xxx/qla_os.c | 142 +-
drivers/scsi/qla2xxx/qla_target.c | 17 +-
drivers/scsi/qla2xxx/qla_version.h | 4 +-
drivers/scsi/qla2xxx/tcm_qla2xxx.c | 73 +-
drivers/scsi/qla4xxx/ql4_attr.c | 41 +-
drivers/scsi/qla4xxx/ql4_def.h | 4 +-
drivers/scsi/qla4xxx/ql4_glbl.h | 3 +-
drivers/scsi/qla4xxx/ql4_os.c | 6 +-
drivers/scsi/qlogicfas408.c | 7 +-
drivers/scsi/qlogicpti.c | 7 +-
drivers/scsi/scsi.c | 12 +-
drivers/scsi/scsi_bsg.c | 6 +-
drivers/scsi/scsi_debug.c | 33 +-
drivers/scsi/scsi_error.c | 46 +-
drivers/scsi/scsi_ioctl.c | 10 +-
drivers/scsi/scsi_lib.c | 161 +-
drivers/scsi/scsi_pm.c | 105 +-
drivers/scsi/scsi_priv.h | 7 +-
drivers/scsi/scsi_scan.c | 75 +-
drivers/scsi/scsi_sysfs.c | 55 +-
drivers/scsi/scsi_transport_iscsi.c | 2 -
drivers/scsi/scsi_transport_sas.c | 1 +
drivers/scsi/sd.c | 166 +-
drivers/scsi/sd.h | 1 +
drivers/scsi/sd_dif.c | 2 +-
drivers/scsi/sg.c | 11 +-
drivers/scsi/smartpqi/smartpqi.h | 61 +-
drivers/scsi/smartpqi/smartpqi_init.c | 588 +-
drivers/scsi/smartpqi/smartpqi_sas_transport.c | 6 +-
drivers/scsi/smartpqi/smartpqi_sis.c | 60 +-
drivers/scsi/smartpqi/smartpqi_sis.h | 4 +-
drivers/scsi/snic/snic.h | 2 +-
drivers/scsi/snic/snic_attrs.c | 19 +-
drivers/scsi/snic/snic_main.c | 2 +-
drivers/scsi/snic/snic_scsi.c | 33 +-
drivers/scsi/sr.c | 13 +-
drivers/scsi/st.c | 7 +-
drivers/scsi/stex.c | 10 +-
drivers/scsi/storvsc_drv.c | 36 +-
drivers/scsi/sym53c8xx_2/sym_glue.c | 6 +-
drivers/scsi/ufs/Kconfig | 19 +-
drivers/scsi/ufs/Makefile | 1 +
drivers/scsi/ufs/ufs-debugfs.c | 98 +-
drivers/scsi/ufs/ufs-exynos.c | 366 +-
drivers/scsi/ufs/ufs-exynos.h | 27 +-
drivers/scsi/ufs/ufs-hisi.c | 6 +-
drivers/scsi/ufs/ufs-hwmon.c | 210 +
drivers/scsi/ufs/ufs-mediatek.c | 111 +-
drivers/scsi/ufs/ufs-mediatek.h | 27 +
drivers/scsi/ufs/ufs-qcom.c | 21 +-
drivers/scsi/ufs/ufs.h | 7 +
drivers/scsi/ufs/ufshcd-crypto.c | 32 +-
drivers/scsi/ufs/ufshcd-crypto.h | 9 +-
drivers/scsi/ufs/ufshcd-pci.c | 33 +-
drivers/scsi/ufs/ufshcd-pltfrm.c | 4 +-
drivers/scsi/ufs/ufshcd.c | 472 +-
drivers/scsi/ufs/ufshcd.h | 62 +-
drivers/scsi/ufs/ufshci.h | 15 +-
drivers/scsi/ufs/ufshpb.c | 318 +-
drivers/scsi/ufs/ufshpb.h | 3 -
drivers/scsi/virtio_scsi.c | 9 +-
drivers/scsi/vmw_pvscsi.c | 9 +-
drivers/scsi/wd33c93.c | 18 +-
drivers/scsi/wd719x.c | 4 +-
drivers/scsi/xen-scsifront.c | 4 +-
drivers/sh/maple/maple.c | 5 +-
drivers/soc/amlogic/meson-canvas.c | 4 +-
drivers/soc/amlogic/meson-clk-measure.c | 4 +-
drivers/soc/amlogic/meson-gx-socinfo.c | 1 +
drivers/soc/aspeed/Kconfig | 10 +
drivers/soc/aspeed/Makefile | 9 +-
drivers/soc/aspeed/aspeed-uart-routing.c | 603 +
drivers/soc/bcm/bcm63xx/bcm-pmb.c | 4 +-
drivers/soc/bcm/bcm63xx/bcm63xx-power.c | 4 +-
drivers/soc/bcm/brcmstb/biuctrl.c | 2 +
drivers/soc/fsl/Kconfig | 1 +
drivers/soc/fsl/dpaa2-console.c | 1 +
drivers/soc/fsl/dpio/dpio-cmd.h | 3 +
drivers/soc/fsl/dpio/dpio-driver.c | 1 +
drivers/soc/fsl/dpio/dpio-service.c | 121 +-
drivers/soc/fsl/dpio/dpio.c | 1 +
drivers/soc/fsl/dpio/dpio.h | 2 +
drivers/soc/fsl/dpio/qbman-portal.c | 75 +-
drivers/soc/fsl/dpio/qbman-portal.h | 13 +
drivers/soc/fsl/guts.c | 4 +-
drivers/soc/fsl/rcpm.c | 7 +-
drivers/soc/imx/Kconfig | 1 +
drivers/soc/imx/Makefile | 1 +
drivers/soc/imx/gpcv2.c | 134 +-
drivers/soc/imx/imx8m-blk-ctrl.c | 523 +
drivers/soc/mediatek/mt8192-mmsys.h | 76 +
drivers/soc/mediatek/mtk-mmsys.c | 79 +
drivers/soc/mediatek/mtk-mmsys.h | 2 +
drivers/soc/mediatek/mtk-mutex.c | 35 +
drivers/soc/mediatek/mtk-scpsys.c | 15 +-
drivers/soc/qcom/Kconfig | 19 +
drivers/soc/qcom/Makefile | 2 +
drivers/soc/qcom/apr.c | 2 +
drivers/soc/qcom/cpr.c | 4 +-
drivers/soc/qcom/llcc-qcom.c | 18 +-
drivers/soc/qcom/ocmem.c | 4 +-
drivers/soc/qcom/pdr_interface.c | 12 +-
drivers/soc/qcom/qcom-geni-se.c | 4 +-
drivers/soc/qcom/qcom_aoss.c | 165 +-
drivers/soc/qcom/qcom_gsbi.c | 4 +-
drivers/soc/qcom/qcom_stats.c | 277 +
drivers/soc/qcom/rpmh-rsc.c | 4 +-
drivers/soc/qcom/rpmhpd.c | 36 +-
drivers/soc/qcom/rpmpd.c | 24 +
drivers/soc/qcom/smd-rpm.c | 2 +
drivers/soc/qcom/smem.c | 57 +-
drivers/soc/qcom/smp2p.c | 154 +-
drivers/soc/qcom/socinfo.c | 18 +-
drivers/soc/qcom/spm.c | 279 +
drivers/soc/renesas/Kconfig | 7 +-
drivers/soc/renesas/renesas-soc.c | 7 +
drivers/soc/samsung/Kconfig | 5 +-
drivers/soc/samsung/Makefile | 3 +-
drivers/soc/samsung/exynos-chipid.c | 94 +-
drivers/soc/samsung/exynos5422-asv.c | 1 +
drivers/soc/samsung/pm_domains.c | 1 -
drivers/soc/sunxi/sunxi_sram.c | 4 +-
drivers/soc/tegra/Makefile | 1 +
drivers/soc/tegra/ari-tegra186.c | 80 +
drivers/soc/tegra/pmc.c | 28 +-
drivers/soc/ti/wkup_m3_ipc.c | 7 +-
drivers/soundwire/bus.c | 2 +-
drivers/soundwire/cadence_master.c | 36 +-
drivers/soundwire/cadence_master.h | 14 +-
drivers/soundwire/debugfs.c | 2 +-
drivers/soundwire/intel.c | 253 +-
drivers/soundwire/qcom.c | 35 +-
drivers/soundwire/stream.c | 4 +-
drivers/spi/Kconfig | 26 +-
drivers/spi/Makefile | 2 +
drivers/spi/atmel-quadspi.c | 2 +-
drivers/spi/spi-altera-dfl.c | 2 +-
drivers/spi/spi-altera-platform.c | 2 +-
drivers/spi/spi-amd.c | 113 +-
drivers/spi/spi-at91-usart.c | 27 +-
drivers/spi/spi-bcm-qspi.c | 193 +-
drivers/spi/spi-cadence-quadspi.c | 214 +
drivers/spi/spi-cadence-xspi.c | 642 +
drivers/spi/spi-fsi.c | 121 +-
drivers/spi/spi-geni-qcom.c | 254 +-
drivers/spi/spi-ingenic.c | 482 +
drivers/spi/spi-mtk-nor.c | 2 +-
drivers/spi/spi-orion.c | 1 +
drivers/spi/spi-pic32.c | 2 -
drivers/spi/spi-pl022.c | 5 +-
drivers/spi/spi-rpc-if.c | 4 +-
drivers/spi/spi-rspi.c | 1 -
drivers/spi/spi-sh-msiof.c | 1 -
drivers/spi/spi-stm32-qspi.c | 2 +-
drivers/spi/spi-tegra20-slink.c | 6 +-
drivers/spi/spi-tegra210-quad.c | 4 +-
drivers/spi/spi-tle62x0.c | 2 +-
drivers/spi/spi.c | 278 +-
drivers/ssb/pcihost_wrapper.c | 6 +-
drivers/staging/Kconfig | 2 -
drivers/staging/Makefile | 1 -
drivers/staging/axis-fifo/axis-fifo.c | 88 +-
drivers/staging/fbtft/fbtft-core.c | 11 +-
drivers/staging/fbtft/fbtft.h | 8 +-
drivers/staging/fieldbus/anybuss/host.c | 8 +-
drivers/staging/gdm724x/gdm_lte.c | 4 +-
drivers/staging/iio/cdc/ad7746.c | 4 +-
drivers/staging/iio/frequency/ad9832.c | 82 +-
drivers/staging/ks7010/Kconfig | 3 +
drivers/staging/ks7010/ks_hostif.c | 2 +-
drivers/staging/ks7010/ks_wlan_net.c | 4 +-
drivers/staging/media/atomisp/i2c/atomisp-lm3554.c | 37 +-
.../media/atomisp/i2c/ov5693/atomisp-ov5693.c | 2 +
drivers/staging/media/atomisp/pci/atomisp_csi2.c | 70 +-
drivers/staging/media/hantro/hantro_drv.c | 12 +-
drivers/staging/media/hantro/hantro_g1_h264_dec.c | 2 +-
drivers/staging/media/hantro/hantro_g1_regs.h | 2 +
drivers/staging/media/hantro/hantro_g1_vp8_dec.c | 3 +-
drivers/staging/media/hantro/hantro_g2_hevc_dec.c | 52 +
drivers/staging/media/hantro/hantro_hevc.c | 21 +
drivers/staging/media/hantro/hantro_hw.h | 4 +
drivers/staging/media/imx/TODO | 5 -
drivers/staging/media/imx/imx-media-csi.c | 23 +-
drivers/staging/media/imx/imx-media-dev-common.c | 9 +-
drivers/staging/media/imx/imx-media-dev.c | 6 +-
drivers/staging/media/imx/imx-media-of.c | 6 +-
drivers/staging/media/imx/imx6-mipi-csi2.c | 17 +-
drivers/staging/media/imx/imx7-media-csi.c | 24 +-
drivers/staging/media/imx/imx7-mipi-csis.c | 16 +-
drivers/staging/media/imx/imx8mq-mipi-csi2.c | 16 +-
.../staging/media/ipu3/include/uapi/intel-ipu3.h | 7 +-
drivers/staging/media/ipu3/ipu3-css-fw.c | 7 +-
drivers/staging/media/ipu3/ipu3-css-fw.h | 2 +-
drivers/staging/media/ipu3/ipu3-css.c | 19 +-
drivers/staging/media/ipu3/ipu3-css.h | 1 -
drivers/staging/media/ipu3/ipu3-v4l2.c | 13 +-
drivers/staging/media/ipu3/ipu3.h | 12 +
drivers/staging/media/meson/vdec/esparser.h | 6 +-
drivers/staging/media/meson/vdec/vdec.c | 7 +-
drivers/staging/media/meson/vdec/vdec.h | 16 +-
drivers/staging/media/meson/vdec/vdec_helpers.h | 3 +-
drivers/staging/media/rkvdec/rkvdec-h264.c | 5 +-
drivers/staging/media/rkvdec/rkvdec.c | 44 +-
drivers/staging/media/sunxi/cedrus/cedrus.c | 56 +-
drivers/staging/media/sunxi/cedrus/cedrus.h | 2 +
drivers/staging/media/sunxi/cedrus/cedrus_dec.c | 2 +
drivers/staging/media/sunxi/cedrus/cedrus_h264.c | 113 +-
drivers/staging/media/sunxi/cedrus/cedrus_h265.c | 100 +-
drivers/staging/media/sunxi/cedrus/cedrus_hw.c | 2 +-
drivers/staging/media/sunxi/cedrus/cedrus_regs.h | 2 +
drivers/staging/media/sunxi/cedrus/cedrus_video.c | 7 +-
drivers/staging/media/tegra-vde/dmabuf-cache.c | 3 +
drivers/staging/media/tegra-video/vi.c | 17 +-
drivers/staging/most/dim2/Makefile | 2 +-
drivers/staging/most/dim2/dim2.c | 115 +-
drivers/staging/most/dim2/sysfs.c | 49 -
drivers/staging/most/dim2/sysfs.h | 11 -
drivers/staging/most/net/net.c | 2 +-
drivers/staging/mt7621-dma/hsdma-mt7621.c | 6 +-
drivers/staging/mt7621-dts/gbpc1.dts | 3 +-
drivers/staging/mt7621-dts/gbpc2.dts | 1 +
drivers/staging/mt7621-dts/mt7621.dtsi | 74 +-
drivers/staging/mt7621-pci/Kconfig | 8 -
drivers/staging/mt7621-pci/Makefile | 2 -
drivers/staging/mt7621-pci/TODO | 4 -
drivers/staging/mt7621-pci/mediatek,mt7621-pci.txt | 104 -
drivers/staging/mt7621-pci/pci-mt7621.c | 600 -
drivers/staging/octeon/ethernet.c | 4 +-
drivers/staging/pi433/pi433_if.c | 18 +-
drivers/staging/pi433/pi433_if.h | 23 +-
drivers/staging/qlge/qlge_main.c | 30 +-
drivers/staging/qlge/qlge_mpi.c | 2 +-
drivers/staging/r8188eu/Kconfig | 10 -
drivers/staging/r8188eu/Makefile | 155 +-
drivers/staging/r8188eu/core/rtw_ap.c | 607 +-
drivers/staging/r8188eu/core/rtw_br_ext.c | 3 +-
drivers/staging/r8188eu/core/rtw_cmd.c | 620 +-
drivers/staging/r8188eu/core/rtw_debug.c | 904 -
drivers/staging/r8188eu/core/rtw_efuse.c | 582 +-
drivers/staging/r8188eu/core/rtw_ieee80211.c | 339 +-
drivers/staging/r8188eu/core/rtw_io.c | 299 -
drivers/staging/r8188eu/core/rtw_ioctl_set.c | 397 +-
drivers/staging/r8188eu/core/rtw_iol.c | 34 +-
drivers/staging/r8188eu/core/rtw_led.c | 1365 +-
drivers/staging/r8188eu/core/rtw_mlme.c | 126 +-
drivers/staging/r8188eu/core/rtw_mlme_ext.c | 386 +-
drivers/staging/r8188eu/core/rtw_mp.c | 935 -
drivers/staging/r8188eu/core/rtw_mp_ioctl.c | 1170 -
drivers/staging/r8188eu/core/rtw_p2p.c | 43 +-
drivers/staging/r8188eu/core/rtw_pwrctrl.c | 140 +-
drivers/staging/r8188eu/core/rtw_recv.c | 116 +-
drivers/staging/r8188eu/core/rtw_rf.c | 17 -
drivers/staging/r8188eu/core/rtw_security.c | 197 +-
drivers/staging/r8188eu/core/rtw_sreset.c | 62 -
drivers/staging/r8188eu/core/rtw_sta_mgt.c | 34 +-
drivers/staging/r8188eu/core/rtw_wlan_util.c | 157 +-
drivers/staging/r8188eu/core/rtw_xmit.c | 121 +-
drivers/staging/r8188eu/hal/Hal8188ERateAdaptive.c | 22 +-
drivers/staging/r8188eu/hal/HalHWImg8188E_BB.c | 32 +-
drivers/staging/r8188eu/hal/HalHWImg8188E_MAC.c | 10 +-
drivers/staging/r8188eu/hal/HalHWImg8188E_RF.c | 15 +-
drivers/staging/r8188eu/hal/HalPhyRf_8188e.c | 171 +-
drivers/staging/r8188eu/hal/hal_com.c | 26 +-
drivers/staging/r8188eu/hal/hal_intf.c | 391 +-
drivers/staging/r8188eu/hal/odm.c | 1188 +-
drivers/staging/r8188eu/hal/odm_HWConfig.c | 393 +-
drivers/staging/r8188eu/hal/odm_RTL8188E.c | 31 +-
drivers/staging/r8188eu/hal/odm_RegConfig8188E.c | 8 -
drivers/staging/r8188eu/hal/odm_interface.c | 85 -
drivers/staging/r8188eu/hal/rtl8188e_cmd.c | 48 +-
drivers/staging/r8188eu/hal/rtl8188e_dm.c | 93 +-
drivers/staging/r8188eu/hal/rtl8188e_hal_init.c | 310 +-
drivers/staging/r8188eu/hal/rtl8188e_mp.c | 798 -
drivers/staging/r8188eu/hal/rtl8188e_phycfg.c | 215 +-
drivers/staging/r8188eu/hal/rtl8188e_rf6052.c | 226 +-
drivers/staging/r8188eu/hal/rtl8188e_rxdesc.c | 2 +-
drivers/staging/r8188eu/hal/rtl8188e_sreset.c | 27 -
drivers/staging/r8188eu/hal/rtl8188eu_recv.c | 4 +-
drivers/staging/r8188eu/hal/rtl8188eu_xmit.c | 60 +-
drivers/staging/r8188eu/hal/usb_halinit.c | 328 +-
drivers/staging/r8188eu/hal/usb_ops_linux.c | 256 +-
drivers/staging/r8188eu/include/Hal8188EPhyCfg.h | 91 -
.../staging/r8188eu/include/Hal8188ERateAdaptive.h | 2 -
drivers/staging/r8188eu/include/HalHWImg8188E_FW.h | 16 -
drivers/staging/r8188eu/include/HalVerDef.h | 70 -
drivers/staging/r8188eu/include/drv_types.h | 37 +-
drivers/staging/r8188eu/include/hal_intf.h | 312 +-
drivers/staging/r8188eu/include/ieee80211.h | 77 +-
drivers/staging/r8188eu/include/ioctl_cfg80211.h | 2 -
drivers/staging/r8188eu/include/mp_custom_oid.h | 333 -
drivers/staging/r8188eu/include/odm.h | 457 +-
drivers/staging/r8188eu/include/odm_HWConfig.h | 11 +-
drivers/staging/r8188eu/include/odm_RTL8188E.h | 2 -
.../staging/r8188eu/include/odm_RegConfig8188E.h | 3 -
.../staging/r8188eu/include/odm_RegDefine11AC.h | 29 -
drivers/staging/r8188eu/include/odm_RegDefine11N.h | 112 +-
drivers/staging/r8188eu/include/odm_interface.h | 88 -
drivers/staging/r8188eu/include/odm_precomp.h | 22 -
drivers/staging/r8188eu/include/odm_reg.h | 89 -
drivers/staging/r8188eu/include/odm_types.h | 24 -
drivers/staging/r8188eu/include/osdep_intf.h | 5 -
drivers/staging/r8188eu/include/osdep_service.h | 44 +-
drivers/staging/r8188eu/include/recv_osdep.h | 2 -
drivers/staging/r8188eu/include/rtl8188e_cmd.h | 16 -
drivers/staging/r8188eu/include/rtl8188e_dm.h | 13 -
drivers/staging/r8188eu/include/rtl8188e_hal.h | 102 +-
drivers/staging/r8188eu/include/rtl8188e_led.h | 2 -
drivers/staging/r8188eu/include/rtl8188e_recv.h | 2 +-
drivers/staging/r8188eu/include/rtl8188e_rf.h | 1 -
drivers/staging/r8188eu/include/rtl8188e_spec.h | 4 -
drivers/staging/r8188eu/include/rtl8188e_sreset.h | 2 -
drivers/staging/r8188eu/include/rtw_ap.h | 11 -
drivers/staging/r8188eu/include/rtw_br_ext.h | 3 +-
drivers/staging/r8188eu/include/rtw_cmd.h | 27 +-
drivers/staging/r8188eu/include/rtw_debug.h | 156 -
drivers/staging/r8188eu/include/rtw_eeprom.h | 57 +-
drivers/staging/r8188eu/include/rtw_efuse.h | 21 -
drivers/staging/r8188eu/include/rtw_io.h | 87 +-
drivers/staging/r8188eu/include/rtw_ioctl_rtl.h | 63 -
drivers/staging/r8188eu/include/rtw_ioctl_set.h | 8 -
drivers/staging/r8188eu/include/rtw_iol.h | 5 -
drivers/staging/r8188eu/include/rtw_led.h | 20 -
drivers/staging/r8188eu/include/rtw_mlme.h | 11 -
drivers/staging/r8188eu/include/rtw_mlme_ext.h | 14 -
drivers/staging/r8188eu/include/rtw_mp.h | 474 -
drivers/staging/r8188eu/include/rtw_mp_ioctl.h | 242 -
.../staging/r8188eu/include/rtw_mp_phy_regdef.h | 1063 -
drivers/staging/r8188eu/include/rtw_p2p.h | 1 -
drivers/staging/r8188eu/include/rtw_pwrctrl.h | 130 +-
drivers/staging/r8188eu/include/rtw_recv.h | 6 -
drivers/staging/r8188eu/include/rtw_rf.h | 12 -
drivers/staging/r8188eu/include/rtw_security.h | 20 +-
drivers/staging/r8188eu/include/rtw_sreset.h | 34 -
drivers/staging/r8188eu/include/rtw_xmit.h | 6 -
drivers/staging/r8188eu/include/sta_info.h | 7 -
drivers/staging/r8188eu/include/usb_ops.h | 5 -
drivers/staging/r8188eu/include/usb_ops_linux.h | 8 -
drivers/staging/r8188eu/include/usb_osintf.h | 5 +-
drivers/staging/r8188eu/include/wifi.h | 52 -
drivers/staging/r8188eu/include/xmit_osdep.h | 2 -
drivers/staging/r8188eu/os_dep/ioctl_linux.c | 2331 +-
drivers/staging/r8188eu/os_dep/mlme_linux.c | 6 -
drivers/staging/r8188eu/os_dep/os_intfs.c | 399 +-
drivers/staging/r8188eu/os_dep/osdep_service.c | 82 +-
drivers/staging/r8188eu/os_dep/recv_linux.c | 14 -
drivers/staging/r8188eu/os_dep/usb_intf.c | 285 +-
drivers/staging/r8188eu/os_dep/usb_ops_linux.c | 40 +-
drivers/staging/r8188eu/os_dep/xmit_linux.c | 4 -
drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 7 +-
drivers/staging/rtl8192e/rtl8192e/rtl_cam.c | 4 +-
drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +-
drivers/staging/rtl8192e/rtl819x_BAProc.c | 9 +-
drivers/staging/rtl8192u/r8192U.h | 3 +-
drivers/staging/rtl8192u/r8192U_core.c | 36 +-
drivers/staging/rtl8712/ieee80211.h | 4 +-
drivers/staging/rtl8712/os_intfs.c | 9 +-
drivers/staging/rtl8712/osdep_service.h | 1 -
drivers/staging/rtl8712/rtl8712_cmd.c | 2 +-
drivers/staging/rtl8712/rtl871x_cmd.c | 2 +-
drivers/staging/rtl8712/rtl871x_cmd.h | 2 +-
drivers/staging/rtl8712/rtl871x_xmit.h | 10 +-
drivers/staging/rtl8712/usb_intf.c | 6 +-
drivers/staging/rtl8712/usb_ops_linux.c | 2 +-
drivers/staging/rtl8723bs/Kconfig | 1 +
drivers/staging/rtl8723bs/core/rtw_ap.c | 23 +-
drivers/staging/rtl8723bs/core/rtw_cmd.c | 212 +-
drivers/staging/rtl8723bs/core/rtw_ioctl_set.c | 4 +-
drivers/staging/rtl8723bs/core/rtw_mlme.c | 24 +-
drivers/staging/rtl8723bs/core/rtw_mlme_ext.c | 79 +-
drivers/staging/rtl8723bs/core/rtw_recv.c | 22 +-
drivers/staging/rtl8723bs/core/rtw_security.c | 6 +-
drivers/staging/rtl8723bs/core/rtw_sta_mgt.c | 48 +-
drivers/staging/rtl8723bs/core/rtw_xmit.c | 51 +-
drivers/staging/rtl8723bs/hal/odm_DIG.c | 2 +-
drivers/staging/rtl8723bs/hal/rtl8723b_hal_init.c | 12 -
drivers/staging/rtl8723bs/hal/rtl8723bs_recv.c | 6 +-
drivers/staging/rtl8723bs/hal/rtl8723bs_xmit.c | 4 +-
drivers/staging/rtl8723bs/include/ieee80211.h | 6 +-
drivers/staging/rtl8723bs/include/osdep_service.h | 2 +-
.../rtl8723bs/include/osdep_service_linux.h | 2 -
drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c | 26 +-
drivers/staging/rtl8723bs/os_dep/ioctl_linux.c | 34 +-
drivers/staging/rtl8723bs/os_dep/os_intfs.c | 8 +-
drivers/staging/rtl8723bs/os_dep/osdep_service.c | 11 +-
drivers/staging/rts5208/ms.c | 42 +-
drivers/staging/rts5208/rtsx.c | 11 +-
drivers/staging/rts5208/rtsx_card.c | 8 +-
drivers/staging/rts5208/rtsx_chip.c | 16 +-
drivers/staging/rts5208/rtsx_scsi.c | 106 +-
drivers/staging/rts5208/rtsx_transport.c | 6 +-
drivers/staging/rts5208/sd.c | 68 +-
drivers/staging/rts5208/xd.c | 48 +-
drivers/staging/unisys/visorhba/visorhba_main.c | 20 +-
drivers/staging/unisys/visornic/visornic_main.c | 5 +-
.../vc04_services/interface/vchiq_arm/vchiq_arm.c | 298 +-
.../vc04_services/interface/vchiq_arm/vchiq_arm.h | 52 -
.../interface/vchiq_arm/vchiq_connected.c | 20 +-
.../interface/vchiq_arm/vchiq_connected.h | 4 +-
.../vc04_services/interface/vchiq_arm/vchiq_core.c | 771 +-
.../vc04_services/interface/vchiq_arm/vchiq_core.h | 107 +-
.../vc04_services/interface/vchiq_arm/vchiq_dev.c | 182 +-
drivers/staging/vt6655/baseband.c | 74 +-
drivers/staging/vt6655/baseband.h | 2 +-
drivers/staging/vt6655/card.c | 98 +-
drivers/staging/vt6655/channel.c | 12 +-
drivers/staging/vt6655/device.h | 10 +-
drivers/staging/vt6655/device_main.c | 162 +-
drivers/staging/vt6655/dpc.c | 2 +-
drivers/staging/vt6655/key.c | 2 +-
drivers/staging/vt6655/mac.c | 50 +-
drivers/staging/vt6655/mac.h | 6 +-
drivers/staging/vt6655/power.c | 24 +-
drivers/staging/vt6655/rf.c | 140 +-
drivers/staging/vt6655/rf.h | 2 +-
drivers/staging/vt6655/rxtx.c | 64 +-
drivers/staging/wfx/bh.c | 37 +-
drivers/staging/wfx/bh.h | 4 +-
drivers/staging/wfx/bus_sdio.c | 25 +-
drivers/staging/wfx/bus_spi.c | 22 +-
drivers/staging/wfx/data_rx.c | 7 +-
drivers/staging/wfx/data_rx.h | 4 +-
drivers/staging/wfx/data_tx.c | 87 +-
drivers/staging/wfx/data_tx.h | 6 +-
drivers/staging/wfx/debug.c | 56 +-
drivers/staging/wfx/debug.h | 2 +-
drivers/staging/wfx/fwio.c | 26 +-
drivers/staging/wfx/fwio.h | 2 +-
drivers/staging/wfx/hif_api_cmd.h | 14 +-
drivers/staging/wfx/hif_api_general.h | 25 +-
drivers/staging/wfx/hif_api_mib.h | 85 +-
drivers/staging/wfx/hif_rx.c | 23 +-
drivers/staging/wfx/hif_rx.h | 3 +-
drivers/staging/wfx/hif_tx.c | 60 +-
drivers/staging/wfx/hif_tx.h | 6 +-
drivers/staging/wfx/hif_tx_mib.c | 14 +-
drivers/staging/wfx/hif_tx_mib.h | 2 +-
drivers/staging/wfx/hwio.c | 6 +-
drivers/staging/wfx/hwio.h | 20 +-
drivers/staging/wfx/key.c | 30 +-
drivers/staging/wfx/key.h | 4 +-
drivers/staging/wfx/main.c | 37 +-
drivers/staging/wfx/main.h | 3 +-
drivers/staging/wfx/queue.c | 43 +-
drivers/staging/wfx/queue.h | 6 +-
drivers/staging/wfx/scan.c | 51 +-
drivers/staging/wfx/scan.h | 4 +-
drivers/staging/wfx/sta.c | 118 +-
drivers/staging/wfx/sta.h | 8 +-
drivers/staging/wfx/traces.h | 2 +-
drivers/staging/wfx/wfx.h | 14 +-
drivers/staging/wlan-ng/hfa384x.h | 2 +-
drivers/staging/wlan-ng/hfa384x_usb.c | 24 +-
drivers/staging/wlan-ng/p80211conv.c | 2 +-
drivers/staging/wlan-ng/p80211conv.h | 2 +-
drivers/staging/wlan-ng/p80211hdr.h | 2 +-
drivers/staging/wlan-ng/p80211ioctl.h | 2 +-
drivers/staging/wlan-ng/p80211mgmt.h | 2 +-
drivers/staging/wlan-ng/p80211msg.h | 2 +-
drivers/staging/wlan-ng/p80211netdev.c | 4 +-
drivers/staging/wlan-ng/p80211netdev.h | 2 +-
drivers/staging/wlan-ng/p80211req.c | 2 +-
drivers/staging/wlan-ng/p80211req.h | 2 +-
drivers/staging/wlan-ng/p80211types.h | 2 +-
drivers/staging/wlan-ng/p80211wep.c | 2 +-
drivers/staging/wlan-ng/prism2mgmt.c | 2 +-
drivers/staging/wlan-ng/prism2mgmt.h | 2 +-
drivers/staging/wlan-ng/prism2mib.c | 2 +-
drivers/staging/wlan-ng/prism2sta.c | 6 +-
drivers/staging/wlan-ng/prism2usb.c | 3 +-
drivers/target/iscsi/cxgbit/cxgbit_cm.c | 8 +-
drivers/target/iscsi/cxgbit/cxgbit_main.c | 17 +-
drivers/target/iscsi/cxgbit/cxgbit_target.c | 28 +-
drivers/target/iscsi/iscsi_target_configfs.c | 91 +-
drivers/target/loopback/tcm_loop.c | 4 +-
drivers/target/sbp/sbp_target.c | 30 +-
drivers/target/target_core_alua.c | 83 +-
drivers/target/target_core_configfs.c | 1 +
drivers/target/target_core_device.c | 2 +
drivers/target/target_core_fabric_configfs.c | 78 +-
drivers/target/target_core_file.c | 5 +-
drivers/target/target_core_iblock.c | 10 +-
drivers/target/target_core_internal.h | 1 +
drivers/target/target_core_pscsi.c | 7 +-
drivers/target/target_core_tmr.c | 17 +-
drivers/target/target_core_transport.c | 124 +-
drivers/target/target_core_user.c | 7 +-
drivers/target/target_core_xcopy.c | 14 +-
drivers/tee/optee/Makefile | 5 +-
drivers/tee/optee/call.c | 445 +-
drivers/tee/optee/core.c | 719 +-
drivers/tee/optee/ffa_abi.c | 911 +
drivers/tee/optee/optee_ffa.h | 153 +
drivers/tee/optee/optee_msg.h | 27 +-
drivers/tee/optee/optee_private.h | 157 +-
drivers/tee/optee/rpc.c | 237 +-
drivers/tee/optee/shm_pool.c | 101 -
drivers/tee/optee/shm_pool.h | 14 -
drivers/tee/optee/smc_abi.c | 1362 +
drivers/tee/tee_shm.c | 3 +
drivers/thermal/gov_user_space.c | 9 +
.../intel/int340x_thermal/int3400_thermal.c | 9 +-
.../intel/int340x_thermal/int3401_thermal.c | 8 +-
.../int340x_thermal/processor_thermal_device.c | 36 +-
.../int340x_thermal/processor_thermal_device.h | 3 +-
.../int340x_thermal/processor_thermal_device_pci.c | 18 +-
.../processor_thermal_device_pci_legacy.c | 8 +-
.../intel/int340x_thermal/processor_thermal_mbox.c | 23 +-
.../intel/int340x_thermal/processor_thermal_rfim.c | 10 +-
drivers/thermal/intel/intel_powerclamp.c | 8 +-
drivers/thermal/qcom/Kconfig | 2 +-
drivers/thermal/qcom/qcom-spmi-adc-tm5.c | 41 +-
drivers/thermal/qcom/tsens.c | 29 +-
drivers/thermal/rcar_gen3_thermal.c | 113 +-
drivers/thermal/rockchip_thermal.c | 2 +-
drivers/thermal/thermal_core.c | 22 +-
drivers/thermal/thermal_mmio.c | 2 +-
drivers/thermal/thermal_netlink.c | 11 +-
drivers/thermal/thermal_netlink.h | 8 +-
drivers/thermal/thermal_of.c | 9 +-
drivers/thermal/thermal_sysfs.c | 3 +
drivers/thermal/uniphier_thermal.c | 4 +
drivers/thunderbolt/ctl.c | 2 +-
drivers/thunderbolt/xdomain.c | 2 +-
drivers/tty/Kconfig | 12 +
drivers/tty/Makefile | 1 +
drivers/tty/hvc/hvc_console.c | 2 +-
drivers/tty/moxa.c | 302 +-
drivers/tty/moxa.h | 307 -
drivers/tty/mxser.c | 119 +-
drivers/tty/n_gsm.c | 116 +-
drivers/tty/n_hdlc.c | 2 +-
drivers/tty/n_tty.c | 3 +-
drivers/tty/rpmsg_tty.c | 275 +
drivers/tty/serial/8250/8250_dw.c | 28 +-
drivers/tty/serial/8250/8250_dwlib.c | 10 +
drivers/tty/serial/8250/8250_dwlib.h | 1 +
drivers/tty/serial/8250/8250_fsl.c | 8 +-
drivers/tty/serial/8250/8250_lpss.c | 9 +-
drivers/tty/serial/8250/8250_pci.c | 143 +-
drivers/tty/serial/8250/8250_pnp.c | 4 -
drivers/tty/serial/8250/8250_port.c | 31 +-
drivers/tty/serial/8250/Kconfig | 2 +-
drivers/tty/serial/Kconfig | 9 +-
drivers/tty/serial/atmel_serial.c | 4 +-
drivers/tty/serial/cpm_uart/cpm_uart_core.c | 2 +
drivers/tty/serial/imx.c | 16 +-
drivers/tty/serial/max310x.c | 7 +-
drivers/tty/serial/msm_serial.c | 15 +-
drivers/tty/serial/samsung_tty.c | 13 +-
drivers/tty/serial/sc16is7xx.c | 12 +-
drivers/tty/serial/serial_core.c | 16 +-
drivers/tty/serial/sifive.c | 2 +-
drivers/tty/serial/stm32-usart.c | 388 +-
drivers/tty/serial/stm32-usart.h | 13 +-
drivers/tty/serial/sunzilog.c | 2 +-
drivers/tty/serial/uartlite.c | 91 +-
drivers/tty/serial/xilinx_uartps.c | 3 +-
drivers/tty/sysrq.c | 4 +-
drivers/tty/tty_baudrate.c | 2 +-
drivers/tty/tty_buffer.c | 3 +
drivers/tty/tty_ioctl.c | 12 +-
drivers/uio/uio_hv_generic.c | 18 +-
drivers/usb/atm/usbatm.c | 4 +-
drivers/usb/chipidea/core.c | 23 +-
drivers/usb/chipidea/udc.c | 8 +
drivers/usb/class/cdc-acm.c | 1 -
drivers/usb/class/cdc-wdm.c | 2 +-
drivers/usb/core/config.c | 4 +-
drivers/usb/core/devio.c | 144 +-
drivers/usb/core/hcd.c | 35 +-
drivers/usb/dwc2/core.h | 19 +-
drivers/usb/dwc2/debugfs.c | 4 +-
drivers/usb/dwc2/drd.c | 24 +-
drivers/usb/dwc2/gadget.c | 1 +
drivers/usb/dwc2/hcd.c | 12 +-
drivers/usb/dwc2/params.c | 75 +-
drivers/usb/dwc3/Kconfig | 7 +-
drivers/usb/dwc3/core.c | 29 +
drivers/usb/dwc3/core.h | 25 +-
drivers/usb/dwc3/gadget.c | 14 +-
drivers/usb/early/xhci-dbc.c | 10 +-
drivers/usb/gadget/configfs.c | 26 +-
drivers/usb/gadget/epautoconf.c | 2 +-
drivers/usb/gadget/function/f_fs.c | 2 +-
drivers/usb/gadget/function/f_mass_storage.c | 97 +-
drivers/usb/gadget/function/f_phonet.c | 5 +-
drivers/usb/gadget/function/f_tcm.c | 31 +-
drivers/usb/gadget/function/f_uac1.c | 1 +
drivers/usb/gadget/function/f_uac2.c | 24 +-
drivers/usb/gadget/function/f_uvc.c | 8 +-
drivers/usb/gadget/function/u_audio.c | 96 +-
drivers/usb/gadget/function/u_audio.h | 10 +-
drivers/usb/gadget/function/u_ether.c | 4 +-
drivers/usb/gadget/function/u_uac2.h | 1 -
drivers/usb/gadget/function/uvc.h | 6 +-
drivers/usb/gadget/function/uvc_queue.c | 2 +-
drivers/usb/gadget/function/uvc_v4l2.c | 52 +-
drivers/usb/gadget/function/uvc_video.c | 71 +-
drivers/usb/gadget/function/uvc_video.h | 2 -
drivers/usb/gadget/legacy/hid.c | 4 +-
drivers/usb/gadget/legacy/inode.c | 7 +-
drivers/usb/gadget/udc/Kconfig | 1 +
drivers/usb/gadget/udc/amd5536udc.h | 1 -
drivers/usb/gadget/udc/core.c | 10 +-
drivers/usb/gadget/udc/goku_udc.c | 6 +-
drivers/usb/gadget/udc/pxa25x_udc.c | 2 +-
drivers/usb/gadget/udc/snps_udc_plat.c | 5 -
drivers/usb/gadget/udc/udc-xilinx.c | 25 +
drivers/usb/host/Kconfig | 6 +-
drivers/usb/host/ehci-atmel.c | 8 +
drivers/usb/host/ehci-hcd.c | 13 +-
drivers/usb/host/ehci-hub.c | 11 +-
drivers/usb/host/ehci-mem.c | 3 +-
drivers/usb/host/ehci-mv.c | 2 -
drivers/usb/host/ehci-platform.c | 6 +
drivers/usb/host/ehci.h | 1 +
drivers/usb/host/fotg210-hcd.c | 5 +-
drivers/usb/host/max3421-hcd.c | 25 +-
drivers/usb/host/ohci-hcd.c | 3 +-
drivers/usb/host/ohci-hub.c | 3 +
drivers/usb/host/ohci-tmio.c | 2 +-
drivers/usb/host/oxu210hp-hcd.c | 2 +-
drivers/usb/host/xhci-hub.c | 3 +-
drivers/usb/host/xhci-mtk-sch.c | 2 +-
drivers/usb/host/xhci-mtk.c | 2 +-
drivers/usb/host/xhci-pci.c | 18 +-
drivers/usb/host/xhci.c | 1 -
drivers/usb/image/microtek.c | 5 +-
drivers/usb/misc/iowarrior.c | 8 +-
drivers/usb/mtu3/mtu3_plat.c | 2 +-
drivers/usb/musb/Kconfig | 2 +-
drivers/usb/musb/mediatek.c | 1 +
drivers/usb/musb/musb_gadget.c | 4 +-
drivers/usb/musb/sunxi.c | 8 +
drivers/usb/musb/tusb6010.c | 5 +
drivers/usb/phy/phy-tahvo.c | 4 -
drivers/usb/phy/phy-tegra-usb.c | 198 +-
drivers/usb/serial/ch341.c | 85 +-
drivers/usb/serial/cp210x.c | 109 +-
drivers/usb/serial/f81232.c | 96 +-
drivers/usb/serial/ftdi_sio.c | 53 +-
drivers/usb/serial/keyspan.c | 15 +-
drivers/usb/serial/keyspan_pda.c | 67 +-
drivers/usb/serial/kl5kusb105.c | 115 +-
drivers/usb/serial/usb-serial.c | 59 +-
drivers/usb/storage/scsiglue.c | 13 +-
drivers/usb/storage/uas.c | 13 +-
drivers/usb/storage/unusual_devs.h | 10 +
drivers/usb/storage/usb.c | 4 +-
drivers/usb/typec/Kconfig | 4 +-
drivers/usb/typec/altmodes/Kconfig | 1 +
drivers/usb/typec/altmodes/displayport.c | 58 +-
drivers/usb/typec/hd3ss3220.c | 8 +-
drivers/usb/typec/tcpm/tcpci.c | 2 +-
drivers/usb/typec/tipd/core.c | 223 +-
drivers/usb/typec/tipd/tps6598x.h | 12 +
drivers/usb/typec/tipd/trace.h | 23 +
drivers/usb/typec/ucsi/ucsi.c | 337 +-
drivers/usb/typec/ucsi/ucsi.h | 3 +-
drivers/usb/typec/ucsi/ucsi_acpi.c | 2 +-
drivers/usb/usb-skeleton.c | 2 +-
drivers/vdpa/Kconfig | 8 +
drivers/vdpa/Makefile | 1 +
drivers/vdpa/alibaba/Makefile | 3 +
drivers/vdpa/alibaba/eni_vdpa.c | 553 +
drivers/vdpa/ifcvf/ifcvf_main.c | 3 +-
drivers/vdpa/mlx5/core/mlx5_vdpa.h | 10 +-
drivers/vdpa/mlx5/core/mr.c | 8 +-
drivers/vdpa/mlx5/core/resources.c | 13 +-
drivers/vdpa/mlx5/net/mlx5_vnet.c | 204 +-
drivers/vdpa/vdpa.c | 261 +-
drivers/vdpa/vdpa_sim/vdpa_sim_blk.c | 3 +-
drivers/vdpa/vdpa_sim/vdpa_sim_net.c | 38 +-
drivers/vdpa/vdpa_user/vduse_dev.c | 32 +-
drivers/vdpa/virtio_pci/vp_vdpa.c | 12 +
drivers/vfio/fsl-mc/vfio_fsl_mc.c | 62 +-
drivers/vfio/mdev/mdev_driver.c | 45 +-
drivers/vfio/mdev/vfio_mdev.c | 2 +-
drivers/vfio/pci/vfio_pci_core.c | 13 +-
drivers/vfio/pci/vfio_pci_igd.c | 234 +-
drivers/vfio/platform/vfio_platform_common.c | 13 +-
drivers/vfio/vfio.c | 622 +-
drivers/vfio/vfio.h | 72 +
drivers/vfio/vfio_iommu_spapr_tce.c | 6 +-
drivers/vfio/vfio_iommu_type1.c | 256 +-
drivers/vhost/vdpa.c | 3 +-
drivers/video/backlight/backlight.c | 28 +-
drivers/video/backlight/ili9320.c | 3 +-
drivers/video/backlight/ili9320.h | 2 +-
drivers/video/backlight/vgg2432a4.c | 4 +-
drivers/video/fbdev/chipsfb.c | 2 +-
drivers/video/fbdev/core/bitblit.c | 16 -
drivers/video/fbdev/core/fbcon.c | 509 +-
drivers/video/fbdev/core/fbcon.h | 59 -
drivers/video/fbdev/core/fbcon_ccw.c | 28 +-
drivers/video/fbdev/core/fbcon_cw.c | 28 +-
drivers/video/fbdev/core/fbcon_rotate.h | 9 -
drivers/video/fbdev/core/fbcon_ud.c | 37 +-
drivers/video/fbdev/core/fbmem.c | 5 +-
drivers/video/fbdev/core/tileblit.c | 16 -
drivers/video/fbdev/efifb.c | 21 +-
drivers/video/fbdev/skeletonfb.c | 12 +-
drivers/virt/acrn/hsm.c | 49 +
drivers/virt/acrn/hypercall.h | 52 +
drivers/virt/nitro_enclaves/Kconfig | 8 +-
drivers/virt/nitro_enclaves/ne_misc_dev.c | 17 +-
drivers/virt/nitro_enclaves/ne_pci_dev.c | 2 +-
drivers/virt/nitro_enclaves/ne_pci_dev.h | 8 +-
drivers/virtio/Kconfig | 13 +-
drivers/virtio/Makefile | 1 +
drivers/virtio/virtio_dma_buf.c | 1 +
drivers/virtio/virtio_mem.c | 302 +-
drivers/virtio/virtio_pci_common.c | 58 +-
drivers/virtio/virtio_pci_common.h | 16 +-
drivers/virtio/virtio_pci_legacy.c | 106 +-
drivers/virtio/virtio_pci_legacy_dev.c | 220 +
drivers/virtio/virtio_pci_modern.c | 6 +-
drivers/virtio/virtio_ring.c | 92 +-
drivers/virtio/virtio_vdpa.c | 19 +-
drivers/watchdog/Kconfig | 35 +-
drivers/watchdog/Makefile | 3 +-
drivers/watchdog/ar7_wdt.c | 6 +-
drivers/watchdog/bcm63xx_wdt.c | 2 +
drivers/watchdog/da9062_wdt.c | 7 +
drivers/watchdog/da9063_wdt.c | 7 +
drivers/watchdog/db8500_wdt.c | 152 +
drivers/watchdog/f71808e_wdt.c | 615 +-
drivers/watchdog/iTCO_wdt.c | 31 +-
drivers/watchdog/iop_wdt.c | 250 -
drivers/watchdog/ixp4xx_wdt.c | 2 +-
drivers/watchdog/meson_gxbb_wdt.c | 12 +
drivers/watchdog/mlx_wdt.c | 5 +-
drivers/watchdog/mtk_wdt.c | 13 +-
drivers/watchdog/omap_wdt.c | 6 +-
drivers/watchdog/rti_wdt.c | 4 +-
drivers/watchdog/rza_wdt.c | 4 +-
drivers/watchdog/sbsa_gwdt.c | 5 +-
drivers/watchdog/sp5100_tco.c | 9 +
drivers/watchdog/stm32_iwdg.c | 4 +-
drivers/watchdog/sunxi_wdt.c | 20 +-
drivers/watchdog/ux500_wdt.c | 161 -
drivers/xen/Kconfig | 24 +
drivers/xen/Makefile | 2 +-
drivers/xen/balloon.c | 113 +-
drivers/xen/gntdev-dmabuf.c | 3 +
drivers/xen/mem-reservation.c | 27 +-
drivers/xen/pci.c | 76 +
drivers/xen/pvcalls-back.c | 1 -
drivers/xen/swiotlb-xen.c | 4 +-
drivers/xen/xen-acpi-processor.c | 6 +-
drivers/xen/xen-pciback/Makefile | 7 +
drivers/xen/xen-pciback/conf_space_capability.c | 2 +-
drivers/xen/xen-pciback/conf_space_header.c | 8 +-
drivers/xen/xen-pciback/pci_stub.c | 3 +-
drivers/xen/xen-pciback/pciback.h | 5 +
drivers/xen/xen-pciback/xenbus.c | 8 +-
fs/9p/Kconfig | 1 +
fs/9p/acl.c | 11 +-
fs/9p/acl.h | 27 +-
fs/9p/cache.c | 141 +-
fs/9p/cache.h | 97 +-
fs/9p/fid.c | 3 +-
fs/9p/v9fs.c | 22 +-
fs/9p/v9fs.h | 17 +-
fs/9p/v9fs_vfs.h | 11 +-
fs/9p/vfs_addr.c | 266 +-
fs/9p/vfs_dentry.c | 4 +-
fs/9p/vfs_dir.c | 6 +-
fs/9p/vfs_file.c | 32 +-
fs/9p/vfs_inode.c | 29 +-
fs/9p/vfs_inode_dotl.c | 11 +-
fs/9p/vfs_super.c | 14 +-
fs/9p/xattr.c | 10 +-
fs/9p/xattr.h | 29 +-
fs/affs/super.c | 2 +-
fs/afs/dir.c | 229 +-
fs/afs/dir_edit.c | 154 +-
fs/afs/file.c | 82 +-
fs/afs/inode.c | 6 +-
fs/afs/internal.h | 49 +-
fs/afs/write.c | 354 +-
fs/afs/yfsclient.c | 32 +-
fs/aio.c | 9 +-
fs/anon_inodes.c | 29 +
fs/autofs/waitq.c | 2 +-
fs/binfmt_elf.c | 37 +-
fs/binfmt_elf_fdpic.c | 2 +-
fs/btrfs/block-group.c | 242 +-
fs/btrfs/block-group.h | 8 +-
fs/btrfs/btrfs_inode.h | 46 +-
fs/btrfs/check-integrity.c | 205 +-
fs/btrfs/compression.c | 685 +-
fs/btrfs/compression.h | 4 +-
fs/btrfs/ctree.c | 157 +-
fs/btrfs/ctree.h | 84 +-
fs/btrfs/delayed-inode.c | 41 +-
fs/btrfs/delayed-ref.c | 17 +-
fs/btrfs/delayed-ref.h | 51 +-
fs/btrfs/dev-replace.c | 19 +-
fs/btrfs/disk-io.c | 53 +-
fs/btrfs/disk-io.h | 5 +-
fs/btrfs/extent-tree.c | 326 +-
fs/btrfs/extent_io.c | 334 +-
fs/btrfs/extent_io.h | 10 +-
fs/btrfs/extent_map.c | 4 +-
fs/btrfs/file-item.c | 21 +-
fs/btrfs/file.c | 177 +-
fs/btrfs/free-space-cache.c | 24 +-
fs/btrfs/inode.c | 623 +-
fs/btrfs/ioctl.c | 1013 +-
fs/btrfs/locking.h | 7 +-
fs/btrfs/lzo.c | 301 +-
fs/btrfs/raid56.c | 175 +-
fs/btrfs/raid56.h | 22 +-
fs/btrfs/reada.c | 26 +-
fs/btrfs/ref-verify.c | 4 +-
fs/btrfs/reflink.c | 4 +-
fs/btrfs/relocation.c | 81 +-
fs/btrfs/root-tree.c | 6 +-
fs/btrfs/scrub.c | 139 +-
fs/btrfs/send.c | 38 +-
fs/btrfs/send.h | 7 +
fs/btrfs/space-info.c | 28 +-
fs/btrfs/subpage.c | 290 +-
fs/btrfs/subpage.h | 56 +-
fs/btrfs/super.c | 28 +-
fs/btrfs/sysfs.c | 93 +-
fs/btrfs/tests/extent-buffer-tests.c | 2 +-
fs/btrfs/tests/extent-io-tests.c | 12 +-
fs/btrfs/tests/inode-tests.c | 4 +-
fs/btrfs/transaction.c | 11 +-
fs/btrfs/tree-log.c | 745 +-
fs/btrfs/tree-log.h | 18 +-
fs/btrfs/volumes.c | 602 +-
fs/btrfs/volumes.h | 119 +-
fs/btrfs/xattr.c | 2 +-
fs/btrfs/zlib.c | 36 +-
fs/btrfs/zoned.c | 531 +-
fs/btrfs/zoned.h | 39 +-
fs/btrfs/zstd.c | 95 +-
fs/buffer.c | 4 +-
fs/cachefiles/io.c | 12 +-
fs/cachefiles/rdwr.c | 16 +-
fs/ceph/addr.c | 109 +-
fs/ceph/cache.c | 23 +-
fs/ceph/caps.c | 163 +-
fs/ceph/debugfs.c | 167 +-
fs/ceph/export.c | 12 +-
fs/ceph/file.c | 106 +-
fs/ceph/inode.c | 56 +-
fs/ceph/locks.c | 9 +-
fs/ceph/mds_client.c | 154 +-
fs/ceph/mdsmap.c | 4 -
fs/ceph/metric.c | 128 +-
fs/ceph/metric.h | 88 +-
fs/ceph/super.c | 34 +-
fs/ceph/super.h | 21 +-
fs/ceph/xattr.c | 3 +-
fs/cifs/cifs_debug.c | 7 +-
fs/cifs/cifs_dfs_ref.c | 59 +-
fs/cifs/cifs_fs_sb.h | 5 -
fs/cifs/cifsfs.c | 1 -
fs/cifs/cifsglob.h | 50 +-
fs/cifs/cifsproto.h | 10 +-
fs/cifs/connect.c | 1494 +-
fs/cifs/dfs_cache.c | 46 +-
fs/cifs/file.c | 39 +-
fs/cifs/fs_context.c | 52 +-
fs/cifs/fs_context.h | 3 +
fs/cifs/fscache.c | 8 +
fs/cifs/misc.c | 66 +-
fs/cifs/ntlmssp.h | 4 +-
fs/cifs/sess.c | 240 +-
fs/cifs/smb2inode.c | 22 +-
fs/cifs/smb2maperror.c | 16 +-
fs/cifs/smb2misc.c | 47 +-
fs/cifs/smb2ops.c | 83 +-
fs/cifs/smb2pdu.c | 239 +-
fs/cifs/smb2pdu.h | 919 +-
fs/cifs/smb2proto.h | 2 +-
fs/cifs/smb2transport.c | 36 +-
fs/cifs/trace.h | 71 +
fs/cifs/transport.c | 3 +
fs/coda/cnode.c | 13 +-
fs/coda/coda_linux.c | 39 +-
fs/coda/coda_linux.h | 6 +-
fs/coda/dir.c | 20 +-
fs/coda/file.c | 12 +-
fs/coda/psdev.c | 14 +-
fs/coda/upcall.c | 3 +-
fs/coredump.c | 88 +-
fs/cramfs/inode.c | 2 +-
fs/crypto/bio.c | 32 +-
fs/crypto/fname.c | 3 +-
fs/crypto/fscrypt_private.h | 16 +-
fs/crypto/hkdf.c | 11 +-
fs/crypto/keysetup.c | 62 +-
fs/d_path.c | 8 +-
fs/direct-io.c | 16 +-
fs/erofs/Kconfig | 40 +-
fs/erofs/Makefile | 1 +
fs/erofs/compress.h | 28 +-
fs/erofs/data.c | 75 +-
fs/erofs/decompressor.c | 139 +-
fs/erofs/decompressor_lzma.c | 290 +
fs/erofs/erofs_fs.h | 73 +-
fs/erofs/inode.c | 2 +-
fs/erofs/internal.h | 105 +-
fs/erofs/pcpubuf.c | 6 +-
fs/erofs/super.c | 231 +-
fs/erofs/utils.c | 19 +-
fs/erofs/xattr.c | 4 +-
fs/erofs/zdata.c | 208 +-
fs/erofs/zdata.h | 8 -
fs/erofs/zmap.c | 65 +-
fs/erofs/zpvec.h | 13 +-
fs/exec.c | 16 +-
fs/exfat/inode.c | 2 +-
fs/ext4/ext4.h | 3 +-
fs/ext4/extents.c | 175 +-
fs/ext4/fast_commit.c | 11 +-
fs/ext4/file.c | 7 +-
fs/ext4/inode.c | 331 +-
fs/ext4/mballoc.c | 5 +-
fs/ext4/namei.c | 2 +-
fs/ext4/page-io.c | 8 +-
fs/ext4/super.c | 26 +-
fs/f2fs/checkpoint.c | 8 +-
fs/f2fs/compress.c | 77 +-
fs/f2fs/data.c | 95 +-
fs/f2fs/f2fs.h | 54 +-
fs/f2fs/file.c | 8 +-
fs/f2fs/gc.c | 5 +-
fs/f2fs/inline.c | 2 +-
fs/f2fs/inode.c | 4 +-
fs/f2fs/namei.c | 32 +-
fs/f2fs/node.c | 1 +
fs/f2fs/node.h | 5 -
fs/f2fs/recovery.c | 14 +-
fs/f2fs/segment.c | 83 +-
fs/f2fs/segment.h | 1 +
fs/f2fs/super.c | 42 +-
fs/f2fs/sysfs.c | 24 +-
fs/f2fs/verity.c | 2 +-
fs/f2fs/xattr.c | 2 +-
fs/fat/inode.c | 11 +-
fs/fs-writeback.c | 11 +-
fs/fuse/dax.c | 5 +-
fs/fuse/dev.c | 24 +-
fs/fuse/dir.c | 128 +-
fs/fuse/file.c | 110 +-
fs/fuse/fuse_i.h | 20 +-
fs/fuse/inode.c | 132 +-
fs/fuse/ioctl.c | 4 +-
fs/fuse/readdir.c | 6 +-
fs/fuse/virtio_fs.c | 14 +-
fs/fuse/xattr.c | 10 +-
fs/gfs2/bmap.c | 60 +-
fs/gfs2/file.c | 269 +-
fs/gfs2/glock.c | 471 +-
fs/gfs2/glock.h | 34 +-
fs/gfs2/glops.c | 29 +-
fs/gfs2/incore.h | 10 +-
fs/gfs2/inode.c | 12 +-
fs/gfs2/rgrp.c | 70 +-
fs/gfs2/rgrp.h | 2 +-
fs/gfs2/super.c | 4 +-
fs/gfs2/trace_gfs2.h | 9 +-
fs/gfs2/util.c | 2 +
fs/hfs/inode.c | 6 +-
fs/hfs/mdb.c | 2 +-
fs/hfsplus/inode.c | 12 +-
fs/hfsplus/wrapper.c | 2 +-
fs/hpfs/hpfs.h | 8 +-
fs/hugetlbfs/inode.c | 23 +-
fs/inode.c | 53 +-
fs/internal.h | 12 -
fs/io-wq.c | 102 +-
fs/io-wq.h | 59 +-
fs/io_uring.c | 1864 +-
fs/iomap/buffered-io.c | 2 +-
fs/iomap/direct-io.c | 88 +-
fs/isofs/inode.c | 2 +
fs/jfs/jfs_metapage.c | 1 +
fs/jfs/jfs_mount.c | 51 +-
fs/jfs/resize.c | 5 +-
fs/jfs/super.c | 5 +-
fs/kernel_read_file.c | 2 +-
fs/kernfs/symlink.c | 3 +-
fs/ksmbd/Kconfig | 2 +-
fs/ksmbd/auth.c | 27 +-
fs/ksmbd/connection.c | 13 +-
fs/ksmbd/ksmbd_netlink.h | 2 +
fs/ksmbd/ksmbd_work.c | 1 -
fs/ksmbd/ksmbd_work.h | 4 +-
fs/ksmbd/mgmt/user_config.c | 2 +-
fs/ksmbd/mgmt/user_config.h | 1 +
fs/ksmbd/oplock.c | 48 +-
fs/ksmbd/oplock.h | 2 -
fs/ksmbd/server.c | 2 +-
fs/ksmbd/smb2misc.c | 71 +-
fs/ksmbd/smb2ops.c | 12 +-
fs/ksmbd/smb2pdu.c | 929 +-
fs/ksmbd/smb2pdu.h | 698 +-
fs/ksmbd/smb_common.c | 13 +-
fs/ksmbd/smb_common.h | 55 +-
fs/ksmbd/transport_ipc.c | 3 +-
fs/ksmbd/transport_ipc.h | 2 +-
fs/ksmbd/transport_rdma.c | 24 +-
fs/ksmbd/vfs.c | 10 +-
fs/ksmbd/vfs.h | 41 +-
fs/libfs.c | 29 +-
fs/lockd/clntproc.c | 3 -
fs/lockd/svc.c | 6 +-
fs/lockd/svc4proc.c | 2 -
fs/lockd/svcproc.c | 2 -
fs/lockd/xdr.c | 152 +-
fs/lockd/xdr4.c | 153 +-
fs/locks.c | 161 +-
fs/namei.c | 4 +-
fs/netfs/read_helper.c | 165 +-
fs/nfs/blocklayout/dev.c | 4 +-
fs/nfs/callback_proc.c | 3 +
fs/nfs/callback_xdr.c | 4 +-
fs/nfs/client.c | 39 +-
fs/nfs/delegation.c | 10 +-
fs/nfs/dir.c | 119 +-
fs/nfs/direct.c | 4 +-
fs/nfs/export.c | 44 +-
fs/nfs/file.c | 9 -
fs/nfs/filelayout/filelayout.c | 2 -
fs/nfs/flexfilelayout/flexfilelayout.c | 2 -
fs/nfs/flexfilelayout/flexfilelayoutdev.c | 4 +-
fs/nfs/getroot.c | 21 +-
fs/nfs/inode.c | 130 +-
fs/nfs/internal.h | 12 +-
fs/nfs/namespace.c | 3 +-
fs/nfs/nfs3proc.c | 10 +-
fs/nfs/nfs3xdr.c | 2 +-
fs/nfs/nfs42proc.c | 9 +
fs/nfs/nfs4_fs.h | 4 +-
fs/nfs/nfs4client.c | 65 +-
fs/nfs/nfs4file.c | 14 +-
fs/nfs/nfs4idmap.c | 2 +-
fs/nfs/nfs4proc.c | 292 +-
fs/nfs/nfs4session.c | 12 +-
fs/nfs/nfs4session.h | 1 +
fs/nfs/nfs4state.c | 5 +-
fs/nfs/nfs4trace.h | 920 +-
fs/nfs/nfs4xdr.c | 81 +-
fs/nfs/nfstrace.h | 467 +-
fs/nfs/pagelist.c | 13 +-
fs/nfs/pnfs.h | 6 +-
fs/nfs/pnfs_nfs.c | 6 +-
fs/nfs/proc.c | 16 +-
fs/nfs/read.c | 11 +-
fs/nfs/super.c | 7 +-
fs/nfs/write.c | 73 +-
fs/nfsd/Kconfig | 1 -
fs/nfsd/blocklayout.c | 158 +-
fs/nfsd/filecache.c | 3 +
fs/nfsd/flexfilelayout.c | 2 +-
fs/nfsd/lockd.c | 2 +-
fs/nfsd/nfs2acl.c | 44 +-
fs/nfsd/nfs3acl.c | 48 +-
fs/nfsd/nfs3proc.c | 3 +-
fs/nfsd/nfs3xdr.c | 387 +-
fs/nfsd/nfs4callback.c | 2 +-
fs/nfsd/nfs4layouts.c | 5 +-
fs/nfsd/nfs4proc.c | 11 +-
fs/nfsd/nfs4state.c | 6 +-
fs/nfsd/nfs4xdr.c | 52 +-
fs/nfsd/nfscache.c | 17 +-
fs/nfsd/nfsctl.c | 6 +-
fs/nfsd/nfsd.h | 6 +-
fs/nfsd/nfsfh.c | 173 +-
fs/nfsd/nfsfh.h | 55 +-
fs/nfsd/nfsproc.c | 3 +-
fs/nfsd/nfssvc.c | 28 +-
fs/nfsd/nfsxdr.c | 187 +-
fs/nfsd/trace.h | 1 +
fs/nfsd/vfs.c | 7 +-
fs/nfsd/xdr.h | 37 +-
fs/nfsd/xdr3.h | 63 +-
fs/nfsd/xdr4.h | 7 +-
fs/nilfs2/alloc.c | 2 +-
fs/nilfs2/alloc.h | 2 +-
fs/nilfs2/bmap.c | 2 +-
fs/nilfs2/bmap.h | 2 +-
fs/nilfs2/btnode.c | 2 +-
fs/nilfs2/btnode.h | 2 +-
fs/nilfs2/btree.c | 2 +-
fs/nilfs2/btree.h | 2 +-
fs/nilfs2/cpfile.c | 2 +-
fs/nilfs2/cpfile.h | 2 +-
fs/nilfs2/dat.c | 2 +-
fs/nilfs2/dat.h | 2 +-
fs/nilfs2/dir.c | 2 +-
fs/nilfs2/direct.c | 2 +-
fs/nilfs2/direct.h | 2 +-
fs/nilfs2/file.c | 2 +-
fs/nilfs2/gcinode.c | 2 +-
fs/nilfs2/ifile.c | 2 +-
fs/nilfs2/ifile.h | 2 +-
fs/nilfs2/inode.c | 2 +-
fs/nilfs2/ioctl.c | 4 +-
fs/nilfs2/mdt.c | 2 +-
fs/nilfs2/mdt.h | 2 +-
fs/nilfs2/namei.c | 2 +-
fs/nilfs2/nilfs.h | 2 +-
fs/nilfs2/page.c | 2 +-
fs/nilfs2/page.h | 2 +-
fs/nilfs2/recovery.c | 2 +-
fs/nilfs2/segbuf.c | 2 +-
fs/nilfs2/segbuf.h | 2 +-
fs/nilfs2/segment.c | 2 +-
fs/nilfs2/segment.h | 2 +-
fs/nilfs2/sufile.c | 2 +-
fs/nilfs2/sufile.h | 2 +-
fs/nilfs2/super.c | 4 +-
fs/nilfs2/sysfs.c | 78 +-
fs/nilfs2/sysfs.h | 2 +-
fs/nilfs2/the_nilfs.c | 4 +-
fs/nilfs2/the_nilfs.h | 2 +-
fs/notify/fanotify/fanotify.c | 117 +-
fs/notify/fanotify/fanotify.h | 54 +-
fs/notify/fanotify/fanotify_user.c | 157 +-
fs/notify/fsnotify.c | 10 +-
fs/notify/group.c | 2 +-
fs/notify/inotify/inotify_fsnotify.c | 5 +-
fs/notify/inotify/inotify_user.c | 6 +-
fs/notify/notification.c | 14 +-
fs/ntfs/file.c | 3 +-
fs/ntfs/super.c | 8 +-
fs/ntfs3/file.c | 3 +-
fs/ntfs3/inode.c | 2 +-
fs/ntfs3/super.c | 2 +-
fs/ocfs2/alloc.c | 67 +-
fs/ocfs2/dlm/dlmrecovery.c | 1 -
fs/ocfs2/file.c | 8 +-
fs/ocfs2/inode.c | 4 +-
fs/ocfs2/journal.c | 31 +-
fs/ocfs2/journal.h | 3 +-
fs/ocfs2/suballoc.c | 22 +-
fs/ocfs2/super.c | 54 +-
fs/open.c | 18 +-
fs/orangefs/dcache.c | 4 +-
fs/orangefs/inode.c | 2 +-
fs/orangefs/super.c | 5 +-
fs/overlayfs/copy_up.c | 23 +-
fs/overlayfs/dir.c | 3 +-
fs/overlayfs/file.c | 20 +-
fs/overlayfs/inode.c | 5 +-
fs/overlayfs/overlayfs.h | 1 +
fs/overlayfs/super.c | 12 +-
fs/posix_acl.c | 3 +-
fs/proc/array.c | 13 +-
fs/proc/base.c | 40 +-
fs/proc/stat.c | 4 +-
fs/proc/task_mmu.c | 28 +-
fs/proc/uptime.c | 14 +-
fs/proc/vmcore.c | 109 +-
fs/pstore/blk.c | 8 +-
fs/pstore/platform.c | 2 +-
fs/quota/quota.c | 1 +
fs/quota/quota_tree.c | 15 +
fs/ramfs/inode.c | 12 +-
fs/read_write.c | 4 -
fs/reiserfs/super.c | 14 +-
fs/seq_file.c | 16 -
fs/smbfs_common/smb2pdu.h | 989 +
fs/squashfs/super.c | 5 +-
fs/squashfs/zstd_wrapper.c | 16 +-
fs/super.c | 3 +
fs/sync.c | 62 +-
fs/sysfs/dir.c | 3 +-
fs/sysfs/file.c | 140 +-
fs/sysfs/group.c | 15 +-
fs/sysfs/sysfs.h | 8 +-
fs/sysv/super.c | 6 +-
fs/tracefs/inode.c | 3 +-
fs/ubifs/crypto.c | 1 -
fs/udf/lowlevel.c | 5 +-
fs/udf/super.c | 9 +-
fs/userfaultfd.c | 12 +-
fs/xfs/kmem.h | 4 -
fs/xfs/libxfs/xfs_ag.c | 4 +-
fs/xfs/libxfs/xfs_ag.h | 44 +-
fs/xfs/libxfs/xfs_ag_resv.c | 3 +-
fs/xfs/libxfs/xfs_alloc.c | 120 +-
fs/xfs/libxfs/xfs_alloc.h | 38 +-
fs/xfs/libxfs/xfs_alloc_btree.c | 63 +-
fs/xfs/libxfs/xfs_alloc_btree.h | 5 +
fs/xfs/libxfs/xfs_attr_leaf.c | 2 +-
fs/xfs/libxfs/xfs_bmap.c | 101 +-
fs/xfs/libxfs/xfs_bmap.h | 35 +-
fs/xfs/libxfs/xfs_bmap_btree.c | 62 +-
fs/xfs/libxfs/xfs_bmap_btree.h | 5 +
fs/xfs/libxfs/xfs_btree.c | 337 +-
fs/xfs/libxfs/xfs_btree.h | 99 +-
fs/xfs/libxfs/xfs_btree_staging.c | 8 +-
fs/xfs/libxfs/xfs_da_btree.c | 11 +-
fs/xfs/libxfs/xfs_da_btree.h | 3 +-
fs/xfs/libxfs/xfs_defer.c | 241 +-
fs/xfs/libxfs/xfs_defer.h | 41 +-
fs/xfs/libxfs/xfs_dquot_buf.c | 4 +-
fs/xfs/libxfs/xfs_format.h | 12 +-
fs/xfs/libxfs/xfs_fs.h | 2 +
fs/xfs/libxfs/xfs_ialloc.c | 5 +-
fs/xfs/libxfs/xfs_ialloc_btree.c | 90 +-
fs/xfs/libxfs/xfs_ialloc_btree.h | 5 +
fs/xfs/libxfs/xfs_inode_buf.c | 6 +-
fs/xfs/libxfs/xfs_inode_fork.c | 24 +-
fs/xfs/libxfs/xfs_inode_fork.h | 2 +-
fs/xfs/libxfs/xfs_refcount.c | 46 +-
fs/xfs/libxfs/xfs_refcount.h | 7 +-
fs/xfs/libxfs/xfs_refcount_btree.c | 65 +-
fs/xfs/libxfs/xfs_refcount_btree.h | 5 +
fs/xfs/libxfs/xfs_rmap.c | 21 +-
fs/xfs/libxfs/xfs_rmap.h | 7 +-
fs/xfs/libxfs/xfs_rmap_btree.c | 116 +-
fs/xfs/libxfs/xfs_rmap_btree.h | 5 +
fs/xfs/libxfs/xfs_sb.c | 4 +-
fs/xfs/libxfs/xfs_trans_resv.c | 18 +-
fs/xfs/libxfs/xfs_trans_space.h | 9 +-
fs/xfs/scrub/agheader.c | 13 +-
fs/xfs/scrub/agheader_repair.c | 8 +-
fs/xfs/scrub/bitmap.c | 22 +-
fs/xfs/scrub/bmap.c | 2 +-
fs/xfs/scrub/btree.c | 121 +-
fs/xfs/scrub/btree.h | 17 +-
fs/xfs/scrub/dabtree.c | 62 +-
fs/xfs/scrub/repair.h | 3 +
fs/xfs/scrub/scrub.c | 64 +-
fs/xfs/scrub/trace.c | 11 +-
fs/xfs/scrub/trace.h | 10 +-
fs/xfs/xfs_aops.c | 15 +-
fs/xfs/xfs_attr_inactive.c | 2 +-
fs/xfs/xfs_bmap_item.c | 18 +-
fs/xfs/xfs_bmap_item.h | 6 +-
fs/xfs/xfs_buf.c | 14 +-
fs/xfs/xfs_buf_item.c | 8 +-
fs/xfs/xfs_buf_item.h | 2 +-
fs/xfs/xfs_buf_item_recover.c | 2 +-
fs/xfs/xfs_dquot.c | 28 +-
fs/xfs/xfs_extfree_item.c | 33 +-
fs/xfs/xfs_extfree_item.h | 6 +-
fs/xfs/xfs_file.c | 8 +-
fs/xfs/xfs_icache.c | 10 +-
fs/xfs/xfs_icreate_item.c | 6 +-
fs/xfs/xfs_icreate_item.h | 2 +-
fs/xfs/xfs_inode.c | 12 +-
fs/xfs/xfs_inode.h | 2 +-
fs/xfs/xfs_inode_item.c | 6 +-
fs/xfs/xfs_inode_item.h | 2 +-
fs/xfs/xfs_ioctl.c | 6 +-
fs/xfs/xfs_log.c | 6 +-
fs/xfs/xfs_log_priv.h | 2 +-
fs/xfs/xfs_log_recover.c | 12 +-
fs/xfs/xfs_mount.c | 14 +
fs/xfs/xfs_mount.h | 5 +-
fs/xfs/xfs_mru_cache.c | 2 +-
fs/xfs/xfs_qm.c | 2 +-
fs/xfs/xfs_qm.h | 2 +-
fs/xfs/xfs_refcount_item.c | 18 +-
fs/xfs/xfs_refcount_item.h | 6 +-
fs/xfs/xfs_reflink.c | 2 +-
fs/xfs/xfs_rmap_item.c | 18 +-
fs/xfs/xfs_rmap_item.h | 6 +-
fs/xfs/xfs_super.c | 233 +-
fs/xfs/xfs_sysfs.c | 24 +-
fs/xfs/xfs_trace.h | 2 +-
fs/xfs/xfs_trans.c | 16 +-
fs/xfs/xfs_trans.h | 8 +-
fs/xfs/xfs_trans_dquot.c | 4 +-
fs/zonefs/super.c | 6 +-
include/acpi/acpi_bus.h | 2 +-
include/acpi/acpixf.h | 2 +-
include/acpi/actbl2.h | 251 +-
include/acpi/actbl3.h | 9 +-
include/acpi/actypes.h | 1 +
include/acpi/apei.h | 3 -
include/acpi/pcc.h | 21 +-
include/acpi/platform/acgcc.h | 18 +-
include/asm-generic/cacheflush.h | 6 +
include/asm-generic/hyperv-tlfs.h | 1 +
include/asm-generic/mshyperv.h | 20 +-
include/asm-generic/sections.h | 89 +-
include/asm-generic/syscall.h | 16 -
include/asm-generic/vmlinux.lds.h | 33 +-
include/clocksource/arm_arch_timer.h | 2 +-
include/clocksource/timer-riscv.h | 16 +
include/crypto/engine.h | 5 +
include/crypto/internal/ecc.h | 281 +
include/drm/amd_asic_type.h | 1 +
include/drm/drm_bridge.h | 23 +-
include/drm/drm_connector.h | 37 +
include/drm/drm_displayid.h | 101 +-
include/drm/drm_dp_helper.h | 26 +
include/drm/drm_dp_mst_helper.h | 5 +-
include/drm/drm_edid.h | 47 +
include/drm/drm_format_helper.h | 4 +
include/drm/drm_ioctl.h | 1 -
include/drm/drm_mipi_dsi.h | 4 +
include/drm/drm_mode_config.h | 13 +-
include/drm/drm_modeset_lock.h | 8 +
include/drm/drm_plane.h | 2 +-
include/drm/drm_print.h | 30 +
include/drm/drm_probe_helper.h | 1 +
include/drm/gpu_scheduler.h | 188 +-
include/drm/gud.h | 6 +-
include/drm/i915_component.h | 1 +
include/drm/i915_pciids.h | 8 +-
include/drm/i915_pxp_tee_interface.h | 42 +
include/drm/ttm/ttm_bo_api.h | 21 +-
include/drm/ttm/ttm_bo_driver.h | 2 +-
include/drm/ttm/ttm_caching.h | 17 +
include/drm/ttm/ttm_device.h | 79 +-
include/drm/ttm/ttm_placement.h | 1 +
include/drm/ttm/ttm_pool.h | 5 +-
include/drm/ttm/ttm_range_manager.h | 18 +-
include/drm/ttm/ttm_resource.h | 9 +-
include/drm/ttm/ttm_tt.h | 98 +-
include/dt-bindings/clock/am4.h | 1 +
include/dt-bindings/clock/exynos850.h | 141 +
include/dt-bindings/clock/imx8ulp-clock.h | 258 +
.../clock/{jz4725b-cgu.h => ingenic,jz4725b-cgu.h} | 0
.../clock/{jz4740-cgu.h => ingenic,jz4740-cgu.h} | 0
.../clock/{jz4760-cgu.h => ingenic,jz4760-cgu.h} | 0
.../clock/{jz4770-cgu.h => ingenic,jz4770-cgu.h} | 0
.../clock/{jz4780-cgu.h => ingenic,jz4780-cgu.h} | 0
.../clock/{x1000-cgu.h => ingenic,x1000-cgu.h} | 0
.../clock/{x1830-cgu.h => ingenic,x1830-cgu.h} | 0
include/dt-bindings/clock/meson8b-clkc.h | 10 +
include/dt-bindings/clock/mt8195-clk.h | 864 +
include/dt-bindings/clock/qcom,camcc-sc7280.h | 127 +
include/dt-bindings/clock/qcom,gcc-msm8994.h | 13 +
include/dt-bindings/clock/qcom,gcc-qcm2290.h | 188 +
include/dt-bindings/clock/qcom,lpass-sc7280.h | 16 +
include/dt-bindings/clock/qcom,rpmcc.h | 6 +
include/dt-bindings/leds/common.h | 7 +
include/dt-bindings/phy/phy-cadence.h | 2 +
include/dt-bindings/pinctrl/mt65xx.h | 9 +
include/dt-bindings/power/imx8mm-power.h | 9 +
include/dt-bindings/power/qcom-aoss-qmp.h | 14 -
include/dt-bindings/power/qcom-rpmpd.h | 17 +
.../dt-bindings/reset-controller/mt8183-resets.h | 98 -
include/dt-bindings/reset/imx8ulp-pcc-reset.h | 59 +
.../{reset-controller => reset}/mt2712-resets.h | 0
include/dt-bindings/reset/mt8173-resets.h | 2 +
include/dt-bindings/reset/mt8183-resets.h | 101 +
.../{reset-controller => reset}/mt8192-resets.h | 0
.../reset/stericsson,db8500-prcc-reset.h | 51 +
include/dt-bindings/sound/rt5640.h | 1 +
include/dt-bindings/sound/tlv320adc3xxx.h | 28 +
include/kunit/test.h | 13 +-
include/linux/acpi.h | 12 +-
include/linux/amba/bus.h | 18 -
include/linux/anon_inodes.h | 4 +
include/linux/apple-mailbox.h | 19 +
include/linux/arch_topology.h | 5 +
include/linux/arm_ffa.h | 2 +
include/linux/ata.h | 1 +
include/linux/audit.h | 37 +
include/linux/audit_arch.h | 24 +
include/linux/avf/virtchnl.h | 41 +-
include/linux/backing-dev-defs.h | 3 +
include/linux/backing-dev.h | 26 +-
include/linux/bio.h | 147 +-
include/linux/bitmap.h | 2 +
include/linux/blk-crypto-profile.h | 166 +
include/linux/blk-integrity.h | 183 +
include/linux/blk-mq.h | 584 +-
include/linux/blk_types.h | 55 +-
include/linux/blkdev.h | 949 +-
include/linux/blktrace_api.h | 2 +-
include/linux/bootconfig.h | 31 +-
include/linux/bottom_half.h | 1 +
include/linux/bpf-cgroup.h | 21 +-
include/linux/bpf.h | 79 +-
include/linux/bpf_types.h | 9 +-
include/linux/bpf_verifier.h | 2 +
include/linux/bpfptr.h | 1 +
include/linux/brcmphy.h | 11 +
include/linux/btf.h | 39 +
include/linux/bvec.h | 2 +-
include/linux/can/bittiming.h | 89 +-
include/linux/can/dev.h | 34 +
include/linux/cc_platform.h | 88 +
include/linux/cdrom.h | 1 +
include/linux/ceph/ceph_fs.h | 2 +
include/linux/ceph/osd_client.h | 19 +-
include/linux/clk/tegra.h | 24 +-
include/linux/cma.h | 1 +
include/linux/compiler-gcc.h | 18 +-
include/linux/compiler_attributes.h | 11 +-
include/linux/compiler_types.h | 25 +-
include/linux/console.h | 2 +
include/linux/container_of.h | 40 +
include/linux/context_tracking.h | 2 +-
include/linux/counter.h | 715 +-
include/linux/counter_enum.h | 45 -
include/linux/cpufreq.h | 169 +-
include/linux/cpuhotplug.h | 6 +-
include/linux/cpuset.h | 17 +
include/linux/crash_dump.h | 30 +-
include/linux/damon.h | 236 +-
include/linux/dax.h | 2 -
include/linux/debug_locks.h | 2 -
include/linux/decompress/mm.h | 12 +-
include/linux/delay.h | 2 +-
include/linux/device-mapper.h | 4 +-
include/linux/device/bus.h | 1 +
include/linux/dma-buf.h | 13 +-
include/linux/dma-fence.h | 32 +-
include/linux/dma-resv.h | 224 +-
include/linux/dma/qcom_adm.h | 12 +
include/linux/dma/xilinx_dpdma.h | 11 +
include/linux/dmaengine.h | 6 -
include/linux/dmar.h | 8 +
include/linux/dsa/8021q.h | 5 +-
include/linux/dsa/ocelot.h | 5 +-
include/linux/dsa/sja1105.h | 1 -
include/linux/dtpm.h | 26 +-
include/linux/efi.h | 1 +
include/linux/elevator.h | 181 -
include/linux/elfcore.h | 2 +-
include/linux/energy_model.h | 68 +-
include/linux/etherdevice.h | 37 +-
include/linux/ethtool.h | 23 +
include/linux/ethtool_netlink.h | 3 +
include/linux/fanotify.h | 9 +-
include/linux/fb.h | 2 +-
include/linux/filter.h | 29 +-
include/linux/firewire.h | 11 +-
include/linux/firmware.h | 30 +-
include/linux/firmware/cirrus/cs_dsp.h | 21 +-
include/linux/firmware/cirrus/wmfw.h | 1 +
include/linux/firmware/imx/s4.h | 20 +
include/linux/firmware/xlnx-zynqmp.h | 26 +
include/linux/flex_proportions.h | 9 +-
include/linux/fortify-string.h | 77 +-
include/linux/fs.h | 18 +-
include/linux/fscache.h | 2 +-
include/linux/fscrypt.h | 3 -
include/linux/fsi-occ.h | 2 +
include/linux/fsl/mc.h | 14 +
include/linux/fsnotify.h | 58 +-
include/linux/fsnotify_backend.h | 96 +-
include/linux/ftrace.h | 38 +-
include/linux/fwnode.h | 1 +
include/linux/generic-radix-tree.h | 3 +-
include/linux/genhd.h | 44 +-
include/linux/gfp.h | 30 +-
include/linux/gpio/driver.h | 19 +-
include/linux/highmem-internal.h | 11 +
include/linux/highmem.h | 65 +-
include/linux/huge_mm.h | 15 -
include/linux/hugetlb.h | 42 +-
include/linux/hyperv.h | 25 +-
include/linux/i2c.h | 18 +
include/linux/ieee80211.h | 69 +-
include/linux/iio/buffer.h | 11 +
include/linux/iio/buffer_impl.h | 11 +
include/linux/iio/common/st_sensors.h | 13 -
include/linux/iio/driver.h | 14 +
include/linux/iio/iio-opaque.h | 4 +
include/linux/iio/imu/adis.h | 2 +
include/linux/iio/triggered_buffer.h | 11 +-
include/linux/inetdevice.h | 2 +
include/linux/input/cy8ctmg110_pdata.h | 10 -
include/linux/instruction_pointer.h | 8 +
include/linux/intel-iommu.h | 13 +-
include/linux/io-mapping.h | 6 -
include/linux/io.h | 5 +
include/linux/iomap.h | 16 +-
include/linux/ipmi.h | 3 +
include/linux/ipmi_smi.h | 59 +
include/linux/ipv6.h | 2 +-
include/linux/irq.h | 6 +-
include/linux/irq_work.h | 8 +
include/linux/irqchip.h | 20 +-
include/linux/irqdesc.h | 9 +-
include/linux/irqdomain.h | 4 +
include/linux/kallsyms.h | 13 +-
include/linux/kasan.h | 17 +-
include/linux/kcsan-checks.h | 3 +
include/linux/kernel.h | 55 +-
include/linux/kernel_stat.h | 1 +
include/linux/kernfs.h | 28 -
include/linux/keyslot-manager.h | 120 -
include/linux/kfence.h | 21 +-
include/linux/kobject.h | 1 -
include/linux/kprobes.h | 113 +-
include/linux/ksm.h | 4 +-
include/linux/kvm_host.h | 30 +-
include/linux/leds.h | 2 +-
include/linux/libata.h | 26 +-
include/linux/list.h | 4 +-
include/linux/llist.h | 4 +-
include/linux/lockd/xdr.h | 27 +-
include/linux/lockd/xdr4.h | 29 +-
include/linux/lockdep.h | 17 -
include/linux/lockdep_types.h | 2 +-
include/linux/lsm_hook_defs.h | 26 +-
include/linux/lsm_hooks.h | 38 +-
include/linux/mdev.h | 20 -
include/linux/mdio.h | 26 +
include/linux/mem_encrypt.h | 4 -
include/linux/memblock.h | 50 +-
include/linux/memcontrol.h | 273 +-
include/linux/memory.h | 23 +-
include/linux/memory_hotplug.h | 3 -
include/linux/mempolicy.h | 5 -
include/linux/mfd/da9063/core.h | 1 +
include/linux/mfd/hi6421-spmi-pmic.h | 25 -
include/linux/mfd/idt8a340_reg.h | 31 +-
include/linux/mfd/max77686-private.h | 26 +-
include/linux/mfd/stm32-lptimer.h | 5 +
include/linux/mfd/stm32-timers.h | 4 +
include/linux/mfd/ti_am335x_tscadc.h | 119 +-
include/linux/mfd/tps65912.h | 2 +-
include/linux/mfd/tps80031.h | 637 -
include/linux/micrel_phy.h | 1 +
include/linux/migrate.h | 28 +-
include/linux/migrate_mode.h | 13 +
include/linux/misc_cgroup.h | 6 +-
include/linux/mlx4/device.h | 2 +-
include/linux/mlx4/driver.h | 22 -
include/linux/mlx5/device.h | 63 +-
include/linux/mlx5/driver.h | 62 +-
include/linux/mlx5/eq.h | 1 -
include/linux/mlx5/eswitch.h | 9 +
include/linux/mlx5/fs.h | 15 +
include/linux/mlx5/mlx5_ifc.h | 450 +-
include/linux/mm.h | 299 +-
include/linux/mm_inline.h | 103 +-
include/linux/mm_types.h | 109 +-
include/linux/mmc/host.h | 8 +-
include/linux/mmc/sdhci-pci-data.h | 18 -
include/linux/mmdebug.h | 20 +
include/linux/mmzone.h | 41 +-
include/linux/msi.h | 2 +-
include/linux/mtd/mtd.h | 2 -
include/linux/mux/consumer.h | 23 +-
include/linux/mux/driver.h | 4 +
include/linux/nd.h | 4 +-
include/linux/netdevice.h | 17 +-
include/linux/netfilter_arp/arp_tables.h | 5 +-
include/linux/netfilter_bridge/ebtables.h | 5 +-
include/linux/netfilter_ingress.h | 58 -
include/linux/netfilter_ipv4/ip_tables.h | 6 +-
include/linux/netfilter_ipv6/ip6_tables.h | 5 +-
include/linux/netfilter_netdev.h | 146 +
include/linux/netfs.h | 89 +-
include/linux/netlink.h | 4 -
include/linux/nfs4.h | 4 +
include/linux/nfs_fs.h | 77 +-
include/linux/nfs_xdr.h | 16 +-
include/linux/node.h | 4 +-
include/linux/nvme-fc-driver.h | 7 +
include/linux/nvme-rdma.h | 2 +
include/linux/nvme.h | 30 +-
include/linux/nvmem-provider.h | 5 +
include/linux/objtool.h | 12 +
include/linux/of.h | 3 +-
include/linux/of_fdt.h | 1 -
include/linux/of_net.h | 8 +-
include/linux/page-flags.h | 292 +-
include/linux/page_idle.h | 99 +-
include/linux/page_owner.h | 20 +-
include/linux/page_ref.h | 158 +-
include/linux/pagemap.h | 714 +-
include/linux/part_stat.h | 1 +
include/linux/pci-acpi.h | 8 +
include/linux/pci.h | 24 +-
include/linux/percpu-refcount.h | 33 +-
include/linux/percpu.h | 6 +-
include/linux/perf_event.h | 24 +
include/linux/phy.h | 35 +
include/linux/phylink.h | 14 +-
include/linux/pid.h | 1 +
include/linux/platform_data/brcmfmac.h | 2 +-
include/linux/platform_data/cros_ec_proto.h | 7 +-
include/linux/platform_data/mlxreg.h | 82 +
include/linux/platform_data/ti-sysc.h | 3 +
include/linux/platform_data/ux500_wdt.h | 18 -
include/linux/platform_data/x86/soc.h | 65 +
include/linux/plist.h | 5 +-
include/linux/pm_opp.h | 20 +-
include/linux/pm_wakeirq.h | 9 +-
include/linux/pnfs_osd_xdr.h | 317 -
include/linux/posix-timers.h | 2 +
include/linux/power/max17042_battery.h | 4 +-
include/linux/preempt.h | 26 +-
include/linux/property.h | 5 +-
include/linux/ptrace.h | 22 +-
include/linux/pwm.h | 13 +
include/linux/qed/common_hsi.h | 141 +-
include/linux/qed/eth_common.h | 1 +
include/linux/qed/fcoe_common.h | 362 +-
include/linux/qed/iscsi_common.h | 360 +-
include/linux/qed/nvmetcp_common.h | 18 +-
include/linux/qed/qed_chain.h | 97 +-
include/linux/qed/qed_eth_if.h | 23 +-
include/linux/qed/qed_if.h | 265 +-
include/linux/qed/qed_iscsi_if.h | 2 +-
include/linux/qed/qed_ll2_if.h | 42 +-
include/linux/qed/qed_nvmetcp_if.h | 17 +
include/linux/qed/qed_rdma_if.h | 3 +-
include/linux/qed/rdma_common.h | 1 +
include/linux/radix-tree.h | 4 +-
include/linux/rcupdate.h | 3 +-
include/linux/rcupdate_trace.h | 5 +-
include/linux/regulator/lp872x.h | 17 +-
include/linux/regulator/tps62360.h | 6 -
include/linux/remoteproc.h | 12 -
include/linux/rmap.h | 10 +-
include/linux/rpmsg.h | 12 +-
include/linux/rtc.h | 3 +
include/linux/rwlock.h | 15 -
include/linux/rwlock_api_smp.h | 6 +-
include/linux/rwsem.h | 1 -
include/linux/sbitmap.h | 35 +-
include/linux/sched.h | 66 +-
include/linux/sched/idle.h | 4 +
include/linux/sched/mm.h | 29 +
include/linux/sched/signal.h | 14 +
include/linux/sched/task.h | 3 +-
include/linux/sched/task_stack.h | 4 +
include/linux/sched/topology.h | 9 +-
include/linux/secretmem.h | 2 +-
include/linux/security.h | 65 +-
include/linux/seq_file.h | 19 +-
include/linux/seqno-fence.h | 109 -
include/linux/shrinker.h | 1 +
include/linux/signal.h | 7 +-
include/linux/signal_types.h | 3 +
include/linux/skbuff.h | 42 +-
include/linux/skmsg.h | 31 +-
include/linux/slab.h | 135 +-
include/linux/slub_def.h | 13 +-
include/linux/smp.h | 1 -
include/linux/soc/marvell/octeontx2/asm.h | 15 +
include/linux/soc/mediatek/mtk-mmsys.h | 3 +
include/linux/soc/qcom/qcom_aoss.h | 38 +
include/linux/soc/qcom/smd-rpm.h | 2 +
include/linux/soc/samsung/exynos-chipid.h | 6 +-
include/linux/socket.h | 2 +
include/linux/soundwire/sdw_intel.h | 4 +-
include/linux/spi/ads7846.h | 15 -
include/linux/spi/max7301.h | 2 +-
include/linux/spi/spi.h | 55 -
include/linux/spinlock.h | 14 -
include/linux/spinlock_api_smp.h | 9 -
include/linux/spinlock_up.h | 1 -
include/linux/stackdepot.h | 11 +-
include/linux/stacktrace.h | 1 +
include/linux/stddef.h | 65 +-
include/linux/string.h | 59 +-
include/linux/string_helpers.h | 1 +
include/linux/sunrpc/clnt.h | 1 +
include/linux/sunrpc/sched.h | 16 +-
include/linux/sunrpc/svc.h | 14 +-
include/linux/surface_aggregator/controller.h | 4 +-
include/linux/swap.h | 18 +-
include/linux/swiotlb.h | 3 +-
include/linux/switchtec.h | 1 +
include/linux/syscalls.h | 7 +-
include/linux/t10-pi.h | 2 +-
include/linux/tee_drv.h | 7 +-
include/linux/thread_info.h | 2 +-
include/linux/topology.h | 13 +
include/linux/torture.h | 8 +
include/linux/tpm.h | 1 +
include/linux/trace_events.h | 2 +-
include/linux/trace_recursion.h | 76 +-
include/linux/tty.h | 140 +-
include/linux/tty_driver.h | 10 +-
include/linux/tty_flip.h | 20 +-
include/linux/tty_ldisc.h | 27 +-
include/linux/u64_stats_sync.h | 10 +
include/linux/uio.h | 4 +-
include/linux/usb/hcd.h | 2 -
include/linux/usb/tegra_usb_phy.h | 5 +
include/linux/user_namespace.h | 2 +
include/linux/vdpa.h | 53 +-
include/linux/vermagic.h | 2 +-
include/linux/vfio.h | 53 +-
include/linux/virtio.h | 2 +
include/linux/virtio_config.h | 6 +
include/linux/virtio_pci_legacy.h | 42 +
include/linux/vmalloc.h | 24 +-
include/linux/vmstat.h | 113 +-
include/linux/wait.h | 3 +-
include/linux/workqueue.h | 3 +-
include/linux/writeback.h | 23 +-
include/linux/ww_mutex.h | 15 +-
include/linux/xz.h | 106 +
include/linux/zstd.h | 1252 +-
include/linux/zstd_errors.h | 77 +
include/linux/zstd_lib.h | 2432 +
include/media/hevc-ctrls.h | 11 +
include/media/i2c/mt9p031.h | 1 +
include/media/media-entity.h | 3 +-
include/media/tuner.h | 1 +
include/media/v4l2-async.h | 105 +-
include/media/v4l2-dev.h | 3 +-
include/media/v4l2-fwnode.h | 12 +-
include/media/videobuf2-core.h | 59 +-
include/memory/renesas-rpc-if.h | 1 +
include/net/9p/9p.h | 12 +-
include/net/9p/client.h | 24 +-
include/net/9p/transport.h | 26 +-
include/net/act_api.h | 10 +-
include/net/amt.h | 385 +
include/net/ax25.h | 13 +-
include/net/bluetooth/bluetooth.h | 90 +
include/net/bluetooth/hci.h | 117 +
include/net/bluetooth/hci_core.h | 75 +-
include/net/busy_poll.h | 3 +-
include/net/cfg80211.h | 81 +-
include/net/codel.h | 5 +
include/net/codel_impl.h | 18 +-
include/net/datalink.h | 2 +-
include/net/devlink.h | 128 +-
include/net/dn.h | 2 +-
include/net/dsa.h | 46 +-
include/net/flow_dissector.h | 1 +
include/net/gen_stats.h | 59 +-
include/net/inet_connection_sock.h | 2 +-
include/net/inet_ecn.h | 17 +
include/net/inet_sock.h | 3 +-
include/net/ioam6.h | 3 +-
include/net/ip.h | 8 +-
include/net/ip_vs.h | 11 +
include/net/ipv6.h | 1 +
include/net/llc.h | 6 +-
include/net/llc_if.h | 3 +-
include/net/mac80211.h | 11 +
include/net/mctp.h | 84 +-
include/net/mctpdevice.h | 21 +
include/net/mptcp.h | 8 +
include/net/ndisc.h | 2 +-
include/net/neighbour.h | 45 +-
include/net/netfilter/nf_tables.h | 10 +-
include/net/netfilter/nf_tables_ipv4.h | 7 +-
include/net/netfilter/nf_tables_ipv6.h | 6 +-
include/net/netfilter/xt_rateest.h | 2 +-
include/net/page_pool.h | 12 +-
include/net/pkt_cls.h | 6 +-
include/net/rose.h | 8 +-
include/net/sch_generic.h | 86 +-
include/net/sctp/sctp.h | 7 +-
include/net/sctp/sm.h | 6 +-
include/net/sctp/structs.h | 20 +-
include/net/sock.h | 137 +-
include/net/strparser.h | 20 +-
include/net/switchdev.h | 48 +-
include/net/tcp.h | 63 +-
include/net/tls.h | 16 +-
include/net/udp.h | 5 +-
include/net/xdp.h | 8 +-
include/net/xdp_sock_drv.h | 22 +
include/net/xsk_buff_pool.h | 48 +-
include/rdma/ib_hdrs.h | 1 +
include/rdma/ib_umem.h | 11 +
include/rdma/ib_verbs.h | 74 +-
include/rdma/rdma_counter.h | 2 +
include/scsi/libsas.h | 1 +
include/scsi/sas.h | 12 +-
include/scsi/scsi_cmnd.h | 19 +-
include/scsi/scsi_device.h | 3 +-
include/scsi/scsi_host.h | 28 +-
include/scsi/scsi_transport_sas.h | 1 +
include/soc/arc/timers.h | 4 +-
include/soc/fsl/dpaa2-io.h | 9 +
include/soc/mscc/ocelot.h | 27 +-
include/soc/mscc/ocelot_vcap.h | 10 +
include/soc/qcom/spm.h | 43 +
include/soc/tegra/fuse.h | 31 +-
include/soc/tegra/irq.h | 9 +-
include/soc/tegra/pm.h | 2 +-
include/sound/cs35l41.h | 746 +
include/sound/dmaengine_pcm.h | 2 -
include/sound/hdaudio_ext.h | 2 +
include/sound/memalloc.h | 44 +-
include/sound/rt5682s.h | 1 +
include/sound/soc-component.h | 4 +
include/sound/soc-dai.h | 36 +-
include/sound/soc-dpcm.h | 2 +
include/sound/soc.h | 3 +-
include/sound/sof.h | 22 +
include/sound/sof/dai-amd.h | 21 +
include/sound/sof/dai-mediatek.h | 23 +
include/sound/sof/dai.h | 35 +-
include/sound/sof/debug.h | 2 +
include/sound/sof/header.h | 1 +
include/target/target_core_base.h | 9 +-
include/target/target_core_fabric.h | 1 +
include/trace/bpf_probe.h | 19 +-
include/trace/events/afs.h | 21 +-
include/trace/events/block.h | 6 +-
include/trace/events/devlink.h | 72 +-
include/trace/events/erofs.h | 2 +-
include/trace/events/f2fs.h | 33 +-
include/trace/events/fs.h | 122 +
include/trace/events/io_uring.h | 61 +
include/trace/events/mctp.h | 75 +
include/trace/events/mmap_lock.h | 48 +-
include/trace/events/nfs.h | 375 +
include/trace/events/pagemap.h | 46 +-
include/trace/events/rpcgss.h | 18 +-
include/trace/events/rpcrdma.h | 240 +-
include/trace/events/sunrpc.h | 135 +-
include/trace/events/sunrpc_base.h | 18 +
include/trace/events/vmscan.h | 38 +
include/trace/events/writeback.h | 35 +-
include/uapi/asm-generic/fcntl.h | 4 +
include/uapi/asm-generic/signal-defs.h | 1 +
include/uapi/asm-generic/socket.h | 2 +
include/uapi/asm-generic/unistd.h | 5 +-
include/uapi/drm/amdgpu_drm.h | 13 +-
include/uapi/drm/drm_fourcc.h | 12 +
include/uapi/drm/drm_mode.h | 4 +
include/uapi/drm/i915_drm.h | 242 +-
include/uapi/drm/mga_drm.h | 22 +-
include/uapi/drm/v3d_drm.h | 78 +
include/uapi/drm/virtgpu_drm.h | 27 +
include/uapi/linux/acrn.h | 70 +
include/uapi/linux/amt.h | 62 +
include/uapi/linux/audit.h | 7 +-
include/uapi/linux/bcache.h | 445 -
include/uapi/linux/bpf.h | 76 +-
include/uapi/linux/btf.h | 55 +-
include/uapi/linux/btrfs.h | 11 +-
include/uapi/linux/can/netlink.h | 31 +-
include/uapi/linux/cdrom.h | 19 +
include/uapi/linux/counter.h | 154 +
include/uapi/linux/devlink.h | 2 +
include/uapi/linux/dlm_device.h | 4 +-
include/uapi/linux/ethtool.h | 29 +
include/uapi/linux/ethtool_netlink.h | 21 +-
include/uapi/linux/fanotify.h | 8 +
include/uapi/linux/fuse.h | 7 +-
include/uapi/linux/futex.h | 25 +
include/uapi/linux/if_ether.h | 1 +
include/uapi/linux/io_uring.h | 1 +
include/uapi/linux/ioam6_iptunnel.h | 29 +
include/uapi/linux/ip.h | 1 +
include/uapi/linux/ipmi.h | 16 +-
include/uapi/linux/ipv6.h | 1 +
include/uapi/linux/kvm.h | 30 +-
include/uapi/linux/map_to_14segment.h | 241 +
include/uapi/linux/mctp.h | 18 +-
include/uapi/linux/mdio.h | 9 +
include/uapi/linux/mptcp.h | 35 +
include/uapi/linux/neighbour.h | 35 +-
include/uapi/linux/netfilter.h | 1 +
include/uapi/linux/netfilter/nf_tables.h | 6 +-
include/uapi/linux/nfsd/nfsfh.h | 115 -
include/uapi/linux/nitro_enclaves.h | 10 +-
include/uapi/linux/nl80211-vnd-intel.h | 29 +
include/uapi/linux/nl80211.h | 115 +-
include/uapi/linux/pci_regs.h | 6 +
include/uapi/linux/perf_event.h | 34 +-
include/uapi/linux/pkt_sched.h | 2 +
include/uapi/linux/prctl.h | 5 +-
include/uapi/linux/rtc.h | 31 +-
include/uapi/linux/smc.h | 44 +-
include/uapi/linux/stddef.h | 37 +
include/uapi/linux/sysctl.h | 1 +
include/uapi/linux/tls.h | 30 +
include/uapi/linux/v4l2-controls.h | 6 +
include/uapi/linux/vdpa.h | 7 +
include/uapi/linux/videodev2.h | 31 +-
include/uapi/linux/virtio_gpio.h | 27 +-
include/uapi/linux/virtio_gpu.h | 18 +-
include/uapi/linux/virtio_i2c.h | 6 +
include/uapi/linux/virtio_mem.h | 9 +-
include/uapi/linux/vm_sockets.h | 13 +-
include/uapi/misc/habanalabs.h | 84 +-
include/uapi/rdma/efa-abi.h | 18 +-
include/uapi/rdma/rdma_netlink.h | 5 +
include/uapi/rdma/rdma_user_rxe.h | 14 +-
include/uapi/sound/asoc.h | 4 +-
include/uapi/sound/asound.h | 4 +-
include/uapi/sound/firewire.h | 150 +
include/uapi/sound/sof/tokens.h | 5 +
include/xen/arm/hypercall.h | 15 -
include/xen/balloon.h | 3 -
include/xen/interface/callback.h | 19 +-
include/xen/interface/elfnote.h | 19 +-
include/xen/interface/event_channel.h | 2 +-
include/xen/interface/features.h | 2 +-
include/xen/interface/grant_table.h | 19 +-
include/xen/interface/hvm/dm_op.h | 19 +-
include/xen/interface/hvm/hvm_op.h | 20 +-
include/xen/interface/hvm/hvm_vcpu.h | 19 +-
include/xen/interface/hvm/params.h | 20 +-
include/xen/interface/hvm/start_info.h | 19 +-
include/xen/interface/io/9pfs.h | 19 +-
include/xen/interface/io/blkif.h | 2 +-
include/xen/interface/io/console.h | 2 +-
include/xen/interface/io/displif.h | 19 +-
include/xen/interface/io/fbif.h | 19 +-
include/xen/interface/io/kbdif.h | 19 +-
include/xen/interface/io/netif.h | 19 +-
include/xen/interface/io/pciif.h | 19 +-
include/xen/interface/io/protocols.h | 2 +-
include/xen/interface/io/pvcalls.h | 2 +
include/xen/interface/io/ring.h | 19 +-
include/xen/interface/io/sndif.h | 19 +-
include/xen/interface/io/vscsiif.h | 19 +-
include/xen/interface/io/xenbus.h | 2 +-
include/xen/interface/io/xs_wire.h | 2 +-
include/xen/interface/memory.h | 2 +-
include/xen/interface/nmi.h | 2 +-
include/xen/interface/physdev.h | 20 +-
include/xen/interface/platform.h | 19 +-
include/xen/interface/sched.h | 19 +-
include/xen/interface/vcpu.h | 19 +-
include/xen/interface/version.h | 2 +-
include/xen/interface/xen-mca.h | 1 +
include/xen/interface/xen.h | 19 +-
include/xen/interface/xenpmu.h | 2 +-
include/xen/pci.h | 28 +
include/xen/xen.h | 6 -
init/Kconfig | 9 +-
init/Makefile | 2 +-
init/initramfs.c | 2 +-
init/main.c | 27 +-
ipc/ipc_sysctl.c | 32 +-
ipc/shm.c | 8 +-
kernel/Kconfig.preempt | 22 +-
kernel/Makefile | 3 +-
kernel/acct.c | 1 -
kernel/audit.h | 9 +-
kernel/audit_fsnotify.c | 3 +-
kernel/audit_tree.c | 23 +-
kernel/audit_watch.c | 6 +-
kernel/auditfilter.c | 15 +-
kernel/auditsc.c | 521 +-
kernel/bpf/Kconfig | 7 +
kernel/bpf/Makefile | 2 +-
kernel/bpf/arraymap.c | 8 +-
kernel/bpf/bloom_filter.c | 204 +
kernel/bpf/bpf_struct_ops.c | 32 +-
kernel/bpf/bpf_struct_ops_types.h | 3 +
kernel/bpf/btf.c | 183 +
kernel/bpf/cgroup.c | 54 +-
kernel/bpf/core.c | 40 +-
kernel/bpf/hashtab.c | 13 +-
kernel/bpf/helpers.c | 11 +-
kernel/bpf/preload/.gitignore | 4 +-
kernel/bpf/preload/Makefile | 26 +-
kernel/bpf/preload/iterators/Makefile | 38 +-
kernel/bpf/syscall.c | 88 +-
kernel/bpf/trampoline.c | 15 +-
kernel/bpf/verifier.c | 420 +-
kernel/cgroup/cgroup-v1.c | 17 +-
kernel/cgroup/cgroup.c | 124 +-
kernel/cgroup/cpuset.c | 23 +
kernel/cgroup/misc.c | 31 +-
kernel/cgroup/rstat.c | 2 -
kernel/cred.c | 14 +-
kernel/debug/kdb/kdb_bt.c | 16 +-
kernel/debug/kdb/kdb_main.c | 37 +-
kernel/debug/kdb/kdb_private.h | 4 +-
kernel/debug/kdb/kdb_support.c | 118 +-
kernel/dma/coherent.c | 5 +-
kernel/dma/debug.c | 36 +-
kernel/dma/debug.h | 24 +-
kernel/dma/mapping.c | 28 +-
kernel/dma/swiotlb.c | 19 +-
kernel/entry/syscall_user_dispatch.c | 12 +-
kernel/events/Makefile | 5 -
kernel/events/core.c | 42 +-
kernel/events/internal.h | 7 +-
kernel/events/uprobes.c | 3 +-
kernel/exit.c | 79 +-
kernel/extable.c | 35 +-
kernel/fork.c | 17 +-
kernel/futex.c | 4272 --
kernel/futex/Makefile | 3 +
kernel/futex/core.c | 1176 +
kernel/futex/futex.h | 299 +
kernel/futex/pi.c | 1233 +
kernel/futex/requeue.c | 897 +
kernel/futex/syscalls.c | 398 +
kernel/futex/waitwake.c | 708 +
kernel/irq/Kconfig | 10 +-
kernel/irq/chip.c | 2 +
kernel/irq/generic-chip.c | 3 +
kernel/irq/handle.c | 18 +
kernel/irq/irqdesc.c | 81 +-
kernel/irq/irqdomain.c | 7 +-
kernel/irq/manage.c | 6 +-
kernel/irq/msi.c | 4 +-
kernel/irq/spurious.c | 8 +
kernel/irq_work.c | 130 +-
kernel/kallsyms.c | 46 +-
kernel/kcov.c | 36 +-
kernel/kcsan/core.c | 75 +-
kernel/kcsan/kcsan.h | 8 +-
kernel/kcsan/kcsan_test.c | 62 +-
kernel/kcsan/report.c | 77 +-
kernel/kcsan/selftest.c | 72 +-
kernel/kexec_file.c | 5 +
kernel/kprobes.c | 509 +-
kernel/kthread.c | 18 +-
kernel/livepatch/patch.c | 12 +-
kernel/livepatch/transition.c | 95 +-
kernel/locking/lockdep.c | 24 +-
kernel/locking/locktorture.c | 14 +-
kernel/locking/mutex.c | 63 +-
kernel/locking/rtmutex.c | 19 +-
kernel/locking/rwbase_rt.c | 11 +-
kernel/locking/rwsem.c | 70 +-
kernel/locking/spinlock.c | 3 +-
kernel/locking/spinlock_rt.c | 17 +-
kernel/locking/test-ww_mutex.c | 87 +-
kernel/locking/ww_rt_mutex.c | 25 +
kernel/module.c | 79 +-
kernel/pid.c | 36 +
kernel/power/energy_model.c | 86 +-
kernel/power/hibernate.c | 12 +-
kernel/power/power.h | 14 +
kernel/power/process.c | 2 +-
kernel/power/suspend.c | 18 +-
kernel/power/swap.c | 21 +-
kernel/printk/index.c | 5 +-
kernel/printk/printk.c | 9 +-
kernel/rcu/rcuscale.c | 10 +-
kernel/rcu/rcutorture.c | 86 +-
kernel/rcu/refscale.c | 6 +-
kernel/rcu/tasks.h | 119 +-
kernel/rcu/tree.c | 36 +-
kernel/rcu/tree_exp.h | 3 +-
kernel/rcu/tree_nocb.h | 2 +-
kernel/rcu/tree_plugin.h | 11 +-
kernel/rcu/tree_stall.h | 8 +-
kernel/rcu/update.c | 12 +-
kernel/reboot.c | 2 +-
kernel/resource.c | 54 +-
kernel/scftorture.c | 43 +-
kernel/sched/Makefile | 4 +
kernel/sched/autogroup.c | 2 +-
kernel/sched/core.c | 514 +-
kernel/sched/core_sched.c | 13 +-
kernel/sched/deadline.c | 99 +-
kernel/sched/debug.c | 101 +-
kernel/sched/fair.c | 500 +-
kernel/sched/features.h | 5 +
kernel/sched/rt.c | 142 +-
kernel/sched/sched.h | 40 +-
kernel/sched/stats.c | 104 +
kernel/sched/stats.h | 49 +
kernel/sched/stop_task.c | 4 +-
kernel/sched/topology.c | 35 +-
kernel/scs.c | 1 +
kernel/signal.c | 143 +-
kernel/smp.c | 12 +-
kernel/stacktrace.c | 30 +
kernel/sys_ni.c | 3 +-
kernel/test_kprobes.c | 313 -
kernel/time/posix-cpu-timers.c | 19 +-
kernel/trace/Makefile | 1 +
kernel/trace/blktrace.c | 7 +-
kernel/trace/bpf_trace.c | 102 +-
kernel/trace/fgraph.c | 6 +-
kernel/trace/ftrace.c | 373 +-
kernel/trace/pid_list.c | 495 +
kernel/trace/pid_list.h | 88 +
kernel/trace/ring_buffer.c | 14 +-
kernel/trace/trace.c | 162 +-
kernel/trace/trace.h | 19 +-
kernel/trace/trace_boot.c | 4 +
kernel/trace/trace_dynevent.c | 2 +-
kernel/trace/trace_eprobe.c | 4 +-
kernel/trace/trace_event_perf.c | 9 +-
kernel/trace/trace_events.c | 48 +-
kernel/trace/trace_events_hist.c | 528 +-
kernel/trace/trace_events_synth.c | 4 +-
kernel/trace/trace_functions.c | 5 -
kernel/trace/trace_functions_graph.c | 4 +-
kernel/trace/trace_hwlat.c | 10 +-
kernel/trace/trace_kprobe.c | 10 +-
kernel/trace/trace_osnoise.c | 651 +-
kernel/trace/trace_output.c | 17 +-
kernel/trace/trace_printk.c | 2 +-
kernel/trace/trace_recursion_record.c | 4 +-
kernel/trace/trace_selftest.c | 92 +-
kernel/trace/trace_stack.c | 6 +-
kernel/trace/trace_stat.c | 6 +-
kernel/trace/trace_uprobe.c | 4 +-
kernel/trace/tracing_map.c | 40 +-
kernel/tsacct.c | 2 +-
kernel/ucount.c | 65 +-
kernel/workqueue.c | 189 +-
lib/.gitignore | 2 +
lib/Kconfig.debug | 18 +-
lib/Kconfig.kfence | 26 +-
lib/Makefile | 35 +
lib/assoc_array.c | 22 +-
lib/audit.c | 14 +-
lib/bitmap.c | 13 +
lib/bootconfig.c | 231 +-
lib/compat_audit.c | 15 +-
lib/cpumask.c | 2 +-
lib/crypto/sm4.c | 4 +-
lib/decompress_unxz.c | 10 +-
lib/decompress_unzstd.c | 48 +-
lib/devres.c | 82 +
lib/dynamic_debug.c | 60 +-
lib/error-inject.c | 3 +-
lib/flex_proportions.c | 28 +-
lib/iov_iter.c | 103 +-
lib/kobject.c | 2 +-
lib/kunit/executor.c | 152 +-
lib/kunit/executor_test.c | 110 +-
lib/kunit/kunit-test.c | 14 +-
lib/kunit/test.c | 6 +-
lib/locking-selftest.c | 2 +-
lib/memcpy_kunit.c | 289 +
lib/raid6/Makefile | 4 +
lib/random32.c | 1 +
lib/sbitmap.c | 95 +-
lib/scatterlist.c | 11 +-
lib/stackdepot.c | 118 +-
lib/string.c | 210 +-
lib/string_helpers.c | 215 +
lib/test_bpf.c | 17416 ++++---
lib/test_fortify/read_overflow-memchr.c | 5 +
lib/test_fortify/read_overflow-memchr_inv.c | 5 +
lib/test_fortify/read_overflow-memcmp.c | 5 +
lib/test_fortify/read_overflow-memscan.c | 5 +
lib/test_fortify/read_overflow2-memcmp.c | 5 +
lib/test_fortify/read_overflow2-memcpy.c | 5 +
lib/test_fortify/read_overflow2-memmove.c | 5 +
lib/test_fortify/test_fortify.h | 35 +
lib/test_fortify/write_overflow-memcpy.c | 5 +
lib/test_fortify/write_overflow-memmove.c | 5 +
lib/test_fortify/write_overflow-memset.c | 5 +
lib/test_fortify/write_overflow-strcpy-lit.c | 5 +
lib/test_fortify/write_overflow-strcpy.c | 5 +
lib/test_fortify/write_overflow-strlcpy-src.c | 5 +
lib/test_fortify/write_overflow-strlcpy.c | 5 +
lib/test_fortify/write_overflow-strncpy-src.c | 5 +
lib/test_fortify/write_overflow-strncpy.c | 5 +
lib/test_fortify/write_overflow-strscpy.c | 5 +
lib/test_hmm.c | 5 +-
lib/test_kasan.c | 28 +-
lib/test_kasan_module.c | 2 +
lib/test_kprobes.c | 371 +
lib/test_printf.c | 61 +-
lib/test_vmalloc.c | 6 +-
lib/vsprintf.c | 14 +-
lib/xz/Kconfig | 13 +
lib/xz/xz_dec_lzma2.c | 182 +-
lib/xz/xz_dec_stream.c | 6 +-
lib/xz/xz_dec_syms.c | 9 +-
lib/xz/xz_private.h | 3 +
lib/zstd/Makefile | 46 +-
lib/zstd/bitstream.h | 380 -
lib/zstd/common/bitstream.h | 437 +
lib/zstd/common/compiler.h | 170 +
lib/zstd/common/cpu.h | 194 +
lib/zstd/common/debug.c | 24 +
lib/zstd/common/debug.h | 101 +
lib/zstd/common/entropy_common.c | 357 +
lib/zstd/common/error_private.c | 56 +
lib/zstd/common/error_private.h | 66 +
lib/zstd/common/fse.h | 710 +
lib/zstd/common/fse_decompress.c | 390 +
lib/zstd/common/huf.h | 356 +
lib/zstd/common/mem.h | 259 +
lib/zstd/common/zstd_common.c | 83 +
lib/zstd/common/zstd_deps.h | 125 +
lib/zstd/common/zstd_internal.h | 450 +
lib/zstd/compress.c | 3485 --
lib/zstd/compress/fse_compress.c | 625 +
lib/zstd/compress/hist.c | 165 +
lib/zstd/compress/hist.h | 75 +
lib/zstd/compress/huf_compress.c | 905 +
lib/zstd/compress/zstd_compress.c | 5109 ++
lib/zstd/compress/zstd_compress_internal.h | 1188 +
lib/zstd/compress/zstd_compress_literals.c | 158 +
lib/zstd/compress/zstd_compress_literals.h | 29 +
lib/zstd/compress/zstd_compress_sequences.c | 439 +
lib/zstd/compress/zstd_compress_sequences.h | 54 +
lib/zstd/compress/zstd_compress_superblock.c | 850 +
lib/zstd/compress/zstd_compress_superblock.h | 32 +
lib/zstd/compress/zstd_cwksp.h | 482 +
lib/zstd/compress/zstd_double_fast.c | 519 +
lib/zstd/compress/zstd_double_fast.h | 32 +
lib/zstd/compress/zstd_fast.c | 496 +
lib/zstd/compress/zstd_fast.h | 31 +
lib/zstd/compress/zstd_lazy.c | 1414 +
lib/zstd/compress/zstd_lazy.h | 81 +
lib/zstd/compress/zstd_ldm.c | 686 +
lib/zstd/compress/zstd_ldm.h | 110 +
lib/zstd/compress/zstd_ldm_geartab.h | 103 +
lib/zstd/compress/zstd_opt.c | 1346 +
lib/zstd/compress/zstd_opt.h | 50 +
lib/zstd/decompress.c | 2531 -
lib/zstd/decompress/huf_decompress.c | 1206 +
lib/zstd/decompress/zstd_ddict.c | 241 +
lib/zstd/decompress/zstd_ddict.h | 44 +
lib/zstd/decompress/zstd_decompress.c | 2085 +
lib/zstd/decompress/zstd_decompress_block.c | 1540 +
lib/zstd/decompress/zstd_decompress_block.h | 62 +
lib/zstd/decompress/zstd_decompress_internal.h | 202 +
lib/zstd/decompress_sources.h | 28 +
lib/zstd/entropy_common.c | 243 -
lib/zstd/error_private.h | 53 -
lib/zstd/fse.h | 575 -
lib/zstd/fse_compress.c | 795 -
lib/zstd/fse_decompress.c | 325 -
lib/zstd/huf.h | 212 -
lib/zstd/huf_compress.c | 773 -
lib/zstd/huf_decompress.c | 960 -
lib/zstd/mem.h | 151 -
lib/zstd/zstd_common.c | 75 -
lib/zstd/zstd_compress_module.c | 160 +
lib/zstd/zstd_decompress_module.c | 105 +
lib/zstd/zstd_internal.h | 273 -
lib/zstd/zstd_opt.h | 1014 -
mm/Kconfig | 17 +-
mm/Makefile | 2 +-
mm/backing-dev.c | 84 +-
mm/cma.c | 26 +-
mm/compaction.c | 14 +-
mm/damon/Kconfig | 24 +-
mm/damon/Makefile | 4 +-
mm/damon/core-test.h | 4 +-
mm/damon/core.c | 446 +-
mm/damon/dbgfs-test.h | 54 +
mm/damon/dbgfs.c | 430 +-
mm/damon/paddr.c | 273 +
mm/damon/prmtv-common.c | 133 +
mm/damon/prmtv-common.h | 20 +
mm/damon/reclaim.c | 356 +
mm/damon/vaddr-test.h | 2 +-
mm/damon/vaddr.c | 167 +-
mm/debug.c | 26 +-
mm/debug_vm_pgtable.c | 7 +-
mm/filemap.c | 658 +-
mm/folio-compat.c | 142 +
mm/gup.c | 144 +-
mm/highmem.c | 7 +-
mm/huge_memory.c | 15 +-
mm/hugetlb.c | 701 +-
mm/hugetlb_cgroup.c | 3 -
mm/internal.h | 58 +-
mm/kasan/common.c | 8 +-
mm/kasan/generic.c | 14 +-
mm/kasan/hw_tags.c | 43 +-
mm/kasan/kasan.h | 34 +-
mm/kasan/report.c | 19 +-
mm/kasan/shadow.c | 5 +
mm/kasan/sw_tags.c | 2 +-
mm/kfence/core.c | 200 +-
mm/kfence/kfence.h | 2 +
mm/kfence/kfence_test.c | 14 +-
mm/khugepaged.c | 44 +-
mm/ksm.c | 34 +-
mm/list_lru.c | 58 +-
mm/madvise.c | 15 +-
mm/memblock.c | 56 +-
mm/memcontrol.c | 569 +-
mm/memfd.c | 4 +-
mm/memory-failure.c | 141 +-
mm/memory.c | 193 +-
mm/memory_hotplug.c | 53 +-
mm/mempolicy.c | 169 +-
mm/mempool.c | 1 -
mm/memremap.c | 2 +-
mm/migrate.c | 459 +-
mm/mlock.c | 3 +-
mm/mmap.c | 5 +-
mm/mprotect.c | 5 +-
mm/mremap.c | 86 +-
mm/nommu.c | 7 -
mm/oom_kill.c | 69 +-
mm/page-writeback.c | 487 +-
mm/page_alloc.c | 141 +-
mm/page_ext.c | 6 +-
mm/page_io.c | 14 +-
mm/page_isolation.c | 29 +-
mm/page_owner.c | 38 +-
mm/percpu.c | 8 +-
mm/readahead.c | 3 +-
mm/rmap.c | 22 +-
mm/secretmem.c | 11 +-
mm/shmem.c | 38 +-
mm/slab.c | 20 +-
mm/slab_common.c | 8 -
mm/slub.c | 144 +-
mm/sparse-vmemmap.c | 2 +-
mm/sparse.c | 2 +-
mm/swap.c | 220 +-
mm/swap_state.c | 2 +-
mm/swapfile.c | 16 +-
mm/truncate.c | 19 +-
mm/userfaultfd.c | 5 +-
mm/util.c | 111 +-
mm/vmalloc.c | 112 +-
mm/vmpressure.c | 2 +-
mm/vmscan.c | 184 +-
mm/vmstat.c | 76 +-
mm/workingset.c | 62 +-
mm/zsmalloc.c | 7 +-
net/802/hippi.c | 2 +-
net/802/p8022.c | 2 +-
net/802/psnap.c | 2 +-
net/8021q/vlan.c | 3 -
net/8021q/vlan_dev.c | 9 +-
net/9p/client.c | 436 +-
net/9p/error.c | 4 +-
net/9p/mod.c | 41 +-
net/9p/protocol.c | 38 +-
net/9p/protocol.h | 4 +-
net/9p/trans_common.c | 10 +-
net/9p/trans_common.h | 12 +-
net/9p/trans_fd.c | 2 -
net/9p/trans_rdma.c | 3 +-
net/9p/trans_virtio.c | 1 +
net/9p/trans_xen.c | 26 +-
net/Kconfig | 2 +-
net/atm/br2684.c | 6 +-
net/atm/lec.c | 8 +-
net/ax25/af_ax25.c | 2 +-
net/ax25/ax25_dev.c | 2 +-
net/ax25/ax25_iface.c | 6 +-
net/ax25/ax25_in.c | 4 +-
net/ax25/ax25_out.c | 2 +-
net/batman-adv/bridge_loop_avoidance.c | 22 +-
net/batman-adv/main.c | 56 +-
net/batman-adv/multicast.c | 2 +-
net/batman-adv/network-coding.c | 4 +-
net/batman-adv/routing.c | 3 +-
net/batman-adv/soft-interface.c | 2 +-
net/batman-adv/tp_meter.c | 4 +-
net/batman-adv/translation-table.c | 4 +-
net/batman-adv/tvlv.c | 4 +-
net/batman-adv/tvlv.h | 4 +-
net/bluetooth/6lowpan.c | 4 +-
net/bluetooth/Makefile | 3 +-
net/bluetooth/bnep/core.c | 2 +-
net/bluetooth/eir.c | 335 +
net/bluetooth/eir.h | 72 +
net/bluetooth/hci_codec.c | 238 +
net/bluetooth/hci_codec.h | 7 +
net/bluetooth/hci_conn.c | 168 +-
net/bluetooth/hci_core.c | 320 +-
net/bluetooth/hci_debugfs.c | 123 +
net/bluetooth/hci_debugfs.h | 5 +
net/bluetooth/hci_event.c | 135 +-
net/bluetooth/hci_request.c | 478 +-
net/bluetooth/hci_request.h | 25 +-
net/bluetooth/hci_sock.c | 214 +-
net/bluetooth/l2cap_core.c | 2 +-
net/bluetooth/l2cap_sock.c | 10 +-
net/bluetooth/mgmt.c | 445 +-
net/bluetooth/msft.c | 172 +-
net/bluetooth/msft.h | 9 +
net/bluetooth/rfcomm/core.c | 50 +-
net/bluetooth/rfcomm/sock.c | 46 +-
net/bluetooth/sco.c | 209 +-
net/bpf/Makefile | 3 +
net/bpf/bpf_dummy_struct_ops.c | 200 +
net/bpf/test_run.c | 50 +-
net/bridge/br.c | 4 +-
net/bridge/br_fdb.c | 439 +-
net/bridge/br_if.c | 4 +-
net/bridge/br_ioctl.c | 10 +-
net/bridge/br_mdb.c | 242 +-
net/bridge/br_netfilter_hooks.c | 2 +-
net/bridge/br_netlink.c | 4 +-
net/bridge/br_private.h | 45 +-
net/bridge/br_stp_if.c | 2 +-
net/bridge/br_switchdev.c | 438 +-
net/bridge/br_vlan.c | 89 +-
net/bridge/netfilter/ebtable_broute.c | 2 +-
net/bridge/netfilter/ebtable_filter.c | 13 +-
net/bridge/netfilter/ebtable_nat.c | 12 +-
net/bridge/netfilter/ebtables.c | 17 +-
net/caif/caif_usb.c | 2 +-
net/can/bcm.c | 2 +-
net/can/isotp.c | 51 +-
net/can/j1939/j1939-priv.h | 1 +
net/can/j1939/main.c | 14 +-
net/can/j1939/transport.c | 25 +-
net/ceph/mon_client.c | 3 +-
net/ceph/osd_client.c | 60 +-
net/core/Makefile | 1 +
net/core/datagram.c | 3 +-
net/core/dev.c | 104 +-
net/core/dev_ioctl.c | 2 -
net/core/devlink.c | 825 +-
net/core/filter.c | 108 +-
net/core/flow_dissector.c | 18 +-
net/core/gen_estimator.c | 52 +-
net/core/gen_stats.c | 186 +-
net/core/neighbour.c | 204 +-
net/core/net-sysfs.c | 61 +-
net/core/net_namespace.c | 4 +
net/core/of_net.c | 170 +
net/core/page_pool.c | 10 +-
net/core/rtnetlink.c | 13 +-
net/core/selftests.c | 8 +-
net/core/skbuff.c | 99 +-
net/core/skmsg.c | 57 +-
net/core/sock.c | 104 +-
net/core/sock_destructor.h | 12 +
net/core/sock_map.c | 6 -
net/core/stream.c | 5 +-
net/core/sysctl_net_core.c | 2 +-
net/core/xdp.c | 2 -
net/dccp/dccp.h | 2 +-
net/dccp/proto.c | 14 +-
net/dsa/Kconfig | 20 +-
net/dsa/Makefile | 3 +-
net/dsa/dsa.c | 22 +-
net/dsa/dsa2.c | 86 +-
net/dsa/port.c | 27 +-
net/dsa/slave.c | 90 +-
net/dsa/switch.c | 249 +-
net/dsa/tag_8021q.c | 114 +-
net/dsa/tag_ksz.c | 1 -
net/dsa/tag_ocelot.c | 42 +
net/dsa/tag_ocelot_8021q.c | 2 +-
net/dsa/tag_rtl4_a.c | 2 +-
net/dsa/tag_rtl8_4.c | 178 +
net/dsa/tag_sja1105.c | 9 +-
net/ethernet/eth.c | 102 +-
net/ethtool/Makefile | 2 +-
net/ethtool/ioctl.c | 171 +-
net/ethtool/module.c | 180 +
net/ethtool/netlink.c | 19 +
net/ethtool/netlink.h | 4 +
net/ethtool/pause.c | 3 +-
net/hsr/hsr_device.c | 10 +-
net/hsr/hsr_forward.c | 54 +-
net/hsr/hsr_framereg.c | 65 +-
net/hsr/hsr_framereg.h | 4 +-
net/hsr/hsr_main.c | 2 +-
net/hsr/hsr_main.h | 16 +-
net/ieee802154/6lowpan/core.c | 2 +-
net/ipv4/af_inet.c | 30 +-
net/ipv4/arp.c | 11 +-
net/ipv4/bpf_tcp_ca.c | 45 +-
net/ipv4/cipso_ipv4.c | 2 +-
net/ipv4/datagram.c | 1 -
net/ipv4/devinet.c | 4 +
net/ipv4/fib_notifier.c | 1 -
net/ipv4/inet_connection_sock.c | 4 +-
net/ipv4/inet_diag.c | 2 +-
net/ipv4/inet_hashtables.c | 2 +-
net/ipv4/ip_gre.c | 2 +-
net/ipv4/ip_sockglue.c | 11 +-
net/ipv4/ip_tunnel.c | 2 +-
net/ipv4/ip_vti.c | 2 +-
net/ipv4/ipconfig.c | 12 +-
net/ipv4/ipip.c | 2 +-
net/ipv4/netfilter/arp_tables.c | 7 +-
net/ipv4/netfilter/arptable_filter.c | 10 +-
net/ipv4/netfilter/ip_tables.c | 7 +-
net/ipv4/netfilter/iptable_filter.c | 9 +-
net/ipv4/netfilter/iptable_mangle.c | 8 +-
net/ipv4/netfilter/iptable_nat.c | 15 +-
net/ipv4/netfilter/iptable_raw.c | 10 +-
net/ipv4/netfilter/iptable_security.c | 9 +-
net/ipv4/proc.c | 2 +-
net/ipv4/route.c | 8 -
net/ipv4/syncookies.c | 2 -
net/ipv4/sysctl_net_ipv4.c | 21 -
net/ipv4/tcp.c | 160 +-
net/ipv4/tcp_bbr.c | 28 +-
net/ipv4/tcp_bpf.c | 75 +-
net/ipv4/tcp_cubic.c | 26 +-
net/ipv4/tcp_dctcp.c | 26 +-
net/ipv4/tcp_fastopen.c | 6 -
net/ipv4/tcp_input.c | 37 +-
net/ipv4/tcp_ipv4.c | 76 +-
net/ipv4/tcp_minisocks.c | 7 -
net/ipv4/tcp_nv.c | 1 -
net/ipv4/tcp_output.c | 66 +-
net/ipv4/tcp_rate.c | 6 +
net/ipv4/udp.c | 4 +-
net/ipv4/udp_bpf.c | 1 +
net/ipv4/udp_tunnel_core.c | 3 -
net/ipv4/xfrm4_tunnel.c | 2 -
net/ipv6/Kconfig | 6 +-
net/ipv6/Makefile | 11 +-
net/ipv6/addrconf.c | 19 +-
net/ipv6/af_inet6.c | 21 +-
net/ipv6/exthdrs.c | 2 +-
net/ipv6/ila/ila_xlat.c | 6 +-
net/ipv6/ioam6.c | 11 +-
net/ipv6/ioam6_iptunnel.c | 300 +-
net/ipv6/ip6_gre.c | 4 +-
net/ipv6/ip6_output.c | 3 +-
net/ipv6/ip6_tunnel.c | 2 +-
net/ipv6/ip6_vti.c | 2 +-
net/ipv6/ipv6_sockglue.c | 11 +-
net/ipv6/ndisc.c | 16 +-
net/ipv6/netfilter/ip6_tables.c | 6 +-
net/ipv6/netfilter/ip6t_rt.c | 48 +-
net/ipv6/netfilter/ip6table_filter.c | 10 +-
net/ipv6/netfilter/ip6table_mangle.c | 8 +-
net/ipv6/netfilter/ip6table_nat.c | 15 +-
net/ipv6/netfilter/ip6table_raw.c | 10 +-
net/ipv6/netfilter/ip6table_security.c | 9 +-
net/ipv6/route.c | 24 +-
net/ipv6/seg6.c | 8 +-
net/ipv6/seg6_hmac.c | 4 +-
net/ipv6/sit.c | 4 +-
net/ipv6/tcp_ipv6.c | 58 +-
net/ipv6/udp.c | 12 +-
net/llc/llc_c_ac.c | 2 +-
net/llc/llc_if.c | 2 +-
net/llc/llc_output.c | 2 +-
net/llc/llc_proc.c | 2 +-
net/mac80211/agg-rx.c | 14 +-
net/mac80211/cfg.c | 38 +
net/mac80211/debugfs_sta.c | 123 +-
net/mac80211/fils_aead.c | 22 +-
net/mac80211/ibss.c | 33 +-
net/mac80211/ieee80211_i.h | 35 +-
net/mac80211/iface.c | 39 +-
net/mac80211/mesh.c | 96 +-
net/mac80211/mesh_hwmp.c | 44 +-
net/mac80211/mesh_plink.c | 11 +-
net/mac80211/mesh_sync.c | 26 +-
net/mac80211/mlme.c | 355 +-
net/mac80211/pm.c | 4 +
net/mac80211/rx.c | 12 +-
net/mac80211/s1g.c | 8 +-
net/mac80211/scan.c | 16 +-
net/mac80211/sta_info.c | 3 +
net/mac80211/tdls.c | 63 +-
net/mac80211/tx.c | 206 +-
net/mac80211/util.c | 40 +-
net/mac802154/iface.c | 17 +-
net/mctp/Kconfig | 12 +-
net/mctp/Makefile | 3 +
net/mctp/af_mctp.c | 174 +-
net/mctp/device.c | 104 +-
net/mctp/neigh.c | 4 +-
net/mctp/route.c | 362 +-
net/mctp/test/route-test.c | 544 +
net/mctp/test/utils.c | 67 +
net/mctp/test/utils.h | 20 +
net/mptcp/mib.c | 17 +-
net/mptcp/mptcp_diag.c | 26 +-
net/mptcp/options.c | 54 +-
net/mptcp/pm_netlink.c | 9 +-
net/mptcp/protocol.c | 447 +-
net/mptcp/protocol.h | 19 +-
net/mptcp/sockopt.c | 279 +
net/netfilter/Kconfig | 13 +-
net/netfilter/core.c | 38 +-
net/netfilter/ipvs/ip_vs_core.c | 166 +-
net/netfilter/ipvs/ip_vs_ctl.c | 16 +-
net/netfilter/ipvs/ip_vs_est.c | 5 +
net/netfilter/nf_conntrack_proto.c | 16 +
net/netfilter/nf_conntrack_proto_udp.c | 7 +-
net/netfilter/nf_nat_core.c | 12 +-
net/netfilter/nf_tables_core.c | 2 +-
net/netfilter/nf_tables_trace.c | 4 +-
net/netfilter/nfnetlink_hook.c | 16 +-
net/netfilter/nfnetlink_queue.c | 2 +-
net/netfilter/nft_chain_filter.c | 13 +-
net/netfilter/nft_dynset.c | 11 +-
net/netfilter/nft_meta.c | 8 +-
net/netfilter/nft_payload.c | 60 +-
net/netfilter/xt_IDLETIMER.c | 2 +-
net/netfilter/xt_RATEEST.c | 7 +-
net/netlink/af_netlink.c | 23 +-
net/netrom/af_netrom.c | 4 +-
net/netrom/nr_dev.c | 8 +-
net/netrom/nr_route.c | 4 +-
net/nfc/hci/command.c | 16 -
net/nfc/hci/llc_shdlc.c | 35 +-
net/nfc/llcp_commands.c | 8 -
net/nfc/llcp_core.c | 5 +-
net/nfc/nci/core.c | 4 -
net/nfc/nci/hci.c | 4 -
net/nfc/nci/ntf.c | 9 -
net/nfc/nci/uart.c | 18 +-
net/nfc/netlink.c | 15 +
net/openvswitch/meter.c | 1 -
net/packet/af_packet.c | 35 +
net/qrtr/Makefile | 3 +-
net/qrtr/{qrtr.c => af_qrtr.c} | 0
net/rose/af_rose.c | 5 +-
net/rose/rose_dev.c | 8 +-
net/rose/rose_link.c | 8 +-
net/rose/rose_route.c | 10 +-
net/rxrpc/rtt.c | 2 +-
net/sched/act_api.c | 21 +-
net/sched/act_bpf.c | 2 +-
net/sched/act_ct.c | 2 +-
net/sched/act_ife.c | 4 +-
net/sched/act_mpls.c | 2 +-
net/sched/act_police.c | 4 +-
net/sched/act_sample.c | 2 +-
net/sched/act_simple.c | 3 +-
net/sched/act_skbedit.c | 2 +-
net/sched/act_skbmod.c | 2 +-
net/sched/cls_flower.c | 3 +-
net/sched/em_meta.c | 2 +-
net/sched/sch_api.c | 25 +-
net/sched/sch_atm.c | 6 +-
net/sched/sch_cbq.c | 15 +-
net/sched/sch_drr.c | 13 +-
net/sched/sch_ets.c | 17 +-
net/sched/sch_fq_codel.c | 20 +-
net/sched/sch_generic.c | 84 +-
net/sched/sch_gred.c | 65 +-
net/sched/sch_hfsc.c | 11 +-
net/sched/sch_htb.c | 51 +-
net/sched/sch_mq.c | 31 +-
net/sched/sch_mqprio.c | 64 +-
net/sched/sch_multiq.c | 3 +-
net/sched/sch_netem.c | 2 +-
net/sched/sch_prio.c | 4 +-
net/sched/sch_qfq.c | 13 +-
net/sched/sch_taprio.c | 29 +-
net/sched/sch_tbf.c | 16 +
net/sctp/output.c | 13 +-
net/sctp/protocol.c | 1 -
net/sctp/sm_statefuns.c | 171 +-
net/sctp/socket.c | 5 +-
net/sctp/transport.c | 11 +-
net/smc/Makefile | 2 +
net/smc/af_smc.c | 469 +-
net/smc/smc.h | 23 +-
net/smc/smc_clc.c | 463 +-
net/smc/smc_clc.h | 72 +-
net/smc/smc_core.c | 192 +-
net/smc/smc_core.h | 51 +-
net/smc/smc_ib.c | 160 +-
net/smc/smc_ib.h | 16 +-
net/smc/smc_ism.c | 16 +-
net/smc/smc_ism.h | 2 +-
net/smc/smc_llc.c | 625 +-
net/smc/smc_llc.h | 12 +-
net/smc/smc_netlink.c | 47 +-
net/smc/smc_netlink.h | 2 +
net/smc/smc_pnet.c | 41 +-
net/smc/smc_rx.c | 3 +
net/smc/smc_tracepoint.c | 9 +
net/smc/smc_tracepoint.h | 116 +
net/smc/smc_tx.c | 3 +
net/smc/smc_wr.c | 237 +-
net/smc/smc_wr.h | 8 +
net/strparser/strparser.c | 10 +-
net/sunrpc/addr.c | 40 +-
net/sunrpc/auth_gss/svcauth_gss.c | 2 +-
net/sunrpc/clnt.c | 33 +-
net/sunrpc/sched.c | 20 +-
net/sunrpc/svc.c | 80 +-
net/sunrpc/svc_xprt.c | 1 +
net/sunrpc/sysfs.c | 12 +-
net/sunrpc/xdr.c | 32 +-
net/sunrpc/xprt.c | 41 +-
net/sunrpc/xprtrdma/frwr_ops.c | 48 +-
net/sunrpc/xprtrdma/rpc_rdma.c | 23 +-
net/sunrpc/xprtrdma/svc_rdma_recvfrom.c | 9 +-
net/sunrpc/xprtrdma/svc_rdma_rw.c | 30 +-
net/sunrpc/xprtrdma/svc_rdma_sendto.c | 14 +-
net/sunrpc/xprtrdma/verbs.c | 3 +-
net/sunrpc/xprtrdma/xprt_rdma.h | 6 +-
net/sunrpc/xprtsock.c | 109 +-
net/switchdev/switchdev.c | 156 +-
net/sysctl_net.c | 2 +-
net/tipc/bearer.c | 4 +-
net/tipc/bearer.h | 2 +-
net/tipc/crypto.c | 32 +-
net/tipc/eth_media.c | 2 +-
net/tipc/ib_media.c | 2 +-
net/tls/tls_main.c | 92 +-
net/tls/tls_sw.c | 75 +-
net/unix/af_unix.c | 4 +
net/unix/unix_bpf.c | 2 +
net/vmw_vsock/af_vsock.c | 82 +-
net/wireless/Makefile | 4 +-
net/wireless/core.c | 12 +-
net/wireless/core.h | 2 +
net/wireless/mlme.c | 26 +-
net/wireless/nl80211.c | 452 +-
net/wireless/rdev-ops.h | 14 +
net/wireless/scan.c | 66 +-
net/wireless/trace.h | 31 +
net/wireless/util.c | 16 +-
net/xdp/xsk.c | 15 -
net/xdp/xsk_buff_pool.c | 132 +-
net/xdp/xsk_queue.h | 12 +-
net/xfrm/xfrm_input.c | 4 +-
net/xfrm/xfrm_policy.c | 4 +-
net/xfrm/xfrm_user.c | 2 +-
samples/Kconfig | 17 +-
samples/Makefile | 2 +
samples/bpf/.gitignore | 4 +
samples/bpf/Makefile | 47 +-
samples/bpf/xdp1_user.c | 2 +-
samples/bpf/xdp_redirect_cpu_user.c | 6 +-
samples/bpf/xdp_router_ipv4_user.c | 39 +-
samples/bpf/xdp_sample_pkts_user.c | 2 +-
samples/fanotify/.gitignore | 1 +
samples/fanotify/Makefile | 5 +
samples/fanotify/fs-monitor.c | 142 +
samples/ftrace/Makefile | 1 +
samples/ftrace/ftrace-direct-modify.c | 44 +
samples/ftrace/ftrace-direct-multi.c | 54 +
samples/ftrace/ftrace-direct-too.c | 28 +
samples/ftrace/ftrace-direct.c | 28 +
samples/kfifo/bytestream-example.c | 12 +-
samples/kfifo/inttype-example.c | 12 +-
samples/kfifo/record-example.c | 12 +-
samples/kprobes/kretprobe_example.c | 2 +-
samples/nitro_enclaves/ne_ioctl_sample.c | 7 +-
samples/seccomp/bpf-helper.h | 8 +-
samples/vfio-mdev/mbochs.c | 3 +-
samples/vfio-mdev/mdpy.c | 2 +-
samples/vfio-mdev/mtty.c | 2 +-
scripts/Makefile.build | 63 +-
scripts/Makefile.debug | 33 +
scripts/Makefile.gcc-plugins | 2 -
scripts/Makefile.lib | 12 -
scripts/Makefile.modfinal | 3 +-
scripts/Makefile.package | 10 +-
scripts/bpf_doc.py | 2 +
scripts/checkpatch.pl | 36 +-
scripts/coccinelle/misc/do_div.cocci | 155 +
scripts/const_structs.checkpatch | 4 +
scripts/decodecode | 2 +-
scripts/documentation-file-ref-check | 4 +
scripts/dtc/checks.c | 222 +-
scripts/dtc/dtc-lexer.l | 2 +-
scripts/dtc/dtc.c | 6 +-
scripts/dtc/dtc.h | 40 +-
scripts/dtc/flattree.c | 11 +-
scripts/dtc/libfdt/fdt.c | 4 +
scripts/dtc/libfdt/fdt_rw.c | 18 +-
scripts/dtc/libfdt/fdt_strerror.c | 1 +
scripts/dtc/libfdt/libfdt.h | 7 +
scripts/dtc/livetree.c | 6 +-
scripts/dtc/treesource.c | 48 +-
scripts/dtc/util.h | 6 +-
scripts/dtc/version_gen.h | 2 +-
scripts/dtc/yamltree.c | 16 +-
scripts/gcc-plugins/Kconfig | 20 +-
scripts/gcc-plugins/arm_ssp_per_task_plugin.c | 27 +-
scripts/gcc-plugins/cyc_complexity_plugin.c | 69 -
scripts/gcc-plugins/gcc-common.h | 132 +-
scripts/gcc-plugins/gcc-generate-gimple-pass.h | 19 -
scripts/gcc-plugins/gcc-generate-ipa-pass.h | 19 -
scripts/gcc-plugins/gcc-generate-rtl-pass.h | 19 -
scripts/gcc-plugins/gcc-generate-simple_ipa-pass.h | 19 -
scripts/gcc-plugins/structleak_plugin.c | 2 -
scripts/gdb/linux/symbols.py | 3 +-
scripts/get_abi.pl | 493 +-
scripts/kconfig/conf.c | 15 +-
scripts/kconfig/confdata.c | 441 +-
scripts/kconfig/lexer.l | 9 +-
scripts/kconfig/lkc_proto.h | 2 +-
scripts/kconfig/menu.c | 33 +-
scripts/kconfig/symbol.c | 43 -
scripts/kernel-doc | 11 +
scripts/leaking_addresses.pl | 3 +-
scripts/link-vmlinux.sh | 17 +-
scripts/package/buildtar | 4 +
scripts/pahole-flags.sh | 20 +
scripts/remove-stale-files | 5 +
scripts/sorttable.c | 34 +-
scripts/spelling.txt | 16 +
scripts/tags.sh | 6 +-
scripts/test_fortify.sh | 62 +
security/Kconfig | 17 +-
security/Kconfig.hardening | 14 +-
security/apparmor/apparmorfs.c | 17 +-
security/apparmor/include/file.h | 2 +-
security/apparmor/include/label.h | 5 +-
security/apparmor/include/lib.h | 9 +-
security/apparmor/include/policy.h | 6 +-
security/apparmor/label.c | 7 +-
security/apparmor/lsm.c | 42 +-
security/apparmor/path.c | 2 +-
security/apparmor/policy.c | 62 +-
security/apparmor/policy_unpack.c | 2 +-
security/apparmor/procattr.c | 2 -
security/integrity/evm/evm_main.c | 2 +-
security/integrity/ima/ima_api.c | 2 +-
security/integrity/ima/ima_policy.c | 243 +-
security/keys/process_keys.c | 8 +
security/lsm_audit.c | 2 +-
security/security.c | 43 +-
security/selinux/avc.c | 13 +-
security/selinux/hooks.c | 261 +-
security/selinux/include/classmap.h | 4 +-
security/selinux/include/netlabel.h | 4 +-
security/selinux/netlabel.c | 25 +-
security/selinux/netport.c | 2 +-
security/selinux/ss/hashtab.c | 1 +
security/selinux/ss/mls.c | 4 +
security/selinux/ss/services.c | 176 +-
security/smack/smack_lsm.c | 87 +-
security/smack/smack_netfilter.c | 26 +-
security/smack/smackfs.c | 11 +-
sound/core/Makefile | 2 +
sound/core/memalloc.c | 220 +-
sound/core/memalloc_local.h | 1 +
sound/core/oss/mixer_oss.c | 44 +-
sound/core/pcm_compat.c | 4 +
sound/core/pcm_dmaengine.c | 5 +-
sound/core/pcm_lib.c | 22 +
sound/core/pcm_local.h | 7 +
sound/core/pcm_memory.c | 13 +-
sound/core/pcm_native.c | 66 +-
sound/core/timer.c | 17 +-
sound/firewire/Kconfig | 3 +
sound/firewire/fireworks/fireworks_stream.c | 5 +-
sound/firewire/motu/Makefile | 3 +-
sound/firewire/motu/amdtp-motu.c | 11 +-
.../motu/motu-command-dsp-message-parser.c | 181 +
sound/firewire/motu/motu-hwdep.c | 119 +-
sound/firewire/motu/motu-protocol-v2.c | 14 +-
sound/firewire/motu/motu-protocol-v3.c | 47 +-
.../motu/motu-register-dsp-message-parser.c | 420 +
sound/firewire/motu/motu-stream.c | 10 +
sound/firewire/motu/motu.c | 12 +
sound/firewire/motu/motu.h | 25 +
sound/firewire/oxfw/oxfw-stream.c | 7 +-
sound/firewire/oxfw/oxfw.c | 8 +
sound/firewire/oxfw/oxfw.h | 5 +
sound/hda/ext/hdac_ext_stream.c | 46 +-
sound/hda/hdac_stream.c | 4 +-
sound/isa/Kconfig | 2 +-
sound/isa/gus/gus_dma.c | 2 +
sound/pci/Kconfig | 1 +
sound/pci/hda/hda_intel.c | 53 +-
sound/pci/hda/patch_realtek.c | 83 +
sound/pci/rme9652/hdsp.c | 41 +-
sound/pci/rme9652/rme9652.c | 41 +-
sound/soc/amd/Kconfig | 9 +-
sound/soc/amd/Makefile | 2 +
sound/soc/amd/acp-config.c | 124 +
sound/soc/amd/acp-da7219-max98357a.c | 20 +-
sound/soc/amd/acp-pcm-dma.c | 15 +-
sound/soc/amd/acp-rt5645.c | 4 +-
sound/soc/amd/acp.h | 1 +
sound/soc/amd/acp/Kconfig | 8 +-
sound/soc/amd/acp/acp-legacy-mach.c | 19 +-
sound/soc/amd/acp/acp-mach-common.c | 33 +-
sound/soc/amd/acp/acp-mach.h | 10 +-
sound/soc/amd/acp/acp-sof-mach.c | 21 +-
sound/soc/amd/acp3x-rt5682-max9836.c | 8 +-
sound/soc/amd/mach-config.h | 28 +
sound/soc/amd/yc/acp6x-pdm-dma.c | 2 +-
sound/soc/atmel/mikroe-proto.c | 6 +-
sound/soc/atmel/tse850-pcm5142.c | 32 +-
sound/soc/bcm/bcm63xx-i2s.h | 1 -
sound/soc/bcm/bcm63xx-pcm-whistler.c | 13 +-
sound/soc/cirrus/ep93xx-i2s.c | 12 +-
sound/soc/codecs/Kconfig | 36 +-
sound/soc/codecs/Makefile | 12 +-
sound/soc/codecs/adau1701.c | 94 +-
sound/soc/codecs/ak4118.c | 18 +-
sound/soc/codecs/ak4375.c | 610 +
sound/soc/codecs/cs35l35.c | 2 +-
sound/soc/codecs/cs35l41-i2c.c | 19 +-
sound/soc/codecs/cs35l41-lib.c | 1040 +
sound/soc/codecs/cs35l41-spi.c | 20 +-
sound/soc/codecs/cs35l41-tables.c | 594 -
sound/soc/codecs/cs35l41.c | 893 +-
sound/soc/codecs/cs35l41.h | 749 +-
sound/soc/codecs/cs4265.c | 15 +-
sound/soc/codecs/cs42l42.c | 94 +-
sound/soc/codecs/cs42l42.h | 6 +-
sound/soc/codecs/cx20442.c | 3 +-
sound/soc/codecs/es7241.c | 28 +-
sound/soc/codecs/hdac_hda.c | 22 +-
sound/soc/codecs/jz4770.c | 9 +
sound/soc/codecs/max9759.c | 28 +-
sound/soc/codecs/max98373-sdw.c | 2 +-
sound/soc/codecs/max9860.c | 12 +-
sound/soc/codecs/msm8916-wcd-analog.c | 7 +-
sound/soc/codecs/mt6660.c | 5 +-
sound/soc/codecs/pcm3168a.c | 22 +-
sound/soc/codecs/rt1308-sdw.c | 2 +-
sound/soc/codecs/rt1316-sdw.c | 2 +-
sound/soc/codecs/rt5640.c | 169 +-
sound/soc/codecs/rt5640.h | 11 +-
sound/soc/codecs/rt5663.c | 12 +-
sound/soc/codecs/rt5682-sdw.c | 2 +-
sound/soc/codecs/rt5682.c | 7 +-
sound/soc/codecs/rt5682s.c | 34 +-
sound/soc/codecs/rt700.c | 2 +-
sound/soc/codecs/rt711-sdca.c | 2 +-
sound/soc/codecs/rt711.c | 2 +-
sound/soc/codecs/rt715-sdca.c | 2 +-
sound/soc/codecs/rt715.c | 2 +-
sound/soc/codecs/sdw-mockup.c | 2 +-
sound/soc/codecs/sgtl5000.c | 5 +-
sound/soc/codecs/simple-amplifier.c | 10 +-
sound/soc/codecs/simple-mux.c | 10 +-
sound/soc/codecs/ssm2305.c | 11 +-
sound/soc/codecs/tfa989x.c | 20 +-
sound/soc/codecs/tlv320adc3xxx.c | 1317 +
sound/soc/codecs/tlv320aic31xx.c | 121 +-
sound/soc/codecs/tlv320aic31xx.h | 2 +-
sound/soc/codecs/wcd-mbhc-v2.c | 76 +-
sound/soc/codecs/wcd9335.c | 17 +-
sound/soc/codecs/wcd934x.c | 6 +-
sound/soc/codecs/wcd938x.c | 8 +-
sound/soc/codecs/wm_adsp.c | 61 +-
sound/soc/codecs/wm_adsp.h | 8 +
sound/soc/codecs/wsa881x.c | 2 +-
sound/soc/codecs/zl38060.c | 4 +-
sound/soc/fsl/Kconfig | 1 +
sound/soc/fsl/fsl-asoc-card.c | 15 +-
sound/soc/fsl/fsl_asrc.c | 69 +-
sound/soc/fsl/fsl_mqs.c | 2 +-
sound/soc/fsl/imx-card.c | 49 +-
sound/soc/fsl/imx-hdmi.c | 2 +
sound/soc/fsl/imx-sgtl5000.c | 4 +-
sound/soc/fsl/imx-spdif.c | 4 +-
sound/soc/generic/audio-graph-card.c | 5 +-
sound/soc/generic/audio-graph-card2.c | 4 +-
sound/soc/generic/simple-card-utils.c | 45 +-
sound/soc/generic/simple-card.c | 3 +-
sound/soc/generic/test-component.c | 5 +-
sound/soc/img/img-i2s-in.c | 8 +-
sound/soc/img/img-i2s-out.c | 24 +-
sound/soc/img/img-parallel-out.c | 24 +-
sound/soc/img/img-spdif-in.c | 8 +-
sound/soc/img/img-spdif-out.c | 24 +-
sound/soc/img/pistachio-internal-dac.c | 9 +-
sound/soc/intel/atom/sst-mfld-platform-pcm.c | 14 +-
sound/soc/intel/boards/Kconfig | 20 +
sound/soc/intel/boards/Makefile | 2 +
sound/soc/intel/boards/bytcht_cx2072x.c | 2 +-
sound/soc/intel/boards/bytcht_nocodec.c | 2 +-
sound/soc/intel/boards/bytcr_rt5640.c | 86 +-
sound/soc/intel/boards/hda_dsp_common.c | 2 +-
sound/soc/intel/boards/sof_maxim_common.c | 180 +
sound/soc/intel/boards/sof_maxim_common.h | 16 +
sound/soc/intel/boards/sof_nau8825.c | 651 +
sound/soc/intel/boards/sof_realtek_common.c | 119 +-
sound/soc/intel/boards/sof_realtek_common.h | 7 +
sound/soc/intel/boards/sof_rt5682.c | 179 +-
sound/soc/intel/boards/sof_sdw.c | 158 +-
sound/soc/intel/boards/sof_sdw_common.h | 7 +-
sound/soc/intel/boards/sof_sdw_rt715.c | 7 -
sound/soc/intel/boards/sof_sdw_rt715_sdca.c | 7 -
sound/soc/intel/catpt/dsp.c | 14 +-
sound/soc/intel/catpt/pcm.c | 37 +-
sound/soc/intel/common/soc-acpi-intel-adl-match.c | 48 +
sound/soc/intel/common/soc-intel-quirks.h | 51 +-
sound/soc/intel/skylake/skl-pcm.c | 7 +-
sound/soc/mediatek/Kconfig | 2 +
sound/soc/mediatek/mt2701/mt2701-afe-pcm.c | 2 -
sound/soc/mediatek/mt6797/mt6797-afe-pcm.c | 2 -
sound/soc/mediatek/mt8173/mt8173-max98090.c | 8 +-
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c | 7 +-
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c | 7 +-
sound/soc/mediatek/mt8173/mt8173-rt5650.c | 7 +-
sound/soc/mediatek/mt8183/mt8183-afe-pcm.c | 2 -
sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c | 21 +-
.../mt8183/mt8183-mt6358-ts3a227-max98357.c | 26 +-
sound/soc/mediatek/mt8192/mt8192-afe-pcm.c | 2 -
.../mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c | 17 +-
sound/soc/mediatek/mt8195/mt8195-afe-clk.c | 12 +-
sound/soc/mediatek/mt8195/mt8195-afe-pcm.c | 9 +-
sound/soc/mediatek/mt8195/mt8195-dai-pcm.c | 73 +-
.../mediatek/mt8195/mt8195-mt6359-rt1011-rt5682.c | 147 +-
.../mediatek/mt8195/mt8195-mt6359-rt1019-rt5682.c | 470 +-
sound/soc/mediatek/mt8195/mt8195-reg.h | 1 +
sound/soc/meson/aiu.c | 36 +-
sound/soc/meson/axg-fifo.c | 16 +-
sound/soc/meson/axg-pdm.c | 25 +-
sound/soc/meson/axg-spdifin.c | 17 +-
sound/soc/meson/axg-spdifout.c | 17 +-
sound/soc/meson/axg-tdm-formatter.c | 50 +-
sound/soc/meson/axg-tdm-interface.c | 25 +-
sound/soc/meson/meson-card-utils.c | 8 +-
sound/soc/meson/t9015.c | 14 +-
sound/soc/mxs/mxs-sgtl5000.c | 8 +-
sound/soc/qcom/Kconfig | 1 +
sound/soc/qcom/apq8016_sbc.c | 134 +-
sound/soc/qcom/common.c | 20 +-
sound/soc/qcom/qdsp6/q6apm.c | 14 +-
sound/soc/qcom/sc7180.c | 24 +-
sound/soc/qcom/sdm845.c | 14 +-
sound/soc/qcom/sm8250.c | 4 +-
sound/soc/rockchip/rk3288_hdmi_analog.c | 10 +-
sound/soc/samsung/aries_wm8994.c | 17 +-
sound/soc/samsung/arndale.c | 5 +-
sound/soc/samsung/idma.c | 2 +
sound/soc/samsung/littlemill.c | 5 +-
sound/soc/samsung/lowland.c | 5 +-
sound/soc/samsung/odroid.c | 4 +-
sound/soc/samsung/smdk_wm8994.c | 4 +-
sound/soc/samsung/smdk_wm8994pcm.c | 4 +-
sound/soc/samsung/snow.c | 9 +-
sound/soc/samsung/speyside.c | 5 +-
sound/soc/samsung/tm2_wm5110.c | 3 +-
sound/soc/samsung/tobermory.c | 5 +-
sound/soc/sh/rz-ssi.c | 7 +-
sound/soc/soc-component.c | 28 +
sound/soc/soc-core.c | 51 +-
sound/soc/soc-dai.c | 40 +-
sound/soc/soc-pcm.c | 380 +-
sound/soc/soc-topology.c | 2 +-
sound/soc/sof/Kconfig | 18 +-
sound/soc/sof/Makefile | 4 +-
sound/soc/sof/amd/Kconfig | 33 +
sound/soc/sof/amd/Makefile | 11 +
sound/soc/sof/amd/acp-dsp-offset.h | 78 +
sound/soc/sof/amd/acp-ipc.c | 187 +
sound/soc/sof/amd/acp-loader.c | 199 +
sound/soc/sof/amd/acp-pcm.c | 82 +
sound/soc/sof/amd/acp-stream.c | 181 +
sound/soc/sof/amd/acp-trace.c | 84 +
sound/soc/sof/amd/acp.c | 446 +
sound/soc/sof/amd/acp.h | 226 +
sound/soc/sof/amd/pci-rn.c | 165 +
sound/soc/sof/amd/renoir.c | 186 +
sound/soc/sof/control.c | 61 +-
sound/soc/sof/core.c | 135 +-
sound/soc/sof/debug.c | 142 +-
sound/soc/sof/imx/Kconfig | 46 +-
sound/soc/sof/imx/imx-common.c | 28 +-
sound/soc/sof/imx/imx-common.h | 11 +
sound/soc/sof/imx/imx-ops.h | 10 -
sound/soc/sof/imx/imx8.c | 220 +-
sound/soc/sof/imx/imx8m.c | 260 +-
sound/soc/sof/intel/apl.c | 7 +-
sound/soc/sof/intel/atom.c | 64 +-
sound/soc/sof/intel/atom.h | 4 +-
sound/soc/sof/intel/bdw.c | 71 +-
sound/soc/sof/intel/byt.c | 9 +
sound/soc/sof/intel/cnl.c | 34 +-
sound/soc/sof/intel/hda-codec.c | 3 +-
sound/soc/sof/intel/hda-ctrl.c | 2 +-
sound/soc/sof/intel/hda-dai.c | 104 +-
sound/soc/sof/intel/hda-dsp.c | 52 +-
sound/soc/sof/intel/hda-ipc.c | 48 +-
sound/soc/sof/intel/hda-loader.c | 104 +-
sound/soc/sof/intel/hda-pcm.c | 127 +-
sound/soc/sof/intel/hda-stream.c | 109 +-
sound/soc/sof/intel/hda.c | 139 +-
sound/soc/sof/intel/hda.h | 22 +-
sound/soc/sof/intel/icl.c | 73 +-
sound/soc/sof/intel/pci-tng.c | 9 +
sound/soc/sof/intel/shim.h | 11 +
sound/soc/sof/intel/tgl.c | 47 +-
sound/soc/sof/ipc.c | 134 +-
sound/soc/sof/loader.c | 16 +-
sound/soc/sof/mediatek/Kconfig | 33 +
sound/soc/sof/mediatek/Makefile | 2 +
sound/soc/sof/mediatek/adsp_helper.h | 49 +
sound/soc/sof/mediatek/mt8195/Makefile | 3 +
sound/soc/sof/mediatek/mt8195/mt8195-clk.c | 158 +
sound/soc/sof/mediatek/mt8195/mt8195-clk.h | 28 +
sound/soc/sof/mediatek/mt8195/mt8195-loader.c | 56 +
sound/soc/sof/mediatek/mt8195/mt8195.c | 463 +
sound/soc/sof/mediatek/mt8195/mt8195.h | 158 +
sound/soc/sof/ops.c | 47 +-
sound/soc/sof/ops.h | 93 +-
sound/soc/sof/pcm.c | 118 +-
sound/soc/sof/pm.c | 10 +
sound/soc/sof/sof-audio.c | 239 +-
sound/soc/sof/sof-audio.h | 17 +-
sound/soc/sof/sof-of-dev.c | 68 +-
sound/soc/sof/sof-of-dev.h | 17 +
sound/soc/sof/sof-pci-dev.c | 19 +-
sound/soc/sof/sof-priv.h | 82 +-
sound/soc/sof/sof-probes.c | 2 +-
sound/soc/sof/sof-probes.h | 2 +-
sound/soc/sof/topology.c | 292 +-
sound/soc/sof/trace.c | 18 +
sound/soc/sof/xtensa/core.c | 44 +-
sound/soc/stm/stm32_adfsdm.c | 5 +-
sound/soc/stm/stm32_i2s.c | 66 +-
sound/soc/stm/stm32_sai.c | 37 +-
sound/soc/stm/stm32_sai_sub.c | 29 +-
sound/soc/stm/stm32_spdifrx.c | 48 +-
sound/soc/sunxi/sun4i-codec.c | 3 +-
sound/soc/sunxi/sun4i-spdif.c | 115 +
sound/soc/sunxi/sun8i-codec.c | 56 +
sound/soc/tegra/tegra20_i2s.c | 49 +
sound/soc/tegra/tegra20_spdif.c | 197 +-
sound/soc/tegra/tegra20_spdif.h | 1 +
sound/soc/tegra/tegra210_mvc.c | 209 +-
sound/soc/tegra/tegra210_mvc.h | 5 +
sound/soc/tegra/tegra_pcm.c | 6 +
sound/soc/tegra/tegra_pcm.h | 1 +
sound/soc/ti/ams-delta.c | 3 +-
sound/soc/ti/davinci-mcasp.c | 21 +-
sound/soc/ti/j721e-evm.c | 10 +-
sound/soc/uniphier/Kconfig | 2 -
sound/soc/xilinx/xlnx_spdif.c | 10 +-
sound/synth/emux/emux.c | 2 +-
sound/usb/6fire/comm.c | 2 +-
sound/usb/6fire/firmware.c | 6 +-
sound/usb/card.h | 11 +-
sound/usb/clock.c | 8 +-
sound/usb/endpoint.c | 230 +-
sound/usb/endpoint.h | 13 +-
sound/usb/format.c | 1 +
sound/usb/implicit.c | 2 -
sound/usb/line6/driver.c | 14 +-
sound/usb/line6/driver.h | 2 +-
sound/usb/line6/podhd.c | 6 +-
sound/usb/line6/toneport.c | 2 +-
sound/usb/misc/ua101.c | 4 +-
sound/usb/mixer.c | 49 +-
sound/usb/mixer_quirks.c | 34 +
sound/usb/pcm.c | 164 +-
sound/usb/quirks-table.h | 90 +
sound/usb/quirks.c | 12 +
sound/usb/usx2y/usbusx2yaudio.c | 11 +-
sound/virtio/virtio_pcm_msg.c | 5 +-
tools/Makefile | 27 +-
tools/arch/arm64/include/asm/sysreg.h | 1296 +
tools/arch/powerpc/include/uapi/asm/perf_regs.h | 28 +-
tools/arch/x86/include/asm/msr-index.h | 2 +
tools/arch/x86/include/asm/pvclock-abi.h | 48 +
tools/arch/x86/include/asm/pvclock.h | 103 +
tools/arch/x86/include/uapi/asm/prctl.h | 4 +
tools/arch/x86/lib/insn.c | 5 +-
tools/bootconfig/Makefile | 4 +-
tools/bootconfig/include/linux/bootconfig.h | 45 +-
tools/bootconfig/include/linux/bug.h | 12 -
tools/bootconfig/include/linux/ctype.h | 7 -
tools/bootconfig/include/linux/errno.h | 7 -
tools/bootconfig/include/linux/kernel.h | 18 -
tools/bootconfig/include/linux/memblock.h | 11 -
tools/bootconfig/include/linux/printk.h | 14 -
tools/bootconfig/include/linux/string.h | 32 -
tools/bootconfig/main.c | 32 +-
tools/bpf/bpftool/Makefile | 83 +-
tools/bpf/bpftool/btf.c | 156 +-
tools/bpf/bpftool/common.c | 50 +-
tools/bpf/bpftool/feature.c | 1 +
tools/bpf/bpftool/gen.c | 195 +-
tools/bpf/bpftool/iter.c | 2 +-
tools/bpf/bpftool/link.c | 45 +-
tools/bpf/bpftool/main.c | 17 +-
tools/bpf/bpftool/main.h | 54 +-
tools/bpf/bpftool/map.c | 45 +-
tools/bpf/bpftool/map_perf_ring.c | 1 -
tools/bpf/bpftool/pids.c | 90 +-
tools/bpf/bpftool/prog.c | 64 +-
tools/bpf/resolve_btfids/Makefile | 19 +-
tools/bpf/resolve_btfids/main.c | 36 +-
tools/bpf/runqslower/Makefile | 22 +-
tools/build/Makefile.feature | 1 +
tools/build/feature/Makefile | 12 +-
tools/build/feature/test-libtracefs.c | 10 +
tools/counter/Build | 1 +
tools/counter/Makefile | 53 +
tools/counter/counter_example.c | 92 +
tools/include/asm-generic/unaligned.h | 23 +
tools/include/linux/list_sort.h | 14 +
tools/include/linux/objtool.h | 12 +
tools/include/uapi/asm-generic/unistd.h | 5 +-
tools/include/uapi/drm/i915_drm.h | 242 +-
tools/include/uapi/linux/bpf.h | 76 +-
tools/include/uapi/linux/btf.h | 55 +-
tools/include/uapi/linux/perf_event.h | 34 +-
tools/include/uapi/linux/prctl.h | 5 +-
tools/include/uapi/sound/asound.h | 2 +-
tools/kvm/kvm_stat/kvm_stat | 2 +-
tools/lib/bpf/.gitignore | 1 -
tools/lib/bpf/Makefile | 62 +-
tools/lib/bpf/bpf.c | 67 +-
tools/lib/bpf/bpf_core_read.h | 2 +-
tools/lib/bpf/bpf_gen_internal.h | 24 +-
tools/lib/bpf/bpf_helpers.h | 51 +-
tools/lib/bpf/bpf_tracing.h | 32 +
tools/lib/bpf/btf.c | 369 +-
tools/lib/bpf/btf.h | 114 +
tools/lib/bpf/btf_dump.c | 61 +-
tools/lib/bpf/gen_loader.c | 422 +-
tools/lib/bpf/libbpf.c | 2296 +-
tools/lib/bpf/libbpf.h | 193 +-
tools/lib/bpf/libbpf.map | 16 +
tools/lib/bpf/libbpf_common.h | 24 +
tools/lib/bpf/libbpf_internal.h | 94 +-
tools/lib/bpf/libbpf_legacy.h | 18 +
tools/lib/bpf/libbpf_probes.c | 2 +-
tools/lib/bpf/libbpf_version.h | 9 +
tools/lib/bpf/linker.c | 45 +-
tools/lib/bpf/relo_core.c | 2 +-
tools/lib/bpf/skel_internal.h | 6 +-
tools/lib/bpf/xsk.c | 10 +-
tools/lib/bpf/xsk.h | 90 +-
tools/lib/list_sort.c | 252 +
tools/lib/lockdep/.gitignore | 2 -
tools/lib/lockdep/Build | 1 -
tools/lib/lockdep/Makefile | 162 -
tools/lib/lockdep/common.c | 29 -
tools/lib/lockdep/include/liblockdep/common.h | 54 -
tools/lib/lockdep/include/liblockdep/mutex.h | 73 -
tools/lib/lockdep/include/liblockdep/rwlock.h | 87 -
tools/lib/lockdep/lockdep | 3 -
tools/lib/lockdep/lockdep.c | 33 -
tools/lib/lockdep/lockdep_internals.h | 1 -
tools/lib/lockdep/lockdep_states.h | 1 -
tools/lib/lockdep/preload.c | 443 -
tools/lib/lockdep/rbtree.c | 1 -
tools/lib/lockdep/run_tests.sh | 47 -
tools/lib/lockdep/tests/AA.c | 14 -
tools/lib/lockdep/tests/AA.sh | 2 -
tools/lib/lockdep/tests/ABA.c | 14 -
tools/lib/lockdep/tests/ABA.sh | 2 -
tools/lib/lockdep/tests/ABBA.c | 26 -
tools/lib/lockdep/tests/ABBA.sh | 2 -
tools/lib/lockdep/tests/ABBA_2threads.c | 47 -
tools/lib/lockdep/tests/ABBA_2threads.sh | 2 -
tools/lib/lockdep/tests/ABBCCA.c | 20 -
tools/lib/lockdep/tests/ABBCCA.sh | 2 -
tools/lib/lockdep/tests/ABBCCDDA.c | 23 -
tools/lib/lockdep/tests/ABBCCDDA.sh | 2 -
tools/lib/lockdep/tests/ABCABC.c | 20 -
tools/lib/lockdep/tests/ABCABC.sh | 2 -
tools/lib/lockdep/tests/ABCDBCDA.c | 23 -
tools/lib/lockdep/tests/ABCDBCDA.sh | 2 -
tools/lib/lockdep/tests/ABCDBDDA.c | 23 -
tools/lib/lockdep/tests/ABCDBDDA.sh | 2 -
tools/lib/lockdep/tests/WW.c | 14 -
tools/lib/lockdep/tests/WW.sh | 2 -
tools/lib/lockdep/tests/common.h | 13 -
tools/lib/lockdep/tests/unlock_balance.c | 15 -
tools/lib/lockdep/tests/unlock_balance.sh | 2 -
tools/lib/perf/cpumap.c | 16 +-
tools/lib/perf/include/perf/event.h | 6 +
tools/objtool/arch/x86/decode.c | 180 +-
tools/objtool/check.c | 651 +-
tools/objtool/elf.c | 84 -
tools/objtool/include/objtool/arch.h | 5 +-
tools/objtool/include/objtool/cfi.h | 2 +
tools/objtool/include/objtool/check.h | 3 +-
tools/objtool/include/objtool/elf.h | 9 +-
tools/objtool/include/objtool/objtool.h | 9 +
tools/objtool/objtool.c | 22 +
tools/objtool/orc_gen.c | 15 +-
tools/objtool/special.c | 8 -
tools/perf/.gitignore | 1 +
tools/perf/Documentation/itrace.txt | 2 +
tools/perf/Documentation/perf-inject.txt | 7 +
tools/perf/Documentation/perf-intel-pt.txt | 35 +-
tools/perf/Documentation/perf-kmem.txt | 13 +-
tools/perf/Documentation/perf-list.txt | 4 +
tools/perf/Documentation/perf-record.txt | 18 +-
tools/perf/Documentation/perf-script.txt | 2 +-
tools/perf/Documentation/perf.data-file-format.txt | 2 +-
tools/perf/MANIFEST | 4 +
tools/perf/Makefile.config | 23 +-
tools/perf/Makefile.perf | 58 +-
tools/perf/arch/arm/include/arch-tests.h | 2 +-
tools/perf/arch/arm/tests/arch-tests.c | 16 +-
tools/perf/arch/arm/tests/vectors-page.c | 5 +-
tools/perf/arch/arm64/include/arch-tests.h | 2 +-
tools/perf/arch/arm64/tests/arch-tests.c | 11 +-
tools/perf/arch/arm64/util/arm-spe.c | 283 +-
tools/perf/arch/arm64/util/pmu.c | 2 +-
tools/perf/arch/powerpc/include/arch-tests.h | 2 +-
tools/perf/arch/powerpc/include/perf_regs.h | 2 +
tools/perf/arch/powerpc/tests/arch-tests.c | 12 +-
tools/perf/arch/powerpc/util/header.c | 2 +-
tools/perf/arch/powerpc/util/kvm-stat.c | 5 +-
tools/perf/arch/powerpc/util/perf_regs.c | 2 +
tools/perf/arch/powerpc/util/skip-callchain-idx.c | 2 +-
tools/perf/arch/riscv64/annotate/instructions.c | 34 +
tools/perf/arch/x86/annotate/instructions.c | 28 +-
tools/perf/arch/x86/entry/syscalls/syscall_64.tbl | 1 +
tools/perf/arch/x86/include/arch-tests.h | 14 +-
tools/perf/arch/x86/tests/arch-tests.c | 47 +-
tools/perf/arch/x86/tests/bp-modify.c | 2 +-
tools/perf/arch/x86/tests/insn-x86.c | 2 +-
tools/perf/arch/x86/tests/intel-cqm.c | 2 +-
.../arch/x86/tests/intel-pt-pkt-decoder-test.c | 2 +-
tools/perf/arch/x86/tests/rdpmc.c | 2 +-
tools/perf/arch/x86/tests/sample-parsing.c | 2 +-
tools/perf/arch/x86/util/evsel.c | 23 +
tools/perf/bench/evlist-open-close.c | 15 +-
tools/perf/bench/futex-lock-pi.c | 1 +
tools/perf/bench/futex-requeue.c | 1 +
tools/perf/bench/futex-wake-parallel.c | 1 +
tools/perf/bench/futex-wake.c | 1 +
tools/perf/bench/futex.h | 43 +-
tools/perf/bench/synthesize.c | 4 +-
tools/perf/builtin-annotate.c | 4 +
tools/perf/builtin-c2c.c | 4 +
tools/perf/builtin-daemon.c | 15 +-
tools/perf/builtin-inject.c | 11 +-
tools/perf/builtin-kvm.c | 2 +-
tools/perf/builtin-list.c | 42 +-
tools/perf/builtin-probe.c | 5 +
tools/perf/builtin-record.c | 52 +-
tools/perf/builtin-report.c | 13 +-
tools/perf/builtin-sched.c | 4 +
tools/perf/builtin-script.c | 31 +-
tools/perf/builtin-stat.c | 46 +-
tools/perf/builtin-top.c | 6 +-
tools/perf/builtin-trace.c | 27 +-
tools/perf/check-headers.sh | 2 +
tools/perf/design.txt | 3 +
tools/perf/dlfilters/dlfilter-show-cycles.c | 144 +
.../pmu-events/arch/arm64/ampere/emag/bus.json | 2 +-
.../pmu-events/arch/arm64/ampere/emag/cache.json | 20 +-
.../pmu-events/arch/arm64/ampere/emag/clock.json | 2 +-
.../arch/arm64/ampere/emag/exception.json | 4 +-
.../arch/arm64/ampere/emag/instruction.json | 10 +-
.../pmu-events/arch/arm64/ampere/emag/memory.json | 4 +-
.../arch/arm64/arm/cortex-a76-n1/branch.json | 4 +-
.../arch/arm64/arm/cortex-a76-n1/bus.json | 12 +-
.../arch/arm64/arm/cortex-a76-n1/cache.json | 34 +-
.../arch/arm64/arm/cortex-a76-n1/exception.json | 4 +-
.../arch/arm64/arm/cortex-a76-n1/instruction.json | 18 +-
.../arch/arm64/arm/cortex-a76-n1/memory.json | 2 +-
.../arch/arm64/arm/cortex-a76-n1/other.json | 2 +-
.../arch/arm64/arm/cortex-a76-n1/pipeline.json | 4 +-
.../arch/arm64/arm/neoverse-v1/branch.json | 8 +
.../pmu-events/arch/arm64/arm/neoverse-v1/bus.json | 20 +
.../arch/arm64/arm/neoverse-v1/cache.json | 155 +
.../arch/arm64/arm/neoverse-v1/exception.json | 47 +
.../arch/arm64/arm/neoverse-v1/instruction.json | 89 +
.../arch/arm64/arm/neoverse-v1/memory.json | 20 +
.../arch/arm64/arm/neoverse-v1/other.json | 5 +
.../arch/arm64/arm/neoverse-v1/pipeline.json | 23 +
.../arch/arm64/armv8-common-and-microarch.json | 72 +
.../arch/arm64/hisilicon/hip08/metrics.json | 2 +-
.../arch/arm64/hisilicon/hip08/uncore-ddrc.json | 32 +-
.../arch/arm64/hisilicon/hip08/uncore-hha.json | 120 +-
.../arch/arm64/hisilicon/hip08/uncore-l3c.json | 52 +-
tools/perf/pmu-events/arch/arm64/mapfile.csv | 1 +
tools/perf/pmu-events/arch/nds32/n13/atcpmu.json | 2 +-
.../pmu-events/arch/powerpc/power10/metrics.json | 676 +
tools/perf/pmu-events/arch/s390/cf_z10/basic.json | 2 +-
tools/perf/pmu-events/arch/s390/cf_z10/crypto.json | 2 +-
.../perf/pmu-events/arch/s390/cf_z10/extended.json | 2 +-
tools/perf/pmu-events/arch/s390/cf_z13/basic.json | 2 +-
tools/perf/pmu-events/arch/s390/cf_z13/crypto.json | 2 +-
.../perf/pmu-events/arch/s390/cf_z13/extended.json | 2 +-
tools/perf/pmu-events/arch/s390/cf_z14/basic.json | 2 +-
tools/perf/pmu-events/arch/s390/cf_z14/crypto.json | 2 +-
.../perf/pmu-events/arch/s390/cf_z14/extended.json | 2 +-
tools/perf/pmu-events/arch/s390/cf_z15/basic.json | 2 +-
tools/perf/pmu-events/arch/s390/cf_z15/crypto.json | 2 +-
.../perf/pmu-events/arch/s390/cf_z15/crypto6.json | 2 +-
.../perf/pmu-events/arch/s390/cf_z15/extended.json | 2 +-
tools/perf/pmu-events/arch/s390/cf_z196/basic.json | 2 +-
.../perf/pmu-events/arch/s390/cf_z196/crypto.json | 2 +-
.../pmu-events/arch/s390/cf_z196/extended.json | 2 +-
.../perf/pmu-events/arch/s390/cf_zec12/basic.json | 2 +-
.../perf/pmu-events/arch/s390/cf_zec12/crypto.json | 2 +-
.../pmu-events/arch/s390/cf_zec12/extended.json | 2 +-
.../pmu-events/arch/test/test_soc/cpu/uncore.json | 2 +-
.../pmu-events/arch/test/test_soc/sys/uncore.json | 7 +
.../pmu-events/arch/x86/icelakex/icx-metrics.json | 2 +-
tools/perf/pmu-events/jevents.c | 32 +-
tools/perf/pmu-events/jsmn.c | 43 +-
tools/perf/pmu-events/pmu-events.h | 8 +-
tools/perf/tests/api-io.c | 6 +-
tools/perf/tests/attr.c | 4 +-
tools/perf/tests/backward-ring-buffer.c | 7 +-
tools/perf/tests/bitmap.c | 4 +-
tools/perf/tests/bp_account.c | 36 +-
tools/perf/tests/bp_signal.c | 34 +-
tools/perf/tests/bp_signal_overflow.c | 9 +-
tools/perf/tests/bpf.c | 74 +-
tools/perf/tests/builtin-test.c | 578 +-
tools/perf/tests/clang.c | 54 +-
tools/perf/tests/code-reading.c | 7 +-
tools/perf/tests/cpumap.c | 10 +-
tools/perf/tests/demangle-java-test.c | 4 +-
tools/perf/tests/demangle-ocaml-test.c | 4 +-
tools/perf/tests/dlfilter-test.c | 4 +-
tools/perf/tests/dso-data.c | 10 +-
tools/perf/tests/dwarf-unwind.c | 5 +-
tools/perf/tests/event-times.c | 4 +-
tools/perf/tests/event_update.c | 4 +-
tools/perf/tests/evsel-roundtrip-name.c | 5 +-
tools/perf/tests/evsel-tp-sched.c | 5 +-
tools/perf/tests/expand-cgroup.c | 12 +-
tools/perf/tests/expr.c | 201 +-
tools/perf/tests/fdarray.c | 7 +-
tools/perf/tests/genelf.c | 6 +-
tools/perf/tests/hists_cumulate.c | 4 +-
tools/perf/tests/hists_filter.c | 4 +-
tools/perf/tests/hists_link.c | 4 +-
tools/perf/tests/hists_output.c | 4 +-
tools/perf/tests/is_printable_array.c | 4 +-
tools/perf/tests/keep-tracking.c | 4 +-
tools/perf/tests/kmod-path.c | 4 +-
tools/perf/tests/llvm.c | 74 +-
tools/perf/tests/maps.c | 4 +-
tools/perf/tests/mem.c | 4 +-
tools/perf/tests/mem2node.c | 4 +-
tools/perf/tests/mmap-basic.c | 4 +-
tools/perf/tests/mmap-thread-lookup.c | 8 +-
tools/perf/tests/openat-syscall-all-cpus.c | 5 +-
tools/perf/tests/openat-syscall-tp-fields.c | 5 +-
tools/perf/tests/openat-syscall.c | 5 +-
tools/perf/tests/parse-events.c | 18 +-
tools/perf/tests/parse-metric.c | 6 +-
tools/perf/tests/parse-no-sample-id-all.c | 5 +-
tools/perf/tests/pe-file-parsing.c | 6 +-
tools/perf/tests/perf-hooks.c | 4 +-
tools/perf/tests/perf-record.c | 4 +-
tools/perf/tests/perf-time-to-tsc.c | 30 +-
tools/perf/tests/pfm.c | 63 +-
tools/perf/tests/pmu-events.c | 279 +-
tools/perf/tests/pmu.c | 4 +-
tools/perf/tests/python-use.c | 4 +-
tools/perf/tests/sample-parsing.c | 47 +-
tools/perf/tests/sdt.c | 6 +-
.../tests/shell/record+script_probe_vfs_getname.sh | 6 +-
tools/perf/tests/shell/record+zstd_comp_decomp.sh | 2 +-
tools/perf/tests/shell/stat_all_metricgroups.sh | 12 +
tools/perf/tests/shell/stat_all_metrics.sh | 22 +
tools/perf/tests/shell/stat_all_pmu.sh | 22 +
tools/perf/tests/shell/stat_bpf_counters.sh | 2 +-
tools/perf/tests/shell/test_arm_coresight.sh | 11 +-
tools/perf/tests/shell/test_arm_spe.sh | 89 +
tools/perf/tests/shell/trace+probe_vfs_getname.sh | 4 +-
tools/perf/tests/stat.c | 11 +-
tools/perf/tests/sw-clock.c | 4 +-
tools/perf/tests/switch-tracking.c | 4 +-
tools/perf/tests/task-exit.c | 4 +-
tools/perf/tests/tests.h | 238 +-
tools/perf/tests/thread-map.c | 10 +-
tools/perf/tests/thread-maps-share.c | 4 +-
tools/perf/tests/time-utils-test.c | 4 +-
tools/perf/tests/topology.c | 6 +-
tools/perf/tests/unit_number__scnprintf.c | 4 +-
tools/perf/tests/vmlinux-kallsyms.c | 107 +-
tools/perf/tests/wp.c | 124 +-
tools/perf/trace/beauty/beauty.h | 5 +
tools/perf/trace/beauty/include/linux/socket.h | 2 +
tools/perf/trace/beauty/sockaddr.c | 2 +-
tools/perf/trace/beauty/sockaddr.sh | 24 +
tools/perf/trace/beauty/socket.c | 21 +-
tools/perf/trace/beauty/socket.sh | 38 +-
tools/perf/trace/beauty/socket_ipproto.sh | 12 -
tools/perf/util/Build | 6 +
tools/perf/util/annotate.c | 22 +-
tools/perf/util/annotate.h | 3 +
tools/perf/util/arm-spe-decoder/arm-spe-decoder.c | 2 +
tools/perf/util/arm-spe-decoder/arm-spe-decoder.h | 1 +
.../util/arm-spe-decoder/arm-spe-pkt-decoder.c | 2 +-
tools/perf/util/arm-spe.c | 122 +-
tools/perf/util/auxtrace.c | 3 +
tools/perf/util/auxtrace.h | 6 +
tools/perf/util/bpf-event.c | 78 +-
tools/perf/util/bpf-event.h | 2 +-
tools/perf/util/bpf-utils.c | 261 +
tools/perf/util/bpf-utils.h | 76 +
tools/perf/util/bpf_counter.c | 14 +-
tools/perf/util/bpf_counter_cgroup.c | 8 +-
tools/perf/util/c++/clang-c.h | 8 +-
tools/perf/util/c++/clang-test.cpp | 6 +-
tools/perf/util/c++/clang.cpp | 21 +-
tools/perf/util/cputopo.c | 78 +-
tools/perf/util/cputopo.h | 33 +-
tools/perf/util/cs-etm.c | 2 +-
tools/perf/util/data-convert-bt.c | 2 +-
tools/perf/util/debug.c | 19 +
tools/perf/util/dso.c | 1 +
tools/perf/util/dso.h | 2 +-
tools/perf/util/env.c | 6 +-
tools/perf/util/env.h | 2 +-
tools/perf/util/event.c | 18 +
tools/perf/util/event.h | 5 +
tools/perf/util/evsel.c | 145 +-
tools/perf/util/evsel.h | 21 +
tools/perf/util/evsel_fprintf.c | 12 +-
tools/perf/util/expr.c | 218 +-
tools/perf/util/expr.h | 38 +-
tools/perf/util/expr.l | 31 +-
tools/perf/util/expr.y | 336 +-
tools/perf/util/genelf.h | 2 +-
tools/perf/util/header.c | 33 +-
tools/perf/util/intel-bts.c | 2 +-
tools/perf/util/intel-pt-decoder/Build | 2 +
.../perf/util/intel-pt-decoder/intel-pt-decoder.c | 1 +
.../perf/util/intel-pt-decoder/intel-pt-decoder.h | 1 +
.../util/intel-pt-decoder/intel-pt-insn-decoder.c | 2 +-
tools/perf/util/intel-pt-decoder/intel-pt-log.c | 8 +-
.../util/intel-pt-decoder/intel-pt-pkt-decoder.c | 2 +-
tools/perf/util/intel-pt.c | 106 +-
tools/perf/util/machine.c | 10 +
tools/perf/util/machine.h | 2 +
tools/perf/util/mem-events.c | 20 +-
tools/perf/util/metricgroup.c | 1454 +-
tools/perf/util/metricgroup.h | 37 +-
tools/perf/util/mmap.c | 11 +
tools/perf/util/mmap.h | 3 +
tools/perf/util/parse-events-hybrid.c | 34 +-
tools/perf/util/parse-events-hybrid.h | 6 +-
tools/perf/util/parse-events.c | 392 +-
tools/perf/util/parse-events.h | 27 +-
tools/perf/util/parse-events.l | 19 +-
tools/perf/util/parse-events.y | 27 +-
tools/perf/util/pfm.c | 3 +-
tools/perf/util/pmu.c | 59 +-
tools/perf/util/pmu.h | 16 +-
tools/perf/util/python-ext-sources | 1 +
tools/perf/util/python.c | 12 +
tools/perf/util/record.h | 1 +
tools/perf/util/s390-cpumsf.c | 8 +-
tools/perf/util/s390-sample-raw.c | 6 +-
tools/perf/util/session.c | 198 +-
tools/perf/util/session.h | 10 +-
tools/perf/util/srcline.c | 338 +-
tools/perf/util/stat-shadow.c | 81 +-
tools/perf/util/symbol.c | 35 +-
tools/perf/util/symbol.h | 21 +-
tools/perf/util/synthetic-events.c | 73 +-
tools/perf/util/synthetic-events.h | 20 +-
tools/perf/util/tool.h | 1 +
tools/rcu/extract-stall.sh | 34 +
tools/scripts/Makefile.arch | 3 +-
tools/testing/cxl/Kbuild | 38 +
tools/testing/cxl/config_check.c | 13 +
tools/testing/cxl/mock_acpi.c | 109 +
tools/testing/cxl/mock_pmem.c | 24 +
tools/testing/cxl/test/Kbuild | 10 +
tools/testing/cxl/test/cxl.c | 576 +
tools/testing/cxl/test/mem.c | 256 +
tools/testing/cxl/test/mock.c | 171 +
tools/testing/cxl/test/mock.h | 27 +
tools/testing/kunit/kunit.py | 154 +-
tools/testing/kunit/kunit_json.py | 56 +-
tools/testing/kunit/kunit_kernel.py | 107 +-
tools/testing/kunit/kunit_parser.py | 1015 +-
tools/testing/kunit/kunit_tool_test.py | 211 +-
.../test_is_test_passed-all_passed_nested.log | 34 +
.../test_data/test_is_test_passed-kselftest.log | 14 +
.../test_data/test_is_test_passed-missing_plan.log | 31 +
.../testing/kunit/test_data/test_strip_hyphen.log | 16 +
tools/testing/selftests/arm64/fp/Makefile | 6 +-
tools/testing/selftests/arm64/fp/TODO | 9 +-
tools/testing/selftests/arm64/fp/asm-utils.S | 172 +
tools/testing/selftests/arm64/fp/assembler.h | 11 +
tools/testing/selftests/arm64/fp/fpsimd-test.S | 164 -
tools/testing/selftests/arm64/fp/sve-ptrace-asm.S | 33 -
tools/testing/selftests/arm64/fp/sve-ptrace.c | 511 +-
tools/testing/selftests/arm64/fp/sve-test.S | 163 -
tools/testing/selftests/arm64/fp/vec-syscfg.c | 95 +-
tools/testing/selftests/bpf/.gitignore | 5 +-
tools/testing/selftests/bpf/Makefile | 55 +-
tools/testing/selftests/bpf/README.rst | 27 +
tools/testing/selftests/bpf/bench.c | 60 +-
tools/testing/selftests/bpf/bench.h | 3 +
.../selftests/bpf/benchs/bench_bloom_filter_map.c | 477 +
.../bpf/benchs/run_bench_bloom_filter_map.sh | 45 +
.../selftests/bpf/benchs/run_bench_ringbufs.sh | 30 +-
tools/testing/selftests/bpf/benchs/run_common.sh | 60 +
.../selftests/bpf/bpf_testmod/bpf_testmod-events.h | 15 +
.../selftests/bpf/bpf_testmod/bpf_testmod.c | 52 +-
.../selftests/bpf/bpf_testmod/bpf_testmod.h | 5 +
tools/testing/selftests/bpf/btf_helpers.c | 11 +-
tools/testing/selftests/bpf/cgroup_helpers.c | 5 +-
tools/testing/selftests/bpf/cgroup_helpers.h | 2 +-
tools/testing/selftests/bpf/flow_dissector_load.c | 18 +-
tools/testing/selftests/bpf/flow_dissector_load.h | 10 +-
tools/testing/selftests/bpf/prog_tests/atomics.c | 35 +-
.../selftests/bpf/prog_tests/attach_probe.c | 33 +-
.../selftests/bpf/prog_tests/bloom_filter_map.c | 211 +
tools/testing/selftests/bpf/prog_tests/bpf_iter.c | 6 +-
.../selftests/bpf/prog_tests/bpf_iter_setsockopt.c | 2 +-
.../testing/selftests/bpf/prog_tests/bpf_obj_id.c | 2 +-
.../selftests/bpf/prog_tests/bpf_verif_scale.c | 225 +-
tools/testing/selftests/bpf/prog_tests/btf.c | 524 +-
tools/testing/selftests/bpf/prog_tests/btf_dump.c | 39 +-
.../testing/selftests/bpf/prog_tests/btf_endian.c | 18 +-
tools/testing/selftests/bpf/prog_tests/btf_split.c | 2 +-
tools/testing/selftests/bpf/prog_tests/btf_tag.c | 20 +
tools/testing/selftests/bpf/prog_tests/btf_write.c | 162 +-
.../selftests/bpf/prog_tests/cg_storage_multi.c | 2 +-
.../bpf/prog_tests/cgroup_attach_autodetach.c | 2 +-
.../selftests/bpf/prog_tests/cgroup_attach_multi.c | 2 +-
.../bpf/prog_tests/cgroup_attach_override.c | 2 +-
.../testing/selftests/bpf/prog_tests/cgroup_link.c | 2 +-
.../testing/selftests/bpf/prog_tests/cgroup_v1v2.c | 2 +-
tools/testing/selftests/bpf/prog_tests/check_mtu.c | 2 +-
.../selftests/bpf/prog_tests/core_autosize.c | 4 +-
.../testing/selftests/bpf/prog_tests/core_reloc.c | 21 +-
.../selftests/bpf/prog_tests/dummy_st_ops.c | 115 +
.../selftests/bpf/prog_tests/fentry_fexit.c | 16 +-
.../testing/selftests/bpf/prog_tests/fentry_test.c | 14 +-
.../selftests/bpf/prog_tests/fexit_bpf2bpf.c | 46 +-
.../testing/selftests/bpf/prog_tests/fexit_sleep.c | 12 +-
.../testing/selftests/bpf/prog_tests/fexit_test.c | 14 +-
.../selftests/bpf/prog_tests/flow_dissector.c | 4 +-
.../bpf/prog_tests/flow_dissector_load_bytes.c | 2 +-
.../bpf/prog_tests/flow_dissector_reattach.c | 2 +-
.../selftests/bpf/prog_tests/get_branch_snapshot.c | 130 +
.../testing/selftests/bpf/prog_tests/global_data.c | 11 +-
.../selftests/bpf/prog_tests/global_data_init.c | 2 +-
tools/testing/selftests/bpf/prog_tests/kfree_skb.c | 5 +-
.../testing/selftests/bpf/prog_tests/kfunc_call.c | 6 +-
tools/testing/selftests/bpf/prog_tests/ksyms_btf.c | 35 +-
.../selftests/bpf/prog_tests/ksyms_module.c | 57 +-
.../selftests/bpf/prog_tests/migrate_reuseport.c | 2 +-
.../selftests/bpf/prog_tests/modify_return.c | 3 +-
.../selftests/bpf/prog_tests/module_attach.c | 46 +-
tools/testing/selftests/bpf/prog_tests/netcnt.c | 2 +-
.../selftests/bpf/prog_tests/ns_current_pid_tgid.c | 3 +-
.../testing/selftests/bpf/prog_tests/perf_buffer.c | 24 +-
tools/testing/selftests/bpf/prog_tests/perf_link.c | 3 +-
.../testing/selftests/bpf/prog_tests/probe_user.c | 7 +-
.../bpf/prog_tests/raw_tp_writable_test_run.c | 3 +-
.../testing/selftests/bpf/prog_tests/rdonly_maps.c | 2 +-
tools/testing/selftests/bpf/prog_tests/recursion.c | 10 +-
.../selftests/bpf/prog_tests/reference_tracking.c | 52 +-
.../selftests/bpf/prog_tests/resolve_btfids.c | 14 +-
tools/testing/selftests/bpf/prog_tests/ringbuf.c | 12 +-
.../selftests/bpf/prog_tests/select_reuseport.c | 4 +-
.../bpf/prog_tests/send_signal_sched_switch.c | 3 +-
.../selftests/bpf/prog_tests/signal_pending.c | 2 +-
tools/testing/selftests/bpf/prog_tests/sk_assign.c | 2 +-
tools/testing/selftests/bpf/prog_tests/sk_lookup.c | 4 +-
.../selftests/bpf/prog_tests/sk_storage_tracing.c | 2 +-
tools/testing/selftests/bpf/prog_tests/skb_ctx.c | 6 +
.../selftests/bpf/prog_tests/skc_to_unix_sock.c | 54 +
tools/testing/selftests/bpf/prog_tests/skeleton.c | 35 +
tools/testing/selftests/bpf/prog_tests/snprintf.c | 4 +-
.../selftests/bpf/prog_tests/snprintf_btf.c | 2 +-
.../testing/selftests/bpf/prog_tests/sock_fields.c | 2 +-
.../selftests/bpf/prog_tests/sockmap_listen.c | 77 +-
.../selftests/bpf/prog_tests/sockopt_multi.c | 30 +-
tools/testing/selftests/bpf/prog_tests/tailcalls.c | 83 +-
.../testing/selftests/bpf/prog_tests/tc_redirect.c | 18 +-
tools/testing/selftests/bpf/prog_tests/tcp_rtt.c | 2 +-
.../testing/selftests/bpf/prog_tests/test_bpffs.c | 85 +-
tools/testing/selftests/bpf/prog_tests/test_ima.c | 3 +-
tools/testing/selftests/bpf/prog_tests/timer.c | 3 +-
tools/testing/selftests/bpf/prog_tests/timer_mim.c | 2 +-
.../selftests/bpf/prog_tests/tp_attach_query.c | 2 +-
.../selftests/bpf/prog_tests/trace_printk.c | 40 +-
.../selftests/bpf/prog_tests/trace_vprintk.c | 68 +
.../selftests/bpf/prog_tests/trampoline_count.c | 3 +-
.../testing/selftests/bpf/prog_tests/verif_stats.c | 28 +
.../selftests/bpf/prog_tests/xdp_adjust_tail.c | 6 +-
.../testing/selftests/bpf/prog_tests/xdp_attach.c | 2 +-
.../testing/selftests/bpf/prog_tests/xdp_bonding.c | 2 +-
.../selftests/bpf/prog_tests/xdp_cpumap_attach.c | 2 +-
.../selftests/bpf/prog_tests/xdp_devmap_attach.c | 6 +-
tools/testing/selftests/bpf/prog_tests/xdp_info.c | 2 +-
tools/testing/selftests/bpf/prog_tests/xdp_link.c | 2 +-
tools/testing/selftests/bpf/prog_tests/xdpwall.c | 15 +
tools/testing/selftests/bpf/progs/atomics.c | 16 +
.../selftests/bpf/progs/bloom_filter_bench.c | 153 +
.../testing/selftests/bpf/progs/bloom_filter_map.c | 82 +
tools/testing/selftests/bpf/progs/bpf_cubic.c | 12 +-
tools/testing/selftests/bpf/progs/bpf_flow.c | 3 +-
.../bpf/progs/btf_dump_test_case_bitfields.c | 10 +-
.../bpf/progs/btf_dump_test_case_packing.c | 4 +-
.../bpf/progs/btf_dump_test_case_padding.c | 2 +-
.../bpf/progs/btf_dump_test_case_syntax.c | 2 +-
.../bpf/progs/cg_storage_multi_isolated.c | 4 +-
.../selftests/bpf/progs/cg_storage_multi_shared.c | 4 +-
.../bpf/progs/cgroup_skb_sk_lookup_kern.c | 1 -
.../testing/selftests/bpf/progs/connect4_dropper.c | 2 +-
tools/testing/selftests/bpf/progs/connect4_prog.c | 2 -
tools/testing/selftests/bpf/progs/connect6_prog.c | 2 -
.../selftests/bpf/progs/connect_force_port4.c | 1 -
.../selftests/bpf/progs/connect_force_port6.c | 1 -
tools/testing/selftests/bpf/progs/dev_cgroup.c | 1 -
tools/testing/selftests/bpf/progs/dummy_st_ops.c | 50 +
tools/testing/selftests/bpf/progs/fexit_sleep.c | 4 +-
.../selftests/bpf/progs/for_each_array_map_elem.c | 14 +-
.../selftests/bpf/progs/for_each_hash_map_elem.c | 2 +-
.../selftests/bpf/progs/get_branch_snapshot.c | 40 +
.../selftests/bpf/progs/get_cgroup_id_kern.c | 1 -
tools/testing/selftests/bpf/progs/kfree_skb.c | 4 +-
.../testing/selftests/bpf/progs/kfunc_call_test.c | 4 +-
.../selftests/bpf/progs/kfunc_call_test_subprog.c | 2 +-
tools/testing/selftests/bpf/progs/map_ptr_kern.c | 1 -
tools/testing/selftests/bpf/progs/netcnt_prog.c | 1 -
.../selftests/bpf/progs/perf_event_stackmap.c | 4 +-
tools/testing/selftests/bpf/progs/recursion.c | 9 +-
tools/testing/selftests/bpf/progs/sendmsg4_prog.c | 2 -
tools/testing/selftests/bpf/progs/sendmsg6_prog.c | 2 -
tools/testing/selftests/bpf/progs/skb_pkt_end.c | 2 +-
.../selftests/bpf/progs/sockmap_parse_prog.c | 2 -
.../selftests/bpf/progs/sockmap_tcp_msg_prog.c | 2 -
.../selftests/bpf/progs/sockmap_verdict_prog.c | 14 +-
.../testing/selftests/bpf/progs/sockopt_inherit.c | 1 -
tools/testing/selftests/bpf/progs/sockopt_multi.c | 5 +-
tools/testing/selftests/bpf/progs/strobemeta.h | 4 +-
tools/testing/selftests/bpf/progs/tag.c | 54 +
tools/testing/selftests/bpf/progs/tailcall1.c | 7 +-
tools/testing/selftests/bpf/progs/tailcall2.c | 23 +-
tools/testing/selftests/bpf/progs/tailcall3.c | 7 +-
tools/testing/selftests/bpf/progs/tailcall4.c | 7 +-
tools/testing/selftests/bpf/progs/tailcall5.c | 7 +-
tools/testing/selftests/bpf/progs/tailcall6.c | 34 +
.../selftests/bpf/progs/tailcall_bpf2bpf1.c | 7 +-
.../selftests/bpf/progs/tailcall_bpf2bpf2.c | 7 +-
.../selftests/bpf/progs/tailcall_bpf2bpf3.c | 11 +-
.../selftests/bpf/progs/tailcall_bpf2bpf4.c | 15 +-
tools/testing/selftests/bpf/progs/tcp_rtt.c | 1 -
tools/testing/selftests/bpf/progs/test_btf_haskv.c | 2 -
.../selftests/bpf/progs/test_btf_map_in_map.c | 14 +-
tools/testing/selftests/bpf/progs/test_btf_newkv.c | 2 -
tools/testing/selftests/bpf/progs/test_btf_nokv.c | 2 -
.../selftests/bpf/progs/test_btf_skc_cls_ingress.c | 2 +-
.../testing/selftests/bpf/progs/test_cgroup_link.c | 4 +-
tools/testing/selftests/bpf/progs/test_check_mtu.c | 12 +-
.../selftests/bpf/progs/test_cls_redirect.c | 2 +-
.../selftests/bpf/progs/test_core_reloc_mods.c | 9 +
.../selftests/bpf/progs/test_enable_stats.c | 2 +-
.../testing/selftests/bpf/progs/test_global_data.c | 2 +-
.../selftests/bpf/progs/test_global_func1.c | 2 +-
.../selftests/bpf/progs/test_global_func3.c | 2 +-
.../selftests/bpf/progs/test_global_func5.c | 2 +-
.../selftests/bpf/progs/test_global_func6.c | 2 +-
.../selftests/bpf/progs/test_global_func7.c | 2 +-
.../selftests/bpf/progs/test_ksyms_module.c | 46 +-
.../testing/selftests/bpf/progs/test_ksyms_weak.c | 2 +-
tools/testing/selftests/bpf/progs/test_l4lb.c | 2 -
.../testing/selftests/bpf/progs/test_map_in_map.c | 13 +-
.../selftests/bpf/progs/test_map_in_map_invalid.c | 2 +-
.../bpf/progs/test_misc_tcp_hdr_options.c | 2 +-
.../selftests/bpf/progs/test_module_attach.c | 14 +
.../selftests/bpf/progs/test_pe_preserve_elems.c | 8 +-
.../testing/selftests/bpf/progs/test_perf_buffer.c | 22 +-
tools/testing/selftests/bpf/progs/test_pinning.c | 2 -
.../selftests/bpf/progs/test_pinning_invalid.c | 2 -
.../testing/selftests/bpf/progs/test_pkt_access.c | 3 +-
.../selftests/bpf/progs/test_pkt_md_access.c | 4 +-
.../testing/selftests/bpf/progs/test_probe_user.c | 28 +-
.../selftests/bpf/progs/test_queue_stack_map.h | 2 -
.../bpf/progs/test_select_reuseport_kern.c | 6 +-
tools/testing/selftests/bpf/progs/test_sk_assign.c | 3 +-
tools/testing/selftests/bpf/progs/test_sk_lookup.c | 45 +-
.../selftests/bpf/progs/test_sk_lookup_kern.c | 37 +-
.../selftests/bpf/progs/test_skb_cgroup_id_kern.c | 2 -
tools/testing/selftests/bpf/progs/test_skb_ctx.c | 7 +-
.../testing/selftests/bpf/progs/test_skb_helpers.c | 2 +-
.../selftests/bpf/progs/test_skc_to_unix_sock.c | 40 +
tools/testing/selftests/bpf/progs/test_skeleton.c | 18 +
.../selftests/bpf/progs/test_sockmap_kern.h | 1 -
.../selftests/bpf/progs/test_sockmap_listen.c | 3 +-
.../bpf/progs/test_sockmap_skb_verdict_attach.c | 2 +-
.../selftests/bpf/progs/test_sockmap_update.c | 2 +-
.../selftests/bpf/progs/test_stacktrace_build_id.c | 5 +-
.../selftests/bpf/progs/test_stacktrace_map.c | 4 +-
tools/testing/selftests/bpf/progs/test_tc_bpf.c | 2 +-
tools/testing/selftests/bpf/progs/test_tc_neigh.c | 6 +-
.../selftests/bpf/progs/test_tc_neigh_fib.c | 6 +-
tools/testing/selftests/bpf/progs/test_tc_peer.c | 10 +-
.../bpf/progs/test_tcp_check_syncookie_kern.c | 4 +-
.../testing/selftests/bpf/progs/test_tcp_estats.c | 1 -
.../selftests/bpf/progs/test_tcp_hdr_options.c | 2 +-
.../testing/selftests/bpf/progs/test_tcpbpf_kern.c | 1 -
.../selftests/bpf/progs/test_tcpnotify_kern.c | 6 +-
.../testing/selftests/bpf/progs/test_tracepoint.c | 1 -
.../testing/selftests/bpf/progs/test_tunnel_kern.c | 2 -
tools/testing/selftests/bpf/progs/test_xdp.c | 4 +-
.../bpf/progs/test_xdp_adjust_tail_grow.c | 2 +-
.../bpf/progs/test_xdp_adjust_tail_shrink.c | 4 +-
.../testing/selftests/bpf/progs/test_xdp_bpf2bpf.c | 4 +-
.../selftests/bpf/progs/test_xdp_devmap_helpers.c | 2 +-
tools/testing/selftests/bpf/progs/test_xdp_link.c | 2 +-
tools/testing/selftests/bpf/progs/test_xdp_loop.c | 4 +-
.../selftests/bpf/progs/test_xdp_noinline.c | 4 +-
.../selftests/bpf/progs/test_xdp_redirect.c | 2 -
.../bpf/progs/test_xdp_with_cpumap_helpers.c | 4 +-
.../bpf/progs/test_xdp_with_devmap_helpers.c | 4 +-
tools/testing/selftests/bpf/progs/trace_vprintk.c | 33 +
tools/testing/selftests/bpf/progs/twfw.c | 58 +
tools/testing/selftests/bpf/progs/xdp_dummy.c | 2 +-
.../selftests/bpf/progs/xdp_redirect_multi_kern.c | 4 +-
tools/testing/selftests/bpf/progs/xdping_kern.c | 4 +-
tools/testing/selftests/bpf/progs/xdpwall.c | 365 +
tools/testing/selftests/bpf/test_bpftool.py | 22 +-
tools/testing/selftests/bpf/test_bpftool_build.sh | 4 +
tools/testing/selftests/bpf/test_btf.h | 3 +
tools/testing/selftests/bpf/test_flow_dissector.sh | 10 +-
tools/testing/selftests/bpf/test_progs.c | 710 +-
tools/testing/selftests/bpf/test_progs.h | 40 +-
tools/testing/selftests/bpf/test_sockmap.c | 35 +-
tools/testing/selftests/bpf/test_sysctl.c | 4 +-
.../selftests/bpf/test_tcp_check_syncookie.sh | 4 +-
tools/testing/selftests/bpf/test_tunnel.sh | 5 +-
tools/testing/selftests/bpf/test_verifier.c | 12 +-
tools/testing/selftests/bpf/test_xdp_meta.sh | 5 +-
tools/testing/selftests/bpf/test_xdp_redirect.sh | 4 +-
.../selftests/bpf/test_xdp_redirect_multi.sh | 64 +-
tools/testing/selftests/bpf/test_xdp_veth.sh | 4 +-
tools/testing/selftests/bpf/test_xdp_vlan.sh | 7 +-
tools/testing/selftests/bpf/trace_helpers.c | 1 +
.../testing/selftests/bpf/verifier/array_access.c | 2 +-
.../selftests/bpf/verifier/atomic_cmpxchg.c | 38 +
.../testing/selftests/bpf/verifier/atomic_fetch.c | 57 +
.../selftests/bpf/verifier/atomic_invalid.c | 25 +
tools/testing/selftests/bpf/verifier/calls.c | 23 +
tools/testing/selftests/bpf/verifier/ctx_skb.c | 74 +-
tools/testing/selftests/bpf/verifier/jit.c | 69 +-
tools/testing/selftests/bpf/verifier/lwt.c | 2 +-
.../bpf/verifier/perf_event_sample_period.c | 6 +-
tools/testing/selftests/bpf/verifier/spill_fill.c | 178 +
tools/testing/selftests/bpf/vmtest.sh | 6 +-
tools/testing/selftests/bpf/xdp_redirect_multi.c | 4 +-
tools/testing/selftests/bpf/xdping.c | 7 +-
tools/testing/selftests/bpf/xdpxceiver.c | 961 +-
tools/testing/selftests/bpf/xdpxceiver.h | 75 +-
tools/testing/selftests/core/close_range_test.c | 2 +-
tools/testing/selftests/damon/debugfs_attrs.sh | 13 +
.../drivers/net/dsa/test_bridge_fdb_stress.sh | 47 +
.../drivers/net/mlxsw/devlink_trap_control.sh | 7 +-
.../drivers/net/mlxsw/devlink_trap_policer.sh | 32 +-
.../drivers/net/mlxsw/devlink_trap_tunnel_ipip.sh | 50 +-
.../selftests/drivers/net/mlxsw/mlxsw_lib.sh | 50 +
.../drivers/net/mlxsw/rif_mac_profile_scale.sh | 72 +
.../drivers/net/mlxsw/rif_mac_profiles.sh | 213 +
.../drivers/net/mlxsw/rif_mac_profiles_occ.sh | 117 +
.../selftests/drivers/net/mlxsw/rtnetlink.sh | 112 +-
.../selftests/drivers/net/mlxsw/sch_offload.sh | 290 +
.../selftests/drivers/net/mlxsw/sch_red_core.sh | 129 +-
.../selftests/drivers/net/mlxsw/sch_red_ets.sh | 64 +-
.../selftests/drivers/net/mlxsw/sch_red_root.sh | 8 +
.../mlxsw/spectrum-2/devlink_trap_tunnel_ipip6.sh | 250 +
.../drivers/net/mlxsw/spectrum-2/resource_scale.sh | 9 +-
.../net/mlxsw/spectrum-2/rif_mac_profile_scale.sh | 16 +
.../net/mlxsw/spectrum/devlink_lib_spectrum.sh | 6 +-
.../drivers/net/mlxsw/spectrum/resource_scale.sh | 2 +-
.../net/mlxsw/spectrum/rif_mac_profile_scale.sh | 16 +
.../selftests/drivers/net/mlxsw/tc_restrictions.sh | 3 +-
.../selftests/drivers/net/mlxsw/tc_sample.sh | 13 +-
.../drivers/net/netdevsim/ethtool-common.sh | 2 +-
.../drivers/net/netdevsim/tc-mq-visibility.sh | 77 +
.../drivers/net/ocelot/tc_flower_chains.sh | 50 +-
tools/testing/selftests/ftrace/ftracetest | 2 +-
tools/testing/selftests/ftrace/test.d/functions | 12 +
.../ftrace/test.d/kprobe/kprobe_args_string.tc | 3 +
.../ftrace/test.d/kprobe/kprobe_args_syntax.tc | 4 +
.../test.d/trigger/trigger-hist-expressions.tc | 63 +
.../testing/selftests/futex/functional/.gitignore | 1 +
tools/testing/selftests/futex/functional/Makefile | 3 +-
.../futex/functional/futex_wait_timeout.c | 21 +-
.../futex/functional/futex_wait_wouldblock.c | 41 +-
.../selftests/futex/functional/futex_waitv.c | 237 +
tools/testing/selftests/futex/functional/run.sh | 3 +
tools/testing/selftests/futex/include/futex2test.h | 22 +
tools/testing/selftests/kselftest/runner.sh | 28 +-
tools/testing/selftests/kvm/.gitignore | 3 +
tools/testing/selftests/kvm/Makefile | 10 +-
tools/testing/selftests/kvm/aarch64/arch_timer.c | 479 +
.../selftests/kvm/aarch64/debug-exceptions.c | 30 +-
.../selftests/kvm/aarch64/psci_cpu_on_test.c | 2 +-
tools/testing/selftests/kvm/aarch64/vgic_init.c | 369 +-
.../selftests/kvm/include/aarch64/arch_timer.h | 142 +
.../testing/selftests/kvm/include/aarch64/delay.h | 25 +
tools/testing/selftests/kvm/include/aarch64/gic.h | 21 +
.../selftests/kvm/include/aarch64/processor.h | 90 +-
.../selftests/kvm/include/aarch64/spinlock.h | 13 +
tools/testing/selftests/kvm/include/aarch64/vgic.h | 20 +
tools/testing/selftests/kvm/include/kvm_util.h | 14 +
.../selftests/kvm/include/x86_64/svm_util.h | 2 +
tools/testing/selftests/kvm/kvm_create_max_vcpus.c | 2 +-
tools/testing/selftests/kvm/lib/aarch64/gic.c | 95 +
.../selftests/kvm/lib/aarch64/gic_private.h | 21 +
tools/testing/selftests/kvm/lib/aarch64/gic_v3.c | 240 +
tools/testing/selftests/kvm/lib/aarch64/gic_v3.h | 70 +
.../testing/selftests/kvm/lib/aarch64/processor.c | 24 +-
tools/testing/selftests/kvm/lib/aarch64/spinlock.c | 27 +
tools/testing/selftests/kvm/lib/aarch64/vgic.c | 70 +
tools/testing/selftests/kvm/lib/kvm_util.c | 70 +-
tools/testing/selftests/kvm/lib/sparsebit.c | 2 +-
tools/testing/selftests/kvm/lib/x86_64/processor.c | 4 +-
tools/testing/selftests/kvm/lib/x86_64/svm.c | 27 +-
tools/testing/selftests/kvm/memslot_perf_test.c | 56 +-
.../selftests/kvm/system_counter_offset_test.c | 132 +
.../selftests/kvm/x86_64/cr4_cpuid_sync_test.c | 3 +-
.../testing/selftests/kvm/x86_64/kvm_clock_test.c | 203 +
.../selftests/kvm/x86_64/mmio_warning_test.c | 2 +-
.../selftests/kvm/x86_64/sev_migrate_tests.c | 203 +
.../selftests/kvm/x86_64/vmx_tsc_adjust_test.c | 2 +-
tools/testing/selftests/lkdtm/config | 1 +
tools/testing/selftests/lkdtm/run.sh | 10 +-
tools/testing/selftests/lkdtm/tests.txt | 1 +
tools/testing/selftests/memory-hotplug/config | 1 -
tools/testing/selftests/net/.gitignore | 5 +
tools/testing/selftests/net/Makefile | 12 +-
tools/testing/selftests/net/amt.sh | 284 +
.../selftests/net/arp_ndisc_evict_nocarrier.sh | 220 +
tools/testing/selftests/net/cmsg_so_mark.c | 67 +
tools/testing/selftests/net/cmsg_so_mark.sh | 61 +
tools/testing/selftests/net/config | 2 +
tools/testing/selftests/net/fcnal-test.sh | 63 +
tools/testing/selftests/net/fib_nexthops.sh | 1 +
tools/testing/selftests/net/forwarding/Makefile | 1 +
.../selftests/net/forwarding/bridge_igmp.sh | 12 +-
.../testing/selftests/net/forwarding/bridge_mld.sh | 12 +-
.../selftests/net/forwarding/devlink_lib.sh | 6 -
.../net/forwarding/forwarding.config.sample | 6 +
.../net/forwarding/ip6_forward_instats_vrf.sh | 172 +
.../selftests/net/forwarding/ip6gre_flat.sh | 65 +
.../selftests/net/forwarding/ip6gre_flat_key.sh | 65 +
.../selftests/net/forwarding/ip6gre_flat_keys.sh | 65 +
.../selftests/net/forwarding/ip6gre_hier.sh | 65 +
.../selftests/net/forwarding/ip6gre_hier_key.sh | 65 +
.../selftests/net/forwarding/ip6gre_hier_keys.sh | 65 +
.../testing/selftests/net/forwarding/ip6gre_lib.sh | 438 +
tools/testing/selftests/net/forwarding/lib.sh | 27 +-
.../net/forwarding/mirror_gre_bridge_1d_vlan.sh | 2 +-
.../selftests/net/forwarding/mirror_gre_changes.sh | 2 +-
.../net/forwarding/mirror_gre_vlan_bridge_1q.sh | 13 +-
.../testing/selftests/net/forwarding/mirror_lib.sh | 3 +-
.../selftests/net/forwarding/mirror_vlan.sh | 4 +-
.../selftests/net/forwarding/sch_tbf_etsprio.sh | 28 +
.../testing/selftests/net/forwarding/tc_common.sh | 10 +
tools/testing/selftests/net/gre_gso.sh | 9 +-
tools/testing/selftests/net/ioam6.sh | 208 +-
tools/testing/selftests/net/mptcp/.gitignore | 1 +
tools/testing/selftests/net/mptcp/Makefile | 2 +-
tools/testing/selftests/net/mptcp/mptcp_connect.c | 72 +-
tools/testing/selftests/net/mptcp/mptcp_join.sh | 7 +-
tools/testing/selftests/net/mptcp/mptcp_sockopt.c | 683 +
tools/testing/selftests/net/mptcp/mptcp_sockopt.sh | 31 +-
tools/testing/selftests/net/mptcp/pm_netlink.sh | 6 +-
tools/testing/selftests/net/mptcp/simult_flows.sh | 36 +-
tools/testing/selftests/net/nettest.c | 28 +-
tools/testing/selftests/net/reuseport_bpf_numa.c | 4 +
.../testing/selftests/net/test_vxlan_under_vrf.sh | 2 +
tools/testing/selftests/net/tls.c | 31 +-
tools/testing/selftests/net/udpgso_bench_rx.c | 11 +-
tools/testing/selftests/netfilter/nft_flowtable.sh | 1 -
tools/testing/selftests/netfilter/nft_nat.sh | 145 +
.../powerpc/security/mitigation-patching.sh | 4 +-
tools/testing/selftests/proc/.gitignore | 1 +
tools/testing/selftests/proc/Makefile | 2 +
tools/testing/selftests/proc/proc-tid0.c | 81 +
.../testing/selftests/rcutorture/bin/kvm-remote.sh | 1 +
tools/testing/selftests/rcutorture/bin/kvm.sh | 2 +-
tools/testing/selftests/rcutorture/bin/torture.sh | 11 +-
tools/testing/selftests/sched/cs_prctl_test.c | 28 +-
tools/testing/selftests/seccomp/seccomp_bpf.c | 6 +-
tools/testing/selftests/vm/.gitignore | 1 +
tools/testing/selftests/vm/Makefile | 1 +
tools/testing/selftests/vm/hugepage-mremap.c | 159 +
tools/testing/selftests/vm/ksm_tests.c | 154 +-
tools/testing/selftests/vm/madv_populate.c | 15 +-
tools/testing/selftests/vm/run_vmtests.sh | 11 +
tools/testing/selftests/vm/split_huge_page_test.c | 2 +-
tools/testing/selftests/vm/transhuge-stress.c | 2 +-
tools/testing/selftests/vm/userfaultfd.c | 180 +-
tools/testing/selftests/x86/Makefile | 2 +-
tools/testing/selftests/x86/amx.c | 851 +
tools/testing/selftests/x86/iopl.c | 78 +-
tools/testing/selftests/x86/test_vsyscall.c | 2 +-
tools/testing/vsock/vsock_diag_test.c | 2 -
tools/tracing/latency/latency-collector.c | 2 +-
tools/vm/page-types.c | 38 +-
tools/vm/page_owner_sort.c | 94 +-
usr/gen_init_cpio.c | 20 +-
virt/kvm/eventfd.c | 15 +-
virt/kvm/kvm_main.c | 137 +-
11304 files changed, 636270 insertions(+), 250286 deletions(-)
create mode 100644 Documentation/ABI/obsolete/o2cb
create mode 100644 Documentation/ABI/testing/sysfs-bus-fsi-devices-sbefifo
create mode 100644 Documentation/ABI/testing/sysfs-bus-iio-chemical-sunrise-co2
delete mode 100644 Documentation/ABI/testing/sysfs-bus-iio-scd30
create mode 100644 Documentation/ABI/testing/sysfs-bus-iio-temperature-max31865
create mode 100644 Documentation/ABI/testing/sysfs-bus-platform-devices-occ-hwmon
create mode 100644 Documentation/ABI/testing/sysfs-class-fc
create mode 100644 Documentation/ABI/testing/sysfs-class-hwmon
create mode 100644 Documentation/ABI/testing/sysfs-class-thermal
create mode 100644 Documentation/ABI/testing/sysfs-driver-aspeed-uart-routing
create mode 100644 Documentation/ABI/testing/sysfs-mce
create mode 100644 Documentation/ABI/testing/sysfs-timecard
create mode 100644 Documentation/admin-guide/filesystem-monitoring.rst
create mode 100644 Documentation/admin-guide/mm/damon/reclaim.rst
rename Documentation/{vm => admin-guide/mm}/swap_numa.rst (100%)
rename Documentation/{vm => admin-guide/mm}/zswap.rst (100%)
create mode 100644 Documentation/arm/stm32/stm32mp13-overview.rst
create mode 100644 Documentation/bpf/bpf_licensing.rst
create mode 100644 Documentation/devicetree/bindings/arm/arm,cci-400.yaml
create mode 100644 Documentation/devicetree/bindings/arm/cci-control-port.yaml
delete mode 100644 Documentation/devicetree/bindings/arm/cci.txt
delete mode 100644 Documentation/devicetree/bindings/arm/firmware/tlm,trusted-foundations.txt
create mode 100644 Documentation/devicetree/bindings/arm/firmware/tlm,trusted-foundations.yaml
create mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,mt8195-clock.yaml
create mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,mt8195-sys-clock.yaml
create mode 100644 Documentation/devicetree/bindings/arm/sunxi/allwinner,sun6i-a31-cpuconfig.yaml
create mode 100644 Documentation/devicetree/bindings/arm/sunxi/allwinner,sun9i-a80-prcm.yaml
create mode 100644 Documentation/devicetree/bindings/bus/palmbus.yaml
delete mode 100644 Documentation/devicetree/bindings/bus/ti-sysc.txt
create mode 100644 Documentation/devicetree/bindings/bus/ti-sysc.yaml
delete mode 100644 Documentation/devicetree/bindings/clock/fixed-mmio-clock.txt
create mode 100644 Documentation/devicetree/bindings/clock/fixed-mmio-clock.yaml
create mode 100644 Documentation/devicetree/bindings/clock/imx8ulp-cgc-clock.yaml
create mode 100644 Documentation/devicetree/bindings/clock/imx8ulp-pcc-clock.yaml
create mode 100644 Documentation/devicetree/bindings/clock/qcom,gcc-msm8994.yaml
create mode 100644 Documentation/devicetree/bindings/clock/qcom,gcc-qcm2290.yaml
create mode 100644 Documentation/devicetree/bindings/clock/qcom,sc7280-camcc.yaml
create mode 100644 Documentation/devicetree/bindings/clock/qcom,sc7280-lpasscc.yaml
create mode 100644 Documentation/devicetree/bindings/clock/samsung,exynos850-clock.yaml
delete mode 100644 Documentation/devicetree/bindings/clock/samsung,s2mps11.txt
create mode 100644 Documentation/devicetree/bindings/clock/samsung,s2mps11.yaml
create mode 100644 Documentation/devicetree/bindings/clock/stericsson,u8500-clks.yaml
delete mode 100644 Documentation/devicetree/bindings/clock/ux500.txt
create mode 100644 Documentation/devicetree/bindings/crypto/intel,keembay-ocs-ecc.yaml
delete mode 100644 Documentation/devicetree/bindings/ddr/lpddr2.txt
delete mode 100644 Documentation/devicetree/bindings/ddr/lpddr3.txt
delete mode 100644 Documentation/devicetree/bindings/display/bridge/toshiba,tc358767.txt
create mode 100644 Documentation/devicetree/bindings/display/bridge/toshiba,tc358767.yaml
create mode 100644 Documentation/devicetree/bindings/display/msm/dpu-sc7280.yaml
delete mode 100644 Documentation/devicetree/bindings/display/msm/gpu.txt
create mode 100644 Documentation/devicetree/bindings/display/msm/gpu.yaml
create mode 100644 Documentation/devicetree/bindings/display/panel/panel-edp.yaml
create mode 100644 Documentation/devicetree/bindings/display/panel/samsung,s6d27a1.yaml
create mode 100644 Documentation/devicetree/bindings/display/panel/sharp,ls060t1sx01.yaml
create mode 100644 Documentation/devicetree/bindings/display/xylon,logicvc-display.yaml
create mode 100644 Documentation/devicetree/bindings/gnss/u-blox,neo-6m.yaml
delete mode 100644 Documentation/devicetree/bindings/gnss/u-blox.txt
delete mode 100644 Documentation/devicetree/bindings/gpio/gpio-axp209.txt
delete mode 100644 Documentation/devicetree/bindings/gpio/gpio-xlp.txt
create mode 100644 Documentation/devicetree/bindings/gpio/x-powers,axp209-gpio.yaml
create mode 100644 Documentation/devicetree/bindings/gpio/xlnx,zynqmp-gpio-modepin.yaml
create mode 100644 Documentation/devicetree/bindings/gpu/host1x/nvidia,tegra210-nvdec.yaml
delete mode 100644 Documentation/devicetree/bindings/hwmon/dps650ab.txt
delete mode 100644 Documentation/devicetree/bindings/hwmon/hih6130.txt
delete mode 100644 Documentation/devicetree/bindings/hwmon/ibm,cffps1.txt
create mode 100644 Documentation/devicetree/bindings/hwmon/iio-hwmon.yaml
delete mode 100644 Documentation/devicetree/bindings/hwmon/jc42.txt
create mode 100644 Documentation/devicetree/bindings/hwmon/jedec,jc42.yaml
create mode 100644 Documentation/devicetree/bindings/hwmon/lltc,ltc4151.yaml
delete mode 100644 Documentation/devicetree/bindings/hwmon/lm70.txt
delete mode 100644 Documentation/devicetree/bindings/hwmon/lm90.txt
delete mode 100644 Documentation/devicetree/bindings/hwmon/ltc4151.txt
delete mode 100644 Documentation/devicetree/bindings/hwmon/mcp3021.txt
create mode 100644 Documentation/devicetree/bindings/hwmon/microchip,mcp3021.yaml
create mode 100644 Documentation/devicetree/bindings/hwmon/national,lm90.yaml
create mode 100644 Documentation/devicetree/bindings/hwmon/ntc-thermistor.yaml
delete mode 100644 Documentation/devicetree/bindings/hwmon/ntc_thermistor.txt
create mode 100644 Documentation/devicetree/bindings/hwmon/nuvoton,nct7802.yaml
create mode 100644 Documentation/devicetree/bindings/hwmon/pmbus/ti,lm25066.yaml
create mode 100644 Documentation/devicetree/bindings/hwmon/sensirion,sht15.yaml
delete mode 100644 Documentation/devicetree/bindings/hwmon/sht15.txt
create mode 100644 Documentation/devicetree/bindings/hwmon/ti,tmp102.yaml
create mode 100644 Documentation/devicetree/bindings/hwmon/ti,tmp108.yaml
create mode 100644 Documentation/devicetree/bindings/hwmon/ti,tmp421.yaml
delete mode 100644 Documentation/devicetree/bindings/hwmon/tmp108.txt
create mode 100644 Documentation/devicetree/bindings/i2c/apple,i2c.yaml
delete mode 100644 Documentation/devicetree/bindings/i2c/i2c-xlp9xx.txt
create mode 100644 Documentation/devicetree/bindings/iio/accel/adi,adxl313.yaml
create mode 100644 Documentation/devicetree/bindings/iio/accel/adi,adxl355.yaml
create mode 100644 Documentation/devicetree/bindings/iio/adc/adi,ad799x.yaml
create mode 100644 Documentation/devicetree/bindings/iio/adc/aspeed,ast2600-adc.yaml
create mode 100644 Documentation/devicetree/bindings/iio/adc/nxp,imx8qxp-adc.yaml
create mode 100644 Documentation/devicetree/bindings/iio/adc/ti,am3359-adc.yaml
create mode 100644 Documentation/devicetree/bindings/iio/chemical/senseair,sunrise.yaml
create mode 100644 Documentation/devicetree/bindings/iio/chemical/sensirion,scd4x.yaml
create mode 100644 Documentation/devicetree/bindings/iio/frequency/adi,adrf6780.yaml
create mode 100644 Documentation/devicetree/bindings/iio/light/liteon,ltr501.yaml
create mode 100644 Documentation/devicetree/bindings/iio/temperature/maxim,max31865.yaml
delete mode 100644 Documentation/devicetree/bindings/input/cap11xx.txt
create mode 100644 Documentation/devicetree/bindings/input/cypress-sf.yaml
create mode 100644 Documentation/devicetree/bindings/input/elan,ekth3000.yaml
delete mode 100644 Documentation/devicetree/bindings/input/elan_i2c.txt
create mode 100644 Documentation/devicetree/bindings/input/microchip,cap11xx.yaml
create mode 100644 Documentation/devicetree/bindings/input/touchscreen/silead,gsl1680.yaml
delete mode 100644 Documentation/devicetree/bindings/input/touchscreen/silead_gsl1680.txt
create mode 100644 Documentation/devicetree/bindings/input/touchscreen/ti,am3359-tsc.yaml
delete mode 100644 Documentation/devicetree/bindings/input/touchscreen/ti-tsc-adc.txt
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/microchip,eic.yaml
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/msi-controller.yaml
create mode 100644 Documentation/devicetree/bindings/ipmi/ipmi-ipmb.yaml
delete mode 100644 Documentation/devicetree/bindings/leds/register-bit-led.txt
create mode 100644 Documentation/devicetree/bindings/leds/register-bit-led.yaml
create mode 100644 Documentation/devicetree/bindings/mailbox/apple,mailbox.yaml
create mode 100644 Documentation/devicetree/bindings/media/i2c/aptina,mt9p031.yaml
create mode 100644 Documentation/devicetree/bindings/media/i2c/hynix,hi846.yaml
delete mode 100644 Documentation/devicetree/bindings/media/i2c/mt9p031.txt
delete mode 100644 Documentation/devicetree/bindings/media/i2c/ov5640.txt
create mode 100644 Documentation/devicetree/bindings/media/i2c/ovti,ov5640.yaml
create mode 100644 Documentation/devicetree/bindings/media/qcom,sc7280-venus.yaml
create mode 100644 Documentation/devicetree/bindings/media/qcom,sdm660-venus.yaml
delete mode 100644 Documentation/devicetree/bindings/media/renesas,imr.txt
create mode 100644 Documentation/devicetree/bindings/media/renesas,imr.yaml
create mode 100644 Documentation/devicetree/bindings/memory-controllers/ddr/jedec,lpddr2.yaml
rename Documentation/devicetree/bindings/{ => memory-controllers}/ddr/lpddr2-timings.txt (100%)
rename Documentation/devicetree/bindings/{ => memory-controllers}/ddr/lpddr3-timings.txt (100%)
create mode 100644 Documentation/devicetree/bindings/memory-controllers/ddr/lpddr3.txt
delete mode 100644 Documentation/devicetree/bindings/memory-controllers/fsl/ddr.txt
create mode 100644 Documentation/devicetree/bindings/memory-controllers/fsl/fsl,ddr.yaml
create mode 100644 Documentation/devicetree/bindings/memory-controllers/mediatek,mt7621-memc.yaml
delete mode 100644 Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt
create mode 100644 Documentation/devicetree/bindings/memory-controllers/ti,gpmc-child.yaml
create mode 100644 Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml
delete mode 100644 Documentation/devicetree/bindings/mfd/ac100.txt
delete mode 100644 Documentation/devicetree/bindings/mfd/aspeed-lpc.txt
create mode 100644 Documentation/devicetree/bindings/mfd/aspeed-lpc.yaml
delete mode 100644 Documentation/devicetree/bindings/mfd/axp20x.txt
create mode 100644 Documentation/devicetree/bindings/mfd/brcm,misc.yaml
create mode 100644 Documentation/devicetree/bindings/mfd/samsung,s2mpa01.yaml
create mode 100644 Documentation/devicetree/bindings/mfd/samsung,s2mps11.yaml
create mode 100644 Documentation/devicetree/bindings/mfd/samsung,s5m8767.yaml
delete mode 100644 Documentation/devicetree/bindings/mfd/samsung,sec-core.txt
create mode 100644 Documentation/devicetree/bindings/mfd/ti,am3359-tscadc.yaml
create mode 100644 Documentation/devicetree/bindings/mfd/x-powers,ac100.yaml
create mode 100644 Documentation/devicetree/bindings/mfd/x-powers,axp152.yaml
delete mode 100644 Documentation/devicetree/bindings/mips/ralink.txt
create mode 100644 Documentation/devicetree/bindings/mips/ralink.yaml
delete mode 100644 Documentation/devicetree/bindings/mmc/mmc-card.txt
create mode 100644 Documentation/devicetree/bindings/mmc/mmc-card.yaml
delete mode 100644 Documentation/devicetree/bindings/mtd/gpmc-nand.txt
delete mode 100644 Documentation/devicetree/bindings/mtd/gpmc-nor.txt
delete mode 100644 Documentation/devicetree/bindings/mtd/gpmc-onenand.txt
create mode 100644 Documentation/devicetree/bindings/mtd/ti,gpmc-nand.yaml
create mode 100644 Documentation/devicetree/bindings/mtd/ti,gpmc-onenand.yaml
create mode 100644 Documentation/devicetree/bindings/net/asix,ax88796c.yaml
delete mode 100644 Documentation/devicetree/bindings/net/dsa/qca8k.txt
create mode 100644 Documentation/devicetree/bindings/net/dsa/qca8k.yaml
delete mode 100644 Documentation/devicetree/bindings/net/gpmc-eth.txt
create mode 100644 Documentation/devicetree/bindings/net/lantiq,etop-xway.yaml
delete mode 100644 Documentation/devicetree/bindings/net/lantiq,xrx200-net.txt
create mode 100644 Documentation/devicetree/bindings/net/lantiq,xrx200-net.yaml
delete mode 100644 Documentation/devicetree/bindings/net/marvell-bluetooth.txt
create mode 100644 Documentation/devicetree/bindings/net/marvell-bluetooth.yaml
create mode 100644 Documentation/devicetree/bindings/net/nfc/marvell,nci.yaml
delete mode 100644 Documentation/devicetree/bindings/net/nfc/nfcmrvl.txt
create mode 100644 Documentation/devicetree/bindings/net/nfc/nxp,nci.yaml
create mode 100644 Documentation/devicetree/bindings/net/nfc/nxp,pn532.yaml
create mode 100644 Documentation/devicetree/bindings/net/nfc/nxp,pn544.yaml
delete mode 100644 Documentation/devicetree/bindings/net/nfc/nxp-nci.txt
delete mode 100644 Documentation/devicetree/bindings/net/nfc/pn532.txt
delete mode 100644 Documentation/devicetree/bindings/net/nfc/pn544.txt
create mode 100644 Documentation/devicetree/bindings/net/nfc/st,st-nci.yaml
create mode 100644 Documentation/devicetree/bindings/net/nfc/st,st21nfca.yaml
create mode 100644 Documentation/devicetree/bindings/net/nfc/st,st95hf.yaml
delete mode 100644 Documentation/devicetree/bindings/net/nfc/st-nci-i2c.txt
delete mode 100644 Documentation/devicetree/bindings/net/nfc/st-nci-spi.txt
delete mode 100644 Documentation/devicetree/bindings/net/nfc/st21nfca.txt
delete mode 100644 Documentation/devicetree/bindings/net/nfc/st95hf.txt
create mode 100644 Documentation/devicetree/bindings/net/nfc/ti,trf7970a.yaml
delete mode 100644 Documentation/devicetree/bindings/net/nfc/trf7970a.txt
create mode 100644 Documentation/devicetree/bindings/net/ti,bluetooth.yaml
delete mode 100644 Documentation/devicetree/bindings/net/ti-bluetooth.txt
delete mode 100644 Documentation/devicetree/bindings/net/wireless/esp,esp8089.txt
create mode 100644 Documentation/devicetree/bindings/net/wireless/esp,esp8089.yaml
delete mode 100644 Documentation/devicetree/bindings/net/wireless/qca,ath9k.txt
create mode 100644 Documentation/devicetree/bindings/net/wireless/qca,ath9k.yaml
delete mode 100644 Documentation/devicetree/bindings/net/wireless/ti,wlcore,spi.txt
delete mode 100644 Documentation/devicetree/bindings/net/wireless/ti,wlcore.txt
create mode 100644 Documentation/devicetree/bindings/net/wireless/ti,wlcore.yaml
create mode 100644 Documentation/devicetree/bindings/pci/apple,pcie.yaml
create mode 100644 Documentation/devicetree/bindings/pci/mediatek,mt7621-pcie.yaml
create mode 100644 Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml
create mode 100644 Documentation/devicetree/bindings/pci/rockchip-dw-pcie.yaml
delete mode 100644 Documentation/devicetree/bindings/phy/nvidia,tegra20-usb-phy.txt
create mode 100644 Documentation/devicetree/bindings/phy/nvidia,tegra20-usb-phy.yaml
create mode 100644 Documentation/devicetree/bindings/pinctrl/mediatek,mt7986-pinctrl.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,pmic-mpp.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,pmic-mpp.yaml
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,qcm2290-pinctrl.yaml
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,sm6350-pinctrl.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/rockchip,pinctrl.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/rockchip,pinctrl.yaml
create mode 100644 Documentation/devicetree/bindings/power/supply/samsung,battery.yaml
delete mode 100644 Documentation/devicetree/bindings/regulator/max8952.txt
delete mode 100644 Documentation/devicetree/bindings/regulator/max8973-regulator.txt
delete mode 100644 Documentation/devicetree/bindings/regulator/max8997-regulator.txt
create mode 100644 Documentation/devicetree/bindings/regulator/maxim,max8952.yaml
create mode 100644 Documentation/devicetree/bindings/regulator/maxim,max8973.yaml
create mode 100644 Documentation/devicetree/bindings/regulator/maxim,max8997.yaml
delete mode 100644 Documentation/devicetree/bindings/regulator/samsung,s2mpa01.txt
create mode 100644 Documentation/devicetree/bindings/regulator/samsung,s2mpa01.yaml
delete mode 100644 Documentation/devicetree/bindings/regulator/samsung,s2mps11.txt
create mode 100644 Documentation/devicetree/bindings/regulator/samsung,s2mps11.yaml
create mode 100644 Documentation/devicetree/bindings/regulator/samsung,s2mps13.yaml
create mode 100644 Documentation/devicetree/bindings/regulator/samsung,s2mps14.yaml
create mode 100644 Documentation/devicetree/bindings/regulator/samsung,s2mps15.yaml
create mode 100644 Documentation/devicetree/bindings/regulator/samsung,s2mpu02.yaml
delete mode 100644 Documentation/devicetree/bindings/regulator/samsung,s5m8767.txt
create mode 100644 Documentation/devicetree/bindings/regulator/samsung,s5m8767.yaml
create mode 100644 Documentation/devicetree/bindings/regulator/silergy,sy8106a.yaml
delete mode 100644 Documentation/devicetree/bindings/regulator/sy8106a-regulator.txt
create mode 100644 Documentation/devicetree/bindings/remoteproc/amlogic,meson-mx-ao-arc.yaml
delete mode 100644 Documentation/devicetree/bindings/remoteproc/mtk,scp.txt
create mode 100644 Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml
create mode 100644 Documentation/devicetree/bindings/reserved-memory/memory-region.yaml
delete mode 100644 Documentation/devicetree/bindings/reserved-memory/ramoops.txt
create mode 100644 Documentation/devicetree/bindings/reserved-memory/ramoops.yaml
create mode 100644 Documentation/devicetree/bindings/reserved-memory/reserved-memory.yaml
create mode 100644 Documentation/devicetree/bindings/reserved-memory/shared-dma-pool.yaml
delete mode 100644 Documentation/devicetree/bindings/rng/omap_rng.txt
create mode 100644 Documentation/devicetree/bindings/rng/omap_rng.yaml
create mode 100644 Documentation/devicetree/bindings/rtc/mstar,msc313-rtc.yaml
delete mode 100644 Documentation/devicetree/bindings/serial/brcm,bcm6345-uart.txt
create mode 100644 Documentation/devicetree/bindings/serial/brcm,bcm6345-uart.yaml
delete mode 100644 Documentation/devicetree/bindings/serial/fsl,s32-linflexuart.txt
create mode 100644 Documentation/devicetree/bindings/serial/fsl,s32-linflexuart.yaml
delete mode 100644 Documentation/devicetree/bindings/serial/xlnx,opb-uartlite.txt
create mode 100644 Documentation/devicetree/bindings/serial/xlnx,opb-uartlite.yaml
create mode 100644 Documentation/devicetree/bindings/soc/aspeed/uart-routing.yaml
create mode 100644 Documentation/devicetree/bindings/soc/imx/fsl,imx8mm-disp-blk-ctrl.yaml
create mode 100644 Documentation/devicetree/bindings/soc/imx/fsl,imx8mm-vpu-blk-ctrl.yaml
create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,spm.yaml
create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom-stats.yaml
create mode 100644 Documentation/devicetree/bindings/sound/ak4375.yaml
create mode 100644 Documentation/devicetree/bindings/sound/cirrus,cs42l42.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/cs42l42.txt
delete mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-alc5632.txt
create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-alc5632.yaml
create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-common.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-max98090.txt
create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-max98090.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-rt5640.txt
create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-rt5640.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-rt5677.txt
create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-rt5677.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-sgtl5000.txt
create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-sgtl5000.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-trimslice.txt
create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-trimslice.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8753.txt
create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8753.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8903.txt
create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8903.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm9712.txt
create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm9712.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra20-i2s.txt
create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra20-i2s.yaml
create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra20-spdif.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/qcom,apq8016-sbc.txt
create mode 100644 Documentation/devicetree/bindings/sound/ti,tlv320adc3xxx.yaml
create mode 100644 Documentation/devicetree/bindings/sound/wlf,wm8903.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/wm8903.txt
create mode 100644 Documentation/devicetree/bindings/spi/cdns,xspi.yaml
create mode 100644 Documentation/devicetree/bindings/spi/ingenic,spi.yaml
delete mode 100644 Documentation/devicetree/bindings/spi/spi-nxp-fspi.txt
create mode 100644 Documentation/devicetree/bindings/spi/spi-nxp-fspi.yaml
delete mode 100644 Documentation/devicetree/bindings/spi/spi-xlp.txt
create mode 100644 Documentation/devicetree/bindings/thermal/qcom-spmi-adc-tm-hc.yaml
create mode 100644 Documentation/devicetree/bindings/usb/smsc,usb3503.yaml
delete mode 100644 Documentation/devicetree/bindings/usb/udc-xilinx.txt
delete mode 100644 Documentation/devicetree/bindings/usb/usb3503.txt
create mode 100644 Documentation/devicetree/bindings/usb/xlnx,usb2.yaml
delete mode 100644 Documentation/devicetree/bindings/w1/w1-gpio.txt
create mode 100644 Documentation/devicetree/bindings/w1/w1-gpio.yaml
create mode 100644 Documentation/driver-api/media/drivers/rkisp1.rst
create mode 100644 Documentation/filesystems/nfs/reexport.rst
create mode 100644 Documentation/firmware-guide/acpi/non-d0-probe.rst
delete mode 100644 Documentation/gpu/rfc/i915_parallel_execbuf.h
create mode 100644 Documentation/hwmon/max6620.rst
create mode 100644 Documentation/networking/devlink/iosm.rst
create mode 100644 Documentation/networking/devlink/octeontx2.rst
create mode 100644 Documentation/process/maintainer-handbooks.rst
create mode 100644 Documentation/process/maintainer-tip.rst
create mode 100644 Documentation/translations/zh_CN/PCI/index.rst
create mode 100644 Documentation/translations/zh_CN/PCI/pci.rst
create mode 100644 Documentation/translations/zh_CN/admin-guide/sysrq.rst
create mode 100644 Documentation/translations/zh_CN/core-api/assoc_array.rst
create mode 100644 Documentation/translations/zh_CN/core-api/boot-time-mm.rst
create mode 100644 Documentation/translations/zh_CN/core-api/genalloc.rst
create mode 100644 Documentation/translations/zh_CN/core-api/gfp_mask-from-fs-io.rst
create mode 100644 Documentation/translations/zh_CN/core-api/kref.rst
create mode 100644 Documentation/translations/zh_CN/core-api/memory-allocation.rst
create mode 100644 Documentation/translations/zh_CN/core-api/mm-api.rst
create mode 100644 Documentation/translations/zh_CN/core-api/unaligned-memory-access.rst
create mode 100644 Documentation/translations/zh_CN/core-api/xarray.rst
create mode 100644 Documentation/userspace-api/futex2.rst
create mode 100644 Documentation/x86/xstate.rst
create mode 100644 arch/arm/boot/dts/armada-381-netgear-gs110emx.dts
create mode 100644 arch/arm/boot/dts/aspeed-bmc-inventec-transformers.dts
create mode 100644 arch/arm/boot/dts/aspeed-bmc-tyan-s7106.dts
create mode 100644 arch/arm/boot/dts/at91-lmu5000.dts
create mode 100644 arch/arm/boot/dts/at91-q5xr5.dts
create mode 100644 arch/arm/boot/dts/bcm-nsp-ax.dtsi
create mode 100644 arch/arm/boot/dts/bcm2711-rpi-cm4-io.dts
create mode 100644 arch/arm/boot/dts/bcm2711-rpi-cm4.dtsi
create mode 100644 arch/arm/boot/dts/bcm283x-rpi-wifi-bt.dtsi
create mode 100644 arch/arm/boot/dts/bcm47094-asus-rt-ac88u.dts
create mode 100644 arch/arm/boot/dts/bcm958625-meraki-alamo.dtsi
create mode 100644 arch/arm/boot/dts/bcm958625-meraki-kingpin.dtsi
create mode 100644 arch/arm/boot/dts/bcm958625-meraki-mx64-a0.dts
create mode 100644 arch/arm/boot/dts/bcm958625-meraki-mx64.dts
create mode 100644 arch/arm/boot/dts/bcm958625-meraki-mx64w-a0.dts
create mode 100644 arch/arm/boot/dts/bcm958625-meraki-mx64w.dts
create mode 100644 arch/arm/boot/dts/bcm958625-meraki-mx65.dts
create mode 100644 arch/arm/boot/dts/bcm958625-meraki-mx65w.dts
create mode 100644 arch/arm/boot/dts/bcm958625-meraki-mx6x-common.dtsi
create mode 100644 arch/arm/boot/dts/e70k02.dtsi
create mode 100644 arch/arm/boot/dts/gemini-ns2502.dts
create mode 100644 arch/arm/boot/dts/gemini-ssi1328.dts
create mode 100644 arch/arm/boot/dts/imx6qdl-skov-revc-lt2.dtsi
create mode 100644 arch/arm/boot/dts/imx6sl-tolino-vision5.dts
create mode 100644 arch/arm/boot/dts/imx6sll-kobo-librah2o.dts
create mode 100644 arch/arm/boot/dts/imx6ull-colibri-emmc-eval-v3.dts
create mode 100644 arch/arm/boot/dts/imx6ull-colibri-emmc-nonwifi.dtsi
create mode 100644 arch/arm/boot/dts/qcom-apq8026-lg-lenok.dts
create mode 100644 arch/arm/boot/dts/qcom-msm8916-samsung-serranove.dts
create mode 100644 arch/arm/boot/dts/qcom-msm8916-smp.dtsi
create mode 100644 arch/arm/boot/dts/qcom-pm8226.dtsi
create mode 100644 arch/arm/boot/dts/sama5d29.dtsi
create mode 100644 arch/arm/boot/dts/socfpga_arria10_mercury_aa1.dts
create mode 100644 arch/arm/boot/dts/stm32mp13-pinctrl.dtsi
create mode 100644 arch/arm/boot/dts/stm32mp131.dtsi
create mode 100644 arch/arm/boot/dts/stm32mp133.dtsi
create mode 100644 arch/arm/boot/dts/stm32mp135.dtsi
create mode 100644 arch/arm/boot/dts/stm32mp135f-dk.dts
create mode 100644 arch/arm/boot/dts/stm32mp13xc.dtsi
create mode 100644 arch/arm/boot/dts/stm32mp13xf.dtsi
create mode 100644 arch/arm/include/asm/current.h
delete mode 100644 arch/arm/mach-omap2/scrm54xx.h
create mode 100644 arch/arm64/boot/dts/amlogic/meson-axg-jethome-jethub-j100.dts
create mode 100644 arch/arm64/boot/dts/amlogic/meson-g12a-radxa-zero.dts
create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxl-s905w-jethome-jethub-j80.dts
create mode 100644 arch/arm64/boot/dts/broadcom/bcm2711-rpi-cm4-io.dts
create mode 100644 arch/arm64/boot/dts/exynos/exynosautov9-pinctrl.dtsi
create mode 100644 arch/arm64/boot/dts/exynos/exynosautov9-sadk.dts
create mode 100644 arch/arm64/boot/dts/exynos/exynosautov9.dtsi
create mode 100644 arch/arm64/boot/dts/freescale/fsl-lx2160a-bluebox3-rev-a.dts
create mode 100644 arch/arm64/boot/dts/freescale/fsl-lx2160a-bluebox3.dts
create mode 100644 arch/arm64/boot/dts/freescale/s32g2.dtsi
create mode 100644 arch/arm64/boot/dts/freescale/s32g274a-evb.dts
create mode 100644 arch/arm64/boot/dts/freescale/s32g274a-rdb2.dts
create mode 100644 arch/arm64/boot/dts/hisilicon/hikey970-pmic.dtsi
create mode 100644 arch/arm64/boot/dts/marvell/armada-7040-mochabin.dts
create mode 100644 arch/arm64/boot/dts/mediatek/mt8183-kukui-audio-da7219-max98357a.dtsi
create mode 100644 arch/arm64/boot/dts/mediatek/mt8183-kukui-audio-da7219-rt1015p.dtsi
create mode 100644 arch/arm64/boot/dts/mediatek/mt8183-kukui-audio-da7219.dtsi
create mode 100644 arch/arm64/boot/dts/mediatek/mt8183-kukui-audio-max98357a.dtsi
create mode 100644 arch/arm64/boot/dts/mediatek/mt8183-kukui-audio-rt1015p.dtsi
create mode 100644 arch/arm64/boot/dts/mediatek/mt8183-kukui-audio-ts3a227e-max98357a.dtsi
create mode 100644 arch/arm64/boot/dts/mediatek/mt8183-kukui-audio-ts3a227e-rt1015p.dtsi
create mode 100644 arch/arm64/boot/dts/mediatek/mt8183-kukui-audio-ts3a227e.dtsi
delete mode 100644 arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi
delete mode 100644 arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi
delete mode 100644 arch/arm64/boot/dts/qcom/msm8916-mtp.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/msm8916-samsung-serranove.dts
delete mode 100644 arch/arm64/boot/dts/qcom/msm8996-mtp.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/msm8996-xiaomi-common.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/msm8996-xiaomi-gemini.dts
create mode 100644 arch/arm64/boot/dts/qcom/msm8996-xiaomi-scorpio.dts
create mode 100644 arch/arm64/boot/dts/qcom/msm8998-fxtec-pro1.dts
create mode 100644 arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino-lilac.dts
create mode 100644 arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino-maple.dts
create mode 100644 arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino-poplar.dts
create mode 100644 arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/pm6350.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-homestar-r2.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-homestar-r3.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-homestar.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-parade-ps8640.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-ti-sn65dsi86.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sc7280-herobrine.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sm6350-sony-xperia-lena-pdx213.dts
create mode 100644 arch/arm64/boot/dts/qcom/sm6350.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts
create mode 100644 arch/arm64/boot/dts/qcom/sm7225.dtsi
create mode 100644 arch/arm64/boot/dts/renesas/draak.dtsi
create mode 100644 arch/arm64/boot/dts/renesas/ebisu.dtsi
create mode 100644 arch/arm64/boot/dts/renesas/r8a779m0.dtsi
create mode 100644 arch/arm64/boot/dts/renesas/r8a779m2.dtsi
create mode 100644 arch/arm64/boot/dts/renesas/r8a779m4.dtsi
create mode 100644 arch/arm64/boot/dts/renesas/r8a779m5-salvator-xs.dts
create mode 100644 arch/arm64/boot/dts/renesas/r8a779m5.dtsi
create mode 100644 arch/arm64/boot/dts/renesas/r8a779m6.dtsi
create mode 100644 arch/arm64/boot/dts/renesas/r8a779m7.dtsi
create mode 100644 arch/arm64/boot/dts/renesas/r8a779m8.dtsi
create mode 100644 arch/arm64/boot/dts/renesas/rzg2l-smarc-som.dtsi
create mode 100644 arch/arm64/boot/dts/rockchip/rk3328-roc-pc.dts
create mode 100644 arch/arm64/boot/dts/rockchip/rk3399-gru-scarlet-dumo.dts
create mode 100644 arch/arm64/boot/dts/rockchip/rk3399-roc-pc-plus.dts
create mode 100644 arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4a-plus.dts
create mode 100644 arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4b-plus.dts
create mode 100644 arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts
create mode 100644 arch/arm64/boot/dts/rockchip/rk3566.dtsi
create mode 100644 arch/arm64/boot/dts/rockchip/rk356x.dtsi
create mode 100644 arch/arm64/boot/dts/ti/k3-am65-iot2050-common-pg1.dtsi
create mode 100644 arch/arm64/boot/dts/ti/k3-am65-iot2050-common-pg2.dtsi
create mode 100644 arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic-common.dtsi
create mode 100644 arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic-pg2.dts
create mode 100644 arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced-common.dtsi
create mode 100644 arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced-pg2.dts
create mode 100644 arch/arm64/boot/dts/ti/k3-j721e-sk.dts
create mode 100644 arch/arm64/boot/dts/toshiba/tmpv7708-visrobo-vrb.dts
create mode 100644 arch/arm64/boot/dts/toshiba/tmpv7708-visrobo-vrc.dtsi
create mode 100644 arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dts
create mode 100644 arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dts
create mode 100644 arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
create mode 100644 arch/arm64/boot/dts/xilinx/zynqmp-smk-k26-revA.dts
create mode 100644 arch/arm64/boot/dts/xilinx/zynqmp-zcu102-rev1.1.dts
create mode 100644 arch/arm64/include/asm/asm-extable.h
create mode 100644 arch/arm64/include/asm/gpr-num.h
delete mode 100644 arch/arm64/kernel/cpu-reset.h
create mode 100644 arch/arm64/kvm/hyp/include/hyp/fault.h
create mode 100644 arch/arm64/kvm/hyp/include/nvhe/fixed_config.h
create mode 100644 arch/arm64/kvm/hyp/nvhe/pkvm.c
create mode 100644 arch/arm64/kvm/hyp/nvhe/sys_regs.c
create mode 100644 arch/arm64/mm/trans_pgd-asm.S
delete mode 100644 arch/mips/boot/compressed/.gitignore
create mode 100644 arch/mips/boot/compressed/ashldi3.c
create mode 100644 arch/mips/boot/compressed/bswapdi.c
create mode 100644 arch/mips/boot/compressed/bswapsi.c
create mode 100644 arch/mips/boot/compressed/uart-ath79.c
delete mode 100644 arch/mips/boot/dts/netlogic/Makefile
delete mode 100644 arch/mips/boot/dts/netlogic/xlp_evp.dts
delete mode 100644 arch/mips/boot/dts/netlogic/xlp_fvp.dts
delete mode 100644 arch/mips/boot/dts/netlogic/xlp_gvp.dts
delete mode 100644 arch/mips/boot/dts/netlogic/xlp_rvp.dts
delete mode 100644 arch/mips/boot/dts/netlogic/xlp_svp.dts
delete mode 100644 arch/mips/configs/nlm_xlp_defconfig
delete mode 100644 arch/mips/configs/nlm_xlr_defconfig
delete mode 100644 arch/mips/include/asm/mach-netlogic/cpu-feature-overrides.h
delete mode 100644 arch/mips/include/asm/mach-netlogic/irq.h
delete mode 100644 arch/mips/include/asm/mach-netlogic/multi-node.h
delete mode 100644 arch/mips/include/asm/netlogic/common.h
delete mode 100644 arch/mips/include/asm/netlogic/haldefs.h
delete mode 100644 arch/mips/include/asm/netlogic/interrupt.h
delete mode 100644 arch/mips/include/asm/netlogic/mips-extns.h
delete mode 100644 arch/mips/include/asm/netlogic/psb-bootinfo.h
delete mode 100644 arch/mips/include/asm/netlogic/xlp-hal/bridge.h
delete mode 100644 arch/mips/include/asm/netlogic/xlp-hal/cpucontrol.h
delete mode 100644 arch/mips/include/asm/netlogic/xlp-hal/iomap.h
delete mode 100644 arch/mips/include/asm/netlogic/xlp-hal/pcibus.h
delete mode 100644 arch/mips/include/asm/netlogic/xlp-hal/pic.h
delete mode 100644 arch/mips/include/asm/netlogic/xlp-hal/sys.h
delete mode 100644 arch/mips/include/asm/netlogic/xlp-hal/uart.h
delete mode 100644 arch/mips/include/asm/netlogic/xlp-hal/xlp.h
delete mode 100644 arch/mips/include/asm/netlogic/xlr/bridge.h
delete mode 100644 arch/mips/include/asm/netlogic/xlr/flash.h
delete mode 100644 arch/mips/include/asm/netlogic/xlr/fmn.h
delete mode 100644 arch/mips/include/asm/netlogic/xlr/gpio.h
delete mode 100644 arch/mips/include/asm/netlogic/xlr/iomap.h
delete mode 100644 arch/mips/include/asm/netlogic/xlr/msidef.h
delete mode 100644 arch/mips/include/asm/netlogic/xlr/pic.h
delete mode 100644 arch/mips/include/asm/netlogic/xlr/xlr.h
delete mode 100644 arch/mips/net/bpf_jit.c
delete mode 100644 arch/mips/net/bpf_jit.h
delete mode 100644 arch/mips/net/bpf_jit_asm.S
create mode 100644 arch/mips/net/bpf_jit_comp.c
create mode 100644 arch/mips/net/bpf_jit_comp.h
create mode 100644 arch/mips/net/bpf_jit_comp32.c
create mode 100644 arch/mips/net/bpf_jit_comp64.c
delete mode 100644 arch/mips/net/ebpf_jit.c
delete mode 100644 arch/mips/netlogic/Kconfig
delete mode 100644 arch/mips/netlogic/Makefile
delete mode 100644 arch/mips/netlogic/Platform
delete mode 100644 arch/mips/netlogic/common/Makefile
delete mode 100644 arch/mips/netlogic/common/earlycons.c
delete mode 100644 arch/mips/netlogic/common/irq.c
delete mode 100644 arch/mips/netlogic/common/reset.S
delete mode 100644 arch/mips/netlogic/common/smp.c
delete mode 100644 arch/mips/netlogic/common/smpboot.S
delete mode 100644 arch/mips/netlogic/common/time.c
delete mode 100644 arch/mips/netlogic/xlp/Makefile
delete mode 100644 arch/mips/netlogic/xlp/ahci-init-xlp2.c
delete mode 100644 arch/mips/netlogic/xlp/ahci-init.c
delete mode 100644 arch/mips/netlogic/xlp/cop2-ex.c
delete mode 100644 arch/mips/netlogic/xlp/dt.c
delete mode 100644 arch/mips/netlogic/xlp/nlm_hal.c
delete mode 100644 arch/mips/netlogic/xlp/setup.c
delete mode 100644 arch/mips/netlogic/xlp/usb-init-xlp2.c
delete mode 100644 arch/mips/netlogic/xlp/usb-init.c
delete mode 100644 arch/mips/netlogic/xlp/wakeup.c
delete mode 100644 arch/mips/netlogic/xlr/Makefile
delete mode 100644 arch/mips/netlogic/xlr/fmn-config.c
delete mode 100644 arch/mips/netlogic/xlr/fmn.c
delete mode 100644 arch/mips/netlogic/xlr/platform-flash.c
delete mode 100644 arch/mips/netlogic/xlr/platform.c
delete mode 100644 arch/mips/netlogic/xlr/setup.c
delete mode 100644 arch/mips/netlogic/xlr/wakeup.c
delete mode 100644 arch/mips/pci/msi-xlp.c
delete mode 100644 arch/mips/pci/pci-xlp.c
delete mode 100644 arch/mips/pci/pci-xlr.c
create mode 100644 arch/parisc/include/asm/current.h
create mode 100644 arch/parisc/include/asm/kfence.h
create mode 100644 arch/parisc/kernel/toc.c
create mode 100644 arch/parisc/kernel/toc_asm.S
create mode 100644 arch/powerpc/include/asm/static_call.h
create mode 100644 arch/powerpc/kernel/static_call.c
create mode 100644 arch/powerpc/mm/nohash/fsl_book3e.c
delete mode 100644 arch/powerpc/mm/nohash/fsl_booke.c
create mode 100644 arch/powerpc/platforms/pseries/cc_platform.c
create mode 100644 arch/riscv/configs/32-bit.config
create mode 100644 arch/riscv/configs/64-bit.config
create mode 100644 arch/riscv/include/asm/kvm_host.h
create mode 100644 arch/riscv/include/asm/kvm_types.h
create mode 100644 arch/riscv/include/asm/kvm_vcpu_fp.h
create mode 100644 arch/riscv/include/asm/kvm_vcpu_timer.h
create mode 100644 arch/riscv/include/uapi/asm/kvm.h
create mode 100644 arch/riscv/kvm/Kconfig
create mode 100644 arch/riscv/kvm/Makefile
create mode 100644 arch/riscv/kvm/main.c
create mode 100644 arch/riscv/kvm/mmu.c
create mode 100644 arch/riscv/kvm/tlb.S
create mode 100644 arch/riscv/kvm/vcpu.c
create mode 100644 arch/riscv/kvm/vcpu_exit.c
create mode 100644 arch/riscv/kvm/vcpu_fp.c
create mode 100644 arch/riscv/kvm/vcpu_sbi.c
create mode 100644 arch/riscv/kvm/vcpu_switch.S
create mode 100644 arch/riscv/kvm/vcpu_timer.c
create mode 100644 arch/riscv/kvm/vm.c
create mode 100644 arch/riscv/kvm/vmid.c
create mode 100644 arch/s390/include/asm/text-patching.h
create mode 100644 arch/s390/lib/test_kprobes.c
create mode 100644 arch/s390/lib/test_kprobes.h
create mode 100644 arch/s390/lib/test_kprobes_asm.S
create mode 100644 arch/sh/boot/compressed/ashiftrt.S
create mode 100644 arch/sh/boot/compressed/ashldi3.c
create mode 100644 arch/sh/boot/compressed/ashlsi3.S
create mode 100644 arch/sh/boot/compressed/ashrsi3.S
create mode 100644 arch/sh/boot/compressed/lshrsi3.S
create mode 100644 arch/x86/hyperv/ivm.c
create mode 100644 arch/x86/include/asm/extable_fixup_types.h
create mode 100644 arch/x86/include/asm/fpu/sched.h
create mode 100644 arch/x86/kernel/cc_platform.c
create mode 100644 arch/x86/kernel/cpu/vortex.c
create mode 100644 arch/x86/kernel/fpu/context.h
create mode 100644 arch/x86/kernel/fpu/internal.h
create mode 100644 arch/x86/kernel/fpu/legacy.h
create mode 100644 arch/x86/kernel/fpu/xstate.h
create mode 100644 arch/xtensa/include/asm/sections.h
create mode 100644 block/blk-crypto-profile.c
create mode 100644 block/blk-ia-ranges.c
create mode 100644 block/blk-throttle.h
create mode 100644 block/elevator.h
delete mode 100644 block/keyslot-manager.c
delete mode 100644 crypto/ecc.h
create mode 100644 drivers/auxdisplay/line-display.c
create mode 100644 drivers/auxdisplay/line-display.h
create mode 100644 drivers/base/firmware_loader/builtin/main.c
delete mode 100644 drivers/block/cryptoloop.c
create mode 100644 drivers/bus/fsl-mc/obj-api.c
create mode 100644 drivers/char/ipmi/ipmi_ipmb.c
create mode 100644 drivers/clk/imx/clk-imx8ulp.c
create mode 100644 drivers/clk/mediatek/clk-mt8195-apmixedsys.c
create mode 100644 drivers/clk/mediatek/clk-mt8195-apusys_pll.c
create mode 100644 drivers/clk/mediatek/clk-mt8195-cam.c
create mode 100644 drivers/clk/mediatek/clk-mt8195-ccu.c
create mode 100644 drivers/clk/mediatek/clk-mt8195-img.c
create mode 100644 drivers/clk/mediatek/clk-mt8195-imp_iic_wrap.c
create mode 100644 drivers/clk/mediatek/clk-mt8195-infra_ao.c
create mode 100644 drivers/clk/mediatek/clk-mt8195-ipe.c
create mode 100644 drivers/clk/mediatek/clk-mt8195-mfg.c
create mode 100644 drivers/clk/mediatek/clk-mt8195-peri_ao.c
create mode 100644 drivers/clk/mediatek/clk-mt8195-scp_adsp.c
create mode 100644 drivers/clk/mediatek/clk-mt8195-topckgen.c
create mode 100644 drivers/clk/mediatek/clk-mt8195-vdec.c
create mode 100644 drivers/clk/mediatek/clk-mt8195-vdo0.c
create mode 100644 drivers/clk/mediatek/clk-mt8195-vdo1.c
create mode 100644 drivers/clk/mediatek/clk-mt8195-venc.c
create mode 100644 drivers/clk/mediatek/clk-mt8195-vpp0.c
create mode 100644 drivers/clk/mediatek/clk-mt8195-vpp1.c
create mode 100644 drivers/clk/mediatek/clk-mt8195-wpe.c
create mode 100644 drivers/clk/qcom/camcc-sc7280.c
create mode 100644 drivers/clk/qcom/gcc-qcm2290.c
create mode 100644 drivers/clk/qcom/lpasscc-sc7280.c
create mode 100644 drivers/clk/samsung/clk-exynos850.c
create mode 100644 drivers/clk/ux500/prcc.h
create mode 100644 drivers/clk/ux500/reset-prcc.c
create mode 100644 drivers/clk/ux500/reset-prcc.h
create mode 100644 drivers/counter/counter-chrdev.c
create mode 100644 drivers/counter/counter-chrdev.h
create mode 100644 drivers/counter/counter-core.c
create mode 100644 drivers/counter/counter-sysfs.c
create mode 100644 drivers/counter/counter-sysfs.h
delete mode 100644 drivers/counter/counter.c
create mode 100644 drivers/crypto/keembay/keembay-ocs-ecc.c
create mode 100644 drivers/cxl/core/mbox.c
delete mode 100644 drivers/dma-buf/seqno-fence.c
create mode 100644 drivers/gpio/gpio-zynqmp-modepin.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_umr.h
delete mode 100644 drivers/gpu/drm/amd/amdgpu/beige_goby_reg_init.c
delete mode 100644 drivers/gpu/drm/amd/amdgpu/cyan_skillfish_reg_init.c
delete mode 100644 drivers/gpu/drm/amd/amdgpu/navi10_reg_init.c
delete mode 100644 drivers/gpu/drm/amd/amdgpu/navi12_reg_init.c
delete mode 100644 drivers/gpu/drm/amd/amdgpu/navi14_reg_init.c
delete mode 100644 drivers/gpu/drm/amd/amdgpu/sienna_cichlid_reg_init.c
delete mode 100644 drivers/gpu/drm/amd/amdgpu/vangogh_reg_init.c
delete mode 100644 drivers/gpu/drm/amd/amdgpu/yellow_carp_reg_init.c
create mode 100644 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn201/dcn201_clk_mgr.c
create mode 100644 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn201/dcn201_clk_mgr.h
create mode 100644 drivers/gpu/drm/amd/display/dc/core/dc_link_dpia.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/Makefile
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_dccg.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_dccg.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_dpp.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_dpp.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_hubbub.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_hubbub.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_hubp.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_hubp.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_hwseq.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_hwseq.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_init.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_init.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_link_encoder.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_link_encoder.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_mpc.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_mpc.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_opp.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_opp.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_optc.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_optc.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_resource.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_resource.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn31/dcn31_afmt.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn31/dcn31_afmt.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn31/dcn31_apg.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn31/dcn31_apg.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hpo_dp_link_encoder.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hpo_dp_link_encoder.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hpo_dp_stream_encoder.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hpo_dp_stream_encoder.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn31/dcn31_vpg.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn31/dcn31_vpg.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn20/dcn20_fpu.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn20/dcn20_fpu.h
delete mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn2x/dcn2x.c
delete mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn2x/dcn2x.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn301/dcn301_fpu.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn301/dcn301_fpu.h
rename drivers/gpu/drm/amd/display/dc/{ => dml}/dsc/qp_tables.h (100%)
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dsc/rc_calc_fpu.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dsc/rc_calc_fpu.h
create mode 100644 drivers/gpu/drm/amd/display/dc/inc/dc_link_dpia.h
create mode 100644 drivers/gpu/drm/amd/display/dc/irq/dcn201/irq_service_dcn201.c
create mode 100644 drivers/gpu/drm/amd/display/dc/irq/dcn201/irq_service_dcn201.h
create mode 100755 drivers/gpu/drm/amd/include/asic_reg/clk/clk_11_0_1_offset.h
create mode 100755 drivers/gpu/drm/amd/include/asic_reg/clk/clk_11_0_1_sh_mask.h
create mode 100755 drivers/gpu/drm/amd/include/asic_reg/dcn/dcn_2_0_3_offset.h
create mode 100755 drivers/gpu/drm/amd/include/asic_reg/dcn/dcn_2_0_3_sh_mask.h
create mode 100755 drivers/gpu/drm/amd/include/asic_reg/dpcs/dpcs_2_0_3_offset.h
create mode 100755 drivers/gpu/drm/amd/include/asic_reg/dpcs/dpcs_2_0_3_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/mp/mp_11_0_8_sh_mask.h
create mode 100644 drivers/gpu/drm/i915/display/intel_backlight.c
create mode 100644 drivers/gpu/drm/i915/display/intel_backlight.h
create mode 100644 drivers/gpu/drm/i915/display/intel_dpt.c
create mode 100644 drivers/gpu/drm/i915/display/intel_dpt.h
create mode 100644 drivers/gpu/drm/i915/display/intel_drrs.c
create mode 100644 drivers/gpu/drm/i915/display/intel_drrs.h
create mode 100644 drivers/gpu/drm/i915/display/intel_fb_pin.c
create mode 100644 drivers/gpu/drm/i915/display/intel_fb_pin.h
create mode 100644 drivers/gpu/drm/i915/display/intel_plane_initial.c
create mode 100644 drivers/gpu/drm/i915/display/intel_plane_initial.h
create mode 100644 drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c
create mode 100644 drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.h
delete mode 100644 drivers/gpu/drm/i915/gem/selftests/i915_gem_execbuffer.c
delete mode 100644 drivers/gpu/drm/i915/gt/debugfs_engines.c
delete mode 100644 drivers/gpu/drm/i915/gt/debugfs_engines.h
delete mode 100644 drivers/gpu/drm/i915/gt/debugfs_gt.c
delete mode 100644 drivers/gpu/drm/i915/gt/debugfs_gt.h
delete mode 100644 drivers/gpu/drm/i915/gt/debugfs_gt_pm.c
delete mode 100644 drivers/gpu/drm/i915/gt/debugfs_gt_pm.h
create mode 100644 drivers/gpu/drm/i915/gt/intel_gt_debugfs.c
create mode 100644 drivers/gpu/drm/i915/gt/intel_gt_debugfs.h
create mode 100644 drivers/gpu/drm/i915/gt/intel_gt_engines_debugfs.c
create mode 100644 drivers/gpu/drm/i915/gt/intel_gt_engines_debugfs.h
create mode 100644 drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.c
create mode 100644 drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.h
create mode 100644 drivers/gpu/drm/i915/gt/uc/selftest_guc.c
create mode 100644 drivers/gpu/drm/i915/gt/uc/selftest_guc_multi_lrc.c
create mode 100644 drivers/gpu/drm/i915/intel_pcode.c
create mode 100644 drivers/gpu/drm/i915/intel_pcode.h
create mode 100644 drivers/gpu/drm/i915/intel_sbi.c
create mode 100644 drivers/gpu/drm/i915/intel_sbi.h
delete mode 100644 drivers/gpu/drm/i915/intel_sideband.c
delete mode 100644 drivers/gpu/drm/i915/intel_sideband.h
create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp.c
create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp.h
create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_cmd.c
create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_cmd.h
create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_debugfs.c
create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_debugfs.h
create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_irq.c
create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_irq.h
create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_pm.c
create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_pm.h
create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_session.c
create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_session.h
create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_tee.c
create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_tee.h
create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_tee_interface.h
create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_types.h
create mode 100644 drivers/gpu/drm/i915/vlv_sideband.c
create mode 100644 drivers/gpu/drm/i915/vlv_sideband.h
delete mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_core_irq.c
create mode 100644 drivers/gpu/drm/panel/panel-edp.c
create mode 100644 drivers/gpu/drm/panel/panel-samsung-s6d27a1.c
create mode 100644 drivers/gpu/drm/panel/panel-sharp-ls060t1sx01.c
delete mode 100644 drivers/gpu/drm/zte/Kconfig
delete mode 100644 drivers/gpu/drm/zte/Makefile
delete mode 100644 drivers/gpu/drm/zte/zx_common_regs.h
delete mode 100644 drivers/gpu/drm/zte/zx_drm_drv.c
delete mode 100644 drivers/gpu/drm/zte/zx_drm_drv.h
delete mode 100644 drivers/gpu/drm/zte/zx_hdmi.c
delete mode 100644 drivers/gpu/drm/zte/zx_hdmi_regs.h
delete mode 100644 drivers/gpu/drm/zte/zx_plane.c
delete mode 100644 drivers/gpu/drm/zte/zx_plane.h
delete mode 100644 drivers/gpu/drm/zte/zx_plane_regs.h
delete mode 100644 drivers/gpu/drm/zte/zx_tvenc.c
delete mode 100644 drivers/gpu/drm/zte/zx_tvenc_regs.h
delete mode 100644 drivers/gpu/drm/zte/zx_vga.c
delete mode 100644 drivers/gpu/drm/zte/zx_vga_regs.h
delete mode 100644 drivers/gpu/drm/zte/zx_vou.c
delete mode 100644 drivers/gpu/drm/zte/zx_vou.h
delete mode 100644 drivers/gpu/drm/zte/zx_vou_regs.h
create mode 100644 drivers/hid/hid-nintendo.c
create mode 100644 drivers/hid/hid-xiaomi.c
create mode 100644 drivers/hwmon/max6620.c
create mode 100644 drivers/hwtracing/coresight/coresight-self-hosted-trace.h
create mode 100644 drivers/i2c/busses/i2c-pasemi-core.c
create mode 100644 drivers/i2c/busses/i2c-pasemi-core.h
create mode 100644 drivers/i2c/busses/i2c-pasemi-pci.c
create mode 100644 drivers/i2c/busses/i2c-pasemi-platform.c
delete mode 100644 drivers/i2c/busses/i2c-pasemi.c
create mode 100644 drivers/iio/accel/adxl313.h
create mode 100644 drivers/iio/accel/adxl313_core.c
create mode 100644 drivers/iio/accel/adxl313_i2c.c
create mode 100644 drivers/iio/accel/adxl313_spi.c
create mode 100644 drivers/iio/accel/adxl355.h
create mode 100644 drivers/iio/accel/adxl355_core.c
create mode 100644 drivers/iio/accel/adxl355_i2c.c
create mode 100644 drivers/iio/accel/adxl355_spi.c
create mode 100644 drivers/iio/adc/imx8qxp-adc.c
create mode 100644 drivers/iio/chemical/scd4x.c
create mode 100644 drivers/iio/chemical/sunrise_co2.c
create mode 100644 drivers/iio/frequency/adrf6780.c
create mode 100644 drivers/iio/temperature/max31865.c
create mode 100644 drivers/input/keyboard/cypress-sf.c
create mode 100644 drivers/input/touchscreen/goodix.h
create mode 100644 drivers/input/touchscreen/goodix_fwupload.c
create mode 100644 drivers/irqchip/irq-mchp-eic.c
create mode 100644 drivers/mailbox/apple-mailbox.c
create mode 100644 drivers/md/bcache/bcache_ondisk.h
create mode 100644 drivers/md/dm-audit.c
create mode 100644 drivers/md/dm-audit.h
create mode 100644 drivers/media/i2c/hi846.c
create mode 100644 drivers/media/i2c/ov13b10.c
create mode 100644 drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_stateful.c
create mode 100644 drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_stateless.c
create mode 100644 drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c
create mode 100644 drivers/media/platform/rcar-isp.c
delete mode 100644 drivers/media/rc/sir_ir.c
delete mode 100644 drivers/mfd/tps80031.c
create mode 100644 drivers/misc/habanalabs/common/hwmgr.c
delete mode 100644 drivers/misc/habanalabs/gaudi/gaudi_hwmgr.c
create mode 100644 drivers/misc/mei/pxp/Kconfig
create mode 100644 drivers/misc/mei/pxp/Makefile
create mode 100644 drivers/misc/mei/pxp/mei_pxp.c
create mode 100644 drivers/misc/mei/pxp/mei_pxp.h
delete mode 100644 drivers/mmc/host/sdhci-pci-data.c
create mode 100644 drivers/net/amt.c
create mode 100644 drivers/net/dsa/rtl8365mb.c
create mode 100644 drivers/net/ethernet/asix/Kconfig
create mode 100644 drivers/net/ethernet/asix/Makefile
create mode 100644 drivers/net/ethernet/asix/ax88796c_ioctl.c
create mode 100644 drivers/net/ethernet/asix/ax88796c_ioctl.h
create mode 100644 drivers/net/ethernet/asix/ax88796c_main.c
create mode 100644 drivers/net/ethernet/asix/ax88796c_main.h
create mode 100644 drivers/net/ethernet/asix/ax88796c_spi.c
create mode 100644 drivers/net/ethernet/asix/ax88796c_spi.h
create mode 100644 drivers/net/ethernet/broadcom/bnxt/bnxt_coredump.c
create mode 100644 drivers/net/ethernet/intel/ice/ice_eswitch.c
create mode 100644 drivers/net/ethernet/intel/ice/ice_eswitch.h
create mode 100644 drivers/net/ethernet/intel/ice/ice_repr.c
create mode 100644 drivers/net/ethernet/intel/ice/ice_repr.h
create mode 100644 drivers/net/ethernet/intel/ice/ice_tc_lib.c
create mode 100644 drivers/net/ethernet/intel/ice/ice_tc_lib.h
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/tc/int_port.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/tc/int_port.h
delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lag.c
delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lag.h
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lag/lag.h
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lag/mp.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lag/mp.h
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lag/port_sel.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lag/port_sel.h
delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lag_mp.c
delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lag_mp.h
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lib/tout.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lib/tout.h
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/sf/dev/diag/dev_tracepoint.h
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/sf/diag/sf_tracepoint.h
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/sf/diag/vhca_tracepoint.h
delete mode 100644 drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_gpio.c
create mode 100644 drivers/net/ethernet/qlogic/qed/qed_dbg_hsi.h
create mode 100644 drivers/net/ethernet/qlogic/qed/qed_iro_hsi.h
create mode 100644 drivers/net/ethernet/qlogic/qed/qed_mfw_hsi.h
create mode 100644 drivers/net/wireless/intel/iwlwifi/fw/rs.c
delete mode 100644 drivers/net/wireless/mediatek/mt76/mt7615/sdio.h
delete mode 100644 drivers/net/wireless/mediatek/mt76/mt7615/sdio_txrx.c
delete mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/eeprom.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/pci_mac.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/pci_mcu.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/sdio.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/sdio_mac.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/sdio_mcu.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/testmode.c
create mode 100644 drivers/net/wireless/mediatek/mt76/sdio.h
create mode 100644 drivers/net/wireless/mediatek/mt76/sdio_txrx.c
create mode 100644 drivers/net/wireless/realtek/rtw89/Kconfig
create mode 100644 drivers/net/wireless/realtek/rtw89/Makefile
create mode 100644 drivers/net/wireless/realtek/rtw89/cam.c
create mode 100644 drivers/net/wireless/realtek/rtw89/cam.h
create mode 100644 drivers/net/wireless/realtek/rtw89/coex.c
create mode 100644 drivers/net/wireless/realtek/rtw89/coex.h
create mode 100644 drivers/net/wireless/realtek/rtw89/core.c
create mode 100644 drivers/net/wireless/realtek/rtw89/core.h
create mode 100644 drivers/net/wireless/realtek/rtw89/debug.c
create mode 100644 drivers/net/wireless/realtek/rtw89/debug.h
create mode 100644 drivers/net/wireless/realtek/rtw89/efuse.c
create mode 100644 drivers/net/wireless/realtek/rtw89/efuse.h
create mode 100644 drivers/net/wireless/realtek/rtw89/fw.c
create mode 100644 drivers/net/wireless/realtek/rtw89/fw.h
create mode 100644 drivers/net/wireless/realtek/rtw89/mac.c
create mode 100644 drivers/net/wireless/realtek/rtw89/mac.h
create mode 100644 drivers/net/wireless/realtek/rtw89/mac80211.c
create mode 100644 drivers/net/wireless/realtek/rtw89/pci.c
create mode 100644 drivers/net/wireless/realtek/rtw89/pci.h
create mode 100644 drivers/net/wireless/realtek/rtw89/phy.c
create mode 100644 drivers/net/wireless/realtek/rtw89/phy.h
create mode 100644 drivers/net/wireless/realtek/rtw89/ps.c
create mode 100644 drivers/net/wireless/realtek/rtw89/ps.h
create mode 100644 drivers/net/wireless/realtek/rtw89/reg.h
create mode 100644 drivers/net/wireless/realtek/rtw89/regd.c
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852a.c
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852a.h
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.h
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852a_rfk_table.c
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852a_rfk_table.h
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852a_table.c
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852a_table.h
create mode 100644 drivers/net/wireless/realtek/rtw89/sar.c
create mode 100644 drivers/net/wireless/realtek/rtw89/sar.h
create mode 100644 drivers/net/wireless/realtek/rtw89/ser.c
create mode 100644 drivers/net/wireless/realtek/rtw89/ser.h
create mode 100644 drivers/net/wireless/realtek/rtw89/txrx.h
create mode 100644 drivers/net/wireless/realtek/rtw89/util.h
create mode 100644 drivers/net/wwan/iosm/iosm_ipc_coredump.c
create mode 100644 drivers/net/wwan/iosm/iosm_ipc_coredump.h
create mode 100644 drivers/net/wwan/iosm/iosm_ipc_devlink.c
create mode 100644 drivers/net/wwan/iosm/iosm_ipc_devlink.h
create mode 100644 drivers/net/wwan/iosm/iosm_ipc_flash.c
create mode 100644 drivers/net/wwan/iosm/iosm_ipc_flash.h
delete mode 100644 drivers/of/of_net.c
create mode 100644 drivers/pci/controller/dwc/pcie-qcom-ep.c
create mode 100644 drivers/pci/controller/pcie-apple.c
create mode 100644 drivers/pci/controller/pcie-mt7621.c
create mode 100644 drivers/phy/hisilicon/phy-hi3670-pcie.c
create mode 100644 drivers/pinctrl/mediatek/pinctrl-mt7986.c
create mode 100644 drivers/pinctrl/pinctrl-apple-gpio.c
create mode 100644 drivers/pinctrl/qcom/pinctrl-qcm2290.c
create mode 100644 drivers/pinctrl/qcom/pinctrl-sm6350.c
create mode 100644 drivers/pinctrl/uniphier/pinctrl-uniphier-nx1.c
create mode 100644 drivers/platform/mellanox/mlxreg-lc.c
create mode 100644 drivers/platform/x86/barco-p50-gpio.c
create mode 100644 drivers/platform/x86/intel/ishtp_eclite.c
create mode 100644 drivers/platform/x86/nvidia-wmi-ec-backlight.c
delete mode 100644 drivers/ptp/idt8a340_reg.h
delete mode 100644 drivers/regulator/tps80031-regulator.c
create mode 100644 drivers/remoteproc/imx_dsp_rproc.c
create mode 100644 drivers/remoteproc/imx_rproc.h
create mode 100644 drivers/remoteproc/meson_mx_ao_arc.c
create mode 100644 drivers/rtc/rtc-msc313.c
delete mode 100644 drivers/rtc/rtc-tps80031.c
create mode 100644 drivers/scsi/ufs/ufs-hwmon.c
create mode 100644 drivers/soc/aspeed/aspeed-uart-routing.c
create mode 100644 drivers/soc/imx/imx8m-blk-ctrl.c
create mode 100644 drivers/soc/mediatek/mt8192-mmsys.h
create mode 100644 drivers/soc/qcom/qcom_stats.c
create mode 100644 drivers/soc/qcom/spm.c
create mode 100644 drivers/soc/tegra/ari-tegra186.c
create mode 100644 drivers/spi/spi-cadence-xspi.c
create mode 100644 drivers/spi/spi-ingenic.c
delete mode 100644 drivers/staging/most/dim2/sysfs.c
delete mode 100644 drivers/staging/mt7621-pci/Kconfig
delete mode 100644 drivers/staging/mt7621-pci/Makefile
delete mode 100644 drivers/staging/mt7621-pci/TODO
delete mode 100644 drivers/staging/mt7621-pci/mediatek,mt7621-pci.txt
delete mode 100644 drivers/staging/mt7621-pci/pci-mt7621.c
delete mode 100644 drivers/staging/r8188eu/core/rtw_debug.c
delete mode 100644 drivers/staging/r8188eu/core/rtw_io.c
delete mode 100644 drivers/staging/r8188eu/core/rtw_mp.c
delete mode 100644 drivers/staging/r8188eu/core/rtw_mp_ioctl.c
delete mode 100644 drivers/staging/r8188eu/core/rtw_sreset.c
delete mode 100644 drivers/staging/r8188eu/hal/rtl8188e_mp.c
delete mode 100644 drivers/staging/r8188eu/include/HalHWImg8188E_FW.h
delete mode 100644 drivers/staging/r8188eu/include/mp_custom_oid.h
delete mode 100644 drivers/staging/r8188eu/include/odm_RegDefine11AC.h
delete mode 100644 drivers/staging/r8188eu/include/odm_reg.h
delete mode 100644 drivers/staging/r8188eu/include/rtw_ioctl_rtl.h
delete mode 100644 drivers/staging/r8188eu/include/rtw_mp.h
delete mode 100644 drivers/staging/r8188eu/include/rtw_mp_ioctl.h
delete mode 100644 drivers/staging/r8188eu/include/rtw_mp_phy_regdef.h
delete mode 100644 drivers/staging/r8188eu/include/rtw_sreset.h
create mode 100644 drivers/tee/optee/ffa_abi.c
create mode 100644 drivers/tee/optee/optee_ffa.h
delete mode 100644 drivers/tee/optee/shm_pool.c
delete mode 100644 drivers/tee/optee/shm_pool.h
create mode 100644 drivers/tee/optee/smc_abi.c
delete mode 100644 drivers/tty/moxa.h
create mode 100644 drivers/tty/rpmsg_tty.c
create mode 100644 drivers/vdpa/alibaba/Makefile
create mode 100644 drivers/vdpa/alibaba/eni_vdpa.c
create mode 100644 drivers/vfio/vfio.h
create mode 100644 drivers/virtio/virtio_pci_legacy_dev.c
create mode 100644 drivers/watchdog/db8500_wdt.c
delete mode 100644 drivers/watchdog/iop_wdt.c
delete mode 100644 drivers/watchdog/ux500_wdt.c
create mode 100644 fs/erofs/decompressor_lzma.c
create mode 100644 fs/smbfs_common/smb2pdu.h
create mode 100644 include/clocksource/timer-riscv.h
create mode 100644 include/crypto/internal/ecc.h
create mode 100644 include/drm/i915_pxp_tee_interface.h
create mode 100644 include/dt-bindings/clock/exynos850.h
create mode 100644 include/dt-bindings/clock/imx8ulp-clock.h
rename include/dt-bindings/clock/{jz4725b-cgu.h => ingenic,jz4725b-cgu.h} (100%)
rename include/dt-bindings/clock/{jz4740-cgu.h => ingenic,jz4740-cgu.h} (100%)
rename include/dt-bindings/clock/{jz4760-cgu.h => ingenic,jz4760-cgu.h} (100%)
rename include/dt-bindings/clock/{jz4770-cgu.h => ingenic,jz4770-cgu.h} (100%)
rename include/dt-bindings/clock/{jz4780-cgu.h => ingenic,jz4780-cgu.h} (100%)
rename include/dt-bindings/clock/{x1000-cgu.h => ingenic,x1000-cgu.h} (100%)
rename include/dt-bindings/clock/{x1830-cgu.h => ingenic,x1830-cgu.h} (100%)
create mode 100644 include/dt-bindings/clock/mt8195-clk.h
create mode 100644 include/dt-bindings/clock/qcom,camcc-sc7280.h
create mode 100644 include/dt-bindings/clock/qcom,gcc-qcm2290.h
create mode 100644 include/dt-bindings/clock/qcom,lpass-sc7280.h
delete mode 100644 include/dt-bindings/power/qcom-aoss-qmp.h
delete mode 100644 include/dt-bindings/reset-controller/mt8183-resets.h
create mode 100644 include/dt-bindings/reset/imx8ulp-pcc-reset.h
rename include/dt-bindings/{reset-controller => reset}/mt2712-resets.h (100%)
create mode 100644 include/dt-bindings/reset/mt8183-resets.h
rename include/dt-bindings/{reset-controller => reset}/mt8192-resets.h (100%)
create mode 100644 include/dt-bindings/reset/stericsson,db8500-prcc-reset.h
create mode 100644 include/dt-bindings/sound/tlv320adc3xxx.h
create mode 100644 include/linux/apple-mailbox.h
create mode 100644 include/linux/audit_arch.h
create mode 100644 include/linux/blk-crypto-profile.h
create mode 100644 include/linux/blk-integrity.h
create mode 100644 include/linux/cc_platform.h
create mode 100644 include/linux/container_of.h
delete mode 100644 include/linux/counter_enum.h
create mode 100644 include/linux/dma/qcom_adm.h
create mode 100644 include/linux/dma/xilinx_dpdma.h
delete mode 100644 include/linux/elevator.h
create mode 100644 include/linux/firmware/imx/s4.h
delete mode 100644 include/linux/input/cy8ctmg110_pdata.h
create mode 100644 include/linux/instruction_pointer.h
delete mode 100644 include/linux/keyslot-manager.h
delete mode 100644 include/linux/mfd/hi6421-spmi-pmic.h
delete mode 100644 include/linux/mfd/tps80031.h
delete mode 100644 include/linux/mmc/sdhci-pci-data.h
delete mode 100644 include/linux/netfilter_ingress.h
create mode 100644 include/linux/netfilter_netdev.h
delete mode 100644 include/linux/platform_data/ux500_wdt.h
create mode 100644 include/linux/platform_data/x86/soc.h
delete mode 100644 include/linux/pnfs_osd_xdr.h
delete mode 100644 include/linux/seqno-fence.h
create mode 100644 include/linux/soc/qcom/qcom_aoss.h
create mode 100644 include/linux/virtio_pci_legacy.h
create mode 100644 include/linux/zstd_errors.h
create mode 100644 include/linux/zstd_lib.h
create mode 100644 include/net/amt.h
create mode 100644 include/soc/qcom/spm.h
create mode 100644 include/sound/sof/dai-amd.h
create mode 100644 include/sound/sof/dai-mediatek.h
create mode 100644 include/trace/events/fs.h
create mode 100644 include/trace/events/mctp.h
create mode 100644 include/trace/events/nfs.h
create mode 100644 include/trace/events/sunrpc_base.h
create mode 100644 include/uapi/linux/amt.h
delete mode 100644 include/uapi/linux/bcache.h
create mode 100644 include/uapi/linux/counter.h
create mode 100644 include/uapi/linux/map_to_14segment.h
delete mode 100644 include/uapi/linux/nfsd/nfsfh.h
create mode 100644 include/xen/pci.h
create mode 100644 kernel/bpf/bloom_filter.c
delete mode 100644 kernel/futex.c
create mode 100644 kernel/futex/Makefile
create mode 100644 kernel/futex/core.c
create mode 100644 kernel/futex/futex.h
create mode 100644 kernel/futex/pi.c
create mode 100644 kernel/futex/requeue.c
create mode 100644 kernel/futex/syscalls.c
create mode 100644 kernel/futex/waitwake.c
delete mode 100644 kernel/test_kprobes.c
create mode 100644 kernel/trace/pid_list.c
create mode 100644 kernel/trace/pid_list.h
create mode 100644 lib/memcpy_kunit.c
create mode 100644 lib/test_fortify/read_overflow-memchr.c
create mode 100644 lib/test_fortify/read_overflow-memchr_inv.c
create mode 100644 lib/test_fortify/read_overflow-memcmp.c
create mode 100644 lib/test_fortify/read_overflow-memscan.c
create mode 100644 lib/test_fortify/read_overflow2-memcmp.c
create mode 100644 lib/test_fortify/read_overflow2-memcpy.c
create mode 100644 lib/test_fortify/read_overflow2-memmove.c
create mode 100644 lib/test_fortify/test_fortify.h
create mode 100644 lib/test_fortify/write_overflow-memcpy.c
create mode 100644 lib/test_fortify/write_overflow-memmove.c
create mode 100644 lib/test_fortify/write_overflow-memset.c
create mode 100644 lib/test_fortify/write_overflow-strcpy-lit.c
create mode 100644 lib/test_fortify/write_overflow-strcpy.c
create mode 100644 lib/test_fortify/write_overflow-strlcpy-src.c
create mode 100644 lib/test_fortify/write_overflow-strlcpy.c
create mode 100644 lib/test_fortify/write_overflow-strncpy-src.c
create mode 100644 lib/test_fortify/write_overflow-strncpy.c
create mode 100644 lib/test_fortify/write_overflow-strscpy.c
create mode 100644 lib/test_kprobes.c
delete mode 100644 lib/zstd/bitstream.h
create mode 100644 lib/zstd/common/bitstream.h
create mode 100644 lib/zstd/common/compiler.h
create mode 100644 lib/zstd/common/cpu.h
create mode 100644 lib/zstd/common/debug.c
create mode 100644 lib/zstd/common/debug.h
create mode 100644 lib/zstd/common/entropy_common.c
create mode 100644 lib/zstd/common/error_private.c
create mode 100644 lib/zstd/common/error_private.h
create mode 100644 lib/zstd/common/fse.h
create mode 100644 lib/zstd/common/fse_decompress.c
create mode 100644 lib/zstd/common/huf.h
create mode 100644 lib/zstd/common/mem.h
create mode 100644 lib/zstd/common/zstd_common.c
create mode 100644 lib/zstd/common/zstd_deps.h
create mode 100644 lib/zstd/common/zstd_internal.h
delete mode 100644 lib/zstd/compress.c
create mode 100644 lib/zstd/compress/fse_compress.c
create mode 100644 lib/zstd/compress/hist.c
create mode 100644 lib/zstd/compress/hist.h
create mode 100644 lib/zstd/compress/huf_compress.c
create mode 100644 lib/zstd/compress/zstd_compress.c
create mode 100644 lib/zstd/compress/zstd_compress_internal.h
create mode 100644 lib/zstd/compress/zstd_compress_literals.c
create mode 100644 lib/zstd/compress/zstd_compress_literals.h
create mode 100644 lib/zstd/compress/zstd_compress_sequences.c
create mode 100644 lib/zstd/compress/zstd_compress_sequences.h
create mode 100644 lib/zstd/compress/zstd_compress_superblock.c
create mode 100644 lib/zstd/compress/zstd_compress_superblock.h
create mode 100644 lib/zstd/compress/zstd_cwksp.h
create mode 100644 lib/zstd/compress/zstd_double_fast.c
create mode 100644 lib/zstd/compress/zstd_double_fast.h
create mode 100644 lib/zstd/compress/zstd_fast.c
create mode 100644 lib/zstd/compress/zstd_fast.h
create mode 100644 lib/zstd/compress/zstd_lazy.c
create mode 100644 lib/zstd/compress/zstd_lazy.h
create mode 100644 lib/zstd/compress/zstd_ldm.c
create mode 100644 lib/zstd/compress/zstd_ldm.h
create mode 100644 lib/zstd/compress/zstd_ldm_geartab.h
create mode 100644 lib/zstd/compress/zstd_opt.c
create mode 100644 lib/zstd/compress/zstd_opt.h
delete mode 100644 lib/zstd/decompress.c
create mode 100644 lib/zstd/decompress/huf_decompress.c
create mode 100644 lib/zstd/decompress/zstd_ddict.c
create mode 100644 lib/zstd/decompress/zstd_ddict.h
create mode 100644 lib/zstd/decompress/zstd_decompress.c
create mode 100644 lib/zstd/decompress/zstd_decompress_block.c
create mode 100644 lib/zstd/decompress/zstd_decompress_block.h
create mode 100644 lib/zstd/decompress/zstd_decompress_internal.h
create mode 100644 lib/zstd/decompress_sources.h
delete mode 100644 lib/zstd/entropy_common.c
delete mode 100644 lib/zstd/error_private.h
delete mode 100644 lib/zstd/fse.h
delete mode 100644 lib/zstd/fse_compress.c
delete mode 100644 lib/zstd/fse_decompress.c
delete mode 100644 lib/zstd/huf.h
delete mode 100644 lib/zstd/huf_compress.c
delete mode 100644 lib/zstd/huf_decompress.c
delete mode 100644 lib/zstd/mem.h
delete mode 100644 lib/zstd/zstd_common.c
create mode 100644 lib/zstd/zstd_compress_module.c
create mode 100644 lib/zstd/zstd_decompress_module.c
delete mode 100644 lib/zstd/zstd_internal.h
delete mode 100644 lib/zstd/zstd_opt.h
create mode 100644 mm/damon/paddr.c
create mode 100644 mm/damon/prmtv-common.c
create mode 100644 mm/damon/prmtv-common.h
create mode 100644 mm/damon/reclaim.c
create mode 100644 mm/folio-compat.c
create mode 100644 net/bluetooth/eir.c
create mode 100644 net/bluetooth/eir.h
create mode 100644 net/bluetooth/hci_codec.c
create mode 100644 net/bluetooth/hci_codec.h
create mode 100644 net/bpf/bpf_dummy_struct_ops.c
create mode 100644 net/core/of_net.c
create mode 100644 net/core/sock_destructor.h
create mode 100644 net/dsa/tag_rtl8_4.c
create mode 100644 net/ethtool/module.c
create mode 100644 net/mctp/test/route-test.c
create mode 100644 net/mctp/test/utils.c
create mode 100644 net/mctp/test/utils.h
rename net/qrtr/{qrtr.c => af_qrtr.c} (100%)
create mode 100644 net/smc/smc_tracepoint.c
create mode 100644 net/smc/smc_tracepoint.h
create mode 100644 samples/fanotify/.gitignore
create mode 100644 samples/fanotify/Makefile
create mode 100644 samples/fanotify/fs-monitor.c
create mode 100644 samples/ftrace/ftrace-direct-multi.c
create mode 100644 scripts/Makefile.debug
create mode 100644 scripts/coccinelle/misc/do_div.cocci
delete mode 100644 scripts/gcc-plugins/cyc_complexity_plugin.c
create mode 100755 scripts/pahole-flags.sh
create mode 100644 scripts/test_fortify.sh
create mode 100644 sound/firewire/motu/motu-command-dsp-message-parser.c
create mode 100644 sound/firewire/motu/motu-register-dsp-message-parser.c
create mode 100644 sound/soc/amd/acp-config.c
create mode 100644 sound/soc/amd/mach-config.h
create mode 100644 sound/soc/codecs/ak4375.c
create mode 100644 sound/soc/codecs/cs35l41-lib.c
delete mode 100644 sound/soc/codecs/cs35l41-tables.c
create mode 100644 sound/soc/codecs/tlv320adc3xxx.c
create mode 100644 sound/soc/intel/boards/sof_nau8825.c
create mode 100644 sound/soc/sof/amd/Kconfig
create mode 100644 sound/soc/sof/amd/Makefile
create mode 100644 sound/soc/sof/amd/acp-dsp-offset.h
create mode 100644 sound/soc/sof/amd/acp-ipc.c
create mode 100644 sound/soc/sof/amd/acp-loader.c
create mode 100644 sound/soc/sof/amd/acp-pcm.c
create mode 100644 sound/soc/sof/amd/acp-stream.c
create mode 100644 sound/soc/sof/amd/acp-trace.c
create mode 100644 sound/soc/sof/amd/acp.c
create mode 100644 sound/soc/sof/amd/acp.h
create mode 100644 sound/soc/sof/amd/pci-rn.c
create mode 100644 sound/soc/sof/amd/renoir.c
delete mode 100644 sound/soc/sof/imx/imx-ops.h
create mode 100644 sound/soc/sof/mediatek/Kconfig
create mode 100644 sound/soc/sof/mediatek/Makefile
create mode 100644 sound/soc/sof/mediatek/adsp_helper.h
create mode 100644 sound/soc/sof/mediatek/mt8195/Makefile
create mode 100644 sound/soc/sof/mediatek/mt8195/mt8195-clk.c
create mode 100644 sound/soc/sof/mediatek/mt8195/mt8195-clk.h
create mode 100644 sound/soc/sof/mediatek/mt8195/mt8195-loader.c
create mode 100644 sound/soc/sof/mediatek/mt8195/mt8195.c
create mode 100644 sound/soc/sof/mediatek/mt8195/mt8195.h
create mode 100644 sound/soc/sof/sof-of-dev.h
create mode 100644 tools/arch/arm64/include/asm/sysreg.h
create mode 100644 tools/arch/x86/include/asm/pvclock-abi.h
create mode 100644 tools/arch/x86/include/asm/pvclock.h
delete mode 100644 tools/bootconfig/include/linux/bug.h
delete mode 100644 tools/bootconfig/include/linux/ctype.h
delete mode 100644 tools/bootconfig/include/linux/errno.h
delete mode 100644 tools/bootconfig/include/linux/kernel.h
delete mode 100644 tools/bootconfig/include/linux/memblock.h
delete mode 100644 tools/bootconfig/include/linux/printk.h
delete mode 100644 tools/bootconfig/include/linux/string.h
create mode 100644 tools/build/feature/test-libtracefs.c
create mode 100644 tools/counter/Build
create mode 100644 tools/counter/Makefile
create mode 100644 tools/counter/counter_example.c
create mode 100644 tools/include/asm-generic/unaligned.h
create mode 100644 tools/include/linux/list_sort.h
create mode 100644 tools/lib/bpf/libbpf_version.h
create mode 100644 tools/lib/list_sort.c
delete mode 100644 tools/lib/lockdep/.gitignore
delete mode 100644 tools/lib/lockdep/Build
delete mode 100644 tools/lib/lockdep/Makefile
delete mode 100644 tools/lib/lockdep/common.c
delete mode 100644 tools/lib/lockdep/include/liblockdep/common.h
delete mode 100644 tools/lib/lockdep/include/liblockdep/mutex.h
delete mode 100644 tools/lib/lockdep/include/liblockdep/rwlock.h
delete mode 100755 tools/lib/lockdep/lockdep
delete mode 100644 tools/lib/lockdep/lockdep.c
delete mode 100644 tools/lib/lockdep/lockdep_internals.h
delete mode 100644 tools/lib/lockdep/lockdep_states.h
delete mode 100644 tools/lib/lockdep/preload.c
delete mode 100644 tools/lib/lockdep/rbtree.c
delete mode 100755 tools/lib/lockdep/run_tests.sh
delete mode 100644 tools/lib/lockdep/tests/AA.c
delete mode 100644 tools/lib/lockdep/tests/AA.sh
delete mode 100644 tools/lib/lockdep/tests/ABA.c
delete mode 100644 tools/lib/lockdep/tests/ABA.sh
delete mode 100644 tools/lib/lockdep/tests/ABBA.c
delete mode 100644 tools/lib/lockdep/tests/ABBA.sh
delete mode 100644 tools/lib/lockdep/tests/ABBA_2threads.c
delete mode 100644 tools/lib/lockdep/tests/ABBA_2threads.sh
delete mode 100644 tools/lib/lockdep/tests/ABBCCA.c
delete mode 100644 tools/lib/lockdep/tests/ABBCCA.sh
delete mode 100644 tools/lib/lockdep/tests/ABBCCDDA.c
delete mode 100644 tools/lib/lockdep/tests/ABBCCDDA.sh
delete mode 100644 tools/lib/lockdep/tests/ABCABC.c
delete mode 100644 tools/lib/lockdep/tests/ABCABC.sh
delete mode 100644 tools/lib/lockdep/tests/ABCDBCDA.c
delete mode 100644 tools/lib/lockdep/tests/ABCDBCDA.sh
delete mode 100644 tools/lib/lockdep/tests/ABCDBDDA.c
delete mode 100644 tools/lib/lockdep/tests/ABCDBDDA.sh
delete mode 100644 tools/lib/lockdep/tests/WW.c
delete mode 100644 tools/lib/lockdep/tests/WW.sh
delete mode 100644 tools/lib/lockdep/tests/common.h
delete mode 100644 tools/lib/lockdep/tests/unlock_balance.c
delete mode 100644 tools/lib/lockdep/tests/unlock_balance.sh
create mode 100644 tools/perf/arch/riscv64/annotate/instructions.c
create mode 100644 tools/perf/dlfilters/dlfilter-show-cycles.c
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-v1/branch.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-v1/bus.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-v1/cache.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-v1/exception.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-v1/instruction.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-v1/memory.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-v1/other.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-v1/pipeline.json
create mode 100644 tools/perf/pmu-events/arch/powerpc/power10/metrics.json
create mode 100755 tools/perf/tests/shell/stat_all_metricgroups.sh
create mode 100755 tools/perf/tests/shell/stat_all_metrics.sh
create mode 100755 tools/perf/tests/shell/stat_all_pmu.sh
create mode 100755 tools/perf/tests/shell/test_arm_spe.sh
create mode 100755 tools/perf/trace/beauty/sockaddr.sh
delete mode 100755 tools/perf/trace/beauty/socket_ipproto.sh
create mode 100644 tools/perf/util/bpf-utils.c
create mode 100644 tools/perf/util/bpf-utils.h
create mode 100644 tools/rcu/extract-stall.sh
create mode 100644 tools/testing/cxl/Kbuild
create mode 100644 tools/testing/cxl/config_check.c
create mode 100644 tools/testing/cxl/mock_acpi.c
create mode 100644 tools/testing/cxl/mock_pmem.c
create mode 100644 tools/testing/cxl/test/Kbuild
create mode 100644 tools/testing/cxl/test/cxl.c
create mode 100644 tools/testing/cxl/test/mem.c
create mode 100644 tools/testing/cxl/test/mock.c
create mode 100644 tools/testing/cxl/test/mock.h
create mode 100644 tools/testing/kunit/test_data/test_is_test_passed-all_passed_nested.log
create mode 100644 tools/testing/kunit/test_data/test_is_test_passed-kselftest.log
create mode 100644 tools/testing/kunit/test_data/test_is_test_passed-missing_plan.log
create mode 100644 tools/testing/kunit/test_data/test_strip_hyphen.log
create mode 100644 tools/testing/selftests/arm64/fp/asm-utils.S
delete mode 100644 tools/testing/selftests/arm64/fp/sve-ptrace-asm.S
create mode 100644 tools/testing/selftests/bpf/benchs/bench_bloom_filter_map.c
create mode 100755 tools/testing/selftests/bpf/benchs/run_bench_bloom_filter_map.sh
create mode 100644 tools/testing/selftests/bpf/benchs/run_common.sh
create mode 100644 tools/testing/selftests/bpf/prog_tests/bloom_filter_map.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/btf_tag.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/dummy_st_ops.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/get_branch_snapshot.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/skc_to_unix_sock.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/trace_vprintk.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/verif_stats.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/xdpwall.c
create mode 100644 tools/testing/selftests/bpf/progs/bloom_filter_bench.c
create mode 100644 tools/testing/selftests/bpf/progs/bloom_filter_map.c
create mode 100644 tools/testing/selftests/bpf/progs/dummy_st_ops.c
create mode 100644 tools/testing/selftests/bpf/progs/get_branch_snapshot.c
create mode 100644 tools/testing/selftests/bpf/progs/tag.c
create mode 100644 tools/testing/selftests/bpf/progs/tailcall6.c
create mode 100644 tools/testing/selftests/bpf/progs/test_skc_to_unix_sock.c
create mode 100644 tools/testing/selftests/bpf/progs/trace_vprintk.c
create mode 100644 tools/testing/selftests/bpf/progs/twfw.c
create mode 100644 tools/testing/selftests/bpf/progs/xdpwall.c
create mode 100644 tools/testing/selftests/bpf/verifier/atomic_fetch.c
create mode 100644 tools/testing/selftests/bpf/verifier/atomic_invalid.c
create mode 100755 tools/testing/selftests/drivers/net/dsa/test_bridge_fdb_stress.sh
create mode 100644 tools/testing/selftests/drivers/net/mlxsw/rif_mac_profile_scale.sh
create mode 100755 tools/testing/selftests/drivers/net/mlxsw/rif_mac_profiles.sh
create mode 100755 tools/testing/selftests/drivers/net/mlxsw/rif_mac_profiles_occ.sh
create mode 100755 tools/testing/selftests/drivers/net/mlxsw/sch_offload.sh
create mode 100755 tools/testing/selftests/drivers/net/mlxsw/spectrum-2/devlink_trap_tunnel_ipip6.sh
create mode 100644 tools/testing/selftests/drivers/net/mlxsw/spectrum-2/rif_mac_profile_scale.sh
create mode 100644 tools/testing/selftests/drivers/net/mlxsw/spectrum/rif_mac_profile_scale.sh
create mode 100755 tools/testing/selftests/drivers/net/netdevsim/tc-mq-visibility.sh
create mode 100644 tools/testing/selftests/ftrace/test.d/trigger/trigger-hist-expressions.tc
create mode 100644 tools/testing/selftests/futex/functional/futex_waitv.c
create mode 100644 tools/testing/selftests/futex/include/futex2test.h
create mode 100644 tools/testing/selftests/kvm/aarch64/arch_timer.c
create mode 100644 tools/testing/selftests/kvm/include/aarch64/arch_timer.h
create mode 100644 tools/testing/selftests/kvm/include/aarch64/delay.h
create mode 100644 tools/testing/selftests/kvm/include/aarch64/gic.h
create mode 100644 tools/testing/selftests/kvm/include/aarch64/spinlock.h
create mode 100644 tools/testing/selftests/kvm/include/aarch64/vgic.h
create mode 100644 tools/testing/selftests/kvm/lib/aarch64/gic.c
create mode 100644 tools/testing/selftests/kvm/lib/aarch64/gic_private.h
create mode 100644 tools/testing/selftests/kvm/lib/aarch64/gic_v3.c
create mode 100644 tools/testing/selftests/kvm/lib/aarch64/gic_v3.h
create mode 100644 tools/testing/selftests/kvm/lib/aarch64/spinlock.c
create mode 100644 tools/testing/selftests/kvm/lib/aarch64/vgic.c
create mode 100644 tools/testing/selftests/kvm/system_counter_offset_test.c
create mode 100644 tools/testing/selftests/kvm/x86_64/kvm_clock_test.c
create mode 100644 tools/testing/selftests/kvm/x86_64/sev_migrate_tests.c
create mode 100644 tools/testing/selftests/net/amt.sh
create mode 100755 tools/testing/selftests/net/arp_ndisc_evict_nocarrier.sh
create mode 100644 tools/testing/selftests/net/cmsg_so_mark.c
create mode 100755 tools/testing/selftests/net/cmsg_so_mark.sh
create mode 100755 tools/testing/selftests/net/forwarding/ip6_forward_instats_vrf.sh
create mode 100755 tools/testing/selftests/net/forwarding/ip6gre_flat.sh
create mode 100755 tools/testing/selftests/net/forwarding/ip6gre_flat_key.sh
create mode 100755 tools/testing/selftests/net/forwarding/ip6gre_flat_keys.sh
create mode 100755 tools/testing/selftests/net/forwarding/ip6gre_hier.sh
create mode 100755 tools/testing/selftests/net/forwarding/ip6gre_hier_key.sh
create mode 100755 tools/testing/selftests/net/forwarding/ip6gre_hier_keys.sh
create mode 100644 tools/testing/selftests/net/forwarding/ip6gre_lib.sh
create mode 100644 tools/testing/selftests/net/mptcp/mptcp_sockopt.c
create mode 100644 tools/testing/selftests/proc/proc-tid0.c
create mode 100644 tools/testing/selftests/vm/hugepage-mremap.c
create mode 100644 tools/testing/selftests/x86/amx.c
2
1

11 Jan '22
From: Tom Rix <trix(a)redhat.com>
Clang static analysis reports this problem
cs35l41_hda.c:501:2: warning: Attempt to free released memory
kfree(acpi_hw_cfg);
^~~~~~~~~~~~~~~~~~
This second free happens in the function's error handler which
is normally ok but acpi_hw_cfg is freed in the non error case
when it is still possible to have an error.
Consolidate the frees.
Fixes: 7b2f3eb492da ("ALSA: hda: cs35l41: Add support for CS35L41 in HDA systems")
Signed-off-by: Tom Rix <trix(a)redhat.com>
---
sound/pci/hda/cs35l41_hda.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/sound/pci/hda/cs35l41_hda.c b/sound/pci/hda/cs35l41_hda.c
index aa5bb6977792c..265ace98965f5 100644
--- a/sound/pci/hda/cs35l41_hda.c
+++ b/sound/pci/hda/cs35l41_hda.c
@@ -476,7 +476,6 @@ int cs35l41_hda_probe(struct device *dev, const char *device_name, int id, int i
ret = cs35l41_hda_apply_properties(cs35l41, acpi_hw_cfg);
if (ret)
goto err;
- kfree(acpi_hw_cfg);
if (cs35l41->reg_seq->probe) {
ret = regmap_register_patch(cs35l41->regmap, cs35l41->reg_seq->probe,
@@ -495,13 +494,14 @@ int cs35l41_hda_probe(struct device *dev, const char *device_name, int id, int i
dev_info(cs35l41->dev, "Cirrus Logic CS35L41 (%x), Revision: %02X\n", regid, reg_revid);
- return 0;
-
err:
kfree(acpi_hw_cfg);
- if (!cs35l41->vspk_always_on)
- gpiod_set_value_cansleep(cs35l41->reset_gpio, 0);
- gpiod_put(cs35l41->reset_gpio);
+
+ if (unlikely(ret)) {
+ if (!cs35l41->vspk_always_on)
+ gpiod_set_value_cansleep(cs35l41->reset_gpio, 0);
+ gpiod_put(cs35l41->reset_gpio);
+ }
return ret;
}
--
2.26.3
4
4

11 Jan '22
If we encounter an error after the kfree(acpi_hw_cfg); then the goto
err; will result in a double free.
Fixes: 7b2f3eb492da ("ALSA: hda: cs35l41: Add support for CS35L41 in HDA systems")
Signed-off-by: Dan Carpenter <dan.carpenter(a)oracle.com>
---
sound/pci/hda/cs35l41_hda.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/sound/pci/hda/cs35l41_hda.c b/sound/pci/hda/cs35l41_hda.c
index aa5bb6977792..30b40d865863 100644
--- a/sound/pci/hda/cs35l41_hda.c
+++ b/sound/pci/hda/cs35l41_hda.c
@@ -477,6 +477,7 @@ int cs35l41_hda_probe(struct device *dev, const char *device_name, int id, int i
if (ret)
goto err;
kfree(acpi_hw_cfg);
+ acpi_hw_cfg = NULL;
if (cs35l41->reg_seq->probe) {
ret = regmap_register_patch(cs35l41->regmap, cs35l41->reg_seq->probe,
--
2.20.1
2
1
There are drivers in mainline for the Xilinx Audio Formatter and Xilinx
I2S IP cores. However, because of a few issues, these were only really
usable with Xilinx's xlnx_pl_snd_card top-level driver, which is not in
mainline (and not suitable for mainline).
The fixes in this patchset, for the simple-card layer as well as the
Xilinx drivers, now allow these drivers to be properly used with
simple-card without any out-of-tree support code.
Changes since v1:
-formatting fixes
-renamed last_sysclk variables to sysclk
-require exact match for clock divisor rather than rounding to nearest
-broke out driver data structure change in xlnx_i2s to separate patch
-added constraints for sample rate based on sysclk to xlnx_i2s
-switched to separate function for DAI parsing for platforms in simple_card
Robert Hancock (6):
ASoC: xilinx: xlnx_formatter_pcm: Make buffer bytes multiple of period
bytes
ASoC: xilinx: xlnx_formatter_pcm: Handle sysclk setting
ASoC: xilinx: xlnx_i2s: create drvdata structure
ASoC: xilinx: xlnx_i2s: Handle sysclk setting
ASoC: simple-card: fix probe failure on platform component
ASoC: simple-card-utils: Set sysclk on all components
sound/soc/generic/simple-card-utils.c | 15 +++
sound/soc/generic/simple-card.c | 26 ++++-
sound/soc/xilinx/xlnx_formatter_pcm.c | 52 ++++++++-
sound/soc/xilinx/xlnx_i2s.c | 147 +++++++++++++++++++-------
4 files changed, 200 insertions(+), 40 deletions(-)
--
2.31.1
2
13

11 Jan '22
From: Allen-KH Cheng <Allen-KH.Cheng(a)mediatek.com>
Mediatek ADSP IPC is used to send notification or short message between
processors with dsp.·
It will place the message to the share buffer and will access the ADSP mailbox
registers to kick dsp.
Two mailboxes used to send notification or short message between processors with
dsp
changes since v10:
- split up v9 into two separate submissions
https://patchwork.kernel.org/project/linux-mediatek/patch/20220111071011.59…
changes since v9:
- rename adsp_mbox_chan_ops to mtk_adsp_mbox_chan_ops
changes since v8:
- remove struct adsp_mbox_ch_info
- add get_mtk_adsp_mbox_priv
- use mtk_adsp_mbox_priv va_mboxreg address in adsp mbox driver
- add struct mtk_adsp_mbox_cfg for DSP mbox register offset
- remove adsp mbox register offset hard code define
- remove mtk-adsp-ipc.h reference in adsp mbox driver
changes since v7:
- add mtk prefix for adsp ipc functions
- rename adsp_mbox_ch_info to mtk_adsp_mbox_ch_info
- remove incorrect reviewers in commit message
changes since v6:
- dt-bindings: change example dtsi node.
- rename config MTK_ADSP_IPC_MBOX to MTK_ADSP_MBOX
- remove unused variable
- add reviewers
changes since v5:
- remove some redundant code
changes since v4:
- use switch ... case in adsp_ipc_recv
- add error handling path for chan_name pointer
- refine some code to be concise
changes since v3:
- reorder MTK_ADSP_IPC_MBOX config
- remove some redundant code
- remove lock in mtk-adsp-mailbox
changes since v2:
- separate adsp_mailbox into two instances
changes since v1:
- fix dt_binding_check error
Allen-KH Cheng (2):
dt-bindings: mediatek: add adsp-mbox document
mailbox: mediatek: add support for adsp mailbox controller
.../bindings/mailbox/mtk,adsp-mbox.yaml | 52 ++++++
drivers/mailbox/Kconfig | 7 +
drivers/mailbox/Makefile | 2 +
drivers/mailbox/mtk-adsp-mailbox.c | 176 ++++++++++++++++++
4 files changed, 237 insertions(+)
create mode 100644 Documentation/devicetree/bindings/mailbox/mtk,adsp-mbox.yaml
create mode 100644 drivers/mailbox/mtk-adsp-mailbox.c
--
2.18.0
1
2
This pair of patches implements support for the TAS5805M class D audio
amplifier. This driver, and the example configuration in the device-tree
file, were originally based on a 4.19 series kernel and have been
modified very slightly from the tested version (digital_mute has been
replaced with mute_stream, and the new IS_ENABLED macro is used).
Daniel Beer (2):
ASoC: add support for TAS5805M digital amplifier
ASoC: dt-bindings: add bindings for TI TAS5805M.
.../devicetree/bindings/sound/tas5805m.yaml | 201 +++++++
sound/soc/codecs/Kconfig | 9 +
sound/soc/codecs/Makefile | 2 +
sound/soc/codecs/tas5805m.c | 534 ++++++++++++++++++
4 files changed, 746 insertions(+)
create mode 100644 Documentation/devicetree/bindings/sound/tas5805m.yaml
create mode 100644 sound/soc/codecs/tas5805m.c
--
2.30.2
1
0

[PATCH 1/5] ASoC: sh: rz-ssi: Drop calling rz_ssi_pio_recv() recursively
by Lad Prabhakar 10 Jan '22
by Lad Prabhakar 10 Jan '22
10 Jan '22
Instead of recursively calling rz_ssi_pio_recv() use a while loop
to read the samples from RX fifo.
This also fixes an issue where the return value of rz_ssi_pio_recv()
was ignored when called recursively.
Fixes: 03e786bd4341 ("ASoC: sh: Add RZ/G2L SSIF-2 driver")
Reported-by: Pavel Machek <pavel(a)denx.de>
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj(a)bp.renesas.com>
Reviewed-by: Biju Das <biju.das.jz(a)bp.renesas.com>
---
sound/soc/sh/rz-ssi.c | 68 ++++++++++++++++++++++---------------------
1 file changed, 35 insertions(+), 33 deletions(-)
diff --git a/sound/soc/sh/rz-ssi.c b/sound/soc/sh/rz-ssi.c
index fa0cc08f70ec..37466f65c2b0 100644
--- a/sound/soc/sh/rz-ssi.c
+++ b/sound/soc/sh/rz-ssi.c
@@ -411,54 +411,56 @@ static int rz_ssi_pio_recv(struct rz_ssi_priv *ssi, struct rz_ssi_stream *strm)
{
struct snd_pcm_substream *substream = strm->substream;
struct snd_pcm_runtime *runtime;
+ bool done = false;
u16 *buf;
int fifo_samples;
int frames_left;
- int samples = 0;
+ int samples;
int i;
if (!rz_ssi_stream_is_valid(ssi, strm))
return -EINVAL;
runtime = substream->runtime;
- /* frames left in this period */
- frames_left = runtime->period_size - (strm->buffer_pos %
- runtime->period_size);
- if (frames_left == 0)
- frames_left = runtime->period_size;
- /* Samples in RX FIFO */
- fifo_samples = (rz_ssi_reg_readl(ssi, SSIFSR) >>
- SSIFSR_RDC_SHIFT) & SSIFSR_RDC_MASK;
-
- /* Only read full frames at a time */
- while (frames_left && (fifo_samples >= runtime->channels)) {
- samples += runtime->channels;
- fifo_samples -= runtime->channels;
- frames_left--;
- }
+ while (!done) {
+ /* frames left in this period */
+ frames_left = runtime->period_size -
+ (strm->buffer_pos % runtime->period_size);
+ if (!frames_left)
+ frames_left = runtime->period_size;
+
+ /* Samples in RX FIFO */
+ fifo_samples = (rz_ssi_reg_readl(ssi, SSIFSR) >>
+ SSIFSR_RDC_SHIFT) & SSIFSR_RDC_MASK;
+
+ /* Only read full frames at a time */
+ samples = 0;
+ while (frames_left && (fifo_samples >= runtime->channels)) {
+ samples += runtime->channels;
+ fifo_samples -= runtime->channels;
+ frames_left--;
+ }
- /* not enough samples yet */
- if (samples == 0)
- return 0;
+ /* not enough samples yet */
+ if (!samples)
+ break;
- /* calculate new buffer index */
- buf = (u16 *)(runtime->dma_area);
- buf += strm->buffer_pos * runtime->channels;
+ /* calculate new buffer index */
+ buf = (u16 *)(runtime->dma_area);
+ buf += strm->buffer_pos * runtime->channels;
- /* Note, only supports 16-bit samples */
- for (i = 0; i < samples; i++)
- *buf++ = (u16)(rz_ssi_reg_readl(ssi, SSIFRDR) >> 16);
+ /* Note, only supports 16-bit samples */
+ for (i = 0; i < samples; i++)
+ *buf++ = (u16)(rz_ssi_reg_readl(ssi, SSIFRDR) >> 16);
- rz_ssi_reg_mask_setl(ssi, SSIFSR, SSIFSR_RDF, 0);
- rz_ssi_pointer_update(strm, samples / runtime->channels);
+ rz_ssi_reg_mask_setl(ssi, SSIFSR, SSIFSR_RDF, 0);
+ rz_ssi_pointer_update(strm, samples / runtime->channels);
- /*
- * If we finished this period, but there are more samples in
- * the RX FIFO, call this function again
- */
- if (frames_left == 0 && fifo_samples >= runtime->channels)
- rz_ssi_pio_recv(ssi, strm);
+ /* check if there are no more samples in the RX FIFO */
+ if (!(!frames_left && fifo_samples >= runtime->channels))
+ done = true;
+ }
return 0;
}
--
2.17.1
4
6

[PATCH] ASoC: codecs: lpass-wsa-macro: Check for error pointer after calling devm_regmap_init_mmio
by Jiasheng Jiang 10 Jan '22
by Jiasheng Jiang 10 Jan '22
10 Jan '22
The devm_regmap_init_mmio() may return error pointer in some cases, for
example the possible failure of the kzalloc() in
regmap_mmio_gen_context().
Then the wsa->regmap will be error pointer and be used in
wsa_macro_mclk_enable().
Therefore, it should be better to check it in order to avoid the
dereference of the error pointer.
Fixes: 809bcbcecebf ("ASoC: codecs: lpass-wsa-macro: Add support to WSA Macro")
Signed-off-by: Jiasheng Jiang <jiasheng(a)iscas.ac.cn>
---
sound/soc/codecs/lpass-wsa-macro.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/sound/soc/codecs/lpass-wsa-macro.c b/sound/soc/codecs/lpass-wsa-macro.c
index d3ac318fd6b6..dd1a8b7bc794 100644
--- a/sound/soc/codecs/lpass-wsa-macro.c
+++ b/sound/soc/codecs/lpass-wsa-macro.c
@@ -2405,6 +2405,8 @@ static int wsa_macro_probe(struct platform_device *pdev)
return PTR_ERR(base);
wsa->regmap = devm_regmap_init_mmio(dev, base, &wsa_regmap_config);
+ if (IS_ERR(wsa->regmap))
+ return PTR_ERR(wsa->regmap);
dev_set_drvdata(dev, wsa);
--
2.25.1
2
1

[PATCH 0/7] ASoC/SoundWire: improve suspend flows and use set_stream() instead of set_tdm_slots() for HDAudio
by Bard Liao 10 Jan '22
by Bard Liao 10 Jan '22
10 Jan '22
This series contains three topics.
1. SoundWire: Intel: remove pdm support
2. ASoC/SoundWire: dai: expand 'stream' concept beyond SoundWire
3. ASoC/SOF/SoundWire: fix suspend-resume on pause with dynamic pipelines
The topics are independent but the changes are dependent. So please
allow me to send them in one series.
Pierre-Louis Bossart (6):
ASOC: SOF: Intel: use snd_soc_dai_get_widget()
ASoC/soundwire: intel: simplify callbacks for params/hw_free
ASoC/SoundWire: dai: expand 'stream' concept beyond SoundWire
ASoC: Intel/SOF: use set_stream() instead of set_tdm_slots() for
HDAudio
soundwire: intel: remove unnecessary init
soundwire: intel: remove PDM support
Ranjani Sridharan (1):
soundwire: intel: improve suspend flows
drivers/soundwire/cadence_master.c | 36 +---
drivers/soundwire/cadence_master.h | 14 +-
drivers/soundwire/intel.c | 253 ++++++++++++++--------------
drivers/soundwire/qcom.c | 8 +-
drivers/soundwire/stream.c | 4 +-
include/linux/soundwire/sdw_intel.h | 4 +-
include/sound/soc-dai.h | 32 ++--
sound/soc/codecs/hdac_hda.c | 22 +--
sound/soc/codecs/max98373-sdw.c | 2 +-
sound/soc/codecs/rt1308-sdw.c | 2 +-
sound/soc/codecs/rt1316-sdw.c | 2 +-
sound/soc/codecs/rt5682-sdw.c | 2 +-
sound/soc/codecs/rt700.c | 2 +-
sound/soc/codecs/rt711-sdca.c | 2 +-
sound/soc/codecs/rt711.c | 2 +-
sound/soc/codecs/rt715-sdca.c | 2 +-
sound/soc/codecs/rt715.c | 2 +-
sound/soc/codecs/sdw-mockup.c | 2 +-
sound/soc/codecs/wcd938x.c | 2 +-
sound/soc/codecs/wsa881x.c | 2 +-
sound/soc/intel/boards/sof_sdw.c | 6 +-
sound/soc/intel/skylake/skl-pcm.c | 7 +-
sound/soc/qcom/sdm845.c | 4 +-
sound/soc/qcom/sm8250.c | 4 +-
sound/soc/sof/intel/hda-dai.c | 7 +-
sound/soc/sof/intel/hda.c | 12 +-
26 files changed, 190 insertions(+), 247 deletions(-)
--
2.17.1
5
23

10 Jan '22
From: Minghao Chi <chi.minghao(a)zte.com.cn>
Return value from SWRM_REG_VAL_PACK() directly instead
of taking this in another redundant variable.
Reported-by: Zeal Robot <zealci(a)zte.com.cn>
Signed-off-by: Minghao Chi <chi.minghao(a)zte.com.cn>
Signed-off-by: CGEL ZTE <cgel.zte(a)gmail.com>
---
drivers/soundwire/qcom.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/soundwire/qcom.c b/drivers/soundwire/qcom.c
index 54813417ef8e..77f9c90370be 100644
--- a/drivers/soundwire/qcom.c
+++ b/drivers/soundwire/qcom.c
@@ -235,7 +235,6 @@ static int qcom_swrm_cpu_reg_write(struct qcom_swrm_ctrl *ctrl, int reg,
static u32 swrm_get_packed_reg_val(u8 *cmd_id, u8 cmd_data,
u8 dev_addr, u16 reg_addr)
{
- u32 val;
u8 id = *cmd_id;
if (id != SWR_BROADCAST_CMD_ID) {
@@ -245,9 +244,8 @@ static u32 swrm_get_packed_reg_val(u8 *cmd_id, u8 cmd_data,
id = 0;
*cmd_id = id;
}
- val = SWRM_REG_VAL_PACK(cmd_data, dev_addr, id, reg_addr);
- return val;
+ return SWRM_REG_VAL_PACK(cmd_data, dev_addr, id, reg_addr);
}
static int swrm_wait_for_rd_fifo_avail(struct qcom_swrm_ctrl *swrm)
--
2.25.1
2
1

[PATCH 5/5] ASoC: sh: rz-ssi: Add functions to get/set substream pointer
by Lad Prabhakar 10 Jan '22
by Lad Prabhakar 10 Jan '22
10 Jan '22
A copy of substream pointer is stored in priv structure during
rz_ssi_dai_trigger() callback ie in SNDRV_PCM_TRIGGER_START case
and the pointer is assigned to NULL in case of SNDRV_PCM_TRIGGER_STOP.
The driver used the locks only in rz_ssi_stream_is_valid() and assigned
the local substream pointer to NULL in rz_ssi_dai_trigger() callback and
in rest of the driver no locking was used while assigning substream
pointer.
This patch adds functions to get/set substream pointer with locks acquired
and replaces the instances of access to substream pointer with the
get/set functions.
Reported-by: Pavel Machek <pavel(a)denx.de>
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj(a)bp.renesas.com>
Reviewed-by: Biju Das <biju.das.jz(a)bp.renesas.com>
---
sound/soc/sh/rz-ssi.c | 55 ++++++++++++++++++++++++++++++++-----------
1 file changed, 41 insertions(+), 14 deletions(-)
diff --git a/sound/soc/sh/rz-ssi.c b/sound/soc/sh/rz-ssi.c
index aabd15e9d515..057aedacedec 100644
--- a/sound/soc/sh/rz-ssi.c
+++ b/sound/soc/sh/rz-ssi.c
@@ -201,12 +201,36 @@ static bool rz_ssi_stream_is_valid(struct rz_ssi_priv *ssi,
return ret;
}
+static struct snd_pcm_substream *rz_ssi_get_substream(struct rz_ssi_stream *strm)
+{
+ struct rz_ssi_priv *ssi = strm->priv;
+ struct snd_pcm_substream *substream;
+ unsigned long flags;
+
+ spin_lock_irqsave(&ssi->lock, flags);
+ substream = strm->substream;
+ spin_unlock_irqrestore(&ssi->lock, flags);
+
+ return substream;
+}
+
+static void rz_ssi_set_substream(struct rz_ssi_stream *strm,
+ struct snd_pcm_substream *substream)
+{
+ struct rz_ssi_priv *ssi = strm->priv;
+ unsigned long flags;
+
+ spin_lock_irqsave(&ssi->lock, flags);
+ strm->substream = substream;
+ spin_unlock_irqrestore(&ssi->lock, flags);
+}
+
static void rz_ssi_stream_init(struct rz_ssi_stream *strm,
struct snd_pcm_substream *substream)
{
struct snd_pcm_runtime *runtime = substream->runtime;
- strm->substream = substream;
+ rz_ssi_set_substream(strm, substream);
strm->sample_width = samples_to_bytes(runtime, 1);
strm->dma_buffer_pos = 0;
strm->period_counter = 0;
@@ -223,12 +247,13 @@ static void rz_ssi_stream_init(struct rz_ssi_stream *strm,
static void rz_ssi_stream_quit(struct rz_ssi_priv *ssi,
struct rz_ssi_stream *strm)
{
- struct snd_soc_dai *dai = rz_ssi_get_dai(strm->substream);
- unsigned long flags;
+ struct snd_pcm_substream *substream;
+ struct snd_soc_dai *dai;
- spin_lock_irqsave(&ssi->lock, flags);
- strm->substream = NULL;
- spin_unlock_irqrestore(&ssi->lock, flags);
+ substream = rz_ssi_get_substream(strm);
+ rz_ssi_set_substream(strm, NULL);
+
+ dai = rz_ssi_get_dai(substream);
if (strm->oerr_num > 0)
dev_info(dai->dev, "overrun = %d\n", strm->oerr_num);
@@ -301,7 +326,8 @@ static int rz_ssi_clk_setup(struct rz_ssi_priv *ssi, unsigned int rate,
static int rz_ssi_start(struct rz_ssi_priv *ssi, struct rz_ssi_stream *strm)
{
- bool is_play = rz_ssi_stream_is_play(ssi, strm->substream);
+ struct snd_pcm_substream *substream = rz_ssi_get_substream(strm);
+ bool is_play = rz_ssi_stream_is_play(ssi, substream);
u32 ssicr, ssifcr;
ssicr = rz_ssi_reg_readl(ssi, SSICR);
@@ -382,7 +408,7 @@ static int rz_ssi_stop(struct rz_ssi_priv *ssi, struct rz_ssi_stream *strm)
static void rz_ssi_pointer_update(struct rz_ssi_stream *strm, int frames)
{
- struct snd_pcm_substream *substream = strm->substream;
+ struct snd_pcm_substream *substream = rz_ssi_get_substream(strm);
struct snd_pcm_runtime *runtime;
int current_period;
@@ -399,14 +425,14 @@ static void rz_ssi_pointer_update(struct rz_ssi_stream *strm, int frames)
current_period = strm->buffer_pos / runtime->period_size;
if (strm->period_counter != current_period) {
- snd_pcm_period_elapsed(strm->substream);
+ snd_pcm_period_elapsed(substream);
strm->period_counter = current_period;
}
}
static int rz_ssi_pio_recv(struct rz_ssi_priv *ssi, struct rz_ssi_stream *strm)
{
- struct snd_pcm_substream *substream = strm->substream;
+ struct snd_pcm_substream *substream = rz_ssi_get_substream(strm);
struct snd_pcm_runtime *runtime;
bool done = false;
u16 *buf;
@@ -464,7 +490,7 @@ static int rz_ssi_pio_recv(struct rz_ssi_priv *ssi, struct rz_ssi_stream *strm)
static int rz_ssi_pio_send(struct rz_ssi_priv *ssi, struct rz_ssi_stream *strm)
{
- struct snd_pcm_substream *substream = strm->substream;
+ struct snd_pcm_substream *substream = rz_ssi_get_substream(strm);
struct snd_pcm_runtime *runtime = substream->runtime;
int sample_space;
int samples = 0;
@@ -588,7 +614,7 @@ static int rz_ssi_dma_slave_config(struct rz_ssi_priv *ssi,
static int rz_ssi_dma_transfer(struct rz_ssi_priv *ssi,
struct rz_ssi_stream *strm)
{
- struct snd_pcm_substream *substream = strm->substream;
+ struct snd_pcm_substream *substream = rz_ssi_get_substream(strm);
struct dma_async_tx_descriptor *desc;
struct snd_pcm_runtime *runtime;
enum dma_transfer_direction dir;
@@ -646,12 +672,13 @@ static int rz_ssi_dma_transfer(struct rz_ssi_priv *ssi,
static void rz_ssi_dma_complete(void *data)
{
struct rz_ssi_stream *strm = (struct rz_ssi_stream *)data;
+ struct snd_pcm_substream *substream = rz_ssi_get_substream(strm);
- if (!strm->running || !strm->substream || !strm->substream->runtime)
+ if (!strm->running || !substream || !substream->runtime)
return;
/* Note that next DMA transaction has probably already started */
- rz_ssi_pointer_update(strm, strm->substream->runtime->period_size);
+ rz_ssi_pointer_update(strm, substream->runtime->period_size);
/* Queue up another DMA transaction */
rz_ssi_dma_transfer(strm->priv, strm);
--
2.17.1
3
2
Hi All,
After rebasing my recent Bay Trail rt5640 patch series on top of
broonie/sound.git/for-5.17 I'm seeing the following new lockdep
warning on devices running the rebased branch:
[ 131.404755] ============================================
[ 131.404762] WARNING: possible recursive locking detected
[ 131.404769] 5.16.0-rc8+ #758 Tainted: G C
[ 131.404777] --------------------------------------------
[ 131.404782] pipewire/1372 is trying to acquire lock:
[ 131.404789] ffffa090838535a0 (&group->mutex){+.+.}-{3:3}, at: _snd_pcm_stream_lock_irqsave+0x2b/0x30 [snd_pcm]
[ 131.404845]
but task is already holding lock:
[ 131.404851] ffffa09088e981a0 (&group->mutex){+.+.}-{3:3}, at: snd_pcm_action_lock_irq+0x2d/0x90 [snd_pcm]
[ 131.404894]
other info that might help us debug this:
[ 131.404899] Possible unsafe locking scenario:
[ 131.404905] CPU0
[ 131.404909] ----
[ 131.404913] lock(&group->mutex);
[ 131.404923] lock(&group->mutex);
[ 131.404932]
*** DEADLOCK ***
[ 131.404937] May be due to missing lock nesting notation
[ 131.404942] 1 lock held by pipewire/1372:
[ 131.404950] #0: ffffa09088e981a0 (&group->mutex){+.+.}-{3:3}, at: snd_pcm_action_lock_irq+0x2d/0x90 [snd_pcm]
[ 131.404994]
stack backtrace:
[ 131.405001] CPU: 2 PID: 1372 Comm: pipewire Tainted: G C 5.16.0-rc8+ #758
[ 131.405012] Hardware name: ASUSTeK COMPUTER INC. TF103CE/TF103CE, BIOS 5.6.5 09/03/2015
[ 131.405019] Call Trace:
[ 131.405022] sd 0:0:0:0: [sda] 31805439 512-byte logical blocks: (16.3 GB/15.2 GiB)
[ 131.405027] <TASK>
[ 131.405034] dump_stack_lvl+0x59/0x73
[ 131.405057] __lock_acquire.cold+0xc5/0x2b8
[ 131.405081] lock_acquire+0xb5/0x2b0
[ 131.405095] ? _snd_pcm_stream_lock_irqsave+0x2b/0x30 [snd_pcm]
[ 131.405128] ? lock_is_held_type+0xa8/0x120
[ 131.405148] __mutex_lock+0x92/0x8a0
[ 131.405163] ? _snd_pcm_stream_lock_irqsave+0x2b/0x30 [snd_pcm]
[ 131.405195] ? mark_held_locks+0x49/0x70
[ 131.405208] ? _snd_pcm_stream_lock_irqsave+0x2b/0x30 [snd_pcm]
[ 131.405241] ? _raw_spin_unlock_irqrestore+0x2d/0x50
[ 131.405260] ? _snd_pcm_stream_lock_irqsave+0x2b/0x30 [snd_pcm]
[ 131.405291] _snd_pcm_stream_lock_irqsave+0x2b/0x30 [snd_pcm]
[ 131.405322] dpcm_be_dai_trigger+0xae/0x410 [snd_soc_core]
[ 131.405404] sda: detected capacity change from 0 to 31805439
[ 131.405406] dpcm_fe_dai_do_trigger+0x84/0x1b0 [snd_soc_core]
[ 131.405480] snd_pcm_action+0x79/0xc0 [snd_pcm]
[ 131.405515] snd_pcm_action_lock_irq+0x3b/0x90 [snd_pcm]
[ 131.405549] snd_pcm_ioctl+0x23/0x30 [snd_pcm]
[ 131.405581] __x64_sys_ioctl+0x82/0xb0
[ 131.405599] do_syscall_64+0x3b/0x90
[ 131.405612] entry_SYSCALL_64_after_hwframe+0x44/0xae
[ 131.405624] RIP: 0033:0x7f70c0b2e37b
[ 131.405637] Code: ff ff ff 85 c0 79 9b 49 c7 c4 ff ff ff ff 5b 5d 4c 89 e0 41 5c c3 66 0f 1f 84 00 00 00 00 00 f3 0f 1e fa b8 10 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 7d 2a 0f 00 f7 d8 64 89 01 48
[ 131.405647] RSP: 002b:00007ffdfdd46e88 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
[ 131.405660] RAX: ffffffffffffffda RBX: 00005584f8f43a40 RCX: 00007f70c0b2e37b
[ 131.405669] RDX: 0000000000000000 RSI: 0000000000004142 RDI: 0000000000000048
[ 131.405676] RBP: 0000000000000002 R08: 00007f70b16eb000 R09: 0000000000000800
[ 131.405684] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
[ 131.405692] R13: 0000000000000001 R14: 0000000000000000 R15: 0000000000000003
[ 131.405711] </TASK>
It seems we now have some nested locking going on without proper lockdep
annotations (that or a deadlock, but everything still seems to work fine).
Regards,
Hans
1
0

[PATCH 4/5] ASoC: sh: rz-ssi: Make return type of rz_ssi_stream_is_valid() to bool
by Lad Prabhakar 10 Jan '22
by Lad Prabhakar 10 Jan '22
10 Jan '22
rz_ssi_stream_is_valid() never returns an int, it returns the result of
a condition which is either true or false.
While at it, drop "!!" as the expression is boolean.
Reported-by: Pavel Machek <pavel(a)denx.de>
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj(a)bp.renesas.com>
Reviewed-by: Biju Das <biju.das.jz(a)bp.renesas.com>
---
sound/soc/sh/rz-ssi.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/sound/soc/sh/rz-ssi.c b/sound/soc/sh/rz-ssi.c
index fa68d3a0bd62..aabd15e9d515 100644
--- a/sound/soc/sh/rz-ssi.c
+++ b/sound/soc/sh/rz-ssi.c
@@ -188,14 +188,14 @@ static inline bool rz_ssi_is_dma_enabled(struct rz_ssi_priv *ssi)
return (ssi->playback.dma_ch && (ssi->dma_rt || ssi->capture.dma_ch));
}
-static int rz_ssi_stream_is_valid(struct rz_ssi_priv *ssi,
- struct rz_ssi_stream *strm)
+static bool rz_ssi_stream_is_valid(struct rz_ssi_priv *ssi,
+ struct rz_ssi_stream *strm)
{
unsigned long flags;
- int ret;
+ bool ret;
spin_lock_irqsave(&ssi->lock, flags);
- ret = !!(strm->substream && strm->substream->runtime);
+ ret = strm->substream && strm->substream->runtime;
spin_unlock_irqrestore(&ssi->lock, flags);
return ret;
--
2.17.1
1
0

[PATCH 3/5] ASoC: sh: rz-ssi: Drop ssi parameter from rz_ssi_stream_init()
by Lad Prabhakar 10 Jan '22
by Lad Prabhakar 10 Jan '22
10 Jan '22
ssi parameter is unused in rz_ssi_stream_init() so just drop it.
While at it, change the return type of rz_ssi_stream_init() to void
instead of int.
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj(a)bp.renesas.com>
Reviewed-by: Biju Das <biju.das.jz(a)bp.renesas.com>
---
sound/soc/sh/rz-ssi.c | 11 +++--------
1 file changed, 3 insertions(+), 8 deletions(-)
diff --git a/sound/soc/sh/rz-ssi.c b/sound/soc/sh/rz-ssi.c
index 16de2633a873..fa68d3a0bd62 100644
--- a/sound/soc/sh/rz-ssi.c
+++ b/sound/soc/sh/rz-ssi.c
@@ -201,9 +201,8 @@ static int rz_ssi_stream_is_valid(struct rz_ssi_priv *ssi,
return ret;
}
-static int rz_ssi_stream_init(struct rz_ssi_priv *ssi,
- struct rz_ssi_stream *strm,
- struct snd_pcm_substream *substream)
+static void rz_ssi_stream_init(struct rz_ssi_stream *strm,
+ struct snd_pcm_substream *substream)
{
struct snd_pcm_runtime *runtime = substream->runtime;
@@ -219,8 +218,6 @@ static int rz_ssi_stream_init(struct rz_ssi_priv *ssi,
/* fifo init */
strm->fifo_sample_size = SSI_FIFO_DEPTH;
-
- return 0;
}
static void rz_ssi_stream_quit(struct rz_ssi_priv *ssi,
@@ -728,9 +725,7 @@ static int rz_ssi_dai_trigger(struct snd_pcm_substream *substream, int cmd,
rz_ssi_reg_mask_setl(ssi, SSIFCR, SSIFCR_SSIRST, 0);
udelay(5);
- ret = rz_ssi_stream_init(ssi, strm, substream);
- if (ret)
- goto done;
+ rz_ssi_stream_init(strm, substream);
if (ssi->dma_rt) {
bool is_playback;
--
2.17.1
1
0

[PATCH 2/5] ASoC: sh: rz-ssi: Make the data structures available before registering the handlers
by Lad Prabhakar 10 Jan '22
by Lad Prabhakar 10 Jan '22
10 Jan '22
Initialize the spinlock and make the data structures available before
registering the interrupt handlers.
Reported-by: Pavel Machek <pavel(a)denx.de>
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj(a)bp.renesas.com>
Reviewed-by: Biju Das <biju.das.jz(a)bp.renesas.com>
---
sound/soc/sh/rz-ssi.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/sound/soc/sh/rz-ssi.c b/sound/soc/sh/rz-ssi.c
index 37466f65c2b0..16de2633a873 100644
--- a/sound/soc/sh/rz-ssi.c
+++ b/sound/soc/sh/rz-ssi.c
@@ -977,6 +977,9 @@ static int rz_ssi_probe(struct platform_device *pdev)
ssi->playback.priv = ssi;
ssi->capture.priv = ssi;
+ spin_lock_init(&ssi->lock);
+ dev_set_drvdata(&pdev->dev, ssi);
+
/* Error Interrupt */
ssi->irq_int = platform_get_irq_byname(pdev, "int_req");
if (ssi->irq_int < 0)
@@ -1024,8 +1027,6 @@ static int rz_ssi_probe(struct platform_device *pdev)
pm_runtime_enable(&pdev->dev);
pm_runtime_resume_and_get(&pdev->dev);
- spin_lock_init(&ssi->lock);
- dev_set_drvdata(&pdev->dev, ssi);
ret = devm_snd_soc_register_component(&pdev->dev, &rz_ssi_soc_component,
rz_ssi_soc_dai,
ARRAY_SIZE(rz_ssi_soc_dai));
--
2.17.1
1
0

[PATCH] ASoC: codecs: lpass-rx-macro: Check for error pointer after calling devm_regmap_init_mmio
by Jiasheng Jiang 10 Jan '22
by Jiasheng Jiang 10 Jan '22
10 Jan '22
The devm_regmap_init_mmio() may return error pointer under certain
circumstances, for example the possible failure of the kzalloc() in
regmap_mmio_gen_context(), which is called by devm_regmap_init_mmio().
Then the rx->regmap will be error pointer and be used in
rx_macro_mclk_enable().
Therefore, it should be better to check it in order to avoid the
dereference of the error pointer.
Fixes: af3d54b99764 ("ASoC: codecs: lpass-rx-macro: add support for lpass rx macro")
Signed-off-by: Jiasheng Jiang <jiasheng(a)iscas.ac.cn>
---
sound/soc/codecs/lpass-rx-macro.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/sound/soc/codecs/lpass-rx-macro.c b/sound/soc/codecs/lpass-rx-macro.c
index 07894ec5e7a6..2adbf2e2697f 100644
--- a/sound/soc/codecs/lpass-rx-macro.c
+++ b/sound/soc/codecs/lpass-rx-macro.c
@@ -3542,6 +3542,8 @@ static int rx_macro_probe(struct platform_device *pdev)
return PTR_ERR(base);
rx->regmap = devm_regmap_init_mmio(dev, base, &rx_regmap_config);
+ if (IS_ERR(rx->regmap))
+ return PTR_ERR(rx->regmap);
dev_set_drvdata(dev, rx);
--
2.25.1
1
0

[PATCH] ASoC: codecs: lpass-tx-macro: Check for error pointer after calling devm_regmap_init_mmio
by Jiasheng Jiang 10 Jan '22
by Jiasheng Jiang 10 Jan '22
10 Jan '22
The devm_regmap_init_mmio() may return error pointer under certain
circumstances, for example the possible failure of the kzalloc() in
regmap_mmio_gen_context(), which is called by devm_regmap_init_mmio().
Then the tx->regmap will be error pointer and be used in
tx_macro_mclk_enable().
Therefore, it should be better to check it in order to avoid the
dereference of the error pointer.
Fixes: c39667ddcfc5 ("ASoC: codecs: lpass-tx-macro: add support for lpass tx macro")
Signed-off-by: Jiasheng Jiang <jiasheng(a)iscas.ac.cn>
---
sound/soc/codecs/lpass-tx-macro.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/sound/soc/codecs/lpass-tx-macro.c b/sound/soc/codecs/lpass-tx-macro.c
index 27a0d5defd27..e4bbc6bd4925 100644
--- a/sound/soc/codecs/lpass-tx-macro.c
+++ b/sound/soc/codecs/lpass-tx-macro.c
@@ -1803,6 +1803,8 @@ static int tx_macro_probe(struct platform_device *pdev)
return PTR_ERR(base);
tx->regmap = devm_regmap_init_mmio(dev, base, &tx_regmap_config);
+ if (IS_ERR(tx->regmap))
+ return PTR_ERR(tx->regmap);
dev_set_drvdata(dev, tx);
--
2.25.1
1
0

09 Jan '22
CS35L41 SPI and I2C drivers depend on those buses, hence they have to
have dependencies in Kconfig; otherwise it may result in missing
symbols.
Fixes: 7b2f3eb492da ("ALSA: hda: cs35l41: Add support for CS35L41 in HDA systems")
Reported-by: kernel test robot <lkp(a)intel.com>
Signed-off-by: Takashi Iwai <tiwai(a)suse.de>
---
sound/pci/hda/Kconfig | 2 ++
1 file changed, 2 insertions(+)
diff --git a/sound/pci/hda/Kconfig b/sound/pci/hda/Kconfig
index 68effb74866c..febe1c2b7d9a 100644
--- a/sound/pci/hda/Kconfig
+++ b/sound/pci/hda/Kconfig
@@ -96,6 +96,7 @@ config SND_HDA_SCODEC_CS35L41
config SND_HDA_SCODEC_CS35L41_I2C
tristate "Build CS35L41 HD-audio side codec support for I2C Bus"
+ depends on I2C
depends on ACPI
depends on SND_SOC
select SND_HDA_GENERIC
@@ -110,6 +111,7 @@ comment "Set to Y if you want auto-loading the side codec driver"
config SND_HDA_SCODEC_CS35L41_SPI
tristate "Build CS35L41 HD-audio codec support for SPI Bus"
+ depends on SPI_MASTER
depends on ACPI
depends on SND_SOC
select SND_HDA_GENERIC
--
2.31.1
1
0

Errors when running alsamixer "cannot open mixer: No such file or directory."
by GitHub issues - opened 09 Jan '22
by GitHub issues - opened 09 Jan '22
09 Jan '22
alsa-project/alsa-utils issue #136 was opened from tavishm:
Running `alsamixer` gives me this -
cannot open mixer: No such file or directory
`modinfo soundcore` -
filename: /lib/modules/5.11.0-44-generic/kernel/sound/soundcore.ko
alias: char-major-14-*
license: GPL
author: Alan Cox
description: Core sound module
srcversion: 16262E0FC229CA1AC4DC130
depends:
retpoline: Y
intree: Y
name: soundcore
vermagic: 5.11.0-44-generic SMP mod_unload modversions
sig_id: PKCS#7
signer: Build time autogenerated kernel key
sig_key: 74:80:66:6F:7E:BD:C1:AA:16:67:E3:1E:84:67:92:79:81:D6:56:9F
sig_hashalgo: sha512
signature: 0B:74:68:86:67:66:FA:CB:75:1C:F4:B8:13:F8:3E:C5:17:77:2A:8A:
C8:55:3D:4E:CB:A5:65:CC:65:3B:EC:8F:B0:22:B1:F2:76:C2:72:9C:
DF:8F:FC:6B:02:37:78:B9:B3:68:82:AD:57:96:D2:63:3C:BC:FD:36:
03:A3:35:A2:04:49:F8:C9:7B:5B:D2:FC:0B:94:23:2D:C8:67:AC:04:
7C:02:7F:91:40:22:DD:79:29:BF:AB:9D:FF:2C:7B:3E:37:69:DB:1B:
A7:CC:AB:FD:35:98:F9:23:29:84:C0:72:4D:C1:CE:B2:7F:EA:9F:57:
27:75:D7:C8:D5:B2:0A:62:99:6F:F0:3B:BD:EE:4D:0B:AA:24:45:E9:
9D:FF:84:34:E1:40:3A:E2:98:5E:EF:C2:4E:89:E4:35:99:AD:CF:A1:
BD:E6:48:48:42:63:E3:97:EA:70:43:2F:DE:B1:47:E3:94:8E:68:9F:
D0:41:51:4C:A2:33:FF:04:FF:30:32:8D:6B:48:B0:33:A8:68:3E:11:
24:BC:03:E7:CB:88:77:7C:A9:61:2B:26:0A:6C:37:9C:4B:74:14:A6:
1F:6A:A2:96:32:22:9A:A2:51:23:FF:8C:83:71:15:14:6F:6E:B8:C4:
34:70:98:3B:54:E8:2A:3A:56:CF:27:1B:41:34:52:19:4D:27:E4:46:
DF:86:A4:3B:B1:7B:E8:0E:9F:49:09:2D:48:48:FC:08:C0:C9:96:96:
AC:04:65:CF:01:B7:C6:EA:23:96:73:10:77:AC:AB:DF:5C:2E:E1:5C:
F8:B0:D6:56:2A:39:24:91:54:67:66:BE:A2:7D:11:F9:09:90:B4:5B:
B4:94:1B:D3:F2:DE:81:B1:AA:45:0D:F1:FE:30:E2:3F:0F:B6:9C:97:
03:12:9B:BB:BE:D9:89:2D:DE:28:0D:5E:18:52:70:23:0A:AC:BF:05:
4A:FE:FD:D9:F3:42:F6:5C:26:CD:4A:3B:57:1C:1A:AF:0C:DA:6A:AB:
6F:92:FC:92:F9:C5:48:19:53:CD:67:83:EF:98:DA:8B:E4:57:74:79:
03:AF:15:CE:27:52:29:FE:6A:7B:21:BC:ED:2D:84:43:3E:22:01:A5:
0C:D0:83:51:0F:B7:C0:6B:9F:A7:5A:73:46:26:21:B8:60:9F:13:86:
38:B7:05:BF:F9:E9:93:5E:11:43:CF:1E:95:28:AB:89:52:76:2B:BB:
48:7D:88:23:00:C7:E0:3B:BB:BC:CD:E3:B1:83:3C:25:CA:82:50:69:
10:B6:29:16:C0:4A:45:E0:3F:23:82:F3:01:12:6F:1C:56:A0:9B:38:
2E:FE:A9:8B:26:F2:D7:6F:16:63:05:A8
parm: preclaim_oss:int
`lspci -v` :
00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Root Complex
Subsystem: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Root Complex
Flags: fast devsel, NUMA node 0
00:01.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) PCIe Dummy Host Bridge
Flags: fast devsel, NUMA node 0
00:01.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) PCIe GPP Bridge (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0, IRQ 28, NUMA node 0
Bus: primary=00, secondary=01, subordinate=09, sec-latency=0
I/O behind bridge: 00007000-00007fff [size=4K]
Memory behind bridge: ef500000-ef7fffff [size=3M]
Prefetchable memory behind bridge: [disabled]
Capabilities: <access denied>
Kernel driver in use: pcieport
00:02.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) PCIe Dummy Host Bridge
DeviceName: Onboard IGD
Flags: fast devsel, NUMA node 0
00:03.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) PCIe Dummy Host Bridge
Flags: fast devsel, NUMA node 0
00:03.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) PCIe GPP Bridge (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0, IRQ 29, NUMA node 0
Bus: primary=00, secondary=0a, subordinate=0a, sec-latency=0
I/O behind bridge: 00006000-00006fff [size=4K]
Memory behind bridge: ee000000-ef0fffff [size=17M]
Prefetchable memory behind bridge: 00000000d0000000-00000000e1ffffff [size=288M]
Capabilities: <access denied>
Kernel driver in use: pcieport
00:04.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) PCIe Dummy Host Bridge
Flags: fast devsel, NUMA node 0
00:07.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) PCIe Dummy Host Bridge
Flags: fast devsel, NUMA node 0
00:07.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Internal PCIe GPP Bridge 0 to Bus B (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0, IRQ 30, NUMA node 0
Bus: primary=00, secondary=0b, subordinate=0b, sec-latency=0
I/O behind bridge: [disabled]
Memory behind bridge: ef200000-ef4fffff [size=3M]
Prefetchable memory behind bridge: [disabled]
Capabilities: <access denied>
Kernel driver in use: pcieport
00:08.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) PCIe Dummy Host Bridge
Flags: fast devsel, NUMA node 0
00:08.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Internal PCIe GPP Bridge 0 to Bus B (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0, IRQ 32, NUMA node 0
Bus: primary=00, secondary=0c, subordinate=0c, sec-latency=0
I/O behind bridge: [disabled]
Memory behind bridge: ef800000-ef8fffff [size=1M]
Prefetchable memory behind bridge: [disabled]
Capabilities: <access denied>
Kernel driver in use: pcieport
00:14.0 SMBus: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller (rev 59)
Subsystem: Micro-Star International Co., Ltd. [MSI] FCH SMBus Controller
Flags: 66MHz, medium devsel, NUMA node 0
Kernel driver in use: piix4_smbus
Kernel modules: i2c_piix4, sp5100_tco
00:14.3 ISA bridge: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge (rev 51)
Subsystem: Micro-Star International Co., Ltd. [MSI] FCH LPC Bridge
Flags: bus master, 66MHz, medium devsel, latency 0, NUMA node 0
00:18.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 0
Flags: fast devsel, NUMA node 0
00:18.1 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 1
Flags: fast devsel, NUMA node 0
00:18.2 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 2
Flags: fast devsel, NUMA node 0
00:18.3 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 3
Flags: fast devsel, NUMA node 0
Kernel driver in use: k10temp
Kernel modules: k10temp
00:18.4 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 4
Flags: fast devsel, NUMA node 0
00:18.5 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 5
Flags: fast devsel, NUMA node 0
00:18.6 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 6
Flags: fast devsel, NUMA node 0
00:18.7 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 7
Flags: fast devsel, NUMA node 0
00:19.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 0
DeviceName: Onboard LAN
Flags: fast devsel, NUMA node 0
00:19.1 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 1
Flags: fast devsel, NUMA node 0
00:19.2 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 2
Flags: fast devsel, NUMA node 0
00:19.3 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 3
Flags: fast devsel, NUMA node 0
Kernel driver in use: k10temp
Kernel modules: k10temp
00:19.4 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 4
Flags: fast devsel, NUMA node 0
00:19.5 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 5
Flags: fast devsel, NUMA node 0
00:19.6 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 6
Flags: fast devsel, NUMA node 0
00:19.7 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 7
Flags: fast devsel, NUMA node 0
01:00.0 USB controller: Advanced Micro Devices, Inc. [AMD] X399 Series Chipset USB 3.1 xHCI Controller (rev 02) (prog-if 30 [XHCI])
Subsystem: ASMedia Technology Inc. X399 Series Chipset USB 3.1 xHCI Controller
Flags: bus master, fast devsel, latency 0, IRQ 46, NUMA node 0
Memory at ef7a0000 (64-bit, non-prefetchable) [size=32K]
Capabilities: <access denied>
Kernel driver in use: xhci_hcd
Kernel modules: xhci_pci
01:00.1 SATA controller: Advanced Micro Devices, Inc. [AMD] X399 Series Chipset SATA Controller (rev 02) (prog-if 01 [AHCI 1.0])
Subsystem: ASMedia Technology Inc. X399 Series Chipset SATA Controller
Flags: bus master, fast devsel, latency 0, IRQ 47, NUMA node 0
Memory at ef780000 (32-bit, non-prefetchable) [size=128K]
Expansion ROM at ef700000 [disabled] [size=512K]
Capabilities: <access denied>
Kernel driver in use: ahci
Kernel modules: ahci
01:00.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] X399 Series Chipset PCIe Bridge (rev 02) (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0, IRQ 33, NUMA node 0
Bus: primary=01, secondary=02, subordinate=09, sec-latency=0
I/O behind bridge: 00007000-00007fff [size=4K]
Memory behind bridge: ef500000-ef6fffff [size=2M]
Prefetchable memory behind bridge: [disabled]
Capabilities: <access denied>
Kernel driver in use: pcieport
02:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 300 Series Chipset PCIe Port (rev 02) (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0, IRQ 34, NUMA node 0
Bus: primary=02, secondary=03, subordinate=03, sec-latency=0
I/O behind bridge: [disabled]
Memory behind bridge: ef600000-ef6fffff [size=1M]
Prefetchable memory behind bridge: [disabled]
Capabilities: <access denied>
Kernel driver in use: pcieport
02:02.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 300 Series Chipset PCIe Port (rev 02) (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0, IRQ 35, NUMA node 0
Bus: primary=02, secondary=04, subordinate=04, sec-latency=0
I/O behind bridge: [disabled]
Memory behind bridge: [disabled]
Prefetchable memory behind bridge: [disabled]
Capabilities: <access denied>
Kernel driver in use: pcieport
02:03.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 300 Series Chipset PCIe Port (rev 02) (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0, IRQ 37, NUMA node 0
Bus: primary=02, secondary=05, subordinate=05, sec-latency=0
I/O behind bridge: [disabled]
Memory behind bridge: [disabled]
Prefetchable memory behind bridge: [disabled]
Capabilities: <access denied>
Kernel driver in use: pcieport
02:04.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 300 Series Chipset PCIe Port (rev 02) (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0, IRQ 38, NUMA node 0
Bus: primary=02, secondary=06, subordinate=06, sec-latency=0
I/O behind bridge: [disabled]
Memory behind bridge: [disabled]
Prefetchable memory behind bridge: [disabled]
Capabilities: <access denied>
Kernel driver in use: pcieport
02:05.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 300 Series Chipset PCIe Port (rev 02) (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0, IRQ 40, NUMA node 0
Bus: primary=02, secondary=07, subordinate=07, sec-latency=0
I/O behind bridge: [disabled]
Memory behind bridge: [disabled]
Prefetchable memory behind bridge: [disabled]
Capabilities: <access denied>
Kernel driver in use: pcieport
02:06.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 300 Series Chipset PCIe Port (rev 02) (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0, IRQ 41, NUMA node 0
Bus: primary=02, secondary=08, subordinate=08, sec-latency=0
I/O behind bridge: 00007000-00007fff [size=4K]
Memory behind bridge: ef500000-ef5fffff [size=1M]
Prefetchable memory behind bridge: [disabled]
Capabilities: <access denied>
Kernel driver in use: pcieport
02:07.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 300 Series Chipset PCIe Port (rev 02) (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0, IRQ 42, NUMA node 0
Bus: primary=02, secondary=09, subordinate=09, sec-latency=0
I/O behind bridge: [disabled]
Memory behind bridge: [disabled]
Prefetchable memory behind bridge: [disabled]
Capabilities: <access denied>
Kernel driver in use: pcieport
03:00.0 USB controller: ASMedia Technology Inc. ASM2142 USB 3.1 Host Controller (prog-if 30 [XHCI])
Subsystem: Micro-Star International Co., Ltd. [MSI] ASM2142 USB 3.1 Host Controller
Flags: bus master, fast devsel, latency 0, IRQ 25, NUMA node 0
Memory at ef600000 (64-bit, non-prefetchable) [size=32K]
Capabilities: <access denied>
Kernel driver in use: xhci_hcd
Kernel modules: xhci_pci
08:00.0 Ethernet controller: Intel Corporation I211 Gigabit Network Connection (rev 03)
Subsystem: Micro-Star International Co., Ltd. [MSI] I211 Gigabit Network Connection
Flags: bus master, fast devsel, latency 0, IRQ 24, NUMA node 0
Memory at ef500000 (32-bit, non-prefetchable) [size=128K]
I/O ports at 7000 [size=32]
Memory at ef520000 (32-bit, non-prefetchable) [size=16K]
Capabilities: <access denied>
Kernel driver in use: igb
Kernel modules: igb
0a:00.0 VGA compatible controller: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (rev a1) (prog-if 00 [VGA controller])
Subsystem: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti]
Flags: bus master, fast devsel, latency 0, IRQ 76, NUMA node 0
Memory at ee000000 (32-bit, non-prefetchable) [size=16M]
Memory at d0000000 (64-bit, prefetchable) [size=256M]
Memory at e0000000 (64-bit, prefetchable) [size=32M]
I/O ports at 6000 [size=128]
Expansion ROM at 000c0000 [virtual] [disabled] [size=128K]
Capabilities: <access denied>
Kernel driver in use: nvidia
Kernel modules: nvidiafb, nouveau, nvidia_drm, nvidia
0a:00.1 Audio device: NVIDIA Corporation GP102 HDMI Audio Controller (rev a1)
Subsystem: NVIDIA Corporation GP102 HDMI Audio Controller
Flags: bus master, fast devsel, latency 0, IRQ 10, NUMA node 0
Memory at ef080000 (32-bit, non-prefetchable) [size=16K]
Capabilities: <access denied>
Kernel modules: snd_hda_intel
0b:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Zeppelin/Raven/Raven2 PCIe Dummy Function
Subsystem: Advanced Micro Devices, Inc. [AMD] Zeppelin/Raven/Raven2 PCIe Dummy Function
Flags: bus master, fast devsel, latency 0, NUMA node 0
Capabilities: <access denied>
0b:00.2 Encryption controller: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Platform Security Processor
Subsystem: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Platform Security Processor
Flags: bus master, fast devsel, latency 0, IRQ 69, NUMA node 0
Memory at ef300000 (32-bit, non-prefetchable) [size=1M]
Memory at ef400000 (32-bit, non-prefetchable) [size=8K]
Capabilities: <access denied>
Kernel driver in use: ccp
Kernel modules: ccp
0b:00.3 USB controller: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) USB 3.0 Host Controller (prog-if 30 [XHCI])
Subsystem: Micro-Star International Co., Ltd. [MSI] Family 17h (Models 00h-0fh) USB 3.0 Host Controller
Flags: bus master, fast devsel, latency 0, IRQ 66, NUMA node 0
Memory at ef200000 (64-bit, non-prefetchable) [size=1M]
Capabilities: <access denied>
Kernel driver in use: xhci_hcd
Kernel modules: xhci_pci
0c:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Zeppelin/Renoir PCIe Dummy Function
Subsystem: Advanced Micro Devices, Inc. [AMD] Zeppelin/Renoir PCIe Dummy Function
Flags: bus master, fast devsel, latency 0, NUMA node 0
Capabilities: <access denied>
0c:00.2 SATA controller: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] (rev 51) (prog-if 01 [AHCI 1.0])
Subsystem: Micro-Star International Co., Ltd. [MSI] FCH SATA Controller [AHCI mode]
Flags: bus master, fast devsel, latency 0, IRQ 54, NUMA node 0
Memory at ef808000 (32-bit, non-prefetchable) [size=4K]
Capabilities: <access denied>
Kernel driver in use: ahci
Kernel modules: ahci
0c:00.3 Audio device: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) HD Audio Controller
Subsystem: Micro-Star International Co., Ltd. [MSI] Family 17h (Models 00h-0fh) HD Audio Controller
Flags: bus master, fast devsel, latency 0, IRQ 10, NUMA node 0
Memory at ef800000 (32-bit, non-prefetchable) [size=32K]
Capabilities: <access denied>
Kernel modules: snd_hda_intel
40:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Root Complex
Subsystem: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Root Complex
Flags: fast devsel, NUMA node 1
40:01.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) PCIe Dummy Host Bridge
Flags: fast devsel, NUMA node 1
40:02.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) PCIe Dummy Host Bridge
Flags: fast devsel, NUMA node 1
40:03.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) PCIe Dummy Host Bridge
Flags: fast devsel, NUMA node 1
40:04.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) PCIe Dummy Host Bridge
Flags: fast devsel, NUMA node 1
40:07.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) PCIe Dummy Host Bridge
Flags: fast devsel, NUMA node 1
40:07.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Internal PCIe GPP Bridge 0 to Bus B (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0, IRQ 43, NUMA node 1
Bus: primary=40, secondary=41, subordinate=41, sec-latency=0
I/O behind bridge: [disabled]
Memory behind bridge: cdc00000-cdefffff [size=3M]
Prefetchable memory behind bridge: [disabled]
Capabilities: <access denied>
Kernel driver in use: pcieport
40:08.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) PCIe Dummy Host Bridge
Flags: fast devsel, NUMA node 1
40:08.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Internal PCIe GPP Bridge 0 to Bus B (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0, IRQ 45, NUMA node 1
Bus: primary=40, secondary=42, subordinate=42, sec-latency=0
I/O behind bridge: [disabled]
Memory behind bridge: cdf00000-cdffffff [size=1M]
Prefetchable memory behind bridge: [disabled]
Capabilities: <access denied>
Kernel driver in use: pcieport
41:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Zeppelin/Raven/Raven2 PCIe Dummy Function
Subsystem: Advanced Micro Devices, Inc. [AMD] Zeppelin/Raven/Raven2 PCIe Dummy Function
Flags: bus master, fast devsel, latency 0, NUMA node 1
Capabilities: <access denied>
41:00.2 Encryption controller: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Platform Security Processor
Subsystem: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Platform Security Processor
Flags: bus master, fast devsel, latency 0, IRQ 72, NUMA node 1
Memory at cdd00000 (32-bit, non-prefetchable) [size=1M]
Memory at cde00000 (32-bit, non-prefetchable) [size=8K]
Capabilities: <access denied>
Kernel driver in use: ccp
Kernel modules: ccp
41:00.3 USB controller: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) USB 3.0 Host Controller (prog-if 30 [XHCI])
Subsystem: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) USB 3.0 Host Controller
Flags: bus master, fast devsel, latency 0, IRQ 68, NUMA node 1
Memory at cdc00000 (64-bit, non-prefetchable) [size=1M]
Capabilities: <access denied>
Kernel driver in use: xhci_hcd
Kernel modules: xhci_pci
42:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Zeppelin/Renoir PCIe Dummy Function
Subsystem: Advanced Micro Devices, Inc. [AMD] Zeppelin/Renoir PCIe Dummy Function
Flags: bus master, fast devsel, latency 0, NUMA node 1
Capabilities: <access denied>
42:00.2 SATA controller: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] (rev 51) (prog-if 01 [AHCI 1.0])
Subsystem: Micro-Star International Co., Ltd. [MSI] FCH SATA Controller [AHCI mode]
Flags: bus master, fast devsel, latency 0, IRQ 56, NUMA node 1
Memory at cdf00000 (32-bit, non-prefetchable) [size=4K]
Capabilities: <access denied>
Kernel driver in use: ahci
Kernel modules: ahci
`aplay -l` :
aplay: device_list:276: no soundcards found...
Issue URL : https://github.com/alsa-project/alsa-utils/issues/136
Repository URL: https://github.com/alsa-project/alsa-utils
1
0
alsa-project/alsa-utils issue #135 was opened from nick87720z:
I used alsactl and amixer to implement highly effective volume control applet executor. At least it's able to keep pace at touchpad, which sends 1000 scroll events in only 18 to 12 seconds.
`amixer --stdin` handles control events, while `alsactl monitor` is even source for applet display part (it's tint2 executor). But in order to get values to display - this display part has to run `alsactl sget` per request. Can't these commands be supported in stdin mode? From first look - expected lines number doesn't look unpredictable: for `sget` it depends on number of channels, and for `cget` - probably fixed.
Even `controls` command also could be supported, since it lists channel from biggest ID to 1, so moment of numid=1 could be understood as end of list.
Issue URL : https://github.com/alsa-project/alsa-utils/issues/135
Repository URL: https://github.com/alsa-project/alsa-utils
1
0
hi,
I've tried to link BitwigStudio to the webapp cables.gl over virmidi.
Unfortunately Bitwig Studio only supports rawmidi. What I discovered is
that there is a strange slowness when sending data to virmidi caused
by snd_rawmidi_drain().
I've posted two tiny, self-contained c apps to:
https://gist.github.com/ensonic/c7588b87fa6c1fa94a8f753b1e0aa394
See some examples below. 2 observations:
* snd_rawmidi_type() is *not* reporting virmidi as VIRTUAL
* snd_rawmidi_drain() takes about 60ms! on virtual vs. less that 0.1 ms on
usb midi (I checked all my hw midi and the worst was avg=1ms on physical
midi image unitor8)
When comparing the implementations:
https://github.com/alsa-project/alsa-lib/blob/master/src/rawmidi/rawmidi_vi…
https://github.com/alsa-project/alsa-lib/blob/master/src/rawmidi/rawmidi_hw…
I see that the hw one results in an IOCTL which I can see when striking the
code and I wonder if this is the root cause? Why is rawmidi_virt.c not used
for virmidi?
>From poking at snd_rawmidi_open_conf() I have not yet figured where this is
decided ....
Stefan
> amidi -l
Dir Device Name
IO hw:0,0,0 Scarlett 18i20 USB MIDI 1
IO hw:3,0,0 nanoKEY2 nanoKEY2 _ KEYBOARD
IO hw:5,0,0 nanoKONTROL nanoKONTROL _ SLIDE
IO hw:10,0 Virtual Raw MIDI (16 subdevices)
IO hw:11,0 Virtual Raw MIDI (16 subdevices)
# using direct i/o to virmidi - all good
> ./rawmidi_oss /dev/midi11 0
Using device '/dev/midi11' without draining
write took min= 0.0015 ms, avg= 0.0016 ms, max= 0.0110 ms
> ./rawmidi_oss /dev/midi11 1
Using device '/dev/midi11' with draining
write took min= 0.0015 ms, avg= 0.0017 ms, max= 0.0101 ms
drain took min= 0.0001 ms, avg= 0.0001 ms, max= 0.0008 ms
# using snd_rawmidi to virmidi - slow drain operations
> ./rawmidi_alsa hw:11,0 0
Using device 'hw:11,0' without draining
SND_RAWMIDI_TYPE_HW
write took min= 0.0010 ms, avg= 0.0011 ms, max= 0.0056 ms
> ./rawmidi_alsa hw:11,0 1
Using device 'hw:11,0' with draining
SND_RAWMIDI_TYPE_HW
write took min= 0.0016 ms, avg= 0.0040 ms, max= 0.0077 ms
drain took min= 55.9951 ms, avg= 60.4330 ms, max= 64.0653 ms
# using snd_rawmidi to usb hw - all good
> ./rawmidi_alsa hw:3,0 0
Using device 'hw:3,0' without draining
SND_RAWMIDI_TYPE_HW
write took min= 0.0012 ms, avg= 0.0015 ms, max= 0.0121 ms
> ./rawmidi_alsa hw:3,0 1
Using device 'hw:3,0' with draining
SND_RAWMIDI_TYPE_HW
write took min= 0.0024 ms, avg= 0.0032 ms, max= 0.0110 ms
drain took min= 0.0293 ms, avg= 0.0636 ms, max= 0.2277 ms
3
7
This patch series adds support for the low power hibernation feature
on cs35l41. This allows the DSP memory to be retained whilst the
device enters a very low power state.
These patches will cause some very minor conflicts with Lucas's
currently outstanding work on the HDA version of cs35l41. Whilst
things will still build (well now I fixed my silly mistake), this
patch adds a test key function his code will now have to call.
It looks like Lucas's patch might get a respin based on the comments
from Andy, in which case I guess we can pull the small change into the
next version of it. But either way these patches are not urgent so I
am happy if they sit around until Lucas's stuff is merged too.
Thanks,
Charles
Charles Keepax (2):
ASoC: cs35l41: Update handling of test key registers
ASoC: cs35l41: Add support for hibernate memory retention mode
include/sound/cs35l41.h | 7 ++
sound/soc/codecs/cs35l41-i2c.c | 1 +
sound/soc/codecs/cs35l41-lib.c | 73 +++++++------
sound/soc/codecs/cs35l41-spi.c | 1 +
sound/soc/codecs/cs35l41.c | 233 +++++++++++++++++++++++++++++++++++++----
sound/soc/codecs/cs35l41.h | 4 +
6 files changed, 268 insertions(+), 51 deletions(-)
--
2.11.0
3
6
There are drivers in mainline for the Xilinx Audio Formatter and Xilinx
I2S IP cores. However, because of a few issues, these were only really
usable with Xilinx's xlnx_pl_snd_card top-level driver, which is not in
mainline (and not suitable for mainline).
The fixes in this patchset, for the simple-card layer as well as the
Xilinx drivers, now allow these drivers to be properly used with
simple-card without any out-of-tree support code.
Robert Hancock (5):
ASoC: xilinx: xlnx_formatter_pcm: Make buffer bytes multiple of period
bytes
ASoC: xilinx: xlnx_formatter_pcm: Handle sysclk setting
ASoC: xilinx: xlnx_i2s.c: Handle sysclk setting
ASoC: simple-card: fix probe failure on platform component
ASoC: simple-card-utils: Set sysclk on all components
sound/soc/generic/simple-card-utils.c | 11 +++
sound/soc/generic/simple-card.c | 52 +++++++------
sound/soc/xilinx/xlnx_formatter_pcm.c | 44 ++++++++++-
sound/soc/xilinx/xlnx_i2s.c | 104 +++++++++++++++++---------
4 files changed, 150 insertions(+), 61 deletions(-)
--
2.31.1
2
14
The recently added support for CS35L41 codec unconditionally selects
CONFIG_SND_SOC_CS35L41_LIB, but this can't work unless the top-level
CONFIG_SND_SOC is enabled. This patch adds the proper dependency.
Fixes: 7b2f3eb492da ("ALSA: hda: cs35l41: Add support for CS35L41 in HDA systems")
Signed-off-by: Takashi Iwai <tiwai(a)suse.de>
---
sound/pci/hda/Kconfig | 2 ++
1 file changed, 2 insertions(+)
diff --git a/sound/pci/hda/Kconfig b/sound/pci/hda/Kconfig
index 84cefc006f29..68effb74866c 100644
--- a/sound/pci/hda/Kconfig
+++ b/sound/pci/hda/Kconfig
@@ -97,6 +97,7 @@ config SND_HDA_SCODEC_CS35L41
config SND_HDA_SCODEC_CS35L41_I2C
tristate "Build CS35L41 HD-audio side codec support for I2C Bus"
depends on ACPI
+ depends on SND_SOC
select SND_HDA_GENERIC
select SND_SOC_CS35L41_LIB
select SND_HDA_SCODEC_CS35L41
@@ -110,6 +111,7 @@ comment "Set to Y if you want auto-loading the side codec driver"
config SND_HDA_SCODEC_CS35L41_SPI
tristate "Build CS35L41 HD-audio codec support for SPI Bus"
depends on ACPI
+ depends on SND_SOC
select SND_HDA_GENERIC
select SND_SOC_CS35L41_LIB
select SND_HDA_SCODEC_CS35L41
--
2.31.1
1
0

07 Jan '22
To maintain the consistency of the code, it should be better to add the
sanity check after calling dma_set_mask_and_coherent(), like
tegra_pcm_dma_allocate() in `sound/soc/tegra/tegra_pcm.c`.
Signed-off-by: Jiasheng Jiang <jiasheng(a)iscas.ac.cn>
---
Changelog
v2 -> v3
* Change 1. Remove the fixes tag and change the message.
* Change 2. Correct the patch to fit the lastest code.
---
sound/x86/intel_hdmi_audio.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/sound/x86/intel_hdmi_audio.c b/sound/x86/intel_hdmi_audio.c
index 378826312abe..1c94eaff1931 100644
--- a/sound/x86/intel_hdmi_audio.c
+++ b/sound/x86/intel_hdmi_audio.c
@@ -1750,7 +1750,9 @@ static int hdmi_lpe_audio_probe(struct platform_device *pdev)
card_ctx->irq = irq;
/* only 32bit addressable */
- dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
+ ret = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
+ if (ret)
+ return ret;
init_channel_allocations();
--
2.25.1
2
1

Re: Re: [PATCH v2] ALSA: intel_hdmi: Check for error num after setting maski
by Jiasheng Jiang 07 Jan '22
by Jiasheng Jiang 07 Jan '22
07 Jan '22
On Thu, Jan 06, 2022 at 10:58:20PM +0800, Takashi Iwai wrote:
> The build fails with the latest code, unfortunately.
> This function simply returns an error, as it was changed to a devres
> allocation some time ago.
Thanks, I have already send a v3 fit for the latest code.
But I still think the v2 is useful for the previous code.
Actually, this one is suitable for the linux-stable-5.13.9.
Therefore, I believe it might be better to apply the v2 to
the previous version in order to maintain the consistency.
Sincerely thanks,
Jiang
1
0

06 Jan '22
Currently, rx_port_value is a single unsigned int that gets overwritten
when slim_rx_mux_put() is called for any RX mux, then the same value is
read when slim_rx_mux_get() is called for any of them. This results in
slim_rx_mux_get() reporting the last value set by slim_rx_mux_put()
regardless of which SLIM RX mux is in question.
Turn rx_port_value into an array and store a separate value for each
SLIM RX mux.
Signed-off-by: Yassine Oudjana <y.oudjana(a)protonmail.com>
---
sound/soc/codecs/wcd9335.c | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/sound/soc/codecs/wcd9335.c b/sound/soc/codecs/wcd9335.c
index bc5d68c53e5a..1e60db4056ad 100644
--- a/sound/soc/codecs/wcd9335.c
+++ b/sound/soc/codecs/wcd9335.c
@@ -341,7 +341,7 @@ struct wcd9335_codec {
int reset_gpio;
struct regulator_bulk_data supplies[WCD9335_MAX_SUPPLY];
- unsigned int rx_port_value;
+ unsigned int rx_port_value[WCD9335_RX_MAX];
unsigned int tx_port_value;
int hph_l_gain;
int hph_r_gain;
@@ -1269,10 +1269,11 @@ static const struct snd_kcontrol_new sb_tx8_mux =
static int slim_rx_mux_get(struct snd_kcontrol *kc,
struct snd_ctl_elem_value *ucontrol)
{
- struct snd_soc_dapm_context *dapm = snd_soc_dapm_kcontrol_dapm(kc);
- struct wcd9335_codec *wcd = dev_get_drvdata(dapm->dev);
+ struct snd_soc_dapm_widget *w = snd_soc_dapm_kcontrol_widget(kc);
+ struct wcd9335_codec *wcd = dev_get_drvdata(w->dapm->dev);
+ u32 port_id = w->shift;
- ucontrol->value.enumerated.item[0] = wcd->rx_port_value;
+ ucontrol->value.enumerated.item[0] = wcd->rx_port_value[port_id];
return 0;
}
@@ -1286,9 +1287,9 @@ static int slim_rx_mux_put(struct snd_kcontrol *kc,
struct snd_soc_dapm_update *update = NULL;
u32 port_id = w->shift;
- wcd->rx_port_value = ucontrol->value.enumerated.item[0];
+ wcd->rx_port_value[port_id] = ucontrol->value.enumerated.item[0];
- switch (wcd->rx_port_value) {
+ switch (wcd->rx_port_value[port_id]) {
case 0:
list_del_init(&wcd->rx_chs[port_id].list);
break;
@@ -1309,11 +1310,11 @@ static int slim_rx_mux_put(struct snd_kcontrol *kc,
&wcd->dai[AIF4_PB].slim_ch_list);
break;
default:
- dev_err(wcd->dev, "Unknown AIF %d\n", wcd->rx_port_value);
+ dev_err(wcd->dev, "Unknown AIF %d\n", wcd->rx_port_value[port_id]);
goto err;
}
- snd_soc_dapm_mux_update_power(w->dapm, kc, wcd->rx_port_value,
+ snd_soc_dapm_mux_update_power(w->dapm, kc, wcd->rx_port_value[port_id],
e, update);
return 0;
--
2.34.1
2
1

06 Jan '22
RT1019 components was initially registered with i2c1 and i2c2 but
now changed to i2c0 and i2c1 in most of our AMD platforms. Change
default rt1019 components to 10EC1019:00 and 10EC1019:01 which is
aligned with most of AMD machines.
Any exception to rt1019 device ids in near future board design can
be handled using dmi based quirk for that machine.
Signed-off-by: Ajit Kumar Pandey <AjitKumar.Pandey(a)amd.com>
---
sound/soc/amd/acp/acp-mach-common.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/sound/soc/amd/acp/acp-mach-common.c b/sound/soc/amd/acp/acp-mach-common.c
index 03d8d1af14b3..c9caade5cb74 100644
--- a/sound/soc/amd/acp/acp-mach-common.c
+++ b/sound/soc/amd/acp/acp-mach-common.c
@@ -293,8 +293,8 @@ static const struct snd_soc_ops acp_card_rt5682s_ops = {
/* Declare RT1019 codec components */
SND_SOC_DAILINK_DEF(rt1019,
- DAILINK_COMP_ARRAY(COMP_CODEC("i2c-10EC1019:01", "rt1019-aif"),
- COMP_CODEC("i2c-10EC1019:02", "rt1019-aif")));
+ DAILINK_COMP_ARRAY(COMP_CODEC("i2c-10EC1019:00", "rt1019-aif"),
+ COMP_CODEC("i2c-10EC1019:01", "rt1019-aif")));
static const struct snd_soc_dapm_route rt1019_map_lr[] = {
{ "Left Spk", NULL, "Left SPO" },
@@ -303,11 +303,11 @@ static const struct snd_soc_dapm_route rt1019_map_lr[] = {
static struct snd_soc_codec_conf rt1019_conf[] = {
{
- .dlc = COMP_CODEC_CONF("i2c-10EC1019:01"),
+ .dlc = COMP_CODEC_CONF("i2c-10EC1019:00"),
.name_prefix = "Left",
},
{
- .dlc = COMP_CODEC_CONF("i2c-10EC1019:02"),
+ .dlc = COMP_CODEC_CONF("i2c-10EC1019:01"),
.name_prefix = "Right",
},
};
--
2.25.1
2
1
Several improvement and fixes for AK codecs supported on i.MX platfroms
Shengjiu Wang (3):
ASoC: imx-card: Need special setting for ak4497 on i.MX8MQ
ASoC: imx-card: Fix mclk calculation issue for akcodec
ASoC: imx-card: improve the sound quality for low rate
sound/soc/fsl/imx-card.c | 32 ++++++++++++++++++++++++--------
1 file changed, 24 insertions(+), 8 deletions(-)
--
2.17.1
2
5

06 Jan '22
According to RM, the clock divider range is from 1 to 8, clock
prescaling ratio may be any power of 2 from 1 to 128.
So the supported divider is not all the value between
1 and 1024, just limited value in that range.
Create table for the supported divder and add function to
check the clock divider is available by comparing with
the table.
Fixes: d0250cf4f2ab ("ASoC: fsl_asrc: Add an option to select internal ratio mode")
Signed-off-by: Shengjiu Wang <shengjiu.wang(a)nxp.com>
---
sound/soc/fsl/fsl_asrc.c | 69 +++++++++++++++++++++++++++++++++-------
1 file changed, 58 insertions(+), 11 deletions(-)
diff --git a/sound/soc/fsl/fsl_asrc.c b/sound/soc/fsl/fsl_asrc.c
index 24b41881a68f..d7d1536a4f37 100644
--- a/sound/soc/fsl/fsl_asrc.c
+++ b/sound/soc/fsl/fsl_asrc.c
@@ -19,6 +19,7 @@
#include "fsl_asrc.h"
#define IDEAL_RATIO_DECIMAL_DEPTH 26
+#define DIVIDER_NUM 64
#define pair_err(fmt, ...) \
dev_err(&asrc->pdev->dev, "Pair %c: " fmt, 'A' + index, ##__VA_ARGS__)
@@ -101,6 +102,55 @@ static unsigned char clk_map_imx8qxp[2][ASRC_CLK_MAP_LEN] = {
},
};
+/*
+ * According to RM, the divider range is 1 ~ 8,
+ * prescaler is power of 2 from 1 ~ 128.
+ */
+static int asrc_clk_divider[DIVIDER_NUM] = {
+ 1, 2, 4, 8, 16, 32, 64, 128, /* divider = 1 */
+ 2, 4, 8, 16, 32, 64, 128, 256, /* divider = 2 */
+ 3, 6, 12, 24, 48, 96, 192, 384, /* divider = 3 */
+ 4, 8, 16, 32, 64, 128, 256, 512, /* divider = 4 */
+ 5, 10, 20, 40, 80, 160, 320, 640, /* divider = 5 */
+ 6, 12, 24, 48, 96, 192, 384, 768, /* divider = 6 */
+ 7, 14, 28, 56, 112, 224, 448, 896, /* divider = 7 */
+ 8, 16, 32, 64, 128, 256, 512, 1024, /* divider = 8 */
+};
+
+/*
+ * Check if the divider is available for internal ratio mode
+ */
+static bool fsl_asrc_divider_avail(int clk_rate, int rate, int *div)
+{
+ u32 rem, i;
+ u64 n;
+
+ if (div)
+ *div = 0;
+
+ if (clk_rate == 0 || rate == 0)
+ return false;
+
+ n = clk_rate;
+ rem = do_div(n, rate);
+
+ if (div)
+ *div = n;
+
+ if (rem != 0)
+ return false;
+
+ for (i = 0; i < DIVIDER_NUM; i++) {
+ if (n == asrc_clk_divider[i])
+ break;
+ }
+
+ if (i == DIVIDER_NUM)
+ return false;
+
+ return true;
+}
+
/**
* fsl_asrc_sel_proc - Select the pre-processing and post-processing options
* @inrate: input sample rate
@@ -330,12 +380,12 @@ static int fsl_asrc_config_pair(struct fsl_asrc_pair *pair, bool use_ideal_rate)
enum asrc_word_width input_word_width;
enum asrc_word_width output_word_width;
u32 inrate, outrate, indiv, outdiv;
- u32 clk_index[2], div[2], rem[2];
+ u32 clk_index[2], div[2];
u64 clk_rate;
int in, out, channels;
int pre_proc, post_proc;
struct clk *clk;
- bool ideal;
+ bool ideal, div_avail;
if (!config) {
pair_err("invalid pair config\n");
@@ -415,8 +465,7 @@ static int fsl_asrc_config_pair(struct fsl_asrc_pair *pair, bool use_ideal_rate)
clk = asrc_priv->asrck_clk[clk_index[ideal ? OUT : IN]];
clk_rate = clk_get_rate(clk);
- rem[IN] = do_div(clk_rate, inrate);
- div[IN] = (u32)clk_rate;
+ div_avail = fsl_asrc_divider_avail(clk_rate, inrate, &div[IN]);
/*
* The divider range is [1, 1024], defined by the hardware. For non-
@@ -425,7 +474,7 @@ static int fsl_asrc_config_pair(struct fsl_asrc_pair *pair, bool use_ideal_rate)
* only result in different converting speeds. So remainder does not
* matter, as long as we keep the divider within its valid range.
*/
- if (div[IN] == 0 || (!ideal && (div[IN] > 1024 || rem[IN] != 0))) {
+ if (div[IN] == 0 || (!ideal && !div_avail)) {
pair_err("failed to support input sample rate %dHz by asrck_%x\n",
inrate, clk_index[ideal ? OUT : IN]);
return -EINVAL;
@@ -436,13 +485,12 @@ static int fsl_asrc_config_pair(struct fsl_asrc_pair *pair, bool use_ideal_rate)
clk = asrc_priv->asrck_clk[clk_index[OUT]];
clk_rate = clk_get_rate(clk);
if (ideal && use_ideal_rate)
- rem[OUT] = do_div(clk_rate, IDEAL_RATIO_RATE);
+ div_avail = fsl_asrc_divider_avail(clk_rate, IDEAL_RATIO_RATE, &div[OUT]);
else
- rem[OUT] = do_div(clk_rate, outrate);
- div[OUT] = clk_rate;
+ div_avail = fsl_asrc_divider_avail(clk_rate, outrate, &div[OUT]);
/* Output divider has the same limitation as the input one */
- if (div[OUT] == 0 || (!ideal && (div[OUT] > 1024 || rem[OUT] != 0))) {
+ if (div[OUT] == 0 || (!ideal && !div_avail)) {
pair_err("failed to support output sample rate %dHz by asrck_%x\n",
outrate, clk_index[OUT]);
return -EINVAL;
@@ -621,8 +669,7 @@ static void fsl_asrc_select_clk(struct fsl_asrc_priv *asrc_priv,
clk_index = asrc_priv->clk_map[j][i];
clk_rate = clk_get_rate(asrc_priv->asrck_clk[clk_index]);
/* Only match a perfect clock source with no remainder */
- if (clk_rate != 0 && (clk_rate / rate[j]) <= 1024 &&
- (clk_rate % rate[j]) == 0)
+ if (fsl_asrc_divider_avail(clk_rate, rate[j], NULL))
break;
}
--
2.17.1
2
1

[PATCH v2 0/6] ASoC: rt5640: 1 Bugfix + Add support for external GPIO jack-detect
by Hans de Goede 06 Jan '22
by Hans de Goede 06 Jan '22
06 Jan '22
Hi All,
Here is v2 of my series to fix jack-detect not working on some x86 Bay
Trail devices. Now rebased on top of the latest broonie/sound.git/for-next.
New this version is a bug-fix for an issue which I noticed in the current
broonie/sound.git/for-next (patch 1 of the series).
Since this fixes a NULL-ptr deref in current for-next patch 1 should be
included into a pull-req for 5.17.
The rest of the series can go to either 5.17 or 5.18.
Regards,
Hans
Hans de Goede (6):
ASoC: rt5640: Fix possible NULL pointer deref on resume
ASoC: rt5640: Change jack_work to a delayed_work
ASoC: rt5640: Allow snd_soc_component_set_jack() to override the codec
IRQ
ASoC: rt5640: Add support for boards with an external jack-detect GPIO
ASoC: Intel: bytcr_rt5640: Support retrieving the codec IRQ from the
AMCR0F28 ACPI dev
ASoC: Intel: bytcr_rt5640: Add support for external GPIO jack-detect
sound/soc/codecs/rt5640.c | 71 +++++++++++++++++-----
sound/soc/codecs/rt5640.h | 11 +++-
sound/soc/intel/boards/bytcr_rt5640.c | 86 +++++++++++++++++++++++++--
3 files changed, 146 insertions(+), 22 deletions(-)
--
2.33.1
2
7
change 'postion' to 'position'
Signed-off-by: Qinghua Jin <qhjin.dev(a)gmail.com>
---
sound/soc/soc-topology.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/soc/soc-topology.c b/sound/soc/soc-topology.c
index f5b9e66ac3b8..2630df024dff 100644
--- a/sound/soc/soc-topology.c
+++ b/sound/soc/soc-topology.c
@@ -56,7 +56,7 @@ struct soc_tplg {
const struct firmware *fw;
/* runtime FW parsing */
- const u8 *pos; /* read postion */
+ const u8 *pos; /* read position */
const u8 *hdr_pos; /* header position */
unsigned int pass; /* pass number */
--
2.30.2
2
1
Change jack_work from a struct work_struct to a struct delayed_work, this
is a preparation patch for adding support for boards where an external
GPIO is used for jack-detect, rather then one of the JD pins of the codec.
Signed-off-by: Hans de Goede <hdegoede(a)redhat.com>
---
sound/soc/codecs/rt5640.c | 12 ++++++------
sound/soc/codecs/rt5640.h | 2 +-
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/sound/soc/codecs/rt5640.c b/sound/soc/codecs/rt5640.c
index d01fe73ab9c8..36c00ad17182 100644
--- a/sound/soc/codecs/rt5640.c
+++ b/sound/soc/codecs/rt5640.c
@@ -2297,7 +2297,7 @@ EXPORT_SYMBOL_GPL(rt5640_detect_headset);
static void rt5640_jack_work(struct work_struct *work)
{
struct rt5640_priv *rt5640 =
- container_of(work, struct rt5640_priv, jack_work);
+ container_of(work, struct rt5640_priv, jack_work.work);
struct snd_soc_component *component = rt5640->component;
int status;
@@ -2348,7 +2348,7 @@ static void rt5640_jack_work(struct work_struct *work)
* disabled the OVCD IRQ, the IRQ pin will stay high and as
* we react to edges, we miss the unplug event -> recheck.
*/
- queue_work(system_long_wq, &rt5640->jack_work);
+ queue_delayed_work(system_long_wq, &rt5640->jack_work, 0);
}
}
@@ -2357,7 +2357,7 @@ static irqreturn_t rt5640_irq(int irq, void *data)
struct rt5640_priv *rt5640 = data;
if (rt5640->jack)
- queue_work(system_long_wq, &rt5640->jack_work);
+ queue_delayed_work(system_long_wq, &rt5640->jack_work, 0);
return IRQ_HANDLED;
}
@@ -2366,7 +2366,7 @@ static void rt5640_cancel_work(void *data)
{
struct rt5640_priv *rt5640 = data;
- cancel_work_sync(&rt5640->jack_work);
+ cancel_delayed_work_sync(&rt5640->jack_work);
cancel_delayed_work_sync(&rt5640->bp_work);
}
@@ -2475,7 +2475,7 @@ static void rt5640_enable_jack_detect(struct snd_soc_component *component,
}
/* sync initial jack state */
- queue_work(system_long_wq, &rt5640->jack_work);
+ queue_delayed_work(system_long_wq, &rt5640->jack_work, 0);
}
static int rt5640_set_jack(struct snd_soc_component *component,
@@ -2856,7 +2856,7 @@ static int rt5640_i2c_probe(struct i2c_client *i2c,
rt5640->hp_mute = true;
rt5640->irq = i2c->irq;
INIT_DELAYED_WORK(&rt5640->bp_work, rt5640_button_press_work);
- INIT_WORK(&rt5640->jack_work, rt5640_jack_work);
+ INIT_DELAYED_WORK(&rt5640->jack_work, rt5640_jack_work);
/* Make sure work is stopped on probe-error / remove */
ret = devm_add_action_or_reset(&i2c->dev, rt5640_cancel_work, rt5640);
diff --git a/sound/soc/codecs/rt5640.h b/sound/soc/codecs/rt5640.h
index 2c28f83e338a..7ab930def8dd 100644
--- a/sound/soc/codecs/rt5640.h
+++ b/sound/soc/codecs/rt5640.h
@@ -2145,7 +2145,7 @@ struct rt5640_priv {
int release_count;
int poll_count;
struct delayed_work bp_work;
- struct work_struct jack_work;
+ struct delayed_work jack_work;
struct snd_soc_jack *jack;
unsigned int jd_src;
bool jd_inverted;
--
2.33.1
3
10
seq_virmidi.c: snd_virmidi_new() is already setting seq_mode to
SNDRV_VIRMIDI_SEQ_DISPATCH.
Signed-off-by: Stefan Sauer <st_kost(a)gmx.de>
---
sound/drivers/virmidi.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/sound/drivers/virmidi.c b/sound/drivers/virmidi.c
index 7f7eed6faaae..58012de90c38 100644
--- a/sound/drivers/virmidi.c
+++ b/sound/drivers/virmidi.c
@@ -90,15 +90,12 @@ static int snd_virmidi_probe(struct platform_device *devptr)
}
for (idx = 0; idx < midi_devs[dev]; idx++) {
struct snd_rawmidi *rmidi;
- struct snd_virmidi_dev *rdev;
err = snd_virmidi_new(card, idx, &rmidi);
if (err < 0)
return err;
- rdev = rmidi->private_data;
vmidi->midi[idx] = rmidi;
strcpy(rmidi->name, "Virtual Raw MIDI");
- rdev->seq_mode = SNDRV_VIRMIDI_SEQ_DISPATCH;
}
strcpy(card->driver, "VirMIDI");
--
2.34.1
2
1
If a driver does not supply a drain operation for outputs, a default code
path will execute msleep(50). Especially for a virtual midi device
this severely limmits the throughput.
This implementation for the virtual midi driver simply flushes the output
workqueue.
Signed-off-by: Stefan Sauer <st_kost(a)gmx.de>
---
sound/core/seq/seq_virmidi.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/sound/core/seq/seq_virmidi.c b/sound/core/seq/seq_virmidi.c
index 4abc38c70cae..f5cae49500c8 100644
--- a/sound/core/seq/seq_virmidi.c
+++ b/sound/core/seq/seq_virmidi.c
@@ -262,6 +262,16 @@ static int snd_virmidi_output_close(struct snd_rawmidi_substream *substream)
return 0;
}
+/*
+ * drain output work queue
+ */
+static void snd_virmidi_output_drain(struct snd_rawmidi_substream *substream)
+{
+ struct snd_virmidi *vmidi = substream->runtime->private_data;
+
+ flush_work(&vmidi->output_work);
+}
+
/*
* subscribe callback - allow output to rawmidi device
*/
@@ -336,6 +346,7 @@ static const struct snd_rawmidi_ops snd_virmidi_output_ops = {
.open = snd_virmidi_output_open,
.close = snd_virmidi_output_close,
.trigger = snd_virmidi_output_trigger,
+ .drain = snd_virmidi_output_drain,
};
/*
--
2.34.1
2
1

06 Jan '22
To maintain the consistency of the code, it should be better to add the
sanity check after calling dma_set_mask_and_coherent(), like
tegra_pcm_dma_allocate() in `sound/soc/tegra/tegra_pcm.c`.
Signed-off-by: Jiasheng Jiang <jiasheng(a)iscas.ac.cn>
---
Changelog
v1 -> v2
* Change 1. Remove the fixes tag and change the message.
---
sound/x86/intel_hdmi_audio.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/sound/x86/intel_hdmi_audio.c b/sound/x86/intel_hdmi_audio.c
index 33b12aa67cf5..6caea517f07f 100644
--- a/sound/x86/intel_hdmi_audio.c
+++ b/sound/x86/intel_hdmi_audio.c
@@ -1770,7 +1770,9 @@ static int hdmi_lpe_audio_probe(struct platform_device *pdev)
card_ctx->irq = irq;
/* only 32bit addressable */
- dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
+ ret = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
+ if (ret)
+ goto err;
init_channel_allocations();
--
2.25.1
2
1

Re: Re: [PATCH] ALSA: intel_hdmi: Check for error num after setting mask
by Jiasheng Jiang 06 Jan '22
by Jiasheng Jiang 06 Jan '22
06 Jan '22
On Thu, Jan 06, 2022 at 04:18:01PM +0800, Takashi Iwai wrote:
> Well, 32bit DMA mask practically never fails on x86 (and other
> architectures, IIRC). It's fine to add a sanity check, but it's
> better to be mentioned that it never fails.
Actually, I have already found many place check the 32bit DMA mask.
For example:
snd_ad1889_create() in `sound/pci/ad1889.c`,
snd_vortex_create() in `sound/pci/au88x0/au88x0.c`
tegra_pcm_dma_allocate() in `sound/soc/tegra/tegra_pcm.c`.
Therefore, I think there must be some reason that 32bit may fail.
So, to make the system more robust, it should be better to add the
sanity check.
Sincerely thanks,
Jiang
2
1

06 Jan '22
As the dma_supported() may fail, the dma_set_mask_and_coherent() may
fail too.
Therefore, it should be better to check it and return error if fails.
Fixes: da8648097497 ("ALSA: x86: Flatten two abstraction layers")
Signed-off-by: Jiasheng Jiang <jiasheng(a)iscas.ac.cn>
---
sound/x86/intel_hdmi_audio.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/sound/x86/intel_hdmi_audio.c b/sound/x86/intel_hdmi_audio.c
index 33b12aa67cf5..6caea517f07f 100644
--- a/sound/x86/intel_hdmi_audio.c
+++ b/sound/x86/intel_hdmi_audio.c
@@ -1770,7 +1770,9 @@ static int hdmi_lpe_audio_probe(struct platform_device *pdev)
card_ctx->irq = irq;
/* only 32bit addressable */
- dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
+ ret = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
+ if (ret)
+ goto err;
init_channel_allocations();
--
2.25.1
2
1
alsa-project/alsa-utils issue #134 was opened from kosiu:
I know that hda-analyzer is not a part of alsa-utils.
I'm trying to port it into GTK3 at first but I encounter
problems with scrolling of the graph.
Source is here:
https://github.com/kosiu/alsa/tree/gtk3
Issue URL : https://github.com/alsa-project/alsa-utils/issues/134
Repository URL: https://github.com/alsa-project/alsa-utils
1
0

06 Jan '22
Hi,
The UAC2 ch. "5.2.4.8 Latency Control" specifies latencies optionally
reported by the device for individual entities. Especially the overall
terminal latency TE_LATENCY_CONTROL is interesting.
Some video players include the delay reported by
snd_pcm_status_get_delay into their AV sync calculation.
A linux USB audio gadget can perform some advanced DSP, which including
the output device latency can result in a non-negligible overall
latency. The gadget userspace software could configure the actual value
to be reported by the gadget to the host in the selector UAC2_TE_LATENCY
(audio_v2.h). The UAC2-specced max value of over 4 secs is more than
sufficient for standard use cases.
But I could not find any read of the UAC2_TE_LATENCY control selector in
the snd-usb-audio driver (
https://elixir.bootlin.com/linux/latest/C/ident/UAC2_TE_LATENCY ).
Please does the driver include this value into the overall delay
reported through alsa-lib? If not, would it make sense to add such support?
Thanks a lot,
Pavel.
1
0
From: "YC Hung" <yc.hung(a)mediatek.com>
This patch adds mt8195 dsp document. The dsp is used for Sound Open
Firmware driver node. It includes registers, clocks, memory regions,
and mailbox for dsp.
Signed-off-by: yc.hung <yc.hung(a)mediatek.com>
---
Changes since v2:
Remove useless watchdog interrupt.
Add commit message more detail description.
Changes since v1:
Rename yaml file name as mediatek,mt8195-dsp.yaml
Refine descriptions for mailbox, memory-region and drop unused labels
in examples.
---
---
.../devicetree/bindings/dsp/mediatek,mt8195-dsp.yaml | 12 ------------
1 file changed, 12 deletions(-)
diff --git a/Documentation/devicetree/bindings/dsp/mediatek,mt8195-dsp.yaml b/Documentation/devicetree/bindings/dsp/mediatek,mt8195-dsp.yaml
index bde763191d86..779daa786739 100644
--- a/Documentation/devicetree/bindings/dsp/mediatek,mt8195-dsp.yaml
+++ b/Documentation/devicetree/bindings/dsp/mediatek,mt8195-dsp.yaml
@@ -27,14 +27,6 @@ properties:
- const: cfg
- const: sram
- interrupts:
- items:
- - description: watchdog interrupt
-
- interrupt-names:
- items:
- - const: wdt
-
clocks:
items:
- description: mux for audio dsp clock
@@ -75,8 +67,6 @@ required:
- compatible
- reg
- reg-names
- - interrupts
- - interrupt-names
- clocks
- clock-names
- memory-region
@@ -95,8 +85,6 @@ examples:
reg = <0x10803000 0x1000>,
<0x10840000 0x40000>;
reg-names = "cfg", "sram";
- interrupts = <GIC_SPI 694 IRQ_TYPE_LEVEL_HIGH 0>;
- interrupt-names = "wdt";
clocks = <&topckgen 10>, //CLK_TOP_ADSP
<&clk26m>,
<&topckgen 107>, //CLK_TOP_AUDIO_LOCAL_BUS
--
2.18.0
2
2

05 Jan '22
Hello,
The speaker fixup that is used for the Yoga 7 14ITL5 also applies to
the IdeaPad Slim 9i 14ITL5. The attached patch applies the quirk to
initialise the amplifier on the IdeaPad Slim 9i as well.
This is validated to work on my laptop.
Signed-off-by: Bart Kroon <bart(a)tarmack.eu>
Regards,
Bart
2
1
A randconfig caught a compile warning that is now treated as a fatal
error:
sound/soc/codecs/ak4375.c:415:13: error: ‘ak4375_power_off’ defined but not used [-Werror=unused-function]
where ak4375_power_off() is used only from the PM handler.
As both suspend and resumes are already marked with __maybe_unused,
let's rip off the superfluous ifdef CONFIG_PM, so that the error above
can be avoided.
Fixes: 53778b8292b5 ("ASoC: Add AK4375 support")
Signed-off-by: Takashi Iwai <tiwai(a)suse.de>
---
sound/soc/codecs/ak4375.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/sound/soc/codecs/ak4375.c b/sound/soc/codecs/ak4375.c
index 22cda0699341..9a7b662016b9 100644
--- a/sound/soc/codecs/ak4375.c
+++ b/sound/soc/codecs/ak4375.c
@@ -438,7 +438,6 @@ static int ak4375_power_on(struct ak4375_priv *ak4375)
return 0;
}
-#ifdef CONFIG_PM
static int __maybe_unused ak4375_runtime_suspend(struct device *dev)
{
struct ak4375_priv *ak4375 = dev_get_drvdata(dev);
@@ -463,7 +462,6 @@ static int __maybe_unused ak4375_runtime_resume(struct device *dev)
return regcache_sync(ak4375->regmap);
}
-#endif /* CONFIG_PM */
static const struct snd_soc_component_driver soc_codec_dev_ak4375 = {
.controls = ak4375_snd_controls,
--
2.31.1
2
1
Hi all,
Is there any quick document for handling Ctrl + Z with aplay/cplay?
I don't see this signal handled with alsa-lib or tinycompress although
linux kernel offers PAUSE/RESUME ioctls.
What should be the expected behavior?
thanks,
Daniel.
3
2
This patch series adds support for the low power hibernation feature
on cs35l41. This allows the DSP memory to be retained whilst the
device enters a very low power state.
Patches 1-6 can happily be applied straight away and are mostly bug
fixes to set things up for the series specifically around getting the
cache handling corrected in the driver.
Patches 7,8 specifically will cause some very minor conflicts with
Lucas's currently outstanding work on the HDA version of cs35l41.
Whilst things will still build, this patch adds a test key function
his code will now have to call. If his patches are getting merged
first I will respin this series to update his code, he is currently on
holiday until the 12th of Jan, so if we want to wait for another spin
of those patches I can work with him to update them at that time. Or
alternatively we could just merge them all and I will do a quick fixup
patch at the end, since there is no build breakage.
Thanks,
Charles
Charles Keepax (7):
ASoC: cs35l41: Remove incorrect comment
ASoC: cs35l41: Correct DSP power down
ASoC: cs35l41: Correct handling of some registers in the cache
ASoC: cs35l41: Update handling of test key registers
firmware: cs_dsp: Clear core reset for cache
ASoC: wm_adsp: Add support for "toggle" preloaders
ASoC: cs35l41: Add support for hibernate memory retention mode
David Rhodes (1):
ASoC: cs35l41: Add cs35l51/53 IDs
drivers/firmware/cirrus/cs_dsp.c | 14 ++-
include/sound/cs35l41.h | 7 ++
sound/soc/codecs/cs35l41-i2c.c | 3 +
sound/soc/codecs/cs35l41-lib.c | 152 ++++++++++--------------
sound/soc/codecs/cs35l41-spi.c | 3 +
sound/soc/codecs/cs35l41.c | 246 +++++++++++++++++++++++++++++++++++----
sound/soc/codecs/cs35l41.h | 4 +
sound/soc/codecs/wm_adsp.c | 14 ++-
sound/soc/codecs/wm_adsp.h | 8 ++
9 files changed, 328 insertions(+), 123 deletions(-)
--
2.11.0
Charles Keepax (7):
ASoC: cs35l41: Remove incorrect comment
ASoC: cs35l41: Correct DSP power down
ASoC: cs35l41: Correct handling of some registers in the cache
firmware: cs_dsp: Clear core reset for cache
ASoC: wm_adsp: Add support for "toggle" preloaders
ASoC: cs35l41: Update handling of test key registers
ASoC: cs35l41: Add support for hibernate memory retention mode
David Rhodes (1):
ASoC: cs35l41: Add cs35l51/53 IDs
drivers/firmware/cirrus/cs_dsp.c | 14 ++-
include/sound/cs35l41.h | 7 ++
sound/soc/codecs/cs35l41-i2c.c | 3 +
sound/soc/codecs/cs35l41-lib.c | 152 ++++++++++--------------
sound/soc/codecs/cs35l41-spi.c | 3 +
sound/soc/codecs/cs35l41.c | 246 +++++++++++++++++++++++++++++++++++----
sound/soc/codecs/cs35l41.h | 4 +
sound/soc/codecs/wm_adsp.c | 14 ++-
sound/soc/codecs/wm_adsp.h | 8 ++
9 files changed, 328 insertions(+), 123 deletions(-)
--
2.11.0
3
15
From: Fabio Estevam <festevam(a)denx.de>
When the reset_gpio GPIO is used, it is better to put the codec
back into reset state when the driver unbinds.
Add a remove() function to accomplish that.
Suggested-by: Charles Keepax <ckeepax(a)opensource.cirrus.com>
Signed-off-by: Fabio Estevam <festevam(a)denx.de>
---
Changes since v2:
- Keep using the current polarity logic.
sound/soc/codecs/cs4265.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/sound/soc/codecs/cs4265.c b/sound/soc/codecs/cs4265.c
index 294fa7ac16cb..8fa166e4b2a9 100644
--- a/sound/soc/codecs/cs4265.c
+++ b/sound/soc/codecs/cs4265.c
@@ -626,6 +626,16 @@ static int cs4265_i2c_probe(struct i2c_client *i2c_client,
ARRAY_SIZE(cs4265_dai));
}
+static int cs4265_i2c_remove(struct i2c_client *i2c)
+{
+ struct cs4265_private *cs4265 = i2c_get_clientdata(i2c);
+
+ if (cs4265->reset_gpio)
+ gpiod_set_value_cansleep(cs4265->reset_gpio, 0);
+
+ return 0;
+}
+
static const struct of_device_id cs4265_of_match[] = {
{ .compatible = "cirrus,cs4265", },
{ }
@@ -645,6 +655,7 @@ static struct i2c_driver cs4265_i2c_driver = {
},
.id_table = cs4265_id,
.probe = cs4265_i2c_probe,
+ .remove = cs4265_i2c_remove,
};
module_i2c_driver(cs4265_i2c_driver);
--
2.25.1
3
2
Legion Y9000X 2020 has a speaker, but the speaker doesn't work.
This can be fixed by applying alc285_fixup_ideapad_s740_coef
to fix the speaker's coefficients.
Besides, to support the transition between the speaker and the headphone,
alc287_fixup_legion_15imhg05_speakers needs to be run.
Signed-off-by: Baole Fang <fbl718(a)163.com>
---
sound/pci/hda/patch_realtek.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 28255e752c4a..c7232f9be690 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -6784,6 +6784,8 @@ enum {
ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE,
ALC233_FIXUP_NO_AUDIO_JACK,
ALC256_FIXUP_MIC_NO_PRESENCE_AND_RESUME,
+ ALC285_FIXUP_LEGION_Y9000X_SPEAKERS,
+ ALC285_FIXUP_LEGION_Y9000X_AUTOMUTE,
};
static const struct hda_fixup alc269_fixups[] = {
@@ -8380,6 +8382,18 @@ static const struct hda_fixup alc269_fixups[] = {
.chained = true,
.chain_id = ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF,
},
+ [ALC285_FIXUP_LEGION_Y9000X_SPEAKERS] = {
+ .type = HDA_FIXUP_FUNC,
+ .v.func = alc285_fixup_ideapad_s740_coef,
+ .chained = true,
+ .chain_id = ALC285_FIXUP_LEGION_Y9000X_AUTOMUTE,
+ },
+ [ALC285_FIXUP_LEGION_Y9000X_AUTOMUTE] = {
+ .type = HDA_FIXUP_FUNC,
+ .v.func = alc287_fixup_legion_15imhg05_speakers,
+ .chained = true,
+ .chain_id = ALC269_FIXUP_THINKPAD_ACPI,
+ },
[ALC287_FIXUP_LEGION_15IMHG05_SPEAKERS] = {
.type = HDA_FIXUP_VERBS,
//.v.verbs = legion_15imhg05_coefs,
@@ -8923,6 +8937,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
SND_PCI_QUIRK(0x17aa, 0x31af, "ThinkCentre Station", ALC623_FIXUP_LENOVO_THINKSTATION_P340),
SND_PCI_QUIRK(0x17aa, 0x3818, "Lenovo C940", ALC298_FIXUP_LENOVO_SPK_VOLUME),
SND_PCI_QUIRK(0x17aa, 0x3827, "Ideapad S740", ALC285_FIXUP_IDEAPAD_S740_COEF),
+ SND_PCI_QUIRK(0x17aa, 0x3824, "Legion Y9000X 2020", ALC285_FIXUP_LEGION_Y9000X_SPEAKERS),
SND_PCI_QUIRK(0x17aa, 0x3843, "Yoga 9i", ALC287_FIXUP_IDEAPAD_BASS_SPK_AMP),
SND_PCI_QUIRK(0x17aa, 0x3813, "Legion 7i 15IMHG05", ALC287_FIXUP_LEGION_15IMHG05_SPEAKERS),
SND_PCI_QUIRK(0x17aa, 0x3852, "Lenovo Yoga 7 14ITL5", ALC287_FIXUP_YOGA7_14ITL_SPEAKERS),
--
2.25.1
2
1
The following changes since commit ee907afb0c39a41ee74b862882cfe12820c74b98:
ASoC: meson: aiu: Move AIU_I2S_MISC hold setting to aiu-fifo-i2s (2021-12-14 17:15:32 +0000)
are available in the Git repository at:
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git tags/asoc-v5.17
for you to fetch changes up to 9f3d45318dd9e739ed62e4218839a7a824d3cced:
ASoC: fsl_mqs: fix MODULE_ALIAS (2022-01-04 14:59:37 +0000)
----------------------------------------------------------------
ASoC: Updates for v5.17
Not much going on framework release this time, but a big update for
drivers especially the Intel and SOF ones.
- Refinements and cleanups around the delay() APIs.
- Wider use of dev_err_probe().
- Continuing cleanups and improvements to the SOF code.
- Support for pin switches in simple-card derived cards.
- Support for AMD Renoir ACP, Asahi Kasei Microdevices AKM4375, Intel
systems using NAU8825 and MAX98390, Mediatek MT8915, nVidia Tegra20
S/PDIF, Qualcomm systems using ALC5682I-VS and Texas Instruments
TLV320ADC3xxx.
----------------------------------------------------------------
Ajit Kumar Pandey (16):
ASoC: SOF: amd: Add Renoir ACP HW support
ASoC: SOF: amd: Add helper callbacks for ACP's DMA configuration
ASoC: SOF: amd: Add fw loader and renoir dsp ops to load firmware
ASoC: SOF: amd: Add IPC support for ACP IP block
ASoC: SOF: amd: Add dai driver dsp ops callback for Renoir
ASoC: SOF: amd: Add PCM stream callback for Renoir dai's
ASoC: amd: Add module to determine ACP configuration
ASoC: SOF: amd: Add machine driver dsp ops for Renoir platform
ASoC: SOF: amd: Add Renoir PCI driver interface
ASoC: amd: acp-config: Remove legacy acpi based machine struct
ASoC: SOF: topology: Add support for AMD ACP DAIs
ASoC: SOF: amd: Add support for SOF firmware authentication
ASoC: SOF: ipc: Add null pointer check for substream->runtime
ASoC: amd: acp-config: Enable SOF audio for Google chrome boards.
ASoC: amd: acp-config: Update sof_tplg_filename for SOF machines
ASoC: amd: acp: Remove duplicate dependency in Kconfig
Alexander Stein (5):
ASoC: dt-bindings: Use name-prefix schema
ASoC: meson: t9015: add missing sound-name-prefix property
ASoC: meson: g12a: add missing sound-name-prefix property
ASoC: dt-bindings: spdif-dit: add missing sound-name-prefix property
ASoC: dt-bindings: aiu: spdif-dit: add missing sound-name-prefix property
Allen-KH Cheng (1):
ASoC: SOF: Remove pm_runtime_put_autosuspend() for SOF OF device
Alyssa Ross (1):
ASoC: fsl_mqs: fix MODULE_ALIAS
Ameer Hamza (2):
ASoC: test-component: fix null pointer dereference.
ASoC: test-component: fix null pointer dereference.
Andy Shevchenko (3):
ASoC: zl38060: Setup parent device and get rid of unnecessary of_node assignment
ASoC: ti: davinci-mcasp: Get rid of duplicate of_node assignment
ASoC: ti: davinci-mcasp: Remove unnecessary conditional
Ariel D'Alessandro (6):
ASoC: tlv320aic31xx: Fix typo in BCLK clock name
ASoC: tlv320aic31xx: Add support for pll_r coefficient
ASoC: tlv320aic31xx: Add divs for bclk as clk_in
ASoC: tlv320aic31xx: Handle BCLK set as PLL input configuration
ASoC: fsl-asoc-card: Support fsl,imx-audio-tlv320aic31xx codec
ASoC: fsl-asoc-card: Add missing Kconfig option for tlv320aic31xx
Arnd Bergmann (11):
ASoC: tegra20-spdif: stop setting slave_id
dmaengine: tegra20-apb: stop checking config->slave_id
ASoC: dai_dma: remove slave_id field
spi: pic32: stop setting dma_config->slave_id
mmc: bcm2835: stop setting chan_config->slave_id
dmaengine: shdma: remove legacy slave_id parsing
dmaengine: pxa/mmp: stop referencing config->slave_id
dmaengine: sprd: stop referencing config->slave_id
dmaengine: qcom-adm: stop abusing slave_id config
dmaengine: xilinx_dpdma: stop using slave_id field
dmaengine: remove slave_id config field
Bard Liao (8):
ASoC: intel: sof_sdw: return the original error number
ASoC: intel: sof_sdw: rename be_index/link_id to link_index
ASoC: intel: sof_sdw: Use a fixed DAI link id for AMP
ASoC: intel: sof_sdw: move DMIC link id overwrite to create_sdw_dailink
ASoC: intel: sof_sdw: remove SOF_RT715_DAI_ID_FIX quirk
ASoC: intel: sof_sdw: remove sof_sdw_mic_codec_mockup_init
ASoC: intel: sof_sdw: remove get_next_be_id
ASoC: intel: sof_sdw: add link adr order check
Bernard Zhao (1):
sound/soc: remove useless bool conversion to bool variable
Cezary Rojewski (3):
ASoC: Intel: catpt: Test dmaengine_submit() result before moving on
ASoC: Intel: catpt: Reduce size of catpt_component_open()
ASoC: Intel: catpt: Streamline locals declaration for PCM-functions
Charles Keepax (11):
ASoC: wm_adsp: Remove the wmfw_add_ctl helper function
firmware: cs_dsp: Add lockdep asserts to interface functions
firmware: cs_dsp: Add version checks on coefficient loading
firmware: cs_dsp: Add pre_run callback
firmware: cs_dsp: Print messages from bin files
firmware: cs_dsp: Add support for rev 2 coefficient files
firmware: cs_dsp: Perform NULL check in cs_dsp_coeff_write/read_ctrl
firmware: cs_dsp: Clarify some kernel doc comments
firmware: cs_dsp: Add offset to cs_dsp read/write
firmware: cs_dsp: Allow creation of event controls
firmware: cs_dsp: Move lockdep asserts to avoid potential null pointer
Chris Down (1):
ASoC: Intel: hda_dsp_common: don't multiline PCM topology warning
Christophe JAILLET (1):
ASoC: codecs: Axe some dead code in 'wcd_mbhc_adc_hs_rem_irq()'
Colin Ian King (1):
ASoC: mediatek: mt8195: make several arrays static const
Dan Carpenter (2):
ASoC: mediatek: mt8195: silence uninitialized variable warning
ASoC: qdsp6: fix a use after free bug in open()
Daniel Baluta (6):
ASoC: SOF: imx: Add code to manage DSP related clocks
ASoC: SOF: imx8: Add runtime PM / System PM support
ASoC: SOF: imx8m: Add runtime PM / System PM support
ASoC: SOF: imx8m: Implement DSP start
ASoC: SOF: imx8m: Implement reset callback
ASoC: SOF: OF: Avoid reverse module dependency
David Heidelberg (2):
ASoC: wm8903: Convert txt bindings to yaml
ASoC: nvidia,tegra-audio: Convert multiple txt bindings to yaml
David Rhodes (1):
ASoC: cs35l41: DSP Support
Derek Fang (1):
ASoC: rt5682: Register wclk with its parent_hws instead of parent_data
Dmitry Osipenko (12):
ASoC: dt-bindings: Add binding for Tegra20 S/PDIF
ASoC: dt-bindings: tegra20-i2s: Convert to schema
ASoC: dt-bindings: tegra20-i2s: Document new nvidia,fixed-parent-rate property
ASoC: tegra20: spdif: Set FIFO trigger level
ASoC: tegra20: spdif: Support device-tree
ASoC: tegra20: spdif: Improve driver's code
ASoC: tegra20: spdif: Use more resource-managed helpers
ASoC: tegra20: spdif: Reset hardware
ASoC: tegra20: spdif: Support system suspend
ASoC: tegra20: spdif: Filter out unsupported rates
ASoC: tegra20: i2s: Filter out unsupported rates
ASoC: tegra-audio-rt5677: Correct example
Fabio Estevam (1):
ASoC: cs4265: Fix part number ID error message
Geert Uytterhoeven (1):
ASoC: SOF: mediatek: Use %pR/%pa to print resources/physical addresses
Guennadi Liakhovetski (1):
ASoC: SOF: avoid casting "const" attribute away
Heiner Kallweit (1):
ASoC: sh: rz-ssi: Check return value of pm_runtime_resume_and_get()
Jernej Skrabec (1):
ASoC: sunxi: sun4i-spdif: Implement IEC958 control
Jiasheng Jiang (3):
ASoC: rt5663: Handle device_property_read_u32_array error codes
ASoC: mediatek: Check for error clk pointer
ASoC: samsung: idma: Check of ioremap return value
Jiaxin Yu (2):
ASoC: mediatek: remove unnecessary CONFIG_PM
ASoC: mediatek: assign correct type to argument
Judy Hsiao (1):
ASoC: qcom: Distinguish headset codec by codec_dai->name
Kai Vehmanen (1):
ASoC: SOF: Intel: fix build issue related to CODEC_PROBE_ENTRIES
Karol Trzcinski (1):
ipc: debug: Add shared memory heap to memory scan
Kuninori Morimoto (28):
ASoC: soc-dai: update snd_soc_dai_delay() to snd_soc_pcm_dai_delay()
ASoC: soc-component: add snd_soc_pcm_component_delay()
ASoC: amd: acp-pcm-dma: add .delay support
ASoC: intel: sst-mfld-platform-pcm: add .delay support
ASoC: soc-pcm: tidyup soc_pcm_pointer()'s delay update method
ASoC: dt-bindings: audio-graph-port: enable both flag/phandle for bitclock/frame-master
ASoC: codecs: ak4118: Use dev_err_probe() helper
ASoC: codecs: es7241: Use dev_err_probe() helper
ASoC: codecs: max9759: Use dev_err_probe() helper
ASoC: codecs: max9860: Use dev_err_probe() helper
ASoC: codecs: pcm3168a: Use dev_err_probe() helper
ASoC: codecs: sgtl5000: Use dev_err_probe() helper
ASoC: codecs: simple-amplifier: Use dev_err_probe() helper
ASoC: codecs: simple-mux: Use dev_err_probe() helper
ASoC: codecs: ssm2305: Use dev_err_probe() helper
ASoC: codecs: tlv320aic31xx: Use dev_err_probe() helper
ASoC: ateml: Use dev_err_probe() helper
ASoC: ti: Use dev_err_probe() helper
ASoC: fsl: Use dev_err_probe() helper
ASoC: generic: Use dev_err_probe() helper
ASoC: img: Use dev_err_probe() helper
ASoC: meson: Use dev_err_probe() helper
ASoC: mxs: Use dev_err_probe() helper
ASoC: qcom: Use dev_err_probe() helper
ASoC: rockchip: Use dev_err_probe() helper
ASoC: samsung: Use dev_err_probe() helper
ASoC: stm: Use dev_err_probe() helper
ASoC: sunxi: Use dev_err_probe() helper
Lad Prabhakar (2):
ASoC: xlnx: Use platform_get_irq() to get the interrupt
ASoC: bcm: Use platform_get_irq() to get the interrupt
Lucas Tanure (9):
ASoC: cs35l41: Fix link problem
ASoC: amd: Fix dependency for SPI master
ASoC: cs35l41: Fix undefined reference to core functions
ASoC: cs35l41: Convert tables to shared source code
ASoC: cs35l41: Move cs35l41_otp_unpack to shared code
ASoC: cs35l41: Move power initializations to reg_sequence
ASoC: cs35l41: Create shared function for errata patches
ASoC: cs35l41: Create shared function for setting channels
ASoC: cs35l41: Create shared function for boost configuration
Lukas Bulwahn (2):
ASoC: uniphier: drop selecting non-existing SND_SOC_UNIPHIER_AIO_DMA
ASoC: codecs: wcd938x: add SND_SOC_WCD938_SDW to codec list instead
Mac Chiang (2):
ASoC: Intel: add sof-nau8825 machine driver
ASoC: Intel: boards: add max98390 2/4 speakers support
Mark Brown (36):
Merge series "" from :
Merge existing fixes from asoc/for-5.16 into new branch
Merge series "Add tfa9897 rcv-gpios support" from Vincent Knecht <vincent.knecht(a)mailoo.org>:
Merge series "ASoC: Intel: sof_sdw: Use fixed DAI link id" from Bard Liao <yung-chuan.liao(a)linux.intel.com>:
ASoC: cs42l42: Remove redundant code
ASoC: SOF: New debug feature: IPC message injector
ASoC: SOF: Platform updates for AMD and Mediatek
ASoC: SOF: Add support for Mediatek MT8195
ASoC: SOF: enable multicore with dynamic pipelines
Support BCLK input clock in tlv320aic31xx
ASoC: stm32: add pm runtime support
ASoC: SOF: Add PM support for i.MX8/i.MX8X/i.MX8M
ASoC: SOF: Intel: power optimizations with HDaudio SPIB register
ASoC: SOF: Fixes for Intel HD-Audio DMA stopping
ASoC: soc-pcm: tidyup soc_pcm_pointer()'s delay update method
Merge branch 'for-5.16' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-5.17 so we can apply new Tegra work
ASoC: mediatek: Update MT8195 machine driver
ASoC: mediatek: support memory-region assignment
ASoC: fsl-asoc-card: Add missing Kconfig option for tlv320aic31xx
ASoC: amd: Convert to new style DAI format definitions
ASoC: qcom: apq8016_sbc: Allow routing audio through QDSP6
ASoC : soc-pcm: fix trigger race conditions with shared BE
ASoC: Changes to SOF kcontrol data set/get ops
Merge tag 'dmaengine_topic_slave_id_removal_5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine into v4_20211204_digetx_support_hdmi_audio_on_nvidia_tegra20
ASoC: SOF: remove suport for TRIGGER_RESUME
ASoC: SOF: couple of cleanups
Support HDMI audio on NVIDIA Tegra20
ASoC: Intel: catpt: Dma-transfer fix and couple
ASoC: Use dev_err_probe() helper
ASoC: SOF: Re-visit firmware state and panic tracking/handling
ASoC: More amlogic sound-name-prefix DT fixes
ASoC: qcom: Parse "pin-switches" and "widgets" from DT
ASoC/SoundWire: improve suspend flows and use set_stream() instead of set_tdm_slots() for HDAudio
ASoC: Merge fixes
ASoC: Add support for CS35L41 in HDA systems
ASoC: mediatek: mt8195: repair pcmif BE dai
Maíra Canal (1):
ASoC: adau1701: Replace legacy gpio interface for gpiod
Miaoqian Lin (1):
ASoC: qdsp6: Fix an IS_ERR() vs NULL bug
Oder Chiou (3):
ASoC: rt5640: Add the binding include file for the HDA header support
ASoC: rt5640: Add the HDA header support
ASoC: rt5640: Fix the wrong state of the JD in the HDA header
Olivier Moysan (4):
ASoC: stm32: sai: increase channels_max limit
ASoC: stm32: i2s: add pm_runtime support
ASoC: stm32: dfsdm: add pm_runtime support for audio
ASoC: stm32: spdifrx: add pm_runtime support
Paul Cercueil (1):
ASoC: codecs/jz4770: Add missing gain control after DAC/ADC mixer
Peter Ujfalusi (33):
ASoC: SOF: core: Unregister machine driver before IPC and debugfs
ASoC: SOF: utils: Add generic function to get the reply for a tx message
ASoC: SOF: imx: Use the generic helper to get the reply
ASoC: SOF: intel: Use the generic helper to get the reply
ASoC: SOF: debug: Add support for IPC message injection
ASoC: SOF: ipc: Rename send parameter in snd_sof_ipc_set_get_comp_data()
ASoC: SOF: Drop ipc_cmd parameter for snd_sof_ipc_set_get_comp_data()
ASoC: SOF: topology: Set control_data->cmd alongside scontrol->cmd
ASoC: SOF: Drop ctrl_cmd parameter for snd_sof_ipc_set_get_comp_data()
ASoC: SOF: sof-audio: Drop the `cmd` member from struct snd_sof_control
ASoC: SOF: control: Do not handle control notification with component type
ASoC: SOF: Drop ctrl_type parameter for snd_sof_ipc_set_get_comp_data()
ASoC: SOF: Kconfig: Make the SOF_DEVELOPER_SUPPORT depend on SND_SOC_SOF
ASoC: SOF: ops: Use dev_warn() if the panic offsets differ
ASoC: SOF: Intel: hda-loader: Avoid re-defining the HDA_FW_BOOT_ATTEMPTS
ASoC: SOF: core: Add simple wrapper to check flags in sof_core_debug
ASoC: SOF: Use sof_debug_check_flag() instead of sof_core_debug directly
ASoC: SOF: Add 'non_recoverable' parameter to snd_sof_dsp_panic()
ASoC: SOF: Add a 'message' parameter to snd_sof_dsp_dbg_dump()
ASoC: SOF: Introduce new firmware state: SOF_FW_CRASHED
ASoC: SOF: Introduce new firmware state: SOF_FW_BOOT_READY_OK
ASoC: SOF: Move the definition of enum snd_sof_fw_state to global header
ASoC: SOF: Rename 'enum snd_sof_fw_state' to 'enum sof_fw_state'
ASoC: SOF: ipc: Only allow sending of an IPC in SOF_FW_BOOT_COMPLETE state
ASoC: SOF: Set SOF_FW_BOOT_FAILED in case we have failure during boot
ASoC: SOF: pm: Force DSP off on suspend in BOOT_FAILED state also
ASoc: SOF: core: Update the FW boot state transition diagram
ASoC: SOF: ops: Always print DSP Panic message but use different message
ASoC: SOF: dsp_arch_ops: add kernel log level parameter for oops and stack
ASoC: SOF: Rename snd_sof_get_status() and add kernel log level parameter
ASoC: SOF: Add clarifying comments for sof_core_debug and DSP dump flags
ASoC: SOF: debug: Use DEBUG log level for optional prints
ASoC: SOF: Intel: hda: Use DEBUG log level for optional prints
Pierre-Louis Bossart (28):
ASoC: Intel: sof_sdw: fix jack detection on HP Spectre x360 convertible
ASoC: Intel: sof_sdw: add SKU for Dell Latitude 9520
ASoC: SOF: i.MX: simplify Kconfig
ASoC: SOF: sof-pci-dev: use community key on all Up boards
ALSA: pcm: unconditionally check if appl_ptr is in 0..boundary range
ALSA: pcm: introduce INFO_NO_REWINDS flag
ASoC: SOF: sof-audio: setup sched widgets during pipeline complete step
ASoC: SOF: topology: don't use list_for_each_entry_reverse()
ASoC: Intel: boards: add 'static' qualifiers for max98390 routes
ASoC: AMD: acp-config: fix missing dependency on SND_SOC_ACPI
ASoC: SOF: Intel: hda-stream: limit PROCEN workaround
ASoC: SOF: Intel: hda-ctrl: apply symmetry for DPIB
ASoC: SOF: hda-stream: only enable DPIB if needed
ASoC: SOF: Intel: hda: add quirks for HDAudio DMA position information
ASoC: SOF: Intel: hda-dai: remove unused fields
ASoC: SOF: Intel: add comment on JasperLake support
ASoC: soc-pcm: use GFP_ATOMIC for dpcm structure
ASoC: soc-pcm: align BE 'atomicity' with that of the FE
ASoC: soc-pcm: test refcount before triggering
ASoC: soc-pcm: fix BE handling of PAUSE_RELEASE
ASoC: AMD: fix depend/select mistake on SND_AMD_ACP_CONFIG
ASoC: SOF: AMD: simplify return status handling
ASOC: SOF: Intel: use snd_soc_dai_get_widget()
ASoC/soundwire: intel: simplify callbacks for params/hw_free
ASoC/SoundWire: dai: expand 'stream' concept beyond SoundWire
ASoC: Intel/SOF: use set_stream() instead of set_tdm_slots() for HDAudio
soundwire: intel: remove unnecessary init
soundwire: intel: remove PDM support
Ranjani Sridharan (32):
ASoC: SOF: IPC: Add new IPC command to free trace DMA
ASoC: SOF: IPC: update ipc_log_header()
ASoC: SOF: trace: send DMA_TRACE_FREE IPC during release
ASoC: SOF: Intel: hda: expose get_chip_info()
ASoC: SOF: Introduce num_cores and ref count per core
ASoC: SOF: Add ops for core_get and core_put
ASoC: SOF: Intel: TGL: set core_get/put ops
ASoC: SOF: Intel: CNL/ICL/APL: set core_get/core_put ops
ASoC: SOF: topology: remove sof_load_pipeline_ipc()
ASoC: SOF: free widgets in sof_tear_down_pipelines() for static pipelines
ASoC: SOF: hda: don't use the core op for power up/power down
ASoC: SOF: add support for dynamic pipelines with multi-core
ASoC: SOF: Intel: hda: free DAI widget during stop and suspend
ASoC: SOF: pcm: add .ack callback support
ASoC: SOF: Intel: add .ack support for HDaudio platforms
ASoC: SOF: handle paused streams during system suspend
ASoC: SOF: Intel: hda: clear stream before freeing the DAI widget
ASoC: SOF: Intel: hda: Add a helper function for stream reset
ASoC: SOF: Intel: hda: reset stream before coupling host and link DMA's
ASoC: SOF: pcm: invoke platform hw_free for STOP/SUSPEND triggers
ASoC: SOF: call platform hw_free for paused streams during suspend
ASoC: SOF: Add a helper for freeing PCM stream
ASoC: SOF: pcm: move the check for prepared flag
ASoC: SOF: align the hw_free sequence with stop
ASoC: SOF: IPC: dai: Expand DAI_CONFIG IPC flags
ASoC: SOF: Intel: hda: send DAI_CONFIG IPC during pause
ASoC: SOF: Intel: ICL: move ICL-specific ops to icl.c
ASoC: SOF: topology: read back control data from DSP
ASoC: SOF: pcm: remove support for RESUME trigger
ASoC: SOF: Intel: hda: remove support for RESUME trigger
ASoC: SOF: Intel: hda: remove support for RESUME in platform trigger
soundwire: intel: improve suspend flows
Ricard Wanderlof (2):
ASoC: tlv320adc3xxx: New codec bindings
ASoC: codec: tlv320adc3xxx: New codec driver
Richard Fitzgerald (7):
ASoC: dt-bindings: cs42l42: Convert binding to yaml
ASoC: cs42l42: Add control for audio slow-start switch
ASoC: cs42l42: Remove redundant writes to DETECT_MODE
ASoC: cs42l42: Remove redundant writes to RS_PLUG/RS_UNPLUG masks
ASoC: cs42l42: Simplify reporting of jack unplug
ASoC: cs42l42: Remove redundant pll_divout member
ASoC: cs42l42: Report initial jack state
Rikard Falkeborn (4):
ASoC: mediatek: mt8195: Constify static snd_soc_ops
ASoC: intel: boards: bytcht*: Constify static snd_soc_ops
ASoC: amd: acp6x-pdm-dma: Constify static snd_soc_dai_ops
ASoC: SOF: sof-probes: Constify sof_probe_compr_ops
Sameer Pujar (1):
ASoC: tegra: Add master volume/mute control support
Samuel Holland (1):
ASoC: sun8i-codec: Add AIF, ADC, and DAC volume controls
Shuming Fan (2):
ASoC: rt5682s: add delay time to fix pop sound issue
ASoC: dt-bindings: rt5682s: add AMIC delay time property
Simon Trimmer (1):
firmware: cs_dsp: tidy includes in cs_dsp.c and cs_dsp.h
Srinivas Kandagatla (2):
ASoC: qcom: sdm845: only setup slim ports once
ASoC: codecs: wcd934x: remove redundant ret variable
Srinivasa Rao Mandadapu (2):
ASoC: codecs: MBHC: Add support for special headset
ASoC: codecs: MBHC: Remove useless condition check
Stephan Gerhold (9):
ASoC: dt-bindings: qcom: sm8250: Drop redundant MultiMedia routes
ASoC: dt-bindings: qcom: sm8250: Document "aux-devs"
ASoC: dt-bindings: qcom: apq8016-sbc: Move to qcom,sm8250 DT schema
ASoC: dt-bindings: qcom: Document qcom,msm8916-qdsp6-sndcard compatible
ASoC: qcom: apq8016_sbc: Allow routing audio through QDSP6
ASoC: core: Add snd_soc_of_parse_pin_switches() from simple-card-utils
ASoC: dt-bindings: qcom: sm8250: Document "pin-switches" and "widgets"
ASoC: qcom: common: Parse "pin-switches" and "widgets" from DT
ASoC: msm8916-wcd-analog: Use separate outputs for HPH_L/HPH_R
Takashi Iwai (2):
ASoC: soc-pcm: Fix and cleanup DPCM locking
ASoC: soc-pcm: serialize BE triggers
Thierry Reding (1):
ASoC: dt-bindings: tegra: Document interconnects property
Trevor Wu (10):
ASoC: mediatek: mt8195: support reserved memory assignment
ASoC: mediatek: mt8195: add headset codec rt5682s support
ASoC: mediatek: mt8195: add model property
ASoC: mediatek: mt8195: add sof support on mt8195-mt6359-rt1019-rt5682
ASoC: mediatek: mt8195: add adsp and dai-link property
ASoC: mediatek: mt8195: add memory-region property
ASoC: mediatek: mt8195: correct default value
ASoC: mediatek: mt8195: update control for RT5682 series
ASoC: mediatek: mt8195: correct pcmif BE dai control flow
ASoC: mediatek: mt8195: add playback support to PCM1_BE dai_link
Tzung-Bi Shih (7):
ASoC: mediatek: mt8195-mt6359: reduce log verbosity in probe()
ASoC: mediatek: mt8192-mt6359: fix device_node leak
ASoC: mediatek: mt8173: fix device_node leak
ASoC: mediatek: mt8183: fix device_node leak
ASoC: mediatek: mt8173: reduce log verbosity in probe()
ASoC: mediatek: mt8195: release device_node after snd_soc_register_card
ASoC: mediatek: use of_device_get_match_data()
V sujith kumar Reddy (2):
ASoC: SOF: amd: Add trace logger support
ASoC: amd: acp: Power on/off the speaker enable gpio pin based on DAPM callback.
Vincent Knecht (5):
ASoC: dt-bindings: nxp, tfa989x: Add rcv-gpios property for tfa9897
ASoC: codecs: tfa989x: Add support for tfa9897 optional rcv-gpios
ASoC: dt-bindings: codecs: Add bindings for ak4375
ASoC: Add AK4375 support
ASoC: codecs: ak4375: Change invert controls to a stereo switch
YC Hung (8):
ASoC: SOF: mediatek: Add mt8195 hardware support
ASoC: SOF: tokens: add token for Mediatek AFE
ASoC: SOF: topology: Add support for Mediatek AFE DAI
ASoC: SOF: mediatek: Add fw loader and mt8195 dsp ops to load firmware
ASoC: SOF: Add mt8195 device descriptor
ASoC: SOF: mediatek: Add dai driver dsp ops callback for mt8195
ASoC: SOF: mediatek: Add mt8195 dsp clock support
ASoC: SOF: mediatek: Add DSP system PM callback for mt8195
Yang Yingliang (2):
ASoC: SOF: mediatek: Add missing of_node_put() in platform_parse_resource()
ASoC: codec: tlv320adc3xxx: Fix missing clk_disable_unprepare() on error in adc3xxx_i2c_probe()
Ye Guojin (1):
ASoC: imx-hdmi: add put_device() after of_find_device_by_node()
Yong Zhi (1):
ASoC: Intel: sof_rt5682: Move rt1015 speaker amp to common file
chiminghao (1):
ASoC: remove unneeded variable
lvzhaoxiong (1):
ASoC: qcom: Add support for ALC5682I-VS codec
.mailmap | 6 +
Documentation/ABI/obsolete/o2cb | 11 +
Documentation/ABI/obsolete/sysfs-bus-iio | 4 +
Documentation/ABI/stable/o2cb | 2 +-
Documentation/ABI/stable/sysfs-class-infiniband | 64 +-
Documentation/ABI/stable/sysfs-class-tpm | 2 +-
Documentation/ABI/stable/sysfs-devices | 7 +
Documentation/ABI/stable/sysfs-devices-system-cpu | 15 +
Documentation/ABI/stable/sysfs-driver-mlxreg-io | 244 +
Documentation/ABI/stable/sysfs-module | 25 +-
Documentation/ABI/testing/configfs-usb-gadget-uac1 | 42 +-
Documentation/ABI/testing/configfs-usb-gadget-uac2 | 43 +-
.../ABI/testing/debugfs-driver-habanalabs | 6 +
Documentation/ABI/testing/evm | 5 +-
Documentation/ABI/testing/ima_policy | 10 +-
Documentation/ABI/testing/pstore | 3 +-
Documentation/ABI/testing/sysfs-ata | 2 +-
Documentation/ABI/testing/sysfs-block | 16 +
Documentation/ABI/testing/sysfs-bus-counter | 38 +-
.../ABI/testing/sysfs-bus-fsi-devices-sbefifo | 10 +
Documentation/ABI/testing/sysfs-bus-iio | 42 +
.../ABI/testing/sysfs-bus-iio-chemical-sunrise-co2 | 38 +
Documentation/ABI/testing/sysfs-bus-iio-scd30 | 34 -
.../ABI/testing/sysfs-bus-iio-temperature-max31865 | 20 +
Documentation/ABI/testing/sysfs-bus-mdio | 9 +
Documentation/ABI/testing/sysfs-bus-pci | 35 +-
Documentation/ABI/testing/sysfs-bus-platform | 12 +
.../testing/sysfs-bus-platform-devices-occ-hwmon | 13 +
Documentation/ABI/testing/sysfs-bus-rapidio | 32 +-
.../ABI/testing/sysfs-bus-soundwire-master | 20 +-
.../ABI/testing/sysfs-bus-soundwire-slave | 62 +-
Documentation/ABI/testing/sysfs-bus-usb | 292 +-
Documentation/ABI/testing/sysfs-class-bdi | 30 +-
Documentation/ABI/testing/sysfs-class-cxl | 15 +-
.../ABI/testing/sysfs-class-devfreq-event | 12 +-
Documentation/ABI/testing/sysfs-class-extcon | 12 +-
Documentation/ABI/testing/sysfs-class-fc | 27 +
Documentation/ABI/testing/sysfs-class-gnss | 2 +-
Documentation/ABI/testing/sysfs-class-hwmon | 932 +
Documentation/ABI/testing/sysfs-class-mei | 18 +-
Documentation/ABI/testing/sysfs-class-mic | 24 +-
Documentation/ABI/testing/sysfs-class-mux | 2 +-
Documentation/ABI/testing/sysfs-class-power | 13 +
Documentation/ABI/testing/sysfs-class-pwm | 20 +-
Documentation/ABI/testing/sysfs-class-rapidio | 4 +-
Documentation/ABI/testing/sysfs-class-rc | 14 +-
Documentation/ABI/testing/sysfs-class-rc-nuvoton | 2 +-
Documentation/ABI/testing/sysfs-class-thermal | 259 +
Documentation/ABI/testing/sysfs-class-typec | 2 +-
Documentation/ABI/testing/sysfs-class-uwb_rc | 26 +-
.../ABI/testing/sysfs-class-uwb_rc-wusbhc | 10 +-
.../ABI/testing/sysfs-devices-platform-dock | 10 +-
Documentation/ABI/testing/sysfs-devices-power | 36 +
Documentation/ABI/testing/sysfs-devices-removable | 8 +-
Documentation/ABI/testing/sysfs-devices-system-cpu | 68 +-
.../ABI/testing/sysfs-driver-aspeed-uart-routing | 27 +
Documentation/ABI/testing/sysfs-driver-ufs | 128 +-
Documentation/ABI/testing/sysfs-driver-xen-blkback | 4 +-
.../ABI/testing/sysfs-driver-xen-blkfront | 2 +-
Documentation/ABI/testing/sysfs-firmware-efi-esrt | 16 +-
Documentation/ABI/testing/sysfs-fs-f2fs | 16 +
Documentation/ABI/testing/sysfs-kernel-slab | 115 +-
Documentation/ABI/testing/sysfs-mce | 129 +
Documentation/ABI/testing/sysfs-module | 7 +
.../ABI/testing/sysfs-platform-dell-privacy-wmi | 60 +-
Documentation/ABI/testing/sysfs-platform-dptf | 4 +
Documentation/ABI/testing/sysfs-platform-intel-pmc | 2 +
Documentation/ABI/testing/sysfs-platform-sst-atom | 2 +-
Documentation/ABI/testing/sysfs-ptp | 30 +-
Documentation/ABI/testing/sysfs-timecard | 174 +
Documentation/ABI/testing/sysfs-tty | 32 +-
.../Memory-Ordering/Tree-RCU-Memory-Ordering.rst | 69 +-
Documentation/RCU/stallwarn.rst | 10 +
Documentation/admin-guide/blockdev/zram.rst | 8 +
Documentation/admin-guide/cgroup-v1/memory.rst | 11 +-
Documentation/admin-guide/cgroup-v2.rst | 18 +
Documentation/admin-guide/cputopology.rst | 12 +-
Documentation/admin-guide/dynamic-debug-howto.rst | 15 +-
.../admin-guide/filesystem-monitoring.rst | 78 +
.../admin-guide/hw-vuln/core-scheduling.rst | 5 +-
Documentation/admin-guide/hw-vuln/spectre.rst | 61 +-
Documentation/admin-guide/index.rst | 1 +
Documentation/admin-guide/kernel-parameters.txt | 81 +-
Documentation/admin-guide/media/i2c-cardlist.rst | 8 +-
Documentation/admin-guide/media/imx7.rst | 60 +
Documentation/admin-guide/media/ipu3.rst | 14 +-
Documentation/admin-guide/media/ivtv.rst | 2 +-
Documentation/admin-guide/media/vimc.rst | 20 +-
Documentation/admin-guide/mm/damon/index.rst | 1 +
Documentation/admin-guide/mm/damon/reclaim.rst | 235 +
Documentation/admin-guide/mm/damon/start.rst | 128 +-
Documentation/admin-guide/mm/damon/usage.rst | 109 +-
Documentation/admin-guide/mm/hugetlbpage.rst | 42 +-
Documentation/admin-guide/mm/index.rst | 2 +
Documentation/admin-guide/mm/memory-hotplug.rst | 143 +-
Documentation/admin-guide/mm/pagemap.rst | 75 +-
Documentation/{vm => admin-guide/mm}/swap_numa.rst | 0
Documentation/{vm => admin-guide/mm}/zswap.rst | 0
Documentation/admin-guide/ramoops.rst | 2 +-
Documentation/admin-guide/spkguide.txt | 2 +-
Documentation/arm/index.rst | 1 +
Documentation/arm/marvell.rst | 19 +
Documentation/arm/microchip.rst | 20 +
Documentation/arm/stm32/stm32mp13-overview.rst | 37 +
Documentation/arm64/booting.rst | 10 +
Documentation/arm64/cpu-feature-registers.rst | 12 +-
Documentation/arm64/elf_hwcaps.rst | 4 +
Documentation/arm64/silicon-errata.rst | 12 +
Documentation/asm-annotations.rst | 2 +-
Documentation/block/inline-encryption.rst | 453 +-
Documentation/block/queue-sysfs.rst | 42 +-
Documentation/bpf/bpf_licensing.rst | 92 +
Documentation/bpf/btf.rst | 29 +-
Documentation/bpf/index.rst | 9 +
.../bpf/libbpf/libbpf_naming_convention.rst | 40 +
Documentation/cdrom/cdrom-standard.rst | 11 +
Documentation/conf.py | 3 +
Documentation/core-api/cachetlb.rst | 6 +
Documentation/core-api/irq/irq-domain.rst | 3 -
Documentation/core-api/memory-hotplug.rst | 3 -
Documentation/core-api/mm-api.rst | 5 +
Documentation/core-api/printk-formats.rst | 2 +-
Documentation/core-api/workqueue.rst | 21 +-
Documentation/crypto/crypto_engine.rst | 4 +
Documentation/dev-tools/checkpatch.rst | 81 +
Documentation/dev-tools/kasan.rst | 7 +-
Documentation/dev-tools/kcov.rst | 5 +
Documentation/dev-tools/kfence.rst | 23 +-
Documentation/dev-tools/kunit/running_tips.rst | 11 +-
Documentation/devicetree/bindings/Makefile | 20 +-
Documentation/devicetree/bindings/arm/amlogic.yaml | 3 +
.../devicetree/bindings/arm/arm,cci-400.yaml | 216 +
.../devicetree/bindings/arm/arm,vexpress-juno.yaml | 46 +-
.../devicetree/bindings/arm/atmel-at91.yaml | 24 +
.../devicetree/bindings/arm/bcm/bcm2835.yaml | 1 +
.../devicetree/bindings/arm/bcm/brcm,nsp.yaml | 65 +-
.../devicetree/bindings/arm/cci-control-port.yaml | 38 +
Documentation/devicetree/bindings/arm/cci.txt | 224 -
.../devicetree/bindings/arm/coresight.txt | 5 +
Documentation/devicetree/bindings/arm/cpus.yaml | 10 +-
.../arm/firmware/tlm,trusted-foundations.txt | 20 -
.../arm/firmware/tlm,trusted-foundations.yaml | 46 +
Documentation/devicetree/bindings/arm/fsl.yaml | 99 +-
.../devicetree/bindings/arm/mediatek.yaml | 1 +
.../bindings/arm/mediatek/mediatek,mmsys.yaml | 4 +
.../arm/mediatek/mediatek,mt8195-clock.yaml | 254 +
.../arm/mediatek/mediatek,mt8195-sys-clock.yaml | 73 +
Documentation/devicetree/bindings/arm/qcom.yaml | 23 +
Documentation/devicetree/bindings/arm/renesas.yaml | 61 +
.../devicetree/bindings/arm/rockchip.yaml | 48 +-
.../devicetree/bindings/arm/rockchip/pmu.yaml | 4 +
.../bindings/arm/samsung/exynos-chipid.yaml | 5 +-
.../bindings/arm/samsung/samsung-boards.yaml | 6 +
.../devicetree/bindings/arm/sprd/sprd.yaml | 5 +
Documentation/devicetree/bindings/arm/sti.yaml | 2 +-
.../devicetree/bindings/arm/stm32/st,mlahb.yaml | 4 +-
.../bindings/arm/stm32/st,stm32-syscon.yaml | 4 +-
.../devicetree/bindings/arm/stm32/stm32.yaml | 6 +-
.../arm/sunxi/allwinner,sun4i-a10-mbus.yaml | 1 +
.../arm/sunxi/allwinner,sun6i-a31-cpuconfig.yaml | 38 +
.../arm/sunxi/allwinner,sun9i-a80-prcm.yaml | 33 +
Documentation/devicetree/bindings/arm/ti/k3.yaml | 15 +-
Documentation/devicetree/bindings/arm/toshiba.yaml | 1 +
Documentation/devicetree/bindings/arm/xilinx.yaml | 17 +
.../bindings/auxdisplay/holtek,ht16k33.yaml | 32 +-
Documentation/devicetree/bindings/bus/palmbus.yaml | 79 +
Documentation/devicetree/bindings/bus/ti-sysc.txt | 139 -
Documentation/devicetree/bindings/bus/ti-sysc.yaml | 216 +
.../clock/allwinner,sun8i-a83t-de2-clk.yaml | 2 +-
.../devicetree/bindings/clock/arm,syscon-icst.yaml | 5 +
.../devicetree/bindings/clock/fixed-mmio-clock.txt | 24 -
.../bindings/clock/fixed-mmio-clock.yaml | 47 +
.../bindings/clock/imx8ulp-cgc-clock.yaml | 43 +
.../bindings/clock/imx8ulp-pcc-clock.yaml | 50 +
.../devicetree/bindings/clock/ingenic,cgu.yaml | 2 +-
.../devicetree/bindings/clock/maxim,max77686.txt | 4 +-
.../bindings/clock/qcom,dispcc-sm8x50.yaml | 13 +
.../bindings/clock/qcom,gcc-msm8994.yaml | 70 +
.../bindings/clock/qcom,gcc-msm8998.yaml | 26 +-
.../bindings/clock/qcom,gcc-qcm2290.yaml | 72 +
.../devicetree/bindings/clock/qcom,gcc.yaml | 2 -
.../devicetree/bindings/clock/qcom,rpmcc.txt | 1 +
.../bindings/clock/qcom,sc7280-camcc.yaml | 71 +
.../bindings/clock/qcom,sc7280-lpasscc.yaml | 68 +
.../devicetree/bindings/clock/qcom,videocc.yaml | 13 +
.../bindings/clock/samsung,exynos850-clock.yaml | 185 +
.../devicetree/bindings/clock/samsung,s2mps11.txt | 49 -
.../devicetree/bindings/clock/samsung,s2mps11.yaml | 45 +
.../bindings/clock/sifive/fu740-prci.yaml | 4 +
.../devicetree/bindings/clock/silabs,si5351.txt | 2 +-
.../bindings/clock/socionext,uniphier-clock.yaml | 6 +
.../devicetree/bindings/clock/st,stm32mp1-rcc.yaml | 2 +-
.../bindings/clock/stericsson,u8500-clks.yaml | 121 +
Documentation/devicetree/bindings/clock/ux500.txt | 64 -
.../bindings/crypto/intel,keembay-ocs-ecc.yaml | 47 +
.../devicetree/bindings/crypto/st,stm32-crc.yaml | 2 +-
.../devicetree/bindings/crypto/st,stm32-cryp.yaml | 2 +-
.../devicetree/bindings/crypto/st,stm32-hash.yaml | 2 +-
Documentation/devicetree/bindings/ddr/lpddr2.txt | 102 -
Documentation/devicetree/bindings/ddr/lpddr3.txt | 106 -
.../devicetree/bindings/devfreq/rk3399_dmc.txt | 2 +-
.../bindings/display/brcm,bcm2835-dsi0.yaml | 3 +
.../bindings/display/brcm,bcm2835-hdmi.yaml | 3 +
.../bindings/display/brcm,bcm2835-v3d.yaml | 3 +
.../bindings/display/brcm,bcm2835-vec.yaml | 3 +
.../bindings/display/bridge/lvds-codec.yaml | 33 +-
.../devicetree/bindings/display/bridge/ps8640.yaml | 19 +-
.../bindings/display/bridge/snps,dw-mipi-dsi.yaml | 2 +-
.../bindings/display/bridge/toshiba,tc358767.txt | 54 -
.../bindings/display/bridge/toshiba,tc358767.yaml | 158 +
.../devicetree/bindings/display/ingenic,ipu.yaml | 2 +-
.../devicetree/bindings/display/ingenic,lcd.yaml | 4 +-
.../bindings/display/mediatek/mediatek,dsi.txt | 6 +
.../bindings/display/msm/dp-controller.yaml | 16 +-
.../bindings/display/msm/dpu-sc7280.yaml | 232 +
.../bindings/display/msm/dsi-phy-14nm.yaml | 1 +
.../devicetree/bindings/display/msm/gpu.txt | 157 -
.../devicetree/bindings/display/msm/gpu.yaml | 288 +
.../bindings/display/panel/boe,tv101wum-nl6.yaml | 7 +
.../bindings/display/panel/orisetech,otm8009a.yaml | 2 +-
.../bindings/display/panel/panel-edp.yaml | 188 +
.../bindings/display/panel/panel-simple.yaml | 5 +
.../bindings/display/panel/raydium,rm68200.yaml | 2 +-
.../bindings/display/panel/samsung,s6d27a1.yaml | 98 +
.../bindings/display/panel/sharp,ls060t1sx01.yaml | 56 +
.../devicetree/bindings/display/renesas,du.yaml | 51 +
.../devicetree/bindings/display/st,stm32-dsi.yaml | 4 +-
.../devicetree/bindings/display/st,stm32-ltdc.yaml | 4 +-
.../devicetree/bindings/display/tilcdc/tilcdc.txt | 4 +-
.../bindings/display/xlnx/xlnx,zynqmp-dpsub.yaml | 4 +-
.../bindings/display/xylon,logicvc-display.yaml | 301 +
.../devicetree/bindings/dma/ingenic,dma.yaml | 2 +-
.../devicetree/bindings/dma/qcom_bam_dma.txt | 2 +
.../devicetree/bindings/dma/st,stm32-dma.yaml | 2 +-
.../devicetree/bindings/dma/st,stm32-dmamux.yaml | 2 +-
.../devicetree/bindings/dma/st,stm32-mdma.yaml | 2 +-
Documentation/devicetree/bindings/dsp/fsl,dsp.yaml | 123 +-
Documentation/devicetree/bindings/eeprom/at24.yaml | 6 +
.../devicetree/bindings/example-schema.yaml | 14 +-
.../bindings/extcon/extcon-usbc-tusb320.yaml | 4 +-
.../devicetree/bindings/firmware/qcom,scm.txt | 4 +-
.../devicetree/bindings/gnss/u-blox,neo-6m.yaml | 62 +
Documentation/devicetree/bindings/gnss/u-blox.txt | 45 -
.../devicetree/bindings/gpio/gpio-axp209.txt | 75 -
.../devicetree/bindings/gpio/gpio-xlp.txt | 49 -
.../bindings/gpio/rockchip,gpio-bank.yaml | 2 +
.../bindings/gpio/x-powers,axp209-gpio.yaml | 55 +
.../bindings/gpio/xlnx,zynqmp-gpio-modepin.yaml | 43 +
.../bindings/gpu/host1x/nvidia,tegra210-nvdec.yaml | 106 +
.../bindings/hwlock/st,stm32-hwspinlock.yaml | 3 +-
.../devicetree/bindings/hwmon/dps650ab.txt | 11 -
.../devicetree/bindings/hwmon/hih6130.txt | 12 -
.../devicetree/bindings/hwmon/ibm,cffps1.txt | 26 -
.../devicetree/bindings/hwmon/iio-hwmon.yaml | 37 +
Documentation/devicetree/bindings/hwmon/jc42.txt | 46 -
.../devicetree/bindings/hwmon/jedec,jc42.yaml | 78 +
.../devicetree/bindings/hwmon/lltc,ltc4151.yaml | 41 +
Documentation/devicetree/bindings/hwmon/lm70.txt | 22 -
Documentation/devicetree/bindings/hwmon/lm90.txt | 51 -
.../devicetree/bindings/hwmon/ltc4151.txt | 18 -
.../devicetree/bindings/hwmon/mcp3021.txt | 21 -
.../bindings/hwmon/microchip,mcp3021.yaml | 43 +
.../devicetree/bindings/hwmon/national,lm90.yaml | 78 +
.../devicetree/bindings/hwmon/ntc-thermistor.yaml | 141 +
.../devicetree/bindings/hwmon/ntc_thermistor.txt | 44 -
.../devicetree/bindings/hwmon/nuvoton,nct7802.yaml | 145 +
.../bindings/hwmon/pmbus/ti,lm25066.yaml | 54 +
.../devicetree/bindings/hwmon/sensirion,sht15.yaml | 43 +
Documentation/devicetree/bindings/hwmon/sht15.txt | 19 -
.../devicetree/bindings/hwmon/ti,tmp102.yaml | 47 +
.../devicetree/bindings/hwmon/ti,tmp108.yaml | 50 +
.../devicetree/bindings/hwmon/ti,tmp421.yaml | 110 +
Documentation/devicetree/bindings/hwmon/tmp108.txt | 18 -
.../bindings/i2c/allwinner,sun6i-a31-p2wi.yaml | 2 +-
.../devicetree/bindings/i2c/apple,i2c.yaml | 61 +
Documentation/devicetree/bindings/i2c/i2c-imx.yaml | 4 +-
.../devicetree/bindings/i2c/i2c-xlp9xx.txt | 22 -
.../devicetree/bindings/i2c/ingenic,i2c.yaml | 2 +-
.../devicetree/bindings/i2c/st,stm32-i2c.yaml | 2 +-
.../devicetree/bindings/iio/accel/adi,adxl313.yaml | 86 +
.../devicetree/bindings/iio/accel/adi,adxl355.yaml | 88 +
.../bindings/iio/accel/kionix,kxcjk1013.yaml | 3 +
.../devicetree/bindings/iio/adc/adi,ad7949.yaml | 51 +-
.../devicetree/bindings/iio/adc/adi,ad799x.yaml | 73 +
.../bindings/iio/adc/aspeed,ast2600-adc.yaml | 100 +
.../bindings/iio/adc/atmel,sama5d2-adc.yaml | 1 +
.../devicetree/bindings/iio/adc/ingenic,adc.yaml | 2 +-
.../bindings/iio/adc/nxp,imx8qxp-adc.yaml | 78 +
.../bindings/iio/adc/sigma-delta-modulator.yaml | 2 +-
.../devicetree/bindings/iio/adc/st,stm32-adc.yaml | 110 +-
.../bindings/iio/adc/st,stm32-dfsdm-adc.yaml | 4 +-
.../devicetree/bindings/iio/adc/ti,am3359-adc.yaml | 70 +
.../bindings/iio/chemical/senseair,sunrise.yaml | 55 +
.../bindings/iio/chemical/sensirion,scd4x.yaml | 46 +
.../devicetree/bindings/iio/dac/adi,ad5766.yaml | 2 +-
.../devicetree/bindings/iio/dac/st,stm32-dac.yaml | 2 +-
.../bindings/iio/frequency/adi,adrf6780.yaml | 131 +
.../bindings/iio/light/liteon,ltr501.yaml | 51 +
.../iio/magnetometer/asahi-kasei,ak8975.yaml | 7 +
.../bindings/iio/multiplexer/io-channel-mux.yaml | 13 +-
.../bindings/iio/temperature/maxim,max31865.yaml | 52 +
.../devicetree/bindings/input/cap11xx.txt | 78 -
.../devicetree/bindings/input/cypress-sf.yaml | 61 +
.../devicetree/bindings/input/elan,ekth3000.yaml | 81 +
.../devicetree/bindings/input/elan_i2c.txt | 44 -
.../bindings/input/microchip,cap11xx.yaml | 149 +
.../bindings/input/touchscreen/silead,gsl1680.yaml | 91 +
.../bindings/input/touchscreen/silead_gsl1680.txt | 44 -
.../bindings/input/touchscreen/ti,am3359-tsc.yaml | 76 +
.../bindings/input/touchscreen/ti-tsc-adc.txt | 91 -
.../interrupt-controller/microchip,eic.yaml | 73 +
.../interrupt-controller/msi-controller.yaml | 46 +
.../interrupt-controller/renesas,irqc.yaml | 1 +
.../interrupt-controller/st,stm32-exti.yaml | 4 +-
.../devicetree/bindings/iommu/arm,smmu.yaml | 2 +
.../bindings/iommu/renesas,ipmmu-vmsa.yaml | 1 +
.../bindings/ipmi/aspeed,ast2400-ibt-bmc.txt | 1 +
.../devicetree/bindings/ipmi/ipmi-ipmb.yaml | 59 +
.../devicetree/bindings/leds/register-bit-led.txt | 94 -
.../devicetree/bindings/leds/register-bit-led.yaml | 95 +
.../devicetree/bindings/mailbox/apple,mailbox.yaml | 77 +
.../devicetree/bindings/mailbox/fsl,mu.yaml | 1 +
.../devicetree/bindings/mailbox/mtk-gce.txt | 4 +-
.../bindings/mailbox/qcom,apcs-kpss-global.yaml | 3 +-
.../devicetree/bindings/mailbox/st,stm32-ipcc.yaml | 4 +-
.../devicetree/bindings/media/i2c/adv7604.yaml | 13 +-
.../bindings/media/i2c/aptina,mt9p031.yaml | 108 +
.../devicetree/bindings/media/i2c/hynix,hi846.yaml | 120 +
.../devicetree/bindings/media/i2c/mt9p031.txt | 40 -
.../devicetree/bindings/media/i2c/ov5640.txt | 92 -
.../devicetree/bindings/media/i2c/ovti,ov5640.yaml | 154 +
.../devicetree/bindings/media/mediatek-vcodec.txt | 2 +
.../bindings/media/qcom,sc7280-venus.yaml | 161 +
.../bindings/media/qcom,sdm660-venus.yaml | 186 +
.../devicetree/bindings/media/renesas,csi2.yaml | 1 +
.../devicetree/bindings/media/renesas,imr.txt | 31 -
.../devicetree/bindings/media/renesas,imr.yaml | 67 +
.../devicetree/bindings/media/rockchip-isp1.yaml | 114 +-
.../devicetree/bindings/media/st,stm32-cec.yaml | 3 +-
.../devicetree/bindings/media/st,stm32-dcmi.yaml | 2 +-
.../devicetree/bindings/media/ti,cal.yaml | 4 +-
.../memory-controllers/ddr/jedec,lpddr2.yaml | 223 +
.../ddr/lpddr2-timings.txt | 0
.../ddr/lpddr3-timings.txt | 0
.../bindings/memory-controllers/ddr/lpddr3.txt | 107 +
.../bindings/memory-controllers/fsl/ddr.txt | 29 -
.../bindings/memory-controllers/fsl/fsl,ddr.yaml | 83 +
.../bindings/memory-controllers/ingenic,nemc.yaml | 2 +-
.../memory-controllers/mediatek,mt7621-memc.yaml | 30 +
.../memory-controllers/mediatek,smi-common.yaml | 34 +-
.../memory-controllers/mediatek,smi-larb.yaml | 3 +
.../memory-controllers/nvidia,tegra20-emc.yaml | 23 +-
.../bindings/memory-controllers/omap-gpmc.txt | 157 -
.../memory-controllers/renesas,rpc-if.yaml | 1 +
.../memory-controllers/samsung,exynos5422-dmc.yaml | 3 +-
.../memory-controllers/st,stm32-fmc2-ebi.yaml | 2 +-
.../bindings/memory-controllers/ti,gpmc-child.yaml | 245 +
.../bindings/memory-controllers/ti,gpmc.yaml | 172 +
Documentation/devicetree/bindings/mfd/ac100.txt | 50 -
.../devicetree/bindings/mfd/aspeed-lpc.txt | 157 -
.../devicetree/bindings/mfd/aspeed-lpc.yaml | 199 +
Documentation/devicetree/bindings/mfd/axp20x.txt | 273 -
.../devicetree/bindings/mfd/brcm,cru.yaml | 32 +-
.../devicetree/bindings/mfd/brcm,misc.yaml | 60 +
Documentation/devicetree/bindings/mfd/max14577.txt | 4 +-
Documentation/devicetree/bindings/mfd/max77686.txt | 2 +-
Documentation/devicetree/bindings/mfd/max77693.txt | 2 +-
.../devicetree/bindings/mfd/qcom,spmi-pmic.txt | 39 +-
.../devicetree/bindings/mfd/qcom,tcsr.txt | 1 +
.../devicetree/bindings/mfd/qcom-pm8xxx.yaml | 1 +
.../devicetree/bindings/mfd/samsung,s2mpa01.yaml | 91 +
.../devicetree/bindings/mfd/samsung,s2mps11.yaml | 267 +
.../devicetree/bindings/mfd/samsung,s5m8767.yaml | 307 +
.../devicetree/bindings/mfd/samsung,sec-core.txt | 86 -
.../devicetree/bindings/mfd/st,stm32-lptimer.yaml | 2 +-
.../devicetree/bindings/mfd/st,stm32-timers.yaml | 3 +-
.../devicetree/bindings/mfd/st,stmfx.yaml | 2 +-
.../devicetree/bindings/mfd/st,stpmic1.yaml | 2 +-
Documentation/devicetree/bindings/mfd/syscon.yaml | 3 +
.../devicetree/bindings/mfd/ti,am3359-tscadc.yaml | 84 +
.../devicetree/bindings/mfd/x-powers,ac100.yaml | 116 +
.../devicetree/bindings/mfd/x-powers,axp152.yaml | 400 +
.../devicetree/bindings/mfd/xylon,logicvc.yaml | 3 +
.../bindings/mips/ingenic/ingenic,cpu.yaml | 2 +-
Documentation/devicetree/bindings/mips/ralink.txt | 32 -
Documentation/devicetree/bindings/mips/ralink.yaml | 87 +
.../devicetree/bindings/mmc/arasan,sdhci.yaml | 26 +-
.../devicetree/bindings/mmc/cdns,sdhci.yaml | 1 +
.../devicetree/bindings/mmc/fsl-imx-esdhc.yaml | 1 +
.../devicetree/bindings/mmc/ingenic,mmc.yaml | 2 +-
Documentation/devicetree/bindings/mmc/mmc-card.txt | 30 -
.../devicetree/bindings/mmc/mmc-card.yaml | 48 +
.../devicetree/bindings/mmc/mmc-controller.yaml | 6 -
Documentation/devicetree/bindings/mmc/mtk-sd.yaml | 12 +
.../devicetree/bindings/mmc/sdhci-msm.txt | 1 +
.../devicetree/bindings/mmc/sdhci-omap.txt | 9 +-
.../devicetree/bindings/mtd/gpmc-nand.txt | 147 -
Documentation/devicetree/bindings/mtd/gpmc-nor.txt | 98 -
.../devicetree/bindings/mtd/gpmc-onenand.txt | 48 -
.../devicetree/bindings/mtd/ingenic,nand.yaml | 2 +-
.../bindings/mtd/st,stm32-fmc2-nand.yaml | 2 +-
.../devicetree/bindings/mtd/ti,gpmc-nand.yaml | 121 +
.../devicetree/bindings/mtd/ti,gpmc-onenand.yaml | 81 +
.../bindings/net/allwinner,sun8i-a83t-emac.yaml | 4 +-
.../devicetree/bindings/net/asix,ax88796c.yaml | 73 +
.../devicetree/bindings/net/brcm,bcmgenet.txt | 3 +-
.../bindings/net/broadcom-bluetooth.yaml | 17 +-
Documentation/devicetree/bindings/net/dsa/dsa.yaml | 12 +-
.../devicetree/bindings/net/dsa/nxp,sja1105.yaml | 43 +
.../devicetree/bindings/net/dsa/qca8k.txt | 215 -
.../devicetree/bindings/net/dsa/qca8k.yaml | 362 +
.../devicetree/bindings/net/dsa/realtek-smi.txt | 87 +
Documentation/devicetree/bindings/net/gpmc-eth.txt | 97 -
.../devicetree/bindings/net/ingenic,mac.yaml | 2 +-
.../devicetree/bindings/net/lantiq,etop-xway.yaml | 69 +
.../devicetree/bindings/net/lantiq,xrx200-net.txt | 21 -
.../devicetree/bindings/net/lantiq,xrx200-net.yaml | 59 +
Documentation/devicetree/bindings/net/macb.txt | 4 +
.../devicetree/bindings/net/marvell-bluetooth.txt | 25 -
.../devicetree/bindings/net/marvell-bluetooth.yaml | 31 +
.../devicetree/bindings/net/nfc/marvell,nci.yaml | 170 +
.../devicetree/bindings/net/nfc/nfcmrvl.txt | 84 -
.../devicetree/bindings/net/nfc/nxp,nci.yaml | 61 +
.../devicetree/bindings/net/nfc/nxp,pn532.yaml | 65 +
.../devicetree/bindings/net/nfc/nxp,pn544.yaml | 58 +
.../devicetree/bindings/net/nfc/nxp-nci.txt | 33 -
.../devicetree/bindings/net/nfc/pn532.txt | 46 -
.../devicetree/bindings/net/nfc/pn544.txt | 33 -
.../devicetree/bindings/net/nfc/st,st-nci.yaml | 106 +
.../devicetree/bindings/net/nfc/st,st21nfca.yaml | 64 +
.../devicetree/bindings/net/nfc/st,st95hf.yaml | 57 +
.../devicetree/bindings/net/nfc/st-nci-i2c.txt | 38 -
.../devicetree/bindings/net/nfc/st-nci-spi.txt | 36 -
.../devicetree/bindings/net/nfc/st21nfca.txt | 37 -
.../devicetree/bindings/net/nfc/st95hf.txt | 45 -
.../devicetree/bindings/net/nfc/ti,trf7970a.yaml | 98 +
.../devicetree/bindings/net/nfc/trf7970a.txt | 43 -
.../devicetree/bindings/net/qcom,ipa.yaml | 3 +-
.../devicetree/bindings/net/qcom,ipq8064-mdio.yaml | 5 +-
.../devicetree/bindings/net/realtek-bluetooth.yaml | 2 +
.../devicetree/bindings/net/renesas,ether.yaml | 17 +-
.../devicetree/bindings/net/renesas,etheravb.yaml | 3 +
.../devicetree/bindings/net/snps,dwmac.yaml | 8 +-
.../bindings/net/socionext,uniphier-ave4.yaml | 1 +
.../devicetree/bindings/net/stm32-dwmac.yaml | 4 +-
.../devicetree/bindings/net/ti,bluetooth.yaml | 92 +
.../devicetree/bindings/net/ti-bluetooth.txt | 60 -
.../bindings/net/wireless/esp,esp8089.txt | 30 -
.../bindings/net/wireless/esp,esp8089.yaml | 43 +
.../bindings/net/wireless/mediatek,mt76.yaml | 5 +
.../devicetree/bindings/net/wireless/qca,ath9k.txt | 48 -
.../bindings/net/wireless/qca,ath9k.yaml | 90 +
.../bindings/net/wireless/ti,wlcore,spi.txt | 57 -
.../devicetree/bindings/net/wireless/ti,wlcore.txt | 45 -
.../bindings/net/wireless/ti,wlcore.yaml | 134 +
Documentation/devicetree/bindings/numa.txt | 46 +-
.../bindings/nvmem/ingenic,jz4780-efuse.yaml | 2 +-
.../devicetree/bindings/nvmem/st,stm32-romem.yaml | 2 +-
.../devicetree/bindings/opp/opp-v2-base.yaml | 2 +-
.../devicetree/bindings/pci/apple,pcie.yaml | 160 +
.../devicetree/bindings/pci/brcm,stb-pcie.yaml | 1 +
.../bindings/pci/mediatek,mt7621-pcie.yaml | 142 +
.../bindings/pci/microchip,pcie-host.yaml | 1 +
.../bindings/pci/nvidia,tegra194-pcie.txt | 2 +-
.../devicetree/bindings/pci/qcom,pcie-ep.yaml | 158 +
.../devicetree/bindings/pci/qcom,pcie.txt | 5 +-
.../devicetree/bindings/pci/rcar-pci-ep.yaml | 1 +
.../devicetree/bindings/pci/rockchip-dw-pcie.yaml | 141 +
.../devicetree/bindings/phy/bcm-ns-usb2-phy.yaml | 25 +-
.../devicetree/bindings/phy/ingenic,phy-usb.yaml | 2 +-
.../bindings/phy/nvidia,tegra20-usb-phy.txt | 74 -
.../bindings/phy/nvidia,tegra20-usb-phy.yaml | 373 +
.../devicetree/bindings/phy/phy-stm32-usbphyc.yaml | 131 +-
.../devicetree/bindings/phy/qcom,qmp-phy.yaml | 84 +-
.../devicetree/bindings/phy/qcom,qusb2-phy.yaml | 7 +
.../devicetree/bindings/phy/rockchip-usb-phy.yaml | 11 +-
.../devicetree/bindings/pinctrl/apple,pinctrl.yaml | 10 +
.../bindings/pinctrl/brcm,ns-pinmux.yaml | 33 +-
.../bindings/pinctrl/mediatek,mt7986-pinctrl.yaml | 363 +
.../bindings/pinctrl/microchip,sparx5-sgpio.yaml | 7 +
.../bindings/pinctrl/pinctrl-mt8195.yaml | 86 +-
.../bindings/pinctrl/qcom,pmic-gpio.yaml | 4 +
.../devicetree/bindings/pinctrl/qcom,pmic-mpp.txt | 187 -
.../devicetree/bindings/pinctrl/qcom,pmic-mpp.yaml | 188 +
.../bindings/pinctrl/qcom,qcm2290-pinctrl.yaml | 165 +
.../bindings/pinctrl/qcom,sm6350-pinctrl.yaml | 148 +
.../bindings/pinctrl/rockchip,pinctrl.txt | 114 -
.../bindings/pinctrl/rockchip,pinctrl.yaml | 184 +
.../bindings/pinctrl/samsung-pinctrl.txt | 1 +
.../pinctrl/socionext,uniphier-pinctrl.yaml | 1 +
.../bindings/pinctrl/st,stm32-pinctrl.yaml | 2 +-
.../devicetree/bindings/power/qcom,rpmpd.yaml | 2 +
.../bindings/power/supply/maxim,max17040.yaml | 2 +-
.../bindings/power/supply/samsung,battery.yaml | 56 +
.../power/supply/stericsson,ab8500-btemp.yaml | 10 +-
.../power/supply/stericsson,ab8500-chargalg.yaml | 10 +-
.../power/supply/stericsson,ab8500-charger.yaml | 10 +-
.../power/supply/stericsson,ab8500-fg.yaml | 10 +-
.../devicetree/bindings/pwm/renesas,tpu-pwm.yaml | 2 +
.../devicetree/bindings/regulator/max77686.txt | 2 +-
.../devicetree/bindings/regulator/max8952.txt | 52 -
.../bindings/regulator/max8973-regulator.txt | 52 -
.../bindings/regulator/max8997-regulator.txt | 145 -
.../bindings/regulator/maxim,max8952.yaml | 109 +
.../bindings/regulator/maxim,max8973.yaml | 139 +
.../bindings/regulator/maxim,max8997.yaml | 445 +
.../bindings/regulator/qcom,rpmh-regulator.yaml | 2 +
.../bindings/regulator/qcom,smd-rpm-regulator.yaml | 4 +
.../bindings/regulator/samsung,s2mpa01.txt | 79 -
.../bindings/regulator/samsung,s2mpa01.yaml | 62 +
.../bindings/regulator/samsung,s2mps11.txt | 102 -
.../bindings/regulator/samsung,s2mps11.yaml | 44 +
.../bindings/regulator/samsung,s2mps13.yaml | 44 +
.../bindings/regulator/samsung,s2mps14.yaml | 44 +
.../bindings/regulator/samsung,s2mps15.yaml | 44 +
.../bindings/regulator/samsung,s2mpu02.yaml | 44 +
.../bindings/regulator/samsung,s5m8767.txt | 145 -
.../bindings/regulator/samsung,s5m8767.yaml | 74 +
.../bindings/regulator/silergy,sy8106a.yaml | 52 +
.../regulator/socionext,uniphier-regulator.yaml | 1 +
.../bindings/regulator/st,stm32-booster.yaml | 2 +-
.../bindings/regulator/st,stm32-vrefbuf.yaml | 2 +-
.../bindings/regulator/st,stm32mp1-pwr-reg.yaml | 2 +-
.../bindings/regulator/sy8106a-regulator.txt | 23 -
.../remoteproc/amlogic,meson-mx-ao-arc.yaml | 87 +
.../bindings/remoteproc/ingenic,vpu.yaml | 2 +-
.../devicetree/bindings/remoteproc/mtk,scp.txt | 36 -
.../devicetree/bindings/remoteproc/mtk,scp.yaml | 92 +
.../devicetree/bindings/remoteproc/qcom,adsp.yaml | 59 +-
.../devicetree/bindings/remoteproc/qcom,q6v5.txt | 39 +-
.../bindings/remoteproc/st,stm32-rproc.yaml | 4 +-
.../bindings/remoteproc/ti,k3-dsp-rproc.yaml | 4 +-
.../bindings/remoteproc/ti,k3-r5f-rproc.yaml | 4 +-
.../bindings/reserved-memory/memory-region.yaml | 40 +
.../bindings/reserved-memory/ramoops.txt | 66 -
.../bindings/reserved-memory/ramoops.yaml | 145 +
.../bindings/reserved-memory/reserved-memory.txt | 172 +-
.../bindings/reserved-memory/reserved-memory.yaml | 100 +
.../bindings/reserved-memory/shared-dma-pool.yaml | 87 +
.../devicetree/bindings/reset/microchip,rst.yaml | 4 +-
.../reset/socionext,uniphier-glue-reset.yaml | 1 +
.../bindings/reset/socionext,uniphier-reset.yaml | 3 +
Documentation/devicetree/bindings/riscv/cpus.yaml | 8 +-
.../devicetree/bindings/rng/ingenic,trng.yaml | 2 +-
Documentation/devicetree/bindings/rng/omap_rng.txt | 38 -
.../devicetree/bindings/rng/omap_rng.yaml | 92 +
.../devicetree/bindings/rng/st,stm32-rng.yaml | 2 +-
.../devicetree/bindings/rtc/ingenic,rtc.yaml | 2 +-
.../devicetree/bindings/rtc/mstar,msc313-rtc.yaml | 49 +
.../devicetree/bindings/rtc/nxp,pcf85063.txt | 9 +
.../devicetree/bindings/rtc/st,stm32-rtc.yaml | 2 +-
.../devicetree/bindings/serial/8250_omap.yaml | 2 +-
.../bindings/serial/brcm,bcm6345-uart.txt | 36 -
.../bindings/serial/brcm,bcm6345-uart.yaml | 47 +
.../bindings/serial/fsl,s32-linflexuart.txt | 22 -
.../bindings/serial/fsl,s32-linflexuart.yaml | 48 +
.../devicetree/bindings/serial/ingenic,uart.yaml | 2 +-
.../devicetree/bindings/serial/samsung_uart.yaml | 1 +
.../devicetree/bindings/serial/sprd-uart.yaml | 1 +
.../devicetree/bindings/serial/st,stm32-uart.yaml | 2 +-
.../bindings/serial/xlnx,opb-uartlite.txt | 23 -
.../bindings/serial/xlnx,opb-uartlite.yaml | 89 +
.../bindings/soc/aspeed/uart-routing.yaml | 56 +
.../bindings/soc/imx/fsl,imx8mm-disp-blk-ctrl.yaml | 94 +
.../bindings/soc/imx/fsl,imx8mm-vpu-blk-ctrl.yaml | 76 +
.../bindings/soc/qcom/qcom,aoss-qmp.yaml | 12 +-
.../devicetree/bindings/soc/qcom/qcom,smd-rpm.yaml | 3 +
.../devicetree/bindings/soc/qcom/qcom,smem.yaml | 34 +-
.../devicetree/bindings/soc/qcom/qcom,spm.yaml | 81 +
.../devicetree/bindings/soc/qcom/qcom-stats.yaml | 47 +
.../devicetree/bindings/sound/ak4375.yaml | 57 +
.../bindings/sound/allwinner,sun4i-a10-i2s.yaml | 3 +
.../devicetree/bindings/sound/amlogic,aiu.yaml | 5 +
.../bindings/sound/amlogic,g12a-toacodec.yaml | 5 +
.../devicetree/bindings/sound/amlogic,t9015.yaml | 11 +
.../bindings/sound/audio-graph-port.yaml | 9 +-
.../devicetree/bindings/sound/cirrus,cs42l42.yaml | 225 +
.../devicetree/bindings/sound/cirrus,cs42l51.yaml | 2 +-
.../devicetree/bindings/sound/cs42l42.txt | 115 -
.../devicetree/bindings/sound/ingenic,aic.yaml | 2 +-
.../devicetree/bindings/sound/ingenic,codec.yaml | 2 +-
.../devicetree/bindings/sound/linux,spdif-dit.yaml | 5 +
.../devicetree/bindings/sound/mt8195-afe-pcm.yaml | 8 +
.../sound/mt8195-mt6359-rt1011-rt5682.yaml | 4 +
.../sound/mt8195-mt6359-rt1019-rt5682.yaml | 14 +
.../bindings/sound/nvidia,tegra-audio-alc5632.txt | 48 -
.../bindings/sound/nvidia,tegra-audio-alc5632.yaml | 74 +
.../bindings/sound/nvidia,tegra-audio-common.yaml | 83 +
.../sound/nvidia,tegra-audio-graph-card.yaml | 10 +
.../bindings/sound/nvidia,tegra-audio-max98090.txt | 53 -
.../sound/nvidia,tegra-audio-max98090.yaml | 97 +
.../bindings/sound/nvidia,tegra-audio-rt5640.txt | 52 -
.../bindings/sound/nvidia,tegra-audio-rt5640.yaml | 85 +
.../bindings/sound/nvidia,tegra-audio-rt5677.txt | 67 -
.../bindings/sound/nvidia,tegra-audio-rt5677.yaml | 100 +
.../bindings/sound/nvidia,tegra-audio-sgtl5000.txt | 42 -
.../sound/nvidia,tegra-audio-sgtl5000.yaml | 67 +
.../sound/nvidia,tegra-audio-trimslice.txt | 21 -
.../sound/nvidia,tegra-audio-trimslice.yaml | 33 +
.../bindings/sound/nvidia,tegra-audio-wm8753.txt | 40 -
.../bindings/sound/nvidia,tegra-audio-wm8753.yaml | 79 +
.../bindings/sound/nvidia,tegra-audio-wm8903.txt | 62 -
.../bindings/sound/nvidia,tegra-audio-wm8903.yaml | 93 +
.../bindings/sound/nvidia,tegra-audio-wm9712.txt | 60 -
.../bindings/sound/nvidia,tegra-audio-wm9712.yaml | 76 +
.../bindings/sound/nvidia,tegra20-i2s.txt | 30 -
.../bindings/sound/nvidia,tegra20-i2s.yaml | 77 +
.../bindings/sound/nvidia,tegra20-spdif.yaml | 85 +
.../devicetree/bindings/sound/nxp,tfa989x.yaml | 41 +
.../devicetree/bindings/sound/qcom,apq8016-sbc.txt | 96 -
.../devicetree/bindings/sound/qcom,sm8250.yaml | 152 +-
.../devicetree/bindings/sound/realtek,rt5682s.yaml | 4 +
.../bindings/sound/simple-audio-amplifier.yaml | 8 +-
.../devicetree/bindings/sound/st,stm32-i2s.yaml | 2 +-
.../devicetree/bindings/sound/st,stm32-sai.yaml | 2 +-
.../bindings/sound/st,stm32-spdifrx.yaml | 2 +-
.../bindings/sound/ti,tlv320adc3xxx.yaml | 137 +
.../devicetree/bindings/sound/wlf,wm8903.yaml | 116 +
Documentation/devicetree/bindings/sound/wm8903.txt | 82 -
.../devicetree/bindings/spi/cdns,qspi-nor.yaml | 12 +
.../devicetree/bindings/spi/cdns,xspi.yaml | 77 +
.../devicetree/bindings/spi/ingenic,spi.yaml | 72 +
.../bindings/spi/qcom,spi-qcom-qspi.yaml | 6 +-
.../devicetree/bindings/spi/spi-nxp-fspi.txt | 44 -
.../devicetree/bindings/spi/spi-nxp-fspi.yaml | 86 +
Documentation/devicetree/bindings/spi/spi-xlp.txt | 38 -
.../devicetree/bindings/spi/st,stm32-qspi.yaml | 4 +-
.../devicetree/bindings/spi/st,stm32-spi.yaml | 4 +-
Documentation/devicetree/bindings/sram/sram.yaml | 7 +-
.../devicetree/bindings/submitting-patches.rst | 3 +
.../bindings/thermal/qcom-spmi-adc-tm-hc.yaml | 149 +
.../bindings/thermal/rockchip-thermal.yaml | 23 +-
.../thermal/socionext,uniphier-thermal.yaml | 1 +
.../bindings/thermal/st,stm32-thermal.yaml | 2 +-
.../devicetree/bindings/timer/ingenic,sysost.yaml | 2 +-
.../devicetree/bindings/timer/ingenic,tcu.yaml | 2 +-
.../devicetree/bindings/timer/st,stm32-timer.yaml | 3 +-
.../devicetree/bindings/trivial-devices.yaml | 26 +-
.../bindings/ufs/samsung,exynos-ufs.yaml | 10 +
.../devicetree/bindings/usb/atmel-usb.txt | 4 +
Documentation/devicetree/bindings/usb/dwc2.yaml | 16 +-
.../devicetree/bindings/usb/ingenic,musb.yaml | 2 +-
.../devicetree/bindings/usb/qcom,dwc3.yaml | 1 +
.../devicetree/bindings/usb/smsc,usb3503.yaml | 108 +
.../devicetree/bindings/usb/snps,dwc3.yaml | 18 +-
.../devicetree/bindings/usb/st,stusb160x.yaml | 2 +-
.../devicetree/bindings/usb/ti,tps6598x.yaml | 4 +
.../devicetree/bindings/usb/udc-xilinx.txt | 18 -
Documentation/devicetree/bindings/usb/usb3503.txt | 39 -
.../devicetree/bindings/usb/xlnx,usb2.yaml | 47 +
.../devicetree/bindings/vendor-prefixes.yaml | 24 +
Documentation/devicetree/bindings/w1/w1-gpio.txt | 27 -
Documentation/devicetree/bindings/w1/w1-gpio.yaml | 43 +
.../bindings/watchdog/allwinner,sun4i-a10-wdt.yaml | 46 +-
.../devicetree/bindings/watchdog/mtk-wdt.txt | 2 +
.../bindings/watchdog/st,stm32-iwdg.yaml | 4 +-
.../devicetree/bindings/writing-bindings.rst | 2 +-
.../devicetree/bindings/writing-schema.rst | 29 +-
Documentation/driver-api/cxl/memory-devices.rst | 6 +
Documentation/driver-api/dma-buf.rst | 6 -
Documentation/driver-api/driver-model/devres.rst | 1 +
Documentation/driver-api/generic-counter.rst | 363 +-
Documentation/driver-api/ipmi.rst | 64 +-
Documentation/driver-api/media/drivers/rkisp1.rst | 43 +
.../driver-api/media/maintainer-entry-profile.rst | 2 +-
Documentation/driver-api/media/v4l2-subdev.rst | 14 +-
Documentation/driver-api/mmc/mmc-tools.rst | 4 +-
Documentation/driver-api/serial/n_gsm.rst | 71 +-
Documentation/driver-api/serial/tty.rst | 2 +-
Documentation/driver-api/thermal/sysfs-api.rst | 225 +-
.../driver-api/usb/writing_usb_driver.rst | 13 +-
.../core/thread-info-in-task/arch-support.txt | 2 +-
Documentation/filesystems/erofs.rst | 12 +-
Documentation/filesystems/ext4/orphan.rst | 44 +-
Documentation/filesystems/f2fs.rst | 21 +-
Documentation/filesystems/fscrypt.rst | 83 +-
Documentation/filesystems/index.rst | 1 -
Documentation/filesystems/locks.rst | 17 +-
Documentation/filesystems/netfs_library.rst | 2 +
Documentation/filesystems/nfs/index.rst | 1 +
Documentation/filesystems/nfs/reexport.rst | 113 +
Documentation/filesystems/proc.rst | 26 +-
Documentation/firmware-guide/acpi/index.rst | 1 +
Documentation/firmware-guide/acpi/non-d0-probe.rst | 78 +
Documentation/firmware-guide/acpi/osi.rst | 2 +-
Documentation/gpu/drm-kms-helpers.rst | 12 +
Documentation/gpu/drm-mm.rst | 84 +-
Documentation/gpu/i915.rst | 35 +-
Documentation/gpu/rfc/i915_parallel_execbuf.h | 122 -
Documentation/gpu/rfc/i915_scheduler.rst | 4 +-
Documentation/gpu/todo.rst | 30 +-
Documentation/hwmon/dell-smm-hwmon.rst | 3 +
Documentation/hwmon/index.rst | 1 +
Documentation/hwmon/lm25066.rst | 2 +
Documentation/hwmon/lm90.rst | 10 +
Documentation/hwmon/max6620.rst | 46 +
Documentation/hwmon/sysfs-interface.rst | 596 +-
Documentation/hwmon/tmp401.rst | 15 +-
Documentation/hwmon/tmp421.rst | 10 +
Documentation/kbuild/Kconfig.recursion-issue-02 | 2 +-
Documentation/kbuild/gcc-plugins.rst | 28 +-
Documentation/kbuild/makefiles.rst | 17 +-
Documentation/kernel-hacking/locking.rst | 14 +-
Documentation/leds/well-known-leds.txt | 14 +
Documentation/locking/ww-mutex-design.rst | 2 +-
Documentation/maintainer/pull-requests.rst | 2 +-
.../device_drivers/ethernet/mellanox/mlx5.rst | 60 +
Documentation/networking/devlink/bnxt.rst | 2 +
.../networking/devlink/devlink-region.rst | 4 +-
Documentation/networking/devlink/ice.rst | 13 +-
Documentation/networking/devlink/index.rst | 2 +
Documentation/networking/devlink/iosm.rst | 162 +
Documentation/networking/devlink/octeontx2.rst | 42 +
Documentation/networking/ethtool-netlink.rst | 81 +-
Documentation/networking/ip-sysctl.rst | 32 +-
Documentation/networking/ipvs-sysctl.rst | 11 +
Documentation/networking/mctp.rst | 69 +-
Documentation/networking/msg_zerocopy.rst | 2 +-
Documentation/process/coding-style.rst | 39 +-
Documentation/process/deprecated.rst | 5 +-
Documentation/process/index.rst | 1 +
Documentation/process/maintainer-handbooks.rst | 18 +
Documentation/process/maintainer-tip.rst | 785 +
Documentation/process/submitting-drivers.rst | 2 +-
Documentation/process/submitting-patches.rst | 42 +-
Documentation/scheduler/sched-bwc.rst | 84 +-
Documentation/security/SCTP.rst | 43 +-
Documentation/spi/spi-summary.rst | 8 -
Documentation/timers/no_hz.rst | 8 +-
Documentation/trace/histogram.rst | 15 +
Documentation/trace/kprobes.rst | 2 +-
Documentation/trace/timerlat-tracer.rst | 24 +-
.../translations/it_IT/kernel-hacking/locking.rst | 14 +-
.../it_IT/process/submitting-patches.rst | 4 +-
.../translations/ko_KR/memory-barriers.txt | 8 +-
Documentation/translations/zh_CN/PCI/index.rst | 36 +
Documentation/translations/zh_CN/PCI/pci.rst | 514 +
.../translations/zh_CN/admin-guide/index.rst | 2 +-
.../translations/zh_CN/admin-guide/sysrq.rst | 280 +
.../translations/zh_CN/core-api/assoc_array.rst | 473 +
.../translations/zh_CN/core-api/boot-time-mm.rst | 49 +
.../translations/zh_CN/core-api/genalloc.rst | 109 +
.../zh_CN/core-api/gfp_mask-from-fs-io.rst | 66 +
.../translations/zh_CN/core-api/index.rst | 22 +-
.../zh_CN/core-api/irq/irq-affinity.rst | 2 +-
Documentation/translations/zh_CN/core-api/kref.rst | 311 +
.../zh_CN/core-api/memory-allocation.rst | 138 +
.../translations/zh_CN/core-api/memory-hotplug.rst | 6 +-
.../translations/zh_CN/core-api/mm-api.rst | 110 +
.../zh_CN/core-api/unaligned-memory-access.rst | 229 +
.../translations/zh_CN/core-api/xarray.rst | 371 +
.../zh_CN/maintainer/pull-requests.rst | 2 +-
.../translations/zh_CN/process/5.Posting.rst | 8 +-
Documentation/translations/zh_CN/process/howto.rst | 10 +-
.../zh_CN/process/submitting-patches.rst | 8 +-
Documentation/translations/zh_TW/index.rst | 10 +-
.../zh_TW/process/submitting-patches.rst | 4 +-
Documentation/userspace-api/futex2.rst | 86 +
Documentation/userspace-api/index.rst | 1 +
Documentation/userspace-api/ioctl/cdrom.rst | 113 +-
Documentation/userspace-api/ioctl/ioctl-number.rst | 2 +
.../userspace-api/media/drivers/cx2341x-uapi.rst | 8 +-
Documentation/userspace-api/media/v4l/buffer.rst | 40 +-
.../userspace-api/media/v4l/ext-ctrls-codec.rst | 57 +
.../media/v4l/ext-ctrls-image-source.rst | 20 +
.../userspace-api/media/v4l/pixfmt-reserved.rst | 29 +-
.../userspace-api/media/v4l/pixfmt-yuv-planar.rst | 50 +-
.../userspace-api/media/v4l/vidioc-create-bufs.rst | 7 +-
.../userspace-api/media/v4l/vidioc-g-ctrl.rst | 3 +
.../userspace-api/media/v4l/vidioc-g-ext-ctrls.rst | 3 +
.../userspace-api/media/v4l/vidioc-queryctrl.rst | 6 +
.../userspace-api/media/v4l/vidioc-reqbufs.rst | 16 +-
.../userspace-api/media/videodev2.h.rst.exceptions | 2 +
Documentation/virt/kvm/api.rst | 255 +-
Documentation/virt/kvm/devices/vcpu.rst | 70 +
Documentation/virt/kvm/devices/xics.rst | 2 +-
Documentation/virt/kvm/devices/xive.rst | 2 +-
Documentation/virt/ne_overview.rst | 21 +-
.../virt/uml/user_mode_linux_howto_v2.rst | 119 +-
Documentation/vm/damon/design.rst | 29 +-
Documentation/vm/damon/faq.rst | 5 +-
Documentation/vm/damon/index.rst | 1 -
Documentation/vm/hmm.rst | 2 +-
Documentation/vm/index.rst | 26 +-
Documentation/vm/page_migration.rst | 2 +-
Documentation/vm/page_owner.rst | 23 +-
Documentation/w1/masters/w1-gpio.rst | 2 +-
Documentation/x86/entry_64.rst | 2 +-
Documentation/x86/index.rst | 1 +
Documentation/x86/orc-unwinder.rst | 4 +-
Documentation/x86/sgx.rst | 35 +
Documentation/x86/x86_64/machinecheck.rst | 56 +-
Documentation/x86/xstate.rst | 74 +
MAINTAINERS | 503 +-
Makefile | 90 +-
arch/Kconfig | 14 +
arch/alpha/Kbuild | 3 +
arch/alpha/Makefile | 3 -
arch/alpha/include/asm/processor.h | 2 +-
arch/alpha/include/uapi/asm/socket.h | 2 +
arch/alpha/kernel/audit.c | 10 +-
arch/alpha/kernel/core_irongate.c | 2 +-
arch/alpha/kernel/process.c | 5 +-
arch/alpha/kernel/traps.c | 4 +-
arch/arc/Kbuild | 3 +
arch/arc/Kconfig | 1 -
arch/arc/Makefile | 3 -
arch/arc/include/asm/cacheflush.h | 1 +
arch/arc/include/asm/kprobes.h | 2 +-
arch/arc/include/asm/processor.h | 2 +-
arch/arc/include/asm/ptrace.h | 5 +
arch/arc/kernel/irq.c | 10 +-
arch/arc/kernel/kprobes.c | 13 +-
arch/arc/kernel/process.c | 2 +-
arch/arc/kernel/stacktrace.c | 4 +-
arch/arc/mm/init.c | 6 +-
arch/arm/Kbuild | 3 +
arch/arm/Kconfig | 25 +-
arch/arm/Makefile | 35 +-
arch/arm/boot/compressed/decompress.c | 3 +
arch/arm/boot/compressed/fdt_check_mem_start.c | 48 +-
arch/arm/boot/compressed/string.c | 1 +
arch/arm/boot/dts/Makefile | 26 +-
arch/arm/boot/dts/am335x-pocketbeagle.dts | 1 +
arch/arm/boot/dts/arm-realview-eb.dtsi | 42 +-
arch/arm/boot/dts/arm-realview-pb1176.dts | 42 +-
arch/arm/boot/dts/arm-realview-pb11mp.dts | 48 +-
arch/arm/boot/dts/arm-realview-pbx.dtsi | 42 +-
arch/arm/boot/dts/armada-381-netgear-gs110emx.dts | 295 +
arch/arm/boot/dts/aspeed-bmc-amd-ethanolx.dts | 5 +
arch/arm/boot/dts/aspeed-bmc-ampere-mtjade.dts | 21 +-
arch/arm/boot/dts/aspeed-bmc-ibm-everest.dts | 883 +-
arch/arm/boot/dts/aspeed-bmc-ibm-rainier.dts | 1287 +-
arch/arm/boot/dts/aspeed-bmc-inspur-fp5280g2.dts | 9 +-
.../boot/dts/aspeed-bmc-inventec-transformers.dts | 328 +
arch/arm/boot/dts/aspeed-bmc-tyan-s7106.dts | 488 +
arch/arm/boot/dts/aspeed-g4.dtsi | 6 +
arch/arm/boot/dts/aspeed-g5.dtsi | 6 +
arch/arm/boot/dts/aspeed-g6.dtsi | 26 +
arch/arm/boot/dts/at91-lmu5000.dts | 147 +
arch/arm/boot/dts/at91-q5xr5.dts | 199 +
arch/arm/boot/dts/at91-sama5d27_som1.dtsi | 12 +-
arch/arm/boot/dts/at91-sama5d27_som1_ek.dts | 23 +-
arch/arm/boot/dts/at91-sama5d27_wlsom1.dtsi | 70 +
arch/arm/boot/dts/at91-sama5d2_icp.dts | 22 +-
arch/arm/boot/dts/at91-sama7g5ek.dts | 20 +
arch/arm/boot/dts/at91-tse850-3.dts | 2 +-
arch/arm/boot/dts/at91sam9260.dtsi | 2 +-
arch/arm/boot/dts/axp209.dtsi | 6 +-
arch/arm/boot/dts/axp22x.dtsi | 6 +-
arch/arm/boot/dts/axp81x.dtsi | 10 +-
arch/arm/boot/dts/bcm-nsp-ax.dtsi | 70 +
arch/arm/boot/dts/bcm-nsp.dtsi | 52 +-
arch/arm/boot/dts/bcm2711-rpi-4-b.dts | 38 +-
arch/arm/boot/dts/bcm2711-rpi-cm4-io.dts | 138 +
arch/arm/boot/dts/bcm2711-rpi-cm4.dtsi | 113 +
arch/arm/boot/dts/bcm2835-rpi-zero-w.dts | 31 +-
arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dts | 36 +-
arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts | 36 +-
arch/arm/boot/dts/bcm2837-rpi-3-b.dts | 36 +-
arch/arm/boot/dts/bcm283x-rpi-wifi-bt.dtsi | 34 +
arch/arm/boot/dts/bcm4708-netgear-r6250.dts | 39 +-
arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts | 37 +
arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts | 2 +-
arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts | 2 +-
arch/arm/boot/dts/bcm4709-linksys-ea9200.dts | 2 +-
arch/arm/boot/dts/bcm4709-netgear-r7000.dts | 2 +-
arch/arm/boot/dts/bcm4709-netgear-r8000.dts | 44 +-
arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts | 2 +-
arch/arm/boot/dts/bcm47094-asus-rt-ac88u.dts | 200 +
arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts | 42 +
arch/arm/boot/dts/bcm47094-linksys-panamera.dts | 2 +-
arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts | 37 +
arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts | 37 +
arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts | 2 +-
arch/arm/boot/dts/bcm47189-tenda-ac9.dts | 37 +
arch/arm/boot/dts/bcm53016-meraki-mr32.dts | 35 +-
arch/arm/boot/dts/bcm5301x.dtsi | 10 +-
arch/arm/boot/dts/bcm53573.dtsi | 18 +
arch/arm/boot/dts/bcm94708.dts | 2 +-
arch/arm/boot/dts/bcm94709.dts | 2 +-
arch/arm/boot/dts/bcm958522er.dts | 3 +-
arch/arm/boot/dts/bcm958525er.dts | 3 +-
arch/arm/boot/dts/bcm958525xmc.dts | 3 +-
arch/arm/boot/dts/bcm958622hr.dts | 3 +-
arch/arm/boot/dts/bcm958623hr.dts | 3 +-
arch/arm/boot/dts/bcm958625-meraki-alamo.dtsi | 281 +
arch/arm/boot/dts/bcm958625-meraki-kingpin.dtsi | 163 +
arch/arm/boot/dts/bcm958625-meraki-mx64-a0.dts | 25 +
arch/arm/boot/dts/bcm958625-meraki-mx64.dts | 24 +
arch/arm/boot/dts/bcm958625-meraki-mx64w-a0.dts | 33 +
arch/arm/boot/dts/bcm958625-meraki-mx64w.dts | 32 +
arch/arm/boot/dts/bcm958625-meraki-mx65.dts | 24 +
arch/arm/boot/dts/bcm958625-meraki-mx65w.dts | 32 +
.../arm/boot/dts/bcm958625-meraki-mx6x-common.dtsi | 129 +
arch/arm/boot/dts/bcm958625hr.dts | 3 +-
arch/arm/boot/dts/bcm958625k.dts | 3 +-
arch/arm/boot/dts/bcm988312hr.dts | 7 +-
arch/arm/boot/dts/dra7.dtsi | 19 +
arch/arm/boot/dts/e60k02.dtsi | 2 +-
arch/arm/boot/dts/e70k02.dtsi | 320 +
arch/arm/boot/dts/emev2-kzm9d.dts | 2 +-
arch/arm/boot/dts/exynos3250-rinato.dts | 1 +
arch/arm/boot/dts/exynos4210-i9100.dts | 1 +
arch/arm/boot/dts/exynos4210-origen.dts | 24 +-
arch/arm/boot/dts/exynos4210-trats.dts | 1 +
arch/arm/boot/dts/exynos4210-universal_c210.dts | 1 +
arch/arm/boot/dts/exynos4412-i9300.dts | 1 +
arch/arm/boot/dts/exynos4412-i9305.dts | 1 +
arch/arm/boot/dts/exynos4412-n710x.dts | 1 +
arch/arm/boot/dts/exynos4412-origen.dts | 14 +-
arch/arm/boot/dts/exynos4412-p4note-n8010.dts | 1 +
arch/arm/boot/dts/exynos4412-trats2.dts | 1 +
arch/arm/boot/dts/exynos5250-arndale.dts | 3 -
arch/arm/boot/dts/exynos5250-snow-rev5.dts | 1 +
arch/arm/boot/dts/exynos5250-snow.dts | 1 +
arch/arm/boot/dts/exynos5250-spring.dts | 1 +
arch/arm/boot/dts/exynos5250.dtsi | 1 -
arch/arm/boot/dts/exynos5420-peach-pit.dts | 1 +
arch/arm/boot/dts/exynos5800-peach-pi.dts | 1 +
arch/arm/boot/dts/gemini-dlink-dir-685.dts | 18 -
arch/arm/boot/dts/gemini-ns2502.dts | 148 +
arch/arm/boot/dts/gemini-sl93512r.dts | 18 -
arch/arm/boot/dts/gemini-sq201.dts | 18 -
arch/arm/boot/dts/gemini-ssi1328.dts | 138 +
arch/arm/boot/dts/gemini-wbd111.dts | 18 -
arch/arm/boot/dts/gemini-wbd222.dts | 18 -
arch/arm/boot/dts/gemini.dtsi | 33 +-
arch/arm/boot/dts/imx6dl-alti6p.dts | 2 +-
arch/arm/boot/dts/imx6dl-b1x5v2.dtsi | 1 -
arch/arm/boot/dts/imx6dl-prtrvt.dts | 2 -
arch/arm/boot/dts/imx6dl-skov-revc-lt2.dts | 1 +
arch/arm/boot/dts/imx6dl-yapp4-common.dtsi | 8 -
arch/arm/boot/dts/imx6q-skov-revc-lt2.dts | 1 +
arch/arm/boot/dts/imx6qdl-apalis.dtsi | 7 +-
arch/arm/boot/dts/imx6qdl-phytec-mira.dtsi | 31 +-
arch/arm/boot/dts/imx6qdl-phytec-phycore-som.dtsi | 12 +-
arch/arm/boot/dts/imx6qdl-skov-revc-lt2.dtsi | 99 +
arch/arm/boot/dts/imx6qdl-tqma6.dtsi | 2 +-
arch/arm/boot/dts/imx6qdl.dtsi | 7 +-
arch/arm/boot/dts/imx6qp-prtwd3.dts | 4 +-
arch/arm/boot/dts/imx6qp.dtsi | 2 +-
arch/arm/boot/dts/imx6sl-tolino-vision5.dts | 349 +
arch/arm/boot/dts/imx6sl.dtsi | 18 +-
arch/arm/boot/dts/imx6sll-kobo-librah2o.dts | 339 +
arch/arm/boot/dts/imx6sll.dtsi | 22 +-
arch/arm/boot/dts/imx6sx.dtsi | 6 +-
arch/arm/boot/dts/imx6ul-phytec-phycore-som.dtsi | 12 +-
arch/arm/boot/dts/imx6ul-phytec-segin.dtsi | 1 +
arch/arm/boot/dts/imx6ull-colibri-emmc-eval-v3.dts | 17 +
.../arm/boot/dts/imx6ull-colibri-emmc-nonwifi.dtsi | 185 +
arch/arm/boot/dts/imx6ull-colibri.dtsi | 32 +-
arch/arm/boot/dts/imx7-mba7.dtsi | 42 +-
arch/arm/boot/dts/imx7-tqma7.dtsi | 47 +-
arch/arm/boot/dts/imx7d-mba7.dts | 6 +-
arch/arm/boot/dts/imx7d-sdb.dts | 2 +-
arch/arm/boot/dts/imx7d-tqma7.dtsi | 4 +-
arch/arm/boot/dts/imx7d.dtsi | 7 +-
arch/arm/boot/dts/imx7s-mba7.dts | 6 +-
arch/arm/boot/dts/imx7s-tqma7.dtsi | 4 +-
arch/arm/boot/dts/integrator.dtsi | 23 +-
arch/arm/boot/dts/integratorap-im-pd1.dts | 9 +-
arch/arm/boot/dts/integratorap.dts | 15 +-
arch/arm/boot/dts/integratorcp.dts | 9 +-
arch/arm/boot/dts/intel-ixp42x-adi-coyote.dts | 2 +
arch/arm/boot/dts/intel-ixp42x-arcom-vulcan.dts | 2 +
arch/arm/boot/dts/intel-ixp42x-dlink-dsm-g600.dts | 2 +
arch/arm/boot/dts/intel-ixp42x-freecom-fsg-3.dts | 2 +
.../arm/boot/dts/intel-ixp42x-gateworks-gw2348.dts | 2 +
arch/arm/boot/dts/intel-ixp42x-iomega-nas100d.dts | 2 +
arch/arm/boot/dts/intel-ixp42x-ixdpg425.dts | 2 +
arch/arm/boot/dts/intel-ixp42x-linksys-nslu2.dts | 2 +
arch/arm/boot/dts/intel-ixp42x-linksys-wrv54g.dts | 2 +
arch/arm/boot/dts/intel-ixp42x-netgear-wg302v2.dts | 2 +
.../arm/boot/dts/intel-ixp43x-gateworks-gw2358.dts | 2 +
arch/arm/boot/dts/intel-ixp45x-ixp46x.dtsi | 8 +
.../boot/dts/intel-ixp4xx-reference-design.dtsi | 2 +
arch/arm/boot/dts/intel-ixp4xx.dtsi | 2 -
arch/arm/boot/dts/iwg20d-q7-common.dtsi | 2 +
arch/arm/boot/dts/ls1021a-qds.dts | 85 +-
arch/arm/boot/dts/ls1021a-tsn.dts | 4 +-
arch/arm/boot/dts/ls1021a-twr.dts | 63 +-
arch/arm/boot/dts/ls1021a.dtsi | 219 +-
arch/arm/boot/dts/mps2.dtsi | 10 +-
arch/arm/boot/dts/mstar-v7.dtsi | 9 +
arch/arm/boot/dts/mt7623.dtsi | 33 +
arch/arm/boot/dts/mt7623a.dtsi | 4 +
arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts | 25 +
arch/arm/boot/dts/mt7629-rfb.dts | 3 +-
arch/arm/boot/dts/mt7629.dtsi | 45 +-
arch/arm/boot/dts/omap-gpmc-smsc911x.dtsi | 4 +-
arch/arm/boot/dts/omap-gpmc-smsc9221.dtsi | 2 +-
arch/arm/boot/dts/omap-zoom-common.dtsi | 4 +-
arch/arm/boot/dts/omap2430-sdp.dts | 4 +-
arch/arm/boot/dts/omap3-cpu-thermal.dtsi | 2 +-
arch/arm/boot/dts/omap3-devkit8000-common.dtsi | 4 +-
arch/arm/boot/dts/omap3-gta04.dtsi | 23 +-
arch/arm/boot/dts/omap3-gta04a5.dts | 4 +-
arch/arm/boot/dts/omap3-overo-tobiduo-common.dtsi | 2 +-
arch/arm/boot/dts/omap3-sb-t35.dtsi | 4 +-
arch/arm/boot/dts/qcom-apq8026-lg-lenok.dts | 237 +
arch/arm/boot/dts/qcom-apq8060-dragonboard.dts | 10 +-
arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dts | 2 +-
arch/arm/boot/dts/qcom-apq8064-cm-qs600.dts | 6 +-
arch/arm/boot/dts/qcom-apq8064-ifc6410.dts | 6 +-
.../arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dts | 4 +-
arch/arm/boot/dts/qcom-apq8064.dtsi | 63 +-
arch/arm/boot/dts/qcom-apq8084.dtsi | 8 +-
arch/arm/boot/dts/qcom-ipq4019-ap.dk01.1-c1.dts | 2 +-
arch/arm/boot/dts/qcom-ipq4019-ap.dk01.1.dtsi | 1 -
arch/arm/boot/dts/qcom-ipq4019-ap.dk04.1-c1.dts | 2 +-
arch/arm/boot/dts/qcom-ipq4019-ap.dk04.1-c3.dts | 2 +-
arch/arm/boot/dts/qcom-ipq4019-ap.dk07.1-c1.dts | 2 +-
arch/arm/boot/dts/qcom-ipq4019-ap.dk07.1-c2.dts | 2 +-
arch/arm/boot/dts/qcom-ipq8064-ap148.dts | 2 +-
arch/arm/boot/dts/qcom-ipq8064-rb3011.dts | 8 +-
arch/arm/boot/dts/qcom-ipq8064.dtsi | 26 +-
arch/arm/boot/dts/qcom-mdm9615-wp8548.dtsi | 2 +-
arch/arm/boot/dts/qcom-mdm9615.dtsi | 16 +-
arch/arm/boot/dts/qcom-msm8226.dtsi | 263 +-
arch/arm/boot/dts/qcom-msm8660-surf.dts | 4 +-
arch/arm/boot/dts/qcom-msm8660.dtsi | 27 +-
.../boot/dts/qcom-msm8916-samsung-serranove.dts | 3 +
arch/arm/boot/dts/qcom-msm8916-smp.dtsi | 62 +
arch/arm/boot/dts/qcom-msm8960-cdp.dts | 4 +-
arch/arm/boot/dts/qcom-msm8960.dtsi | 4 +-
arch/arm/boot/dts/qcom-msm8974.dtsi | 16 +-
arch/arm/boot/dts/qcom-pm8226.dtsi | 27 +
arch/arm/boot/dts/qcom-pm8841.dtsi | 7 +-
arch/arm/boot/dts/qcom-pm8941.dtsi | 11 +-
arch/arm/boot/dts/qcom-pma8084.dtsi | 11 +-
arch/arm/boot/dts/qcom-sdx55.dtsi | 1 -
arch/arm/boot/dts/r7s72100-genmai.dts | 2 +
arch/arm/boot/dts/r7s72100-gr-peach.dts | 2 +
arch/arm/boot/dts/r7s72100-rskrza1.dts | 2 +
arch/arm/boot/dts/r7s9210-rza2mevb.dts | 21 +
arch/arm/boot/dts/r8a73a4-ape6evm.dts | 1 +
arch/arm/boot/dts/r8a7740-armadillo800eva.dts | 3 +
arch/arm/boot/dts/r8a7742-iwg21d-q7-dbcm-ca.dts | 2 +
arch/arm/boot/dts/r8a7742-iwg21d-q7.dts | 2 +
arch/arm/boot/dts/r8a7743-sk-rzg1m.dts | 4 +
arch/arm/boot/dts/r8a7745-iwg22d-sodimm.dts | 2 +
arch/arm/boot/dts/r8a7745-sk-rzg1e.dts | 4 +
arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts | 2 +
arch/arm/boot/dts/r8a7778-bockw.dts | 2 +-
arch/arm/boot/dts/r8a7779-marzen.dts | 2 +-
arch/arm/boot/dts/r8a7790-lager.dts | 2 +
arch/arm/boot/dts/r8a7790-stout.dts | 2 +
arch/arm/boot/dts/r8a7791-koelsch.dts | 2 +
arch/arm/boot/dts/r8a7791-porter.dts | 2 +
arch/arm/boot/dts/r8a7793-gose.dts | 2 +
arch/arm/boot/dts/r8a7794-alt.dts | 2 +
arch/arm/boot/dts/r8a7794-silk.dts | 2 +
arch/arm/boot/dts/rk3036.dtsi | 10 +-
arch/arm/boot/dts/rk3066a-mk808.dts | 27 +
arch/arm/boot/dts/rk3066a.dtsi | 32 +-
arch/arm/boot/dts/rk3188.dtsi | 13 +-
arch/arm/boot/dts/rk3229.dtsi | 2 +-
arch/arm/boot/dts/rk322x.dtsi | 14 +-
arch/arm/boot/dts/rk3288.dtsi | 22 +-
arch/arm/boot/dts/rv1108.dtsi | 16 +-
arch/arm/boot/dts/s5pv210-fascinate4g.dts | 1 +
arch/arm/boot/dts/s5pv210-galaxys.dts | 1 +
arch/arm/boot/dts/sama5d29.dtsi | 16 +
arch/arm/boot/dts/sama7g5.dtsi | 43 +
arch/arm/boot/dts/sh73a0-kzm9g.dts | 2 +-
arch/arm/boot/dts/socfpga_arria10_mercury_aa1.dts | 112 +
arch/arm/boot/dts/spear1310.dtsi | 6 -
arch/arm/boot/dts/spear1340.dtsi | 2 -
arch/arm/boot/dts/ste-ab8500.dtsi | 13 +-
arch/arm/boot/dts/ste-ab8505.dtsi | 13 +-
arch/arm/boot/dts/ste-href.dtsi | 6 +
arch/arm/boot/dts/ste-snowball.dts | 6 +
arch/arm/boot/dts/ste-ux500-samsung-codina.dts | 4 +
arch/arm/boot/dts/ste-ux500-samsung-gavini.dts | 4 +
arch/arm/boot/dts/ste-ux500-samsung-golden.dts | 4 +
arch/arm/boot/dts/ste-ux500-samsung-janice.dts | 7 +
arch/arm/boot/dts/ste-ux500-samsung-kyle.dts | 4 +
arch/arm/boot/dts/ste-ux500-samsung-skomer.dts | 38 +-
arch/arm/boot/dts/stm32mp13-pinctrl.dtsi | 64 +
arch/arm/boot/dts/stm32mp131.dtsi | 283 +
arch/arm/boot/dts/stm32mp133.dtsi | 37 +
arch/arm/boot/dts/stm32mp135.dtsi | 12 +
arch/arm/boot/dts/stm32mp135f-dk.dts | 56 +
arch/arm/boot/dts/stm32mp13xc.dtsi | 17 +
arch/arm/boot/dts/stm32mp13xf.dtsi | 17 +
arch/arm/boot/dts/stm32mp15-pinctrl.dtsi | 8 +-
arch/arm/boot/dts/stm32mp151.dtsi | 19 +-
arch/arm/boot/dts/stm32mp157c-odyssey.dts | 6 +
arch/arm/boot/dts/stm32mp15xx-dhcor-som.dtsi | 2 +-
arch/arm/boot/dts/stm32mp15xx-dkx.dtsi | 2 +-
arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts | 11 +-
arch/arm/boot/dts/sun4i-a10.dtsi | 11 +-
arch/arm/boot/dts/sun5i-a13.dtsi | 15 +-
arch/arm/boot/dts/sun6i-a31.dtsi | 44 +-
arch/arm/boot/dts/sun7i-a20-bananapi.dts | 17 +-
arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts | 2 +-
arch/arm/boot/dts/sun7i-a20.dtsi | 34 +-
arch/arm/boot/dts/sun8i-a33.dtsi | 4 +-
arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts | 2 +-
arch/arm/boot/dts/sun8i-a83t.dtsi | 4 +-
arch/arm/boot/dts/sun8i-h3.dtsi | 4 +-
arch/arm/boot/dts/sun8i-r40.dtsi | 39 +
arch/arm/boot/dts/sun8i-v3-sl631.dtsi | 2 +-
arch/arm/boot/dts/sun9i-a80-cubieboard4.dts | 2 +-
arch/arm/boot/dts/sunxi-libretech-all-h3-it.dtsi | 2 +-
arch/arm/boot/dts/tegra114.dtsi | 8 +-
arch/arm/boot/dts/tegra124.dtsi | 12 +-
arch/arm/boot/dts/tegra20-acer-a500-picasso.dts | 7 +-
arch/arm/boot/dts/tegra20-paz00.dts | 2 -
arch/arm/boot/dts/tegra20.dtsi | 13 +-
.../dts/tegra30-asus-nexus7-grouper-common.dtsi | 30 +-
arch/arm/boot/dts/tegra30-ouya.dts | 5 +-
arch/arm/boot/dts/tegra30.dtsi | 12 +-
arch/arm/boot/dts/versatile-ab-ib2.dts | 6 +-
arch/arm/boot/dts/versatile-ab.dts | 27 +-
arch/arm/common/scoop.c | 3 -
arch/arm/configs/aspeed_g4_defconfig | 1 +
arch/arm/configs/aspeed_g5_defconfig | 35 +-
arch/arm/configs/at91_dt_defconfig | 1 +
arch/arm/configs/exynos_defconfig | 1 +
arch/arm/configs/imx_v6_v7_defconfig | 48 +-
arch/arm/configs/lpc32xx_defconfig | 1 +
arch/arm/configs/multi_v5_defconfig | 1 +
arch/arm/configs/multi_v7_defconfig | 87 +-
arch/arm/configs/mvebu_v7_defconfig | 18 +-
arch/arm/configs/omap2plus_defconfig | 1 +
arch/arm/configs/qcom_defconfig | 1 +
arch/arm/configs/realview_defconfig | 1 +
arch/arm/configs/sama5_defconfig | 1 +
arch/arm/configs/shmobile_defconfig | 1 +
arch/arm/configs/sunxi_defconfig | 1 +
arch/arm/configs/tegra_defconfig | 1 +
arch/arm/configs/versatile_defconfig | 1 +
arch/arm/configs/vexpress_defconfig | 1 +
arch/arm/include/asm/arch_timer.h | 37 +-
arch/arm/include/asm/assembler.h | 29 +
arch/arm/include/asm/cacheflush.h | 1 +
arch/arm/include/asm/current.h | 55 +
arch/arm/include/asm/io.h | 1 +
arch/arm/include/asm/opcodes.h | 9 +-
arch/arm/include/asm/processor.h | 2 +-
arch/arm/include/asm/setup.h | 2 +-
arch/arm/include/asm/smp.h | 3 +-
arch/arm/include/asm/stackprotector.h | 2 -
arch/arm/include/asm/stacktrace.h | 9 +
arch/arm/include/asm/switch_to.h | 16 +
arch/arm/include/asm/syscall.h | 10 -
arch/arm/include/asm/thread_info.h | 26 +-
arch/arm/include/asm/tls.h | 10 +-
arch/arm/include/asm/uaccess.h | 4 +-
arch/arm/kernel/asm-offsets.c | 6 +-
arch/arm/kernel/devtree.c | 22 +-
arch/arm/kernel/entry-armv.S | 10 +-
arch/arm/kernel/entry-common.S | 1 +
arch/arm/kernel/entry-header.S | 8 +
arch/arm/kernel/ftrace.c | 5 -
arch/arm/kernel/head-common.S | 5 +
arch/arm/kernel/head-nommu.S | 1 +
arch/arm/kernel/head.S | 9 +-
arch/arm/kernel/irq.c | 14 +-
arch/arm/kernel/process.c | 12 +-
arch/arm/kernel/return_address.c | 4 +
arch/arm/kernel/smp.c | 13 +-
arch/arm/kernel/stacktrace.c | 17 +-
arch/arm/kernel/traps.c | 2 +-
arch/arm/kernel/vmlinux-xip.lds.S | 8 +-
arch/arm/kernel/vmlinux.lds.S | 2 +
arch/arm/mach-at91/Kconfig | 9 +
arch/arm/mach-bcm/Kconfig | 4 -
arch/arm/mach-bcm/bcm63xx_pmb.c | 6 +-
arch/arm/mach-ep93xx/clock.c | 975 +-
arch/arm/mach-ep93xx/core.c | 2 +-
arch/arm/mach-ep93xx/soc.h | 42 +-
arch/arm/mach-exynos/Kconfig | 2 -
arch/arm/mach-hisi/platmcpm.c | 2 +-
arch/arm/mach-imx/avic.c | 2 +-
arch/arm/mach-imx/pm-imx6.c | 2 +
arch/arm/mach-imx/tzic.c | 2 +-
arch/arm/mach-integrator/Kconfig | 2 +-
arch/arm/mach-omap1/irq.c | 2 +-
arch/arm/mach-omap2/cm-regbits-44xx.h | 101 -
arch/arm/mach-omap2/cm1_44xx.h | 174 -
arch/arm/mach-omap2/cm1_54xx.h | 168 -
arch/arm/mach-omap2/cm1_7xx.h | 263 -
arch/arm/mach-omap2/cm2_44xx.h | 386 -
arch/arm/mach-omap2/cm2_54xx.h | 325 -
arch/arm/mach-omap2/cm2_7xx.h | 449 -
arch/arm/mach-omap2/cm33xx.h | 280 -
arch/arm/mach-omap2/omap_hwmod.c | 6 +-
arch/arm/mach-omap2/pdata-quirks.c | 36 -
arch/arm/mach-omap2/powerdomain.c | 6 +-
arch/arm/mach-omap2/prcm43xx.h | 94 -
arch/arm/mach-omap2/prm33xx.h | 40 -
arch/arm/mach-omap2/prm44xx.h | 630 -
arch/arm/mach-omap2/prm54xx.h | 358 -
arch/arm/mach-omap2/prm7xx.h | 613 -
arch/arm/mach-omap2/scrm44xx.h | 141 -
arch/arm/mach-omap2/scrm54xx.h | 228 -
arch/arm/mach-qcom/Kconfig | 10 +
arch/arm/mach-qcom/platsmp.c | 72 +
arch/arm/mach-realview/Kconfig | 2 +-
arch/arm/mach-s3c/irq-s3c24xx.c | 24 +-
arch/arm/mach-s3c/mach-mini6410.c | 2 +-
arch/arm/mach-s5pv210/Kconfig | 1 -
arch/arm/mach-sa1100/assabet.c | 24 +-
arch/arm/mach-stm32/Kconfig | 8 +
arch/arm/mach-stm32/board-dt.c | 3 +
arch/arm/mach-sunxi/platsmp.c | 4 +-
arch/arm/mach-sunxi/sunxi.c | 4 +-
arch/arm/mach-ux500/Kconfig | 1 +
arch/arm/mach-versatile/Kconfig | 2 +-
arch/arm/mach-vexpress/Kconfig | 2 +-
arch/arm/mm/Kconfig | 4 +-
arch/arm/mm/context.c | 2 +-
arch/arm/mm/fault.c | 119 +-
arch/arm/mm/fault.h | 4 +
arch/arm/mm/init.c | 2 +-
arch/arm/mm/ioremap.c | 6 +
arch/arm/mm/kasan_init.c | 4 +-
arch/arm/mm/mmu.c | 4 +-
arch/arm/mm/proc-macros.S | 4 +-
arch/arm/net/bpf_jit_32.c | 5 -
arch/arm/probes/kprobes/core.c | 45 +-
arch/arm/probes/kprobes/opt-arm.c | 7 +-
arch/arm/probes/kprobes/test-core.h | 2 +-
arch/arm/tools/syscall.tbl | 1 +
arch/arm/xen/enlighten.c | 1 -
arch/arm/xen/hypercall.S | 1 -
arch/arm64/Kbuild | 3 +
arch/arm64/Kconfig | 134 +-
arch/arm64/Kconfig.platforms | 6 -
arch/arm64/Makefile | 7 -
arch/arm64/boot/dts/allwinner/axp803.dtsi | 10 +-
arch/arm64/boot/dts/allwinner/sun50i-a100.dtsi | 6 +-
.../boot/dts/allwinner/sun50i-a64-cpu-opp.dtsi | 2 +-
.../boot/dts/allwinner/sun50i-a64-orangepi-win.dts | 2 +-
.../boot/dts/allwinner/sun50i-a64-pinetab.dts | 28 +-
.../boot/dts/allwinner/sun50i-a64-teres-i.dts | 3 +-
arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 17 +
.../boot/dts/allwinner/sun50i-h5-cpu-opp.dtsi | 2 +-
.../boot/dts/allwinner/sun50i-h5-nanopi-neo2.dts | 2 +-
.../boot/dts/allwinner/sun50i-h5-nanopi-r1s-h5.dts | 9 +-
arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi | 2 +-
.../boot/dts/allwinner/sun50i-h6-cpu-opp.dtsi | 2 +-
arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 8 +-
arch/arm64/boot/dts/amlogic/Makefile | 3 +
.../dts/amlogic/meson-axg-jethome-jethub-j100.dts | 362 +
.../boot/dts/amlogic/meson-g12a-radxa-zero.dts | 405 +
arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts | 2 +-
arch/arm64/boot/dts/amlogic/meson-g12a-u200.dts | 2 +-
arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts | 2 +-
.../boot/dts/amlogic/meson-g12b-khadas-vim3.dtsi | 4 +-
.../boot/dts/amlogic/meson-g12b-odroid-n2.dtsi | 6 +-
arch/arm64/boot/dts/amlogic/meson-g12b-w400.dtsi | 4 +-
.../amlogic/meson-gxl-s905w-jethome-jethub-j80.dts | 241 +
arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts | 61 +
.../boot/dts/amlogic/meson-sm1-bananapi-m5.dts | 2 +-
.../boot/dts/amlogic/meson-sm1-khadas-vim3l.dts | 2 +-
arch/arm64/boot/dts/amlogic/meson-sm1-odroid.dtsi | 6 +-
arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts | 2 +-
arch/arm64/boot/dts/apple/t8103-j274.dts | 23 +
arch/arm64/boot/dts/apple/t8103.dtsi | 207 +
arch/arm64/boot/dts/arm/juno-motherboard.dtsi | 27 +-
arch/arm64/boot/dts/broadcom/Makefile | 1 +
.../arm64/boot/dts/broadcom/bcm2711-rpi-cm4-io.dts | 2 +
arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi | 16 +-
arch/arm64/boot/dts/exynos/Makefile | 3 +-
arch/arm64/boot/dts/exynos/exynos5433-bus.dtsi | 10 +-
arch/arm64/boot/dts/exynos/exynos5433-tm2.dts | 1 +
arch/arm64/boot/dts/exynos/exynos5433-tm2e.dts | 1 +
arch/arm64/boot/dts/exynos/exynos5433.dtsi | 6 +-
.../boot/dts/exynos/exynosautov9-pinctrl.dtsi | 1189 +
arch/arm64/boot/dts/exynos/exynosautov9-sadk.dts | 56 +
arch/arm64/boot/dts/exynos/exynosautov9.dtsi | 306 +
arch/arm64/boot/dts/freescale/Makefile | 4 +
arch/arm64/boot/dts/freescale/fsl-ls1012a-rdb.dts | 1 +
.../freescale/fsl-ls1028a-kontron-sl28-var1.dts | 60 +-
.../freescale/fsl-ls1028a-kontron-sl28-var2.dts | 17 +-
.../freescale/fsl-ls1028a-kontron-sl28-var4.dts | 49 +-
.../dts/freescale/fsl-ls1028a-kontron-sl28.dts | 31 +-
arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts | 10 +-
arch/arm64/boot/dts/freescale/fsl-ls1028a-rdb.dts | 19 +-
arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi | 72 +-
arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 40 +-
arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi | 40 +-
.../dts/freescale/fsl-lx2160a-bluebox3-rev-a.dts | 34 +
.../boot/dts/freescale/fsl-lx2160a-bluebox3.dts | 658 +
arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi | 24 +-
.../boot/dts/freescale/imx8mm-kontron-n801x-s.dts | 40 +-
.../dts/freescale/imx8mm-kontron-n801x-som.dtsi | 12 +-
.../boot/dts/freescale/imx8mm-venice-gw71xx.dtsi | 2 +-
.../boot/dts/freescale/imx8mm-venice-gw72xx.dtsi | 2 +-
.../boot/dts/freescale/imx8mm-venice-gw73xx.dtsi | 2 +-
.../boot/dts/freescale/imx8mm-venice-gw7901.dts | 24 +
arch/arm64/boot/dts/freescale/imx8mm.dtsi | 180 +
arch/arm64/boot/dts/freescale/imx8mp.dtsi | 2 +-
arch/arm64/boot/dts/freescale/imx8mq-librem5.dtsi | 46 +-
.../boot/dts/freescale/imx8mq-mnt-reform2.dts | 1 +
.../arm64/boot/dts/freescale/imx8mq-zii-ultra.dtsi | 2 +
arch/arm64/boot/dts/freescale/imx8mq.dtsi | 10 +-
arch/arm64/boot/dts/freescale/s32g2.dtsi | 124 +
arch/arm64/boot/dts/freescale/s32g274a-evb.dts | 34 +
arch/arm64/boot/dts/freescale/s32g274a-rdb2.dts | 40 +
arch/arm64/boot/dts/hisilicon/hi3660.dtsi | 8 +-
arch/arm64/boot/dts/hisilicon/hi3670-hikey970.dts | 22 +-
arch/arm64/boot/dts/hisilicon/hi3670.dtsi | 2 +-
arch/arm64/boot/dts/hisilicon/hi6220.dtsi | 4 +-
arch/arm64/boot/dts/hisilicon/hikey970-pmic.dtsi | 86 +
arch/arm64/boot/dts/marvell/Makefile | 1 +
.../boot/dts/marvell/armada-7040-mochabin.dts | 458 +
arch/arm64/boot/dts/mediatek/mt2712e.dtsi | 97 +-
arch/arm64/boot/dts/mediatek/mt6358.dtsi | 1 +
.../boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts | 16 +-
arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts | 6 +-
arch/arm64/boot/dts/mediatek/mt7622.dtsi | 112 +-
arch/arm64/boot/dts/mediatek/mt8173.dtsi | 2 +
.../mt8183-kukui-audio-da7219-max98357a.dtsi | 13 +
.../mt8183-kukui-audio-da7219-rt1015p.dtsi | 13 +
.../dts/mediatek/mt8183-kukui-audio-da7219.dtsi | 54 +
.../dts/mediatek/mt8183-kukui-audio-max98357a.dtsi | 13 +
.../dts/mediatek/mt8183-kukui-audio-rt1015p.dtsi | 13 +
.../mt8183-kukui-audio-ts3a227e-max98357a.dtsi | 13 +
.../mt8183-kukui-audio-ts3a227e-rt1015p.dtsi | 13 +
.../dts/mediatek/mt8183-kukui-audio-ts3a227e.dtsi | 32 +
.../dts/mediatek/mt8183-kukui-jacuzzi-burnet.dts | 1 +
.../dts/mediatek/mt8183-kukui-jacuzzi-damu.dts | 1 +
.../dts/mediatek/mt8183-kukui-jacuzzi-fennel.dtsi | 1 +
.../mt8183-kukui-jacuzzi-juniper-sku16.dts | 1 +
.../dts/mediatek/mt8183-kukui-jacuzzi-kappa.dts | 1 +
.../dts/mediatek/mt8183-kukui-jacuzzi-kenzo.dts | 1 +
.../mediatek/mt8183-kukui-jacuzzi-willow-sku0.dts | 1 +
.../mediatek/mt8183-kukui-jacuzzi-willow-sku1.dts | 1 +
.../boot/dts/mediatek/mt8183-kukui-kakadu.dts | 1 +
.../boot/dts/mediatek/mt8183-kukui-kodama.dtsi | 1 +
.../boot/dts/mediatek/mt8183-kukui-krane.dtsi | 5 +
arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi | 67 +-
arch/arm64/boot/dts/mediatek/mt8183.dtsi | 99 +-
arch/arm64/boot/dts/mediatek/mt8192.dtsi | 163 +
arch/arm64/boot/dts/nvidia/tegra132-norrin.dts | 2 -
arch/arm64/boot/dts/nvidia/tegra132.dtsi | 12 +-
arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts | 1554 +-
.../dts/nvidia/tegra186-p3509-0000+p3636-0001.dts | 506 +-
arch/arm64/boot/dts/nvidia/tegra186.dtsi | 136 +
arch/arm64/boot/dts/nvidia/tegra194-p2972-0000.dts | 1495 +-
.../arm64/boot/dts/nvidia/tegra194-p3509-0000.dtsi | 1522 +-
arch/arm64/boot/dts/nvidia/tegra194.dtsi | 209 +-
arch/arm64/boot/dts/nvidia/tegra210-p2371-2180.dts | 876 +
arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts | 876 +
arch/arm64/boot/dts/nvidia/tegra210.dtsi | 81 +-
arch/arm64/boot/dts/qcom/Makefile | 12 +
arch/arm64/boot/dts/qcom/apq8016-sbc.dts | 832 +-
arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi | 826 -
.../apq8094-sony-xperia-kitakami-karin_windy.dts | 1 +
arch/arm64/boot/dts/qcom/apq8096-db820c.dts | 1070 +-
arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi | 1105 -
arch/arm64/boot/dts/qcom/apq8096-ifc6640.dts | 3 -
arch/arm64/boot/dts/qcom/ipq6018.dtsi | 93 +-
arch/arm64/boot/dts/qcom/ipq8074-hk01.dts | 6 +
arch/arm64/boot/dts/qcom/ipq8074.dtsi | 92 +-
.../boot/dts/qcom/msm8916-alcatel-idol347.dts | 1 +
arch/arm64/boot/dts/qcom/msm8916-asus-z00l.dts | 126 +
arch/arm64/boot/dts/qcom/msm8916-huawei-g7.dts | 1 +
.../boot/dts/qcom/msm8916-longcheer-l8150.dts | 63 +-
.../boot/dts/qcom/msm8916-longcheer-l8910.dts | 1 +
arch/arm64/boot/dts/qcom/msm8916-mtp.dts | 15 +-
arch/arm64/boot/dts/qcom/msm8916-mtp.dtsi | 21 -
.../boot/dts/qcom/msm8916-samsung-a3u-eur.dts | 1 +
.../boot/dts/qcom/msm8916-samsung-a5u-eur.dts | 1 +
.../boot/dts/qcom/msm8916-samsung-serranove.dts | 534 +
.../boot/dts/qcom/msm8916-wingtech-wt88047.dts | 1 +
arch/arm64/boot/dts/qcom/msm8916.dtsi | 89 +-
.../boot/dts/qcom/msm8992-bullhead-rev-101.dts | 2 +
.../qcom/msm8992-msft-lumia-octagon-talkman.dts | 1 +
arch/arm64/boot/dts/qcom/msm8992-xiaomi-libra.dts | 2 +
.../arm64/boot/dts/qcom/msm8994-angler-rev-101.dts | 1 +
.../qcom/msm8994-msft-lumia-octagon-cityman.dts | 1 +
.../dts/qcom/msm8994-sony-xperia-kitakami-ivy.dts | 1 +
.../qcom/msm8994-sony-xperia-kitakami-karin.dts | 1 +
.../qcom/msm8994-sony-xperia-kitakami-satsuki.dts | 1 +
.../qcom/msm8994-sony-xperia-kitakami-sumire.dts | 1 +
.../qcom/msm8994-sony-xperia-kitakami-suzuran.dts | 1 +
arch/arm64/boot/dts/qcom/msm8994.dtsi | 2 +-
arch/arm64/boot/dts/qcom/msm8996-mtp.dts | 24 +-
arch/arm64/boot/dts/qcom/msm8996-mtp.dtsi | 30 -
.../dts/qcom/msm8996-sony-xperia-tone-dora.dts | 1 +
.../dts/qcom/msm8996-sony-xperia-tone-kagura.dts | 1 +
.../dts/qcom/msm8996-sony-xperia-tone-keyaki.dts | 1 +
.../boot/dts/qcom/msm8996-sony-xperia-tone.dtsi | 1 +
.../arm64/boot/dts/qcom/msm8996-xiaomi-common.dtsi | 673 +
arch/arm64/boot/dts/qcom/msm8996-xiaomi-gemini.dts | 465 +
.../arm64/boot/dts/qcom/msm8996-xiaomi-scorpio.dts | 432 +
arch/arm64/boot/dts/qcom/msm8996.dtsi | 96 +-
.../boot/dts/qcom/msm8998-asus-novago-tp370ql.dts | 1 +
arch/arm64/boot/dts/qcom/msm8998-clamshell.dtsi | 2 +
arch/arm64/boot/dts/qcom/msm8998-fxtec-pro1.dts | 320 +
arch/arm64/boot/dts/qcom/msm8998-hp-envy-x2.dts | 1 +
.../boot/dts/qcom/msm8998-lenovo-miix-630.dts | 1 +
arch/arm64/boot/dts/qcom/msm8998-mtp.dtsi | 4 -
.../boot/dts/qcom/msm8998-oneplus-cheeseburger.dts | 1 +
.../boot/dts/qcom/msm8998-oneplus-common.dtsi | 4 -
.../boot/dts/qcom/msm8998-oneplus-dumpling.dts | 1 +
.../dts/qcom/msm8998-sony-xperia-yoshino-lilac.dts | 31 +
.../dts/qcom/msm8998-sony-xperia-yoshino-maple.dts | 55 +
.../qcom/msm8998-sony-xperia-yoshino-poplar.dts | 36 +
.../boot/dts/qcom/msm8998-sony-xperia-yoshino.dtsi | 670 +
arch/arm64/boot/dts/qcom/msm8998.dtsi | 223 +-
arch/arm64/boot/dts/qcom/pm6150l.dtsi | 1 +
arch/arm64/boot/dts/qcom/pm6350.dtsi | 54 +
arch/arm64/boot/dts/qcom/pm660.dtsi | 5 +-
arch/arm64/boot/dts/qcom/pm660l.dtsi | 7 -
arch/arm64/boot/dts/qcom/pm8916.dtsi | 18 +-
arch/arm64/boot/dts/qcom/pm8994.dtsi | 13 +-
arch/arm64/boot/dts/qcom/pmi8994.dtsi | 5 +-
arch/arm64/boot/dts/qcom/pmi8998.dtsi | 12 +
arch/arm64/boot/dts/qcom/pmk8350.dtsi | 1 +
arch/arm64/boot/dts/qcom/qcs404.dtsi | 7 +-
arch/arm64/boot/dts/qcom/qrb5165-rb5.dts | 4 +-
arch/arm64/boot/dts/qcom/sa8155p-adp.dts | 12 +-
.../boot/dts/qcom/sc7180-trogdor-coachz-r1.dts | 14 +
.../arm64/boot/dts/qcom/sc7180-trogdor-coachz.dtsi | 3 +-
.../boot/dts/qcom/sc7180-trogdor-homestar-r2.dts | 20 +
.../boot/dts/qcom/sc7180-trogdor-homestar-r3.dts | 15 +
.../boot/dts/qcom/sc7180-trogdor-homestar.dtsi | 336 +
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor.dtsi | 13 +
.../boot/dts/qcom/sc7180-trogdor-lte-sku.dtsi | 11 +
.../dts/qcom/sc7180-trogdor-parade-ps8640.dtsi | 109 +
.../boot/dts/qcom/sc7180-trogdor-pompom-r1.dts | 8 +
.../boot/dts/qcom/sc7180-trogdor-pompom-r2.dts | 8 +
.../arm64/boot/dts/qcom/sc7180-trogdor-pompom.dtsi | 9 +-
arch/arm64/boot/dts/qcom/sc7180-trogdor-r1.dts | 1 +
.../boot/dts/qcom/sc7180-trogdor-ti-sn65dsi86.dtsi | 90 +
arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi | 101 +-
arch/arm64/boot/dts/qcom/sc7180.dtsi | 85 +-
arch/arm64/boot/dts/qcom/sc7280-herobrine.dts | 14 +
arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi | 1412 +
arch/arm64/boot/dts/qcom/sc7280-idp.dts | 12 +
arch/arm64/boot/dts/qcom/sc7280-idp.dtsi | 271 +-
arch/arm64/boot/dts/qcom/sc7280-idp2.dts | 8 +
arch/arm64/boot/dts/qcom/sc7280.dtsi | 3562 +-
.../dts/qcom/sdm630-sony-xperia-ganges-kirin.dts | 1 +
.../dts/qcom/sdm630-sony-xperia-nile-discovery.dts | 1 +
.../dts/qcom/sdm630-sony-xperia-nile-pioneer.dts | 1 +
.../dts/qcom/sdm630-sony-xperia-nile-voyager.dts | 1 +
.../boot/dts/qcom/sdm630-sony-xperia-nile.dtsi | 8 +-
arch/arm64/boot/dts/qcom/sdm630.dtsi | 58 +-
.../arm64/boot/dts/qcom/sdm660-xiaomi-lavender.dts | 1 +
arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi | 17 +-
arch/arm64/boot/dts/qcom/sdm845-db845c.dts | 16 +-
arch/arm64/boot/dts/qcom/sdm845-mtp.dts | 18 +-
.../arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi | 26 +-
.../boot/dts/qcom/sdm845-oneplus-enchilada.dts | 1 +
arch/arm64/boot/dts/qcom/sdm845-oneplus-fajita.dts | 1 +
.../boot/dts/qcom/sdm845-xiaomi-beryllium.dts | 19 +-
arch/arm64/boot/dts/qcom/sdm845.dtsi | 243 +-
.../boot/dts/qcom/sdm850-lenovo-yoga-c630.dts | 21 +-
.../dts/qcom/sm6125-sony-xperia-seine-pdx201.dts | 1 +
arch/arm64/boot/dts/qcom/sm6125.dtsi | 59 +-
.../dts/qcom/sm6350-sony-xperia-lena-pdx213.dts | 58 +
arch/arm64/boot/dts/qcom/sm6350.dtsi | 965 +
arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts | 320 +
arch/arm64/boot/dts/qcom/sm7225.dtsi | 16 +
arch/arm64/boot/dts/qcom/sm8150-hdk.dts | 2 -
.../boot/dts/qcom/sm8150-microsoft-surface-duo.dts | 3 +-
arch/arm64/boot/dts/qcom/sm8150-mtp.dts | 2 -
.../dts/qcom/sm8150-sony-xperia-kumano-bahamut.dts | 1 +
.../dts/qcom/sm8150-sony-xperia-kumano-griffin.dts | 1 +
arch/arm64/boot/dts/qcom/sm8150.dtsi | 161 +-
arch/arm64/boot/dts/qcom/sm8250-hdk.dts | 2 -
arch/arm64/boot/dts/qcom/sm8250-mtp.dts | 2 -
.../dts/qcom/sm8250-sony-xperia-edo-pdx203.dts | 1 +
.../dts/qcom/sm8250-sony-xperia-edo-pdx206.dts | 1 +
arch/arm64/boot/dts/qcom/sm8250.dtsi | 55 +-
arch/arm64/boot/dts/qcom/sm8350-hdk.dts | 2 -
arch/arm64/boot/dts/qcom/sm8350-mtp.dts | 6 +-
arch/arm64/boot/dts/qcom/sm8350.dtsi | 302 +-
arch/arm64/boot/dts/renesas/Makefile | 2 +
.../arm64/boot/dts/renesas/beacon-renesom-som.dtsi | 3 +
arch/arm64/boot/dts/renesas/cat875.dtsi | 2 +
arch/arm64/boot/dts/renesas/draak.dtsi | 686 +
arch/arm64/boot/dts/renesas/ebisu.dtsi | 803 +
arch/arm64/boot/dts/renesas/hihope-rzg2-ex.dtsi | 2 +
arch/arm64/boot/dts/renesas/r8a77961.dtsi | 11 +
arch/arm64/boot/dts/renesas/r8a77970-eagle.dts | 4 +
arch/arm64/boot/dts/renesas/r8a77970-v3msk.dts | 4 +
arch/arm64/boot/dts/renesas/r8a77980-condor.dts | 4 +
arch/arm64/boot/dts/renesas/r8a77980-v3hsk.dts | 4 +
arch/arm64/boot/dts/renesas/r8a77990-ebisu.dts | 788 +-
arch/arm64/boot/dts/renesas/r8a77995-draak.dts | 671 +-
.../boot/dts/renesas/r8a779a0-falcon-cpu.dtsi | 70 +
arch/arm64/boot/dts/renesas/r8a779a0-falcon.dts | 2 +
arch/arm64/boot/dts/renesas/r8a779a0.dtsi | 1458 +
arch/arm64/boot/dts/renesas/r8a779m0.dtsi | 12 +
arch/arm64/boot/dts/renesas/r8a779m1.dtsi | 9 +
arch/arm64/boot/dts/renesas/r8a779m2.dtsi | 12 +
arch/arm64/boot/dts/renesas/r8a779m3.dtsi | 9 +
arch/arm64/boot/dts/renesas/r8a779m4.dtsi | 12 +
.../boot/dts/renesas/r8a779m5-salvator-xs.dts | 36 +
arch/arm64/boot/dts/renesas/r8a779m5.dtsi | 21 +
arch/arm64/boot/dts/renesas/r8a779m6.dtsi | 12 +
arch/arm64/boot/dts/renesas/r8a779m7.dtsi | 12 +
arch/arm64/boot/dts/renesas/r8a779m8.dtsi | 12 +
arch/arm64/boot/dts/renesas/r9a07g044.dtsi | 337 +
arch/arm64/boot/dts/renesas/r9a07g044l2-smarc.dts | 7 +-
arch/arm64/boot/dts/renesas/rzg2l-smarc-som.dtsi | 275 +
arch/arm64/boot/dts/renesas/rzg2l-smarc.dtsi | 292 +-
arch/arm64/boot/dts/renesas/salvator-common.dtsi | 56 +-
arch/arm64/boot/dts/renesas/ulcb.dtsi | 2 +
arch/arm64/boot/dts/rockchip/Makefile | 6 +
arch/arm64/boot/dts/rockchip/px30-evb.dts | 52 +
arch/arm64/boot/dts/rockchip/px30.dtsi | 126 +-
arch/arm64/boot/dts/rockchip/rk3308.dtsi | 49 +-
arch/arm64/boot/dts/rockchip/rk3318-a95x-z2.dts | 3 -
arch/arm64/boot/dts/rockchip/rk3326-odroid-go2.dts | 28 +-
arch/arm64/boot/dts/rockchip/rk3328-roc-pc.dts | 110 +
arch/arm64/boot/dts/rockchip/rk3328-rock64.dts | 2 +-
arch/arm64/boot/dts/rockchip/rk3328.dtsi | 17 +-
arch/arm64/boot/dts/rockchip/rk3368-lion.dtsi | 47 +-
arch/arm64/boot/dts/rockchip/rk3368.dtsi | 191 +-
arch/arm64/boot/dts/rockchip/rk3399-gru-bob.dts | 1 +
.../boot/dts/rockchip/rk3399-gru-chromebook.dtsi | 176 +
arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dts | 1 +
.../boot/dts/rockchip/rk3399-gru-scarlet-dumo.dts | 41 +
.../boot/dts/rockchip/rk3399-gru-scarlet.dtsi | 182 +
arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi | 4 +-
.../boot/dts/rockchip/rk3399-kobol-helios64.dts | 36 +
arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi | 6 +-
arch/arm64/boot/dts/rockchip/rk3399-opp.dtsi | 6 +-
.../boot/dts/rockchip/rk3399-pinebook-pro.dts | 7 +-
.../arm64/boot/dts/rockchip/rk3399-roc-pc-plus.dts | 218 +
arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi | 54 +
.../boot/dts/rockchip/rk3399-rock-pi-4a-plus.dts | 14 +
.../boot/dts/rockchip/rk3399-rock-pi-4b-plus.dts | 47 +
arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dtsi | 29 +
arch/arm64/boot/dts/rockchip/rk3399.dtsi | 116 +-
arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts | 548 +
arch/arm64/boot/dts/rockchip/rk3566.dtsi | 20 +
arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts | 313 +
arch/arm64/boot/dts/rockchip/rk3568-pinctrl.dtsi | 9 +
arch/arm64/boot/dts/rockchip/rk3568.dtsi | 644 +-
arch/arm64/boot/dts/rockchip/rk356x.dtsi | 1145 +
arch/arm64/boot/dts/ti/Makefile | 4 +-
arch/arm64/boot/dts/ti/k3-am64-main.dtsi | 280 +
arch/arm64/boot/dts/ti/k3-am64-mcu.dtsi | 8 +
arch/arm64/boot/dts/ti/k3-am64.dtsi | 2 +
arch/arm64/boot/dts/ti/k3-am642-evm.dts | 8 +
arch/arm64/boot/dts/ti/k3-am642-sk.dts | 8 +
.../boot/dts/ti/k3-am65-iot2050-common-pg1.dtsi | 46 +
.../boot/dts/ti/k3-am65-iot2050-common-pg2.dtsi | 51 +
arch/arm64/boot/dts/ti/k3-am65-iot2050-common.dtsi | 39 +-
arch/arm64/boot/dts/ti/k3-am65-main.dtsi | 8 +-
arch/arm64/boot/dts/ti/k3-am65-wakeup.dtsi | 4 -
arch/arm64/boot/dts/ti/k3-am65.dtsi | 2 +
.../dts/ti/k3-am6528-iot2050-basic-common.dtsi | 60 +
.../boot/dts/ti/k3-am6528-iot2050-basic-pg2.dts | 24 +
arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dts | 56 +-
arch/arm64/boot/dts/ti/k3-am654.dtsi | 4 +
.../dts/ti/k3-am6548-iot2050-advanced-common.dtsi | 56 +
.../boot/dts/ti/k3-am6548-iot2050-advanced-pg2.dts | 29 +
.../boot/dts/ti/k3-am6548-iot2050-advanced.dts | 50 +-
.../boot/dts/ti/k3-j7200-common-proc-board.dts | 3 +
arch/arm64/boot/dts/ti/k3-j7200-main.dtsi | 7 +-
arch/arm64/boot/dts/ti/k3-j7200.dtsi | 2 +
.../boot/dts/ti/k3-j721e-common-proc-board.dts | 3 +
arch/arm64/boot/dts/ti/k3-j721e-main.dtsi | 16 +-
arch/arm64/boot/dts/ti/k3-j721e-sk.dts | 1002 +
arch/arm64/boot/dts/ti/k3-j721e.dtsi | 3 +
arch/arm64/boot/dts/toshiba/Makefile | 1 +
arch/arm64/boot/dts/toshiba/tmpv7708-rm-mbrc.dts | 6 +
.../boot/dts/toshiba/tmpv7708-visrobo-vrb.dts | 61 +
.../boot/dts/toshiba/tmpv7708-visrobo-vrc.dtsi | 44 +
arch/arm64/boot/dts/toshiba/tmpv7708.dtsi | 59 +
arch/arm64/boot/dts/xilinx/Makefile | 14 +
arch/arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi | 13 +-
.../arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dts | 315 +
.../arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dts | 298 +
arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts | 289 +
arch/arm64/boot/dts/xilinx/zynqmp-smk-k26-revA.dts | 21 +
arch/arm64/boot/dts/xilinx/zynqmp-zc1232-revA.dts | 16 +-
arch/arm64/boot/dts/xilinx/zynqmp-zc1254-revA.dts | 16 +-
arch/arm64/boot/dts/xilinx/zynqmp-zc1275-revA.dts | 18 +-
.../boot/dts/xilinx/zynqmp-zc1751-xm015-dc1.dts | 298 +-
.../boot/dts/xilinx/zynqmp-zc1751-xm016-dc2.dts | 342 +-
.../boot/dts/xilinx/zynqmp-zc1751-xm017-dc3.dts | 49 +-
.../boot/dts/xilinx/zynqmp-zc1751-xm018-dc4.dts | 24 +-
.../boot/dts/xilinx/zynqmp-zc1751-xm019-dc5.dts | 330 +-
arch/arm64/boot/dts/xilinx/zynqmp-zcu100-revC.dts | 264 +-
.../arm64/boot/dts/xilinx/zynqmp-zcu102-rev1.1.dts | 15 +
arch/arm64/boot/dts/xilinx/zynqmp-zcu102-revA.dts | 320 +-
arch/arm64/boot/dts/xilinx/zynqmp-zcu102-revB.dts | 3 +-
arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revA.dts | 292 +-
arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revC.dts | 250 +-
arch/arm64/boot/dts/xilinx/zynqmp-zcu106-revA.dts | 340 +-
arch/arm64/boot/dts/xilinx/zynqmp-zcu111-revA.dts | 274 +-
arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 93 +-
arch/arm64/configs/defconfig | 28 +-
arch/arm64/crypto/Kconfig | 6 -
arch/arm64/crypto/aes-ce-ccm-core.S | 24 +-
arch/arm64/crypto/aes-ce-ccm-glue.c | 203 +-
arch/arm64/crypto/aes-glue.c | 102 +-
arch/arm64/crypto/aes-neonbs-glue.c | 122 +-
arch/arm64/crypto/ghash-ce-glue.c | 209 +-
arch/arm64/include/asm/arch_timer.h | 78 +-
arch/arm64/include/asm/asm-extable.h | 95 +
arch/arm64/include/asm/asm-uaccess.h | 7 +-
arch/arm64/include/asm/assembler.h | 78 +-
arch/arm64/include/asm/barrier.h | 16 +-
arch/arm64/include/asm/cputype.h | 4 +
arch/arm64/include/asm/esr.h | 7 +
arch/arm64/include/asm/extable.h | 23 +-
arch/arm64/include/asm/fpsimd.h | 118 +-
arch/arm64/include/asm/fpsimdmacros.h | 21 +-
arch/arm64/include/asm/ftrace.h | 2 +-
arch/arm64/include/asm/futex.h | 25 +-
arch/arm64/include/asm/gpr-num.h | 26 +
arch/arm64/include/asm/hwcap.h | 1 +
arch/arm64/include/asm/kexec.h | 12 +
arch/arm64/include/asm/kprobes.h | 2 +-
arch/arm64/include/asm/kvm_arm.h | 1 +
arch/arm64/include/asm/kvm_asm.h | 55 +-
arch/arm64/include/asm/kvm_emulate.h | 5 +-
arch/arm64/include/asm/kvm_host.h | 6 +-
arch/arm64/include/asm/kvm_hyp.h | 5 +
arch/arm64/include/asm/memory.h | 1 +
arch/arm64/include/asm/mmu_context.h | 24 +
arch/arm64/include/asm/mte-kasan.h | 5 +
arch/arm64/include/asm/mte.h | 8 +-
arch/arm64/include/asm/page.h | 1 -
arch/arm64/include/asm/pgtable.h | 17 +-
arch/arm64/include/asm/processor.h | 51 +-
arch/arm64/include/asm/sections.h | 1 +
arch/arm64/include/asm/setup.h | 6 +
arch/arm64/include/asm/stacktrace.h | 4 +
arch/arm64/include/asm/syscall.h | 10 -
arch/arm64/include/asm/sysreg.h | 34 +-
arch/arm64/include/asm/thread_info.h | 3 +-
arch/arm64/include/asm/trans_pgd.h | 14 +-
arch/arm64/include/asm/uaccess.h | 30 +-
arch/arm64/include/asm/unistd.h | 2 +-
arch/arm64/include/asm/unistd32.h | 2 +
arch/arm64/include/asm/vdso/compat_barrier.h | 7 -
arch/arm64/include/asm/virt.h | 7 +
arch/arm64/include/asm/vmalloc.h | 4 +-
arch/arm64/include/asm/word-at-a-time.h | 21 +-
arch/arm64/include/uapi/asm/hwcap.h | 1 +
arch/arm64/kernel/Makefile | 3 +
arch/arm64/kernel/armv8_deprecated.c | 12 +-
arch/arm64/kernel/asm-offsets.c | 13 +-
arch/arm64/kernel/cpu-reset.S | 7 +-
arch/arm64/kernel/cpu-reset.h | 32 -
arch/arm64/kernel/cpu_errata.c | 64 +
arch/arm64/kernel/cpufeature.c | 40 +-
arch/arm64/kernel/cpuinfo.c | 1 +
arch/arm64/kernel/entry-common.c | 52 +-
arch/arm64/kernel/entry-fpsimd.S | 34 +-
arch/arm64/kernel/entry.S | 10 +-
arch/arm64/kernel/fpsimd.c | 342 +-
arch/arm64/kernel/ftrace.c | 5 -
arch/arm64/kernel/head.S | 2 +-
arch/arm64/kernel/hibernate-asm.S | 72 -
arch/arm64/kernel/hibernate.c | 49 +-
arch/arm64/kernel/machine_kexec.c | 177 +-
arch/arm64/kernel/mte.c | 67 +-
arch/arm64/kernel/probes/kprobes.c | 12 +-
arch/arm64/kernel/probes/kprobes_trampoline.S | 8 +-
arch/arm64/kernel/process.c | 4 +-
arch/arm64/kernel/ptrace.c | 6 +-
arch/arm64/kernel/relocate_kernel.S | 69 +-
arch/arm64/kernel/sdei.c | 2 +-
arch/arm64/kernel/signal.c | 8 +-
arch/arm64/kernel/smp.c | 34 +-
arch/arm64/kernel/stacktrace.c | 7 +
arch/arm64/kernel/topology.c | 2 +
arch/arm64/kernel/traps.c | 24 +-
arch/arm64/kernel/vdso/Makefile | 2 +-
arch/arm64/kernel/vdso32/Makefile | 38 +-
arch/arm64/kernel/vmlinux.lds.S | 22 +-
arch/arm64/kvm/Kconfig | 10 +-
arch/arm64/kvm/arm.c | 107 +-
arch/arm64/kvm/guest.c | 7 +-
arch/arm64/kvm/hyp/fpsimd.S | 6 +-
arch/arm64/kvm/hyp/hyp-entry.S | 2 +-
arch/arm64/kvm/hyp/include/hyp/fault.h | 75 +
arch/arm64/kvm/hyp/include/hyp/switch.h | 245 +-
arch/arm64/kvm/hyp/include/nvhe/fixed_config.h | 200 +
arch/arm64/kvm/hyp/include/nvhe/gfp.h | 1 +
arch/arm64/kvm/hyp/include/nvhe/trap_handler.h | 2 +
arch/arm64/kvm/hyp/nvhe/Makefile | 2 +-
arch/arm64/kvm/hyp/nvhe/host.S | 26 +-
arch/arm64/kvm/hyp/nvhe/hyp-main.c | 48 +-
arch/arm64/kvm/hyp/nvhe/mem_protect.c | 24 +-
arch/arm64/kvm/hyp/nvhe/page_alloc.c | 15 +
arch/arm64/kvm/hyp/nvhe/pkvm.c | 185 +
arch/arm64/kvm/hyp/nvhe/setup.c | 17 +-
arch/arm64/kvm/hyp/nvhe/switch.c | 99 +
arch/arm64/kvm/hyp/nvhe/sys_regs.c | 487 +
arch/arm64/kvm/hyp/vgic-v3-sr.c | 22 +-
arch/arm64/kvm/hyp/vhe/switch.c | 16 +
arch/arm64/kvm/mmu.c | 8 +-
arch/arm64/kvm/pmu-emul.c | 2 +-
arch/arm64/kvm/reset.c | 8 +-
arch/arm64/kvm/sys_regs.c | 41 +-
arch/arm64/kvm/vgic/vgic-init.c | 2 +-
arch/arm64/kvm/vgic/vgic-irqfd.c | 2 +-
arch/arm64/kvm/vgic/vgic-its.c | 18 +-
arch/arm64/kvm/vgic/vgic-kvm-device.c | 25 +-
arch/arm64/kvm/vgic/vgic-mmio-v3.c | 8 +-
arch/arm64/kvm/vgic/vgic-v3.c | 27 +-
arch/arm64/kvm/vgic/vgic-v4.c | 2 +-
arch/arm64/kvm/vgic/vgic.h | 5 +-
arch/arm64/lib/Makefile | 2 +
arch/arm64/lib/clear_user.S | 10 +-
arch/arm64/lib/copy_from_user.S | 8 +-
arch/arm64/lib/copy_to_user.S | 8 +-
arch/arm64/mm/Makefile | 1 +
arch/arm64/mm/extable.c | 85 +-
arch/arm64/mm/hugetlbpage.c | 27 +-
arch/arm64/mm/init.c | 39 -
arch/arm64/mm/kasan_init.c | 23 +-
arch/arm64/mm/mmu.c | 12 +-
arch/arm64/mm/trans_pgd-asm.S | 65 +
arch/arm64/mm/trans_pgd.c | 84 +-
arch/arm64/net/bpf_jit_comp.c | 14 +-
arch/arm64/tools/cpucaps | 5 +
arch/arm64/xen/hypercall.S | 1 -
arch/csky/Kbuild | 3 +
arch/csky/Kconfig | 1 -
arch/csky/Makefile | 3 -
arch/csky/include/asm/kprobes.h | 2 +-
arch/csky/include/asm/processor.h | 2 +-
arch/csky/include/asm/syscall.h | 9 -
arch/csky/kernel/entry.S | 2 +-
arch/csky/kernel/ftrace.c | 5 -
arch/csky/kernel/irq.c | 5 -
arch/csky/kernel/probes/ftrace.c | 9 -
arch/csky/kernel/probes/kprobes.c | 14 +-
arch/csky/kernel/probes/kprobes_trampoline.S | 4 +-
arch/csky/kernel/smp.c | 6 +-
arch/csky/kernel/stacktrace.c | 5 +-
arch/h8300/Kbuild | 3 +
arch/h8300/Makefile | 3 -
arch/h8300/include/asm/irq.h | 2 -
arch/h8300/include/asm/processor.h | 2 +-
arch/h8300/kernel/irq.c | 1 +
arch/h8300/kernel/process.c | 5 +-
arch/hexagon/include/asm/processor.h | 2 +-
arch/hexagon/kernel/process.c | 4 +-
arch/ia64/Kconfig.debug | 2 +-
arch/ia64/Makefile | 2 -
arch/ia64/include/asm/processor.h | 2 +-
arch/ia64/include/asm/ptrace.h | 9 +-
arch/ia64/include/asm/spinlock.h | 23 +-
arch/ia64/include/asm/syscall.h | 17 +-
arch/ia64/kernel/audit.c | 10 +-
arch/ia64/kernel/ftrace.c | 6 -
arch/ia64/kernel/kprobes.c | 15 +-
arch/ia64/kernel/process.c | 5 +-
arch/ia64/kernel/ptrace.c | 31 +-
arch/ia64/mm/contig.c | 2 +-
arch/ia64/mm/init.c | 2 +-
arch/m68k/Kconfig.cpu | 11 -
arch/m68k/Kconfig.machine | 1 +
arch/m68k/Makefile | 4 +-
arch/m68k/configs/amiga_defconfig | 7 +-
arch/m68k/configs/apollo_defconfig | 7 +-
arch/m68k/configs/atari_defconfig | 7 +-
arch/m68k/configs/bvme6000_defconfig | 7 +-
arch/m68k/configs/hp300_defconfig | 7 +-
arch/m68k/configs/mac_defconfig | 7 +-
arch/m68k/configs/multi_defconfig | 7 +-
arch/m68k/configs/mvme147_defconfig | 7 +-
arch/m68k/configs/mvme16x_defconfig | 7 +-
arch/m68k/configs/q40_defconfig | 7 +-
arch/m68k/configs/sun3_defconfig | 7 +-
arch/m68k/configs/sun3x_defconfig | 7 +-
arch/m68k/emu/nfblock.c | 12 +-
arch/m68k/emu/nfeth.c | 2 +-
arch/m68k/include/asm/bitops.h | 2 +-
arch/m68k/include/asm/cacheflush_mm.h | 1 +
arch/m68k/include/asm/processor.h | 2 +-
arch/m68k/kernel/process.c | 4 +-
arch/m68k/kernel/traps.c | 2 +-
arch/m68k/lib/muldi3.c | 2 +-
arch/m68k/mm/mcfmmu.c | 3 +-
arch/m68k/mm/motorola.c | 6 +-
arch/microblaze/Kbuild | 3 +
arch/microblaze/Makefile | 3 -
arch/microblaze/boot/dts/system.dts | 5 -
arch/microblaze/include/asm/processor.h | 2 +-
arch/microblaze/include/asm/syscall.h | 33 -
arch/microblaze/kernel/ftrace.c | 5 -
arch/microblaze/kernel/process.c | 2 +-
arch/microblaze/mm/pgtable.c | 3 +-
arch/microblaze/pci/pci-common.c | 3 +-
arch/mips/Kbuild | 3 +
arch/mips/Kbuild.platforms | 3 +-
arch/mips/Kconfig | 114 +-
arch/mips/Makefile | 10 +-
arch/mips/alchemy/devboards/db1550.c | 1 +
arch/mips/boot/Makefile | 3 +
arch/mips/boot/compressed/.gitignore | 3 -
arch/mips/boot/compressed/Makefile | 12 +-
arch/mips/boot/compressed/ashldi3.c | 2 +
arch/mips/boot/compressed/bswapdi.c | 2 +
arch/mips/boot/compressed/bswapsi.c | 2 +
arch/mips/boot/compressed/uart-16550.c | 12 -
arch/mips/boot/compressed/uart-ath79.c | 2 +
arch/mips/boot/dts/Makefile | 1 -
arch/mips/boot/dts/ingenic/ci20.dts | 9 +-
arch/mips/boot/dts/ingenic/jz4725b.dtsi | 2 +-
arch/mips/boot/dts/ingenic/jz4740.dtsi | 2 +-
arch/mips/boot/dts/ingenic/jz4770.dtsi | 2 +-
arch/mips/boot/dts/ingenic/jz4780.dtsi | 46 +-
arch/mips/boot/dts/ingenic/x1000.dtsi | 2 +-
arch/mips/boot/dts/ingenic/x1830.dtsi | 2 +-
arch/mips/boot/dts/netlogic/Makefile | 8 -
arch/mips/boot/dts/netlogic/xlp_evp.dts | 131 -
arch/mips/boot/dts/netlogic/xlp_fvp.dts | 131 -
arch/mips/boot/dts/netlogic/xlp_gvp.dts | 89 -
arch/mips/boot/dts/netlogic/xlp_rvp.dts | 89 -
arch/mips/boot/dts/netlogic/xlp_svp.dts | 131 -
arch/mips/cavium-octeon/executive/cvmx-helper.c | 10 -
arch/mips/cavium-octeon/executive/cvmx-pko.c | 14 -
arch/mips/cavium-octeon/octeon-irq.c | 5 +-
arch/mips/configs/bmips_stb_defconfig | 155 +-
arch/mips/configs/loongson3_defconfig | 1 +
arch/mips/configs/nlm_xlp_defconfig | 557 -
arch/mips/configs/nlm_xlr_defconfig | 508 -
arch/mips/dec/setup.c | 6 +-
arch/mips/include/asm/cacheflush.h | 2 +
arch/mips/include/asm/cmpxchg.h | 5 +-
arch/mips/include/asm/cop2.h | 11 -
arch/mips/include/asm/cpu-type.h | 8 -
arch/mips/include/asm/cpu.h | 2 +-
arch/mips/include/asm/ginvt.h | 11 +-
arch/mips/include/asm/hazards.h | 2 +-
arch/mips/include/asm/mach-lantiq/xway/xway_dma.h | 2 +-
.../include/asm/mach-loongson64/loongson_regs.h | 12 +
.../asm/mach-netlogic/cpu-feature-overrides.h | 57 -
arch/mips/include/asm/mach-netlogic/irq.h | 17 -
arch/mips/include/asm/mach-netlogic/multi-node.h | 74 -
arch/mips/include/asm/mach-ralink/spaces.h | 4 +-
arch/mips/include/asm/mips-cm.h | 12 +-
arch/mips/include/asm/mipsregs.h | 190 +-
arch/mips/include/asm/msa.h | 34 +-
arch/mips/include/asm/netlogic/common.h | 132 -
arch/mips/include/asm/netlogic/haldefs.h | 171 -
arch/mips/include/asm/netlogic/interrupt.h | 45 -
arch/mips/include/asm/netlogic/mips-extns.h | 301 -
arch/mips/include/asm/netlogic/psb-bootinfo.h | 95 -
arch/mips/include/asm/netlogic/xlp-hal/bridge.h | 186 -
.../mips/include/asm/netlogic/xlp-hal/cpucontrol.h | 89 -
arch/mips/include/asm/netlogic/xlp-hal/iomap.h | 214 -
arch/mips/include/asm/netlogic/xlp-hal/pcibus.h | 113 -
arch/mips/include/asm/netlogic/xlp-hal/pic.h | 366 -
arch/mips/include/asm/netlogic/xlp-hal/sys.h | 213 -
arch/mips/include/asm/netlogic/xlp-hal/uart.h | 192 -
arch/mips/include/asm/netlogic/xlp-hal/xlp.h | 119 -
arch/mips/include/asm/netlogic/xlr/bridge.h | 104 -
arch/mips/include/asm/netlogic/xlr/flash.h | 55 -
arch/mips/include/asm/netlogic/xlr/fmn.h | 365 -
arch/mips/include/asm/netlogic/xlr/gpio.h | 74 -
arch/mips/include/asm/netlogic/xlr/iomap.h | 109 -
arch/mips/include/asm/netlogic/xlr/msidef.h | 84 -
arch/mips/include/asm/netlogic/xlr/pic.h | 306 -
arch/mips/include/asm/netlogic/xlr/xlr.h | 59 -
arch/mips/include/asm/octeon/cvmx-helper.h | 7 -
arch/mips/include/asm/octeon/cvmx-pko.h | 1 -
arch/mips/include/asm/pci.h | 4 +
arch/mips/include/asm/pgtable.h | 45 +-
arch/mips/include/asm/processor.h | 15 +-
arch/mips/include/asm/traps.h | 2 +-
arch/mips/include/asm/uasm.h | 5 +
arch/mips/include/asm/vermagic.h | 4 -
arch/mips/include/uapi/asm/socket.h | 2 +
arch/mips/kernel/cpu-probe.c | 84 -
arch/mips/kernel/idle.c | 2 -
arch/mips/kernel/irq.c | 8 +-
arch/mips/kernel/kprobes.c | 26 +-
arch/mips/kernel/mips-cm.c | 21 +-
arch/mips/kernel/perf_event_mipsxx.c | 86 -
arch/mips/kernel/proc.c | 227 +-
arch/mips/kernel/process.c | 8 +-
arch/mips/kernel/r2300_fpu.S | 4 +-
arch/mips/kernel/smp-bmips.c | 3 +-
arch/mips/kernel/syscall.c | 9 -
arch/mips/kernel/traps.c | 8 +-
arch/mips/kernel/uprobes.c | 1 +
arch/mips/kvm/entry.c | 8 +-
arch/mips/kvm/mips.c | 2 +-
arch/mips/lantiq/xway/dma.c | 57 +-
arch/mips/loongson64/init.c | 5 +-
arch/mips/loongson64/smp.c | 1 -
arch/mips/mm/c-r4k.c | 2 -
arch/mips/mm/init.c | 2 +-
arch/mips/mm/tlbex.c | 9 +-
arch/mips/mm/uasm-mips.c | 4 +-
arch/mips/mm/uasm.c | 3 +-
arch/mips/net/Makefile | 9 +-
arch/mips/net/bpf_jit.c | 1299 -
arch/mips/net/bpf_jit.h | 81 -
arch/mips/net/bpf_jit_asm.S | 285 -
arch/mips/net/bpf_jit_comp.c | 1034 +
arch/mips/net/bpf_jit_comp.h | 235 +
arch/mips/net/bpf_jit_comp32.c | 1899 +
arch/mips/net/bpf_jit_comp64.c | 1060 +
arch/mips/net/ebpf_jit.c | 1938 -
arch/mips/netlogic/Kconfig | 86 -
arch/mips/netlogic/Makefile | 4 -
arch/mips/netlogic/Platform | 16 -
arch/mips/netlogic/common/Makefile | 5 -
arch/mips/netlogic/common/earlycons.c | 63 -
arch/mips/netlogic/common/irq.c | 350 -
arch/mips/netlogic/common/reset.S | 299 -
arch/mips/netlogic/common/smp.c | 285 -
arch/mips/netlogic/common/smpboot.S | 141 -
arch/mips/netlogic/common/time.c | 110 -
arch/mips/netlogic/xlp/Makefile | 11 -
arch/mips/netlogic/xlp/ahci-init-xlp2.c | 390 -
arch/mips/netlogic/xlp/ahci-init.c | 209 -
arch/mips/netlogic/xlp/cop2-ex.c | 121 -
arch/mips/netlogic/xlp/dt.c | 95 -
arch/mips/netlogic/xlp/nlm_hal.c | 508 -
arch/mips/netlogic/xlp/setup.c | 174 -
arch/mips/netlogic/xlp/usb-init-xlp2.c | 288 -
arch/mips/netlogic/xlp/usb-init.c | 149 -
arch/mips/netlogic/xlp/wakeup.c | 212 -
arch/mips/netlogic/xlr/Makefile | 3 -
arch/mips/netlogic/xlr/fmn-config.c | 296 -
arch/mips/netlogic/xlr/fmn.c | 199 -
arch/mips/netlogic/xlr/platform-flash.c | 216 -
arch/mips/netlogic/xlr/platform.c | 250 -
arch/mips/netlogic/xlr/setup.c | 206 -
arch/mips/netlogic/xlr/wakeup.c | 85 -
arch/mips/pci/Makefile | 3 -
arch/mips/pci/fixup-cobalt.c | 15 +
arch/mips/pci/msi-xlp.c | 571 -
arch/mips/pci/pci-bcm47xx.c | 16 +-
arch/mips/pci/pci-generic.c | 14 +
arch/mips/pci/pci-xlp.c | 332 -
arch/mips/pci/pci-xlr.c | 368 -
arch/mips/ralink/Kconfig | 3 +-
arch/mips/rb532/prom.c | 1 -
arch/mips/sgi-ip22/ip22-berr.c | 2 +-
arch/mips/sgi-ip22/ip28-berr.c | 2 +-
arch/mips/sgi-ip27/ip27-berr.c | 2 +-
arch/mips/sgi-ip27/ip27-memory.c | 3 +-
arch/mips/sgi-ip30/ip30-setup.c | 6 +-
arch/mips/sgi-ip32/ip32-berr.c | 2 +-
arch/mips/sibyte/common/cfe.c | 1 -
arch/mips/sibyte/swarm/setup.c | 3 +-
arch/mips/sni/time.c | 4 +-
arch/mips/txx9/generic/setup_tx4927.c | 2 +-
arch/mips/txx9/generic/setup_tx4938.c | 2 +-
arch/mips/txx9/generic/setup_tx4939.c | 2 +-
arch/mips/vdso/Makefile | 2 +-
arch/nds32/Kbuild | 3 +
arch/nds32/Kconfig | 1 -
arch/nds32/Makefile | 5 +-
arch/nds32/include/asm/cacheflush.h | 1 +
arch/nds32/include/asm/processor.h | 2 +-
arch/nds32/include/asm/syscall.h | 22 -
arch/nds32/kernel/ftrace.c | 7 +-
arch/nds32/kernel/process.c | 7 +-
arch/nds32/kernel/traps.c | 2 +-
arch/nds32/mm/fault.c | 6 +-
arch/nios2/Kbuild | 3 +
arch/nios2/Makefile | 9 +-
arch/nios2/boot/Makefile | 3 -
arch/nios2/include/asm/cacheflush.h | 3 +-
arch/nios2/include/asm/irqflags.h | 4 +-
arch/nios2/include/asm/processor.h | 2 +-
arch/nios2/include/asm/registers.h | 2 +-
arch/nios2/include/asm/syscall.h | 11 -
arch/nios2/kernel/process.c | 5 +-
arch/nios2/platform/Kconfig.platform | 1 +
arch/openrisc/Kbuild | 3 +
arch/openrisc/Kconfig | 1 -
arch/openrisc/Makefile | 7 +-
arch/openrisc/include/asm/processor.h | 2 +-
arch/openrisc/include/asm/spinlock.h | 3 -
arch/openrisc/include/asm/syscall.h | 7 -
arch/openrisc/kernel/dma.c | 4 +-
arch/openrisc/kernel/entry.S | 4 +-
arch/openrisc/kernel/irq.c | 5 -
arch/openrisc/kernel/process.c | 2 +-
arch/openrisc/kernel/signal.c | 2 -
arch/openrisc/kernel/smp.c | 12 +-
arch/openrisc/kernel/time.c | 2 +-
arch/openrisc/kernel/traps.c | 2 +-
arch/openrisc/mm/fault.c | 4 +-
arch/openrisc/mm/init.c | 1 -
arch/parisc/Kbuild | 3 +
arch/parisc/Kconfig | 22 +-
arch/parisc/Makefile | 7 +-
arch/parisc/boot/compressed/Makefile | 9 +-
arch/parisc/configs/generic-32bit_defconfig | 9 +-
arch/parisc/configs/generic-64bit_defconfig | 21 +-
arch/parisc/include/asm/assembly.h | 32 +
arch/parisc/include/asm/bitops.h | 10 -
arch/parisc/include/asm/cacheflush.h | 3 +-
arch/parisc/include/asm/current.h | 19 +
arch/parisc/include/asm/futex.h | 27 +-
arch/parisc/include/asm/ide.h | 4 -
arch/parisc/include/asm/kfence.h | 44 +
arch/parisc/include/asm/mckinley.h | 2 -
arch/parisc/include/asm/pdc.h | 2 +
arch/parisc/include/asm/pgtable.h | 10 +-
arch/parisc/include/asm/processor.h | 13 +-
arch/parisc/include/asm/ptrace.h | 6 +-
arch/parisc/include/asm/runway.h | 2 -
arch/parisc/include/asm/smp.h | 4 +-
arch/parisc/include/asm/spinlock.h | 15 -
arch/parisc/include/asm/thread_info.h | 15 +-
arch/parisc/include/asm/traps.h | 1 +
arch/parisc/include/asm/unaligned.h | 2 -
arch/parisc/include/uapi/asm/pdc.h | 28 +-
arch/parisc/include/uapi/asm/socket.h | 2 +
arch/parisc/kernel/Makefile | 1 +
arch/parisc/kernel/asm-offsets.c | 29 +-
arch/parisc/kernel/audit.c | 10 +-
arch/parisc/kernel/cache.c | 91 +-
arch/parisc/kernel/compat_audit.c | 11 +-
arch/parisc/kernel/entry.S | 92 +-
arch/parisc/kernel/firmware.c | 32 +
arch/parisc/kernel/ftrace.c | 27 +-
arch/parisc/kernel/head.S | 40 +-
arch/parisc/kernel/irq.c | 6 +-
arch/parisc/kernel/kprobes.c | 6 +-
arch/parisc/kernel/pdt.c | 4 +-
arch/parisc/kernel/process.c | 9 +-
arch/parisc/kernel/smp.c | 25 +-
arch/parisc/kernel/stacktrace.c | 31 +-
arch/parisc/kernel/sys_parisc.c | 10 +-
arch/parisc/kernel/syscall.S | 36 +-
arch/parisc/kernel/toc.c | 111 +
arch/parisc/kernel/toc_asm.S | 88 +
arch/parisc/kernel/traps.c | 9 +-
arch/parisc/kernel/unwind.c | 34 +-
arch/parisc/kernel/vmlinux.lds.S | 3 +-
arch/parisc/lib/bitops.c | 12 +-
arch/parisc/mm/fault.c | 2 +-
arch/parisc/mm/fixmap.c | 5 +-
arch/parisc/mm/init.c | 10 +-
arch/powerpc/Kbuild | 3 +
arch/powerpc/Kconfig | 20 +-
arch/powerpc/Makefile | 18 +-
arch/powerpc/boot/Makefile | 2 +-
arch/powerpc/boot/dts/a4m072.dts | 6 +-
arch/powerpc/boot/dts/charon.dts | 8 +-
arch/powerpc/boot/dts/digsy_mtc.dts | 8 +-
arch/powerpc/boot/dts/lite5200.dts | 8 +-
arch/powerpc/boot/dts/lite5200b.dts | 8 +-
arch/powerpc/boot/dts/media5200.dts | 8 +-
arch/powerpc/boot/dts/mpc5200b.dtsi | 6 +-
arch/powerpc/boot/dts/mucmc52.dts | 6 +-
arch/powerpc/boot/dts/o2d.dts | 2 +-
arch/powerpc/boot/dts/o2d.dtsi | 2 +-
arch/powerpc/boot/dts/o2dnt2.dts | 2 +-
arch/powerpc/boot/dts/o3dnt.dts | 2 +-
arch/powerpc/boot/dts/pcm030.dts | 6 +-
arch/powerpc/boot/dts/pcm032.dts | 8 +-
arch/powerpc/boot/dts/tqm5200.dts | 8 +-
arch/powerpc/boot/serial.c | 2 +-
arch/powerpc/boot/wrapper | 2 +
arch/powerpc/configs/cell_defconfig | 1 -
arch/powerpc/configs/g5_defconfig | 1 +
arch/powerpc/configs/maple_defconfig | 1 +
arch/powerpc/configs/microwatt_defconfig | 1 +
arch/powerpc/configs/pasemi_defconfig | 1 -
arch/powerpc/configs/powernv_defconfig | 1 -
arch/powerpc/configs/ppc64_defconfig | 1 -
arch/powerpc/configs/ps3_defconfig | 1 +
arch/powerpc/configs/pseries_defconfig | 1 -
arch/powerpc/configs/skiroot_defconfig | 2 -
arch/powerpc/include/asm/asm-const.h | 2 -
arch/powerpc/include/asm/atomic.h | 8 +-
arch/powerpc/include/asm/book3s/64/hash.h | 2 +
arch/powerpc/include/asm/book3s/64/pgtable.h | 10 +
arch/powerpc/include/asm/book3s/64/radix.h | 3 +
arch/powerpc/include/asm/io.h | 4 +-
arch/powerpc/include/asm/iommu.h | 6 -
arch/powerpc/include/asm/kexec.h | 1 -
arch/powerpc/include/asm/kprobes.h | 2 +-
arch/powerpc/include/asm/kvm_book3s.h | 2 +-
arch/powerpc/include/asm/kvm_book3s_64.h | 4 +
arch/powerpc/include/asm/kvm_host.h | 6 +-
arch/powerpc/include/asm/machdep.h | 15 +-
arch/powerpc/include/asm/mem_encrypt.h | 5 -
arch/powerpc/include/asm/nohash/32/pgtable.h | 21 +-
arch/powerpc/include/asm/nohash/32/pte-8xx.h | 22 +
arch/powerpc/include/asm/nohash/64/pgtable.h | 5 -
arch/powerpc/include/asm/nohash/pte-book3e.h | 18 +-
arch/powerpc/include/asm/nohash/tlbflush.h | 15 +
arch/powerpc/include/asm/paravirt.h | 40 +-
arch/powerpc/include/asm/pgtable-types.h | 18 +-
arch/powerpc/include/asm/ppc-pci.h | 5 -
arch/powerpc/include/asm/ppc_asm.h | 4 +-
arch/powerpc/include/asm/processor.h | 2 +-
arch/powerpc/include/asm/sections.h | 13 -
arch/powerpc/include/asm/simple_spinlock.h | 21 -
arch/powerpc/include/asm/smp.h | 17 +-
arch/powerpc/include/asm/static_call.h | 28 +
arch/powerpc/include/asm/syscall.h | 10 -
arch/powerpc/include/asm/thread_info.h | 3 +
arch/powerpc/include/asm/uaccess.h | 6 +-
arch/powerpc/include/uapi/asm/perf_regs.h | 28 +-
arch/powerpc/kernel/Makefile | 2 +-
arch/powerpc/kernel/align.c | 1 +
arch/powerpc/kernel/asm-offsets.c | 4 +-
arch/powerpc/kernel/audit.c | 12 +-
arch/powerpc/kernel/compat_audit.c | 13 +-
arch/powerpc/kernel/dt_cpu_ftrs.c | 4 +-
arch/powerpc/kernel/eeh.c | 20 +-
arch/powerpc/kernel/eeh_driver.c | 10 +-
arch/powerpc/kernel/firmware.c | 7 +-
arch/powerpc/kernel/head_8xx.S | 2 +-
arch/powerpc/kernel/head_booke.h | 15 +-
arch/powerpc/kernel/hw_breakpoint_constraints.c | 15 +-
arch/powerpc/kernel/idle_book3s.S | 10 +-
arch/powerpc/kernel/interrupt.c | 2 +-
arch/powerpc/kernel/kprobes-ftrace.c | 2 -
arch/powerpc/kernel/kprobes.c | 29 +-
arch/powerpc/kernel/kvm.c | 3 +-
arch/powerpc/kernel/optprobes.c | 8 +-
arch/powerpc/kernel/paca.c | 8 +-
arch/powerpc/kernel/pci-common.c | 2 +-
arch/powerpc/kernel/process.c | 9 +-
arch/powerpc/kernel/setup-common.c | 5 +-
arch/powerpc/kernel/setup_64.c | 4 +-
arch/powerpc/kernel/signal_32.c | 10 +-
arch/powerpc/kernel/signal_64.c | 11 +-
arch/powerpc/kernel/smp.c | 11 +-
arch/powerpc/kernel/stacktrace.c | 2 +-
arch/powerpc/kernel/static_call.c | 37 +
arch/powerpc/kernel/swsusp_64.c | 5 -
arch/powerpc/kernel/swsusp_asm64.S | 1 -
arch/powerpc/kernel/sysfs.c | 3 +-
arch/powerpc/kernel/time.c | 22 +-
arch/powerpc/kernel/vmlinux.lds.S | 12 +-
arch/powerpc/kexec/core.c | 13 -
arch/powerpc/kexec/core_32.c | 2 +-
arch/powerpc/kexec/core_64.c | 2 +-
arch/powerpc/kexec/file_load_64.c | 1 +
arch/powerpc/kvm/book3s_64_vio.c | 3 +-
arch/powerpc/kvm/book3s_hv.c | 30 +-
arch/powerpc/kvm/book3s_hv_rm_mmu.c | 9 +
arch/powerpc/kvm/book3s_hv_uvmem.c | 4 +-
arch/powerpc/kvm/book3s_xive.c | 2 +-
arch/powerpc/kvm/booke.c | 16 +-
arch/powerpc/kvm/powerpc.c | 6 +-
arch/powerpc/lib/Makefile | 2 +
arch/powerpc/lib/feature-fixups.c | 11 +
arch/powerpc/lib/sstep.c | 197 +-
arch/powerpc/mm/book3s64/hash_utils.c | 2 +-
arch/powerpc/mm/book3s64/radix_pgtable.c | 7 +
arch/powerpc/mm/hugetlbpage.c | 9 +-
arch/powerpc/mm/mem.c | 4 +-
arch/powerpc/mm/mmu_decl.h | 4 +-
arch/powerpc/mm/nohash/Makefile | 4 +-
arch/powerpc/mm/nohash/fsl_book3e.c | 379 +
arch/powerpc/mm/nohash/fsl_booke.c | 333 -
arch/powerpc/mm/nohash/kaslr_booke.c | 2 +-
arch/powerpc/mm/nohash/tlb.c | 6 +-
arch/powerpc/mm/nohash/tlb_low.S | 8 +-
arch/powerpc/mm/nohash/tlb_low_64e.S | 8 +-
arch/powerpc/mm/pgtable.c | 2 +-
arch/powerpc/mm/pgtable_32.c | 9 +-
arch/powerpc/net/bpf_jit_comp.c | 2 +-
arch/powerpc/perf/isa207-common.c | 26 +-
arch/powerpc/perf/isa207-common.h | 2 +
arch/powerpc/perf/perf_regs.c | 4 +
arch/powerpc/perf/power10-events-list.h | 8 +-
arch/powerpc/perf/power10-pmu.c | 44 +-
arch/powerpc/platforms/44x/fsp2.c | 2 +
arch/powerpc/platforms/44x/ppc476.c | 4 +-
arch/powerpc/platforms/83xx/mcu_mpc8349emitx.c | 7 +-
arch/powerpc/platforms/85xx/Makefile | 4 +-
arch/powerpc/platforms/85xx/mpc85xx_pm_ops.c | 7 +-
arch/powerpc/platforms/85xx/smp.c | 12 +-
arch/powerpc/platforms/book3s/vas-api.c | 4 +-
arch/powerpc/platforms/cell/spufs/inode.c | 1 +
arch/powerpc/platforms/powermac/pmac.h | 1 -
arch/powerpc/platforms/powermac/setup.c | 2 -
arch/powerpc/platforms/powernv/ocxl.c | 3 +-
arch/powerpc/platforms/powernv/opal-dump.c | 2 +-
arch/powerpc/platforms/powernv/opal-prd.c | 12 +-
arch/powerpc/platforms/powernv/pci-ioda.c | 2 +-
arch/powerpc/platforms/powernv/pci-sriov.c | 8 +-
arch/powerpc/platforms/powernv/setup.c | 4 +-
arch/powerpc/platforms/pseries/Kconfig | 1 +
arch/powerpc/platforms/pseries/Makefile | 2 +
arch/powerpc/platforms/pseries/cc_platform.c | 26 +
arch/powerpc/platforms/pseries/hotplug-cpu.c | 298 +-
arch/powerpc/platforms/pseries/iommu.c | 41 +-
arch/powerpc/platforms/pseries/mobility.c | 34 +
arch/powerpc/platforms/pseries/setup.c | 5 +-
arch/powerpc/platforms/pseries/svm.c | 8 +-
arch/powerpc/sysdev/dcr-low.S | 2 +-
arch/powerpc/xmon/xmon.c | 3 +-
arch/riscv/Kbuild | 3 +
arch/riscv/Kconfig | 10 +-
arch/riscv/Makefile | 16 +-
.../dts/microchip/microchip-mpfs-icicle-kit.dts | 18 +-
arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi | 40 +-
arch/riscv/boot/dts/sifive/fu540-c000.dtsi | 2 +-
.../riscv/boot/dts/sifive/hifive-unleashed-a00.dts | 10 +-
.../riscv/boot/dts/sifive/hifive-unmatched-a00.dts | 7 +-
arch/riscv/configs/32-bit.config | 2 +
arch/riscv/configs/64-bit.config | 2 +
arch/riscv/configs/defconfig | 7 +-
arch/riscv/include/asm/csr.h | 87 +
arch/riscv/include/asm/kasan.h | 3 +-
arch/riscv/include/asm/kprobes.h | 2 +-
arch/riscv/include/asm/kvm_host.h | 264 +
arch/riscv/include/asm/kvm_types.h | 7 +
arch/riscv/include/asm/kvm_vcpu_fp.h | 59 +
arch/riscv/include/asm/kvm_vcpu_timer.h | 44 +
arch/riscv/include/asm/page.h | 2 +
arch/riscv/include/asm/pgtable.h | 6 +-
arch/riscv/include/asm/processor.h | 2 +-
arch/riscv/include/asm/syscall.h | 9 -
arch/riscv/include/asm/vdso.h | 13 +-
arch/riscv/include/asm/vdso/gettimeofday.h | 7 +
arch/riscv/include/uapi/asm/kvm.h | 128 +
arch/riscv/kernel/asm-offsets.c | 157 +-
arch/riscv/kernel/cpu.c | 3 +-
arch/riscv/kernel/entry.S | 8 +-
arch/riscv/kernel/ftrace.c | 5 -
arch/riscv/kernel/head.S | 14 +-
arch/riscv/kernel/probes/ftrace.c | 2 -
arch/riscv/kernel/probes/kprobes.c | 15 +-
arch/riscv/kernel/probes/kprobes_trampoline.S | 4 +-
arch/riscv/kernel/reset.c | 12 +-
arch/riscv/kernel/setup.c | 4 +-
arch/riscv/kernel/smp.c | 9 +-
arch/riscv/kernel/stacktrace.c | 12 +-
arch/riscv/kernel/vdso.c | 250 +-
arch/riscv/kernel/vdso/vdso.lds.S | 3 +
arch/riscv/kernel/vmlinux-xip.lds.S | 10 +-
arch/riscv/kvm/Kconfig | 35 +
arch/riscv/kvm/Makefile | 26 +
arch/riscv/kvm/main.c | 118 +
arch/riscv/kvm/mmu.c | 802 +
arch/riscv/kvm/tlb.S | 74 +
arch/riscv/kvm/vcpu.c | 825 +
arch/riscv/kvm/vcpu_exit.c | 701 +
arch/riscv/kvm/vcpu_fp.c | 167 +
arch/riscv/kvm/vcpu_sbi.c | 185 +
arch/riscv/kvm/vcpu_switch.S | 400 +
arch/riscv/kvm/vcpu_timer.c | 225 +
arch/riscv/kvm/vm.c | 97 +
arch/riscv/kvm/vmid.c | 120 +
arch/riscv/lib/delay.c | 4 +
arch/riscv/mm/context.c | 8 +-
arch/riscv/mm/extable.c | 19 +-
arch/riscv/mm/init.c | 7 +-
arch/riscv/mm/kasan_init.c | 14 +-
arch/riscv/net/bpf_jit.h | 1 +
arch/riscv/net/bpf_jit_comp64.c | 187 +-
arch/riscv/net/bpf_jit_core.c | 29 +-
arch/s390/Kbuild | 3 +
arch/s390/Kconfig | 26 +
arch/s390/Makefile | 8 +-
arch/s390/boot/compressed/decompressor.h | 1 +
arch/s390/boot/head.S | 54 +-
arch/s390/boot/ipl_parm.c | 4 +-
arch/s390/boot/pgm_check_info.c | 4 +-
arch/s390/boot/startup.c | 8 +
arch/s390/configs/debug_defconfig | 9 +-
arch/s390/configs/defconfig | 6 +
arch/s390/include/asm/barrier.h | 24 +-
arch/s390/include/asm/bitops.h | 2 +-
arch/s390/include/asm/cpu.h | 3 +
arch/s390/include/asm/debug.h | 2 +-
arch/s390/include/asm/facility.h | 4 +
arch/s390/include/asm/ftrace.h | 58 +-
arch/s390/include/asm/jump_label.h | 2 +
arch/s390/include/asm/kdebug.h | 2 +-
arch/s390/include/asm/kprobes.h | 2 +-
arch/s390/include/asm/livepatch.h | 4 +-
arch/s390/include/asm/lowcore.h | 9 +-
arch/s390/include/asm/mem_encrypt.h | 2 -
arch/s390/include/asm/nospec-branch.h | 5 +
arch/s390/include/asm/pci.h | 6 +-
arch/s390/include/asm/pgtable.h | 21 +-
arch/s390/include/asm/processor.h | 2 +-
arch/s390/include/asm/ptrace.h | 23 +-
arch/s390/include/asm/qdio.h | 2 -
arch/s390/include/asm/sclp.h | 1 +
arch/s390/include/asm/sections.h | 12 -
arch/s390/include/asm/setup.h | 9 +-
arch/s390/include/asm/spinlock.h | 8 -
arch/s390/include/asm/string.h | 4 -
arch/s390/include/asm/syscall.h | 12 -
arch/s390/include/asm/text-patching.h | 16 +
arch/s390/include/asm/thread_info.h | 1 +
arch/s390/include/asm/uv.h | 15 +-
arch/s390/include/uapi/asm/setup.h | 13 -
arch/s390/kernel/alternative.c | 20 +
arch/s390/kernel/asm-offsets.c | 7 +-
arch/s390/kernel/audit.c | 12 +-
arch/s390/kernel/compat_audit.c | 13 +-
arch/s390/kernel/cpcmd.c | 6 +-
arch/s390/kernel/dumpstack.c | 4 +-
arch/s390/kernel/early.c | 3 +-
arch/s390/kernel/entry.S | 45 +-
arch/s390/kernel/entry.h | 1 +
arch/s390/kernel/ftrace.c | 101 +-
arch/s390/kernel/head64.S | 18 -
arch/s390/kernel/irq.c | 10 +-
arch/s390/kernel/jump_label.c | 34 +-
arch/s390/kernel/kprobes.c | 64 +-
arch/s390/kernel/machine_kexec_file.c | 35 +-
arch/s390/kernel/mcount.S | 64 +-
arch/s390/kernel/nospec-branch.c | 2 +-
arch/s390/kernel/nospec-sysfs.c | 2 +-
arch/s390/kernel/perf_cpum_cf.c | 232 +-
arch/s390/kernel/process.c | 6 +-
arch/s390/kernel/setup.c | 51 +-
arch/s390/kernel/smp.c | 4 +-
arch/s390/kernel/stacktrace.c | 2 +-
arch/s390/kernel/syscall.c | 2 +
arch/s390/kernel/traps.c | 12 +-
arch/s390/kernel/uv.c | 67 +-
arch/s390/kernel/vmlinux.lds.S | 1 +
arch/s390/kvm/gaccess.c | 12 +
arch/s390/kvm/intercept.c | 9 +-
arch/s390/kvm/interrupt.c | 7 +-
arch/s390/kvm/kvm-s390.c | 8 +-
arch/s390/kvm/kvm-s390.h | 9 +
arch/s390/kvm/priv.c | 2 +
arch/s390/kvm/pv.c | 21 +-
arch/s390/kvm/sigp.c | 14 +-
arch/s390/lib/Makefile | 2 +
arch/s390/lib/spinlock.c | 2 +-
arch/s390/lib/string.c | 48 +-
arch/s390/lib/test_kprobes.c | 75 +
arch/s390/lib/test_kprobes.h | 10 +
arch/s390/lib/test_kprobes_asm.S | 45 +
arch/s390/lib/test_unwind.c | 169 +-
arch/s390/mm/cmm.c | 11 +-
arch/s390/mm/dump_pagetables.c | 14 +-
arch/s390/mm/fault.c | 2 -
arch/s390/mm/gmap.c | 15 +-
arch/s390/mm/init.c | 3 -
arch/s390/mm/kasan_init.c | 2 +-
arch/s390/mm/pageattr.c | 4 +-
arch/s390/mm/pgtable.c | 109 +-
arch/s390/mm/vmem.c | 10 +-
arch/s390/net/bpf_jit_comp.c | 6 +-
arch/s390/pci/pci.c | 150 +-
arch/s390/pci/pci_dma.c | 25 +-
arch/s390/pci/pci_event.c | 234 +-
arch/s390/pci/pci_insn.c | 4 +-
arch/s390/pci/pci_irq.c | 9 +
arch/s390/pci/pci_sysfs.c | 8 +
arch/sh/Kbuild | 3 +
arch/sh/Kconfig | 1 -
arch/sh/Kconfig.debug | 1 +
arch/sh/Makefile | 4 -
arch/sh/boards/mach-ap325rxa/setup.c | 2 +-
arch/sh/boards/mach-ecovec24/setup.c | 4 +-
arch/sh/boards/mach-kfr2r09/setup.c | 2 +-
arch/sh/boards/mach-landisk/irq.c | 4 +-
arch/sh/boards/mach-migor/setup.c | 2 +-
arch/sh/boards/mach-se/7724/setup.c | 4 +-
arch/sh/boards/of-generic.c | 5 +-
arch/sh/boot/Makefile | 4 +-
arch/sh/boot/compressed/.gitignore | 5 -
arch/sh/boot/compressed/Makefile | 32 +-
arch/sh/boot/compressed/ashiftrt.S | 2 +
arch/sh/boot/compressed/ashldi3.c | 2 +
arch/sh/boot/compressed/ashlsi3.S | 2 +
arch/sh/boot/compressed/ashrsi3.S | 2 +
arch/sh/boot/compressed/lshrsi3.S | 2 +
arch/sh/boot/compressed/misc.c | 3 +
arch/sh/boot/dts/j2_mimas_v2.dts | 2 +
arch/sh/configs/sdk7786_defconfig | 1 -
arch/sh/include/asm/cacheflush.h | 3 +-
arch/sh/include/asm/checksum_32.h | 5 +-
arch/sh/include/asm/irq.h | 11 -
arch/sh/include/asm/kprobes.h | 2 +-
arch/sh/include/asm/processor_32.h | 2 +-
arch/sh/include/asm/sfp-machine.h | 8 +
arch/sh/include/asm/syscall_32.h | 12 -
arch/sh/include/asm/uaccess.h | 4 +-
arch/sh/kernel/cpu/fpu.c | 10 +-
arch/sh/kernel/cpu/sh4a/smp-shx3.c | 5 +-
arch/sh/kernel/crash_dump.c | 4 +-
arch/sh/kernel/ftrace.c | 5 -
arch/sh/kernel/kprobes.c | 12 +-
arch/sh/kernel/process_32.c | 5 +-
arch/sh/kernel/traps.c | 2 +-
arch/sh/kernel/traps_32.c | 8 +-
arch/sh/math-emu/math.c | 147 +-
arch/sh/mm/fault.c | 2 -
arch/sh/mm/nommu.c | 4 +-
arch/sparc/Kbuild | 3 +
arch/sparc/Kconfig | 3 +-
arch/sparc/Makefile | 3 -
arch/sparc/boot/Makefile | 8 +-
arch/sparc/include/asm/kprobes.h | 2 +-
arch/sparc/include/asm/processor_32.h | 2 +-
arch/sparc/include/asm/processor_64.h | 2 +-
arch/sparc/include/asm/ptrace.h | 8 +-
arch/sparc/include/asm/syscall.h | 10 -
arch/sparc/include/uapi/asm/socket.h | 3 +
arch/sparc/kernel/audit.c | 12 +-
arch/sparc/kernel/compat_audit.c | 13 +-
arch/sparc/kernel/ftrace.c | 5 -
arch/sparc/kernel/ioport.c | 76 +-
arch/sparc/kernel/kprobes.c | 12 +-
arch/sparc/kernel/pci.c | 2 +-
arch/sparc/kernel/process_32.c | 5 +-
arch/sparc/kernel/process_64.c | 5 +-
arch/sparc/kernel/signal_32.c | 4 +-
arch/sparc/kernel/smp_64.c | 2 +-
arch/sparc/kernel/windows.c | 6 +-
arch/sparc/mm/fault_32.c | 1 -
arch/sparc/mm/tsb.c | 2 +-
arch/um/drivers/net_kern.c | 3 +-
arch/um/drivers/ubd_kern.c | 14 +-
arch/um/include/asm/processor-generic.h | 2 +-
arch/um/include/asm/syscall-generic.h | 14 -
arch/um/kernel/mem.c | 2 +-
arch/um/kernel/process.c | 5 +-
arch/um/kernel/trap.c | 2 +-
arch/um/kernel/um_arch.c | 4 +
arch/x86/Kbuild | 3 +
arch/x86/Kconfig | 45 +-
arch/x86/Kconfig.cpu | 13 +
arch/x86/Makefile | 4 +-
arch/x86/boot/compressed/kaslr.c | 4 -
arch/x86/boot/compressed/misc.c | 3 +
arch/x86/boot/compressed/misc.h | 4 +
arch/x86/boot/compressed/pgtable_64.c | 2 +
arch/x86/boot/genimage.sh | 15 +-
arch/x86/boot/mtools.conf.in | 5 +-
arch/x86/crypto/aesni-intel_glue.c | 2 +-
arch/x86/crypto/sm4-aesni-avx-asm_64.S | 6 +-
arch/x86/crypto/sm4-aesni-avx2-asm_64.S | 6 +-
arch/x86/entry/syscalls/syscall_32.tbl | 1 +
arch/x86/entry/syscalls/syscall_64.tbl | 1 +
arch/x86/entry/vsyscall/vsyscall_64.c | 3 +-
arch/x86/events/core.c | 6 +
arch/x86/events/intel/bts.c | 6 +
arch/x86/events/intel/core.c | 92 +-
arch/x86/events/intel/ds.c | 7 +-
arch/x86/events/intel/lbr.c | 22 +-
arch/x86/events/intel/uncore.c | 2 +-
arch/x86/events/intel/uncore_discovery.h | 2 +-
arch/x86/events/intel/uncore_snbep.c | 16 +-
arch/x86/events/perf_event.h | 21 +
arch/x86/hyperv/Makefile | 2 +-
arch/x86/hyperv/hv_init.c | 82 +-
arch/x86/hyperv/ivm.c | 289 +
arch/x86/ia32/audit.c | 13 +-
arch/x86/ia32/ia32_signal.c | 15 +-
arch/x86/include/asm/GEN-for-each-reg.h | 14 +-
arch/x86/include/asm/alternative.h | 1 +
arch/x86/include/asm/asm-prototypes.h | 18 -
arch/x86/include/asm/asm.h | 55 +-
arch/x86/include/asm/cpu_entry_area.h | 8 +-
arch/x86/include/asm/cpufeature.h | 13 +-
arch/x86/include/asm/cpufeatures.h | 2 +
arch/x86/include/asm/extable.h | 44 +-
arch/x86/include/asm/extable_fixup_types.h | 22 +
arch/x86/include/asm/fpu/api.h | 58 +-
arch/x86/include/asm/fpu/internal.h | 540 -
arch/x86/include/asm/fpu/sched.h | 68 +
arch/x86/include/asm/fpu/signal.h | 13 +-
arch/x86/include/asm/fpu/types.h | 214 +-
arch/x86/include/asm/fpu/xcr.h | 23 +-
arch/x86/include/asm/fpu/xstate.h | 91 +-
arch/x86/include/asm/ftrace.h | 9 +-
arch/x86/include/asm/hyperv-tlfs.h | 17 +
arch/x86/include/asm/ia32.h | 2 +-
arch/x86/include/asm/insn-eval.h | 1 +
arch/x86/include/asm/intel-family.h | 2 +
arch/x86/include/asm/io.h | 8 +
arch/x86/include/asm/irq_stack.h | 42 +-
arch/x86/include/asm/kexec.h | 2 +-
arch/x86/include/asm/kprobes.h | 1 -
arch/x86/include/asm/kvm_host.h | 64 +-
arch/x86/include/asm/kvm_page_track.h | 11 +-
arch/x86/include/asm/kvm_para.h | 12 +
arch/x86/include/asm/mce.h | 14 +-
arch/x86/include/asm/mem_encrypt.h | 16 +-
arch/x86/include/asm/microcode.h | 3 -
arch/x86/include/asm/mshyperv.h | 70 +-
arch/x86/include/asm/msr-index.h | 2 +
arch/x86/include/asm/msr.h | 4 +-
arch/x86/include/asm/nospec-branch.h | 72 +-
arch/x86/include/asm/page_32.h | 2 +-
arch/x86/include/asm/page_64_types.h | 2 +-
arch/x86/include/asm/paravirt.h | 37 +-
arch/x86/include/asm/paravirt_types.h | 3 +
arch/x86/include/asm/pkru.h | 2 +-
arch/x86/include/asm/processor.h | 20 +-
arch/x86/include/asm/proto.h | 2 +-
arch/x86/include/asm/ptrace.h | 2 +-
arch/x86/include/asm/segment.h | 2 +-
arch/x86/include/asm/set_memory.h | 1 +
arch/x86/include/asm/sev.h | 6 +
arch/x86/include/asm/smp.h | 8 +
arch/x86/include/asm/stacktrace.h | 10 +
arch/x86/include/asm/static_call.h | 1 +
arch/x86/include/asm/syscall.h | 33 -
arch/x86/include/asm/thread_info.h | 3 +
arch/x86/include/asm/topology.h | 3 +
arch/x86/include/asm/trace/fpu.h | 4 +-
arch/x86/include/asm/traps.h | 6 +-
arch/x86/include/asm/uaccess.h | 2 +-
arch/x86/include/asm/unwind.h | 29 +
arch/x86/include/asm/unwind_hints.h | 5 +
arch/x86/include/asm/xen/hypercall.h | 235 +-
arch/x86/include/asm/xen/hypervisor.h | 4 +
arch/x86/include/asm/xen/pci.h | 19 -
arch/x86/include/uapi/asm/kvm.h | 4 +
arch/x86/include/uapi/asm/kvm_para.h | 1 +
arch/x86/include/uapi/asm/prctl.h | 4 +
arch/x86/include/uapi/asm/sgx.h | 2 +
arch/x86/kernel/Makefile | 6 +
arch/x86/kernel/acpi/boot.c | 9 +
arch/x86/kernel/acpi/cstate.c | 15 +
arch/x86/kernel/alternative.c | 191 +-
arch/x86/kernel/aperture_64.c | 13 +-
arch/x86/kernel/apic/x2apic_cluster.c | 27 +-
arch/x86/kernel/audit_64.c | 10 +-
arch/x86/kernel/cc_platform.c | 69 +
arch/x86/kernel/cpu/Makefile | 1 +
arch/x86/kernel/cpu/amd.c | 2 +
arch/x86/kernel/cpu/bugs.c | 13 +-
arch/x86/kernel/cpu/cacheinfo.c | 1 +
arch/x86/kernel/cpu/common.c | 51 +-
arch/x86/kernel/cpu/cpu.h | 1 +
arch/x86/kernel/cpu/cpuid-deps.c | 3 +
arch/x86/kernel/cpu/hygon.c | 2 +
arch/x86/kernel/cpu/mce/amd.c | 13 +-
arch/x86/kernel/cpu/mce/core.c | 292 +-
arch/x86/kernel/cpu/mce/intel.c | 5 +-
arch/x86/kernel/cpu/mce/internal.h | 71 +-
arch/x86/kernel/cpu/mce/p5.c | 6 +-
arch/x86/kernel/cpu/mce/severity.c | 33 +-
arch/x86/kernel/cpu/mce/winchip.c | 6 +-
arch/x86/kernel/cpu/microcode/amd.c | 14 +-
arch/x86/kernel/cpu/microcode/core.c | 17 -
arch/x86/kernel/cpu/microcode/intel.c | 9 +-
arch/x86/kernel/cpu/mshyperv.c | 5 +
arch/x86/kernel/cpu/sgx/virt.c | 65 +-
arch/x86/kernel/cpu/vortex.c | 39 +
arch/x86/kernel/crash_dump_64.c | 4 +-
arch/x86/kernel/devicetree.c | 10 +-
arch/x86/kernel/doublefault_32.c | 3 -
arch/x86/kernel/dumpstack_64.c | 6 +
arch/x86/kernel/fpu/bugs.c | 2 +-
arch/x86/kernel/fpu/context.h | 83 +
arch/x86/kernel/fpu/core.c | 392 +-
arch/x86/kernel/fpu/init.c | 76 +-
arch/x86/kernel/fpu/internal.h | 28 +
arch/x86/kernel/fpu/legacy.h | 115 +
arch/x86/kernel/fpu/regset.c | 36 +-
arch/x86/kernel/fpu/signal.c | 285 +-
arch/x86/kernel/fpu/xstate.c | 898 +-
arch/x86/kernel/fpu/xstate.h | 311 +
arch/x86/kernel/ftrace.c | 76 +-
arch/x86/kernel/ftrace_64.S | 30 +-
arch/x86/kernel/head64.c | 9 +-
arch/x86/kernel/irq.c | 4 +-
arch/x86/kernel/irq_32.c | 2 +
arch/x86/kernel/irqflags.S | 2 +
arch/x86/kernel/itmt.c | 2 +-
arch/x86/kernel/kprobes/core.c | 71 +-
arch/x86/kernel/kprobes/ftrace.c | 2 -
arch/x86/kernel/kprobes/opt.c | 6 +-
arch/x86/kernel/kvm.c | 112 +-
arch/x86/kernel/kvmclock.c | 4 +-
arch/x86/kernel/machine_kexec_64.c | 19 +-
arch/x86/kernel/module.c | 9 +-
arch/x86/kernel/paravirt.c | 59 +-
arch/x86/kernel/pci-swiotlb.c | 9 +-
arch/x86/kernel/probe_roms.c | 2 +-
arch/x86/kernel/process.c | 93 +-
arch/x86/kernel/process_32.c | 5 +-
arch/x86/kernel/process_64.c | 5 +-
arch/x86/kernel/ptrace.c | 2 +-
arch/x86/kernel/relocate_kernel_64.S | 2 +-
arch/x86/kernel/setup.c | 4 +-
arch/x86/kernel/setup_percpu.c | 2 +-
arch/x86/kernel/sev-shared.c | 70 +-
arch/x86/kernel/sev.c | 74 +-
arch/x86/kernel/signal.c | 83 +-
arch/x86/kernel/smpboot.c | 66 +-
arch/x86/kernel/static_call.c | 14 +-
arch/x86/kernel/trace.c | 2 +-
arch/x86/kernel/traps.c | 100 +-
arch/x86/kernel/umip.c | 8 +-
arch/x86/kernel/unwind_frame.c | 3 +-
arch/x86/kernel/unwind_guess.c | 3 +-
arch/x86/kernel/unwind_orc.c | 23 +-
arch/x86/kernel/vm86_32.c | 10 +-
arch/x86/kernel/vmlinux.lds.S | 14 +
arch/x86/kvm/Kconfig | 3 +
arch/x86/kvm/cpuid.c | 103 +-
arch/x86/kvm/emulate.c | 5 +
arch/x86/kvm/hyperv.c | 26 +-
arch/x86/kvm/ioapic.c | 2 +-
arch/x86/kvm/ioapic.h | 4 +-
arch/x86/kvm/lapic.c | 43 +-
arch/x86/kvm/lapic.h | 2 +-
arch/x86/kvm/mmu.h | 114 +-
arch/x86/kvm/mmu/mmu.c | 718 +-
arch/x86/kvm/mmu/mmu_internal.h | 21 +-
arch/x86/kvm/mmu/mmutrace.h | 18 +-
arch/x86/kvm/mmu/page_track.c | 49 +-
arch/x86/kvm/mmu/paging_tmpl.h | 168 +-
arch/x86/kvm/mmu/spte.c | 34 +-
arch/x86/kvm/mmu/spte.h | 21 +-
arch/x86/kvm/mmu/tdp_mmu.c | 119 +-
arch/x86/kvm/mmu/tdp_mmu.h | 6 +-
arch/x86/kvm/pmu.c | 2 +-
arch/x86/kvm/pmu.h | 4 +-
arch/x86/kvm/svm/avic.c | 3 +-
arch/x86/kvm/svm/nested.c | 52 +-
arch/x86/kvm/svm/pmu.c | 5 +-
arch/x86/kvm/svm/sev.c | 334 +-
arch/x86/kvm/svm/svm.c | 192 +-
arch/x86/kvm/svm/svm.h | 45 +-
arch/x86/kvm/svm/svm_ops.h | 4 +-
arch/x86/kvm/trace.h | 9 +-
arch/x86/kvm/vmx/evmcs.h | 4 +-
arch/x86/kvm/vmx/nested.c | 229 +-
arch/x86/kvm/vmx/pmu_intel.c | 13 +-
arch/x86/kvm/vmx/sgx.c | 16 +-
arch/x86/kvm/vmx/vmx.c | 243 +-
arch/x86/kvm/vmx/vmx.h | 35 +-
arch/x86/kvm/x86.c | 1386 +-
arch/x86/kvm/x86.h | 2 -
arch/x86/kvm/xen.c | 27 +-
arch/x86/lib/copy_mc_64.S | 8 +-
arch/x86/lib/copy_user_64.S | 13 -
arch/x86/lib/insn-eval.c | 2 +-
arch/x86/lib/insn.c | 5 +-
arch/x86/lib/kaslr.c | 18 +-
arch/x86/lib/retpoline.S | 56 +-
arch/x86/lib/string_32.c | 1 +
arch/x86/math-emu/fpu_aux.c | 2 +-
arch/x86/math-emu/fpu_entry.c | 6 +-
arch/x86/math-emu/fpu_system.h | 2 +-
arch/x86/mm/cpu_entry_area.c | 7 +
arch/x86/mm/extable.c | 135 +-
arch/x86/mm/fault.c | 20 +-
arch/x86/mm/init.c | 2 +-
arch/x86/mm/init_32.c | 45 +-
arch/x86/mm/ioremap.c | 18 +-
arch/x86/mm/kasan_init_64.c | 4 +-
arch/x86/mm/mem_encrypt.c | 121 +-
arch/x86/mm/mem_encrypt_identity.c | 18 +-
arch/x86/mm/numa.c | 2 +-
arch/x86/mm/numa_emulation.c | 2 +-
arch/x86/mm/pat/set_memory.c | 30 +-
arch/x86/net/bpf_jit_comp.c | 330 +-
arch/x86/net/bpf_jit_comp32.c | 22 +-
arch/x86/pci/common.c | 2 +-
arch/x86/pci/xen.c | 76 +-
arch/x86/platform/efi/efi_64.c | 9 +-
arch/x86/power/cpu.c | 2 +-
arch/x86/realmode/init.c | 8 +-
arch/x86/tools/relocs.c | 105 +-
arch/x86/xen/enlighten.c | 116 +-
arch/x86/xen/enlighten_hvm.c | 6 +-
arch/x86/xen/enlighten_pv.c | 105 +-
arch/x86/xen/irq.c | 73 +-
arch/x86/xen/mmu_hvm.c | 37 +-
arch/x86/xen/mmu_pv.c | 151 +-
arch/x86/xen/p2m.c | 2 +-
arch/x86/xen/setup.c | 16 +-
arch/x86/xen/smp.c | 28 -
arch/x86/xen/smp_pv.c | 14 +-
arch/x86/xen/xen-asm.S | 79 +-
arch/x86/xen/xen-head.S | 46 +-
arch/x86/xen/xen-ops.h | 4 +-
arch/xtensa/Makefile | 4 +-
arch/xtensa/boot/boot-elf/bootstrap.S | 2 +
arch/xtensa/boot/boot-redboot/bootstrap.S | 72 +-
arch/xtensa/configs/nommu_kc705_defconfig | 1 -
arch/xtensa/include/asm/asmmacro.h | 65 +
arch/xtensa/include/asm/atomic.h | 26 +-
arch/xtensa/include/asm/cacheflush.h | 5 +-
arch/xtensa/include/asm/cmpxchg.h | 16 +-
arch/xtensa/include/asm/core.h | 11 +
arch/xtensa/include/asm/processor.h | 34 +-
arch/xtensa/include/asm/sections.h | 41 +
arch/xtensa/include/asm/syscall.h | 11 -
arch/xtensa/include/asm/traps.h | 2 +
arch/xtensa/kernel/align.S | 2 +
arch/xtensa/kernel/entry.S | 216 +-
arch/xtensa/kernel/head.S | 24 +-
arch/xtensa/kernel/mcount.S | 38 +-
arch/xtensa/kernel/process.c | 32 +-
arch/xtensa/kernel/setup.c | 102 +-
arch/xtensa/kernel/signal.c | 12 +-
arch/xtensa/kernel/traps.c | 8 +-
arch/xtensa/kernel/vectors.S | 55 +-
arch/xtensa/kernel/vmlinux.lds.S | 12 +-
arch/xtensa/lib/strncpy_user.S | 17 +-
arch/xtensa/lib/usercopy.S | 28 +-
arch/xtensa/mm/fault.c | 3 +-
arch/xtensa/platforms/iss/network.c | 5 +-
arch/xtensa/platforms/iss/simdisk.c | 16 +-
block/Kconfig | 28 +-
block/Kconfig.iosched | 4 -
block/Makefile | 6 +-
block/bdev.c | 46 +-
block/bfq-cgroup.c | 14 +-
block/bfq-iosched.c | 6 +-
block/bio-integrity.c | 4 +-
block/bio.c | 171 +-
block/blk-cgroup.c | 32 +-
block/blk-core.c | 479 +-
block/blk-crypto-fallback.c | 119 +-
block/blk-crypto-internal.h | 2 +-
block/blk-crypto-profile.c | 565 +
block/blk-crypto.c | 29 +-
block/blk-exec.c | 10 +-
block/blk-flush.c | 12 +-
block/blk-ia-ranges.c | 348 +
block/blk-integrity.c | 6 +-
block/blk-iocost.c | 12 +-
block/blk-iolatency.c | 1 +
block/blk-merge.c | 123 +-
block/blk-mq-debugfs.c | 135 +-
block/blk-mq-sched.c | 140 +-
block/blk-mq-sched.h | 49 +-
block/blk-mq-tag.c | 163 +-
block/blk-mq-tag.h | 38 +-
block/blk-mq.c | 1181 +-
block/blk-mq.h | 111 +-
block/blk-rq-qos.h | 5 +-
block/blk-settings.c | 20 +-
block/blk-sysfs.c | 50 +-
block/blk-throttle.c | 163 +-
block/blk-throttle.h | 182 +
block/blk-wbt.c | 3 +
block/blk-zoned.c | 15 +-
block/blk.h | 166 +-
block/bounce.c | 1 +
block/bsg-lib.c | 32 +-
block/elevator.c | 4 +-
block/elevator.h | 166 +
block/fops.c | 288 +-
block/genhd.c | 77 +-
block/holder.c | 1 +
block/ioctl.c | 61 +-
block/keyslot-manager.c | 578 -
block/kyber-iosched.c | 6 +-
block/mq-deadline.c | 224 +-
block/partitions/Kconfig | 4 +
block/partitions/core.c | 7 +-
block/partitions/efi.c | 2 +-
block/partitions/ibm.c | 19 +-
block/t10-pi.c | 2 +-
crypto/Kconfig | 2 +-
crypto/Makefile | 2 +
crypto/af_alg.c | 2 +-
crypto/algapi.c | 125 +-
crypto/api.c | 50 +-
crypto/crypto_engine.c | 26 +
crypto/drbg.c | 2 +-
crypto/ecc.c | 14 +-
crypto/ecc.h | 245 -
crypto/ecdh.c | 2 +-
crypto/ecdsa.c | 2 +-
crypto/ecrdsa.c | 2 +-
crypto/ecrdsa_defs.h | 2 +-
crypto/internal.h | 10 +
crypto/jitterentropy.c | 24 +-
crypto/pcrypt.c | 12 +-
crypto/tcrypt.c | 5 +-
crypto/testmgr.c | 4 +-
crypto/testmgr.h | 2 +-
crypto/zstd.c | 28 +-
drivers/acpi/Kconfig | 2 +-
drivers/acpi/ac.c | 19 +
drivers/acpi/acpi_lpss.c | 13 +-
drivers/acpi/acpi_pnp.c | 2 -
drivers/acpi/acpica/acglobal.h | 2 +
drivers/acpi/acpica/hwesleep.c | 8 +-
drivers/acpi/acpica/hwsleep.c | 11 +-
drivers/acpi/acpica/hwxfsleep.c | 7 +
drivers/acpi/acpica/utosi.c | 1 +
drivers/acpi/apei/einj.c | 15 +-
drivers/acpi/apei/hest.c | 5 +-
drivers/acpi/battery.c | 2 +-
drivers/acpi/cppc_acpi.c | 43 +-
drivers/acpi/device_pm.c | 26 +
drivers/acpi/dock.c | 8 +-
drivers/acpi/ec.c | 11 +-
drivers/acpi/glue.c | 66 +-
drivers/acpi/internal.h | 1 +
drivers/acpi/pci_root.c | 161 +-
drivers/acpi/pmic/intel_pmic.c | 51 +-
drivers/acpi/power.c | 102 +-
drivers/acpi/pptt.c | 67 +
drivers/acpi/prmt.c | 35 +-
drivers/acpi/processor_idle.c | 3 +-
drivers/acpi/resource.c | 56 +-
drivers/acpi/scan.c | 11 +
drivers/acpi/sleep.c | 10 +-
drivers/acpi/tables.c | 3 +
drivers/acpi/video_detect.c | 78 +-
drivers/amba/bus.c | 100 +-
drivers/android/binder.c | 41 +-
drivers/android/binder_internal.h | 4 +
drivers/ata/ahci.c | 13 +-
drivers/ata/ahci.h | 8 +-
drivers/ata/ata_piix.c | 8 +-
drivers/ata/libahci.c | 52 +-
drivers/ata/libata-core.c | 72 +-
drivers/ata/libata-eh.c | 8 +
drivers/ata/libata-sata.c | 21 +-
drivers/ata/libata-scsi.c | 81 +-
drivers/ata/pata_ali.c | 4 +-
drivers/ata/pata_amd.c | 2 +-
drivers/ata/pata_macio.c | 2 +-
drivers/ata/pata_optidma.c | 4 +-
drivers/ata/pata_radisys.c | 4 +-
drivers/ata/sata_highbank.c | 4 +-
drivers/ata/sata_mv.c | 6 +-
drivers/ata/sata_nv.c | 4 +-
drivers/ata/sata_sil24.c | 2 +-
drivers/auxdisplay/Kconfig | 12 +-
drivers/auxdisplay/Makefile | 1 +
drivers/auxdisplay/cfag12864bfb.c | 9 +-
drivers/auxdisplay/ht16k33.c | 501 +-
drivers/auxdisplay/img-ascii-lcd.c | 205 +-
drivers/auxdisplay/ks0108.c | 3 -
drivers/auxdisplay/line-display.c | 261 +
drivers/auxdisplay/line-display.h | 43 +
drivers/base/Makefile | 2 +-
drivers/base/arch_numa.c | 92 +-
drivers/base/arch_topology.c | 20 +-
drivers/base/component.c | 6 +-
drivers/base/core.c | 17 +-
drivers/base/firmware_loader/builtin/Makefile | 6 +-
drivers/base/firmware_loader/builtin/main.c | 106 +
drivers/base/firmware_loader/firmware.h | 17 +
drivers/base/firmware_loader/main.c | 65 +-
drivers/base/node.c | 9 +-
drivers/base/platform.c | 3 +-
drivers/base/power/main.c | 99 +-
drivers/base/power/power.h | 7 +-
drivers/base/power/runtime.c | 6 +-
drivers/base/power/wakeirq.c | 101 +-
drivers/base/property.c | 63 -
drivers/base/regmap/regcache-rbtree.c | 7 +-
drivers/base/regmap/regmap-mdio.c | 6 +-
drivers/base/regmap/regmap-spi.c | 36 +-
drivers/base/swnode.c | 6 -
drivers/base/topology.c | 10 +
drivers/bcma/host_pci.c | 6 +-
drivers/bcma/main.c | 2 +-
drivers/block/Kconfig | 26 +-
drivers/block/Makefile | 1 -
drivers/block/amiflop.c | 9 +-
drivers/block/aoe/aoeblk.c | 19 +-
drivers/block/ataflop.c | 161 +-
drivers/block/brd.c | 21 +-
drivers/block/cryptoloop.c | 206 -
drivers/block/drbd/drbd_int.h | 5 +-
drivers/block/drbd/drbd_main.c | 4 +-
drivers/block/drbd/drbd_req.c | 3 +-
drivers/block/floppy.c | 52 +-
drivers/block/loop.c | 421 +-
drivers/block/loop.h | 30 -
drivers/block/mtip32xx/mtip32xx.c | 6 +-
drivers/block/n64cart.c | 24 +-
drivers/block/nbd.c | 218 +-
drivers/block/null_blk/main.c | 195 +-
drivers/block/null_blk/null_blk.h | 6 +
drivers/block/paride/pcd.c | 312 +-
drivers/block/paride/pd.c | 148 +-
drivers/block/paride/pf.c | 236 +-
drivers/block/pktcdvd.c | 20 +-
drivers/block/ps3disk.c | 8 +-
drivers/block/ps3vram.c | 13 +-
drivers/block/rbd.c | 8 +-
drivers/block/rnbd/rnbd-clt.c | 15 +-
drivers/block/rnbd/rnbd-proto.h | 2 +-
drivers/block/rsxx/core.c | 4 +-
drivers/block/rsxx/dev.c | 19 +-
drivers/block/sunvdc.c | 14 +-
drivers/block/swim.c | 36 +-
drivers/block/swim3.c | 5 +-
drivers/block/sx8.c | 15 +-
drivers/block/virtio_blk.c | 194 +-
drivers/block/xen-blkback/xenbus.c | 2 +-
drivers/block/xen-blkfront.c | 9 +-
drivers/block/z2ram.c | 7 +-
drivers/block/zram/zram_drv.c | 121 +-
drivers/bluetooth/btintel.c | 239 +-
drivers/bluetooth/btintel.h | 11 +
drivers/bluetooth/btmrvl_main.c | 6 +-
drivers/bluetooth/btmtkuart.c | 13 +-
drivers/bluetooth/btrsi.c | 1 -
drivers/bluetooth/btrtl.c | 26 +-
drivers/bluetooth/btusb.c | 64 +-
drivers/bluetooth/hci_h5.c | 35 +-
drivers/bluetooth/hci_ldisc.c | 5 +-
drivers/bluetooth/hci_qca.c | 5 +-
drivers/bluetooth/hci_vhci.c | 122 +
drivers/bus/Kconfig | 2 +-
drivers/bus/brcmstb_gisb.c | 9 +-
drivers/bus/fsl-mc/Makefile | 3 +-
drivers/bus/fsl-mc/fsl-mc-private.h | 39 +-
drivers/bus/fsl-mc/obj-api.c | 103 +
drivers/bus/sun50i-de2.c | 7 +-
drivers/bus/ti-sysc.c | 276 +-
drivers/cdrom/cdrom.c | 63 +-
drivers/cdrom/gdrom.c | 7 +-
drivers/char/hw_random/Kconfig | 12 +-
drivers/char/hw_random/ixp4xx-rng.c | 4 +-
drivers/char/hw_random/meson-rng.c | 5 +-
drivers/char/hw_random/mtk-rng.c | 9 +-
drivers/char/hw_random/s390-trng.c | 4 +-
drivers/char/hw_random/virtio-rng.c | 86 +-
drivers/char/ipmi/Kconfig | 11 +-
drivers/char/ipmi/Makefile | 1 +
drivers/char/ipmi/bt-bmc.c | 69 +-
drivers/char/ipmi/ipmi_devintf.c | 8 +-
drivers/char/ipmi/ipmi_ipmb.c | 539 +
drivers/char/ipmi/ipmi_msghandler.c | 330 +-
drivers/char/ipmi/ipmi_si_intf.c | 8 +-
drivers/char/ipmi/ipmi_ssif.c | 4 +-
drivers/char/ipmi/ipmi_watchdog.c | 25 +-
drivers/char/ipmi/kcs_bmc_serio.c | 4 +-
drivers/char/mem.c | 8 +-
drivers/char/pcmcia/cm4000_cs.c | 9 +-
drivers/char/tpm/Kconfig | 2 +-
drivers/char/tpm/tpm2-space.c | 3 +
drivers/char/tpm/tpm_tis_core.c | 26 +-
drivers/char/tpm/tpm_tis_core.h | 4 +
drivers/char/tpm/tpm_tis_spi_main.c | 1 +
drivers/char/virtio_console.c | 9 +
drivers/char/xillybus/xillybus.h | 31 +-
drivers/char/xillybus/xillybus_core.c | 131 +-
drivers/char/xillybus/xillybus_of.c | 86 +-
drivers/char/xillybus/xillybus_pcie.c | 99 +-
drivers/char/xillybus/xillyusb.c | 1 +
drivers/clk/actions/owl-factor.c | 1 -
drivers/clk/at91/at91rm9200.c | 2 +-
drivers/clk/at91/at91sam9260.c | 2 +-
drivers/clk/at91/at91sam9g45.c | 2 +-
drivers/clk/at91/at91sam9n12.c | 2 +-
drivers/clk/at91/at91sam9rl.c | 2 +-
drivers/clk/at91/at91sam9x5.c | 2 +-
drivers/clk/at91/clk-generated.c | 46 +-
drivers/clk/at91/clk-main.c | 66 +
drivers/clk/at91/clk-master.c | 463 +-
drivers/clk/at91/clk-peripheral.c | 40 +-
drivers/clk/at91/clk-pll.c | 39 +
drivers/clk/at91/clk-programmable.c | 29 +-
drivers/clk/at91/clk-sam9x60-pll.c | 174 +-
drivers/clk/at91/clk-system.c | 20 +
drivers/clk/at91/clk-usb.c | 27 +
drivers/clk/at91/clk-utmi.c | 39 +
drivers/clk/at91/dt-compat.c | 2 +-
drivers/clk/at91/pmc.c | 178 +-
drivers/clk/at91/pmc.h | 29 +-
drivers/clk/at91/sam9x60.c | 6 +-
drivers/clk/at91/sama5d2.c | 2 +-
drivers/clk/at91/sama5d3.c | 2 +-
drivers/clk/at91/sama5d4.c | 2 +-
drivers/clk/at91/sama7g5.c | 29 +-
drivers/clk/clk-ast2600.c | 12 +-
drivers/clk/clk-composite.c | 78 +-
drivers/clk/clk-si5351.c | 8 +-
drivers/clk/clk-si5351.h | 2 +-
drivers/clk/clk-versaclock5.c | 4 +-
drivers/clk/clk.c | 5 +-
drivers/clk/imx/Kconfig | 7 +
drivers/clk/imx/Makefile | 2 +
drivers/clk/imx/clk-composite-7ulp.c | 88 +-
drivers/clk/imx/clk-composite-8m.c | 4 +-
drivers/clk/imx/clk-imx6ul.c | 9 +-
drivers/clk/imx/clk-imx7ulp.c | 20 +-
drivers/clk/imx/clk-imx8ulp.c | 569 +
drivers/clk/imx/clk-pfdv2.c | 23 +-
drivers/clk/imx/clk-pllv4.c | 35 +-
drivers/clk/imx/clk.h | 457 +-
drivers/clk/ingenic/cgu.c | 6 +-
drivers/clk/ingenic/jz4725b-cgu.c | 2 +-
drivers/clk/ingenic/jz4740-cgu.c | 2 +-
drivers/clk/ingenic/jz4760-cgu.c | 2 +-
drivers/clk/ingenic/jz4770-cgu.c | 2 +-
drivers/clk/ingenic/jz4780-cgu.c | 2 +-
drivers/clk/ingenic/x1000-cgu.c | 2 +-
drivers/clk/ingenic/x1830-cgu.c | 2 +-
drivers/clk/mediatek/Kconfig | 28 +-
drivers/clk/mediatek/Makefile | 8 +
drivers/clk/mediatek/clk-apmixed.c | 3 +
drivers/clk/mediatek/clk-cpumux.c | 3 +
drivers/clk/mediatek/clk-gate.c | 8 +
drivers/clk/mediatek/clk-mt6779-aud.c | 4 +-
drivers/clk/mediatek/clk-mt6779-cam.c | 4 +-
drivers/clk/mediatek/clk-mt6779-img.c | 4 +-
drivers/clk/mediatek/clk-mt6779-ipe.c | 4 +-
drivers/clk/mediatek/clk-mt6779-mfg.c | 4 +-
drivers/clk/mediatek/clk-mt6779-mm.c | 4 +-
drivers/clk/mediatek/clk-mt6779-vdec.c | 4 +-
drivers/clk/mediatek/clk-mt6779-venc.c | 4 +-
drivers/clk/mediatek/clk-mt6779.c | 2 +
drivers/clk/mediatek/clk-mt8195-apmixedsys.c | 145 +
drivers/clk/mediatek/clk-mt8195-apusys_pll.c | 92 +
drivers/clk/mediatek/clk-mt8195-cam.c | 142 +
drivers/clk/mediatek/clk-mt8195-ccu.c | 50 +
drivers/clk/mediatek/clk-mt8195-img.c | 96 +
drivers/clk/mediatek/clk-mt8195-imp_iic_wrap.c | 66 +
drivers/clk/mediatek/clk-mt8195-infra_ao.c | 206 +
drivers/clk/mediatek/clk-mt8195-ipe.c | 51 +
drivers/clk/mediatek/clk-mt8195-mfg.c | 47 +
drivers/clk/mediatek/clk-mt8195-peri_ao.c | 62 +
drivers/clk/mediatek/clk-mt8195-scp_adsp.c | 47 +
drivers/clk/mediatek/clk-mt8195-topckgen.c | 1273 +
drivers/clk/mediatek/clk-mt8195-vdec.c | 104 +
drivers/clk/mediatek/clk-mt8195-vdo0.c | 123 +
drivers/clk/mediatek/clk-mt8195-vdo1.c | 140 +
drivers/clk/mediatek/clk-mt8195-venc.c | 69 +
drivers/clk/mediatek/clk-mt8195-vpp0.c | 110 +
drivers/clk/mediatek/clk-mt8195-vpp1.c | 108 +
drivers/clk/mediatek/clk-mt8195-wpe.c | 143 +
drivers/clk/mediatek/clk-mtk.c | 29 +-
drivers/clk/mediatek/clk-mtk.h | 1 +
drivers/clk/mediatek/clk-mux.c | 6 +
drivers/clk/mediatek/clk-pll.c | 6 +-
drivers/clk/mediatek/reset.c | 2 +
drivers/clk/meson/meson8b.c | 163 +-
drivers/clk/meson/meson8b.h | 26 +-
drivers/clk/mvebu/ap-cpu-clk.c | 14 +-
drivers/clk/qcom/Kconfig | 43 +-
drivers/clk/qcom/Makefile | 3 +
drivers/clk/qcom/a53-pll.c | 4 +-
drivers/clk/qcom/camcc-sc7280.c | 2484 +
drivers/clk/qcom/clk-smd-rpm.c | 135 +-
drivers/clk/qcom/common.c | 8 +-
drivers/clk/qcom/dispcc-sm8250.c | 27 +-
drivers/clk/qcom/gcc-msm8953.c | 1 -
drivers/clk/qcom/gcc-msm8994.c | 1384 +-
drivers/clk/qcom/gcc-msm8996.c | 15 -
drivers/clk/qcom/gcc-msm8998.c | 705 +-
drivers/clk/qcom/gcc-qcm2290.c | 3044 ++
drivers/clk/qcom/gcc-sc7280.c | 85 -
drivers/clk/qcom/gcc-sdm660.c | 80 +-
drivers/clk/qcom/gdsc.c | 51 +-
drivers/clk/qcom/gdsc.h | 2 +
drivers/clk/qcom/gpucc-msm8998.c | 13 +-
drivers/clk/qcom/gpucc-sdm660.c | 15 +-
drivers/clk/qcom/kpss-xcc.c | 4 +-
drivers/clk/qcom/lpasscc-sc7280.c | 216 +
drivers/clk/qcom/mmcc-msm8998.c | 183 +-
drivers/clk/qcom/mmcc-sdm660.c | 75 +-
drivers/clk/qcom/videocc-sm8250.c | 27 +-
drivers/clk/renesas/r8a7795-cpg-mssr.c | 1 +
drivers/clk/renesas/r8a7796-cpg-mssr.c | 1 +
drivers/clk/renesas/r8a77965-cpg-mssr.c | 1 +
drivers/clk/renesas/r8a779a0-cpg-mssr.c | 191 +
drivers/clk/renesas/r9a07g044-cpg.c | 83 +-
drivers/clk/renesas/rcar-cpg-lib.c | 83 +
drivers/clk/renesas/rcar-cpg-lib.h | 7 +
drivers/clk/renesas/rcar-gen3-cpg.c | 89 +-
drivers/clk/renesas/rzg2l-cpg.c | 212 +
drivers/clk/renesas/rzg2l-cpg.h | 45 +-
drivers/clk/rockchip/Kconfig | 4 +-
drivers/clk/rockchip/clk-rk3399.c | 19 +-
drivers/clk/rockchip/clk-rk3568.c | 4 -
drivers/clk/samsung/Kconfig | 30 +-
drivers/clk/samsung/Makefile | 1 +
drivers/clk/samsung/clk-cpu.c | 18 +
drivers/clk/samsung/clk-exynos-audss.c | 4 +-
drivers/clk/samsung/clk-exynos4412-isp.c | 4 +-
drivers/clk/samsung/clk-exynos5433.c | 124 +-
drivers/clk/samsung/clk-exynos850.c | 835 +
drivers/clk/samsung/clk-pll.c | 196 +
drivers/clk/samsung/clk-pll.h | 2 +
drivers/clk/samsung/clk-s5pv210-audss.c | 4 +-
drivers/clk/samsung/clk.c | 2 +
drivers/clk/samsung/clk.h | 26 +
drivers/clk/sunxi-ng/Kconfig | 1 +
drivers/clk/sunxi-ng/ccu-sun4i-a10.c | 2 +-
drivers/clk/sunxi-ng/ccu-sun50i-a100-r.c | 3 +-
drivers/clk/sunxi-ng/ccu-sun50i-a100.c | 3 +-
drivers/clk/sunxi-ng/ccu-sun50i-a64.c | 7 +-
drivers/clk/sunxi-ng/ccu-sun50i-h6-r.c | 2 +-
drivers/clk/sunxi-ng/ccu-sun50i-h6.c | 7 +-
drivers/clk/sunxi-ng/ccu-sun50i-h616.c | 4 +-
drivers/clk/sunxi-ng/ccu-sun5i.c | 2 +-
drivers/clk/sunxi-ng/ccu-sun6i-a31.c | 2 +-
drivers/clk/sunxi-ng/ccu-sun8i-a23.c | 2 +-
drivers/clk/sunxi-ng/ccu-sun8i-a33.c | 2 +-
drivers/clk/sunxi-ng/ccu-sun8i-a83t.c | 7 +-
drivers/clk/sunxi-ng/ccu-sun8i-de2.c | 6 +-
drivers/clk/sunxi-ng/ccu-sun8i-h3.c | 2 +-
drivers/clk/sunxi-ng/ccu-sun8i-r.c | 2 +-
drivers/clk/sunxi-ng/ccu-sun8i-r40.c | 7 +-
drivers/clk/sunxi-ng/ccu-sun8i-v3s.c | 2 +-
drivers/clk/sunxi-ng/ccu-sun9i-a80-de.c | 8 +-
drivers/clk/sunxi-ng/ccu-sun9i-a80-usb.c | 7 +-
drivers/clk/sunxi-ng/ccu-sun9i-a80.c | 7 +-
drivers/clk/sunxi-ng/ccu-suniv-f1c100s.c | 2 +-
drivers/clk/sunxi-ng/ccu_common.c | 96 +-
drivers/clk/sunxi-ng/ccu_common.h | 6 +-
drivers/clk/sunxi-ng/ccu_mux.h | 1 -
drivers/clk/sunxi/clk-mod0.c | 4 +-
drivers/clk/sunxi/clk-sun6i-apb0-gates.c | 4 +-
drivers/clk/sunxi/clk-sun6i-apb0.c | 4 +-
drivers/clk/sunxi/clk-sun6i-ar100.c | 4 +-
drivers/clk/sunxi/clk-sun8i-apb0.c | 4 +-
drivers/clk/ti/clk-43xx.c | 1 +
drivers/clk/uniphier/clk-uniphier-core.c | 17 +
drivers/clk/uniphier/clk-uniphier-sys.c | 47 +
drivers/clk/uniphier/clk-uniphier.h | 6 +
drivers/clk/ux500/Makefile | 3 +
drivers/clk/ux500/prcc.h | 19 +
drivers/clk/ux500/reset-prcc.c | 181 +
drivers/clk/ux500/reset-prcc.h | 23 +
drivers/clk/ux500/u8500_of_clk.c | 30 +-
drivers/clk/versatile/Kconfig | 3 +-
drivers/clk/versatile/Makefile | 2 +-
drivers/clk/versatile/clk-icst.c | 9 +-
drivers/clocksource/Kconfig | 3 +
drivers/clocksource/arc_timer.c | 6 +-
drivers/clocksource/arm_arch_timer.c | 243 +-
drivers/clocksource/timer-riscv.c | 9 +
drivers/comedi/drivers/dt9812.c | 115 +-
drivers/comedi/drivers/ni_usb6501.c | 10 +
drivers/comedi/drivers/vmk80xx.c | 28 +-
drivers/counter/104-quad-8.c | 699 +-
drivers/counter/Kconfig | 6 +-
drivers/counter/Makefile | 1 +
drivers/counter/counter-chrdev.c | 573 +
drivers/counter/counter-chrdev.h | 14 +
drivers/counter/counter-core.c | 191 +
drivers/counter/counter-sysfs.c | 959 +
drivers/counter/counter-sysfs.h | 13 +
drivers/counter/counter.c | 1496 -
drivers/counter/ftm-quaddec.c | 60 +-
drivers/counter/intel-qep.c | 146 +-
drivers/counter/interrupt-cnt.c | 62 +-
drivers/counter/microchip-tcb-capture.c | 93 +-
drivers/counter/stm32-lptimer-cnt.c | 212 +-
drivers/counter/stm32-timer-cnt.c | 195 +-
drivers/counter/ti-eqep.c | 180 +-
drivers/cpufreq/acpi-cpufreq.c | 3 +-
drivers/cpufreq/amd_freq_sensitivity.c | 3 +-
drivers/cpufreq/cppc_cpufreq.c | 2 -
drivers/cpufreq/cpufreq.c | 19 +-
drivers/cpufreq/cpufreq_conservative.c | 6 +-
drivers/cpufreq/cpufreq_ondemand.c | 16 +-
drivers/cpufreq/intel_pstate.c | 156 +-
drivers/cpufreq/mediatek-cpufreq-hw.c | 2 +-
drivers/cpufreq/powernv-cpufreq.c | 4 +-
drivers/cpufreq/s3c2440-cpufreq.c | 2 +
drivers/cpufreq/s5pv210-cpufreq.c | 2 +-
drivers/cpufreq/tegra186-cpufreq.c | 4 +
drivers/cpufreq/tegra194-cpufreq.c | 8 +-
drivers/cpuidle/Kconfig.arm | 3 +-
drivers/cpuidle/cpuidle-qcom-spm.c | 318 +-
drivers/cpuidle/cpuidle-tegra.c | 3 +
drivers/cpuidle/sysfs.c | 5 +-
drivers/crypto/caam/caampkc.c | 19 +-
drivers/crypto/caam/regs.h | 3 +
drivers/crypto/ccp/ccp-dev-v3.c | 5 +-
drivers/crypto/ccp/ccp-dev-v5.c | 5 +-
drivers/crypto/ccp/sev-dev.c | 2 +-
drivers/crypto/ccree/cc_driver.c | 3 +-
drivers/crypto/chelsio/chcr_crypto.h | 14 +-
drivers/crypto/hisilicon/qm.c | 76 +-
drivers/crypto/hisilicon/zip/zip_main.c | 2 +-
drivers/crypto/img-hash.c | 7 +-
drivers/crypto/keembay/Kconfig | 19 +
drivers/crypto/keembay/Makefile | 2 +
drivers/crypto/keembay/keembay-ocs-ecc.c | 1017 +
drivers/crypto/marvell/cesa/cesa.c | 1 -
drivers/crypto/marvell/octeontx2/otx2_cptvf_algs.c | 1 +
drivers/crypto/qat/qat_4xxx/adf_4xxx_hw_data.c | 35 +-
drivers/crypto/qat/qat_4xxx/adf_4xxx_hw_data.h | 10 +
drivers/crypto/qat/qat_4xxx/adf_drv.c | 7 +-
drivers/crypto/qat/qat_c3xxx/adf_c3xxx_hw_data.c | 89 +-
drivers/crypto/qat/qat_c3xxx/adf_c3xxx_hw_data.h | 13 +-
drivers/crypto/qat/qat_c3xxx/adf_drv.c | 7 +-
drivers/crypto/qat/qat_c62x/adf_c62x_hw_data.c | 87 +-
drivers/crypto/qat/qat_c62x/adf_c62x_hw_data.h | 12 -
drivers/crypto/qat/qat_c62x/adf_drv.c | 7 +-
drivers/crypto/qat/qat_common/adf_accel_devices.h | 29 +-
drivers/crypto/qat/qat_common/adf_aer.c | 10 +-
drivers/crypto/qat/qat_common/adf_common_drv.h | 12 +-
drivers/crypto/qat/qat_common/adf_gen2_hw_data.c | 98 +
drivers/crypto/qat/qat_common/adf_gen2_hw_data.h | 27 +
drivers/crypto/qat/qat_common/adf_init.c | 5 +
drivers/crypto/qat/qat_common/adf_isr.c | 190 +-
drivers/crypto/qat/qat_common/adf_pf2vf_msg.c | 238 +-
drivers/crypto/qat/qat_common/adf_pf2vf_msg.h | 9 -
drivers/crypto/qat/qat_common/adf_vf2pf_msg.c | 4 +-
drivers/crypto/qat/qat_common/adf_vf_isr.c | 30 +-
.../crypto/qat/qat_dh895xcc/adf_dh895xcc_hw_data.c | 123 +-
.../crypto/qat/qat_dh895xcc/adf_dh895xcc_hw_data.h | 14 +-
drivers/crypto/qat/qat_dh895xcc/adf_drv.c | 7 +-
drivers/crypto/s5p-sss.c | 2 +
drivers/crypto/sa2ul.c | 13 +-
drivers/cxl/acpi.c | 139 +-
drivers/cxl/core/Makefile | 1 +
drivers/cxl/core/bus.c | 119 +-
drivers/cxl/core/core.h | 11 +-
drivers/cxl/core/mbox.c | 787 +
drivers/cxl/core/memdev.c | 118 +-
drivers/cxl/core/pmem.c | 39 +-
drivers/cxl/cxl.h | 119 +-
drivers/cxl/cxlmem.h | 202 +-
drivers/cxl/pci.c | 1240 +-
drivers/cxl/pci.h | 14 +-
drivers/cxl/pmem.c | 163 +-
drivers/dax/super.c | 100 +-
drivers/devfreq/devfreq.c | 28 +-
drivers/devfreq/event/exynos-ppmu.c | 12 +-
drivers/devfreq/governor.h | 3 +
drivers/devfreq/tegra30-devfreq.c | 109 +-
drivers/dma-buf/Makefile | 2 +-
drivers/dma-buf/dma-buf.c | 206 +-
drivers/dma-buf/dma-fence.c | 13 +-
drivers/dma-buf/dma-resv.c | 497 +-
drivers/dma-buf/heaps/system_heap.c | 5 +-
drivers/dma-buf/seqno-fence.c | 71 -
drivers/dma/Kconfig | 2 +-
drivers/dma/altera-msgdma.c | 10 +-
drivers/dma/at_xdmac.c | 69 +-
drivers/dma/bestcomm/ata.c | 2 +-
drivers/dma/bestcomm/bestcomm.c | 22 +-
drivers/dma/bestcomm/fec.c | 4 +-
drivers/dma/bestcomm/gen_bd.c | 4 +-
drivers/dma/dma-jz4780.c | 1 +
drivers/dma/dmaengine.c | 3 +-
drivers/dma/dmaengine.h | 2 +-
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c | 112 +-
drivers/dma/dw-axi-dmac/dw-axi-dmac.h | 35 +-
drivers/dma/dw-edma/dw-edma-core.c | 1 -
drivers/dma/dw-edma/dw-edma-pcie.c | 17 +-
drivers/dma/dw/pci.c | 6 +-
drivers/dma/fsl-edma-common.c | 35 +-
drivers/dma/fsl-edma-common.h | 4 +
drivers/dma/fsl-edma.c | 7 +
drivers/dma/hisi_dma.c | 6 +-
drivers/dma/hsu/pci.c | 6 +-
drivers/dma/idxd/device.c | 29 +-
drivers/dma/idxd/dma.c | 5 +-
drivers/dma/idxd/idxd.h | 2 -
drivers/dma/idxd/init.c | 14 +-
drivers/dma/idxd/irq.c | 8 +-
drivers/dma/idxd/registers.h | 4 +-
drivers/dma/imx-sdma.c | 28 +-
drivers/dma/ioat/init.c | 10 +-
drivers/dma/milbeaut-hdmac.c | 2 +-
drivers/dma/mmp_pdma.c | 7 +-
drivers/dma/plx_dma.c | 10 +-
drivers/dma/pxa_dma.c | 10 +-
drivers/dma/qcom/bam_dma.c | 90 +-
drivers/dma/qcom/qcom_adm.c | 56 +-
drivers/dma/sa11x0-dma.c | 11 +-
drivers/dma/sh/rcar-dmac.c | 13 +-
drivers/dma/sh/rz-dmac.c | 16 +-
drivers/dma/sh/shdma-base.c | 8 -
drivers/dma/sprd-dma.c | 3 -
drivers/dma/stm32-dma.c | 24 +-
drivers/dma/stm32-mdma.c | 3 +-
drivers/dma/tegra20-apb-dma.c | 6 -
drivers/dma/tegra210-adma.c | 58 +-
drivers/dma/ti/k3-udma.c | 32 +-
drivers/dma/xilinx/xilinx_dma.c | 14 +-
drivers/dma/xilinx/xilinx_dpdma.c | 32 +-
drivers/dma/xilinx/zynqmp_dma.c | 79 +-
drivers/edac/al_mc_edac.c | 12 +-
drivers/edac/amd64_edac.c | 22 +-
drivers/edac/edac_mc.c | 42 +-
drivers/edac/edac_mc_sysfs.c | 8 +-
drivers/edac/sb_edac.c | 2 +-
drivers/edac/ti_edac.c | 7 +-
drivers/extcon/Kconfig | 2 +-
drivers/extcon/extcon-axp288.c | 31 +-
drivers/extcon/extcon-max3355.c | 1 -
drivers/extcon/extcon-usb-gpio.c | 3 +-
drivers/extcon/extcon-usbc-tusb320.c | 163 +-
drivers/firewire/core-cdev.c | 32 +-
drivers/firewire/net.c | 14 +-
drivers/firewire/sbp2.c | 10 +-
drivers/firmware/arm_ffa/driver.c | 53 +-
drivers/firmware/cirrus/cs_dsp.c | 142 +-
drivers/firmware/efi/efi.c | 5 +-
drivers/firmware/efi/memmap.c | 2 +-
drivers/firmware/psci/psci_checker.c | 2 +-
drivers/firmware/qcom_scm.c | 6 +-
drivers/firmware/stratix10-svc.c | 4 +-
drivers/firmware/tegra/bpmp-debugfs.c | 26 +-
drivers/firmware/tegra/bpmp-tegra210.c | 7 +-
drivers/firmware/xilinx/zynqmp.c | 63 +
drivers/fsi/fsi-occ.c | 218 +-
drivers/fsi/fsi-sbefifo.c | 28 +-
drivers/gpio/Kconfig | 123 +-
drivers/gpio/Makefile | 1 +
drivers/gpio/gpio-aggregator.c | 25 +-
drivers/gpio/gpio-amdpt.c | 4 +-
drivers/gpio/gpio-max7300.c | 4 +-
drivers/gpio/gpio-max7301.c | 4 +-
drivers/gpio/gpio-max730x.c | 6 +-
drivers/gpio/gpio-max77620.c | 1 -
drivers/gpio/gpio-mc33880.c | 2 -
drivers/gpio/gpio-mlxbf2.c | 147 +-
drivers/gpio/gpio-realtek-otto.c | 2 +-
drivers/gpio/gpio-tegra186.c | 114 +-
drivers/gpio/gpio-tps65218.c | 1 -
drivers/gpio/gpio-uniphier.c | 18 +-
drivers/gpio/gpio-virtio.c | 302 +-
drivers/gpio/gpio-xgs-iproc.c | 2 +-
drivers/gpio/gpio-xilinx.c | 6 +-
drivers/gpio/gpio-zynqmp-modepin.c | 162 +
drivers/gpio/gpiolib-acpi.c | 5 +-
drivers/gpio/gpiolib.c | 9 +-
drivers/gpu/drm/Kconfig | 29 +-
drivers/gpu/drm/Makefile | 1 -
drivers/gpu/drm/amd/amdgpu/Makefile | 6 +-
drivers/gpu/drm/amd/amdgpu/aldebaran.c | 2 +
drivers/gpu/drm/amd/amdgpu/amdgpu.h | 11 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 17 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h | 13 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 64 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c | 2 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.h | 2 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 4 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 143 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.h | 8 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c | 256 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.h | 6 -
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 147 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_df.h | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c | 873 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.h | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 669 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 12 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c | 11 +
drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 2 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.h | 7 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c | 11 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 9 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | 6 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 44 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_mca.c | 8 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_mca.h | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 59 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_object.h | 2 -
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 755 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h | 46 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 394 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.h | 25 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c | 22 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 18 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h | 19 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 44 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 69 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h | 3 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c | 175 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_umc.h | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_umr.h | 51 +
drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 119 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.h | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 43 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vce.h | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c | 192 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.h | 4 +
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | 10 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 30 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c | 4 +-
drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h | 7 +-
drivers/gpu/drm/amd/amdgpu/athub_v2_0.c | 7 +-
drivers/gpu/drm/amd/amdgpu/athub_v2_1.c | 9 +-
drivers/gpu/drm/amd/amdgpu/beige_goby_reg_init.c | 54 -
.../gpu/drm/amd/amdgpu/cyan_skillfish_reg_init.c | 51 -
drivers/gpu/drm/amd/amdgpu/df_v3_6.c | 31 +
drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c | 411 +-
drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 4 +
drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 4 +
drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 235 +-
drivers/gpu/drm/amd/amdgpu/gfx_v9_4_2.c | 5 +
drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c | 4 +
drivers/gpu/drm/amd/amdgpu/gfxhub_v1_1.c | 18 +-
drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c | 6 +-
drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c | 91 +-
drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c | 4 +-
drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 136 +-
drivers/gpu/drm/amd/amdgpu/hdp_v4_0.c | 15 +-
drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.c | 20 -
drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.h | 20 +
drivers/gpu/drm/amd/amdgpu/jpeg_v2_5.c | 40 +-
drivers/gpu/drm/amd/amdgpu/mca_v3_0.c | 9 +-
drivers/gpu/drm/amd/amdgpu/mmhub_v2_0.c | 73 +-
drivers/gpu/drm/amd/amdgpu/mmhub_v2_3.c | 6 +-
drivers/gpu/drm/amd/amdgpu/navi10_ih.c | 13 +-
drivers/gpu/drm/amd/amdgpu/navi10_reg_init.c | 55 -
drivers/gpu/drm/amd/amdgpu/navi12_reg_init.c | 52 -
drivers/gpu/drm/amd/amdgpu/navi14_reg_init.c | 53 -
drivers/gpu/drm/amd/amdgpu/nbio_v2_3.c | 31 +
drivers/gpu/drm/amd/amdgpu/nbio_v2_3.h | 1 +
drivers/gpu/drm/amd/amdgpu/nbio_v7_4.c | 66 +-
drivers/gpu/drm/amd/amdgpu/nbio_v7_4.h | 1 +
drivers/gpu/drm/amd/amdgpu/nv.c | 383 +-
drivers/gpu/drm/amd/amdgpu/nv.h | 12 +-
drivers/gpu/drm/amd/amdgpu/psp_v10_0.c | 22 +-
drivers/gpu/drm/amd/amdgpu/psp_v11_0.c | 93 +-
drivers/gpu/drm/amd/amdgpu/psp_v12_0.c | 14 +-
drivers/gpu/drm/amd/amdgpu/psp_v13_0.c | 14 +-
drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c | 100 +-
drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c | 32 +-
drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c | 59 +-
.../gpu/drm/amd/amdgpu/sienna_cichlid_reg_init.c | 54 -
drivers/gpu/drm/amd/amdgpu/soc15.c | 346 +-
drivers/gpu/drm/amd/amdgpu/soc15.h | 5 +-
drivers/gpu/drm/amd/amdgpu/ta_ras_if.h | 51 +-
drivers/gpu/drm/amd/amdgpu/umc_v6_7.c | 34 +
drivers/gpu/drm/amd/amdgpu/uvd_v3_1.c | 24 +-
drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c | 24 +-
drivers/gpu/drm/amd/amdgpu/uvd_v5_0.c | 24 +-
drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c | 35 +-
drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c | 43 +-
drivers/gpu/drm/amd/amdgpu/vangogh_reg_init.c | 50 -
drivers/gpu/drm/amd/amdgpu/vce_v2_0.c | 23 +-
drivers/gpu/drm/amd/amdgpu/vce_v3_0.c | 32 +-
drivers/gpu/drm/amd/amdgpu/vce_v4_0.c | 52 +-
drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c | 15 +-
drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c | 28 +-
drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c | 44 +-
drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c | 62 +-
drivers/gpu/drm/amd/amdgpu/yellow_carp_reg_init.c | 51 -
drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 79 +-
drivers/gpu/drm/amd/amdkfd/kfd_device.c | 269 +-
.../gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 7 +-
.../gpu/drm/amd/amdkfd/kfd_device_queue_manager.h | 2 +-
drivers/gpu/drm/amd/amdkfd/kfd_flat_memory.c | 2 +-
drivers/gpu/drm/amd/amdkfd/kfd_int_process_v9.c | 4 +-
drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c | 1 -
drivers/gpu/drm/amd/amdkfd/kfd_migrate.c | 191 +-
drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager.h | 3 +-
drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_cik.c | 32 +-
drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v10.c | 19 +-
drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v9.c | 19 +-
drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_vi.c | 35 +-
drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 28 +-
drivers/gpu/drm/amd/amdkfd/kfd_process.c | 115 +-
.../gpu/drm/amd/amdkfd/kfd_process_queue_manager.c | 24 +-
drivers/gpu/drm/amd/amdkfd/kfd_svm.c | 262 +-
drivers/gpu/drm/amd/amdkfd/kfd_svm.h | 1 +
drivers/gpu/drm/amd/amdkfd/kfd_topology.c | 19 +-
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 1100 +-
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 103 +-
.../drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 44 +-
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c | 16 +-
.../drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 71 +-
.../amd/display/amdgpu_dm/amdgpu_dm_mst_types.c | 156 +-
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c | 10 +-
drivers/gpu/drm/amd/display/amdgpu_dm/dc_fpu.c | 2 +-
drivers/gpu/drm/amd/display/dc/Makefile | 3 +-
drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c | 102 +-
.../gpu/drm/amd/display/dc/bios/command_table2.c | 14 +-
.../amd/display/dc/bios/command_table_helper2.c | 1 +
drivers/gpu/drm/amd/display/dc/calcs/dcn_calcs.c | 55 +-
drivers/gpu/drm/amd/display/dc/clk_mgr/Makefile | 9 +
drivers/gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c | 21 +-
.../amd/display/dc/clk_mgr/dcn20/dcn20_clk_mgr.c | 12 +-
.../amd/display/dc/clk_mgr/dcn201/dcn201_clk_mgr.c | 258 +
.../amd/display/dc/clk_mgr/dcn201/dcn201_clk_mgr.h | 34 +
.../drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c | 16 +-
.../drm/amd/display/dc/clk_mgr/dcn301/vg_clk_mgr.c | 4 +-
.../amd/display/dc/clk_mgr/dcn31/dcn31_clk_mgr.c | 40 +-
drivers/gpu/drm/amd/display/dc/core/dc.c | 389 +-
drivers/gpu/drm/amd/display/dc/core/dc_link.c | 1111 +-
drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c | 26 +-
drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c | 1830 +-
drivers/gpu/drm/amd/display/dc/core/dc_link_dpcd.c | 11 +-
drivers/gpu/drm/amd/display/dc/core/dc_link_dpia.c | 962 +
.../gpu/drm/amd/display/dc/core/dc_link_enc_cfg.c | 516 +-
drivers/gpu/drm/amd/display/dc/core/dc_link_hwss.c | 361 +-
drivers/gpu/drm/amd/display/dc/core/dc_resource.c | 165 +-
drivers/gpu/drm/amd/display/dc/core/dc_stat.c | 8 +
drivers/gpu/drm/amd/display/dc/core/dc_stream.c | 4 +
drivers/gpu/drm/amd/display/dc/dc.h | 108 +-
drivers/gpu/drm/amd/display/dc/dc_dp_types.h | 305 +-
drivers/gpu/drm/amd/display/dc/dc_dsc.h | 11 +-
drivers/gpu/drm/amd/display/dc/dc_link.h | 38 +-
drivers/gpu/drm/amd/display/dc/dc_stream.h | 13 +
drivers/gpu/drm/amd/display/dc/dc_types.h | 23 +
drivers/gpu/drm/amd/display/dc/dce/dce_abm.h | 16 +
drivers/gpu/drm/amd/display/dc/dce/dce_audio.c | 6 +-
drivers/gpu/drm/amd/display/dc/dce/dce_aux.c | 49 +-
.../gpu/drm/amd/display/dc/dce/dce_clock_source.h | 9 +
drivers/gpu/drm/amd/display/dc/dce/dce_hwseq.h | 44 +-
.../drm/amd/display/dc/dce/dce_stream_encoder.c | 2 +
drivers/gpu/drm/amd/display/dc/dce/dmub_abm.c | 21 +
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c | 22 +
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.h | 1 +
.../amd/display/dc/dce110/dce110_hw_sequencer.c | 168 +-
.../gpu/drm/amd/display/dc/dcn10/dcn10_dpp_dscl.c | 12 +-
.../drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c | 130 +-
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_ipp.h | 33 +-
.../drm/amd/display/dc/dcn10/dcn10_link_encoder.c | 9 +
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_optc.c | 2 +-
.../gpu/drm/amd/display/dc/dcn10/dcn10_resource.c | 2 +-
.../amd/display/dc/dcn10/dcn10_stream_encoder.c | 31 +
.../amd/display/dc/dcn10/dcn10_stream_encoder.h | 2 +
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_dccg.h | 34 +-
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c | 52 +-
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_optc.c | 5 +
.../gpu/drm/amd/display/dc/dcn20/dcn20_resource.c | 57 +-
.../amd/display/dc/dcn20/dcn20_stream_encoder.c | 17 +-
.../amd/display/dc/dcn20/dcn20_stream_encoder.h | 1 +
drivers/gpu/drm/amd/display/dc/dcn201/Makefile | 36 +
.../gpu/drm/amd/display/dc/dcn201/dcn201_dccg.c | 84 +
.../gpu/drm/amd/display/dc/dcn201/dcn201_dccg.h | 37 +
drivers/gpu/drm/amd/display/dc/dcn201/dcn201_dpp.c | 316 +
drivers/gpu/drm/amd/display/dc/dcn201/dcn201_dpp.h | 83 +
.../gpu/drm/amd/display/dc/dcn201/dcn201_hubbub.c | 107 +
.../gpu/drm/amd/display/dc/dcn201/dcn201_hubbub.h | 45 +
.../gpu/drm/amd/display/dc/dcn201/dcn201_hubp.c | 150 +
.../gpu/drm/amd/display/dc/dcn201/dcn201_hubp.h | 132 +
.../gpu/drm/amd/display/dc/dcn201/dcn201_hwseq.c | 630 +
.../gpu/drm/amd/display/dc/dcn201/dcn201_hwseq.h | 46 +
.../gpu/drm/amd/display/dc/dcn201/dcn201_init.c | 131 +
.../gpu/drm/amd/display/dc/dcn201/dcn201_init.h | 33 +
.../amd/display/dc/dcn201/dcn201_link_encoder.c | 209 +
.../amd/display/dc/dcn201/dcn201_link_encoder.h | 59 +
drivers/gpu/drm/amd/display/dc/dcn201/dcn201_mpc.c | 125 +
drivers/gpu/drm/amd/display/dc/dcn201/dcn201_mpc.h | 86 +
drivers/gpu/drm/amd/display/dc/dcn201/dcn201_opp.c | 72 +
drivers/gpu/drm/amd/display/dc/dcn201/dcn201_opp.h | 74 +
.../gpu/drm/amd/display/dc/dcn201/dcn201_optc.c | 203 +
.../gpu/drm/amd/display/dc/dcn201/dcn201_optc.h | 74 +
.../drm/amd/display/dc/dcn201/dcn201_resource.c | 1307 +
.../drm/amd/display/dc/dcn201/dcn201_resource.h | 50 +
.../gpu/drm/amd/display/dc/dcn21/dcn21_resource.c | 2 +-
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_afmt.c | 24 +-
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_afmt.h | 24 +
.../amd/display/dc/dcn30/dcn30_dio_link_encoder.c | 4 +
.../display/dc/dcn30/dcn30_dio_stream_encoder.c | 18 +-
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_dpp.c | 73 +-
.../gpu/drm/amd/display/dc/dcn30/dcn30_dpp_cm.c | 8 +-
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hubp.c | 6 -
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.c | 5 +-
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_init.c | 1 +
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_mpc.c | 7 +-
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_optc.c | 17 +-
.../gpu/drm/amd/display/dc/dcn30/dcn30_resource.c | 50 +-
.../gpu/drm/amd/display/dc/dcn30/dcn30_resource.h | 7 +
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_vpg.c | 200 +-
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_vpg.h | 15 +-
drivers/gpu/drm/amd/display/dc/dcn301/Makefile | 26 -
.../drm/amd/display/dc/dcn301/dcn301_resource.c | 263 +-
.../drm/amd/display/dc/dcn301/dcn301_resource.h | 3 +
.../drm/amd/display/dc/dcn302/dcn302_resource.c | 8 +-
.../drm/amd/display/dc/dcn303/dcn303_resource.c | 16 +-
drivers/gpu/drm/amd/display/dc/dcn31/Makefile | 4 +-
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_afmt.c | 92 +
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_afmt.h | 126 +
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_apg.c | 173 +
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_apg.h | 115 +
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_dccg.c | 383 +-
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_dccg.h | 52 +-
.../amd/display/dc/dcn31/dcn31_dio_link_encoder.c | 136 +-
.../display/dc/dcn31/dcn31_hpo_dp_link_encoder.c | 616 +
.../display/dc/dcn31/dcn31_hpo_dp_link_encoder.h | 222 +
.../display/dc/dcn31/dcn31_hpo_dp_stream_encoder.c | 752 +
.../display/dc/dcn31/dcn31_hpo_dp_stream_encoder.h | 241 +
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hwseq.c | 163 +-
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hwseq.h | 3 +-
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_init.c | 4 +-
.../gpu/drm/amd/display/dc/dcn31/dcn31_resource.c | 349 +-
.../gpu/drm/amd/display/dc/dcn31/dcn31_resource.h | 10 +
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_vpg.c | 87 +
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_vpg.h | 162 +
drivers/gpu/drm/amd/display/dc/dm_cp_psp.h | 3 +
drivers/gpu/drm/amd/display/dc/dm_helpers.h | 11 +
drivers/gpu/drm/amd/display/dc/dml/Makefile | 10 +-
.../gpu/drm/amd/display/dc/dml/dcn20/dcn20_fpu.c | 102 +
.../gpu/drm/amd/display/dc/dml/dcn20/dcn20_fpu.h | 34 +
.../display/dc/dml/dcn20/display_rq_dlg_calc_20.c | 158 +-
.../display/dc/dml/dcn20/display_rq_dlg_calc_20.h | 4 +-
.../dc/dml/dcn20/display_rq_dlg_calc_20v2.c | 156 +-
.../dc/dml/dcn20/display_rq_dlg_calc_20v2.h | 4 +-
.../amd/display/dc/dml/dcn21/display_mode_vba_21.c | 236 +-
.../display/dc/dml/dcn21/display_rq_dlg_calc_21.c | 156 +-
.../display/dc/dml/dcn21/display_rq_dlg_calc_21.h | 4 +-
drivers/gpu/drm/amd/display/dc/dml/dcn2x/dcn2x.c | 102 -
drivers/gpu/drm/amd/display/dc/dml/dcn2x/dcn2x.h | 34 -
.../amd/display/dc/dml/dcn30/display_mode_vba_30.c | 13 +-
.../display/dc/dml/dcn30/display_rq_dlg_calc_30.c | 132 +-
.../display/dc/dml/dcn30/display_rq_dlg_calc_30.h | 4 +-
.../gpu/drm/amd/display/dc/dml/dcn301/dcn301_fpu.c | 390 +
.../gpu/drm/amd/display/dc/dml/dcn301/dcn301_fpu.h | 42 +
.../amd/display/dc/dml/dcn31/display_mode_vba_31.c | 20 +-
.../display/dc/dml/dcn31/display_rq_dlg_calc_31.c | 166 +-
.../display/dc/dml/dcn31/display_rq_dlg_calc_31.h | 4 +-
.../drm/amd/display/dc/dml/display_mode_enums.h | 4 +-
.../gpu/drm/amd/display/dc/dml/display_mode_lib.c | 1 +
.../gpu/drm/amd/display/dc/dml/display_mode_lib.h | 5 +-
.../amd/display/dc/dml/display_rq_dlg_helpers.c | 256 +-
.../amd/display/dc/dml/display_rq_dlg_helpers.h | 20 +-
.../amd/display/dc/dml/dml1_display_rq_dlg_calc.c | 246 +-
.../amd/display/dc/dml/dml1_display_rq_dlg_calc.h | 10 +-
.../drm/amd/display/dc/{ => dml}/dsc/qp_tables.h | 0
.../gpu/drm/amd/display/dc/dml/dsc/rc_calc_fpu.c | 291 +
.../gpu/drm/amd/display/dc/dml/dsc/rc_calc_fpu.h | 94 +
drivers/gpu/drm/amd/display/dc/dsc/Makefile | 29 -
drivers/gpu/drm/amd/display/dc/dsc/dc_dsc.c | 195 +-
drivers/gpu/drm/amd/display/dc/dsc/rc_calc.c | 259 -
drivers/gpu/drm/amd/display/dc/dsc/rc_calc.h | 50 +-
drivers/gpu/drm/amd/display/dc/dsc/rc_calc_dpi.c | 1 -
drivers/gpu/drm/amd/display/dc/gpio/hw_factory.c | 1 +
drivers/gpu/drm/amd/display/dc/gpio/hw_translate.c | 1 +
drivers/gpu/drm/amd/display/dc/inc/core_types.h | 36 +-
drivers/gpu/drm/amd/display/dc/inc/dc_link_ddc.h | 1 +
drivers/gpu/drm/amd/display/dc/inc/dc_link_dp.h | 45 +-
drivers/gpu/drm/amd/display/dc/inc/dc_link_dpia.h | 99 +
drivers/gpu/drm/amd/display/dc/inc/hw/abm.h | 1 +
.../drm/amd/display/dc/inc/hw/clk_mgr_internal.h | 13 +
drivers/gpu/drm/amd/display/dc/inc/hw/dccg.h | 32 +
drivers/gpu/drm/amd/display/dc/inc/hw/dpp.h | 14 +
drivers/gpu/drm/amd/display/dc/inc/hw/dwb.h | 5 +-
drivers/gpu/drm/amd/display/dc/inc/hw/hw_shared.h | 4 +
.../gpu/drm/amd/display/dc/inc/hw/link_encoder.h | 97 +
drivers/gpu/drm/amd/display/dc/inc/hw/mpc.h | 2 +
.../gpu/drm/amd/display/dc/inc/hw/stream_encoder.h | 87 +-
.../drm/amd/display/dc/inc/hw/timing_generator.h | 3 +
drivers/gpu/drm/amd/display/dc/inc/hw_sequencer.h | 2 +-
.../drm/amd/display/dc/inc/hw_sequencer_private.h | 8 +
drivers/gpu/drm/amd/display/dc/inc/link_enc_cfg.h | 26 +-
drivers/gpu/drm/amd/display/dc/inc/link_hwss.h | 1 +
drivers/gpu/drm/amd/display/dc/inc/resource.h | 19 +
drivers/gpu/drm/amd/display/dc/irq/Makefile | 10 +
.../amd/display/dc/irq/dcn20/irq_service_dcn20.c | 25 +
.../amd/display/dc/irq/dcn20/irq_service_dcn20.h | 2 +
.../amd/display/dc/irq/dcn201/irq_service_dcn201.c | 374 +
.../amd/display/dc/irq/dcn201/irq_service_dcn201.h | 34 +
.../amd/display/dc/irq/dcn21/irq_service_dcn21.c | 25 +
.../amd/display/dc/irq/dcn21/irq_service_dcn21.h | 2 +
drivers/gpu/drm/amd/display/dc/irq/irq_service.c | 2 +-
drivers/gpu/drm/amd/display/dc/irq/irq_service.h | 4 +
drivers/gpu/drm/amd/display/dc/os_types.h | 2 +
.../display/dc/virtual/virtual_stream_encoder.c | 5 +-
drivers/gpu/drm/amd/display/dmub/dmub_srv.h | 11 +
drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h | 275 +-
drivers/gpu/drm/amd/display/dmub/src/dmub_dcn31.c | 13 +
drivers/gpu/drm/amd/display/dmub/src/dmub_dcn31.h | 2 +
drivers/gpu/drm/amd/display/dmub/src/dmub_srv.c | 21 +-
.../gpu/drm/amd/display/dmub/src/dmub_srv_stat.c | 16 +
.../drm/amd/display/include/bios_parser_types.h | 8 +
drivers/gpu/drm/amd/display/include/dal_asic_id.h | 3 +-
drivers/gpu/drm/amd/display/include/dal_types.h | 1 +
drivers/gpu/drm/amd/display/include/dpcd_defs.h | 17 +
.../amd/display/include/grph_object_ctrl_defs.h | 1 +
.../gpu/drm/amd/display/include/grph_object_defs.h | 12 +
.../gpu/drm/amd/display/include/grph_object_id.h | 8 +
.../gpu/drm/amd/display/include/i2caux_interface.h | 3 +
.../drm/amd/display/include/link_service_types.h | 86 +-
drivers/gpu/drm/amd/display/include/logger_types.h | 6 +
.../drm/amd/display/modules/color/color_gamma.c | 32 +-
.../drm/amd/display/modules/freesync/freesync.c | 15 +-
.../gpu/drm/amd/display/modules/hdcp/hdcp_psp.c | 6 +-
drivers/gpu/drm/amd/display/modules/inc/mod_hdcp.h | 2 +
drivers/gpu/drm/amd/include/amd_shared.h | 5 +-
.../amd/include/asic_reg/clk/clk_11_0_1_offset.h | 32 +
.../amd/include/asic_reg/clk/clk_11_0_1_sh_mask.h | 37 +
.../amd/include/asic_reg/dcn/dcn_2_0_3_offset.h | 6193 +++
.../amd/include/asic_reg/dcn/dcn_2_0_3_sh_mask.h | 22091 +++++++++
.../amd/include/asic_reg/dcn/dcn_3_1_2_offset.h | 2 +
.../amd/include/asic_reg/dcn/dcn_3_1_2_sh_mask.h | 8 +
.../drm/amd/include/asic_reg/df/df_3_6_offset.h | 5 +
.../drm/amd/include/asic_reg/df/df_3_6_sh_mask.h | 132 +
.../amd/include/asic_reg/dpcs/dpcs_2_0_3_offset.h | 151 +
.../amd/include/asic_reg/dpcs/dpcs_2_0_3_sh_mask.h | 952 +
.../amd/include/asic_reg/mp/mp_11_0_8_sh_mask.h | 355 +
drivers/gpu/drm/amd/include/atombios.h | 2 +-
drivers/gpu/drm/amd/include/atomfirmware.h | 4 +
drivers/gpu/drm/amd/include/soc15_hw_ip.h | 2 +
drivers/gpu/drm/amd/pm/amdgpu_pm.c | 26 +-
drivers/gpu/drm/amd/pm/inc/amdgpu_smu.h | 4 +-
drivers/gpu/drm/amd/pm/inc/smu_v11_0.h | 4 +-
drivers/gpu/drm/amd/pm/inc/smu_v13_0.h | 4 +-
drivers/gpu/drm/amd/pm/inc/smu_v13_0_1_ppsmc.h | 4 +-
drivers/gpu/drm/amd/pm/powerplay/amd_powerplay.c | 26 +-
.../gpu/drm/amd/pm/powerplay/hwmgr/ppatomfwctrl.h | 4 +-
.../gpu/drm/amd/pm/powerplay/hwmgr/smu10_hwmgr.c | 8 +-
.../gpu/drm/amd/pm/powerplay/hwmgr/smu7_hwmgr.c | 10 +-
.../gpu/drm/amd/pm/powerplay/hwmgr/smu8_hwmgr.c | 2 +
.../gpu/drm/amd/pm/powerplay/hwmgr/smu_helper.h | 13 +
.../gpu/drm/amd/pm/powerplay/hwmgr/vega10_hwmgr.c | 12 +-
.../gpu/drm/amd/pm/powerplay/hwmgr/vega12_hwmgr.c | 4 +
.../gpu/drm/amd/pm/powerplay/hwmgr/vega20_hwmgr.c | 14 +-
drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c | 146 +-
drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c | 14 +
.../drm/amd/pm/swsmu/smu11/cyan_skillfish_ppt.c | 17 +-
drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c | 64 +-
.../drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c | 119 +-
drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c | 117 +-
drivers/gpu/drm/amd/pm/swsmu/smu11/vangogh_ppt.c | 96 +-
drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c | 6 +-
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c | 33 +-
.../gpu/drm/amd/pm/swsmu/smu13/yellow_carp_ppt.c | 87 -
drivers/gpu/drm/arm/malidp_planes.c | 2 +-
drivers/gpu/drm/armada/armada_gem.c | 9 +-
drivers/gpu/drm/ast/ast_drv.h | 2 -
drivers/gpu/drm/ast/ast_mm.c | 27 +-
drivers/gpu/drm/ast/ast_mode.c | 18 +-
drivers/gpu/drm/bridge/adv7511/adv7511_cec.c | 15 +-
drivers/gpu/drm/bridge/analogix/anx7625.c | 27 +-
drivers/gpu/drm/bridge/cdns-dsi.c | 4 +-
drivers/gpu/drm/bridge/ite-it66121.c | 21 +-
drivers/gpu/drm/bridge/lontium-lt9611uxc.c | 9 +-
drivers/gpu/drm/bridge/lvds-codec.c | 76 +-
drivers/gpu/drm/bridge/nwl-dsi.c | 35 +
drivers/gpu/drm/bridge/panel.c | 37 +
drivers/gpu/drm/bridge/parade-ps8640.c | 292 +-
drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c | 6 +-
drivers/gpu/drm/bridge/ti-sn65dsi83.c | 17 +-
drivers/gpu/drm/bridge/ti-sn65dsi86.c | 25 +-
drivers/gpu/drm/drm_bridge.c | 78 +-
drivers/gpu/drm/drm_cache.c | 4 +-
drivers/gpu/drm/drm_connector.c | 113 +-
drivers/gpu/drm/drm_crtc_internal.h | 2 +
drivers/gpu/drm/drm_dp_helper.c | 42 +-
drivers/gpu/drm/drm_dp_mst_topology.c | 47 +-
drivers/gpu/drm/drm_edid.c | 367 +-
drivers/gpu/drm/drm_format_helper.c | 88 +
drivers/gpu/drm/drm_fourcc.c | 3 +
drivers/gpu/drm/drm_gem.c | 26 +-
drivers/gpu/drm/drm_gem_framebuffer_helper.c | 3 +
drivers/gpu/drm/drm_gem_shmem_helper.c | 25 +-
drivers/gpu/drm/drm_gem_vram_helper.c | 1 -
drivers/gpu/drm/drm_ioctl.c | 21 +-
drivers/gpu/drm/drm_kms_helper_common.c | 11 -
drivers/gpu/drm/drm_lease.c | 39 +-
drivers/gpu/drm/drm_mipi_dsi.c | 81 +
drivers/gpu/drm/drm_mm.c | 5 +-
drivers/gpu/drm/drm_modeset_lock.c | 51 +-
drivers/gpu/drm/drm_of.c | 3 +
drivers/gpu/drm/drm_panel_orientation_quirks.c | 61 +-
drivers/gpu/drm/drm_plane_helper.c | 1 -
drivers/gpu/drm/drm_prime.c | 9 +-
drivers/gpu/drm/drm_probe_helper.c | 119 +-
drivers/gpu/drm/drm_property.c | 9 +-
drivers/gpu/drm/drm_sysfs.c | 87 +-
drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c | 3 +
drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 1 -
drivers/gpu/drm/etnaviv/etnaviv_sched.c | 4 +-
drivers/gpu/drm/exynos/exynos_drm_gem.c | 3 +
drivers/gpu/drm/gma500/backlight.c | 12 +-
drivers/gpu/drm/gma500/cdv_device.c | 24 +-
drivers/gpu/drm/gma500/cdv_intel_display.c | 10 +-
drivers/gpu/drm/gma500/cdv_intel_dp.c | 12 +-
drivers/gpu/drm/gma500/cdv_intel_lvds.c | 22 +-
drivers/gpu/drm/gma500/framebuffer.c | 16 +-
drivers/gpu/drm/gma500/gem.c | 2 +-
drivers/gpu/drm/gma500/gma_device.c | 2 +-
drivers/gpu/drm/gma500/gma_display.c | 14 +-
drivers/gpu/drm/gma500/gtt.c | 18 +-
drivers/gpu/drm/gma500/intel_bios.c | 10 +-
drivers/gpu/drm/gma500/intel_gmbus.c | 12 +-
drivers/gpu/drm/gma500/mid_bios.c | 11 +-
drivers/gpu/drm/gma500/mmu.c | 12 +-
drivers/gpu/drm/gma500/oaktrail_crtc.c | 8 +-
drivers/gpu/drm/gma500/oaktrail_device.c | 20 +-
drivers/gpu/drm/gma500/oaktrail_hdmi.c | 18 +-
drivers/gpu/drm/gma500/oaktrail_lvds.c | 14 +-
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c | 2 +-
drivers/gpu/drm/gma500/opregion.c | 14 +-
drivers/gpu/drm/gma500/power.c | 20 +-
drivers/gpu/drm/gma500/psb_device.c | 16 +-
drivers/gpu/drm/gma500/psb_drv.c | 147 +-
drivers/gpu/drm/gma500/psb_drv.h | 24 +-
drivers/gpu/drm/gma500/psb_intel_display.c | 10 +-
drivers/gpu/drm/gma500/psb_intel_lvds.c | 31 +-
drivers/gpu/drm/gma500/psb_intel_sdvo.c | 10 +-
drivers/gpu/drm/gma500/psb_irq.c | 26 +-
drivers/gpu/drm/gma500/psb_lid.c | 2 +-
drivers/gpu/drm/gud/Kconfig | 2 +-
drivers/gpu/drm/gud/gud_drv.c | 6 +
drivers/gpu/drm/gud/gud_internal.h | 12 +
drivers/gpu/drm/gud/gud_pipe.c | 6 +
drivers/gpu/drm/i915/Kconfig | 12 +
drivers/gpu/drm/i915/Makefile | 36 +-
drivers/gpu/drm/i915/display/g4x_dp.c | 90 +-
drivers/gpu/drm/i915/display/g4x_hdmi.c | 3 +-
drivers/gpu/drm/i915/display/icl_dsi.c | 165 +-
drivers/gpu/drm/i915/display/intel_acpi.c | 46 +
drivers/gpu/drm/i915/display/intel_acpi.h | 3 +
drivers/gpu/drm/i915/display/intel_atomic_plane.c | 209 +
drivers/gpu/drm/i915/display/intel_audio.c | 43 +-
drivers/gpu/drm/i915/display/intel_backlight.c | 1776 +
drivers/gpu/drm/i915/display/intel_backlight.h | 52 +
drivers/gpu/drm/i915/display/intel_bios.c | 458 +-
drivers/gpu/drm/i915/display/intel_bw.c | 2 +-
drivers/gpu/drm/i915/display/intel_cdclk.c | 348 +-
drivers/gpu/drm/i915/display/intel_cdclk.h | 4 +-
drivers/gpu/drm/i915/display/intel_color.c | 140 +-
drivers/gpu/drm/i915/display/intel_combo_phy.c | 8 +-
drivers/gpu/drm/i915/display/intel_connector.c | 6 +-
drivers/gpu/drm/i915/display/intel_crt.c | 4 +-
drivers/gpu/drm/i915/display/intel_cursor.c | 11 +-
drivers/gpu/drm/i915/display/intel_ddi.c | 536 +-
drivers/gpu/drm/i915/display/intel_ddi.h | 7 +-
drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c | 672 +-
drivers/gpu/drm/i915/display/intel_ddi_buf_trans.h | 23 +-
drivers/gpu/drm/i915/display/intel_display.c | 2526 +-
drivers/gpu/drm/i915/display/intel_display.h | 47 +-
.../gpu/drm/i915/display/intel_display_debugfs.c | 127 +-
.../gpu/drm/i915/display/intel_display_debugfs.h | 10 +-
drivers/gpu/drm/i915/display/intel_display_power.c | 15 +-
drivers/gpu/drm/i915/display/intel_display_power.h | 4 +
drivers/gpu/drm/i915/display/intel_display_types.h | 48 +-
drivers/gpu/drm/i915/display/intel_dmc.c | 20 +-
drivers/gpu/drm/i915/display/intel_dp.c | 809 +-
drivers/gpu/drm/i915/display/intel_dp.h | 22 +-
drivers/gpu/drm/i915/display/intel_dp_aux.c | 6 +-
.../gpu/drm/i915/display/intel_dp_aux_backlight.c | 12 +-
drivers/gpu/drm/i915/display/intel_dp_hdcp.c | 78 +-
.../gpu/drm/i915/display/intel_dp_link_training.c | 467 +-
.../gpu/drm/i915/display/intel_dp_link_training.h | 1 +
drivers/gpu/drm/i915/display/intel_dp_mst.c | 49 +-
drivers/gpu/drm/i915/display/intel_dp_mst.h | 4 +-
drivers/gpu/drm/i915/display/intel_dpio_phy.c | 33 +-
drivers/gpu/drm/i915/display/intel_dpio_phy.h | 5 +-
drivers/gpu/drm/i915/display/intel_dpll.c | 674 +-
drivers/gpu/drm/i915/display/intel_dpll.h | 26 +-
drivers/gpu/drm/i915/display/intel_dpll_mgr.c | 46 +-
drivers/gpu/drm/i915/display/intel_dpll_mgr.h | 11 -
drivers/gpu/drm/i915/display/intel_dpt.c | 239 +
drivers/gpu/drm/i915/display/intel_dpt.h | 19 +
drivers/gpu/drm/i915/display/intel_drrs.c | 437 +
drivers/gpu/drm/i915/display/intel_drrs.h | 36 +
drivers/gpu/drm/i915/display/intel_dsi.c | 16 +-
drivers/gpu/drm/i915/display/intel_dsi.h | 3 +
.../gpu/drm/i915/display/intel_dsi_dcs_backlight.c | 33 +-
drivers/gpu/drm/i915/display/intel_dsi_vbt.c | 3 +-
drivers/gpu/drm/i915/display/intel_dvo.c | 24 +-
drivers/gpu/drm/i915/display/intel_fb.c | 606 +-
drivers/gpu/drm/i915/display/intel_fb.h | 20 +-
drivers/gpu/drm/i915/display/intel_fb_pin.c | 274 +
drivers/gpu/drm/i915/display/intel_fb_pin.h | 28 +
drivers/gpu/drm/i915/display/intel_fbc.c | 292 +-
drivers/gpu/drm/i915/display/intel_fbc.h | 2 +-
drivers/gpu/drm/i915/display/intel_fbdev.c | 4 +-
drivers/gpu/drm/i915/display/intel_fdi.c | 321 +-
drivers/gpu/drm/i915/display/intel_fdi.h | 17 +-
drivers/gpu/drm/i915/display/intel_frontbuffer.c | 5 +-
drivers/gpu/drm/i915/display/intel_frontbuffer.h | 4 +-
drivers/gpu/drm/i915/display/intel_hdcp.c | 70 +-
drivers/gpu/drm/i915/display/intel_hdmi.c | 36 +-
drivers/gpu/drm/i915/display/intel_hdmi.h | 1 +
drivers/gpu/drm/i915/display/intel_hotplug.c | 4 +-
drivers/gpu/drm/i915/display/intel_lvds.c | 33 +-
drivers/gpu/drm/i915/display/intel_opregion.c | 5 +-
drivers/gpu/drm/i915/display/intel_panel.c | 1835 +-
drivers/gpu/drm/i915/display/intel_panel.h | 48 +-
drivers/gpu/drm/i915/display/intel_plane_initial.c | 283 +
drivers/gpu/drm/i915/display/intel_plane_initial.h | 13 +
drivers/gpu/drm/i915/display/intel_pps.c | 59 +
drivers/gpu/drm/i915/display/intel_pps.h | 3 +
drivers/gpu/drm/i915/display/intel_psr.c | 476 +-
drivers/gpu/drm/i915/display/intel_psr.h | 13 +-
drivers/gpu/drm/i915/display/intel_sdvo.c | 19 +-
drivers/gpu/drm/i915/display/intel_snps_phy.c | 225 +-
drivers/gpu/drm/i915/display/intel_snps_phy.h | 4 +-
drivers/gpu/drm/i915/display/intel_tc.c | 290 +-
drivers/gpu/drm/i915/display/intel_tc.h | 6 +-
drivers/gpu/drm/i915/display/intel_tv.c | 2 +-
drivers/gpu/drm/i915/display/intel_vdsc.c | 77 +-
drivers/gpu/drm/i915/display/intel_vdsc.h | 6 +-
drivers/gpu/drm/i915/display/skl_universal_plane.c | 58 +-
drivers/gpu/drm/i915/display/vlv_dsi.c | 53 +-
drivers/gpu/drm/i915/display/vlv_dsi_pll.c | 25 +-
drivers/gpu/drm/i915/gem/i915_gem_busy.c | 57 +-
drivers/gpu/drm/i915/gem/i915_gem_context.c | 514 +-
drivers/gpu/drm/i915/gem/i915_gem_context.h | 19 +-
drivers/gpu/drm/i915/gem/i915_gem_context_types.h | 58 +-
drivers/gpu/drm/i915/gem/i915_gem_create.c | 75 +-
drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c | 14 +-
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c | 823 +-
drivers/gpu/drm/i915/gem/i915_gem_internal.c | 2 +
drivers/gpu/drm/i915/gem/i915_gem_lmem.c | 33 +-
drivers/gpu/drm/i915/gem/i915_gem_lmem.h | 4 +
drivers/gpu/drm/i915/gem/i915_gem_mman.c | 2 +-
drivers/gpu/drm/i915/gem/i915_gem_object.c | 70 +-
drivers/gpu/drm/i915/gem/i915_gem_object.h | 29 +-
drivers/gpu/drm/i915/gem/i915_gem_object_types.h | 57 +-
drivers/gpu/drm/i915/gem/i915_gem_pm.c | 91 +
drivers/gpu/drm/i915/gem/i915_gem_pm.h | 1 +
drivers/gpu/drm/i915/gem/i915_gem_region.c | 70 +
drivers/gpu/drm/i915/gem/i915_gem_region.h | 37 +
drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 29 +-
drivers/gpu/drm/i915/gem/i915_gem_ttm.c | 201 +-
drivers/gpu/drm/i915/gem/i915_gem_ttm.h | 14 +
drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c | 206 +
drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.h | 26 +
drivers/gpu/drm/i915/gem/i915_gem_userptr.c | 8 +-
drivers/gpu/drm/i915/gem/i915_gemfs.c | 22 +-
drivers/gpu/drm/i915/gem/selftests/huge_pages.c | 48 +-
.../drm/i915/gem/selftests/i915_gem_client_blt.c | 29 +-
.../gpu/drm/i915/gem/selftests/i915_gem_context.c | 36 +-
.../drm/i915/gem/selftests/i915_gem_execbuffer.c | 190 -
drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c | 2 +
drivers/gpu/drm/i915/gem/selftests/mock_context.c | 5 +-
drivers/gpu/drm/i915/gt/debugfs_engines.c | 36 -
drivers/gpu/drm/i915/gt/debugfs_engines.h | 14 -
drivers/gpu/drm/i915/gt/debugfs_gt.c | 47 -
drivers/gpu/drm/i915/gt/debugfs_gt.h | 38 -
drivers/gpu/drm/i915/gt/debugfs_gt_pm.c | 630 -
drivers/gpu/drm/i915/gt/debugfs_gt_pm.h | 14 -
drivers/gpu/drm/i915/gt/gen6_ppgtt.c | 2 +-
drivers/gpu/drm/i915/gt/gen8_ppgtt.c | 7 +-
drivers/gpu/drm/i915/gt/gen8_ppgtt.h | 4 +-
drivers/gpu/drm/i915/gt/intel_context.c | 61 +-
drivers/gpu/drm/i915/gt/intel_context.h | 56 +-
drivers/gpu/drm/i915/gt/intel_context_types.h | 153 +-
drivers/gpu/drm/i915/gt/intel_engine.h | 19 +-
drivers/gpu/drm/i915/gt/intel_engine_cs.c | 150 +-
drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c | 2 +-
drivers/gpu/drm/i915/gt/intel_engine_pm.c | 36 +
drivers/gpu/drm/i915/gt/intel_engine_pm.h | 39 +
drivers/gpu/drm/i915/gt/intel_engine_types.h | 31 +-
.../gpu/drm/i915/gt/intel_execlists_submission.c | 17 +-
drivers/gpu/drm/i915/gt/intel_ggtt.c | 55 +-
drivers/gpu/drm/i915/gt/intel_gpu_commands.h | 22 +-
drivers/gpu/drm/i915/gt/intel_gt.c | 22 +-
drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.c | 2 -
drivers/gpu/drm/i915/gt/intel_gt_debugfs.c | 104 +
drivers/gpu/drm/i915/gt/intel_gt_debugfs.h | 42 +
drivers/gpu/drm/i915/gt/intel_gt_engines_debugfs.c | 36 +
drivers/gpu/drm/i915/gt/intel_gt_engines_debugfs.h | 14 +
drivers/gpu/drm/i915/gt/intel_gt_irq.c | 7 +
drivers/gpu/drm/i915/gt/intel_gt_pm.c | 22 +-
drivers/gpu/drm/i915/gt/intel_gt_pm.h | 14 +
drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.c | 677 +
drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.h | 20 +
drivers/gpu/drm/i915/gt/intel_gt_types.h | 12 +
drivers/gpu/drm/i915/gt/intel_gtt.c | 9 +-
drivers/gpu/drm/i915/gt/intel_gtt.h | 11 +-
drivers/gpu/drm/i915/gt/intel_llc.c | 3 +-
drivers/gpu/drm/i915/gt/intel_lrc.c | 93 +-
drivers/gpu/drm/i915/gt/intel_migrate.c | 2 +-
drivers/gpu/drm/i915/gt/intel_mocs.c | 176 +-
drivers/gpu/drm/i915/gt/intel_mocs.h | 1 +
drivers/gpu/drm/i915/gt/intel_ppgtt.c | 13 +-
drivers/gpu/drm/i915/gt/intel_rc6.c | 2 +-
drivers/gpu/drm/i915/gt/intel_region_lmem.c | 4 +-
drivers/gpu/drm/i915/gt/intel_ring.c | 3 +-
drivers/gpu/drm/i915/gt/intel_ring_submission.c | 7 +-
drivers/gpu/drm/i915/gt/intel_rps.c | 22 +-
drivers/gpu/drm/i915/gt/intel_rps.h | 1 +
drivers/gpu/drm/i915/gt/intel_sseu.c | 65 +-
drivers/gpu/drm/i915/gt/intel_sseu.h | 11 +-
drivers/gpu/drm/i915/gt/intel_sseu_debugfs.c | 10 +-
drivers/gpu/drm/i915/gt/intel_timeline.c | 4 +-
drivers/gpu/drm/i915/gt/intel_workarounds.c | 262 +-
drivers/gpu/drm/i915/gt/intel_workarounds.h | 2 +-
drivers/gpu/drm/i915/gt/mock_engine.c | 2 +
.../gpu/drm/i915/gt/selftest_engine_heartbeat.c | 4 +-
drivers/gpu/drm/i915/gt/selftest_execlists.c | 28 +-
drivers/gpu/drm/i915/gt/selftest_hangcheck.c | 10 +-
drivers/gpu/drm/i915/gt/selftest_workarounds.c | 2 +-
drivers/gpu/drm/i915/gt/uc/abi/guc_actions_abi.h | 1 +
drivers/gpu/drm/i915/gt/uc/intel_guc.c | 39 +-
drivers/gpu/drm/i915/gt/uc/intel_guc.h | 119 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c | 28 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c | 60 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_debugfs.c | 18 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c | 13 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h | 34 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_log_debugfs.c | 8 +-
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c | 2301 +-
drivers/gpu/drm/i915/gt/uc/intel_huc.c | 14 +-
drivers/gpu/drm/i915/gt/uc/intel_huc_debugfs.c | 6 +-
drivers/gpu/drm/i915/gt/uc/intel_uc.c | 2 +-
drivers/gpu/drm/i915/gt/uc/intel_uc_debugfs.c | 6 +-
drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c | 93 +-
drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h | 9 +
drivers/gpu/drm/i915/gt/uc/selftest_guc.c | 127 +
.../gpu/drm/i915/gt/uc/selftest_guc_multi_lrc.c | 179 +
drivers/gpu/drm/i915/gvt/gtt.c | 17 +-
drivers/gpu/drm/i915/gvt/kvmgt.c | 4 +-
drivers/gpu/drm/i915/gvt/scheduler.c | 2 +-
drivers/gpu/drm/i915/i915_buddy.c | 45 +
drivers/gpu/drm/i915/i915_buddy.h | 8 +
drivers/gpu/drm/i915/i915_config.c | 2 +-
drivers/gpu/drm/i915/i915_debugfs.c | 286 +-
drivers/gpu/drm/i915/i915_drv.c | 17 +-
drivers/gpu/drm/i915/i915_drv.h | 168 +-
drivers/gpu/drm/i915/i915_gem.c | 2 -
drivers/gpu/drm/i915/i915_gem_gtt.c | 4 +-
drivers/gpu/drm/i915/i915_gem_ww.h | 25 +-
drivers/gpu/drm/i915/i915_gpu_error.c | 42 +-
drivers/gpu/drm/i915/i915_irq.c | 94 +-
drivers/gpu/drm/i915/i915_irq.h | 51 +-
drivers/gpu/drm/i915/i915_module.c | 4 +-
drivers/gpu/drm/i915/i915_params.h | 2 +-
drivers/gpu/drm/i915/i915_pci.c | 14 +-
drivers/gpu/drm/i915/i915_pci.h | 12 +-
drivers/gpu/drm/i915/i915_query.c | 5 +-
drivers/gpu/drm/i915/i915_reg.h | 180 +-
drivers/gpu/drm/i915/i915_request.c | 183 +-
drivers/gpu/drm/i915/i915_request.h | 49 +-
drivers/gpu/drm/i915/i915_sysfs.c | 1 -
drivers/gpu/drm/i915/i915_trace.h | 19 +-
drivers/gpu/drm/i915/i915_ttm_buddy_manager.c | 20 +-
drivers/gpu/drm/i915/i915_utils.h | 14 +-
drivers/gpu/drm/i915/i915_vma.c | 26 +-
drivers/gpu/drm/i915/i915_vma.h | 13 +-
drivers/gpu/drm/i915/i915_vma_types.h | 7 +-
drivers/gpu/drm/i915/intel_device_info.h | 1 +
drivers/gpu/drm/i915/intel_dram.c | 36 +-
drivers/gpu/drm/i915/intel_memory_region.c | 12 +
drivers/gpu/drm/i915/intel_memory_region.h | 4 +
drivers/gpu/drm/i915/intel_pcode.c | 235 +
drivers/gpu/drm/i915/intel_pcode.h | 26 +
drivers/gpu/drm/i915/intel_pm.c | 307 +-
drivers/gpu/drm/i915/intel_pm.h | 3 +-
drivers/gpu/drm/i915/intel_runtime_pm.c | 20 +-
drivers/gpu/drm/i915/intel_runtime_pm.h | 2 -
drivers/gpu/drm/i915/intel_sbi.c | 73 +
drivers/gpu/drm/i915/intel_sbi.h | 23 +
drivers/gpu/drm/i915/intel_sideband.c | 577 -
drivers/gpu/drm/i915/intel_sideband.h | 143 -
drivers/gpu/drm/i915/intel_uncore.c | 447 +-
drivers/gpu/drm/i915/intel_uncore.h | 20 +-
drivers/gpu/drm/i915/intel_wakeref.h | 12 +
drivers/gpu/drm/i915/pxp/intel_pxp.c | 299 +
drivers/gpu/drm/i915/pxp/intel_pxp.h | 64 +
drivers/gpu/drm/i915/pxp/intel_pxp_cmd.c | 141 +
drivers/gpu/drm/i915/pxp/intel_pxp_cmd.h | 15 +
drivers/gpu/drm/i915/pxp/intel_pxp_debugfs.c | 78 +
drivers/gpu/drm/i915/pxp/intel_pxp_debugfs.h | 21 +
drivers/gpu/drm/i915/pxp/intel_pxp_irq.c | 101 +
drivers/gpu/drm/i915/pxp/intel_pxp_irq.h | 32 +
drivers/gpu/drm/i915/pxp/intel_pxp_pm.c | 46 +
drivers/gpu/drm/i915/pxp/intel_pxp_pm.h | 24 +
drivers/gpu/drm/i915/pxp/intel_pxp_session.c | 175 +
drivers/gpu/drm/i915/pxp/intel_pxp_session.h | 15 +
drivers/gpu/drm/i915/pxp/intel_pxp_tee.c | 172 +
drivers/gpu/drm/i915/pxp/intel_pxp_tee.h | 17 +
drivers/gpu/drm/i915/pxp/intel_pxp_tee_interface.h | 36 +
drivers/gpu/drm/i915/pxp/intel_pxp_types.h | 83 +
drivers/gpu/drm/i915/selftests/i915_gem_gtt.c | 8 +-
.../gpu/drm/i915/selftests/i915_live_selftests.h | 2 +
drivers/gpu/drm/i915/selftests/i915_vma.c | 4 +-
.../drm/i915/selftests/intel_scheduler_helpers.c | 12 +
.../drm/i915/selftests/intel_scheduler_helpers.h | 2 +
drivers/gpu/drm/i915/selftests/intel_uncore.c | 34 +-
drivers/gpu/drm/i915/selftests/mock_region.c | 2 -
drivers/gpu/drm/i915/vlv_sideband.c | 266 +
drivers/gpu/drm/i915/vlv_sideband.h | 123 +
drivers/gpu/drm/imx/imx-drm-core.c | 2 -
drivers/gpu/drm/kmb/kmb_crtc.c | 41 +-
drivers/gpu/drm/kmb/kmb_drv.c | 2 +-
drivers/gpu/drm/kmb/kmb_drv.h | 10 +-
drivers/gpu/drm/kmb/kmb_dsi.c | 25 +-
drivers/gpu/drm/kmb/kmb_dsi.h | 2 +-
drivers/gpu/drm/kmb/kmb_plane.c | 43 +-
drivers/gpu/drm/kmb/kmb_plane.h | 6 +
drivers/gpu/drm/lima/lima_gem.c | 9 +-
drivers/gpu/drm/lima/lima_sched.c | 28 +-
drivers/gpu/drm/lima/lima_sched.h | 6 +-
drivers/gpu/drm/mcde/mcde_drv.c | 4 +-
drivers/gpu/drm/mcde/mcde_dsi.c | 4 +-
drivers/gpu/drm/mediatek/mtk_dsi.c | 5 +-
drivers/gpu/drm/meson/meson_drv.c | 3 +-
drivers/gpu/drm/meson/meson_dw_hdmi.c | 4 +-
drivers/gpu/drm/mga/mga_ioc32.c | 27 +-
drivers/gpu/drm/mgag200/mgag200_drv.h | 2 -
drivers/gpu/drm/mgag200/mgag200_mm.c | 35 +-
drivers/gpu/drm/msm/Kconfig | 6 +-
drivers/gpu/drm/msm/Makefile | 1 -
drivers/gpu/drm/msm/adreno/a5xx_debugfs.c | 6 +-
drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 10 +-
drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 7 +
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c | 2 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_core_irq.c | 256 -
drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 147 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h | 19 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 39 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h | 4 +-
.../gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c | 2 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c | 8 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h | 8 -
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.c | 267 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.h | 92 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c | 56 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.h | 13 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c | 8 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.h | 3 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 70 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h | 13 -
drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c | 4 +-
drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c | 18 +-
drivers/gpu/drm/msm/disp/mdp5/mdp5_cfg.c | 89 +
drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c | 18 +-
drivers/gpu/drm/msm/disp/mdp5/mdp5_mdss.c | 12 +-
drivers/gpu/drm/msm/disp/msm_disp_snapshot_util.c | 8 +-
drivers/gpu/drm/msm/dp/dp_catalog.c | 64 +-
drivers/gpu/drm/msm/dp/dp_debug.c | 294 +-
drivers/gpu/drm/msm/dp/dp_debug.h | 4 +-
drivers/gpu/drm/msm/dp/dp_display.c | 143 +-
drivers/gpu/drm/msm/dp/dp_display.h | 2 +
drivers/gpu/drm/msm/dp/dp_drm.c | 13 +-
drivers/gpu/drm/msm/dp/dp_panel.c | 2 +-
drivers/gpu/drm/msm/dp/dp_parser.c | 138 +-
drivers/gpu/drm/msm/dp/dp_parser.h | 14 +-
drivers/gpu/drm/msm/dsi/dsi.h | 2 +
drivers/gpu/drm/msm/dsi/dsi_host.c | 147 +-
drivers/gpu/drm/msm/dsi/dsi_manager.c | 66 +-
drivers/gpu/drm/msm/dsi/phy/dsi_phy.c | 2 +
drivers/gpu/drm/msm/dsi/phy/dsi_phy.h | 1 +
drivers/gpu/drm/msm/dsi/phy/dsi_phy_14nm.c | 25 +-
drivers/gpu/drm/msm/dsi/phy/dsi_phy_7nm.c | 4 +-
drivers/gpu/drm/msm/edp/edp_ctrl.c | 5 +-
drivers/gpu/drm/msm/hdmi/hdmi.c | 38 +-
drivers/gpu/drm/msm/hdmi/hdmi.h | 6 +-
drivers/gpu/drm/msm/hdmi/hdmi_bridge.c | 20 +-
drivers/gpu/drm/msm/hdmi/hdmi_connector.c | 24 +-
drivers/gpu/drm/msm/hdmi/hdmi_phy.c | 33 +-
drivers/gpu/drm/msm/hdmi/hdmi_phy_8996.c | 4 +-
drivers/gpu/drm/msm/msm_atomic.c | 21 +-
drivers/gpu/drm/msm/msm_drv.c | 33 +-
drivers/gpu/drm/msm/msm_drv.h | 31 +-
drivers/gpu/drm/msm/msm_gem.c | 8 +-
drivers/gpu/drm/msm/msm_gem.h | 5 -
drivers/gpu/drm/msm/msm_gem_shrinker.c | 2 +
drivers/gpu/drm/msm/msm_gem_submit.c | 35 +-
drivers/gpu/drm/msm/msm_gpu.c | 2 +-
drivers/gpu/drm/msm/msm_gpu.h | 11 +
drivers/gpu/drm/msm/msm_gpu_devfreq.c | 41 +-
drivers/gpu/drm/msm/msm_kms.h | 3 +-
drivers/gpu/drm/msm/msm_ringbuffer.c | 12 -
drivers/gpu/drm/msm/msm_submitqueue.c | 1 +
drivers/gpu/drm/mxsfb/mxsfb_drv.c | 6 +-
drivers/gpu/drm/mxsfb/mxsfb_kms.c | 8 +-
drivers/gpu/drm/nouveau/dispnv50/disp.c | 2 +-
drivers/gpu/drm/nouveau/nouveau_acpi.c | 9 +-
drivers/gpu/drm/nouveau/nouveau_bo.c | 12 +-
drivers/gpu/drm/nouveau/nouveau_dmem.c | 4 +-
drivers/gpu/drm/nouveau/nouveau_drm.c | 42 +-
drivers/gpu/drm/nouveau/nouveau_drv.h | 5 +
drivers/gpu/drm/nouveau/nouveau_gem.c | 4 +-
drivers/gpu/drm/nouveau/nouveau_sgdma.c | 2 -
drivers/gpu/drm/nouveau/nouveau_svm.c | 6 +-
drivers/gpu/drm/nouveau/nvkm/engine/ce/gt215.c | 2 +-
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 3 +-
drivers/gpu/drm/nouveau/nvkm/engine/nvenc/base.c | 1 -
drivers/gpu/drm/nouveau/nvkm/subdev/mmu/uvmm.c | 2 +-
drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgp100.c | 4 +-
drivers/gpu/drm/omapdrm/Kconfig | 3 +-
drivers/gpu/drm/omapdrm/dss/dsi.c | 4 +-
drivers/gpu/drm/omapdrm/omap_drv.c | 2 +-
drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c | 2 +
drivers/gpu/drm/panel/Kconfig | 37 +-
drivers/gpu/drm/panel/Makefile | 3 +
drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c | 743 +-
drivers/gpu/drm/panel/panel-edp.c | 1896 +
drivers/gpu/drm/panel/panel-ilitek-ili9881c.c | 12 +-
drivers/gpu/drm/panel/panel-mantix-mlaf057we51.c | 9 +
drivers/gpu/drm/panel/panel-orisetech-otm8009a.c | 85 +-
drivers/gpu/drm/panel/panel-samsung-s6d27a1.c | 320 +
drivers/gpu/drm/panel/panel-samsung-s6e63m0-dsi.c | 3 +-
drivers/gpu/drm/panel/panel-samsung-s6e63m0-spi.c | 3 +-
drivers/gpu/drm/panel/panel-samsung-s6e63m0.c | 4 +-
drivers/gpu/drm/panel/panel-samsung-s6e63m0.h | 2 +-
drivers/gpu/drm/panel/panel-sharp-ls060t1sx01.c | 333 +
drivers/gpu/drm/panel/panel-simple.c | 1133 +-
drivers/gpu/drm/panel/panel-sitronix-st7703.c | 8 +
drivers/gpu/drm/panfrost/panfrost_device.c | 10 +-
drivers/gpu/drm/panfrost/panfrost_drv.c | 33 +-
drivers/gpu/drm/panfrost/panfrost_job.c | 48 +-
drivers/gpu/drm/panfrost/panfrost_job.h | 5 +-
drivers/gpu/drm/panfrost/panfrost_mmu.c | 42 +-
drivers/gpu/drm/panfrost/panfrost_perfcnt.c | 4 +-
drivers/gpu/drm/qxl/qxl_release.c | 4 +-
drivers/gpu/drm/qxl/qxl_ttm.c | 1 -
drivers/gpu/drm/r128/ati_pcigart.c | 11 +-
drivers/gpu/drm/radeon/atombios.h | 2 +-
drivers/gpu/drm/radeon/ci_dpm.c | 3 +-
drivers/gpu/drm/radeon/r600_dpm.c | 10 +-
drivers/gpu/drm/radeon/radeon_dp_mst.c | 4 +-
drivers/gpu/drm/radeon/radeon_fence.c | 24 +-
drivers/gpu/drm/radeon/radeon_gem.c | 2 +-
drivers/gpu/drm/radeon/radeon_ttm.c | 15 +-
drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 9 +-
drivers/gpu/drm/rcar-du/rcar_du_crtc.h | 11 -
drivers/gpu/drm/rcar-du/rcar_du_drv.c | 108 +-
drivers/gpu/drm/rcar-du/rcar_du_drv.h | 26 +-
drivers/gpu/drm/rcar-du/rcar_du_encoder.c | 12 +-
drivers/gpu/drm/rcar-du/rcar_du_group.c | 6 +-
drivers/gpu/drm/rcar-du/rcar_du_kms.c | 50 +-
drivers/gpu/drm/rcar-du/rcar_du_kms.h | 7 +
drivers/gpu/drm/rcar-du/rcar_du_regs.h | 9 +-
drivers/gpu/drm/rcar-du/rcar_du_vsp.c | 36 +-
drivers/gpu/drm/rcar-du/rcar_lvds.c | 4 +-
drivers/gpu/drm/rockchip/Kconfig | 1 -
drivers/gpu/drm/rockchip/analogix_dp-rockchip.c | 2 +-
drivers/gpu/drm/rockchip/cdn-dp-core.c | 4 +-
drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c | 3 +-
drivers/gpu/drm/rockchip/inno_hdmi.c | 4 +-
drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 14 +-
drivers/gpu/drm/rockchip/rockchip_drm_drv.h | 2 -
drivers/gpu/drm/rockchip/rockchip_lvds.c | 33 +-
drivers/gpu/drm/rockchip/rockchip_rgb.c | 26 +-
drivers/gpu/drm/rockchip/rockchip_vop_reg.c | 2 +-
drivers/gpu/drm/scheduler/sched_entity.c | 140 +-
drivers/gpu/drm/scheduler/sched_fence.c | 62 +-
drivers/gpu/drm/scheduler/sched_main.c | 185 +-
drivers/gpu/drm/selftests/test-drm_damage_helper.c | 1 +
drivers/gpu/drm/shmobile/shmob_drm_drv.c | 4 +-
drivers/gpu/drm/sti/sti_hqvdp.c | 4 +-
drivers/gpu/drm/stm/ltdc.c | 7 +-
drivers/gpu/drm/sun4i/sun4i_backend.c | 4 +-
drivers/gpu/drm/sun4i/sun4i_frontend.c | 4 +-
drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c | 4 +-
drivers/gpu/drm/sun4i/sun4i_tcon.c | 4 +-
drivers/gpu/drm/sun4i/sun4i_tv.c | 4 +-
drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | 18 +-
drivers/gpu/drm/sun4i/sun8i_csc.h | 4 +-
drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c | 21 +-
drivers/gpu/drm/sun4i/sun8i_mixer.c | 4 +-
drivers/gpu/drm/sun4i/sun8i_tcon_top.c | 4 +-
drivers/gpu/drm/tegra/fb.c | 2 +-
drivers/gpu/drm/tegra/gem.c | 3 +
drivers/gpu/drm/tegra/plane.c | 2 +-
drivers/gpu/drm/tilcdc/tilcdc_drv.c | 4 +-
drivers/gpu/drm/tiny/Kconfig | 4 +-
drivers/gpu/drm/tiny/bochs.c | 8 +
drivers/gpu/drm/ttm/ttm_bo.c | 90 +-
drivers/gpu/drm/ttm/ttm_bo_util.c | 22 +-
drivers/gpu/drm/ttm/ttm_bo_vm.c | 109 +-
drivers/gpu/drm/ttm/ttm_device.c | 48 +
drivers/gpu/drm/ttm/ttm_module.c | 12 +
drivers/gpu/drm/ttm/ttm_pool.c | 42 +-
drivers/gpu/drm/ttm/ttm_range_manager.c | 8 +-
drivers/gpu/drm/ttm/ttm_resource.c | 49 +
drivers/gpu/drm/ttm/ttm_tt.c | 69 +-
drivers/gpu/drm/udl/Kconfig | 1 +
drivers/gpu/drm/udl/udl_connector.c | 2 +-
drivers/gpu/drm/v3d/Kconfig | 2 +-
drivers/gpu/drm/v3d/v3d_drv.c | 15 +-
drivers/gpu/drm/v3d/v3d_drv.h | 30 +-
drivers/gpu/drm/v3d/v3d_gem.c | 472 +-
drivers/gpu/drm/v3d/v3d_sched.c | 44 +-
drivers/gpu/drm/vboxvideo/vbox_drv.c | 5 +-
drivers/gpu/drm/vboxvideo/vbox_drv.h | 1 -
drivers/gpu/drm/vboxvideo/vbox_ttm.c | 17 +-
drivers/gpu/drm/vc4/vc4_dpi.c | 15 +-
drivers/gpu/drm/vc4/vc4_drv.c | 6 +-
drivers/gpu/drm/vc4/vc4_dsi.c | 28 +-
drivers/gpu/drm/vc4/vc4_hdmi.c | 5 +-
drivers/gpu/drm/vgem/vgem_drv.c | 342 +-
drivers/gpu/drm/virtio/virtgpu_debugfs.c | 1 +
drivers/gpu/drm/virtio/virtgpu_display.c | 4 +-
drivers/gpu/drm/virtio/virtgpu_drv.c | 45 +-
drivers/gpu/drm/virtio/virtgpu_drv.h | 36 +-
drivers/gpu/drm/virtio/virtgpu_fence.c | 30 +-
drivers/gpu/drm/virtio/virtgpu_ioctl.c | 195 +-
drivers/gpu/drm/virtio/virtgpu_kms.c | 26 +-
drivers/gpu/drm/virtio/virtgpu_plane.c | 3 +-
drivers/gpu/drm/virtio/virtgpu_prime.c | 32 +-
drivers/gpu/drm/virtio/virtgpu_vq.c | 27 +-
drivers/gpu/drm/virtio/virtgpu_vram.c | 61 +
drivers/gpu/drm/vmwgfx/ttm_memory.c | 1 -
drivers/gpu/drm/vmwgfx/ttm_object.c | 3 +
drivers/gpu/drm/vmwgfx/vmwgfx_bo.c | 15 +-
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 4 +-
drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 4 -
drivers/gpu/drm/vmwgfx/vmwgfx_msg.c | 6 +-
drivers/gpu/drm/vmwgfx/vmwgfx_page_dirty.c | 72 +-
drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c | 10 +-
drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c | 3 -
drivers/gpu/drm/xlnx/zynqmp_disp.c | 9 +-
drivers/gpu/drm/zte/Kconfig | 10 -
drivers/gpu/drm/zte/Makefile | 10 -
drivers/gpu/drm/zte/zx_common_regs.h | 28 -
drivers/gpu/drm/zte/zx_drm_drv.c | 184 -
drivers/gpu/drm/zte/zx_drm_drv.h | 34 -
drivers/gpu/drm/zte/zx_hdmi.c | 760 -
drivers/gpu/drm/zte/zx_hdmi_regs.h | 66 -
drivers/gpu/drm/zte/zx_plane.c | 537 -
drivers/gpu/drm/zte/zx_plane.h | 26 -
drivers/gpu/drm/zte/zx_plane_regs.h | 120 -
drivers/gpu/drm/zte/zx_tvenc.c | 400 -
drivers/gpu/drm/zte/zx_tvenc_regs.h | 27 -
drivers/gpu/drm/zte/zx_vga.c | 527 -
drivers/gpu/drm/zte/zx_vga_regs.h | 33 -
drivers/gpu/drm/zte/zx_vou.c | 921 -
drivers/gpu/drm/zte/zx_vou.h | 64 -
drivers/gpu/drm/zte/zx_vou_regs.h | 212 -
drivers/gpu/ipu-v3/ipu-csi.c | 31 +-
drivers/hid/Kconfig | 32 +
drivers/hid/Makefile | 2 +
drivers/hid/amd-sfh-hid/amd_sfh_client.c | 3 +-
drivers/hid/amd-sfh-hid/amd_sfh_hid.c | 2 +
drivers/hid/amd-sfh-hid/amd_sfh_hid.h | 2 +
drivers/hid/amd-sfh-hid/amd_sfh_pcie.c | 21 +-
drivers/hid/amd-sfh-hid/amd_sfh_pcie.h | 3 +-
.../amd-sfh-hid/hid_descriptor/amd_sfh_hid_desc.c | 3 +-
.../amd-sfh-hid/hid_descriptor/amd_sfh_hid_desc.h | 3 +-
.../hid_descriptor/amd_sfh_hid_report_desc.h | 3 +-
drivers/hid/hid-apple.c | 66 +-
drivers/hid/hid-asus.c | 2 +-
drivers/hid/hid-cougar.c | 3 +-
drivers/hid/hid-cp2112.c | 14 +-
drivers/hid/hid-debug.c | 10 +-
drivers/hid/hid-ids.h | 18 +-
drivers/hid/hid-input.c | 1 +
drivers/hid/hid-multitouch.c | 13 +
drivers/hid/hid-nintendo.c | 2319 +
drivers/hid/hid-playstation.c | 159 +-
drivers/hid/hid-quirks.c | 3 +-
drivers/hid/hid-roccat-kone.c | 2 +-
drivers/hid/hid-roccat-kone.h | 12 +-
drivers/hid/hid-u2fzero.c | 55 +-
drivers/hid/hid-xiaomi.c | 94 +
drivers/hid/surface-hid/surface_hid.c | 4 +-
drivers/hid/wacom_sys.c | 15 +-
drivers/hsi/clients/cmt_speech.c | 4 +-
drivers/hsi/clients/ssi_protocol.c | 4 +-
drivers/hv/Kconfig | 1 +
drivers/hv/channel.c | 72 +-
drivers/hv/channel_mgmt.c | 34 -
drivers/hv/connection.c | 101 +-
drivers/hv/hv.c | 82 +-
drivers/hv/hv_common.c | 12 +
drivers/hv/hyperv_vmbus.h | 3 +
drivers/hv/ring_buffer.c | 57 +-
drivers/hwmon/Kconfig | 15 +-
drivers/hwmon/Makefile | 1 +
drivers/hwmon/abituguru3.c | 6 +-
drivers/hwmon/acpi_power_meter.c | 13 +-
drivers/hwmon/ad7414.c | 4 +-
drivers/hwmon/ad7418.c | 6 +-
drivers/hwmon/adm1021.c | 4 +-
drivers/hwmon/adm1025.c | 4 +-
drivers/hwmon/adm1026.c | 4 +-
drivers/hwmon/adm1029.c | 4 +-
drivers/hwmon/adm1031.c | 6 +-
drivers/hwmon/adt7310.c | 3 +-
drivers/hwmon/adt7410.c | 3 +-
drivers/hwmon/adt7x10.c | 3 +-
drivers/hwmon/adt7x10.h | 2 +-
drivers/hwmon/amc6821.c | 8 +-
drivers/hwmon/applesmc.c | 2 +-
drivers/hwmon/asb100.c | 4 +-
drivers/hwmon/asc7621.c | 4 +-
drivers/hwmon/atxp1.c | 10 +-
drivers/hwmon/coretemp.c | 2 +-
drivers/hwmon/dell-smm-hwmon.c | 103 +-
drivers/hwmon/dme1737.c | 4 +-
drivers/hwmon/ds1621.c | 4 +-
drivers/hwmon/ds620.c | 4 +-
drivers/hwmon/emc6w201.c | 4 +-
drivers/hwmon/f71805f.c | 4 +-
drivers/hwmon/f71882fg.c | 4 +-
drivers/hwmon/f75375s.c | 4 +-
drivers/hwmon/fschmd.c | 4 +-
drivers/hwmon/g760a.c | 2 +-
drivers/hwmon/gl518sm.c | 4 +-
drivers/hwmon/gl520sm.c | 4 +-
drivers/hwmon/hwmon.c | 6 +-
drivers/hwmon/i5500_temp.c | 114 +-
drivers/hwmon/ibmaem.c | 2 +-
drivers/hwmon/ibmpex.c | 4 +-
drivers/hwmon/it87.c | 12 +-
drivers/hwmon/lineage-pem.c | 2 +-
drivers/hwmon/lm63.c | 6 +-
drivers/hwmon/lm77.c | 4 +-
drivers/hwmon/lm78.c | 4 +-
drivers/hwmon/lm80.c | 6 +-
drivers/hwmon/lm83.c | 4 +-
drivers/hwmon/lm85.c | 4 +-
drivers/hwmon/lm87.c | 4 +-
drivers/hwmon/lm90.c | 75 +-
drivers/hwmon/lm92.c | 4 +-
drivers/hwmon/lm93.c | 4 +-
drivers/hwmon/lm95241.c | 8 +-
drivers/hwmon/ltc4151.c | 2 +-
drivers/hwmon/ltc4215.c | 2 +-
drivers/hwmon/ltc4261.c | 4 +-
drivers/hwmon/max16065.c | 2 +-
drivers/hwmon/max1619.c | 4 +-
drivers/hwmon/max1668.c | 4 +-
drivers/hwmon/max31722.c | 8 +-
drivers/hwmon/max6620.c | 514 +
drivers/hwmon/max6639.c | 4 +-
drivers/hwmon/max6642.c | 2 +-
drivers/hwmon/mlxreg-fan.c | 138 +-
drivers/hwmon/nct6683.c | 3 +
drivers/hwmon/nct6775.c | 717 +-
drivers/hwmon/nct7802.c | 131 +-
drivers/hwmon/occ/common.c | 30 +-
drivers/hwmon/occ/common.h | 3 +-
drivers/hwmon/occ/p8_i2c.c | 15 +-
drivers/hwmon/occ/p9_sbe.c | 91 +-
drivers/hwmon/pc87360.c | 4 +-
drivers/hwmon/pmbus/ibm-cffps.c | 23 +-
drivers/hwmon/pmbus/lm25066.c | 88 +-
drivers/hwmon/raspberrypi-hwmon.c | 2 +-
drivers/hwmon/sch5636.c | 4 +-
drivers/hwmon/sht21.c | 4 +-
drivers/hwmon/sis5595.c | 4 +-
drivers/hwmon/smm665.c | 2 +-
drivers/hwmon/smsc47b397.c | 4 +-
drivers/hwmon/smsc47m192.c | 4 +-
drivers/hwmon/thmc50.c | 4 +-
drivers/hwmon/tmp103.c | 105 +-
drivers/hwmon/tmp401.c | 31 +-
drivers/hwmon/tmp421.c | 186 +-
drivers/hwmon/via686a.c | 4 +-
drivers/hwmon/vt1211.c | 4 +-
drivers/hwmon/vt8231.c | 4 +-
drivers/hwmon/w83627ehf.c | 8 +-
drivers/hwmon/w83627hf.c | 6 +-
drivers/hwmon/w83781d.c | 4 +-
drivers/hwmon/w83791d.c | 4 +-
drivers/hwmon/w83792d.c | 6 +-
drivers/hwmon/w83793.c | 6 +-
drivers/hwmon/w83795.c | 6 +-
drivers/hwmon/w83l785ts.c | 4 +-
drivers/hwmon/w83l786ng.c | 4 +-
drivers/hwmon/xgene-hwmon.c | 35 +-
drivers/hwtracing/coresight/Kconfig | 13 +
drivers/hwtracing/coresight/coresight-cpu-debug.c | 2 +-
drivers/hwtracing/coresight/coresight-cti-core.c | 2 +-
drivers/hwtracing/coresight/coresight-etb10.c | 5 +-
drivers/hwtracing/coresight/coresight-etm-perf.c | 56 +-
drivers/hwtracing/coresight/coresight-etm4x-core.c | 101 +-
drivers/hwtracing/coresight/coresight-etm4x.h | 9 +-
.../coresight/coresight-self-hosted-trace.h | 33 +
drivers/hwtracing/coresight/coresight-tmc-core.c | 21 +-
drivers/hwtracing/coresight/coresight-tmc-etf.c | 10 +-
drivers/hwtracing/coresight/coresight-tmc-etr.c | 52 +-
drivers/hwtracing/coresight/coresight-tmc.h | 6 +-
drivers/hwtracing/coresight/coresight-trbe.c | 534 +-
drivers/i2c/busses/Kconfig | 16 +-
drivers/i2c/busses/Makefile | 3 +
drivers/i2c/busses/i2c-amd-mp2-pci.c | 4 +-
drivers/i2c/busses/i2c-amd-mp2-plat.c | 5 +-
drivers/i2c/busses/i2c-bcm-kona.c | 2 +-
drivers/i2c/busses/i2c-i801.c | 83 +-
drivers/i2c/busses/i2c-ismt.c | 12 +-
drivers/i2c/busses/i2c-kempld.c | 3 +-
drivers/i2c/busses/i2c-mlxcpld.c | 14 +-
drivers/i2c/busses/i2c-mt65xx.c | 82 +-
drivers/i2c/busses/i2c-pasemi-core.c | 353 +
drivers/i2c/busses/i2c-pasemi-core.h | 21 +
drivers/i2c/busses/i2c-pasemi-pci.c | 85 +
drivers/i2c/busses/i2c-pasemi-platform.c | 122 +
drivers/i2c/busses/i2c-pasemi.c | 409 -
drivers/i2c/busses/i2c-pxa.c | 1 -
drivers/i2c/busses/i2c-qup.c | 6 +-
drivers/i2c/busses/i2c-rcar.c | 6 +-
drivers/i2c/busses/i2c-tegra.c | 4 +-
drivers/i2c/busses/i2c-virtio.c | 56 +-
drivers/i2c/busses/i2c-xgene-slimpro.c | 33 +-
drivers/i2c/busses/i2c-xiic.c | 161 +-
drivers/i2c/busses/i2c-xlr.c | 6 +-
drivers/i2c/i2c-core-acpi.c | 32 +-
drivers/i2c/i2c-core-base.c | 7 +-
drivers/idle/intel_idle.c | 13 +-
drivers/iio/accel/Kconfig | 62 +
drivers/iio/accel/Makefile | 6 +
drivers/iio/accel/adxl313.h | 54 +
drivers/iio/accel/adxl313_core.c | 332 +
drivers/iio/accel/adxl313_i2c.c | 66 +
drivers/iio/accel/adxl313_spi.c | 92 +
drivers/iio/accel/adxl355.h | 21 +
drivers/iio/accel/adxl355_core.c | 765 +
drivers/iio/accel/adxl355_i2c.c | 62 +
drivers/iio/accel/adxl355_spi.c | 65 +
drivers/iio/accel/adxl372.c | 1 +
drivers/iio/accel/bma400.h | 2 +-
drivers/iio/accel/bma400_core.c | 7 +-
drivers/iio/accel/bma400_i2c.c | 4 +-
drivers/iio/accel/bma400_spi.c | 4 +-
drivers/iio/accel/bmc150-accel-core.c | 5 +-
drivers/iio/accel/bmc150-accel-i2c.c | 4 +-
drivers/iio/accel/bmc150-accel-spi.c | 4 +-
drivers/iio/accel/bmc150-accel.h | 2 +-
drivers/iio/accel/bmi088-accel-core.c | 4 +-
drivers/iio/accel/bmi088-accel-spi.c | 4 +-
drivers/iio/accel/bmi088-accel.h | 2 +-
drivers/iio/accel/fxls8962af-core.c | 347 +-
drivers/iio/accel/kxsd9-i2c.c | 4 +-
drivers/iio/accel/kxsd9-spi.c | 4 +-
drivers/iio/accel/kxsd9.c | 4 +-
drivers/iio/accel/kxsd9.h | 2 +-
drivers/iio/accel/mma7455.h | 2 +-
drivers/iio/accel/mma7455_core.c | 4 +-
drivers/iio/accel/mma7455_i2c.c | 4 +-
drivers/iio/accel/mma7455_spi.c | 4 +-
drivers/iio/accel/mma7660.c | 2 +-
drivers/iio/accel/sca3000.c | 3 +-
drivers/iio/accel/st_accel_core.c | 31 +-
drivers/iio/accel/st_accel_i2c.c | 23 +-
drivers/iio/accel/st_accel_spi.c | 23 +-
drivers/iio/adc/Kconfig | 18 +-
drivers/iio/adc/Makefile | 1 +
drivers/iio/adc/ab8500-gpadc.c | 22 +-
drivers/iio/adc/ad7291.c | 70 +-
drivers/iio/adc/ad7949.c | 254 +-
drivers/iio/adc/ad799x.c | 68 +-
drivers/iio/adc/aspeed_adc.c | 598 +-
drivers/iio/adc/at91-sama5d2_adc.c | 598 +-
drivers/iio/adc/axp288_adc.c | 28 +-
drivers/iio/adc/berlin2-adc.c | 34 +-
drivers/iio/adc/da9150-gpadc.c | 27 +-
drivers/iio/adc/ep93xx_adc.c | 4 +-
drivers/iio/adc/fsl-imx25-gcq.c | 55 +-
drivers/iio/adc/imx7d_adc.c | 18 +-
drivers/iio/adc/imx8qxp-adc.c | 494 +
drivers/iio/adc/intel_mrfld_adc.c | 24 +-
drivers/iio/adc/lp8788_adc.c | 31 +-
drivers/iio/adc/lpc18xx_adc.c | 75 +-
drivers/iio/adc/max1027.c | 278 +-
drivers/iio/adc/max1118.c | 7 +-
drivers/iio/adc/max1241.c | 17 +-
drivers/iio/adc/max1363.c | 82 +-
drivers/iio/adc/meson_saradc.c | 39 +-
drivers/iio/adc/nau7802.c | 50 +-
drivers/iio/adc/qcom-pm8xxx-xoadc.c | 9 +-
drivers/iio/adc/rn5t618-adc.c | 13 +-
drivers/iio/adc/rockchip_saradc.c | 31 +-
drivers/iio/adc/stm32-adc-core.c | 1 +
drivers/iio/adc/stm32-adc-core.h | 10 +
drivers/iio/adc/stm32-adc.c | 422 +-
drivers/iio/adc/ti-adc108s102.c | 11 +-
drivers/iio/adc/ti-adc128s052.c | 33 +-
drivers/iio/adc/ti-ads7950.c | 4 +-
drivers/iio/adc/ti-ads8344.c | 27 +-
drivers/iio/adc/ti-tsc2046.c | 2 +-
drivers/iio/adc/ti_am335x_adc.c | 220 +-
drivers/iio/adc/twl6030-gpadc.c | 6 +-
drivers/iio/adc/xilinx-xadc-core.c | 5 +-
drivers/iio/adc/xilinx-xadc.h | 1 -
drivers/iio/buffer/industrialio-triggered-buffer.c | 8 +-
drivers/iio/buffer/kfifo_buf.c | 50 +
drivers/iio/chemical/Kconfig | 24 +
drivers/iio/chemical/Makefile | 2 +
drivers/iio/chemical/scd4x.c | 696 +
drivers/iio/chemical/sunrise_co2.c | 537 +
.../common/cros_ec_sensors/cros_ec_sensors_core.c | 3 +-
.../iio/common/hid-sensors/hid-sensor-trigger.c | 5 +-
drivers/iio/common/st_sensors/st_sensors_core.c | 48 +-
drivers/iio/common/st_sensors/st_sensors_i2c.c | 1 -
drivers/iio/common/st_sensors/st_sensors_spi.c | 1 -
drivers/iio/common/st_sensors/st_sensors_trigger.c | 53 +-
drivers/iio/dac/ad5064.c | 49 +-
drivers/iio/dac/ad5380.c | 15 +-
drivers/iio/dac/ad5446.c | 21 +-
drivers/iio/dac/ad5592r-base.c | 4 +-
drivers/iio/dac/ad5592r-base.h | 2 +-
drivers/iio/dac/ad5592r.c | 4 +-
drivers/iio/dac/ad5593r.c | 4 +-
drivers/iio/dac/ad5686-spi.c | 4 +-
drivers/iio/dac/ad5686.c | 4 +-
drivers/iio/dac/ad5686.h | 2 +-
drivers/iio/dac/ad5696-i2c.c | 4 +-
drivers/iio/dac/ad5766.c | 48 +-
drivers/iio/dac/ad5770r.c | 2 +-
drivers/iio/dac/ad7303.c | 47 +-
drivers/iio/dac/ad8801.c | 11 +-
drivers/iio/dac/ds4424.c | 9 +-
drivers/iio/dac/lpc18xx_dac.c | 14 +-
drivers/iio/dac/ltc1660.c | 7 +-
drivers/iio/dac/max5821.c | 9 +-
drivers/iio/dac/mcp4922.c | 7 +-
drivers/iio/dac/stm32-dac-core.c | 18 +-
drivers/iio/dac/ti-dac7311.c | 7 +-
drivers/iio/frequency/Kconfig | 12 +
drivers/iio/frequency/Makefile | 1 +
drivers/iio/frequency/adrf6780.c | 527 +
drivers/iio/gyro/Kconfig | 1 -
drivers/iio/gyro/adis16080.c | 11 +-
drivers/iio/gyro/mpu3050-core.c | 24 +-
drivers/iio/gyro/st_gyro_core.c | 27 +-
drivers/iio/gyro/st_gyro_i2c.c | 23 +-
drivers/iio/gyro/st_gyro_spi.c | 23 +-
drivers/iio/health/afe4403.c | 14 +-
drivers/iio/health/afe4404.c | 8 +-
drivers/iio/iio_core.h | 4 +
drivers/iio/imu/adis.c | 17 +-
drivers/iio/imu/adis16400.c | 20 +-
drivers/iio/imu/adis16460.c | 18 +-
drivers/iio/imu/adis16475.c | 19 +-
drivers/iio/imu/adis_trigger.c | 4 +
drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c | 2 +-
drivers/iio/imu/inv_mpu6050/inv_mpu_magn.c | 36 +-
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h | 4 +-
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 22 +-
drivers/iio/imu/st_lsm9ds0/st_lsm9ds0.h | 1 -
drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_core.c | 29 +-
drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_i2c.c | 6 -
drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_spi.c | 6 -
drivers/iio/industrialio-buffer.c | 201 +-
drivers/iio/industrialio-core.c | 10 +-
drivers/iio/inkern.c | 17 +
drivers/iio/light/cm3605.c | 29 +-
drivers/iio/light/cm36651.c | 7 +-
drivers/iio/light/gp2ap002.c | 24 +-
drivers/iio/light/ltr501.c | 37 +
drivers/iio/light/max44000.c | 17 +-
drivers/iio/light/noa1305.c | 7 +-
drivers/iio/magnetometer/Kconfig | 2 +-
drivers/iio/magnetometer/ak8975.c | 35 +
drivers/iio/magnetometer/hmc5843.h | 2 +-
drivers/iio/magnetometer/hmc5843_core.c | 4 +-
drivers/iio/magnetometer/hmc5843_i2c.c | 4 +-
drivers/iio/magnetometer/hmc5843_spi.c | 4 +-
drivers/iio/magnetometer/st_magn_core.c | 29 +-
drivers/iio/magnetometer/st_magn_i2c.c | 23 +-
drivers/iio/magnetometer/st_magn_spi.c | 23 +-
drivers/iio/multiplexer/iio-mux.c | 7 +-
drivers/iio/potentiometer/max5487.c | 7 +-
drivers/iio/pressure/ms5611.h | 2 +-
drivers/iio/pressure/ms5611_core.c | 4 +-
drivers/iio/pressure/ms5611_i2c.c | 4 +-
drivers/iio/pressure/ms5611_spi.c | 4 +-
drivers/iio/pressure/st_pressure_core.c | 27 +-
drivers/iio/pressure/st_pressure_i2c.c | 23 +-
drivers/iio/pressure/st_pressure_spi.c | 27 +-
drivers/iio/temperature/Kconfig | 10 +
drivers/iio/temperature/Makefile | 1 +
drivers/iio/temperature/ltc2983.c | 16 +
drivers/iio/temperature/max31865.c | 349 +
drivers/infiniband/core/cma.c | 34 +-
drivers/infiniband/core/cma_priv.h | 11 +-
drivers/infiniband/core/counters.c | 40 +-
drivers/infiniband/core/device.c | 1 +
drivers/infiniband/core/iwpm_util.c | 2 +-
drivers/infiniband/core/nldev.c | 278 +-
drivers/infiniband/core/rw.c | 66 +-
drivers/infiniband/core/sa_query.c | 6 +-
drivers/infiniband/core/sysfs.c | 58 +-
drivers/infiniband/core/umem_dmabuf.c | 54 +
drivers/infiniband/core/uverbs_cmd.c | 3 -
drivers/infiniband/core/verbs.c | 49 +
drivers/infiniband/hw/bnxt_re/bnxt_re.h | 19 +-
drivers/infiniband/hw/bnxt_re/hw_counters.c | 380 +-
drivers/infiniband/hw/bnxt_re/hw_counters.h | 30 +-
drivers/infiniband/hw/bnxt_re/ib_verbs.c | 45 +-
drivers/infiniband/hw/bnxt_re/ib_verbs.h | 1 -
drivers/infiniband/hw/bnxt_re/main.c | 16 +-
drivers/infiniband/hw/bnxt_re/qplib_fp.c | 15 +-
drivers/infiniband/hw/bnxt_re/qplib_rcfw.c | 6 +-
drivers/infiniband/hw/bnxt_re/qplib_rcfw.h | 2 +-
drivers/infiniband/hw/bnxt_re/qplib_res.c | 22 +-
drivers/infiniband/hw/bnxt_re/qplib_res.h | 10 +-
drivers/infiniband/hw/bnxt_re/qplib_sp.c | 57 +-
drivers/infiniband/hw/bnxt_re/qplib_sp.h | 33 +-
drivers/infiniband/hw/bnxt_re/roce_hsi.h | 85 +
drivers/infiniband/hw/cxgb4/cm.c | 1 -
drivers/infiniband/hw/cxgb4/device.c | 1 -
drivers/infiniband/hw/cxgb4/provider.c | 22 +-
drivers/infiniband/hw/efa/efa.h | 23 +-
drivers/infiniband/hw/efa/efa_admin_cmds_defs.h | 100 +-
drivers/infiniband/hw/efa/efa_admin_defs.h | 41 +
drivers/infiniband/hw/efa/efa_com.c | 164 +
drivers/infiniband/hw/efa/efa_com.h | 38 +-
drivers/infiniband/hw/efa/efa_com_cmd.c | 35 +-
drivers/infiniband/hw/efa/efa_com_cmd.h | 10 +-
drivers/infiniband/hw/efa/efa_main.c | 182 +-
drivers/infiniband/hw/efa/efa_regs_defs.h | 7 +-
drivers/infiniband/hw/efa/efa_verbs.c | 213 +-
drivers/infiniband/hw/hfi1/Kconfig | 4 +-
drivers/infiniband/hw/hfi1/chip.c | 3 +-
drivers/infiniband/hw/hfi1/driver.c | 3 +-
drivers/infiniband/hw/hfi1/efivar.c | 10 +-
drivers/infiniband/hw/hfi1/init.c | 3 +-
drivers/infiniband/hw/hfi1/ipoib.h | 76 +-
drivers/infiniband/hw/hfi1/ipoib_main.c | 2 +-
drivers/infiniband/hw/hfi1/ipoib_tx.c | 314 +-
drivers/infiniband/hw/hfi1/pio.c | 9 +-
drivers/infiniband/hw/hfi1/trace_tx.h | 71 +-
drivers/infiniband/hw/hfi1/user_exp_rcv.c | 5 +-
drivers/infiniband/hw/hfi1/verbs.c | 53 +-
drivers/infiniband/hw/hns/hns_roce_device.h | 26 +-
drivers/infiniband/hw/hns/hns_roce_hw_v1.c | 10 +-
drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 32 +-
drivers/infiniband/hw/hns/hns_roce_main.c | 142 +-
drivers/infiniband/hw/irdma/cm.h | 12 +-
drivers/infiniband/hw/irdma/ctrl.c | 43 +-
drivers/infiniband/hw/irdma/hw.c | 7 +-
drivers/infiniband/hw/irdma/main.h | 5 +-
drivers/infiniband/hw/irdma/osdep.h | 1 -
drivers/infiniband/hw/irdma/protos.h | 2 -
drivers/infiniband/hw/irdma/trace_cm.h | 8 +-
drivers/infiniband/hw/irdma/type.h | 3 +-
drivers/infiniband/hw/irdma/uk.c | 105 +-
drivers/infiniband/hw/irdma/user.h | 32 +-
drivers/infiniband/hw/irdma/utils.c | 49 +-
drivers/infiniband/hw/irdma/verbs.c | 154 +-
drivers/infiniband/hw/irdma/ws.c | 13 +-
drivers/infiniband/hw/mlx4/alias_GUID.c | 4 +-
drivers/infiniband/hw/mlx4/main.c | 46 +-
drivers/infiniband/hw/mlx4/mlx4_ib.h | 2 +-
drivers/infiniband/hw/mlx4/qp.c | 6 +-
drivers/infiniband/hw/mlx5/cmd.c | 26 +
drivers/infiniband/hw/mlx5/cmd.h | 2 +
drivers/infiniband/hw/mlx5/counters.c | 283 +-
drivers/infiniband/hw/mlx5/devx.c | 13 +-
drivers/infiniband/hw/mlx5/devx.h | 2 +-
drivers/infiniband/hw/mlx5/fs.c | 187 +
drivers/infiniband/hw/mlx5/main.c | 55 +-
drivers/infiniband/hw/mlx5/mlx5_ib.h | 59 +-
drivers/infiniband/hw/mlx5/mr.c | 111 +-
drivers/infiniband/hw/mlx5/odp.c | 79 +-
drivers/infiniband/hw/mlx5/qp.c | 2 +
drivers/infiniband/hw/mlx5/wr.c | 10 +-
drivers/infiniband/hw/qedr/main.c | 3 +-
drivers/infiniband/hw/qedr/qedr.h | 1 +
drivers/infiniband/hw/qedr/qedr_iw_cm.c | 2 +-
drivers/infiniband/hw/qedr/verbs.c | 30 +-
drivers/infiniband/hw/qedr/verbs.h | 1 -
drivers/infiniband/hw/qib/qib_driver.c | 5 +-
drivers/infiniband/hw/qib/qib_user_sdma.c | 33 +-
drivers/infiniband/hw/usnic/usnic_fwd.c | 2 +-
drivers/infiniband/hw/usnic/usnic_fwd.h | 2 +-
drivers/infiniband/sw/rdmavt/qp.c | 2 +-
drivers/infiniband/sw/rxe/rxe_av.c | 20 +-
drivers/infiniband/sw/rxe/rxe_comp.c | 57 +-
drivers/infiniband/sw/rxe/rxe_cq.c | 28 +-
drivers/infiniband/sw/rxe/rxe_hw_counters.c | 42 +-
drivers/infiniband/sw/rxe/rxe_loc.h | 2 +
drivers/infiniband/sw/rxe/rxe_mr.c | 267 +-
drivers/infiniband/sw/rxe/rxe_mw.c | 36 +-
drivers/infiniband/sw/rxe/rxe_opcode.h | 6 +-
drivers/infiniband/sw/rxe/rxe_param.h | 34 +-
drivers/infiniband/sw/rxe/rxe_pool.c | 41 +-
drivers/infiniband/sw/rxe/rxe_pool.h | 15 -
drivers/infiniband/sw/rxe/rxe_qp.c | 16 +-
drivers/infiniband/sw/rxe/rxe_queue.c | 30 +-
drivers/infiniband/sw/rxe/rxe_queue.h | 292 +-
drivers/infiniband/sw/rxe/rxe_req.c | 65 +-
drivers/infiniband/sw/rxe/rxe_resp.c | 50 +-
drivers/infiniband/sw/rxe/rxe_srq.c | 3 +-
drivers/infiniband/sw/rxe/rxe_verbs.c | 139 +-
drivers/infiniband/sw/rxe/rxe_verbs.h | 60 +-
drivers/infiniband/sw/siw/siw_cm.c | 4 +-
drivers/infiniband/ulp/ipoib/ipoib_cm.c | 4 +-
drivers/infiniband/ulp/ipoib/ipoib_ib.c | 9 +-
drivers/infiniband/ulp/ipoib/ipoib_main.c | 18 +-
drivers/infiniband/ulp/opa_vnic/Kconfig | 4 +-
drivers/infiniband/ulp/opa_vnic/Makefile | 3 +-
drivers/infiniband/ulp/opa_vnic/opa_vnic_vema.c | 7 +-
drivers/infiniband/ulp/rtrs/rtrs-clt-stats.c | 49 +-
drivers/infiniband/ulp/rtrs/rtrs-clt-sysfs.c | 11 +-
drivers/infiniband/ulp/rtrs/rtrs-clt.c | 6 +
drivers/infiniband/ulp/rtrs/rtrs-clt.h | 13 +-
drivers/infiniband/ulp/rtrs/rtrs-pri.h | 2 +-
drivers/infiniband/ulp/rtrs/rtrs-srv-stats.c | 3 +-
drivers/infiniband/ulp/rtrs/rtrs-srv-sysfs.c | 2 +-
drivers/infiniband/ulp/rtrs/rtrs-srv.c | 6 +
drivers/infiniband/ulp/rtrs/rtrs-srv.h | 3 +-
drivers/infiniband/ulp/rtrs/rtrs.c | 31 +-
drivers/infiniband/ulp/srp/ib_srp.c | 59 +-
drivers/infiniband/ulp/srpt/ib_srpt.c | 38 +-
drivers/input/joydev.c | 10 +
drivers/input/joystick/analog.c | 18 +-
drivers/input/joystick/iforce/iforce-usb.c | 2 +-
drivers/input/joystick/tmdc.c | 2 +-
drivers/input/keyboard/Kconfig | 10 +
drivers/input/keyboard/Makefile | 1 +
drivers/input/keyboard/cap11xx.c | 43 +-
drivers/input/keyboard/cypress-sf.c | 224 +
drivers/input/keyboard/ep93xx_keypad.c | 172 +-
drivers/input/keyboard/mpr121_touchkey.c | 4 +-
drivers/input/keyboard/omap-keypad.c | 3 +-
drivers/input/keyboard/tm2-touchkey.c | 7 +
drivers/input/misc/adxl34x-i2c.c | 4 +-
drivers/input/misc/adxl34x-spi.c | 4 +-
drivers/input/misc/adxl34x.c | 6 +-
drivers/input/misc/adxl34x.h | 2 +-
drivers/input/misc/ariel-pwrbutton.c | 7 +
drivers/input/misc/axp20x-pek.c | 26 +-
drivers/input/misc/cpcap-pwrbutton.c | 7 +-
drivers/input/misc/max77693-haptic.c | 1 -
drivers/input/misc/max8925_onkey.c | 2 +-
drivers/input/misc/palmas-pwrbutton.c | 5 +
drivers/input/misc/pm8941-pwrkey.c | 6 +-
drivers/input/mouse/elantech.c | 13 +
drivers/input/rmi4/rmi_bus.c | 1 +
drivers/input/serio/i8042-x86ia64io.h | 14 +
drivers/input/serio/serport.c | 3 +-
drivers/input/touchscreen/Kconfig | 1 +
drivers/input/touchscreen/Makefile | 3 +-
drivers/input/touchscreen/ads7846.c | 200 +-
drivers/input/touchscreen/elants_i2c.c | 4 +-
drivers/input/touchscreen/goodix.c | 231 +-
drivers/input/touchscreen/goodix.h | 117 +
drivers/input/touchscreen/goodix_fwupload.c | 427 +
drivers/input/touchscreen/ili210x.c | 559 +-
drivers/input/touchscreen/raydium_i2c_ts.c | 54 +-
drivers/input/touchscreen/st1232.c | 3 +-
drivers/input/touchscreen/tsc2004.c | 4 +-
drivers/input/touchscreen/tsc2005.c | 4 +-
drivers/input/touchscreen/tsc200x-core.c | 4 +-
drivers/input/touchscreen/tsc200x-core.h | 2 +-
drivers/input/touchscreen/wacom_i2c.c | 22 +-
drivers/interconnect/qcom/icc-rpm.c | 263 +-
drivers/interconnect/qcom/icc-rpm.h | 56 +-
drivers/interconnect/qcom/msm8916.c | 1214 +-
drivers/interconnect/qcom/msm8939.c | 1283 +-
drivers/interconnect/qcom/qcs404.c | 967 +-
drivers/interconnect/qcom/sdm660.c | 1940 +-
drivers/interconnect/samsung/Kconfig | 6 +-
drivers/iommu/amd/amd_iommu_types.h | 2 +
drivers/iommu/amd/init.c | 16 +-
drivers/iommu/amd/iommu.c | 24 +-
drivers/iommu/amd/iommu_v2.c | 3 +-
drivers/iommu/apple-dart.c | 36 +-
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 21 +-
drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 3 +
drivers/iommu/dma-iommu.c | 200 +-
drivers/iommu/intel/Kconfig | 4 +
drivers/iommu/intel/cap_audit.c | 13 +
drivers/iommu/intel/cap_audit.h | 1 +
drivers/iommu/intel/dmar.c | 10 +-
drivers/iommu/intel/iommu.c | 213 +-
drivers/iommu/intel/svm.c | 24 +-
drivers/iommu/iommu.c | 6 +-
drivers/iommu/ipmmu-vmsa.c | 32 +-
drivers/iommu/mtk_iommu.c | 4 +-
drivers/iommu/tegra-smmu.c | 5 +-
drivers/ipack/devices/ipoctal.c | 48 +-
drivers/irqchip/Kconfig | 25 +-
drivers/irqchip/Makefile | 1 +
drivers/irqchip/irq-apple-aic.c | 20 +-
drivers/irqchip/irq-armada-370-xp.c | 13 +-
drivers/irqchip/irq-aspeed-vic.c | 2 +-
drivers/irqchip/irq-ativic32.c | 22 +-
drivers/irqchip/irq-atmel-aic.c | 2 +-
drivers/irqchip/irq-atmel-aic5.c | 2 +-
drivers/irqchip/irq-bcm2835.c | 2 +-
drivers/irqchip/irq-bcm2836.c | 2 +-
drivers/irqchip/irq-bcm6345-l1.c | 6 +-
drivers/irqchip/irq-bcm7038-l1.c | 47 +-
drivers/irqchip/irq-bcm7120-l2.c | 21 +-
drivers/irqchip/irq-brcmstb-l2.c | 16 +-
drivers/irqchip/irq-clps711x.c | 8 +-
drivers/irqchip/irq-csky-apb-intc.c | 2 +-
drivers/irqchip/irq-csky-mpintc.c | 12 +-
drivers/irqchip/irq-davinci-aintc.c | 2 +-
drivers/irqchip/irq-davinci-cp-intc.c | 2 +-
drivers/irqchip/irq-digicolor.c | 2 +-
drivers/irqchip/irq-dw-apb-ictl.c | 2 +-
drivers/irqchip/irq-ftintc010.c | 2 +-
drivers/irqchip/irq-gic-v3.c | 4 +-
drivers/irqchip/irq-gic.c | 2 +-
drivers/irqchip/irq-hip04.c | 2 +-
drivers/irqchip/irq-ixp4xx.c | 4 +-
drivers/irqchip/irq-lpc32xx.c | 2 +-
drivers/irqchip/irq-mchp-eic.c | 280 +
drivers/irqchip/irq-meson-gpio.c | 15 +-
drivers/irqchip/irq-mips-gic.c | 37 +-
drivers/irqchip/irq-mmp.c | 4 +-
drivers/irqchip/irq-mvebu-icu.c | 4 +-
drivers/irqchip/irq-mvebu-pic.c | 4 +-
drivers/irqchip/irq-mxs.c | 2 +-
drivers/irqchip/irq-nvic.c | 17 +-
drivers/irqchip/irq-omap-intc.c | 2 +-
drivers/irqchip/irq-or1k-pic.c | 2 +-
drivers/irqchip/irq-orion.c | 4 +-
drivers/irqchip/irq-rda-intc.c | 2 +-
drivers/irqchip/irq-riscv-intc.c | 2 +-
drivers/irqchip/irq-sa11x0.c | 4 +-
drivers/irqchip/irq-sifive-plic.c | 8 +-
drivers/irqchip/irq-stm32-exti.c | 4 +-
drivers/irqchip/irq-sun4i.c | 2 +-
drivers/irqchip/irq-ti-sci-inta.c | 4 +-
drivers/irqchip/irq-ts4800.c | 4 +-
drivers/irqchip/irq-versatile-fpga.c | 2 +-
drivers/irqchip/irq-vic.c | 2 +-
drivers/irqchip/irq-vt8500.c | 2 +-
drivers/irqchip/irq-wpcm450-aic.c | 2 +-
drivers/irqchip/irq-zevio.c | 2 +-
drivers/isdn/hardware/mISDN/hfcpci.c | 8 +-
drivers/leds/led-class-flash.c | 2 +-
drivers/leds/led-triggers.c | 41 +-
drivers/leds/trigger/Kconfig | 1 +
drivers/macintosh/smu.c | 5 +-
drivers/mailbox/Kconfig | 12 +
drivers/mailbox/Makefile | 2 +
drivers/mailbox/apple-mailbox.c | 384 +
drivers/mailbox/bcm2835-mailbox.c | 4 +-
drivers/mailbox/hi3660-mailbox.c | 4 +-
drivers/mailbox/hi6220-mailbox.c | 7 +-
drivers/mailbox/imx-mailbox.c | 124 +-
drivers/mailbox/mailbox-altera.c | 5 +-
drivers/mailbox/mailbox-sti.c | 4 +-
drivers/mailbox/mailbox-xgene-slimpro.c | 4 +-
drivers/mailbox/mtk-cmdq-mailbox.c | 15 +-
drivers/mailbox/omap-mailbox.c | 4 +-
drivers/mailbox/pcc.c | 598 +-
drivers/mailbox/platform_mhu.c | 4 +-
drivers/mailbox/qcom-apcs-ipc-mailbox.c | 31 +-
drivers/mailbox/stm32-ipcc.c | 4 +-
drivers/mailbox/sun6i-msgbox.c | 9 +-
drivers/md/Kconfig | 10 +
drivers/md/Makefile | 4 +
drivers/md/bcache/bcache.h | 6 +-
drivers/md/bcache/bcache_ondisk.h | 445 +
drivers/md/bcache/bset.h | 2 +-
drivers/md/bcache/btree.c | 4 +-
drivers/md/bcache/debug.c | 15 +-
drivers/md/bcache/features.c | 2 +-
drivers/md/bcache/features.h | 3 +-
drivers/md/bcache/io.c | 16 +-
drivers/md/bcache/request.c | 19 +-
drivers/md/bcache/request.h | 4 +-
drivers/md/bcache/super.c | 93 +-
drivers/md/bcache/sysfs.c | 2 +-
drivers/md/bcache/sysfs.h | 18 +-
drivers/md/bcache/util.h | 29 -
drivers/md/bcache/writeback.c | 2 +-
drivers/md/dm-audit.c | 84 +
drivers/md/dm-audit.h | 66 +
drivers/md/dm-bio-record.h | 1 +
drivers/md/dm-bufio.c | 3 +-
drivers/md/dm-cache-metadata.c | 2 +-
drivers/md/dm-cache-target.c | 2 +-
drivers/md/dm-clone-target.c | 2 +-
drivers/md/dm-core.h | 4 +-
drivers/md/dm-crypt.c | 26 +-
drivers/md/dm-dust.c | 5 +-
drivers/md/dm-ebs-target.c | 2 +-
drivers/md/dm-era-target.c | 2 +-
drivers/md/dm-exception-store.h | 2 +-
drivers/md/dm-flakey.c | 3 +-
drivers/md/dm-ima.c | 1 +
drivers/md/dm-integrity.c | 41 +-
drivers/md/dm-linear.c | 3 +-
drivers/md/dm-log-writes.c | 10 +-
drivers/md/dm-log.c | 2 +-
drivers/md/dm-mpath.c | 6 +-
drivers/md/dm-ps-historical-service-time.c | 1 +
drivers/md/dm-raid.c | 6 +-
drivers/md/dm-rq.c | 1 -
drivers/md/dm-switch.c | 2 +-
drivers/md/dm-table.c | 176 +-
drivers/md/dm-thin-metadata.c | 2 +-
drivers/md/dm-thin.c | 2 +-
drivers/md/dm-verity-target.c | 10 +-
drivers/md/dm-writecache.c | 8 +-
drivers/md/dm-zoned-target.c | 3 +-
drivers/md/dm.c | 54 +-
drivers/md/md-bitmap.c | 19 +
drivers/md/md.c | 130 +-
drivers/md/md.h | 2 +-
drivers/md/raid1.c | 13 +-
drivers/md/raid10.c | 2 +-
drivers/md/raid5-ppl.c | 6 +-
drivers/md/raid5.c | 7 +-
drivers/media/cec/Kconfig | 4 +
drivers/media/cec/core/cec-pin.c | 4 +-
drivers/media/cec/platform/meson/ao-cec-g12a.c | 4 +-
drivers/media/cec/platform/meson/ao-cec.c | 4 +-
drivers/media/cec/platform/s5p/s5p_cec.c | 4 +-
drivers/media/cec/platform/sti/stih-cec.c | 4 +-
drivers/media/cec/platform/stm32/stm32-cec.c | 4 +-
drivers/media/common/siano/smscoreapi.c | 7 +-
drivers/media/common/videobuf2/videobuf2-core.c | 150 +-
.../media/common/videobuf2/videobuf2-dma-contig.c | 199 +-
drivers/media/common/videobuf2/videobuf2-dma-sg.c | 40 +-
drivers/media/common/videobuf2/videobuf2-v4l2.c | 59 +-
drivers/media/common/videobuf2/videobuf2-vmalloc.c | 31 +-
drivers/media/dvb-core/dvb_net.c | 8 +-
drivers/media/dvb-core/dvb_vb2.c | 2 +-
drivers/media/dvb-frontends/cxd2099.c | 9 -
drivers/media/dvb-frontends/cxd2099.h | 9 -
drivers/media/dvb-frontends/cxd2820r_priv.h | 2 +-
.../media/dvb-frontends/cxd2880/cxd2880_common.h | 1 +
drivers/media/dvb-frontends/mb86a20s.c | 4 +-
drivers/media/dvb-frontends/mn88443x.c | 18 +-
drivers/media/dvb-frontends/mxl5xx.c | 9 -
drivers/media/dvb-frontends/mxl5xx.h | 9 -
drivers/media/dvb-frontends/mxl5xx_defs.h | 4 -
drivers/media/dvb-frontends/mxl5xx_regs.h | 10 -
drivers/media/dvb-frontends/mxl692.c | 9 -
drivers/media/dvb-frontends/mxl692.h | 9 -
drivers/media/dvb-frontends/mxl692_defs.h | 9 -
drivers/media/dvb-frontends/rtl2832_sdr.c | 5 +-
drivers/media/dvb-frontends/stv0910.c | 9 -
drivers/media/dvb-frontends/stv0910.h | 9 -
drivers/media/dvb-frontends/stv6111.c | 9 -
drivers/media/dvb-frontends/stv6111.h | 9 -
drivers/media/firewire/firedtv-avc.c | 14 +-
drivers/media/firewire/firedtv-ci.c | 2 +
drivers/media/i2c/Kconfig | 27 +
drivers/media/i2c/Makefile | 2 +
drivers/media/i2c/adv7604.c | 15 +-
drivers/media/i2c/dw9714.c | 14 +-
drivers/media/i2c/hi846.c | 2190 +
drivers/media/i2c/imx258.c | 12 +-
drivers/media/i2c/imx319.c | 74 +-
drivers/media/i2c/ir-kbd-i2c.c | 1 +
drivers/media/i2c/max9286.c | 17 +-
drivers/media/i2c/mt9p031.c | 80 +-
drivers/media/i2c/ov13858.c | 11 +-
drivers/media/i2c/ov13b10.c | 1491 +
drivers/media/i2c/ov5670.c | 11 +-
drivers/media/i2c/ov8856.c | 83 +-
drivers/media/i2c/st-mipid02.c | 22 +-
drivers/media/i2c/tda1997x.c | 131 +-
drivers/media/i2c/tda1997x_regs.h | 3 +
drivers/media/i2c/video-i2c.c | 21 +-
drivers/media/mc/Kconfig | 8 -
drivers/media/pci/cobalt/cobalt-driver.c | 4 +-
drivers/media/pci/cx18/cx18-driver.c | 2 +-
drivers/media/pci/cx18/cx18-ioctl.c | 4 +-
drivers/media/pci/cx18/cx18-queue.c | 13 +-
drivers/media/pci/cx18/cx18-streams.c | 24 +-
drivers/media/pci/cx23885/cx23885-alsa.c | 3 +-
drivers/media/pci/ddbridge/ddbridge-main.c | 4 +-
drivers/media/pci/intel/ipu3/cio2-bridge.c | 60 +-
drivers/media/pci/intel/ipu3/cio2-bridge.h | 9 +-
drivers/media/pci/intel/ipu3/ipu3-cio2-main.c | 274 +-
drivers/media/pci/intel/ipu3/ipu3-cio2.h | 4 +
drivers/media/pci/ivtv/ivtv-driver.c | 2 +-
drivers/media/pci/ivtv/ivtv-ioctl.c | 8 +-
drivers/media/pci/ivtv/ivtv-queue.c | 18 +-
drivers/media/pci/ivtv/ivtv-streams.c | 22 +-
drivers/media/pci/ivtv/ivtv-udma.c | 19 +-
drivers/media/pci/ivtv/ivtv-yuv.c | 10 +-
drivers/media/pci/ivtv/ivtvfb.c | 12 +-
drivers/media/pci/netup_unidvb/netup_unidvb_core.c | 29 +-
drivers/media/pci/pluto2/pluto2.c | 20 +-
drivers/media/pci/pt1/pt1.c | 2 +-
drivers/media/pci/saa7134/saa7134-cards.c | 53 +
drivers/media/pci/saa7134/saa7134-dvb.c | 29 +
drivers/media/pci/saa7134/saa7134.h | 1 +
drivers/media/pci/saa7164/saa7164-api.c | 2 -
drivers/media/pci/tw5864/tw5864-core.c | 2 +-
drivers/media/platform/Kconfig | 20 +
drivers/media/platform/Makefile | 1 +
drivers/media/platform/allegro-dvt/allegro-core.c | 311 +-
drivers/media/platform/allegro-dvt/allegro-mail.c | 23 +-
drivers/media/platform/allegro-dvt/allegro-mail.h | 10 +-
drivers/media/platform/allegro-dvt/nal-h264.c | 74 -
drivers/media/platform/allegro-dvt/nal-h264.h | 200 +-
drivers/media/platform/allegro-dvt/nal-hevc.c | 202 +-
drivers/media/platform/allegro-dvt/nal-hevc.h | 189 +-
drivers/media/platform/am437x/am437x-vpfe.c | 23 +-
drivers/media/platform/aspeed-video.c | 133 +-
drivers/media/platform/atmel/atmel-isc-base.c | 29 +-
drivers/media/platform/atmel/atmel-isc.h | 2 +
drivers/media/platform/atmel/atmel-isi.c | 17 +-
drivers/media/platform/atmel/atmel-sama5d2-isc.c | 54 +-
drivers/media/platform/atmel/atmel-sama7g5-isc.c | 37 +-
drivers/media/platform/cadence/cdns-csi2rx.c | 18 +-
drivers/media/platform/cadence/cdns-csi2tx.c | 4 +-
drivers/media/platform/coda/imx-vdoa.c | 3 +-
drivers/media/platform/davinci/vpbe_venc.c | 9 +-
drivers/media/platform/davinci/vpif.c | 5 +-
drivers/media/platform/davinci/vpif_capture.c | 21 +-
drivers/media/platform/davinci/vpss.c | 10 +-
drivers/media/platform/exynos-gsc/gsc-core.c | 3 +-
drivers/media/platform/exynos4-is/media-dev.c | 20 +-
drivers/media/platform/exynos4-is/mipi-csis.c | 4 +-
drivers/media/platform/imx-jpeg/mxc-jpeg.c | 109 +-
drivers/media/platform/imx-jpeg/mxc-jpeg.h | 2 +
drivers/media/platform/imx-pxp.c | 4 +-
drivers/media/platform/marvell-ccic/cafe-driver.c | 9 +-
drivers/media/platform/marvell-ccic/mcam-core.c | 10 +-
drivers/media/platform/marvell-ccic/mmp-driver.c | 6 +-
drivers/media/platform/meson/ge2d/ge2d.c | 10 +-
drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c | 4 +-
drivers/media/platform/mtk-vcodec/Makefile | 3 +
drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c | 820 +-
drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.h | 27 +-
.../media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c | 65 +-
.../platform/mtk-vcodec/mtk_vcodec_dec_stateful.c | 628 +
.../platform/mtk-vcodec/mtk_vcodec_dec_stateless.c | 360 +
drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h | 59 +-
drivers/media/platform/mtk-vcodec/mtk_vcodec_enc.c | 148 +-
.../media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c | 75 +-
.../platform/mtk-vcodec/vdec/vdec_h264_req_if.c | 774 +
drivers/media/platform/mtk-vcodec/vdec_drv_if.c | 3 +
drivers/media/platform/mtk-vcodec/vdec_drv_if.h | 1 +
drivers/media/platform/mtk-vcodec/vdec_ipi_msg.h | 23 +-
drivers/media/platform/mtk-vcodec/vdec_vpu_if.c | 43 +-
drivers/media/platform/mtk-vcodec/vdec_vpu_if.h | 5 +
drivers/media/platform/mtk-vpu/mtk_vpu.c | 5 +-
drivers/media/platform/mx2_emmaprp.c | 4 +-
drivers/media/platform/omap/omap_vout.c | 18 +-
drivers/media/platform/omap/omap_vout_vrfb.c | 2 +-
drivers/media/platform/omap/omap_voutdef.h | 2 +-
drivers/media/platform/omap3isp/isp.c | 21 +-
drivers/media/platform/pxa_camera.c | 26 +-
drivers/media/platform/qcom/camss/camss-vfe-170.c | 9 +-
drivers/media/platform/qcom/camss/camss-vfe-4-1.c | 28 +-
drivers/media/platform/qcom/camss/camss-vfe-4-7.c | 18 +-
drivers/media/platform/qcom/camss/camss-vfe-4-8.c | 17 +-
drivers/media/platform/qcom/camss/camss-vfe.c | 4 +-
drivers/media/platform/qcom/camss/camss-vfe.h | 2 +-
drivers/media/platform/qcom/camss/camss.c | 18 +-
drivers/media/platform/qcom/venus/core.c | 135 +-
drivers/media/platform/qcom/venus/core.h | 9 +-
drivers/media/platform/qcom/venus/firmware.c | 42 +-
drivers/media/platform/qcom/venus/helpers.c | 81 +-
drivers/media/platform/qcom/venus/helpers.h | 4 +
drivers/media/platform/qcom/venus/hfi.c | 48 +-
drivers/media/platform/qcom/venus/hfi_cmds.c | 7 +
drivers/media/platform/qcom/venus/hfi_helper.h | 14 +
drivers/media/platform/qcom/venus/hfi_msgs.c | 7 +
.../media/platform/qcom/venus/hfi_plat_bufs_v6.c | 6 +-
drivers/media/platform/qcom/venus/hfi_platform.c | 13 -
drivers/media/platform/qcom/venus/hfi_platform.h | 2 -
.../media/platform/qcom/venus/hfi_platform_v6.c | 6 -
drivers/media/platform/qcom/venus/hfi_venus.c | 4 +
drivers/media/platform/qcom/venus/hfi_venus_io.h | 2 +
drivers/media/platform/qcom/venus/pm_helpers.c | 13 +-
drivers/media/platform/qcom/venus/vdec.c | 67 +-
drivers/media/platform/qcom/venus/venc.c | 116 +-
drivers/media/platform/rcar-isp.c | 515 +
drivers/media/platform/rcar-vin/rcar-core.c | 1077 +-
drivers/media/platform/rcar-vin/rcar-csi2.c | 241 +-
drivers/media/platform/rcar-vin/rcar-dma.c | 40 +-
drivers/media/platform/rcar-vin/rcar-v4l2.c | 25 +
drivers/media/platform/rcar-vin/rcar-vin.h | 25 +-
drivers/media/platform/rcar_drif.c | 17 +-
drivers/media/platform/rcar_fdp1.c | 4 +-
drivers/media/platform/rcar_jpu.c | 4 +-
drivers/media/platform/renesas-ceu.c | 33 +-
drivers/media/platform/rockchip/rga/rga.c | 5 +-
.../platform/rockchip/rkisp1/rkisp1-capture.c | 9 +-
.../media/platform/rockchip/rkisp1/rkisp1-common.h | 44 +-
.../media/platform/rockchip/rkisp1/rkisp1-dev.c | 98 +-
.../media/platform/rockchip/rkisp1/rkisp1-isp.c | 29 +-
.../media/platform/rockchip/rkisp1/rkisp1-params.c | 557 +-
.../media/platform/rockchip/rkisp1/rkisp1-regs.h | 406 +-
.../media/platform/rockchip/rkisp1/rkisp1-stats.c | 107 +-
drivers/media/platform/s3c-camif/camif-core.c | 6 +-
drivers/media/platform/s5p-g2d/g2d.c | 4 +-
drivers/media/platform/s5p-jpeg/jpeg-core.c | 5 +-
drivers/media/platform/s5p-mfc/s5p_mfc.c | 9 +-
drivers/media/platform/sti/bdisp/bdisp-v4l2.c | 3 +-
.../media/platform/sti/c8sectpfe/c8sectpfe-core.c | 1 -
.../media/platform/sti/c8sectpfe/c8sectpfe-dvb.c | 1 -
drivers/media/platform/sti/hva/hva-hw.c | 4 +-
drivers/media/platform/stm32/stm32-dcmi.c | 37 +-
drivers/media/platform/sunxi/sun4i-csi/sun4i_csi.c | 16 +-
drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c | 33 +-
drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.h | 2 +-
.../media/platform/sunxi/sun6i-csi/sun6i_video.c | 8 +-
drivers/media/platform/sunxi/sun8i-di/sun8i-di.c | 4 +-
drivers/media/platform/ti-vpe/cal.c | 16 +-
drivers/media/platform/via-camera.c | 6 +-
drivers/media/platform/video-mux.c | 17 +-
drivers/media/platform/vsp1/vsp1_drm.c | 8 +-
drivers/media/platform/vsp1/vsp1_drv.c | 18 +-
drivers/media/platform/vsp1/vsp1_regs.h | 11 +-
drivers/media/platform/vsp1/vsp1_wpf.c | 2 +-
drivers/media/platform/xilinx/xilinx-vip.c | 4 +-
drivers/media/platform/xilinx/xilinx-vipp.c | 17 +-
drivers/media/radio/radio-wl1273.c | 2 +-
drivers/media/radio/si470x/radio-si470x-i2c.c | 2 +-
drivers/media/radio/si470x/radio-si470x-usb.c | 2 +-
drivers/media/rc/Kconfig | 8 -
drivers/media/rc/Makefile | 1 -
drivers/media/rc/img-ir/img-ir-core.c | 4 +-
drivers/media/rc/imon.c | 2 +
drivers/media/rc/ir-hix5hd2.c | 4 +-
drivers/media/rc/ir_toy.c | 63 +-
drivers/media/rc/ite-cir.c | 2 +-
drivers/media/rc/mceusb.c | 2 +
drivers/media/rc/meson-ir-tx.c | 1 -
drivers/media/rc/meson-ir.c | 4 +-
drivers/media/rc/mtk-cir.c | 4 +-
drivers/media/rc/sir_ir.c | 438 -
drivers/media/rc/st_rc.c | 5 +-
drivers/media/rc/streamzap.c | 1 +
drivers/media/rc/sunxi-cir.c | 4 +-
drivers/media/spi/cxd2880-spi.c | 2 +-
drivers/media/test-drivers/vidtv/vidtv_bridge.c | 4 +
drivers/media/test-drivers/vim2m.c | 5 -
drivers/media/test-drivers/vimc/vimc-scaler.c | 366 +-
drivers/media/test-drivers/vivid/vivid-cec.c | 341 +-
drivers/media/test-drivers/vivid/vivid-cec.h | 9 +-
drivers/media/test-drivers/vivid/vivid-core.c | 52 +-
drivers/media/test-drivers/vivid/vivid-core.h | 23 +-
drivers/media/tuners/mxl5007t.c | 9 -
drivers/media/tuners/tuner-types.c | 4 +
drivers/media/usb/airspy/airspy.c | 5 +-
drivers/media/usb/dvb-usb-v2/mxl111sf.c | 16 +-
drivers/media/usb/dvb-usb/az6027.c | 1 +
drivers/media/usb/dvb-usb/dibusb-common.c | 2 +-
drivers/media/usb/em28xx/em28xx-cards.c | 12 +-
drivers/media/usb/em28xx/em28xx-core.c | 5 +-
drivers/media/usb/gspca/gl860/gl860-mi1320.c | 87 +-
drivers/media/usb/gspca/gl860/gl860-ov9655.c | 169 +-
drivers/media/usb/gspca/gspca.c | 2 +
drivers/media/usb/gspca/m5602/m5602_ov7660.h | 1 -
drivers/media/usb/gspca/sn9c20x.c | 22 +-
drivers/media/usb/pvrusb2/pvrusb2-ctrl.c | 25 +-
drivers/media/usb/pvrusb2/pvrusb2-v4l2.c | 4 -
drivers/media/usb/stkwebcam/stk-webcam.c | 11 +-
drivers/media/usb/tm6000/tm6000-video.c | 3 +-
drivers/media/usb/ttusb-dec/ttusb_dec.c | 10 +-
drivers/media/usb/uvc/uvc_ctrl.c | 260 +-
drivers/media/usb/uvc/uvc_driver.c | 16 +-
drivers/media/usb/uvc/uvc_metadata.c | 2 +-
drivers/media/usb/uvc/uvc_v4l2.c | 103 +-
drivers/media/usb/uvc/uvc_video.c | 5 +
drivers/media/usb/uvc/uvcvideo.h | 17 +-
drivers/media/v4l2-core/v4l2-async.c | 168 +-
drivers/media/v4l2-core/v4l2-common.c | 3 +
drivers/media/v4l2-core/v4l2-compat-ioctl32.c | 9 +-
drivers/media/v4l2-core/v4l2-ctrls-core.c | 6 +
drivers/media/v4l2-core/v4l2-ctrls-defs.c | 5 +
drivers/media/v4l2-core/v4l2-fwnode.c | 83 +-
drivers/media/v4l2-core/v4l2-ioctl.c | 77 +-
drivers/memory/Kconfig | 5 +-
drivers/memory/fsl_ifc.c | 13 +-
drivers/memory/jedec_ddr.h | 47 +
drivers/memory/jedec_ddr_data.c | 41 +
drivers/memory/mtk-smi.c | 596 +-
drivers/memory/of_memory.c | 87 +
drivers/memory/of_memory.h | 9 +
drivers/memory/renesas-rpc-if.c | 159 +-
drivers/memory/samsung/Kconfig | 13 +-
drivers/memory/tegra/Kconfig | 1 +
drivers/memory/tegra/mc.c | 25 +-
drivers/memory/tegra/tegra186-emc.c | 5 +
drivers/memory/tegra/tegra20-emc.c | 200 +-
drivers/memory/tegra/tegra210-emc-cc-r21021.c | 2 +-
drivers/memory/tegra/tegra210-emc-core.c | 6 +-
drivers/memory/tegra/tegra30-emc.c | 4 +-
drivers/memstick/core/ms_block.c | 8 +-
drivers/memstick/core/mspro_block.c | 6 +-
drivers/memstick/host/jmb38x_ms.c | 5 +-
drivers/memstick/host/r592.c | 8 +-
drivers/message/fusion/mptbase.c | 7 +-
drivers/message/fusion/mptbase.h | 2 +-
drivers/message/fusion/mptctl.c | 4 +-
drivers/message/fusion/mptfc.c | 8 +-
drivers/message/fusion/mptlan.c | 4 +-
drivers/message/fusion/mptsas.c | 4 +-
drivers/message/fusion/mptscsih.c | 46 +-
drivers/message/fusion/mptscsih.h | 2 +-
drivers/message/fusion/mptspi.c | 6 +-
drivers/mfd/Kconfig | 23 +-
drivers/mfd/Makefile | 1 -
drivers/mfd/altera-a10sr.c | 9 +
drivers/mfd/altera-sysmgr.c | 2 +-
drivers/mfd/arizona-core.c | 13 -
drivers/mfd/arizona-i2c.c | 14 +-
drivers/mfd/arizona-spi.c | 13 +-
drivers/mfd/arizona.h | 2 -
drivers/mfd/cros_ec_dev.c | 5 +-
drivers/mfd/da9063-i2c.c | 2 +
drivers/mfd/db8500-prcmu.c | 13 +-
drivers/mfd/dln2.c | 18 +
drivers/mfd/hi6421-spmi-pmic.c | 16 +-
drivers/mfd/intel-lpss-pci.c | 2 +
drivers/mfd/janz-cmodio.c | 2 +-
drivers/mfd/max14577.c | 6 +-
drivers/mfd/max77686.c | 3 +-
drivers/mfd/max77693.c | 12 +-
drivers/mfd/mc13xxx-core.c | 4 +-
drivers/mfd/mc13xxx-i2c.c | 3 +-
drivers/mfd/mc13xxx-spi.c | 3 +-
drivers/mfd/mc13xxx.h | 2 +-
drivers/mfd/mfd-core.c | 2 +
drivers/mfd/motorola-cpcap.c | 8 +
drivers/mfd/qcom-pm8xxx.c | 39 +-
drivers/mfd/qcom-spmi-pmic.c | 47 +-
drivers/mfd/rk808.c | 4 +
drivers/mfd/sec-irq.c | 3 +-
drivers/mfd/sprd-sc27xx-spi.c | 17 +
drivers/mfd/stmpe-i2c.c | 4 +-
drivers/mfd/stmpe-spi.c | 4 +-
drivers/mfd/stmpe.c | 4 +-
drivers/mfd/stmpe.h | 2 +-
drivers/mfd/ti_am335x_tscadc.c | 237 +-
drivers/mfd/tps65912-core.c | 4 +-
drivers/mfd/tps65912-i2c.c | 4 +-
drivers/mfd/tps65912-spi.c | 4 +-
drivers/mfd/tps80031.c | 526 -
drivers/mfd/wcd934x.c | 21 +-
drivers/misc/ad525x_dpot-i2c.c | 3 +-
drivers/misc/ad525x_dpot-spi.c | 3 +-
drivers/misc/ad525x_dpot.c | 4 +-
drivers/misc/ad525x_dpot.h | 2 +-
drivers/misc/cardreader/rtsx_pcr.c | 2 +-
drivers/misc/cxl/guest.c | 30 +-
drivers/misc/cxl/pci.c | 35 +-
drivers/misc/eeprom/at24.c | 45 +-
drivers/misc/enclosure.c | 16 +-
drivers/misc/fastrpc.c | 21 +-
drivers/misc/genwqe/card_utils.c | 10 +-
drivers/misc/habanalabs/Kconfig | 2 +
drivers/misc/habanalabs/common/Makefile | 2 +-
.../misc/habanalabs/common/command_submission.c | 105 +-
drivers/misc/habanalabs/common/context.c | 8 +-
drivers/misc/habanalabs/common/debugfs.c | 51 +
drivers/misc/habanalabs/common/device.c | 159 +-
drivers/misc/habanalabs/common/firmware_if.c | 28 +-
drivers/misc/habanalabs/common/habanalabs.h | 64 +-
drivers/misc/habanalabs/common/habanalabs_drv.c | 24 +-
drivers/misc/habanalabs/common/hwmgr.c | 117 +
drivers/misc/habanalabs/common/hwmon.c | 194 +-
drivers/misc/habanalabs/common/irq.c | 5 +-
drivers/misc/habanalabs/common/memory.c | 515 +-
drivers/misc/habanalabs/common/mmu/mmu.c | 30 +-
drivers/misc/habanalabs/common/sysfs.c | 6 +-
drivers/misc/habanalabs/gaudi/Makefile | 2 +-
drivers/misc/habanalabs/gaudi/gaudi.c | 22 +-
drivers/misc/habanalabs/gaudi/gaudiP.h | 4 -
drivers/misc/habanalabs/gaudi/gaudi_hwmgr.c | 121 -
drivers/misc/habanalabs/goya/goya.c | 13 +-
drivers/misc/habanalabs/goya/goyaP.h | 1 -
drivers/misc/habanalabs/goya/goya_hwmgr.c | 31 -
drivers/misc/habanalabs/include/common/cpucp_if.h | 22 +-
.../misc/habanalabs/include/common/hl_boot_if.h | 189 +-
.../misc/habanalabs/include/gaudi/gaudi_fw_if.h | 10 +-
.../misc/habanalabs/include/gaudi/gaudi_reg_map.h | 1 +
drivers/misc/hi6421v600-irq.c | 9 +-
drivers/misc/hisi_hikey_usb.c | 119 +-
drivers/misc/lis3lv02d/lis3lv02d.c | 3 +-
drivers/misc/lis3lv02d/lis3lv02d.h | 2 +-
drivers/misc/lis3lv02d/lis3lv02d_spi.c | 4 +-
drivers/misc/lkdtm/bugs.c | 77 +
drivers/misc/lkdtm/core.c | 1 +
drivers/misc/lkdtm/lkdtm.h | 1 +
drivers/misc/mei/Kconfig | 2 +
drivers/misc/mei/Makefile | 1 +
drivers/misc/mei/pci-txe.c | 4 +-
drivers/misc/mei/pxp/Kconfig | 13 +
drivers/misc/mei/pxp/Makefile | 7 +
drivers/misc/mei/pxp/mei_pxp.c | 229 +
drivers/misc/mei/pxp/mei_pxp.h | 18 +
drivers/misc/ocxl/config.c | 13 +-
drivers/misc/pvpanic/pvpanic-mmio.c | 9 +-
drivers/misc/pvpanic/pvpanic-pci.c | 26 +-
drivers/misc/pvpanic/pvpanic.c | 16 +-
drivers/misc/sgi-xp/xpnet.c | 9 +-
drivers/misc/tifm_7xx1.c | 2 +-
drivers/misc/tifm_core.c | 8 +-
drivers/mmc/core/block.c | 27 +-
drivers/mmc/core/crypto.c | 11 +-
drivers/mmc/core/mmc.c | 8 +
drivers/mmc/core/mmc_ops.h | 1 -
drivers/mmc/core/mmc_test.c | 1 -
drivers/mmc/core/sd.c | 1 +
drivers/mmc/core/slot-gpio.c | 42 +-
drivers/mmc/host/Kconfig | 10 +-
drivers/mmc/host/Makefile | 1 -
drivers/mmc/host/bcm2835.c | 2 -
drivers/mmc/host/cqhci-core.c | 7 +-
drivers/mmc/host/cqhci-crypto.c | 33 +-
drivers/mmc/host/dw_mmc-exynos.c | 26 +-
drivers/mmc/host/dw_mmc.c | 42 +-
drivers/mmc/host/mmci.c | 4 +
drivers/mmc/host/moxart-mmc.c | 29 +-
drivers/mmc/host/mtk-sd.c | 137 +-
drivers/mmc/host/mxs-mmc.c | 10 +
drivers/mmc/host/omap_hsmmc.c | 12 +-
drivers/mmc/host/sdhci-acpi.c | 14 +-
drivers/mmc/host/sdhci-esdhc-imx.c | 33 +-
drivers/mmc/host/sdhci-of-arasan.c | 29 +-
drivers/mmc/host/sdhci-omap.c | 322 +-
drivers/mmc/host/sdhci-pci-core.c | 159 +-
drivers/mmc/host/sdhci-pci-data.c | 6 -
drivers/mmc/host/sdhci-pci-o2micro.c | 2 +-
drivers/mmc/host/sdhci-pci.h | 5 -
drivers/mmc/host/sdhci-s3c.c | 1 -
drivers/mmc/host/sdhci-sprd.c | 13 +
drivers/mmc/host/sdhci.c | 48 +-
drivers/mmc/host/sdhci.h | 2 +-
drivers/mmc/host/tmio_mmc_core.c | 17 +-
drivers/mmc/host/vub300.c | 18 +-
drivers/most/most_usb.c | 5 +-
drivers/mtd/chips/Kconfig | 2 +
drivers/mtd/devices/block2mtd.c | 29 +-
drivers/mtd/maps/Kconfig | 2 +-
drivers/mtd/mtd_blkdevs.c | 6 +-
drivers/mtd/mtdcore.c | 5 +-
drivers/mtd/mtdsuper.c | 1 +
drivers/mtd/mtdswap.c | 1 -
drivers/mtd/nand/ecc-sw-hamming.c | 7 +-
drivers/mtd/nand/onenand/Kconfig | 9 +-
drivers/mtd/nand/raw/ams-delta.c | 12 +-
drivers/mtd/nand/raw/arasan-nand-controller.c | 15 +
drivers/mtd/nand/raw/atmel/pmecc.c | 7 +-
drivers/mtd/nand/raw/au1550nd.c | 12 +-
drivers/mtd/nand/raw/brcmnand/bcm6368_nand.c | 5 +-
drivers/mtd/nand/raw/cs553x_nand.c | 12 +-
drivers/mtd/nand/raw/denali_dt.c | 7 +-
drivers/mtd/nand/raw/fsmc_nand.c | 4 +-
drivers/mtd/nand/raw/gpio.c | 15 +-
drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c | 4 +-
drivers/mtd/nand/raw/hisi504_nand.c | 7 +-
drivers/mtd/nand/raw/intel-nand-controller.c | 5 +
drivers/mtd/nand/raw/lpc32xx_slc.c | 15 +-
drivers/mtd/nand/raw/mpc5121_nfc.c | 12 +-
drivers/mtd/nand/raw/mtk_ecc.c | 4 +-
drivers/mtd/nand/raw/mtk_nand.c | 4 +-
drivers/mtd/nand/raw/nand_hynix.c | 14 +
drivers/mtd/nand/raw/nand_ids.c | 4 +
drivers/mtd/nand/raw/ndfc.c | 12 +-
drivers/mtd/nand/raw/omap_elm.c | 5 +-
drivers/mtd/nand/raw/orion_nand.c | 12 +-
drivers/mtd/nand/raw/oxnas_nand.c | 4 +-
drivers/mtd/nand/raw/pasemi_nand.c | 12 +-
drivers/mtd/nand/raw/plat_nand.c | 16 +-
drivers/mtd/nand/raw/qcom_nandc.c | 14 +-
drivers/mtd/nand/raw/sharpsl.c | 12 +-
drivers/mtd/nand/raw/socrates_nand.c | 12 +-
drivers/mtd/nand/raw/stm32_fmc2_nand.c | 8 +-
drivers/mtd/nand/raw/tegra_nand.c | 4 +-
drivers/mtd/nand/raw/tmio_nand.c | 8 +-
drivers/mtd/nand/raw/txx9ndfmc.c | 9 +-
drivers/mtd/nand/raw/vf610_nfc.c | 4 +-
drivers/mtd/nand/raw/xway_nand.c | 16 +-
drivers/mtd/spi-nor/controllers/hisi-sfc.c | 8 +-
drivers/mtd/spi-nor/controllers/nxp-spifi.c | 7 +-
drivers/mtd/spi-nor/micron-st.c | 4 +-
drivers/mtd/ubi/block.c | 8 +-
drivers/mux/core.c | 38 +-
drivers/net/Kconfig | 19 +-
drivers/net/Makefile | 1 +
drivers/net/amt.c | 3297 ++
drivers/net/appletalk/cops.c | 2 +-
drivers/net/appletalk/ltpc.c | 3 +-
drivers/net/arcnet/arc-rimi.c | 5 +-
drivers/net/arcnet/arcdevice.h | 5 +
drivers/net/arcnet/com20020-isa.c | 2 +-
drivers/net/arcnet/com20020-pci.c | 2 +-
drivers/net/arcnet/com20020.c | 4 +-
drivers/net/arcnet/com20020_cs.c | 2 +-
drivers/net/arcnet/com90io.c | 2 +-
drivers/net/arcnet/com90xx.c | 3 +-
drivers/net/bareudp.c | 7 +-
drivers/net/bonding/bond_alb.c | 28 +-
drivers/net/bonding/bond_main.c | 4 +-
drivers/net/bonding/bond_sysfs.c | 4 +-
drivers/net/bonding/bond_sysfs_slave.c | 36 +-
drivers/net/can/at91_can.c | 4 +-
drivers/net/can/dev/bittiming.c | 30 +-
drivers/net/can/dev/netlink.c | 221 +-
drivers/net/can/flexcan.c | 68 +-
drivers/net/can/janz-ican3.c | 2 +-
drivers/net/can/m_can/m_can_platform.c | 14 +-
drivers/net/can/mscan/mpc5xxx_can.c | 6 +-
drivers/net/can/rcar/Kconfig | 4 +-
drivers/net/can/rcar/rcar_can.c | 20 +-
drivers/net/can/sja1000/peak_pci.c | 9 +-
drivers/net/can/slcan.c | 5 +-
drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c | 6 +-
drivers/net/can/usb/etas_es58x/es581_4.h | 2 +-
drivers/net/can/usb/etas_es58x/es58x_core.c | 6 +-
drivers/net/can/usb/etas_es58x/es58x_fd.c | 7 +-
drivers/net/can/usb/etas_es58x/es58x_fd.h | 2 +-
drivers/net/can/usb/gs_usb.c | 12 +-
drivers/net/can/usb/peak_usb/pcan_usb.c | 27 +-
drivers/net/can/usb/peak_usb/pcan_usb_core.c | 13 +
drivers/net/can/usb/peak_usb/pcan_usb_core.h | 1 +
drivers/net/can/usb/peak_usb/pcan_usb_fd.c | 17 +-
drivers/net/can/xilinx_can.c | 7 +-
drivers/net/dsa/Kconfig | 1 +
drivers/net/dsa/Makefile | 2 +-
drivers/net/dsa/b53/b53_common.c | 101 +-
drivers/net/dsa/b53/b53_priv.h | 2 +-
drivers/net/dsa/bcm_sf2.c | 12 +-
drivers/net/dsa/hirschmann/hellcreek.c | 6 +-
drivers/net/dsa/lantiq_gswip.c | 44 +-
drivers/net/dsa/microchip/ksz8795.c | 8 +-
drivers/net/dsa/mt7530.c | 8 +-
drivers/net/dsa/mv88e6xxx/chip.c | 10 +-
drivers/net/dsa/ocelot/felix.c | 13 +-
drivers/net/dsa/ocelot/felix_vsc9959.c | 8 +-
drivers/net/dsa/ocelot/seville_vsc9953.c | 8 +-
drivers/net/dsa/qca/ar9331.c | 10 +-
drivers/net/dsa/qca8k.c | 443 +-
drivers/net/dsa/qca8k.h | 36 +-
drivers/net/dsa/realtek-smi-core.c | 4 +
drivers/net/dsa/realtek-smi-core.h | 4 +-
drivers/net/dsa/rtl8365mb.c | 1982 +
drivers/net/dsa/rtl8366.c | 96 +-
drivers/net/dsa/rtl8366rb.c | 301 +-
drivers/net/dsa/sja1105/sja1105.h | 29 +-
drivers/net/dsa/sja1105/sja1105_clocking.c | 35 +-
drivers/net/dsa/sja1105/sja1105_dynamic_config.c | 91 +-
drivers/net/dsa/sja1105/sja1105_main.c | 144 +-
drivers/net/dsa/sja1105/sja1105_vl.c | 15 +-
drivers/net/dsa/xrs700x/xrs700x.c | 8 +-
drivers/net/dsa/xrs700x/xrs700x_mdio.c | 12 +-
drivers/net/ethernet/3com/3c509.c | 2 +-
drivers/net/ethernet/3com/3c515.c | 5 +-
drivers/net/ethernet/3com/3c574_cs.c | 11 +-
drivers/net/ethernet/3com/3c589_cs.c | 10 +-
drivers/net/ethernet/3com/3c59x.c | 4 +-
drivers/net/ethernet/8390/apne.c | 3 +-
drivers/net/ethernet/8390/ax88796.c | 12 +-
drivers/net/ethernet/8390/axnet_cs.c | 7 +-
drivers/net/ethernet/8390/mcf8390.c | 3 +-
drivers/net/ethernet/8390/ne.c | 4 +-
drivers/net/ethernet/8390/ne2k-pci.c | 2 +-
drivers/net/ethernet/8390/pcnet_cs.c | 22 +-
drivers/net/ethernet/8390/stnic.c | 5 +-
drivers/net/ethernet/8390/zorro8390.c | 3 +-
drivers/net/ethernet/Kconfig | 1 +
drivers/net/ethernet/Makefile | 1 +
drivers/net/ethernet/actions/owl-emac.c | 6 +-
drivers/net/ethernet/adaptec/starfire.c | 14 +-
drivers/net/ethernet/aeroflex/greth.c | 8 +-
drivers/net/ethernet/agere/et131x.c | 4 +-
drivers/net/ethernet/alacritech/slicoss.c | 4 +-
drivers/net/ethernet/allwinner/sun4i-emac.c | 4 +-
drivers/net/ethernet/alteon/acenic.c | 20 +-
drivers/net/ethernet/altera/altera_tse_main.c | 4 +-
drivers/net/ethernet/amazon/ena/ena_netdev.c | 2 +-
drivers/net/ethernet/amd/Kconfig | 2 +-
drivers/net/ethernet/amd/amd8111e.c | 6 +-
drivers/net/ethernet/amd/atarilance.c | 4 +-
drivers/net/ethernet/amd/au1000_eth.c | 2 +-
drivers/net/ethernet/amd/nmclan_cs.c | 5 +-
drivers/net/ethernet/amd/pcnet32.c | 15 +-
drivers/net/ethernet/amd/sun3lance.c | 4 +-
drivers/net/ethernet/amd/sunlance.c | 4 +-
drivers/net/ethernet/amd/xgbe/xgbe-common.h | 8 +
drivers/net/ethernet/amd/xgbe/xgbe-dev.c | 2 +-
drivers/net/ethernet/amd/xgbe/xgbe-drv.c | 4 +-
drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c | 8 +-
drivers/net/ethernet/amd/xgbe/xgbe-main.c | 2 +-
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c | 20 +-
drivers/net/ethernet/amd/xgbe/xgbe.h | 2 +-
drivers/net/ethernet/apm/xgene-v2/mac.c | 2 +-
drivers/net/ethernet/apm/xgene-v2/main.c | 2 +-
drivers/net/ethernet/apm/xgene/xgene_enet_hw.c | 2 +-
drivers/net/ethernet/apm/xgene/xgene_enet_main.c | 2 +-
drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.c | 2 +-
drivers/net/ethernet/apm/xgene/xgene_enet_xgmac.c | 2 +-
drivers/net/ethernet/apple/bmac.c | 15 +-
drivers/net/ethernet/aquantia/atlantic/aq_hw.h | 6 +-
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c | 2 +-
drivers/net/ethernet/aquantia/atlantic/aq_nic.c | 8 +-
.../ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c | 4 +-
.../ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c | 4 +-
.../ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.h | 2 +-
.../aquantia/atlantic/hw_atl/hw_atl_utils.c | 4 +-
.../aquantia/atlantic/hw_atl/hw_atl_utils_fw2x.c | 4 +-
.../ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c | 2 +-
drivers/net/ethernet/arc/Kconfig | 4 +-
drivers/net/ethernet/arc/emac_main.c | 4 +-
drivers/net/ethernet/arc/emac_mdio.c | 9 +-
drivers/net/ethernet/asix/Kconfig | 35 +
drivers/net/ethernet/asix/Makefile | 6 +
drivers/net/ethernet/asix/ax88796c_ioctl.c | 239 +
drivers/net/ethernet/asix/ax88796c_ioctl.h | 26 +
drivers/net/ethernet/asix/ax88796c_main.c | 1166 +
drivers/net/ethernet/asix/ax88796c_main.h | 568 +
drivers/net/ethernet/asix/ax88796c_spi.c | 115 +
drivers/net/ethernet/asix/ax88796c_spi.h | 69 +
drivers/net/ethernet/atheros/ag71xx.c | 12 +-
drivers/net/ethernet/atheros/alx/main.c | 4 +-
drivers/net/ethernet/atheros/atl1c/atl1c_main.c | 12 +-
drivers/net/ethernet/atheros/atl1e/atl1e_main.c | 10 +-
drivers/net/ethernet/atheros/atlx/atl1.c | 2 +-
drivers/net/ethernet/atheros/atlx/atl2.c | 4 +-
drivers/net/ethernet/atheros/atlx/atlx.c | 2 +-
drivers/net/ethernet/broadcom/b44.c | 12 +-
drivers/net/ethernet/broadcom/bcm4908_enet.c | 4 +-
drivers/net/ethernet/broadcom/bcm63xx_enet.c | 6 +-
drivers/net/ethernet/broadcom/bcmsysport.c | 6 +-
drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c | 6 +-
drivers/net/ethernet/broadcom/bgmac-bcma.c | 37 +-
drivers/net/ethernet/broadcom/bgmac-platform.c | 2 +-
drivers/net/ethernet/broadcom/bgmac.c | 4 +-
drivers/net/ethernet/broadcom/bnx2.c | 6 +-
drivers/net/ethernet/broadcom/bnx2x/bnx2x.h | 2 +-
drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 2 +-
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 22 +-
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c | 2 +-
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.h | 3 +-
drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.c | 9 +-
drivers/net/ethernet/broadcom/bnxt/Makefile | 2 +-
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 283 +-
drivers/net/ethernet/broadcom/bnxt/bnxt.h | 113 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_coredump.c | 444 +
drivers/net/ethernet/broadcom/bnxt/bnxt_coredump.h | 51 +
drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c | 4 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.h | 14 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c | 785 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.h | 27 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 400 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.h | 46 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_hsi.h | 155 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c | 2 -
drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.h | 3 +
drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c | 6 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.h | 2 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.h | 3 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_vfr.c | 2 +-
drivers/net/ethernet/broadcom/genet/bcmgenet.c | 87 +-
drivers/net/ethernet/broadcom/genet/bcmgenet.h | 10 +-
drivers/net/ethernet/broadcom/genet/bcmmii.c | 202 +-
drivers/net/ethernet/broadcom/tg3.c | 61 +-
drivers/net/ethernet/brocade/bna/bnad.c | 5 +-
drivers/net/ethernet/cadence/macb.h | 7 +-
drivers/net/ethernet/cadence/macb_main.c | 42 +-
drivers/net/ethernet/cadence/macb_ptp.c | 13 +-
drivers/net/ethernet/calxeda/xgmac.c | 8 +-
drivers/net/ethernet/cavium/liquidio/lio_core.c | 3 +-
drivers/net/ethernet/cavium/liquidio/lio_main.c | 40 +-
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c | 4 +-
drivers/net/ethernet/cavium/octeon/octeon_mgmt.c | 2 +-
drivers/net/ethernet/cavium/thunder/nic_main.c | 5 +-
drivers/net/ethernet/cavium/thunder/nicvf_main.c | 15 +-
drivers/net/ethernet/cavium/thunder/thunder_bgx.c | 9 +-
drivers/net/ethernet/chelsio/cxgb/cxgb2.c | 2 +-
drivers/net/ethernet/chelsio/cxgb/gmac.h | 2 +-
drivers/net/ethernet/chelsio/cxgb/pm3393.c | 2 +-
drivers/net/ethernet/chelsio/cxgb/subr.c | 2 +-
drivers/net/ethernet/chelsio/cxgb/vsc7326.c | 4 +-
drivers/net/ethernet/chelsio/cxgb3/common.h | 4 +-
drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c | 40 +-
drivers/net/ethernet/chelsio/cxgb3/t3_hw.c | 102 +-
drivers/net/ethernet/chelsio/cxgb3/xgmac.c | 2 +-
drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 2 +-
drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c | 7 +-
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 2 +-
drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 2 +-
drivers/net/ethernet/chelsio/cxgb4/t4_hw.h | 2 +
drivers/net/ethernet/chelsio/cxgb4vf/adapter.h | 3 +-
.../net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c | 8 +-
.../chelsio/inline_crypto/chtls/chtls_cm.c | 2 +-
.../chelsio/inline_crypto/chtls/chtls_cm.h | 2 +-
drivers/net/ethernet/cirrus/cs89x0.c | 13 +-
drivers/net/ethernet/cirrus/ep93xx_eth.c | 2 +-
drivers/net/ethernet/cirrus/mac89x0.c | 2 +-
drivers/net/ethernet/cisco/enic/enic_ethtool.c | 4 +-
drivers/net/ethernet/cisco/enic/enic_main.c | 9 +-
drivers/net/ethernet/cisco/enic/enic_pp.c | 2 +-
drivers/net/ethernet/cortina/gemini.c | 6 +-
drivers/net/ethernet/davicom/dm9000.c | 9 +-
drivers/net/ethernet/dec/tulip/de2104x.c | 15 +-
drivers/net/ethernet/dec/tulip/de4x5.c | 35 +-
drivers/net/ethernet/dec/tulip/dmfe.c | 9 +-
drivers/net/ethernet/dec/tulip/tulip_core.c | 45 +-
drivers/net/ethernet/dec/tulip/uli526x.c | 11 +-
drivers/net/ethernet/dec/tulip/winbond-840.c | 6 +-
drivers/net/ethernet/dec/tulip/xircom_cb.c | 4 +-
drivers/net/ethernet/dlink/dl2k.c | 5 +-
drivers/net/ethernet/dlink/sundance.c | 6 +-
drivers/net/ethernet/dnet.c | 8 +-
drivers/net/ethernet/ec_bhf.c | 4 +-
drivers/net/ethernet/emulex/benet/be_cmds.c | 2 +-
drivers/net/ethernet/emulex/benet/be_cmds.h | 2 +-
drivers/net/ethernet/emulex/benet/be_main.c | 7 +-
drivers/net/ethernet/ethoc.c | 28 +-
drivers/net/ethernet/ezchip/Kconfig | 2 +-
drivers/net/ethernet/ezchip/nps_enet.c | 4 +-
drivers/net/ethernet/faraday/ftgmac100.c | 9 +-
drivers/net/ethernet/fealnx.c | 8 +-
drivers/net/ethernet/freescale/dpaa/dpaa_eth.c | 6 +-
.../ethernet/freescale/dpaa2/dpaa2-eth-devlink.c | 21 +-
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c | 24 +-
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h | 7 +-
.../net/ethernet/freescale/dpaa2/dpaa2-ethtool.c | 58 +
drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c | 2 +-
.../net/ethernet/freescale/dpaa2/dpaa2-switch.c | 2 +-
drivers/net/ethernet/freescale/enetc/enetc.c | 332 +-
drivers/net/ethernet/freescale/enetc/enetc.h | 4 +
.../net/ethernet/freescale/enetc/enetc_ethtool.c | 2 +-
drivers/net/ethernet/freescale/enetc/enetc_hw.h | 6 +-
drivers/net/ethernet/freescale/enetc/enetc_pf.c | 37 +-
drivers/net/ethernet/freescale/enetc/enetc_ptp.c | 6 +-
drivers/net/ethernet/freescale/enetc/enetc_qos.c | 18 +-
drivers/net/ethernet/freescale/enetc/enetc_vf.c | 16 +-
drivers/net/ethernet/freescale/fec_main.c | 7 +-
drivers/net/ethernet/freescale/fec_mpc52xx.c | 4 +-
drivers/net/ethernet/freescale/fman/fman_dtsec.c | 8 +-
drivers/net/ethernet/freescale/fman/fman_dtsec.h | 2 +-
drivers/net/ethernet/freescale/fman/fman_memac.c | 8 +-
drivers/net/ethernet/freescale/fman/fman_memac.h | 2 +-
drivers/net/ethernet/freescale/fman/fman_tgec.c | 8 +-
drivers/net/ethernet/freescale/fman/fman_tgec.h | 2 +-
drivers/net/ethernet/freescale/fman/mac.h | 2 +-
.../net/ethernet/freescale/fs_enet/fs_enet-main.c | 2 +-
drivers/net/ethernet/freescale/gianfar.c | 2 +-
drivers/net/ethernet/freescale/ucc_geth.c | 4 +-
drivers/net/ethernet/fujitsu/fmvj18x_cs.c | 14 +-
drivers/net/ethernet/google/gve/gve.h | 52 +-
drivers/net/ethernet/google/gve/gve_adminq.c | 61 +-
drivers/net/ethernet/google/gve/gve_adminq.h | 15 +
drivers/net/ethernet/google/gve/gve_desc.h | 13 +-
drivers/net/ethernet/google/gve/gve_ethtool.c | 7 +-
drivers/net/ethernet/google/gve/gve_main.c | 109 +-
drivers/net/ethernet/google/gve/gve_rx.c | 414 +-
drivers/net/ethernet/google/gve/gve_rx_dqo.c | 68 +-
drivers/net/ethernet/google/gve/gve_tx.c | 117 +-
drivers/net/ethernet/google/gve/gve_tx_dqo.c | 84 +-
drivers/net/ethernet/google/gve/gve_utils.c | 37 +-
drivers/net/ethernet/google/gve/gve_utils.h | 2 +-
drivers/net/ethernet/hisilicon/hip04_eth.c | 2 +-
drivers/net/ethernet/hisilicon/hisi_femac.c | 6 +-
drivers/net/ethernet/hisilicon/hix5hd2_gmac.c | 4 +-
drivers/net/ethernet/hisilicon/hns/hnae.h | 4 +-
drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c | 7 +-
drivers/net/ethernet/hisilicon/hns/hns_dsaf_gmac.c | 2 +-
drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c | 2 +-
drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.h | 5 +-
drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.h | 2 +-
.../net/ethernet/hisilicon/hns/hns_dsaf_xgmac.c | 2 +-
drivers/net/ethernet/hisilicon/hns/hns_enet.c | 4 +-
drivers/net/ethernet/hisilicon/hns3/hnae3.c | 21 +
drivers/net/ethernet/hisilicon/hns3/hnae3.h | 12 +-
drivers/net/ethernet/hisilicon/hns3/hns3_debugfs.c | 215 +-
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 44 +-
drivers/net/ethernet/hisilicon/hns3/hns3_enet.h | 10 +-
drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c | 8 +-
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.c | 2 +
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h | 7 +-
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c | 29 +-
.../ethernet/hisilicon/hns3/hns3pf/hclge_debugfs.c | 33 +-
.../ethernet/hisilicon/hns3/hns3pf/hclge_devlink.c | 18 +-
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_err.c | 19 +-
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_err.h | 6 +
.../ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 693 +-
.../ethernet/hisilicon/hns3/hns3pf/hclge_main.h | 41 +-
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c | 79 +-
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.h | 4 +-
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_cmd.c | 32 +
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_cmd.h | 9 +
.../hisilicon/hns3/hns3vf/hclgevf_devlink.c | 18 +-
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c | 23 +-
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h | 5 +-
drivers/net/ethernet/huawei/hinic/hinic_devlink.c | 4 +-
drivers/net/ethernet/huawei/hinic/hinic_devlink.h | 2 +-
drivers/net/ethernet/huawei/hinic/hinic_ethtool.c | 10 +-
drivers/net/ethernet/huawei/hinic/hinic_hw_dev.c | 13 +-
drivers/net/ethernet/huawei/hinic/hinic_main.c | 12 +-
drivers/net/ethernet/i825xx/sun3_82586.c | 7 +-
drivers/net/ethernet/ibm/ehea/ehea_main.c | 4 +-
drivers/net/ethernet/ibm/emac/core.c | 14 +-
drivers/net/ethernet/ibm/ibmveth.c | 46 +-
drivers/net/ethernet/ibm/ibmvnic.c | 666 +-
drivers/net/ethernet/ibm/ibmvnic.h | 10 +-
drivers/net/ethernet/intel/Kconfig | 14 +
drivers/net/ethernet/intel/e100.c | 4 +-
drivers/net/ethernet/intel/e1000/e1000_main.c | 4 +-
drivers/net/ethernet/intel/e1000e/e1000.h | 5 +-
drivers/net/ethernet/intel/e1000e/ich8lan.c | 31 +-
drivers/net/ethernet/intel/e1000e/ich8lan.h | 3 +
drivers/net/ethernet/intel/e1000e/netdev.c | 50 +-
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c | 2 +-
drivers/net/ethernet/intel/fm10k/fm10k_pci.c | 4 +-
drivers/net/ethernet/intel/i40e/i40e.h | 2 +-
drivers/net/ethernet/intel/i40e/i40e_main.c | 4 +-
drivers/net/ethernet/intel/i40e/i40e_xsk.c | 52 +-
drivers/net/ethernet/intel/iavf/iavf.h | 48 +-
drivers/net/ethernet/intel/iavf/iavf_main.c | 238 +-
drivers/net/ethernet/intel/iavf/iavf_virtchnl.c | 6 +-
drivers/net/ethernet/intel/ice/Makefile | 5 +-
drivers/net/ethernet/intel/ice/ice.h | 220 +-
drivers/net/ethernet/intel/ice/ice_adminq_cmd.h | 94 +-
drivers/net/ethernet/intel/ice/ice_arfs.c | 4 +-
drivers/net/ethernet/intel/ice/ice_base.c | 123 +-
drivers/net/ethernet/intel/ice/ice_base.h | 8 +-
drivers/net/ethernet/intel/ice/ice_common.c | 131 +-
drivers/net/ethernet/intel/ice/ice_common.h | 7 +
drivers/net/ethernet/intel/ice/ice_dcb.c | 225 +-
drivers/net/ethernet/intel/ice/ice_dcb.h | 18 +
drivers/net/ethernet/intel/ice/ice_dcb_lib.c | 216 +-
drivers/net/ethernet/intel/ice/ice_dcb_lib.h | 32 +-
drivers/net/ethernet/intel/ice/ice_dcb_nl.c | 192 +-
drivers/net/ethernet/intel/ice/ice_devids.h | 6 +
drivers/net/ethernet/intel/ice/ice_devlink.c | 259 +-
drivers/net/ethernet/intel/ice/ice_devlink.h | 8 +-
drivers/net/ethernet/intel/ice/ice_eswitch.c | 655 +
drivers/net/ethernet/intel/ice/ice_eswitch.h | 83 +
drivers/net/ethernet/intel/ice/ice_ethtool.c | 236 +-
drivers/net/ethernet/intel/ice/ice_ethtool_fdir.c | 4 +-
drivers/net/ethernet/intel/ice/ice_fdir.c | 2 +-
drivers/net/ethernet/intel/ice/ice_fdir.h | 2 +-
drivers/net/ethernet/intel/ice/ice_flex_pipe.c | 307 +-
drivers/net/ethernet/intel/ice/ice_flex_pipe.h | 14 +
drivers/net/ethernet/intel/ice/ice_flex_type.h | 17 +
drivers/net/ethernet/intel/ice/ice_fltr.c | 80 +
drivers/net/ethernet/intel/ice/ice_fltr.h | 3 +
drivers/net/ethernet/intel/ice/ice_hw_autogen.h | 1 +
drivers/net/ethernet/intel/ice/ice_lag.c | 18 +-
drivers/net/ethernet/intel/ice/ice_lan_tx_rx.h | 43 +
drivers/net/ethernet/intel/ice/ice_lib.c | 864 +-
drivers/net/ethernet/intel/ice/ice_lib.h | 38 +-
drivers/net/ethernet/intel/ice/ice_main.c | 1645 +-
drivers/net/ethernet/intel/ice/ice_protocol_type.h | 204 +
drivers/net/ethernet/intel/ice/ice_ptp.c | 375 +-
drivers/net/ethernet/intel/ice/ice_ptp.h | 24 +-
drivers/net/ethernet/intel/ice/ice_ptp_hw.c | 151 +
drivers/net/ethernet/intel/ice/ice_ptp_hw.h | 22 +
drivers/net/ethernet/intel/ice/ice_repr.c | 389 +
drivers/net/ethernet/intel/ice/ice_repr.h | 28 +
drivers/net/ethernet/intel/ice/ice_sched.c | 197 +
drivers/net/ethernet/intel/ice/ice_sched.h | 9 +
drivers/net/ethernet/intel/ice/ice_switch.c | 2888 +-
drivers/net/ethernet/intel/ice/ice_switch.h | 152 +-
drivers/net/ethernet/intel/ice/ice_tc_lib.c | 1369 +
drivers/net/ethernet/intel/ice/ice_tc_lib.h | 162 +
drivers/net/ethernet/intel/ice/ice_trace.h | 28 +-
drivers/net/ethernet/intel/ice/ice_txrx.c | 326 +-
drivers/net/ethernet/intel/ice/ice_txrx.h | 147 +-
drivers/net/ethernet/intel/ice/ice_txrx_lib.c | 102 +-
drivers/net/ethernet/intel/ice/ice_txrx_lib.h | 14 +-
drivers/net/ethernet/intel/ice/ice_type.h | 19 +-
drivers/net/ethernet/intel/ice/ice_virtchnl_pf.c | 588 +-
drivers/net/ethernet/intel/ice/ice_virtchnl_pf.h | 79 +-
drivers/net/ethernet/intel/ice/ice_xsk.c | 158 +-
drivers/net/ethernet/intel/ice/ice_xsk.h | 20 +-
drivers/net/ethernet/intel/igb/igb_main.c | 27 +-
drivers/net/ethernet/intel/igbvf/netdev.c | 8 +-
drivers/net/ethernet/intel/igc/igc_base.c | 8 +-
drivers/net/ethernet/intel/igc/igc_defines.h | 2 +-
drivers/net/ethernet/intel/igc/igc_hw.h | 3 +-
drivers/net/ethernet/intel/igc/igc_main.c | 5 +-
drivers/net/ethernet/intel/igc/igc_ptp.c | 2 +-
drivers/net/ethernet/intel/ixgb/ixgb_hw.c | 2 +-
drivers/net/ethernet/intel/ixgb/ixgb_hw.h | 2 +-
drivers/net/ethernet/intel/ixgb/ixgb_main.c | 10 +-
drivers/net/ethernet/intel/ixgbe/ixgbe.h | 23 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 5 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c | 9 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 54 +-
.../net/ethernet/intel/ixgbe/ixgbe_txrx_common.h | 3 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c | 16 +-
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 6 +-
drivers/net/ethernet/intel/ixgbevf/vf.c | 2 +-
drivers/net/ethernet/jme.c | 4 +-
drivers/net/ethernet/korina.c | 4 +-
drivers/net/ethernet/lantiq_etop.c | 21 +-
drivers/net/ethernet/lantiq_xrx200.c | 74 +-
drivers/net/ethernet/litex/Kconfig | 2 +-
drivers/net/ethernet/litex/litex_liteeth.c | 7 +-
drivers/net/ethernet/marvell/mv643xx_eth.c | 16 +-
drivers/net/ethernet/marvell/mvneta.c | 75 +-
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 155 +-
drivers/net/ethernet/marvell/mvpp2/mvpp2_prs.c | 2 +-
drivers/net/ethernet/marvell/octeontx2/Kconfig | 1 +
drivers/net/ethernet/marvell/octeontx2/af/cgx.c | 11 +-
drivers/net/ethernet/marvell/octeontx2/af/common.h | 1 +
.../ethernet/marvell/octeontx2/af/lmac_common.h | 5 +
drivers/net/ethernet/marvell/octeontx2/af/mbox.h | 138 +-
drivers/net/ethernet/marvell/octeontx2/af/npc.h | 20 +-
.../ethernet/marvell/octeontx2/af/npc_profile.h | 994 +-
drivers/net/ethernet/marvell/octeontx2/af/ptp.c | 133 +-
drivers/net/ethernet/marvell/octeontx2/af/ptp.h | 1 +
drivers/net/ethernet/marvell/octeontx2/af/rpm.c | 17 +
drivers/net/ethernet/marvell/octeontx2/af/rpm.h | 3 +
drivers/net/ethernet/marvell/octeontx2/af/rvu.c | 76 +-
drivers/net/ethernet/marvell/octeontx2/af/rvu.h | 19 +-
.../net/ethernet/marvell/octeontx2/af/rvu_cgx.c | 13 +-
.../net/ethernet/marvell/octeontx2/af/rvu_cn10k.c | 4 +-
.../net/ethernet/marvell/octeontx2/af/rvu_cpt.c | 601 +-
.../ethernet/marvell/octeontx2/af/rvu_debugfs.c | 266 +-
.../ethernet/marvell/octeontx2/af/rvu_devlink.c | 16 +-
.../net/ethernet/marvell/octeontx2/af/rvu_nix.c | 225 +-
.../net/ethernet/marvell/octeontx2/af/rvu_npc.c | 100 +-
.../net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c | 3 +
.../net/ethernet/marvell/octeontx2/af/rvu_reg.h | 4 +
.../net/ethernet/marvell/octeontx2/af/rvu_struct.h | 18 +
.../net/ethernet/marvell/octeontx2/nic/Makefile | 6 +-
drivers/net/ethernet/marvell/octeontx2/nic/cn10k.c | 2 +-
.../ethernet/marvell/octeontx2/nic/otx2_common.c | 52 +-
.../ethernet/marvell/octeontx2/nic/otx2_common.h | 18 +-
.../ethernet/marvell/octeontx2/nic/otx2_devlink.c | 21 +-
.../ethernet/marvell/octeontx2/nic/otx2_ethtool.c | 43 +-
.../net/ethernet/marvell/octeontx2/nic/otx2_pf.c | 234 +-
.../net/ethernet/marvell/octeontx2/nic/otx2_ptp.c | 133 +-
.../net/ethernet/marvell/octeontx2/nic/otx2_txrx.c | 273 +-
.../net/ethernet/marvell/octeontx2/nic/otx2_txrx.h | 16 +-
.../net/ethernet/marvell/octeontx2/nic/otx2_vf.c | 8 +-
drivers/net/ethernet/marvell/prestera/prestera.h | 69 +-
.../ethernet/marvell/prestera/prestera_devlink.c | 35 +-
.../ethernet/marvell/prestera/prestera_devlink.h | 4 +-
.../ethernet/marvell/prestera/prestera_ethtool.c | 220 +-
.../ethernet/marvell/prestera/prestera_ethtool.h | 6 +
.../net/ethernet/marvell/prestera/prestera_hw.c | 1098 +-
.../net/ethernet/marvell/prestera/prestera_hw.h | 47 +-
.../net/ethernet/marvell/prestera/prestera_main.c | 163 +-
.../net/ethernet/marvell/prestera/prestera_pci.c | 117 +-
.../net/ethernet/marvell/prestera/prestera_rxtx.c | 7 -
drivers/net/ethernet/marvell/pxa168_eth.c | 21 +-
drivers/net/ethernet/marvell/skge.c | 6 +-
drivers/net/ethernet/marvell/sky2.c | 99 +-
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 2 +-
drivers/net/ethernet/mediatek/mtk_star_emac.c | 4 +-
drivers/net/ethernet/mellanox/mlx4/cmd.c | 6 +-
drivers/net/ethernet/mellanox/mlx4/cq.c | 3 +-
drivers/net/ethernet/mellanox/mlx4/en_ethtool.c | 29 +-
drivers/net/ethernet/mellanox/mlx4/en_main.c | 1 -
drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 40 +-
drivers/net/ethernet/mellanox/mlx4/en_port.c | 4 +
drivers/net/ethernet/mellanox/mlx4/en_rx.c | 15 +
drivers/net/ethernet/mellanox/mlx4/en_tx.c | 4 +-
drivers/net/ethernet/mellanox/mlx4/fw.c | 2 +-
drivers/net/ethernet/mellanox/mlx4/main.c | 12 +-
drivers/net/ethernet/mellanox/mlx4/mcg.c | 2 +-
drivers/net/ethernet/mellanox/mlx4/mlx4_en.h | 3 +
drivers/net/ethernet/mellanox/mlx4/mlx4_stats.h | 4 +-
drivers/net/ethernet/mellanox/mlx5/core/Makefile | 8 +-
drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 20 +-
drivers/net/ethernet/mellanox/mlx5/core/dev.c | 14 +-
drivers/net/ethernet/mellanox/mlx5/core/devlink.c | 30 +-
.../mellanox/mlx5/core/diag/fs_tracepoint.c | 3 +
.../ethernet/mellanox/mlx5/core/diag/fw_tracer.c | 7 +-
.../ethernet/mellanox/mlx5/core/diag/fw_tracer.h | 2 +-
.../ethernet/mellanox/mlx5/core/diag/rsc_dump.c | 10 +-
drivers/net/ethernet/mellanox/mlx5/core/en.h | 87 +-
.../net/ethernet/mellanox/mlx5/core/en/devlink.c | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/en/fs.h | 11 +-
.../net/ethernet/mellanox/mlx5/core/en/health.h | 1 -
.../net/ethernet/mellanox/mlx5/core/en/params.c | 163 +-
.../net/ethernet/mellanox/mlx5/core/en/params.h | 18 +-
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/en/qos.c | 102 +-
drivers/net/ethernet/mellanox/mlx5/core/en/qos.h | 9 +
.../net/ethernet/mellanox/mlx5/core/en/rep/tc.c | 134 +-
.../net/ethernet/mellanox/mlx5/core/en/rep/tc.h | 14 +-
.../ethernet/mellanox/mlx5/core/en/reporter_rx.c | 7 +-
.../ethernet/mellanox/mlx5/core/en/reporter_tx.c | 7 +-
drivers/net/ethernet/mellanox/mlx5/core/en/rss.c | 50 +-
drivers/net/ethernet/mellanox/mlx5/core/en/rss.h | 7 +-
.../net/ethernet/mellanox/mlx5/core/en/rx_res.c | 25 +-
.../net/ethernet/mellanox/mlx5/core/en/rx_res.h | 5 +-
.../ethernet/mellanox/mlx5/core/en/tc/int_port.c | 457 +
.../ethernet/mellanox/mlx5/core/en/tc/int_port.h | 65 +
.../ethernet/mellanox/mlx5/core/en/tc/post_act.c | 13 +-
.../net/ethernet/mellanox/mlx5/core/en/tc/sample.c | 39 +-
.../net/ethernet/mellanox/mlx5/core/en/tc/sample.h | 27 +
drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c | 51 +-
.../net/ethernet/mellanox/mlx5/core/en/tc_priv.h | 2 +
.../net/ethernet/mellanox/mlx5/core/en/tc_tun.c | 42 +-
.../net/ethernet/mellanox/mlx5/core/en/tc_tun.h | 1 +
.../ethernet/mellanox/mlx5/core/en/tc_tun_encap.c | 35 +
.../ethernet/mellanox/mlx5/core/en/tc_tun_vxlan.c | 9 +
drivers/net/ethernet/mellanox/mlx5/core/en/tir.c | 32 +-
drivers/net/ethernet/mellanox/mlx5/core/en/tir.h | 6 +-
drivers/net/ethernet/mellanox/mlx5/core/en/trap.c | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h | 6 +
.../mellanox/mlx5/core/en_accel/ipsec_rxtx.c | 51 +-
.../mellanox/mlx5/core/en_accel/ipsec_rxtx.h | 26 +
.../net/ethernet/mellanox/mlx5/core/en_common.c | 6 +-
.../net/ethernet/mellanox/mlx5/core/en_ethtool.c | 19 +-
drivers/net/ethernet/mellanox/mlx5/core/en_fs.c | 32 +-
.../ethernet/mellanox/mlx5/core/en_fs_ethtool.c | 12 +-
drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 427 +-
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c | 18 +-
drivers/net/ethernet/mellanox/mlx5/core/en_rep.h | 4 +
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 668 +-
.../net/ethernet/mellanox/mlx5/core/en_selftest.c | 92 +-
drivers/net/ethernet/mellanox/mlx5/core/en_stats.c | 15 +
drivers/net/ethernet/mellanox/mlx5/core/en_stats.h | 10 +
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 589 +-
drivers/net/ethernet/mellanox/mlx5/core/en_tc.h | 11 +-
drivers/net/ethernet/mellanox/mlx5/core/en_tx.c | 22 +-
drivers/net/ethernet/mellanox/mlx5/core/eq.c | 9 +-
.../net/ethernet/mellanox/mlx5/core/esw/bridge.c | 293 +-
.../ethernet/mellanox/mlx5/core/esw/bridge_priv.h | 1 +
.../ethernet/mellanox/mlx5/core/esw/devlink_port.c | 4 +-
drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c | 7 +-
drivers/net/ethernet/mellanox/mlx5/core/eswitch.h | 18 +-
.../ethernet/mellanox/mlx5/core/eswitch_offloads.c | 88 +-
.../mellanox/mlx5/core/eswitch_offloads_termtbl.c | 7 +-
.../net/ethernet/mellanox/mlx5/core/fpga/conn.c | 10 +-
.../net/ethernet/mellanox/mlx5/core/fpga/core.h | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.c | 66 +-
drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.h | 4 +
drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 126 +-
drivers/net/ethernet/mellanox/mlx5/core/fs_core.h | 12 +-
.../net/ethernet/mellanox/mlx5/core/fs_counters.c | 26 +-
drivers/net/ethernet/mellanox/mlx5/core/fw.c | 21 +-
drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c | 17 +-
drivers/net/ethernet/mellanox/mlx5/core/health.c | 147 +-
.../ethernet/mellanox/mlx5/core/ipoib/ethtool.c | 30 +
.../net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c | 20 +-
drivers/net/ethernet/mellanox/mlx5/core/lag.c | 1082 -
drivers/net/ethernet/mellanox/mlx5/core/lag.h | 81 -
drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c | 1138 +
drivers/net/ethernet/mellanox/mlx5/core/lag/lag.h | 86 +
drivers/net/ethernet/mellanox/mlx5/core/lag/mp.c | 355 +
drivers/net/ethernet/mellanox/mlx5/core/lag/mp.h | 37 +
.../net/ethernet/mellanox/mlx5/core/lag/port_sel.c | 611 +
.../net/ethernet/mellanox/mlx5/core/lag/port_sel.h | 52 +
drivers/net/ethernet/mellanox/mlx5/core/lag_mp.c | 352 -
drivers/net/ethernet/mellanox/mlx5/core/lag_mp.h | 35 -
.../net/ethernet/mellanox/mlx5/core/lib/fs_ttc.c | 4 +
.../net/ethernet/mellanox/mlx5/core/lib/fs_ttc.h | 2 +
drivers/net/ethernet/mellanox/mlx5/core/lib/tout.c | 162 +
drivers/net/ethernet/mellanox/mlx5/core/lib/tout.h | 41 +
drivers/net/ethernet/mellanox/mlx5/core/main.c | 88 +-
.../net/ethernet/mellanox/mlx5/core/mlx5_core.h | 24 +
drivers/net/ethernet/mellanox/mlx5/core/mlx5_irq.h | 2 -
drivers/net/ethernet/mellanox/mlx5/core/mr.c | 27 +-
.../net/ethernet/mellanox/mlx5/core/pagealloc.c | 16 +-
drivers/net/ethernet/mellanox/mlx5/core/pci_irq.c | 36 +-
.../net/ethernet/mellanox/mlx5/core/sf/dev/dev.c | 23 +-
.../net/ethernet/mellanox/mlx5/core/sf/dev/dev.h | 1 +
.../mlx5/core/sf/dev/diag/dev_tracepoint.h | 58 +
.../ethernet/mellanox/mlx5/core/sf/dev/driver.c | 7 +-
.../net/ethernet/mellanox/mlx5/core/sf/devlink.c | 10 +-
.../mellanox/mlx5/core/sf/diag/sf_tracepoint.h | 173 +
.../mellanox/mlx5/core/sf/diag/vhca_tracepoint.h | 40 +
.../net/ethernet/mellanox/mlx5/core/sf/hw_table.c | 4 +
.../ethernet/mellanox/mlx5/core/sf/vhca_event.c | 3 +
.../mellanox/mlx5/core/steering/dr_action.c | 27 +-
.../ethernet/mellanox/mlx5/core/steering/dr_cmd.c | 6 +-
.../mellanox/mlx5/core/steering/dr_domain.c | 212 +-
.../ethernet/mellanox/mlx5/core/steering/dr_fw.c | 2 +-
.../mellanox/mlx5/core/steering/dr_icm_pool.c | 10 +-
.../mellanox/mlx5/core/steering/dr_matcher.c | 28 +-
.../ethernet/mellanox/mlx5/core/steering/dr_rule.c | 6 +-
.../ethernet/mellanox/mlx5/core/steering/dr_send.c | 11 +-
.../ethernet/mellanox/mlx5/core/steering/dr_ste.c | 272 +-
.../mellanox/mlx5/core/steering/dr_ste_v0.c | 13 +-
.../mellanox/mlx5/core/steering/dr_ste_v1.c | 20 +-
.../mellanox/mlx5/core/steering/dr_types.h | 52 +-
.../ethernet/mellanox/mlx5/core/steering/fs_dr.c | 17 +-
.../ethernet/mellanox/mlx5/core/steering/mlx5dr.h | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/uar.c | 14 +-
drivers/net/ethernet/mellanox/mlx5/core/vport.c | 21 +-
drivers/net/ethernet/mellanox/mlxbf_gige/Makefile | 1 -
.../net/ethernet/mellanox/mlxbf_gige/mlxbf_gige.h | 12 -
.../ethernet/mellanox/mlxbf_gige/mlxbf_gige_gpio.c | 212 -
.../ethernet/mellanox/mlxbf_gige/mlxbf_gige_main.c | 24 +-
drivers/net/ethernet/mellanox/mlxfw/mlxfw.h | 2 +-
drivers/net/ethernet/mellanox/mlxsw/core.c | 90 +-
drivers/net/ethernet/mellanox/mlxsw/core.h | 2 -
drivers/net/ethernet/mellanox/mlxsw/core_env.c | 372 +-
drivers/net/ethernet/mellanox/mlxsw/core_env.h | 23 +
drivers/net/ethernet/mellanox/mlxsw/item.h | 56 +-
drivers/net/ethernet/mellanox/mlxsw/minimal.c | 66 +-
drivers/net/ethernet/mellanox/mlxsw/pci.c | 27 +-
drivers/net/ethernet/mellanox/mlxsw/reg.h | 357 +-
drivers/net/ethernet/mellanox/mlxsw/resources.h | 8 +-
drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 390 +-
drivers/net/ethernet/mellanox/mlxsw/spectrum.h | 10 +-
.../net/ethernet/mellanox/mlxsw/spectrum2_kvdl.c | 1 +
.../ethernet/mellanox/mlxsw/spectrum_acl_atcam.c | 8 +-
.../ethernet/mellanox/mlxsw/spectrum_acl_tcam.c | 15 +-
.../net/ethernet/mellanox/mlxsw/spectrum_buffers.c | 2 +-
drivers/net/ethernet/mellanox/mlxsw/spectrum_cnt.c | 9 +-
.../net/ethernet/mellanox/mlxsw/spectrum_ethtool.c | 45 +
.../net/ethernet/mellanox/mlxsw/spectrum_ipip.c | 432 +-
.../net/ethernet/mellanox/mlxsw/spectrum_ipip.h | 27 +-
.../net/ethernet/mellanox/mlxsw/spectrum_qdisc.c | 583 +-
.../net/ethernet/mellanox/mlxsw/spectrum_router.c | 662 +-
.../net/ethernet/mellanox/mlxsw/spectrum_router.h | 9 +-
.../net/ethernet/mellanox/mlxsw/spectrum_span.c | 16 +
.../net/ethernet/mellanox/mlxsw/spectrum_span.h | 1 +
.../ethernet/mellanox/mlxsw/spectrum_switchdev.c | 11 +-
drivers/net/ethernet/micrel/ks8842.c | 15 +-
drivers/net/ethernet/micrel/ks8851.h | 2 +-
drivers/net/ethernet/micrel/ks8851_common.c | 14 +-
drivers/net/ethernet/micrel/ks8851_par.c | 4 +-
drivers/net/ethernet/micrel/ks8851_spi.c | 4 +-
drivers/net/ethernet/micrel/ksz884x.c | 16 +-
drivers/net/ethernet/microchip/enc28j60.c | 7 +-
drivers/net/ethernet/microchip/encx24j600.c | 7 +-
drivers/net/ethernet/microchip/lan743x_main.c | 39 +-
drivers/net/ethernet/microchip/lan743x_main.h | 3 +-
drivers/net/ethernet/microchip/lan743x_ptp.c | 91 +-
.../net/ethernet/microchip/sparx5/sparx5_main.c | 4 +-
.../net/ethernet/microchip/sparx5/sparx5_netdev.c | 6 +-
.../net/ethernet/microchip/sparx5/sparx5_phylink.c | 7 +-
drivers/net/ethernet/microsoft/mana/gdma_main.c | 155 +-
drivers/net/ethernet/microsoft/mana/hw_channel.c | 75 +-
drivers/net/ethernet/microsoft/mana/mana.h | 4 +-
drivers/net/ethernet/microsoft/mana/mana_en.c | 96 +-
drivers/net/ethernet/microsoft/mana/mana_ethtool.c | 3 -
drivers/net/ethernet/moxa/moxart_ether.c | 2 +-
drivers/net/ethernet/mscc/Kconfig | 2 +-
drivers/net/ethernet/mscc/ocelot.c | 327 +-
drivers/net/ethernet/mscc/ocelot.h | 1 +
drivers/net/ethernet/mscc/ocelot_flower.c | 125 +-
drivers/net/ethernet/mscc/ocelot_mrp.c | 8 +-
drivers/net/ethernet/mscc/ocelot_net.c | 24 +-
drivers/net/ethernet/mscc/ocelot_vsc7514.c | 10 +-
drivers/net/ethernet/myricom/myri10ge/myri10ge.c | 9 +-
drivers/net/ethernet/natsemi/natsemi.c | 6 +-
drivers/net/ethernet/natsemi/ns83820.c | 11 +-
drivers/net/ethernet/neterion/s2io.c | 6 +-
drivers/net/ethernet/neterion/s2io.h | 2 +-
drivers/net/ethernet/neterion/vxge/vxge-main.c | 6 +-
drivers/net/ethernet/netronome/nfp/abm/main.c | 2 +-
drivers/net/ethernet/netronome/nfp/abm/qdisc.c | 2 +-
drivers/net/ethernet/netronome/nfp/bpf/main.c | 16 +-
drivers/net/ethernet/netronome/nfp/bpf/main.h | 2 +
drivers/net/ethernet/netronome/nfp/bpf/offload.c | 17 +-
drivers/net/ethernet/netronome/nfp/devlink_param.c | 9 +-
drivers/net/ethernet/netronome/nfp/flower/action.c | 3 +-
drivers/net/ethernet/netronome/nfp/flower/cmsg.h | 2 +-
.../net/ethernet/netronome/nfp/flower/offload.c | 2 +-
.../ethernet/netronome/nfp/flower/tunnel_conf.c | 6 +-
drivers/net/ethernet/netronome/nfp/nfp_asm.c | 4 +-
.../net/ethernet/netronome/nfp/nfp_net_common.c | 8 +-
.../net/ethernet/netronome/nfp/nfp_net_ethtool.c | 3 +-
drivers/net/ethernet/netronome/nfp/nfp_net_main.c | 11 +-
drivers/net/ethernet/netronome/nfp/nfp_net_repr.c | 3 +-
.../net/ethernet/netronome/nfp/nfp_netvf_main.c | 2 +-
drivers/net/ethernet/ni/nixge.c | 2 +-
drivers/net/ethernet/nvidia/forcedeth.c | 51 +-
drivers/net/ethernet/nxp/lpc_eth.c | 15 +-
.../net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c | 4 +-
drivers/net/ethernet/packetengines/hamachi.c | 5 +-
drivers/net/ethernet/packetengines/yellowfin.c | 6 +-
drivers/net/ethernet/pasemi/pasemi_mac.c | 4 +-
drivers/net/ethernet/pensando/ionic/ionic.h | 8 +-
.../net/ethernet/pensando/ionic/ionic_debugfs.c | 48 +-
drivers/net/ethernet/pensando/ionic/ionic_dev.c | 1 -
drivers/net/ethernet/pensando/ionic/ionic_dev.h | 4 -
.../net/ethernet/pensando/ionic/ionic_devlink.c | 10 +-
.../net/ethernet/pensando/ionic/ionic_ethtool.c | 41 +-
drivers/net/ethernet/pensando/ionic/ionic_lif.c | 264 +-
drivers/net/ethernet/pensando/ionic/ionic_lif.h | 49 +-
drivers/net/ethernet/pensando/ionic/ionic_main.c | 92 +-
drivers/net/ethernet/pensando/ionic/ionic_phc.c | 8 +-
.../net/ethernet/pensando/ionic/ionic_rx_filter.c | 241 +-
.../net/ethernet/pensando/ionic/ionic_rx_filter.h | 2 +
drivers/net/ethernet/pensando/ionic/ionic_stats.c | 121 -
drivers/net/ethernet/pensando/ionic/ionic_txrx.c | 14 -
.../net/ethernet/qlogic/netxen/netxen_nic_main.c | 8 +-
drivers/net/ethernet/qlogic/qed/qed.h | 44 +-
drivers/net/ethernet/qlogic/qed/qed_cxt.c | 16 +-
drivers/net/ethernet/qlogic/qed/qed_cxt.h | 143 +-
drivers/net/ethernet/qlogic/qed/qed_dbg_hsi.h | 1491 +
drivers/net/ethernet/qlogic/qed/qed_dcbx.h | 11 +-
drivers/net/ethernet/qlogic/qed/qed_debug.c | 1389 +-
drivers/net/ethernet/qlogic/qed/qed_debug.h | 7 +-
drivers/net/ethernet/qlogic/qed/qed_dev.c | 126 +-
drivers/net/ethernet/qlogic/qed/qed_dev_api.h | 347 +-
drivers/net/ethernet/qlogic/qed/qed_devlink.c | 12 +-
drivers/net/ethernet/qlogic/qed/qed_fcoe.c | 25 +-
drivers/net/ethernet/qlogic/qed/qed_hsi.h | 12643 ++---
drivers/net/ethernet/qlogic/qed/qed_hw.h | 222 +-
.../net/ethernet/qlogic/qed/qed_init_fw_funcs.c | 405 +-
drivers/net/ethernet/qlogic/qed/qed_init_ops.c | 98 +-
drivers/net/ethernet/qlogic/qed/qed_init_ops.h | 60 +-
drivers/net/ethernet/qlogic/qed/qed_int.c | 4 +-
drivers/net/ethernet/qlogic/qed/qed_int.h | 286 +-
drivers/net/ethernet/qlogic/qed/qed_iro_hsi.h | 500 +
drivers/net/ethernet/qlogic/qed/qed_iscsi.c | 15 +-
drivers/net/ethernet/qlogic/qed/qed_iscsi.h | 9 +-
drivers/net/ethernet/qlogic/qed/qed_iwarp.c | 2 +
drivers/net/ethernet/qlogic/qed/qed_l2.c | 43 +-
drivers/net/ethernet/qlogic/qed/qed_l2.h | 135 +-
drivers/net/ethernet/qlogic/qed/qed_ll2.c | 167 +-
drivers/net/ethernet/qlogic/qed/qed_ll2.h | 131 +-
drivers/net/ethernet/qlogic/qed/qed_main.c | 23 +-
drivers/net/ethernet/qlogic/qed/qed_mcp.c | 66 +-
drivers/net/ethernet/qlogic/qed/qed_mcp.h | 765 +-
drivers/net/ethernet/qlogic/qed/qed_mfw_hsi.h | 2474 +
drivers/net/ethernet/qlogic/qed/qed_ooo.c | 20 +-
drivers/net/ethernet/qlogic/qed/qed_ptp.c | 4 +-
drivers/net/ethernet/qlogic/qed/qed_rdma.c | 26 +-
drivers/net/ethernet/qlogic/qed/qed_rdma.h | 7 +-
drivers/net/ethernet/qlogic/qed/qed_reg_addr.h | 95 +-
drivers/net/ethernet/qlogic/qed/qed_roce.c | 1 -
drivers/net/ethernet/qlogic/qed/qed_selftest.h | 30 +-
drivers/net/ethernet/qlogic/qed/qed_sp.h | 223 +-
drivers/net/ethernet/qlogic/qed/qed_sp_commands.c | 10 +-
drivers/net/ethernet/qlogic/qed/qed_spq.c | 63 +-
drivers/net/ethernet/qlogic/qed/qed_sriov.c | 201 +-
drivers/net/ethernet/qlogic/qed/qed_sriov.h | 138 +-
drivers/net/ethernet/qlogic/qed/qed_vf.c | 13 +-
drivers/net/ethernet/qlogic/qed/qed_vf.h | 311 +-
drivers/net/ethernet/qlogic/qede/qede_filter.c | 53 +-
drivers/net/ethernet/qlogic/qede/qede_main.c | 21 +-
drivers/net/ethernet/qlogic/qla3xxx.c | 12 +-
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | 4 +-
drivers/net/ethernet/qualcomm/emac/emac-mac.c | 2 +-
drivers/net/ethernet/qualcomm/emac/emac.c | 5 +-
drivers/net/ethernet/qualcomm/qca_spi.c | 2 +-
drivers/net/ethernet/qualcomm/qca_uart.c | 2 +-
drivers/net/ethernet/qualcomm/rmnet/rmnet_vnd.c | 2 +-
drivers/net/ethernet/rdc/r6040.c | 24 +-
drivers/net/ethernet/realtek/8139cp.c | 7 +-
drivers/net/ethernet/realtek/8139too.c | 7 +-
drivers/net/ethernet/realtek/atp.c | 4 +-
drivers/net/ethernet/realtek/r8169.h | 2 +-
drivers/net/ethernet/realtek/r8169_main.c | 45 +-
drivers/net/ethernet/realtek/r8169_phy_config.c | 59 -
drivers/net/ethernet/renesas/ravb.h | 52 +-
drivers/net/ethernet/renesas/ravb_main.c | 728 +-
drivers/net/ethernet/renesas/sh_eth.c | 18 +-
drivers/net/ethernet/rocker/rocker_main.c | 10 +-
drivers/net/ethernet/samsung/sxgbe/sxgbe_common.h | 2 +-
drivers/net/ethernet/samsung/sxgbe/sxgbe_core.c | 3 +-
drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c | 9 +-
.../net/ethernet/samsung/sxgbe/sxgbe_platform.c | 2 +-
drivers/net/ethernet/seeq/sgiseeq.c | 4 +-
drivers/net/ethernet/sfc/ef10.c | 4 +-
drivers/net/ethernet/sfc/ef100_nic.c | 2 +-
drivers/net/ethernet/sfc/ef10_sriov.c | 4 +-
drivers/net/ethernet/sfc/ef10_sriov.h | 6 +-
drivers/net/ethernet/sfc/efx.c | 2 +-
drivers/net/ethernet/sfc/efx_common.c | 4 +-
drivers/net/ethernet/sfc/ethtool_common.c | 10 +-
drivers/net/ethernet/sfc/falcon/efx.c | 14 +-
drivers/net/ethernet/sfc/mcdi_port_common.c | 37 +-
drivers/net/ethernet/sfc/net_driver.h | 2 +-
drivers/net/ethernet/sfc/ptp.c | 4 +-
drivers/net/ethernet/sfc/siena_sriov.c | 4 +-
drivers/net/ethernet/sfc/siena_sriov.h | 2 +-
drivers/net/ethernet/sgi/ioc3-eth.c | 4 +-
drivers/net/ethernet/sgi/meth.c | 2 +-
drivers/net/ethernet/silan/sc92031.c | 14 +-
drivers/net/ethernet/sis/sis190.c | 10 +-
drivers/net/ethernet/sis/sis900.c | 19 +-
drivers/net/ethernet/smsc/epic100.c | 4 +-
drivers/net/ethernet/smsc/smc911x.c | 4 +-
drivers/net/ethernet/smsc/smc91c92_cs.c | 15 +-
drivers/net/ethernet/smsc/smc91x.c | 4 +-
drivers/net/ethernet/smsc/smsc911x.c | 22 +-
drivers/net/ethernet/smsc/smsc9420.c | 26 +-
drivers/net/ethernet/socionext/netsec.c | 46 +-
drivers/net/ethernet/socionext/sni_ave.c | 17 +-
drivers/net/ethernet/stmicro/stmmac/common.h | 4 +-
drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c | 2 +-
.../net/ethernet/stmicro/stmmac/dwmac-visconti.c | 7 +-
.../net/ethernet/stmicro/stmmac/dwmac1000_core.c | 2 +-
.../net/ethernet/stmicro/stmmac/dwmac100_core.c | 2 +-
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c | 2 +-
drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c | 2 +-
drivers/net/ethernet/stmicro/stmmac/dwmac_lib.c | 2 +-
.../net/ethernet/stmicro/stmmac/dwxgmac2_core.c | 3 +-
drivers/net/ethernet/stmicro/stmmac/hwif.h | 3 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 16 +-
.../net/ethernet/stmicro/stmmac/stmmac_selftests.c | 8 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c | 2 -
drivers/net/ethernet/sun/cassini.c | 7 +-
drivers/net/ethernet/sun/ldmvsw.c | 7 +-
drivers/net/ethernet/sun/niu.c | 46 +-
drivers/net/ethernet/sun/sunbmac.c | 6 +-
drivers/net/ethernet/sun/sungem.c | 15 +-
drivers/net/ethernet/sun/sunhme.c | 23 +-
drivers/net/ethernet/sun/sunqe.c | 4 +-
drivers/net/ethernet/sun/sunvnet.c | 4 +-
drivers/net/ethernet/synopsys/dwc-xlgmac-common.c | 2 +-
drivers/net/ethernet/synopsys/dwc-xlgmac-hw.c | 2 +-
drivers/net/ethernet/synopsys/dwc-xlgmac-net.c | 2 +-
drivers/net/ethernet/synopsys/dwc-xlgmac.h | 2 +-
drivers/net/ethernet/tehuti/tehuti.c | 8 +-
drivers/net/ethernet/ti/am65-cpsw-ethtool.c | 2 +-
drivers/net/ethernet/ti/am65-cpsw-nuss.c | 26 +-
drivers/net/ethernet/ti/cpmac.c | 2 +-
drivers/net/ethernet/ti/cpsw.c | 6 +-
drivers/net/ethernet/ti/cpsw_ale.c | 6 +-
drivers/net/ethernet/ti/cpsw_new.c | 17 +-
drivers/net/ethernet/ti/cpts.c | 6 +-
drivers/net/ethernet/ti/davinci_emac.c | 24 +-
drivers/net/ethernet/ti/netcp_core.c | 8 +-
drivers/net/ethernet/ti/tlan.c | 14 +-
drivers/net/ethernet/toshiba/ps3_gelic_net.c | 2 +-
drivers/net/ethernet/toshiba/spider_net.c | 2 +-
drivers/net/ethernet/toshiba/tc35815.c | 11 +-
drivers/net/ethernet/via/via-rhine.c | 4 +-
drivers/net/ethernet/via/via-velocity.c | 4 +-
drivers/net/ethernet/wiznet/w5100-spi.c | 4 +-
drivers/net/ethernet/wiznet/w5100.c | 11 +-
drivers/net/ethernet/wiznet/w5100.h | 2 +-
drivers/net/ethernet/wiznet/w5300.c | 4 +-
drivers/net/ethernet/xilinx/ll_temac_main.c | 4 +-
drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 10 +-
drivers/net/ethernet/xilinx/xilinx_emaclite.c | 11 +-
drivers/net/ethernet/xircom/xirc2ps_cs.c | 14 +-
drivers/net/ethernet/xscale/ixp4xx_eth.c | 7 +-
drivers/net/fddi/defxx.c | 12 +-
drivers/net/fddi/defza.c | 2 +-
drivers/net/fddi/skfp/h/smc.h | 2 +-
drivers/net/fddi/skfp/skfddi.c | 9 +-
drivers/net/fddi/skfp/smtinit.c | 4 +-
drivers/net/fjes/fjes_hw.c | 3 +-
drivers/net/fjes/fjes_hw.h | 2 +-
drivers/net/fjes/fjes_main.c | 14 +-
drivers/net/gtp.c | 2 +-
drivers/net/hamradio/6pack.c | 14 +-
drivers/net/hamradio/baycom_epp.c | 10 +-
drivers/net/hamradio/bpqether.c | 7 +-
drivers/net/hamradio/dmascc.c | 5 +-
drivers/net/hamradio/hdlcdrv.c | 4 +-
drivers/net/hamradio/mkiss.c | 15 +-
drivers/net/hamradio/scc.c | 7 +-
drivers/net/hamradio/yam.c | 4 +-
drivers/net/hippi/rrunner.c | 6 +-
drivers/net/hyperv/hyperv_net.h | 5 +-
drivers/net/hyperv/netvsc.c | 15 +-
drivers/net/hyperv/netvsc_drv.c | 6 +-
drivers/net/ieee802154/ca8210.c | 2 -
drivers/net/ifb.c | 5 +
drivers/net/ipvlan/ipvlan_main.c | 4 +-
drivers/net/ipvlan/ipvtap.c | 2 +-
drivers/net/macsec.c | 4 +-
drivers/net/macvlan.c | 7 +-
drivers/net/macvtap.c | 2 +-
drivers/net/net_failover.c | 3 +-
drivers/net/netdevsim/bus.c | 155 +-
drivers/net/netdevsim/dev.c | 204 +-
drivers/net/netdevsim/ethtool.c | 28 +
drivers/net/netdevsim/health.c | 32 -
drivers/net/netdevsim/netdev.c | 72 +-
drivers/net/netdevsim/netdevsim.h | 57 +-
drivers/net/ntb_netdev.c | 2 +-
drivers/net/pcs/pcs-xpcs.c | 2 +-
drivers/net/phy/at803x.c | 778 +-
drivers/net/phy/bcm7xxx.c | 203 +
drivers/net/phy/broadcom.c | 106 +-
drivers/net/phy/dp83867.c | 23 +-
drivers/net/phy/dp83869.c | 4 +-
drivers/net/phy/marvell10g.c | 107 +-
drivers/net/phy/mdio_bus.c | 28 +
drivers/net/phy/micrel.c | 107 +-
drivers/net/phy/microchip_t1.c | 283 +-
drivers/net/phy/mscc/mscc_main.c | 2 +-
drivers/net/phy/phy-c45.c | 35 +
drivers/net/phy/phy.c | 145 +-
drivers/net/phy/phy_device.c | 10 +
drivers/net/phy/phylink.c | 142 +-
drivers/net/phy/realtek.c | 8 +
drivers/net/phy/sfp-bus.c | 2 +-
drivers/net/plip/plip.c | 8 +-
drivers/net/ppp/ppp_async.c | 7 +-
drivers/net/ppp/ppp_generic.c | 2 +-
drivers/net/ppp/ppp_synctty.c | 7 +-
drivers/net/rionet.c | 14 +-
drivers/net/sb1000.c | 12 +-
drivers/net/slip/slip.c | 5 +-
drivers/net/sungem_phy.c | 2 +-
drivers/net/team/team.c | 2 +-
drivers/net/thunderbolt.c | 8 +-
drivers/net/usb/Kconfig | 1 +
drivers/net/usb/aqc111.c | 4 +-
drivers/net/usb/asix_common.c | 2 +-
drivers/net/usb/asix_devices.c | 2 +-
drivers/net/usb/ax88172a.c | 2 +-
drivers/net/usb/ax88179_178a.c | 12 +-
drivers/net/usb/catc.c | 24 +-
drivers/net/usb/cdc-phonet.c | 4 +-
drivers/net/usb/ch9200.c | 4 +-
drivers/net/usb/cx82310_eth.c | 5 +-
drivers/net/usb/dm9601.c | 7 +-
drivers/net/usb/ipheth.c | 2 +-
drivers/net/usb/kalmia.c | 2 +-
drivers/net/usb/kaweth.c | 3 +-
drivers/net/usb/lan78xx.c | 10 +-
drivers/net/usb/mcs7830.c | 9 +-
drivers/net/usb/pegasus.c | 2 +-
drivers/net/usb/qmi_wwan.c | 7 +-
drivers/net/usb/r8152.c | 4 +-
drivers/net/usb/rndis_host.c | 2 +-
drivers/net/usb/rtl8150.c | 4 +-
drivers/net/usb/sierra_net.c | 6 +-
drivers/net/usb/smsc75xx.c | 9 +-
drivers/net/usb/smsc95xx.c | 9 +-
drivers/net/usb/sr9700.c | 9 +-
drivers/net/usb/sr9800.c | 7 +-
drivers/net/usb/usbnet.c | 11 +-
drivers/net/virtio_net.c | 54 +-
drivers/net/vmxnet3/vmxnet3_drv.c | 9 +-
drivers/net/vmxnet3/vmxnet3_ethtool.c | 10 +-
drivers/net/vrf.c | 32 +-
drivers/net/wan/hdlc_fr.c | 4 +-
drivers/net/wan/lapbether.c | 2 +-
drivers/net/wireless/ath/ar5523/ar5523.c | 3 +-
drivers/net/wireless/ath/ath10k/bmi.h | 10 +-
drivers/net/wireless/ath/ath10k/core.c | 16 +-
drivers/net/wireless/ath/ath10k/coredump.c | 11 +-
drivers/net/wireless/ath/ath10k/coredump.h | 7 +
drivers/net/wireless/ath/ath10k/htt.h | 7 +-
drivers/net/wireless/ath/ath10k/mac.c | 45 +-
drivers/net/wireless/ath/ath10k/qmi.c | 3 +-
drivers/net/wireless/ath/ath10k/sdio.c | 6 +-
drivers/net/wireless/ath/ath10k/snoc.c | 77 +
drivers/net/wireless/ath/ath10k/snoc.h | 5 +
drivers/net/wireless/ath/ath10k/usb.c | 7 +-
drivers/net/wireless/ath/ath10k/wmi.c | 4 +
drivers/net/wireless/ath/ath10k/wmi.h | 3 +
drivers/net/wireless/ath/ath11k/core.c | 73 +-
drivers/net/wireless/ath/ath11k/core.h | 49 +-
drivers/net/wireless/ath/ath11k/dbring.c | 16 +-
drivers/net/wireless/ath/ath11k/debugfs.c | 27 +-
drivers/net/wireless/ath/ath11k/debugfs.h | 4 +
.../net/wireless/ath/ath11k/debugfs_htt_stats.c | 4344 +-
.../net/wireless/ath/ath11k/debugfs_htt_stats.h | 226 +
drivers/net/wireless/ath/ath11k/debugfs_sta.c | 8 +-
drivers/net/wireless/ath/ath11k/dp.c | 14 +-
drivers/net/wireless/ath/ath11k/dp.h | 9 +
drivers/net/wireless/ath/ath11k/dp_rx.c | 282 +-
drivers/net/wireless/ath/ath11k/dp_tx.c | 36 +-
drivers/net/wireless/ath/ath11k/dp_tx.h | 2 +-
drivers/net/wireless/ath/ath11k/hal_desc.h | 2 +
drivers/net/wireless/ath/ath11k/hal_rx.c | 6 +-
drivers/net/wireless/ath/ath11k/hw.c | 56 +-
drivers/net/wireless/ath/ath11k/hw.h | 24 +-
drivers/net/wireless/ath/ath11k/mac.c | 1445 +-
drivers/net/wireless/ath/ath11k/mac.h | 3 +
drivers/net/wireless/ath/ath11k/pci.c | 45 +-
drivers/net/wireless/ath/ath11k/peer.c | 11 +
drivers/net/wireless/ath/ath11k/qmi.c | 349 +-
drivers/net/wireless/ath/ath11k/qmi.h | 18 +-
drivers/net/wireless/ath/ath11k/reg.c | 18 +-
drivers/net/wireless/ath/ath11k/reg.h | 2 +-
drivers/net/wireless/ath/ath11k/spectral.c | 42 +-
drivers/net/wireless/ath/ath11k/trace.h | 11 +-
drivers/net/wireless/ath/ath11k/wmi.c | 162 +-
drivers/net/wireless/ath/ath11k/wmi.h | 107 +-
drivers/net/wireless/ath/ath5k/sysfs.c | 8 +-
drivers/net/wireless/ath/ath6kl/cfg80211.c | 9 +-
drivers/net/wireless/ath/ath6kl/usb.c | 7 +-
.../net/wireless/ath/ath9k/ath9k_pci_owl_loader.c | 105 +-
drivers/net/wireless/ath/ath9k/debug.c | 57 +-
drivers/net/wireless/ath/ath9k/debug.h | 1 +
drivers/net/wireless/ath/ath9k/eeprom.c | 12 +-
drivers/net/wireless/ath/ath9k/hw.h | 2 +
drivers/net/wireless/ath/ath9k/init.c | 58 +
drivers/net/wireless/ath/ath9k/main.c | 4 +-
drivers/net/wireless/ath/dfs_pattern_detector.c | 10 +-
drivers/net/wireless/ath/spectral_common.h | 1 -
drivers/net/wireless/ath/wcn36xx/debug.c | 2 +-
drivers/net/wireless/ath/wcn36xx/dxe.c | 49 +-
drivers/net/wireless/ath/wcn36xx/hal.h | 38 +-
drivers/net/wireless/ath/wcn36xx/main.c | 55 +-
drivers/net/wireless/ath/wcn36xx/pmc.c | 13 +-
drivers/net/wireless/ath/wcn36xx/smd.c | 189 +-
drivers/net/wireless/ath/wcn36xx/smd.h | 4 +
drivers/net/wireless/ath/wcn36xx/txrx.c | 147 +-
drivers/net/wireless/ath/wcn36xx/txrx.h | 3 +-
drivers/net/wireless/ath/wcn36xx/wcn36xx.h | 7 +-
drivers/net/wireless/ath/wil6210/cfg80211.c | 10 +-
drivers/net/wireless/ath/wil6210/main.c | 6 +-
drivers/net/wireless/ath/wil6210/wil6210.h | 2 +-
drivers/net/wireless/ath/wil6210/wmi.c | 2 +-
drivers/net/wireless/atmel/atmel.c | 19 +-
drivers/net/wireless/broadcom/b43/phy_g.c | 2 +-
drivers/net/wireless/broadcom/b43legacy/radio.c | 2 +-
.../broadcom/brcm80211/brcmfmac/cfg80211.c | 12 +-
.../wireless/broadcom/brcm80211/brcmfmac/core.c | 6 +-
.../net/wireless/broadcom/brcm80211/brcmfmac/dmi.c | 10 +
.../net/wireless/broadcom/brcm80211/brcmfmac/of.c | 2 +-
.../net/wireless/broadcom/brcm80211/brcmfmac/p2p.c | 4 +-
drivers/net/wireless/cisco/airo.c | 27 +-
drivers/net/wireless/intel/ipw2x00/ipw2100.c | 4 +-
drivers/net/wireless/intel/ipw2x00/ipw2200.c | 12 +-
drivers/net/wireless/intel/ipw2x00/ipw2200.h | 2 +-
drivers/net/wireless/intel/iwlegacy/3945-mac.c | 1 -
drivers/net/wireless/intel/iwlegacy/4965-mac.c | 1 -
drivers/net/wireless/intel/iwlegacy/commands.h | 6 +-
drivers/net/wireless/intel/iwlwifi/Makefile | 2 +-
drivers/net/wireless/intel/iwlwifi/cfg/1000.c | 5 -
drivers/net/wireless/intel/iwlwifi/cfg/2000.c | 5 -
drivers/net/wireless/intel/iwlwifi/cfg/22000.c | 35 +-
drivers/net/wireless/intel/iwlwifi/cfg/5000.c | 5 -
drivers/net/wireless/intel/iwlwifi/cfg/6000.c | 5 -
drivers/net/wireless/intel/iwlwifi/dvm/agn.h | 11 +-
drivers/net/wireless/intel/iwlwifi/dvm/commands.h | 6 +-
drivers/net/wireless/intel/iwlwifi/dvm/debugfs.c | 4 -
drivers/net/wireless/intel/iwlwifi/dvm/dev.h | 5 -
drivers/net/wireless/intel/iwlwifi/dvm/devices.c | 5 -
drivers/net/wireless/intel/iwlwifi/dvm/led.c | 5 -
drivers/net/wireless/intel/iwlwifi/dvm/led.h | 5 -
drivers/net/wireless/intel/iwlwifi/dvm/lib.c | 5 -
drivers/net/wireless/intel/iwlwifi/dvm/mac80211.c | 5 -
drivers/net/wireless/intel/iwlwifi/dvm/main.c | 7 -
drivers/net/wireless/intel/iwlwifi/dvm/power.c | 4 -
drivers/net/wireless/intel/iwlwifi/dvm/power.h | 4 -
drivers/net/wireless/intel/iwlwifi/dvm/rs.c | 5 -
drivers/net/wireless/intel/iwlwifi/dvm/rs.h | 5 -
drivers/net/wireless/intel/iwlwifi/dvm/rx.c | 5 -
drivers/net/wireless/intel/iwlwifi/dvm/rxon.c | 5 -
drivers/net/wireless/intel/iwlwifi/dvm/scan.c | 4 -
drivers/net/wireless/intel/iwlwifi/dvm/sta.c | 5 -
drivers/net/wireless/intel/iwlwifi/dvm/tt.c | 4 -
drivers/net/wireless/intel/iwlwifi/dvm/tt.h | 4 -
drivers/net/wireless/intel/iwlwifi/dvm/tx.c | 5 -
drivers/net/wireless/intel/iwlwifi/dvm/ucode.c | 5 -
drivers/net/wireless/intel/iwlwifi/fw/acpi.c | 150 +-
drivers/net/wireless/intel/iwlwifi/fw/acpi.h | 43 +-
drivers/net/wireless/intel/iwlwifi/fw/api/d3.h | 45 +-
.../net/wireless/intel/iwlwifi/fw/api/dbg-tlv.h | 57 +
drivers/net/wireless/intel/iwlwifi/fw/api/debug.h | 35 +
.../net/wireless/intel/iwlwifi/fw/api/location.h | 10 +-
.../net/wireless/intel/iwlwifi/fw/api/mac-cfg.h | 10 +-
drivers/net/wireless/intel/iwlwifi/fw/api/mac.h | 3 +
.../net/wireless/intel/iwlwifi/fw/api/nvm-reg.h | 23 +
drivers/net/wireless/intel/iwlwifi/fw/api/phy.h | 6 +-
drivers/net/wireless/intel/iwlwifi/fw/api/power.h | 55 +-
drivers/net/wireless/intel/iwlwifi/fw/api/rs.h | 234 +-
drivers/net/wireless/intel/iwlwifi/fw/api/rx.h | 31 +-
drivers/net/wireless/intel/iwlwifi/fw/api/sta.h | 2 +
drivers/net/wireless/intel/iwlwifi/fw/api/tx.h | 52 +-
drivers/net/wireless/intel/iwlwifi/fw/dbg.c | 46 +-
drivers/net/wireless/intel/iwlwifi/fw/dump.c | 9 +-
drivers/net/wireless/intel/iwlwifi/fw/error-dump.h | 4 -
drivers/net/wireless/intel/iwlwifi/fw/file.h | 12 +-
drivers/net/wireless/intel/iwlwifi/fw/img.c | 58 +-
drivers/net/wireless/intel/iwlwifi/fw/img.h | 12 +
drivers/net/wireless/intel/iwlwifi/fw/init.c | 6 +-
drivers/net/wireless/intel/iwlwifi/fw/paging.c | 4 +-
drivers/net/wireless/intel/iwlwifi/fw/pnvm.c | 15 +-
drivers/net/wireless/intel/iwlwifi/fw/rs.c | 252 +
drivers/net/wireless/intel/iwlwifi/fw/runtime.h | 7 +-
drivers/net/wireless/intel/iwlwifi/fw/uefi.h | 5 +-
drivers/net/wireless/intel/iwlwifi/iwl-config.h | 8 +-
.../wireless/intel/iwlwifi/iwl-context-info-gen3.h | 4 +-
drivers/net/wireless/intel/iwlwifi/iwl-csr.h | 8 +
drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c | 228 +-
drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.h | 2 +
drivers/net/wireless/intel/iwlwifi/iwl-debug.c | 24 +-
drivers/net/wireless/intel/iwlwifi/iwl-debug.h | 26 +-
.../net/wireless/intel/iwlwifi/iwl-devtrace-data.h | 5 -
.../net/wireless/intel/iwlwifi/iwl-devtrace-io.h | 5 -
.../wireless/intel/iwlwifi/iwl-devtrace-iwlwifi.h | 5 -
.../net/wireless/intel/iwlwifi/iwl-devtrace-msg.h | 5 -
.../wireless/intel/iwlwifi/iwl-devtrace-ucode.h | 5 -
drivers/net/wireless/intel/iwlwifi/iwl-devtrace.c | 5 -
drivers/net/wireless/intel/iwlwifi/iwl-devtrace.h | 5 -
drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 44 +-
drivers/net/wireless/intel/iwlwifi/iwl-drv.h | 3 +-
.../net/wireless/intel/iwlwifi/iwl-eeprom-read.c | 4 +-
drivers/net/wireless/intel/iwlwifi/iwl-io.c | 50 +-
drivers/net/wireless/intel/iwlwifi/iwl-io.h | 5 +-
drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c | 17 +
drivers/net/wireless/intel/iwlwifi/iwl-prph.h | 36 +
drivers/net/wireless/intel/iwlwifi/iwl-trans.h | 30 +-
drivers/net/wireless/intel/iwlwifi/mvm/d3.c | 362 +-
drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c | 19 +-
.../net/wireless/intel/iwlwifi/mvm/ftm-initiator.c | 15 +-
.../net/wireless/intel/iwlwifi/mvm/ftm-responder.c | 15 +-
drivers/net/wireless/intel/iwlwifi/mvm/fw.c | 106 +-
drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c | 44 +-
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 269 +-
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 17 +-
drivers/net/wireless/intel/iwlwifi/mvm/nvm.c | 5 +-
drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 194 +-
drivers/net/wireless/intel/iwlwifi/mvm/power.c | 28 +-
drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c | 16 +-
drivers/net/wireless/intel/iwlwifi/mvm/rs.c | 182 +-
drivers/net/wireless/intel/iwlwifi/mvm/rs.h | 17 -
drivers/net/wireless/intel/iwlwifi/mvm/rx.c | 39 +-
drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c | 119 +-
drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 10 +-
drivers/net/wireless/intel/iwlwifi/mvm/tx.c | 117 +-
drivers/net/wireless/intel/iwlwifi/mvm/utils.c | 54 +-
.../wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c | 4 +
drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 306 +-
drivers/net/wireless/intel/iwlwifi/pcie/rx.c | 9 +-
.../net/wireless/intel/iwlwifi/pcie/trans-gen2.c | 38 +-
drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 90 +-
drivers/net/wireless/intersil/hostap/hostap_hw.c | 5 +-
drivers/net/wireless/intersil/hostap/hostap_main.c | 4 +-
drivers/net/wireless/intersil/orinoco/main.c | 2 +-
drivers/net/wireless/mac80211_hwsim.c | 163 +-
drivers/net/wireless/marvell/libertas/cmd.c | 5 +-
drivers/net/wireless/marvell/libertas/if_usb.c | 2 +
drivers/net/wireless/marvell/libertas/main.c | 4 +-
drivers/net/wireless/marvell/libertas/mesh.c | 18 +-
drivers/net/wireless/marvell/libertas_tf/if_usb.c | 2 +
drivers/net/wireless/marvell/mwifiex/11n.c | 7 +-
drivers/net/wireless/marvell/mwifiex/cfg80211.c | 384 +-
drivers/net/wireless/marvell/mwifiex/cmdevt.c | 21 +
drivers/net/wireless/marvell/mwifiex/main.c | 22 +-
drivers/net/wireless/marvell/mwifiex/main.h | 1 +
drivers/net/wireless/marvell/mwifiex/pcie.c | 36 +-
drivers/net/wireless/marvell/mwifiex/sta_cmd.c | 4 +
drivers/net/wireless/marvell/mwifiex/uap_event.c | 3 +-
drivers/net/wireless/marvell/mwifiex/usb.c | 16 +
drivers/net/wireless/marvell/mwl8k.c | 2 +-
drivers/net/wireless/mediatek/mt76/Makefile | 2 +-
drivers/net/wireless/mediatek/mt76/debugfs.c | 22 +-
drivers/net/wireless/mediatek/mt76/eeprom.c | 19 +-
drivers/net/wireless/mediatek/mt76/mac80211.c | 242 +-
drivers/net/wireless/mediatek/mt76/mcu.c | 8 +-
drivers/net/wireless/mediatek/mt76/mt76.h | 126 +-
drivers/net/wireless/mediatek/mt76/mt7603/mac.c | 11 +-
drivers/net/wireless/mediatek/mt76/mt7603/main.c | 3 +
drivers/net/wireless/mediatek/mt76/mt7603/pci.c | 2 +-
drivers/net/wireless/mediatek/mt76/mt7615/Makefile | 2 +-
.../net/wireless/mediatek/mt76/mt7615/debugfs.c | 29 +-
drivers/net/wireless/mediatek/mt76/mt7615/init.c | 6 +-
drivers/net/wireless/mediatek/mt76/mt7615/mac.c | 62 +-
drivers/net/wireless/mediatek/mt76/mt7615/main.c | 14 +-
drivers/net/wireless/mediatek/mt76/mt7615/mcu.c | 90 +-
drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h | 20 +-
drivers/net/wireless/mediatek/mt76/mt7615/pci.c | 4 +-
.../net/wireless/mediatek/mt76/mt7615/pci_mac.c | 5 +-
drivers/net/wireless/mediatek/mt76/mt7615/sdio.c | 296 +-
drivers/net/wireless/mediatek/mt76/mt7615/sdio.h | 115 -
.../net/wireless/mediatek/mt76/mt7615/sdio_mcu.c | 11 +-
.../net/wireless/mediatek/mt76/mt7615/sdio_txrx.c | 334 -
.../net/wireless/mediatek/mt76/mt7615/usb_sdio.c | 2 +-
drivers/net/wireless/mediatek/mt76/mt76_connac.h | 7 +-
.../net/wireless/mediatek/mt76/mt76_connac_mcu.c | 357 +-
.../net/wireless/mediatek/mt76/mt76_connac_mcu.h | 38 +-
drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.c | 2 +-
drivers/net/wireless/mediatek/mt76/mt76x0/pci.c | 4 +-
drivers/net/wireless/mediatek/mt76/mt76x02_mac.c | 15 +-
drivers/net/wireless/mediatek/mt76/mt76x02_mmio.c | 12 +-
drivers/net/wireless/mediatek/mt76/mt76x02_util.c | 3 +
drivers/net/wireless/mediatek/mt76/mt76x2/pci.c | 5 +-
.../net/wireless/mediatek/mt76/mt7915/debugfs.c | 542 +-
drivers/net/wireless/mediatek/mt76/mt7915/init.c | 170 +-
drivers/net/wireless/mediatek/mt76/mt7915/mac.c | 652 +-
drivers/net/wireless/mediatek/mt76/mt7915/mac.h | 11 +-
drivers/net/wireless/mediatek/mt76/mt7915/main.c | 366 +-
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c | 1192 +-
drivers/net/wireless/mediatek/mt76/mt7915/mcu.h | 128 +-
drivers/net/wireless/mediatek/mt76/mt7915/mmio.c | 6 +-
drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h | 161 +-
drivers/net/wireless/mediatek/mt76/mt7915/pci.c | 5 +-
drivers/net/wireless/mediatek/mt76/mt7915/regs.h | 166 +-
.../net/wireless/mediatek/mt76/mt7915/testmode.c | 23 +
.../net/wireless/mediatek/mt76/mt7915/testmode.h | 6 +
drivers/net/wireless/mediatek/mt76/mt7921/Kconfig | 19 +-
drivers/net/wireless/mediatek/mt76/mt7921/Makefile | 7 +-
.../net/wireless/mediatek/mt76/mt7921/debugfs.c | 99 +-
drivers/net/wireless/mediatek/mt76/mt7921/dma.c | 74 +-
drivers/net/wireless/mediatek/mt76/mt7921/eeprom.c | 100 -
drivers/net/wireless/mediatek/mt76/mt7921/init.c | 96 +-
drivers/net/wireless/mediatek/mt76/mt7921/mac.c | 776 +-
drivers/net/wireless/mediatek/mt76/mt7921/mac.h | 32 +
drivers/net/wireless/mediatek/mt76/mt7921/main.c | 328 +-
drivers/net/wireless/mediatek/mt76/mt7921/mcu.c | 448 +-
drivers/net/wireless/mediatek/mt76/mt7921/mcu.h | 63 +-
drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h | 179 +-
drivers/net/wireless/mediatek/mt76/mt7921/pci.c | 66 +-
.../net/wireless/mediatek/mt76/mt7921/pci_mac.c | 348 +
.../net/wireless/mediatek/mt76/mt7921/pci_mcu.c | 115 +
drivers/net/wireless/mediatek/mt76/mt7921/regs.h | 58 +-
drivers/net/wireless/mediatek/mt76/mt7921/sdio.c | 317 +
.../net/wireless/mediatek/mt76/mt7921/sdio_mac.c | 220 +
.../net/wireless/mediatek/mt76/mt7921/sdio_mcu.c | 135 +
.../net/wireless/mediatek/mt76/mt7921/testmode.c | 197 +
drivers/net/wireless/mediatek/mt76/sdio.c | 303 +-
drivers/net/wireless/mediatek/mt76/sdio.h | 138 +
drivers/net/wireless/mediatek/mt76/sdio_txrx.c | 364 +
drivers/net/wireless/mediatek/mt76/testmode.c | 4 +-
drivers/net/wireless/mediatek/mt76/testmode.h | 7 +
drivers/net/wireless/mediatek/mt76/tx.c | 84 +-
drivers/net/wireless/mediatek/mt76/usb.c | 2 +-
drivers/net/wireless/mediatek/mt76/util.h | 10 +-
drivers/net/wireless/mediatek/mt7601u/dma.c | 2 +-
drivers/net/wireless/microchip/wilc1000/cfg80211.c | 11 +-
drivers/net/wireless/microchip/wilc1000/hif.c | 31 +-
drivers/net/wireless/microchip/wilc1000/hif.h | 1 +
drivers/net/wireless/microchip/wilc1000/netdev.c | 14 +-
drivers/net/wireless/microchip/wilc1000/netdev.h | 5 +-
drivers/net/wireless/microchip/wilc1000/sdio.c | 1 +
drivers/net/wireless/microchip/wilc1000/spi.c | 91 +-
drivers/net/wireless/microchip/wilc1000/wlan.c | 134 +-
drivers/net/wireless/microchip/wilc1000/wlan.h | 5 +-
drivers/net/wireless/microchip/wilc1000/wlan_cfg.c | 1 +
drivers/net/wireless/microchip/wilc1000/wlan_if.h | 7 +-
drivers/net/wireless/quantenna/qtnfmac/core.c | 6 +-
drivers/net/wireless/quantenna/qtnfmac/pcie/pcie.c | 2 -
drivers/net/wireless/ralink/rt2x00/rt2800usb.c | 1 -
drivers/net/wireless/ray_cs.c | 2 +-
drivers/net/wireless/realtek/Kconfig | 1 +
drivers/net/wireless/realtek/Makefile | 1 +
.../net/wireless/realtek/rtl818x/rtl8187/rtl8225.c | 14 +-
.../net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 6 +-
.../net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h | 2 +
drivers/net/wireless/realtek/rtlwifi/pci.c | 1 -
.../net/wireless/realtek/rtlwifi/rtl8192ee/hw.c | 2 +-
drivers/net/wireless/realtek/rtw88/debug.c | 46 +-
drivers/net/wireless/realtek/rtw88/debug.h | 1 +
drivers/net/wireless/realtek/rtw88/fw.c | 54 +-
drivers/net/wireless/realtek/rtw88/fw.h | 24 +
drivers/net/wireless/realtek/rtw88/main.c | 22 +-
drivers/net/wireless/realtek/rtw88/main.h | 49 +-
drivers/net/wireless/realtek/rtw88/phy.c | 119 +-
drivers/net/wireless/realtek/rtw88/phy.h | 2 +
drivers/net/wireless/realtek/rtw88/reg.h | 6 +
drivers/net/wireless/realtek/rtw88/regd.c | 753 +-
drivers/net/wireless/realtek/rtw88/regd.h | 8 +-
drivers/net/wireless/realtek/rtw88/rtw8821c.c | 19 +-
drivers/net/wireless/realtek/rtw88/rtw8822b.c | 46 +-
drivers/net/wireless/realtek/rtw88/rtw8822b.h | 8 +
drivers/net/wireless/realtek/rtw88/rtw8822c.c | 47 +
drivers/net/wireless/realtek/rtw88/rtw8822c.h | 3 +
drivers/net/wireless/realtek/rtw89/Kconfig | 50 +
drivers/net/wireless/realtek/rtw89/Makefile | 25 +
drivers/net/wireless/realtek/rtw89/cam.c | 695 +
drivers/net/wireless/realtek/rtw89/cam.h | 165 +
drivers/net/wireless/realtek/rtw89/coex.c | 5716 +++
drivers/net/wireless/realtek/rtw89/coex.h | 181 +
drivers/net/wireless/realtek/rtw89/core.c | 2502 +
drivers/net/wireless/realtek/rtw89/core.h | 3384 ++
drivers/net/wireless/realtek/rtw89/debug.c | 2489 +
drivers/net/wireless/realtek/rtw89/debug.h | 77 +
drivers/net/wireless/realtek/rtw89/efuse.c | 188 +
drivers/net/wireless/realtek/rtw89/efuse.h | 13 +
drivers/net/wireless/realtek/rtw89/fw.c | 1641 +
drivers/net/wireless/realtek/rtw89/fw.h | 1378 +
drivers/net/wireless/realtek/rtw89/mac.c | 3836 ++
drivers/net/wireless/realtek/rtw89/mac.h | 860 +
drivers/net/wireless/realtek/rtw89/mac80211.c | 676 +
drivers/net/wireless/realtek/rtw89/pci.c | 3060 ++
drivers/net/wireless/realtek/rtw89/pci.h | 630 +
drivers/net/wireless/realtek/rtw89/phy.c | 2868 ++
drivers/net/wireless/realtek/rtw89/phy.h | 311 +
drivers/net/wireless/realtek/rtw89/ps.c | 150 +
drivers/net/wireless/realtek/rtw89/ps.h | 16 +
drivers/net/wireless/realtek/rtw89/reg.h | 2159 +
drivers/net/wireless/realtek/rtw89/regd.c | 353 +
drivers/net/wireless/realtek/rtw89/rtw8852a.c | 2036 +
drivers/net/wireless/realtek/rtw89/rtw8852a.h | 109 +
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c | 3911 ++
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.h | 24 +
.../wireless/realtek/rtw89/rtw8852a_rfk_table.c | 1607 +
.../wireless/realtek/rtw89/rtw8852a_rfk_table.h | 133 +
.../net/wireless/realtek/rtw89/rtw8852a_table.c | 48725 +++++++++++++++++++
.../net/wireless/realtek/rtw89/rtw8852a_table.h | 28 +
drivers/net/wireless/realtek/rtw89/sar.c | 190 +
drivers/net/wireless/realtek/rtw89/sar.h | 26 +
drivers/net/wireless/realtek/rtw89/ser.c | 491 +
drivers/net/wireless/realtek/rtw89/ser.h | 15 +
drivers/net/wireless/realtek/rtw89/txrx.h | 358 +
drivers/net/wireless/realtek/rtw89/util.h | 17 +
drivers/net/wireless/rndis_wlan.c | 2 -
drivers/net/wireless/rsi/rsi_91x_core.c | 2 +
drivers/net/wireless/rsi/rsi_91x_hal.c | 10 +-
drivers/net/wireless/rsi/rsi_91x_mac80211.c | 74 +-
drivers/net/wireless/rsi/rsi_91x_main.c | 17 +-
drivers/net/wireless/rsi/rsi_91x_mgmt.c | 24 +-
drivers/net/wireless/rsi/rsi_91x_sdio.c | 5 +-
drivers/net/wireless/rsi/rsi_91x_usb.c | 7 +-
drivers/net/wireless/rsi/rsi_hal.h | 11 +
drivers/net/wireless/rsi/rsi_main.h | 15 +-
drivers/net/wireless/st/cw1200/bh.c | 2 -
drivers/net/wireless/ti/wlcore/spi.c | 9 +-
drivers/net/wireless/wl3501_cs.c | 3 +-
drivers/net/wireless/zydas/zd1201.c | 9 +-
drivers/net/wireless/zydas/zd1211rw/zd_usb.c | 1 -
drivers/net/wwan/Kconfig | 1 +
drivers/net/wwan/iosm/Makefile | 5 +-
drivers/net/wwan/iosm/iosm_ipc_chnl_cfg.c | 6 +-
drivers/net/wwan/iosm/iosm_ipc_chnl_cfg.h | 1 +
drivers/net/wwan/iosm/iosm_ipc_coredump.c | 125 +
drivers/net/wwan/iosm/iosm_ipc_coredump.h | 59 +
drivers/net/wwan/iosm/iosm_ipc_devlink.c | 321 +
drivers/net/wwan/iosm/iosm_ipc_devlink.h | 205 +
drivers/net/wwan/iosm/iosm_ipc_flash.c | 594 +
drivers/net/wwan/iosm/iosm_ipc_flash.h | 229 +
drivers/net/wwan/iosm/iosm_ipc_imem.c | 107 +-
drivers/net/wwan/iosm/iosm_ipc_imem.h | 18 +-
drivers/net/wwan/iosm/iosm_ipc_imem_ops.c | 315 +
drivers/net/wwan/iosm/iosm_ipc_imem_ops.h | 49 +-
drivers/net/xen-netback/interface.c | 6 +-
drivers/net/xen-netback/netback.c | 2 +-
drivers/net/xen-netfront.c | 12 +-
drivers/nfc/fdp/i2c.c | 1 -
drivers/nfc/microread/i2c.c | 4 -
drivers/nfc/microread/mei.c | 6 +-
drivers/nfc/nfcmrvl/fw_dnld.c | 4 +-
drivers/nfc/pn533/i2c.c | 6 +-
drivers/nfc/pn533/pn533.c | 12 +-
drivers/nfc/pn533/pn533.h | 4 +-
drivers/nfc/pn533/uart.c | 4 +-
drivers/nfc/pn533/usb.c | 2 +-
drivers/nfc/pn544/mei.c | 8 +-
drivers/nfc/port100.c | 10 +-
drivers/nfc/s3fwrn5/firmware.c | 29 +-
drivers/nfc/s3fwrn5/nci.c | 18 +-
drivers/nfc/st-nci/i2c.c | 4 -
drivers/nfc/st-nci/ndlc.c | 4 -
drivers/nfc/st-nci/se.c | 6 -
drivers/nfc/st-nci/spi.c | 4 -
drivers/nfc/st21nfca/i2c.c | 4 -
drivers/nfc/st21nfca/se.c | 4 -
drivers/nfc/st95hf/core.c | 6 +-
drivers/nfc/trf7970a.c | 8 -
drivers/nvdimm/blk.c | 26 +-
drivers/nvdimm/btt.c | 37 +-
drivers/nvdimm/btt_devs.c | 14 +-
drivers/nvdimm/core.c | 41 +-
drivers/nvdimm/label.c | 139 +-
drivers/nvdimm/label.h | 94 +-
drivers/nvdimm/namespace_devs.c | 95 +-
drivers/nvdimm/nd-core.h | 5 +-
drivers/nvdimm/nd.h | 185 +-
drivers/nvdimm/pfn_devs.c | 2 +-
drivers/nvdimm/pmem.c | 90 +-
drivers/nvme/host/core.c | 144 +-
drivers/nvme/host/fabrics.c | 6 +-
drivers/nvme/host/fabrics.h | 8 +
drivers/nvme/host/fc.c | 34 +-
drivers/nvme/host/multipath.c | 54 +-
drivers/nvme/host/nvme.h | 19 +
drivers/nvme/host/pci.c | 58 +-
drivers/nvme/host/rdma.c | 28 +-
drivers/nvme/host/tcp.c | 29 +-
drivers/nvme/host/zns.c | 2 +
drivers/nvme/target/admin-cmd.c | 18 +-
drivers/nvme/target/configfs.c | 41 +
drivers/nvme/target/core.c | 18 +-
drivers/nvme/target/discovery.c | 19 +-
drivers/nvme/target/fabrics-cmd.c | 3 +-
drivers/nvme/target/io-cmd-bdev.c | 5 +-
drivers/nvme/target/io-cmd-file.c | 4 +-
drivers/nvme/target/loop.c | 6 +-
drivers/nvme/target/nvmet.h | 6 +
drivers/nvme/target/rdma.c | 31 +
drivers/nvme/target/tcp.c | 23 +-
drivers/nvmem/core.c | 174 +-
drivers/nvmem/imx-ocotp.c | 25 +
drivers/of/Kconfig | 4 -
drivers/of/Makefile | 1 -
drivers/of/base.c | 22 +
drivers/of/fdt.c | 52 +-
drivers/of/irq.c | 32 +-
drivers/of/kexec.c | 4 +-
drivers/of/kobj.c | 4 +-
drivers/of/of_net.c | 145 -
drivers/of/of_numa.c | 2 +
drivers/of/of_private.h | 10 +-
drivers/of/of_reserved_mem.c | 7 +-
drivers/of/platform.c | 17 +-
drivers/of/unittest-data/Makefile | 8 +-
drivers/of/unittest-data/tests-interrupts.dtsi | 19 +
drivers/of/unittest.c | 24 +-
drivers/opp/core.c | 6 +-
drivers/opp/of.c | 50 +-
drivers/pci/controller/Kconfig | 31 +-
drivers/pci/controller/Makefile | 3 +
drivers/pci/controller/cadence/pci-j721e.c | 2 +-
drivers/pci/controller/cadence/pcie-cadence-plat.c | 2 +
drivers/pci/controller/dwc/Kconfig | 30 +-
drivers/pci/controller/dwc/Makefile | 1 +
drivers/pci/controller/dwc/pci-dra7xx.c | 22 +-
drivers/pci/controller/dwc/pci-imx6.c | 2 +-
drivers/pci/controller/dwc/pcie-designware-ep.c | 3 +
drivers/pci/controller/dwc/pcie-designware-host.c | 19 +-
drivers/pci/controller/dwc/pcie-designware.c | 1 +
drivers/pci/controller/dwc/pcie-kirin.c | 646 +-
drivers/pci/controller/dwc/pcie-qcom-ep.c | 721 +
drivers/pci/controller/dwc/pcie-qcom.c | 96 +-
drivers/pci/controller/dwc/pcie-uniphier.c | 26 +-
drivers/pci/controller/dwc/pcie-visconti.c | 5 +-
drivers/pci/controller/pci-aardvark.c | 491 +-
drivers/pci/controller/pci-hyperv.c | 4 +-
drivers/pci/controller/pci-thunder-ecam.c | 4 +-
drivers/pci/controller/pci-xgene-msi.c | 2 +-
drivers/pci/controller/pci-xgene.c | 3 +-
drivers/pci/controller/pcie-apple.c | 824 +
drivers/pci/controller/pcie-brcmstb.c | 2 +-
drivers/pci/controller/pcie-iproc.c | 2 +-
drivers/pci/controller/pcie-mt7621.c | 600 +
drivers/pci/controller/pcie-rcar-ep.c | 5 +-
drivers/pci/controller/pcie-rcar-host.c | 2 -
drivers/pci/controller/vmd.c | 47 +-
drivers/pci/endpoint/functions/pci-epf-ntb.c | 22 +-
drivers/pci/endpoint/pci-ep-cfs.c | 48 +-
drivers/pci/endpoint/pci-epc-core.c | 2 +-
drivers/pci/endpoint/pci-epf-core.c | 4 +-
drivers/pci/hotplug/acpiphp_glue.c | 2 +-
drivers/pci/hotplug/cpqphp.h | 2 +-
drivers/pci/hotplug/cpqphp_ctrl.c | 4 +-
drivers/pci/hotplug/cpqphp_pci.c | 6 +-
drivers/pci/hotplug/ibmphp.h | 4 +-
drivers/pci/hotplug/pciehp.h | 2 +
drivers/pci/hotplug/pciehp_core.c | 2 +
drivers/pci/hotplug/pciehp_hpc.c | 26 +
drivers/pci/hotplug/s390_pci_hpc.c | 24 +
drivers/pci/hotplug/shpchp_hpc.c | 2 +-
drivers/pci/iov.c | 14 +-
drivers/pci/msi.c | 42 +-
drivers/pci/of.c | 10 +-
drivers/pci/p2pdma.c | 8 +-
drivers/pci/pci-acpi.c | 74 +-
drivers/pci/pci-bridge-emul.c | 13 +
drivers/pci/pci-driver.c | 22 +-
drivers/pci/pci-mid.c | 37 +-
drivers/pci/pci-sysfs.c | 57 +-
drivers/pci/pci.c | 239 +-
drivers/pci/pci.h | 97 +-
drivers/pci/pcie/Makefile | 4 +-
drivers/pci/pcie/aer.c | 2 +-
drivers/pci/pcie/aspm.c | 4 +-
drivers/pci/pcie/err.c | 40 +-
drivers/pci/pcie/portdrv.h | 6 +-
drivers/pci/pcie/portdrv_core.c | 67 +-
drivers/pci/pcie/portdrv_pci.c | 27 +-
drivers/pci/probe.c | 60 +-
drivers/pci/quirks.c | 76 +-
drivers/pci/rom.c | 2 +-
drivers/pci/setup-bus.c | 2 +-
drivers/pci/setup-irq.c | 26 +-
drivers/pci/switch/switchtec.c | 95 +-
drivers/pci/vpd.c | 93 +-
drivers/pci/xen-pcifront.c | 58 +-
drivers/pcmcia/db1xxx_ss.c | 1 +
drivers/pcmcia/pcmcia_cis.c | 5 +-
drivers/perf/Kconfig | 12 +-
drivers/perf/hisilicon/hisi_uncore_pa_pmu.c | 2 +-
drivers/perf/qcom_l2_pmu.c | 7 +-
drivers/perf/thunderx2_pmu.c | 2 +-
drivers/phy/broadcom/Kconfig | 4 +
drivers/phy/broadcom/phy-bcm-ns-usb3.c | 2 +-
drivers/phy/broadcom/phy-bcm-ns2-pcie.c | 6 +-
drivers/phy/cadence/phy-cadence-torrent.c | 316 +-
drivers/phy/hisilicon/Kconfig | 10 +
drivers/phy/hisilicon/Makefile | 1 +
drivers/phy/hisilicon/phy-hi3670-pcie.c | 845 +
drivers/phy/hisilicon/phy-hisi-inno-usb2.c | 10 +-
drivers/phy/microchip/sparx5_serdes.c | 4 +-
drivers/phy/qualcomm/phy-qcom-qmp.c | 157 +-
drivers/phy/qualcomm/phy-qcom-qmp.h | 2 +
drivers/phy/qualcomm/phy-qcom-qusb2.c | 21 +-
drivers/phy/qualcomm/phy-qcom-snps-femto-v2.c | 2 +-
drivers/phy/rockchip/phy-rockchip-inno-usb2.c | 11 +-
drivers/phy/samsung/Kconfig | 16 +-
drivers/phy/st/phy-stm32-usbphyc.c | 203 +
drivers/phy/ti/phy-gmii-sel.c | 2 +
drivers/pinctrl/Kconfig | 16 +
drivers/pinctrl/Makefile | 1 +
drivers/pinctrl/bcm/Kconfig | 2 +-
drivers/pinctrl/bcm/pinctrl-bcm2835.c | 9 +-
drivers/pinctrl/bcm/pinctrl-ns.c | 29 +-
drivers/pinctrl/core.c | 2 +
drivers/pinctrl/intel/Kconfig | 6 +-
drivers/pinctrl/mediatek/Kconfig | 7 +
drivers/pinctrl/mediatek/Makefile | 1 +
drivers/pinctrl/mediatek/pinctrl-moore.c | 18 +
drivers/pinctrl/mediatek/pinctrl-mt7986.c | 927 +
drivers/pinctrl/mediatek/pinctrl-mt8195.c | 134 +
drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c | 231 +-
drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.h | 46 +
drivers/pinctrl/mediatek/pinctrl-paris.c | 68 +-
drivers/pinctrl/nomadik/Kconfig | 1 -
drivers/pinctrl/pinctrl-amd.c | 31 +
drivers/pinctrl/pinctrl-apple-gpio.c | 534 +
drivers/pinctrl/pinctrl-equilibrium.c | 7 +-
drivers/pinctrl/pinctrl-gemini.c | 4 +-
drivers/pinctrl/pinctrl-microchip-sgpio.c | 7 +
drivers/pinctrl/pinctrl-st.c | 2 +-
drivers/pinctrl/qcom/Kconfig | 17 +
drivers/pinctrl/qcom/Makefile | 2 +
drivers/pinctrl/qcom/pinctrl-msm8226.c | 74 +-
drivers/pinctrl/qcom/pinctrl-qcm2290.c | 1129 +
drivers/pinctrl/qcom/pinctrl-sm6350.c | 1401 +
drivers/pinctrl/qcom/pinctrl-spmi-gpio.c | 7 +
drivers/pinctrl/qcom/pinctrl-spmi-mpp.c | 111 +-
drivers/pinctrl/qcom/pinctrl-ssbi-mpp.c | 133 +-
drivers/pinctrl/renesas/core.c | 83 +-
drivers/pinctrl/renesas/pfc-r8a77950.c | 14 +
drivers/pinctrl/renesas/pfc-r8a77951.c | 22 +-
drivers/pinctrl/renesas/pfc-r8a7796.c | 22 +-
drivers/pinctrl/renesas/pfc-r8a77965.c | 22 +-
drivers/pinctrl/renesas/pinctrl-rzg2l.c | 2 +-
drivers/pinctrl/samsung/pinctrl-exynos-arm64.c | 108 +
drivers/pinctrl/samsung/pinctrl-samsung.c | 2 +
drivers/pinctrl/samsung/pinctrl-samsung.h | 1 +
drivers/pinctrl/stm32/pinctrl-stm32.c | 20 +-
drivers/pinctrl/tegra/pinctrl-tegra.c | 32 +-
drivers/pinctrl/tegra/pinctrl-tegra.h | 2 +
drivers/pinctrl/tegra/pinctrl-tegra194.c | 1794 +-
drivers/pinctrl/tegra/pinctrl-tegra210.c | 330 +-
drivers/pinctrl/uniphier/Kconfig | 4 +
drivers/pinctrl/uniphier/Makefile | 1 +
drivers/pinctrl/uniphier/pinctrl-uniphier-ld11.c | 18 +
drivers/pinctrl/uniphier/pinctrl-uniphier-ld20.c | 35 +
drivers/pinctrl/uniphier/pinctrl-uniphier-nx1.c | 489 +
drivers/pinctrl/uniphier/pinctrl-uniphier-pxs3.c | 40 +
drivers/platform/chrome/cros_ec_lpc.c | 4 +-
drivers/platform/chrome/cros_ec_proto.c | 79 +-
drivers/platform/chrome/cros_ec_sensorhub.c | 6 +-
drivers/platform/chrome/cros_ec_typec.c | 74 +-
drivers/platform/chrome/cros_usbpd_notify.c | 50 +-
drivers/platform/mellanox/Kconfig | 12 +
drivers/platform/mellanox/Makefile | 1 +
drivers/platform/mellanox/mlxreg-hotplug.c | 123 +-
drivers/platform/mellanox/mlxreg-io.c | 2 +-
drivers/platform/mellanox/mlxreg-lc.c | 906 +
drivers/platform/surface/surface3-wmi.c | 9 +-
drivers/platform/surface/surface3_power.c | 3 +-
.../platform/surface/surface_aggregator_registry.c | 66 +
drivers/platform/surface/surface_gpe.c | 13 +
drivers/platform/x86/Kconfig | 29 +
drivers/platform/x86/Makefile | 4 +
drivers/platform/x86/acer-wmi.c | 14 +-
drivers/platform/x86/amd-pmc.c | 152 +-
drivers/platform/x86/asus-wmi.c | 12 +-
drivers/platform/x86/barco-p50-gpio.c | 436 +
drivers/platform/x86/dell/dell-wmi-base.c | 76 +-
drivers/platform/x86/hp-wmi.c | 337 +-
drivers/platform/x86/hp_accel.c | 3 +-
drivers/platform/x86/i2c-multi-instantiate.c | 31 +-
drivers/platform/x86/ideapad-laptop.c | 35 +-
drivers/platform/x86/intel/Kconfig | 16 +
drivers/platform/x86/intel/Makefile | 1 +
drivers/platform/x86/intel/int0002_vgpio.c | 14 +-
drivers/platform/x86/intel/ishtp_eclite.c | 701 +
drivers/platform/x86/lg-laptop.c | 11 +-
drivers/platform/x86/mlx-platform.c | 2420 +-
drivers/platform/x86/nvidia-wmi-ec-backlight.c | 213 +
drivers/platform/x86/panasonic-laptop.c | 18 +-
drivers/platform/x86/sony-laptop.c | 46 +-
drivers/platform/x86/system76_acpi.c | 427 +-
drivers/platform/x86/thinkpad_acpi.c | 195 +-
drivers/platform/x86/touchscreen_dmi.c | 25 +
drivers/platform/x86/wmi.c | 375 +-
drivers/pnp/system.c | 2 +-
drivers/power/reset/at91-reset.c | 4 +-
drivers/power/reset/ltc2952-poweroff.c | 4 +-
drivers/power/supply/Kconfig | 23 +-
drivers/power/supply/ab8500_bmdata.c | 3 +-
drivers/power/supply/axp288_charger.c | 178 +-
drivers/power/supply/bq25890_charger.c | 65 +-
drivers/power/supply/bq27xxx_battery_i2c.c | 3 +-
drivers/power/supply/cpcap-battery.c | 15 +-
drivers/power/supply/max17040_battery.c | 2 +
drivers/power/supply/max17042_battery.c | 14 +-
drivers/power/supply/power_supply_core.c | 65 +-
drivers/power/supply/rt5033_battery.c | 2 +-
drivers/power/supply/wm831x_power.c | 12 +-
drivers/powercap/dtpm.c | 78 +-
drivers/powercap/dtpm_cpu.c | 228 +-
drivers/ptp/idt8a340_reg.h | 720 -
drivers/ptp/ptp_clock.c | 16 +-
drivers/ptp/ptp_clockmatrix.c | 1588 +-
drivers/ptp/ptp_clockmatrix.h | 109 +-
drivers/ptp/ptp_kvm_x86.c | 4 +-
drivers/ptp/ptp_ocp.c | 1354 +-
drivers/pwm/Kconfig | 4 +-
drivers/pwm/core.c | 9 +
drivers/pwm/pwm-atmel.c | 1 -
drivers/pwm/pwm-samsung.c | 30 +-
drivers/pwm/pwm-visconti.c | 14 +-
drivers/pwm/pwm-vt8500.c | 16 +-
drivers/rapidio/devices/rio_mport_cdev.c | 9 +-
drivers/regulator/Kconfig | 15 +-
drivers/regulator/Makefile | 1 -
drivers/regulator/bd71815-regulator.c | 4 +-
drivers/regulator/core.c | 14 +-
drivers/regulator/dummy.c | 3 +-
drivers/regulator/hi6421v600-regulator.c | 10 +-
drivers/regulator/lp872x.c | 52 +-
drivers/regulator/max8973-regulator.c | 4 +-
drivers/regulator/pwm-regulator.c | 12 +-
drivers/regulator/qcom-rpmh-regulator.c | 32 +
drivers/regulator/qcom_smd-regulator.c | 49 +
drivers/regulator/rtq6752-regulator.c | 18 +-
drivers/regulator/s5m8767.c | 21 +-
drivers/regulator/sy7636a-regulator.c | 2 +-
drivers/regulator/ti-abb-regulator.c | 31 +-
drivers/regulator/tps62360-regulator.c | 59 +-
drivers/regulator/tps80031-regulator.c | 753 -
drivers/regulator/uniphier-regulator.c | 4 +
drivers/regulator/vqmmc-ipq4019-regulator.c | 4 +-
drivers/remoteproc/Kconfig | 32 +-
drivers/remoteproc/Makefile | 2 +
drivers/remoteproc/imx_dsp_rproc.c | 1206 +
drivers/remoteproc/imx_rproc.c | 71 +-
drivers/remoteproc/imx_rproc.h | 39 +
drivers/remoteproc/meson_mx_ao_arc.c | 261 +
drivers/remoteproc/mtk_common.h | 1 +
drivers/remoteproc/mtk_scp.c | 48 +-
drivers/remoteproc/omap_remoteproc.c | 6 +-
drivers/remoteproc/qcom_q6v5.c | 57 +-
drivers/remoteproc/qcom_q6v5.h | 7 +-
drivers/remoteproc/qcom_q6v5_adsp.c | 7 +-
drivers/remoteproc/qcom_q6v5_mss.c | 304 +-
drivers/remoteproc/qcom_q6v5_pas.c | 141 +-
drivers/remoteproc/qcom_q6v5_wcss.c | 5 +-
drivers/remoteproc/qcom_wcnss.c | 1 -
drivers/remoteproc/remoteproc_core.c | 8 +-
drivers/remoteproc/remoteproc_coredump.c | 2 +-
drivers/remoteproc/remoteproc_elf_loader.c | 4 +-
drivers/remoteproc/remoteproc_virtio.c | 12 +
drivers/remoteproc/ti_k3_dsp_remoteproc.c | 2 +-
drivers/remoteproc/ti_k3_r5_remoteproc.c | 2 +-
drivers/reset/Kconfig | 8 +-
drivers/reset/reset-brcmstb-rescal.c | 2 +-
drivers/reset/reset-microchip-sparx5.c | 40 +-
drivers/reset/reset-socfpga.c | 26 +
drivers/reset/reset-uniphier-glue.c | 4 +
drivers/reset/reset-uniphier.c | 27 +
drivers/reset/tegra/reset-bpmp.c | 9 +-
drivers/rpmsg/mtk_rpmsg.c | 2 +-
drivers/rpmsg/qcom_glink_native.c | 90 +-
drivers/rpmsg/rpmsg_char.c | 2 -
drivers/rpmsg/rpmsg_core.c | 21 +
drivers/rpmsg/rpmsg_internal.h | 2 +
drivers/rpmsg/virtio_rpmsg_bus.c | 13 +-
drivers/rtc/Kconfig | 29 +-
drivers/rtc/Makefile | 2 +-
drivers/rtc/class.c | 20 +-
drivers/rtc/dev.c | 65 +
drivers/rtc/interface.c | 15 +-
drivers/rtc/rtc-ab-eoz9.c | 3 +-
drivers/rtc/rtc-ab8500.c | 23 +-
drivers/rtc/rtc-ds1302.c | 7 +
drivers/rtc/rtc-ds1390.c | 7 +
drivers/rtc/rtc-m41t80.c | 2 +-
drivers/rtc/rtc-mcp795.c | 7 +
drivers/rtc/rtc-msc313.c | 259 +
drivers/rtc/rtc-omap.c | 1 -
drivers/rtc/rtc-pcf2123.c | 9 +
drivers/rtc/rtc-pcf85063.c | 16 +-
drivers/rtc/rtc-pcf8523.c | 434 +-
drivers/rtc/rtc-rv3028.c | 74 +
drivers/rtc/rtc-rv3032.c | 89 +-
drivers/rtc/rtc-rv8803.c | 4 +-
drivers/rtc/rtc-rx6110.c | 2 +-
drivers/rtc/rtc-rx8025.c | 141 +-
drivers/rtc/rtc-s35390a.c | 7 +-
drivers/rtc/rtc-s3c.c | 106 +-
drivers/rtc/rtc-s5m.c | 1 -
drivers/rtc/rtc-sun6i.c | 13 +-
drivers/rtc/rtc-tps80031.c | 324 -
drivers/s390/block/dasd.c | 9 +-
drivers/s390/block/dasd_3990_erp.c | 6 +-
drivers/s390/block/dasd_eckd.c | 294 +-
drivers/s390/block/dasd_eckd.h | 13 +-
drivers/s390/block/dasd_erp.c | 8 +-
drivers/s390/block/dasd_genhd.c | 11 +-
drivers/s390/block/dasd_int.h | 11 +-
drivers/s390/block/dasd_ioctl.c | 4 +-
drivers/s390/block/dcssblk.c | 15 +-
drivers/s390/block/scm_blk.c | 7 +-
drivers/s390/char/sclp.c | 14 +-
drivers/s390/char/sclp.h | 2 +-
drivers/s390/char/sclp_early.c | 7 +-
drivers/s390/char/sclp_ftp.c | 3 +
drivers/s390/char/sclp_sd.c | 11 +-
drivers/s390/char/sclp_vt220.c | 4 +-
drivers/s390/char/tape_std.c | 3 +-
drivers/s390/cio/css.c | 13 +-
drivers/s390/cio/device.c | 2 +
drivers/s390/cio/device_ops.c | 12 +-
drivers/s390/cio/qdio_setup.c | 34 +-
drivers/s390/cio/vfio_ccw_drv.c | 136 +-
drivers/s390/cio/vfio_ccw_ops.c | 142 +-
drivers/s390/cio/vfio_ccw_private.h | 5 +
drivers/s390/crypto/ap_bus.c | 81 +-
drivers/s390/crypto/ap_debug.h | 2 +-
drivers/s390/crypto/ap_queue.c | 9 +-
drivers/s390/crypto/vfio_ap_drv.c | 16 +-
drivers/s390/crypto/vfio_ap_ops.c | 7 +-
drivers/s390/crypto/vfio_ap_private.h | 43 +-
drivers/s390/crypto/zcrypt_api.c | 45 +-
drivers/s390/crypto/zcrypt_card.c | 8 +-
drivers/s390/crypto/zcrypt_debug.h | 2 +-
drivers/s390/crypto/zcrypt_error.h | 22 +-
drivers/s390/crypto/zcrypt_msgtype50.c | 18 +-
drivers/s390/crypto/zcrypt_msgtype6.c | 40 +-
drivers/s390/crypto/zcrypt_queue.c | 17 +-
drivers/s390/net/ctcm_fsms.c | 60 +-
drivers/s390/net/ctcm_main.c | 38 +-
drivers/s390/net/ctcm_mpc.c | 8 +-
drivers/s390/net/fsm.c | 2 +-
drivers/s390/net/ism_drv.c | 2 +-
drivers/s390/net/lcs.c | 123 +-
drivers/s390/net/netiucv.c | 104 +-
drivers/s390/net/qeth_core.h | 4 +-
drivers/s390/net/qeth_core_main.c | 63 +-
drivers/s390/net/qeth_l2_main.c | 33 +-
drivers/s390/net/qeth_l3_main.c | 15 +-
drivers/s390/scsi/zfcp_ext.h | 4 +-
drivers/s390/scsi/zfcp_fsf.c | 2 +-
drivers/s390/scsi/zfcp_scsi.c | 8 +-
drivers/s390/scsi/zfcp_sysfs.c | 52 +-
drivers/scsi/3w-9xxx.c | 18 +-
drivers/scsi/3w-sas.c | 18 +-
drivers/scsi/3w-xxxx.c | 26 +-
drivers/scsi/53c700.c | 20 +-
drivers/scsi/BusLogic.c | 13 +-
drivers/scsi/NCR5380.c | 12 +-
drivers/scsi/a100u2w.c | 5 +-
drivers/scsi/aacraid/aachba.c | 53 +-
drivers/scsi/aacraid/linit.c | 38 +-
drivers/scsi/advansys.c | 14 +-
drivers/scsi/aha152x.c | 29 +-
drivers/scsi/aha1542.c | 16 +-
drivers/scsi/aha1740.c | 4 +-
drivers/scsi/aic7xxx/aic79xx_osm.c | 6 +-
drivers/scsi/aic7xxx/aic79xx_osm.h | 2 +-
drivers/scsi/aic7xxx/aic7xxx_osm.c | 6 +-
drivers/scsi/aic7xxx/aic7xxx_osm.h | 2 +-
drivers/scsi/aic94xx/aic94xx_sds.c | 6 +-
drivers/scsi/arcmsr/arcmsr.h | 2 +-
drivers/scsi/arcmsr/arcmsr_attr.c | 33 +-
drivers/scsi/arcmsr/arcmsr_hba.c | 22 +-
drivers/scsi/arm/acornscsi.c | 20 +-
drivers/scsi/arm/arxescsi.c | 1 +
drivers/scsi/arm/cumana_2.c | 1 +
drivers/scsi/arm/eesox.c | 1 +
drivers/scsi/arm/fas216.c | 26 +-
drivers/scsi/arm/fas216.h | 10 +
drivers/scsi/arm/powertec.c | 2 +-
drivers/scsi/atp870u.c | 17 +-
drivers/scsi/be2iscsi/be_main.c | 21 +-
drivers/scsi/bfa/bfad_attr.c | 68 +-
drivers/scsi/bfa/bfad_im.c | 16 +-
drivers/scsi/bfa/bfad_im.h | 4 +-
drivers/scsi/bnx2fc/bnx2fc_fcoe.c | 8 +-
drivers/scsi/bnx2fc/bnx2fc_io.c | 8 +-
drivers/scsi/bnx2i/bnx2i.h | 2 +-
drivers/scsi/bnx2i/bnx2i_iscsi.c | 2 +-
drivers/scsi/bnx2i/bnx2i_sysfs.c | 15 +-
drivers/scsi/csiostor/csio_lnode.c | 2 +-
drivers/scsi/csiostor/csio_scsi.c | 32 +-
drivers/scsi/cxlflash/main.c | 46 +-
drivers/scsi/dc395x.c | 12 +-
drivers/scsi/dpt_i2o.c | 13 +-
drivers/scsi/elx/efct/efct_driver.c | 6 +-
drivers/scsi/elx/efct/efct_lio.c | 4 +-
drivers/scsi/elx/efct/efct_scsi.c | 3 +-
drivers/scsi/elx/libefc/efc.h | 2 +-
drivers/scsi/elx/libefc/efc_cmds.c | 7 +-
drivers/scsi/elx/libefc/efc_fabric.c | 2 +-
drivers/scsi/elx/libefc/efclib.h | 1 +
drivers/scsi/elx/libefc_sli/sli4.c | 9 +-
drivers/scsi/esas2r/esas2r_main.c | 8 +-
drivers/scsi/esp_scsi.c | 12 +-
drivers/scsi/fcoe/fcoe.c | 2 +-
drivers/scsi/fdomain.c | 2 +-
drivers/scsi/fnic/fnic.h | 2 +-
drivers/scsi/fnic/fnic_attrs.c | 17 +-
drivers/scsi/fnic/fnic_main.c | 2 +-
drivers/scsi/fnic/fnic_scsi.c | 122 +-
drivers/scsi/hisi_sas/hisi_sas.h | 3 +-
drivers/scsi/hisi_sas/hisi_sas_main.c | 113 +-
drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 23 +-
drivers/scsi/hisi_sas/hisi_sas_v2_hw.c | 35 +-
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 63 +-
drivers/scsi/hosts.c | 21 +-
drivers/scsi/hpsa.c | 56 +-
drivers/scsi/hptiop.c | 20 +-
drivers/scsi/ibmvscsi/ibmvfc.c | 33 +-
drivers/scsi/ibmvscsi/ibmvscsi.c | 31 +-
drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c | 42 +-
drivers/scsi/imm.c | 6 +-
drivers/scsi/initio.c | 7 +-
drivers/scsi/ipr.c | 48 +-
drivers/scsi/ips.c | 31 +-
drivers/scsi/isci/init.c | 8 +-
drivers/scsi/isci/task.h | 4 -
drivers/scsi/libfc/fc_fcp.c | 6 +-
drivers/scsi/libiscsi.c | 7 +-
drivers/scsi/libsas/sas_init.c | 8 +-
drivers/scsi/libsas/sas_scsi_host.c | 27 +-
drivers/scsi/lpfc/lpfc.h | 2 +
drivers/scsi/lpfc/lpfc_attr.c | 314 +-
drivers/scsi/lpfc/lpfc_crtn.h | 7 +-
drivers/scsi/lpfc/lpfc_disc.h | 12 +-
drivers/scsi/lpfc/lpfc_els.c | 61 +-
drivers/scsi/lpfc/lpfc_hbadisc.c | 144 +-
drivers/scsi/lpfc/lpfc_hw4.h | 4 +
drivers/scsi/lpfc/lpfc_init.c | 135 +-
drivers/scsi/lpfc/lpfc_nvme.c | 70 +-
drivers/scsi/lpfc/lpfc_nvmet.c | 44 +-
drivers/scsi/lpfc/lpfc_scsi.c | 131 +-
drivers/scsi/lpfc/lpfc_sli.c | 197 +-
drivers/scsi/lpfc/lpfc_sli4.h | 2 +
drivers/scsi/lpfc/lpfc_version.h | 2 +-
drivers/scsi/mac53c94.c | 6 +-
drivers/scsi/megaraid.c | 24 +-
drivers/scsi/megaraid/megaraid_mbox.c | 28 +-
drivers/scsi/megaraid/megaraid_sas.h | 4 +-
drivers/scsi/megaraid/megaraid_sas_base.c | 40 +-
drivers/scsi/megaraid/megaraid_sas_fusion.c | 56 +-
drivers/scsi/mesh.c | 18 +-
drivers/scsi/mpi3mr/mpi3mr_fw.c | 32 +-
drivers/scsi/mpi3mr/mpi3mr_os.c | 28 +-
drivers/scsi/mpt3sas/mpt3sas_base.h | 4 +-
drivers/scsi/mpt3sas/mpt3sas_ctl.c | 84 +-
drivers/scsi/mpt3sas/mpt3sas_scsih.c | 35 +-
drivers/scsi/mvsas/mv_init.c | 12 +-
drivers/scsi/mvumi.c | 4 +-
drivers/scsi/myrb.c | 60 +-
drivers/scsi/myrs.c | 50 +-
drivers/scsi/ncr53c8xx.c | 16 +-
drivers/scsi/nsp32.c | 7 +-
drivers/scsi/pcmcia/nsp_cs.c | 7 +-
drivers/scsi/pcmcia/sym53c500_cs.c | 14 +-
drivers/scsi/pm8001/pm8001_ctl.c | 70 +-
drivers/scsi/pm8001/pm8001_hwi.c | 12 +-
drivers/scsi/pm8001/pm8001_init.c | 14 +-
drivers/scsi/pm8001/pm8001_sas.c | 15 +
drivers/scsi/pm8001/pm8001_sas.h | 8 +-
drivers/scsi/pm8001/pm80xx_hwi.c | 63 +-
drivers/scsi/pmcraid.c | 27 +-
drivers/scsi/ppa.c | 6 +-
drivers/scsi/ps3rom.c | 8 +-
drivers/scsi/qedf/drv_fcoe_fw_funcs.c | 8 +-
drivers/scsi/qedf/drv_fcoe_fw_funcs.h | 2 +-
drivers/scsi/qedf/qedf.h | 6 +-
drivers/scsi/qedf/qedf_attr.c | 15 +-
drivers/scsi/qedf/qedf_els.c | 2 +-
drivers/scsi/qedf/qedf_io.c | 31 +-
drivers/scsi/qedf/qedf_main.c | 12 +-
drivers/scsi/qedi/qedi_debugfs.c | 4 +-
drivers/scsi/qedi/qedi_fw.c | 40 +-
drivers/scsi/qedi/qedi_fw_api.c | 22 +-
drivers/scsi/qedi/qedi_fw_iscsi.h | 2 +-
drivers/scsi/qedi/qedi_gbl.h | 2 +-
drivers/scsi/qedi/qedi_iscsi.c | 2 +-
drivers/scsi/qedi/qedi_iscsi.h | 2 +-
drivers/scsi/qedi/qedi_main.c | 11 +-
drivers/scsi/qedi/qedi_sysfs.c | 15 +-
drivers/scsi/qla1280.c | 8 +-
drivers/scsi/qla2xxx/qla_attr.c | 156 +-
drivers/scsi/qla2xxx/qla_bsg.c | 50 +-
drivers/scsi/qla2xxx/qla_bsg.h | 7 +
drivers/scsi/qla2xxx/qla_def.h | 8 +-
drivers/scsi/qla2xxx/qla_edif.c | 328 +-
drivers/scsi/qla2xxx/qla_edif.h | 13 +-
drivers/scsi/qla2xxx/qla_edif_bsg.h | 2 +-
drivers/scsi/qla2xxx/qla_gbl.h | 12 +-
drivers/scsi/qla2xxx/qla_gs.c | 3 +-
drivers/scsi/qla2xxx/qla_init.c | 123 +-
drivers/scsi/qla2xxx/qla_iocb.c | 3 +-
drivers/scsi/qla2xxx/qla_isr.c | 4 +
drivers/scsi/qla2xxx/qla_mbx.c | 35 +-
drivers/scsi/qla2xxx/qla_mr.c | 23 -
drivers/scsi/qla2xxx/qla_nvme.c | 35 +-
drivers/scsi/qla2xxx/qla_os.c | 142 +-
drivers/scsi/qla2xxx/qla_target.c | 17 +-
drivers/scsi/qla2xxx/qla_version.h | 4 +-
drivers/scsi/qla2xxx/tcm_qla2xxx.c | 73 +-
drivers/scsi/qla4xxx/ql4_attr.c | 41 +-
drivers/scsi/qla4xxx/ql4_def.h | 4 +-
drivers/scsi/qla4xxx/ql4_glbl.h | 3 +-
drivers/scsi/qla4xxx/ql4_os.c | 6 +-
drivers/scsi/qlogicfas408.c | 7 +-
drivers/scsi/qlogicpti.c | 7 +-
drivers/scsi/scsi.c | 12 +-
drivers/scsi/scsi_bsg.c | 6 +-
drivers/scsi/scsi_debug.c | 33 +-
drivers/scsi/scsi_error.c | 46 +-
drivers/scsi/scsi_ioctl.c | 10 +-
drivers/scsi/scsi_lib.c | 161 +-
drivers/scsi/scsi_pm.c | 105 +-
drivers/scsi/scsi_priv.h | 7 +-
drivers/scsi/scsi_scan.c | 75 +-
drivers/scsi/scsi_sysfs.c | 55 +-
drivers/scsi/scsi_transport_iscsi.c | 2 -
drivers/scsi/scsi_transport_sas.c | 1 +
drivers/scsi/sd.c | 166 +-
drivers/scsi/sd.h | 1 +
drivers/scsi/sd_dif.c | 2 +-
drivers/scsi/sg.c | 11 +-
drivers/scsi/smartpqi/smartpqi.h | 61 +-
drivers/scsi/smartpqi/smartpqi_init.c | 588 +-
drivers/scsi/smartpqi/smartpqi_sas_transport.c | 6 +-
drivers/scsi/smartpqi/smartpqi_sis.c | 60 +-
drivers/scsi/smartpqi/smartpqi_sis.h | 4 +-
drivers/scsi/snic/snic.h | 2 +-
drivers/scsi/snic/snic_attrs.c | 19 +-
drivers/scsi/snic/snic_main.c | 2 +-
drivers/scsi/snic/snic_scsi.c | 33 +-
drivers/scsi/sr.c | 13 +-
drivers/scsi/st.c | 7 +-
drivers/scsi/stex.c | 10 +-
drivers/scsi/storvsc_drv.c | 36 +-
drivers/scsi/sym53c8xx_2/sym_glue.c | 6 +-
drivers/scsi/ufs/Kconfig | 19 +-
drivers/scsi/ufs/Makefile | 1 +
drivers/scsi/ufs/ufs-debugfs.c | 98 +-
drivers/scsi/ufs/ufs-exynos.c | 366 +-
drivers/scsi/ufs/ufs-exynos.h | 27 +-
drivers/scsi/ufs/ufs-hisi.c | 6 +-
drivers/scsi/ufs/ufs-hwmon.c | 210 +
drivers/scsi/ufs/ufs-mediatek.c | 111 +-
drivers/scsi/ufs/ufs-mediatek.h | 27 +
drivers/scsi/ufs/ufs-qcom.c | 21 +-
drivers/scsi/ufs/ufs.h | 7 +
drivers/scsi/ufs/ufshcd-crypto.c | 32 +-
drivers/scsi/ufs/ufshcd-crypto.h | 9 +-
drivers/scsi/ufs/ufshcd-pci.c | 33 +-
drivers/scsi/ufs/ufshcd-pltfrm.c | 4 +-
drivers/scsi/ufs/ufshcd.c | 472 +-
drivers/scsi/ufs/ufshcd.h | 62 +-
drivers/scsi/ufs/ufshci.h | 15 +-
drivers/scsi/ufs/ufshpb.c | 318 +-
drivers/scsi/ufs/ufshpb.h | 3 -
drivers/scsi/virtio_scsi.c | 9 +-
drivers/scsi/vmw_pvscsi.c | 9 +-
drivers/scsi/wd33c93.c | 18 +-
drivers/scsi/wd719x.c | 4 +-
drivers/scsi/xen-scsifront.c | 4 +-
drivers/sh/maple/maple.c | 5 +-
drivers/soc/amlogic/meson-canvas.c | 4 +-
drivers/soc/amlogic/meson-clk-measure.c | 4 +-
drivers/soc/amlogic/meson-gx-socinfo.c | 1 +
drivers/soc/aspeed/Kconfig | 10 +
drivers/soc/aspeed/Makefile | 9 +-
drivers/soc/aspeed/aspeed-uart-routing.c | 603 +
drivers/soc/bcm/bcm63xx/bcm-pmb.c | 4 +-
drivers/soc/bcm/bcm63xx/bcm63xx-power.c | 4 +-
drivers/soc/bcm/brcmstb/biuctrl.c | 2 +
drivers/soc/fsl/Kconfig | 1 +
drivers/soc/fsl/dpaa2-console.c | 1 +
drivers/soc/fsl/dpio/dpio-cmd.h | 3 +
drivers/soc/fsl/dpio/dpio-driver.c | 1 +
drivers/soc/fsl/dpio/dpio-service.c | 121 +-
drivers/soc/fsl/dpio/dpio.c | 1 +
drivers/soc/fsl/dpio/dpio.h | 2 +
drivers/soc/fsl/dpio/qbman-portal.c | 75 +-
drivers/soc/fsl/dpio/qbman-portal.h | 13 +
drivers/soc/fsl/guts.c | 4 +-
drivers/soc/fsl/rcpm.c | 7 +-
drivers/soc/imx/Kconfig | 1 +
drivers/soc/imx/Makefile | 1 +
drivers/soc/imx/gpcv2.c | 134 +-
drivers/soc/imx/imx8m-blk-ctrl.c | 523 +
drivers/soc/mediatek/mt8192-mmsys.h | 76 +
drivers/soc/mediatek/mtk-mmsys.c | 79 +
drivers/soc/mediatek/mtk-mmsys.h | 2 +
drivers/soc/mediatek/mtk-mutex.c | 35 +
drivers/soc/mediatek/mtk-scpsys.c | 15 +-
drivers/soc/qcom/Kconfig | 19 +
drivers/soc/qcom/Makefile | 2 +
drivers/soc/qcom/apr.c | 2 +
drivers/soc/qcom/cpr.c | 4 +-
drivers/soc/qcom/llcc-qcom.c | 18 +-
drivers/soc/qcom/ocmem.c | 4 +-
drivers/soc/qcom/pdr_interface.c | 12 +-
drivers/soc/qcom/qcom-geni-se.c | 4 +-
drivers/soc/qcom/qcom_aoss.c | 165 +-
drivers/soc/qcom/qcom_gsbi.c | 4 +-
drivers/soc/qcom/qcom_stats.c | 277 +
drivers/soc/qcom/rpmh-rsc.c | 4 +-
drivers/soc/qcom/rpmhpd.c | 36 +-
drivers/soc/qcom/rpmpd.c | 24 +
drivers/soc/qcom/smd-rpm.c | 2 +
drivers/soc/qcom/smem.c | 57 +-
drivers/soc/qcom/smp2p.c | 154 +-
drivers/soc/qcom/socinfo.c | 18 +-
drivers/soc/qcom/spm.c | 279 +
drivers/soc/renesas/Kconfig | 7 +-
drivers/soc/renesas/renesas-soc.c | 7 +
drivers/soc/samsung/Kconfig | 5 +-
drivers/soc/samsung/Makefile | 3 +-
drivers/soc/samsung/exynos-chipid.c | 94 +-
drivers/soc/samsung/exynos5422-asv.c | 1 +
drivers/soc/samsung/pm_domains.c | 1 -
drivers/soc/sunxi/sunxi_sram.c | 4 +-
drivers/soc/tegra/Makefile | 1 +
drivers/soc/tegra/ari-tegra186.c | 80 +
drivers/soc/tegra/pmc.c | 28 +-
drivers/soc/ti/wkup_m3_ipc.c | 7 +-
drivers/soundwire/bus.c | 2 +-
drivers/soundwire/cadence_master.c | 36 +-
drivers/soundwire/cadence_master.h | 14 +-
drivers/soundwire/debugfs.c | 2 +-
drivers/soundwire/intel.c | 253 +-
drivers/soundwire/qcom.c | 35 +-
drivers/soundwire/stream.c | 4 +-
drivers/spi/Kconfig | 26 +-
drivers/spi/Makefile | 2 +
drivers/spi/atmel-quadspi.c | 2 +-
drivers/spi/spi-altera-dfl.c | 2 +-
drivers/spi/spi-altera-platform.c | 2 +-
drivers/spi/spi-amd.c | 113 +-
drivers/spi/spi-at91-usart.c | 27 +-
drivers/spi/spi-bcm-qspi.c | 193 +-
drivers/spi/spi-cadence-quadspi.c | 214 +
drivers/spi/spi-cadence-xspi.c | 642 +
drivers/spi/spi-fsi.c | 121 +-
drivers/spi/spi-geni-qcom.c | 254 +-
drivers/spi/spi-ingenic.c | 482 +
drivers/spi/spi-mtk-nor.c | 2 +-
drivers/spi/spi-orion.c | 1 +
drivers/spi/spi-pic32.c | 2 -
drivers/spi/spi-pl022.c | 5 +-
drivers/spi/spi-rpc-if.c | 4 +-
drivers/spi/spi-rspi.c | 1 -
drivers/spi/spi-sh-msiof.c | 1 -
drivers/spi/spi-stm32-qspi.c | 2 +-
drivers/spi/spi-tegra20-slink.c | 6 +-
drivers/spi/spi-tegra210-quad.c | 4 +-
drivers/spi/spi-tle62x0.c | 2 +-
drivers/spi/spi.c | 278 +-
drivers/ssb/pcihost_wrapper.c | 6 +-
drivers/staging/Kconfig | 2 -
drivers/staging/Makefile | 1 -
drivers/staging/axis-fifo/axis-fifo.c | 88 +-
drivers/staging/fbtft/fbtft-core.c | 11 +-
drivers/staging/fbtft/fbtft.h | 8 +-
drivers/staging/fieldbus/anybuss/host.c | 8 +-
drivers/staging/gdm724x/gdm_lte.c | 4 +-
drivers/staging/iio/cdc/ad7746.c | 4 +-
drivers/staging/iio/frequency/ad9832.c | 82 +-
drivers/staging/ks7010/Kconfig | 3 +
drivers/staging/ks7010/ks_hostif.c | 2 +-
drivers/staging/ks7010/ks_wlan_net.c | 4 +-
drivers/staging/media/atomisp/i2c/atomisp-lm3554.c | 37 +-
.../media/atomisp/i2c/ov5693/atomisp-ov5693.c | 2 +
drivers/staging/media/atomisp/pci/atomisp_csi2.c | 70 +-
drivers/staging/media/hantro/hantro_drv.c | 12 +-
drivers/staging/media/hantro/hantro_g1_h264_dec.c | 2 +-
drivers/staging/media/hantro/hantro_g1_regs.h | 2 +
drivers/staging/media/hantro/hantro_g1_vp8_dec.c | 3 +-
drivers/staging/media/hantro/hantro_g2_hevc_dec.c | 52 +
drivers/staging/media/hantro/hantro_hevc.c | 21 +
drivers/staging/media/hantro/hantro_hw.h | 4 +
drivers/staging/media/imx/TODO | 5 -
drivers/staging/media/imx/imx-media-csi.c | 23 +-
drivers/staging/media/imx/imx-media-dev-common.c | 9 +-
drivers/staging/media/imx/imx-media-dev.c | 6 +-
drivers/staging/media/imx/imx-media-of.c | 6 +-
drivers/staging/media/imx/imx6-mipi-csi2.c | 17 +-
drivers/staging/media/imx/imx7-media-csi.c | 24 +-
drivers/staging/media/imx/imx7-mipi-csis.c | 16 +-
drivers/staging/media/imx/imx8mq-mipi-csi2.c | 16 +-
.../staging/media/ipu3/include/uapi/intel-ipu3.h | 7 +-
drivers/staging/media/ipu3/ipu3-css-fw.c | 7 +-
drivers/staging/media/ipu3/ipu3-css-fw.h | 2 +-
drivers/staging/media/ipu3/ipu3-css.c | 19 +-
drivers/staging/media/ipu3/ipu3-css.h | 1 -
drivers/staging/media/ipu3/ipu3-v4l2.c | 13 +-
drivers/staging/media/ipu3/ipu3.h | 12 +
drivers/staging/media/meson/vdec/esparser.h | 6 +-
drivers/staging/media/meson/vdec/vdec.c | 7 +-
drivers/staging/media/meson/vdec/vdec.h | 16 +-
drivers/staging/media/meson/vdec/vdec_helpers.h | 3 +-
drivers/staging/media/rkvdec/rkvdec-h264.c | 5 +-
drivers/staging/media/rkvdec/rkvdec.c | 44 +-
drivers/staging/media/sunxi/cedrus/cedrus.c | 56 +-
drivers/staging/media/sunxi/cedrus/cedrus.h | 2 +
drivers/staging/media/sunxi/cedrus/cedrus_dec.c | 2 +
drivers/staging/media/sunxi/cedrus/cedrus_h264.c | 113 +-
drivers/staging/media/sunxi/cedrus/cedrus_h265.c | 100 +-
drivers/staging/media/sunxi/cedrus/cedrus_hw.c | 2 +-
drivers/staging/media/sunxi/cedrus/cedrus_regs.h | 2 +
drivers/staging/media/sunxi/cedrus/cedrus_video.c | 7 +-
drivers/staging/media/tegra-vde/dmabuf-cache.c | 3 +
drivers/staging/media/tegra-video/vi.c | 17 +-
drivers/staging/most/dim2/Makefile | 2 +-
drivers/staging/most/dim2/dim2.c | 115 +-
drivers/staging/most/dim2/sysfs.c | 49 -
drivers/staging/most/dim2/sysfs.h | 11 -
drivers/staging/most/net/net.c | 2 +-
drivers/staging/mt7621-dma/hsdma-mt7621.c | 6 +-
drivers/staging/mt7621-dts/gbpc1.dts | 3 +-
drivers/staging/mt7621-dts/gbpc2.dts | 1 +
drivers/staging/mt7621-dts/mt7621.dtsi | 74 +-
drivers/staging/mt7621-pci/Kconfig | 8 -
drivers/staging/mt7621-pci/Makefile | 2 -
drivers/staging/mt7621-pci/TODO | 4 -
drivers/staging/mt7621-pci/mediatek,mt7621-pci.txt | 104 -
drivers/staging/mt7621-pci/pci-mt7621.c | 600 -
drivers/staging/octeon/ethernet.c | 4 +-
drivers/staging/pi433/pi433_if.c | 18 +-
drivers/staging/pi433/pi433_if.h | 23 +-
drivers/staging/qlge/qlge_main.c | 30 +-
drivers/staging/qlge/qlge_mpi.c | 2 +-
drivers/staging/r8188eu/Kconfig | 10 -
drivers/staging/r8188eu/Makefile | 155 +-
drivers/staging/r8188eu/core/rtw_ap.c | 607 +-
drivers/staging/r8188eu/core/rtw_br_ext.c | 3 +-
drivers/staging/r8188eu/core/rtw_cmd.c | 620 +-
drivers/staging/r8188eu/core/rtw_debug.c | 904 -
drivers/staging/r8188eu/core/rtw_efuse.c | 582 +-
drivers/staging/r8188eu/core/rtw_ieee80211.c | 339 +-
drivers/staging/r8188eu/core/rtw_io.c | 299 -
drivers/staging/r8188eu/core/rtw_ioctl_set.c | 397 +-
drivers/staging/r8188eu/core/rtw_iol.c | 34 +-
drivers/staging/r8188eu/core/rtw_led.c | 1365 +-
drivers/staging/r8188eu/core/rtw_mlme.c | 126 +-
drivers/staging/r8188eu/core/rtw_mlme_ext.c | 386 +-
drivers/staging/r8188eu/core/rtw_mp.c | 935 -
drivers/staging/r8188eu/core/rtw_mp_ioctl.c | 1170 -
drivers/staging/r8188eu/core/rtw_p2p.c | 43 +-
drivers/staging/r8188eu/core/rtw_pwrctrl.c | 140 +-
drivers/staging/r8188eu/core/rtw_recv.c | 116 +-
drivers/staging/r8188eu/core/rtw_rf.c | 17 -
drivers/staging/r8188eu/core/rtw_security.c | 197 +-
drivers/staging/r8188eu/core/rtw_sreset.c | 62 -
drivers/staging/r8188eu/core/rtw_sta_mgt.c | 34 +-
drivers/staging/r8188eu/core/rtw_wlan_util.c | 157 +-
drivers/staging/r8188eu/core/rtw_xmit.c | 121 +-
drivers/staging/r8188eu/hal/Hal8188ERateAdaptive.c | 22 +-
drivers/staging/r8188eu/hal/HalHWImg8188E_BB.c | 32 +-
drivers/staging/r8188eu/hal/HalHWImg8188E_MAC.c | 10 +-
drivers/staging/r8188eu/hal/HalHWImg8188E_RF.c | 15 +-
drivers/staging/r8188eu/hal/HalPhyRf_8188e.c | 171 +-
drivers/staging/r8188eu/hal/hal_com.c | 26 +-
drivers/staging/r8188eu/hal/hal_intf.c | 391 +-
drivers/staging/r8188eu/hal/odm.c | 1188 +-
drivers/staging/r8188eu/hal/odm_HWConfig.c | 393 +-
drivers/staging/r8188eu/hal/odm_RTL8188E.c | 31 +-
drivers/staging/r8188eu/hal/odm_RegConfig8188E.c | 8 -
drivers/staging/r8188eu/hal/odm_interface.c | 85 -
drivers/staging/r8188eu/hal/rtl8188e_cmd.c | 48 +-
drivers/staging/r8188eu/hal/rtl8188e_dm.c | 93 +-
drivers/staging/r8188eu/hal/rtl8188e_hal_init.c | 310 +-
drivers/staging/r8188eu/hal/rtl8188e_mp.c | 798 -
drivers/staging/r8188eu/hal/rtl8188e_phycfg.c | 215 +-
drivers/staging/r8188eu/hal/rtl8188e_rf6052.c | 226 +-
drivers/staging/r8188eu/hal/rtl8188e_rxdesc.c | 2 +-
drivers/staging/r8188eu/hal/rtl8188e_sreset.c | 27 -
drivers/staging/r8188eu/hal/rtl8188eu_recv.c | 4 +-
drivers/staging/r8188eu/hal/rtl8188eu_xmit.c | 60 +-
drivers/staging/r8188eu/hal/usb_halinit.c | 328 +-
drivers/staging/r8188eu/hal/usb_ops_linux.c | 256 +-
drivers/staging/r8188eu/include/Hal8188EPhyCfg.h | 91 -
.../staging/r8188eu/include/Hal8188ERateAdaptive.h | 2 -
drivers/staging/r8188eu/include/HalHWImg8188E_FW.h | 16 -
drivers/staging/r8188eu/include/HalVerDef.h | 70 -
drivers/staging/r8188eu/include/drv_types.h | 37 +-
drivers/staging/r8188eu/include/hal_intf.h | 312 +-
drivers/staging/r8188eu/include/ieee80211.h | 77 +-
drivers/staging/r8188eu/include/ioctl_cfg80211.h | 2 -
drivers/staging/r8188eu/include/mp_custom_oid.h | 333 -
drivers/staging/r8188eu/include/odm.h | 457 +-
drivers/staging/r8188eu/include/odm_HWConfig.h | 11 +-
drivers/staging/r8188eu/include/odm_RTL8188E.h | 2 -
.../staging/r8188eu/include/odm_RegConfig8188E.h | 3 -
.../staging/r8188eu/include/odm_RegDefine11AC.h | 29 -
drivers/staging/r8188eu/include/odm_RegDefine11N.h | 112 +-
drivers/staging/r8188eu/include/odm_interface.h | 88 -
drivers/staging/r8188eu/include/odm_precomp.h | 22 -
drivers/staging/r8188eu/include/odm_reg.h | 89 -
drivers/staging/r8188eu/include/odm_types.h | 24 -
drivers/staging/r8188eu/include/osdep_intf.h | 5 -
drivers/staging/r8188eu/include/osdep_service.h | 44 +-
drivers/staging/r8188eu/include/recv_osdep.h | 2 -
drivers/staging/r8188eu/include/rtl8188e_cmd.h | 16 -
drivers/staging/r8188eu/include/rtl8188e_dm.h | 13 -
drivers/staging/r8188eu/include/rtl8188e_hal.h | 102 +-
drivers/staging/r8188eu/include/rtl8188e_led.h | 2 -
drivers/staging/r8188eu/include/rtl8188e_recv.h | 2 +-
drivers/staging/r8188eu/include/rtl8188e_rf.h | 1 -
drivers/staging/r8188eu/include/rtl8188e_spec.h | 4 -
drivers/staging/r8188eu/include/rtl8188e_sreset.h | 2 -
drivers/staging/r8188eu/include/rtw_ap.h | 11 -
drivers/staging/r8188eu/include/rtw_br_ext.h | 3 +-
drivers/staging/r8188eu/include/rtw_cmd.h | 27 +-
drivers/staging/r8188eu/include/rtw_debug.h | 156 -
drivers/staging/r8188eu/include/rtw_eeprom.h | 57 +-
drivers/staging/r8188eu/include/rtw_efuse.h | 21 -
drivers/staging/r8188eu/include/rtw_io.h | 87 +-
drivers/staging/r8188eu/include/rtw_ioctl_rtl.h | 63 -
drivers/staging/r8188eu/include/rtw_ioctl_set.h | 8 -
drivers/staging/r8188eu/include/rtw_iol.h | 5 -
drivers/staging/r8188eu/include/rtw_led.h | 20 -
drivers/staging/r8188eu/include/rtw_mlme.h | 11 -
drivers/staging/r8188eu/include/rtw_mlme_ext.h | 14 -
drivers/staging/r8188eu/include/rtw_mp.h | 474 -
drivers/staging/r8188eu/include/rtw_mp_ioctl.h | 242 -
.../staging/r8188eu/include/rtw_mp_phy_regdef.h | 1063 -
drivers/staging/r8188eu/include/rtw_p2p.h | 1 -
drivers/staging/r8188eu/include/rtw_pwrctrl.h | 130 +-
drivers/staging/r8188eu/include/rtw_recv.h | 6 -
drivers/staging/r8188eu/include/rtw_rf.h | 12 -
drivers/staging/r8188eu/include/rtw_security.h | 20 +-
drivers/staging/r8188eu/include/rtw_sreset.h | 34 -
drivers/staging/r8188eu/include/rtw_xmit.h | 6 -
drivers/staging/r8188eu/include/sta_info.h | 7 -
drivers/staging/r8188eu/include/usb_ops.h | 5 -
drivers/staging/r8188eu/include/usb_ops_linux.h | 8 -
drivers/staging/r8188eu/include/usb_osintf.h | 5 +-
drivers/staging/r8188eu/include/wifi.h | 52 -
drivers/staging/r8188eu/include/xmit_osdep.h | 2 -
drivers/staging/r8188eu/os_dep/ioctl_linux.c | 2331 +-
drivers/staging/r8188eu/os_dep/mlme_linux.c | 6 -
drivers/staging/r8188eu/os_dep/os_intfs.c | 399 +-
drivers/staging/r8188eu/os_dep/osdep_service.c | 82 +-
drivers/staging/r8188eu/os_dep/recv_linux.c | 14 -
drivers/staging/r8188eu/os_dep/usb_intf.c | 285 +-
drivers/staging/r8188eu/os_dep/usb_ops_linux.c | 40 +-
drivers/staging/r8188eu/os_dep/xmit_linux.c | 4 -
drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 7 +-
drivers/staging/rtl8192e/rtl8192e/rtl_cam.c | 4 +-
drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +-
drivers/staging/rtl8192e/rtl819x_BAProc.c | 9 +-
drivers/staging/rtl8192u/r8192U.h | 3 +-
drivers/staging/rtl8192u/r8192U_core.c | 36 +-
drivers/staging/rtl8712/ieee80211.h | 4 +-
drivers/staging/rtl8712/os_intfs.c | 9 +-
drivers/staging/rtl8712/osdep_service.h | 1 -
drivers/staging/rtl8712/rtl8712_cmd.c | 2 +-
drivers/staging/rtl8712/rtl871x_cmd.c | 2 +-
drivers/staging/rtl8712/rtl871x_cmd.h | 2 +-
drivers/staging/rtl8712/rtl871x_xmit.h | 10 +-
drivers/staging/rtl8712/usb_intf.c | 6 +-
drivers/staging/rtl8712/usb_ops_linux.c | 2 +-
drivers/staging/rtl8723bs/Kconfig | 1 +
drivers/staging/rtl8723bs/core/rtw_ap.c | 23 +-
drivers/staging/rtl8723bs/core/rtw_cmd.c | 212 +-
drivers/staging/rtl8723bs/core/rtw_ioctl_set.c | 4 +-
drivers/staging/rtl8723bs/core/rtw_mlme.c | 24 +-
drivers/staging/rtl8723bs/core/rtw_mlme_ext.c | 79 +-
drivers/staging/rtl8723bs/core/rtw_recv.c | 22 +-
drivers/staging/rtl8723bs/core/rtw_security.c | 6 +-
drivers/staging/rtl8723bs/core/rtw_sta_mgt.c | 48 +-
drivers/staging/rtl8723bs/core/rtw_xmit.c | 51 +-
drivers/staging/rtl8723bs/hal/odm_DIG.c | 2 +-
drivers/staging/rtl8723bs/hal/rtl8723b_hal_init.c | 12 -
drivers/staging/rtl8723bs/hal/rtl8723bs_recv.c | 6 +-
drivers/staging/rtl8723bs/hal/rtl8723bs_xmit.c | 4 +-
drivers/staging/rtl8723bs/include/ieee80211.h | 6 +-
drivers/staging/rtl8723bs/include/osdep_service.h | 2 +-
.../rtl8723bs/include/osdep_service_linux.h | 2 -
drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c | 26 +-
drivers/staging/rtl8723bs/os_dep/ioctl_linux.c | 34 +-
drivers/staging/rtl8723bs/os_dep/os_intfs.c | 8 +-
drivers/staging/rtl8723bs/os_dep/osdep_service.c | 11 +-
drivers/staging/rts5208/ms.c | 42 +-
drivers/staging/rts5208/rtsx.c | 11 +-
drivers/staging/rts5208/rtsx_card.c | 8 +-
drivers/staging/rts5208/rtsx_chip.c | 16 +-
drivers/staging/rts5208/rtsx_scsi.c | 106 +-
drivers/staging/rts5208/rtsx_transport.c | 6 +-
drivers/staging/rts5208/sd.c | 68 +-
drivers/staging/rts5208/xd.c | 48 +-
drivers/staging/unisys/visorhba/visorhba_main.c | 20 +-
drivers/staging/unisys/visornic/visornic_main.c | 5 +-
.../vc04_services/interface/vchiq_arm/vchiq_arm.c | 298 +-
.../vc04_services/interface/vchiq_arm/vchiq_arm.h | 52 -
.../interface/vchiq_arm/vchiq_connected.c | 20 +-
.../interface/vchiq_arm/vchiq_connected.h | 4 +-
.../vc04_services/interface/vchiq_arm/vchiq_core.c | 771 +-
.../vc04_services/interface/vchiq_arm/vchiq_core.h | 107 +-
.../vc04_services/interface/vchiq_arm/vchiq_dev.c | 182 +-
drivers/staging/vt6655/baseband.c | 74 +-
drivers/staging/vt6655/baseband.h | 2 +-
drivers/staging/vt6655/card.c | 98 +-
drivers/staging/vt6655/channel.c | 12 +-
drivers/staging/vt6655/device.h | 10 +-
drivers/staging/vt6655/device_main.c | 162 +-
drivers/staging/vt6655/dpc.c | 2 +-
drivers/staging/vt6655/key.c | 2 +-
drivers/staging/vt6655/mac.c | 50 +-
drivers/staging/vt6655/mac.h | 6 +-
drivers/staging/vt6655/power.c | 24 +-
drivers/staging/vt6655/rf.c | 140 +-
drivers/staging/vt6655/rf.h | 2 +-
drivers/staging/vt6655/rxtx.c | 64 +-
drivers/staging/wfx/bh.c | 37 +-
drivers/staging/wfx/bh.h | 4 +-
drivers/staging/wfx/bus_sdio.c | 25 +-
drivers/staging/wfx/bus_spi.c | 22 +-
drivers/staging/wfx/data_rx.c | 7 +-
drivers/staging/wfx/data_rx.h | 4 +-
drivers/staging/wfx/data_tx.c | 87 +-
drivers/staging/wfx/data_tx.h | 6 +-
drivers/staging/wfx/debug.c | 56 +-
drivers/staging/wfx/debug.h | 2 +-
drivers/staging/wfx/fwio.c | 26 +-
drivers/staging/wfx/fwio.h | 2 +-
drivers/staging/wfx/hif_api_cmd.h | 14 +-
drivers/staging/wfx/hif_api_general.h | 25 +-
drivers/staging/wfx/hif_api_mib.h | 85 +-
drivers/staging/wfx/hif_rx.c | 23 +-
drivers/staging/wfx/hif_rx.h | 3 +-
drivers/staging/wfx/hif_tx.c | 60 +-
drivers/staging/wfx/hif_tx.h | 6 +-
drivers/staging/wfx/hif_tx_mib.c | 14 +-
drivers/staging/wfx/hif_tx_mib.h | 2 +-
drivers/staging/wfx/hwio.c | 6 +-
drivers/staging/wfx/hwio.h | 20 +-
drivers/staging/wfx/key.c | 30 +-
drivers/staging/wfx/key.h | 4 +-
drivers/staging/wfx/main.c | 37 +-
drivers/staging/wfx/main.h | 3 +-
drivers/staging/wfx/queue.c | 43 +-
drivers/staging/wfx/queue.h | 6 +-
drivers/staging/wfx/scan.c | 51 +-
drivers/staging/wfx/scan.h | 4 +-
drivers/staging/wfx/sta.c | 118 +-
drivers/staging/wfx/sta.h | 8 +-
drivers/staging/wfx/traces.h | 2 +-
drivers/staging/wfx/wfx.h | 14 +-
drivers/staging/wlan-ng/hfa384x.h | 2 +-
drivers/staging/wlan-ng/hfa384x_usb.c | 24 +-
drivers/staging/wlan-ng/p80211conv.c | 2 +-
drivers/staging/wlan-ng/p80211conv.h | 2 +-
drivers/staging/wlan-ng/p80211hdr.h | 2 +-
drivers/staging/wlan-ng/p80211ioctl.h | 2 +-
drivers/staging/wlan-ng/p80211mgmt.h | 2 +-
drivers/staging/wlan-ng/p80211msg.h | 2 +-
drivers/staging/wlan-ng/p80211netdev.c | 4 +-
drivers/staging/wlan-ng/p80211netdev.h | 2 +-
drivers/staging/wlan-ng/p80211req.c | 2 +-
drivers/staging/wlan-ng/p80211req.h | 2 +-
drivers/staging/wlan-ng/p80211types.h | 2 +-
drivers/staging/wlan-ng/p80211wep.c | 2 +-
drivers/staging/wlan-ng/prism2mgmt.c | 2 +-
drivers/staging/wlan-ng/prism2mgmt.h | 2 +-
drivers/staging/wlan-ng/prism2mib.c | 2 +-
drivers/staging/wlan-ng/prism2sta.c | 6 +-
drivers/staging/wlan-ng/prism2usb.c | 3 +-
drivers/target/iscsi/cxgbit/cxgbit_cm.c | 8 +-
drivers/target/iscsi/cxgbit/cxgbit_main.c | 17 +-
drivers/target/iscsi/cxgbit/cxgbit_target.c | 28 +-
drivers/target/iscsi/iscsi_target_configfs.c | 91 +-
drivers/target/loopback/tcm_loop.c | 4 +-
drivers/target/sbp/sbp_target.c | 30 +-
drivers/target/target_core_alua.c | 83 +-
drivers/target/target_core_configfs.c | 1 +
drivers/target/target_core_device.c | 2 +
drivers/target/target_core_fabric_configfs.c | 78 +-
drivers/target/target_core_file.c | 5 +-
drivers/target/target_core_iblock.c | 10 +-
drivers/target/target_core_internal.h | 1 +
drivers/target/target_core_pscsi.c | 7 +-
drivers/target/target_core_tmr.c | 17 +-
drivers/target/target_core_transport.c | 124 +-
drivers/target/target_core_user.c | 7 +-
drivers/target/target_core_xcopy.c | 14 +-
drivers/tee/optee/Makefile | 5 +-
drivers/tee/optee/call.c | 445 +-
drivers/tee/optee/core.c | 719 +-
drivers/tee/optee/ffa_abi.c | 911 +
drivers/tee/optee/optee_ffa.h | 153 +
drivers/tee/optee/optee_msg.h | 27 +-
drivers/tee/optee/optee_private.h | 157 +-
drivers/tee/optee/rpc.c | 237 +-
drivers/tee/optee/shm_pool.c | 101 -
drivers/tee/optee/shm_pool.h | 14 -
drivers/tee/optee/smc_abi.c | 1362 +
drivers/tee/tee_shm.c | 3 +
drivers/thermal/gov_user_space.c | 9 +
.../intel/int340x_thermal/int3400_thermal.c | 9 +-
.../intel/int340x_thermal/int3401_thermal.c | 8 +-
.../int340x_thermal/processor_thermal_device.c | 36 +-
.../int340x_thermal/processor_thermal_device.h | 3 +-
.../int340x_thermal/processor_thermal_device_pci.c | 18 +-
.../processor_thermal_device_pci_legacy.c | 8 +-
.../intel/int340x_thermal/processor_thermal_mbox.c | 23 +-
.../intel/int340x_thermal/processor_thermal_rfim.c | 10 +-
drivers/thermal/intel/intel_powerclamp.c | 8 +-
drivers/thermal/qcom/Kconfig | 2 +-
drivers/thermal/qcom/qcom-spmi-adc-tm5.c | 41 +-
drivers/thermal/qcom/tsens.c | 29 +-
drivers/thermal/rcar_gen3_thermal.c | 113 +-
drivers/thermal/rockchip_thermal.c | 2 +-
drivers/thermal/thermal_core.c | 22 +-
drivers/thermal/thermal_mmio.c | 2 +-
drivers/thermal/thermal_netlink.c | 11 +-
drivers/thermal/thermal_netlink.h | 8 +-
drivers/thermal/thermal_of.c | 9 +-
drivers/thermal/thermal_sysfs.c | 3 +
drivers/thermal/uniphier_thermal.c | 4 +
drivers/thunderbolt/ctl.c | 2 +-
drivers/thunderbolt/xdomain.c | 2 +-
drivers/tty/Kconfig | 12 +
drivers/tty/Makefile | 1 +
drivers/tty/hvc/hvc_console.c | 2 +-
drivers/tty/moxa.c | 302 +-
drivers/tty/moxa.h | 307 -
drivers/tty/mxser.c | 119 +-
drivers/tty/n_gsm.c | 116 +-
drivers/tty/n_hdlc.c | 2 +-
drivers/tty/n_tty.c | 3 +-
drivers/tty/rpmsg_tty.c | 275 +
drivers/tty/serial/8250/8250_dw.c | 28 +-
drivers/tty/serial/8250/8250_dwlib.c | 10 +
drivers/tty/serial/8250/8250_dwlib.h | 1 +
drivers/tty/serial/8250/8250_fsl.c | 8 +-
drivers/tty/serial/8250/8250_lpss.c | 9 +-
drivers/tty/serial/8250/8250_pci.c | 143 +-
drivers/tty/serial/8250/8250_pnp.c | 4 -
drivers/tty/serial/8250/8250_port.c | 31 +-
drivers/tty/serial/8250/Kconfig | 2 +-
drivers/tty/serial/Kconfig | 9 +-
drivers/tty/serial/atmel_serial.c | 4 +-
drivers/tty/serial/cpm_uart/cpm_uart_core.c | 2 +
drivers/tty/serial/imx.c | 16 +-
drivers/tty/serial/max310x.c | 7 +-
drivers/tty/serial/msm_serial.c | 15 +-
drivers/tty/serial/samsung_tty.c | 13 +-
drivers/tty/serial/sc16is7xx.c | 12 +-
drivers/tty/serial/serial_core.c | 16 +-
drivers/tty/serial/sifive.c | 2 +-
drivers/tty/serial/stm32-usart.c | 388 +-
drivers/tty/serial/stm32-usart.h | 13 +-
drivers/tty/serial/sunzilog.c | 2 +-
drivers/tty/serial/uartlite.c | 91 +-
drivers/tty/serial/xilinx_uartps.c | 3 +-
drivers/tty/sysrq.c | 4 +-
drivers/tty/tty_baudrate.c | 2 +-
drivers/tty/tty_buffer.c | 3 +
drivers/tty/tty_ioctl.c | 12 +-
drivers/uio/uio_hv_generic.c | 18 +-
drivers/usb/atm/usbatm.c | 4 +-
drivers/usb/chipidea/core.c | 23 +-
drivers/usb/chipidea/udc.c | 8 +
drivers/usb/class/cdc-acm.c | 1 -
drivers/usb/class/cdc-wdm.c | 2 +-
drivers/usb/core/config.c | 4 +-
drivers/usb/core/devio.c | 144 +-
drivers/usb/core/hcd.c | 35 +-
drivers/usb/dwc2/core.h | 19 +-
drivers/usb/dwc2/debugfs.c | 4 +-
drivers/usb/dwc2/drd.c | 24 +-
drivers/usb/dwc2/gadget.c | 1 +
drivers/usb/dwc2/hcd.c | 12 +-
drivers/usb/dwc2/params.c | 75 +-
drivers/usb/dwc3/Kconfig | 7 +-
drivers/usb/dwc3/core.c | 29 +
drivers/usb/dwc3/core.h | 25 +-
drivers/usb/dwc3/gadget.c | 14 +-
drivers/usb/early/xhci-dbc.c | 10 +-
drivers/usb/gadget/configfs.c | 26 +-
drivers/usb/gadget/epautoconf.c | 2 +-
drivers/usb/gadget/function/f_fs.c | 2 +-
drivers/usb/gadget/function/f_mass_storage.c | 97 +-
drivers/usb/gadget/function/f_phonet.c | 5 +-
drivers/usb/gadget/function/f_tcm.c | 31 +-
drivers/usb/gadget/function/f_uac1.c | 1 +
drivers/usb/gadget/function/f_uac2.c | 24 +-
drivers/usb/gadget/function/f_uvc.c | 8 +-
drivers/usb/gadget/function/u_audio.c | 96 +-
drivers/usb/gadget/function/u_audio.h | 10 +-
drivers/usb/gadget/function/u_ether.c | 4 +-
drivers/usb/gadget/function/u_uac2.h | 1 -
drivers/usb/gadget/function/uvc.h | 6 +-
drivers/usb/gadget/function/uvc_queue.c | 2 +-
drivers/usb/gadget/function/uvc_v4l2.c | 52 +-
drivers/usb/gadget/function/uvc_video.c | 71 +-
drivers/usb/gadget/function/uvc_video.h | 2 -
drivers/usb/gadget/legacy/hid.c | 4 +-
drivers/usb/gadget/legacy/inode.c | 7 +-
drivers/usb/gadget/udc/Kconfig | 1 +
drivers/usb/gadget/udc/amd5536udc.h | 1 -
drivers/usb/gadget/udc/core.c | 10 +-
drivers/usb/gadget/udc/goku_udc.c | 6 +-
drivers/usb/gadget/udc/pxa25x_udc.c | 2 +-
drivers/usb/gadget/udc/snps_udc_plat.c | 5 -
drivers/usb/gadget/udc/udc-xilinx.c | 25 +
drivers/usb/host/Kconfig | 6 +-
drivers/usb/host/ehci-atmel.c | 8 +
drivers/usb/host/ehci-hcd.c | 13 +-
drivers/usb/host/ehci-hub.c | 11 +-
drivers/usb/host/ehci-mem.c | 3 +-
drivers/usb/host/ehci-mv.c | 2 -
drivers/usb/host/ehci-platform.c | 6 +
drivers/usb/host/ehci.h | 1 +
drivers/usb/host/fotg210-hcd.c | 5 +-
drivers/usb/host/max3421-hcd.c | 25 +-
drivers/usb/host/ohci-hcd.c | 3 +-
drivers/usb/host/ohci-hub.c | 3 +
drivers/usb/host/ohci-tmio.c | 2 +-
drivers/usb/host/oxu210hp-hcd.c | 2 +-
drivers/usb/host/xhci-hub.c | 3 +-
drivers/usb/host/xhci-mtk-sch.c | 2 +-
drivers/usb/host/xhci-mtk.c | 2 +-
drivers/usb/host/xhci-pci.c | 18 +-
drivers/usb/host/xhci.c | 1 -
drivers/usb/image/microtek.c | 5 +-
drivers/usb/misc/iowarrior.c | 8 +-
drivers/usb/mtu3/mtu3_plat.c | 2 +-
drivers/usb/musb/Kconfig | 2 +-
drivers/usb/musb/mediatek.c | 1 +
drivers/usb/musb/musb_gadget.c | 4 +-
drivers/usb/musb/sunxi.c | 8 +
drivers/usb/musb/tusb6010.c | 5 +
drivers/usb/phy/phy-tahvo.c | 4 -
drivers/usb/phy/phy-tegra-usb.c | 198 +-
drivers/usb/serial/ch341.c | 85 +-
drivers/usb/serial/cp210x.c | 109 +-
drivers/usb/serial/f81232.c | 96 +-
drivers/usb/serial/ftdi_sio.c | 53 +-
drivers/usb/serial/keyspan.c | 15 +-
drivers/usb/serial/keyspan_pda.c | 67 +-
drivers/usb/serial/kl5kusb105.c | 115 +-
drivers/usb/serial/usb-serial.c | 59 +-
drivers/usb/storage/scsiglue.c | 13 +-
drivers/usb/storage/uas.c | 13 +-
drivers/usb/storage/unusual_devs.h | 10 +
drivers/usb/storage/usb.c | 4 +-
drivers/usb/typec/Kconfig | 4 +-
drivers/usb/typec/altmodes/Kconfig | 1 +
drivers/usb/typec/altmodes/displayport.c | 58 +-
drivers/usb/typec/hd3ss3220.c | 8 +-
drivers/usb/typec/tcpm/tcpci.c | 2 +-
drivers/usb/typec/tipd/core.c | 223 +-
drivers/usb/typec/tipd/tps6598x.h | 12 +
drivers/usb/typec/tipd/trace.h | 23 +
drivers/usb/typec/ucsi/ucsi.c | 337 +-
drivers/usb/typec/ucsi/ucsi.h | 3 +-
drivers/usb/typec/ucsi/ucsi_acpi.c | 2 +-
drivers/usb/usb-skeleton.c | 2 +-
drivers/vdpa/Kconfig | 8 +
drivers/vdpa/Makefile | 1 +
drivers/vdpa/alibaba/Makefile | 3 +
drivers/vdpa/alibaba/eni_vdpa.c | 553 +
drivers/vdpa/ifcvf/ifcvf_main.c | 3 +-
drivers/vdpa/mlx5/core/mlx5_vdpa.h | 10 +-
drivers/vdpa/mlx5/core/mr.c | 8 +-
drivers/vdpa/mlx5/core/resources.c | 13 +-
drivers/vdpa/mlx5/net/mlx5_vnet.c | 204 +-
drivers/vdpa/vdpa.c | 261 +-
drivers/vdpa/vdpa_sim/vdpa_sim_blk.c | 3 +-
drivers/vdpa/vdpa_sim/vdpa_sim_net.c | 38 +-
drivers/vdpa/vdpa_user/vduse_dev.c | 32 +-
drivers/vdpa/virtio_pci/vp_vdpa.c | 12 +
drivers/vfio/fsl-mc/vfio_fsl_mc.c | 62 +-
drivers/vfio/mdev/mdev_driver.c | 45 +-
drivers/vfio/mdev/vfio_mdev.c | 2 +-
drivers/vfio/pci/vfio_pci_core.c | 13 +-
drivers/vfio/pci/vfio_pci_igd.c | 234 +-
drivers/vfio/platform/vfio_platform_common.c | 13 +-
drivers/vfio/vfio.c | 622 +-
drivers/vfio/vfio.h | 72 +
drivers/vfio/vfio_iommu_spapr_tce.c | 6 +-
drivers/vfio/vfio_iommu_type1.c | 256 +-
drivers/vhost/vdpa.c | 3 +-
drivers/video/backlight/backlight.c | 28 +-
drivers/video/backlight/ili9320.c | 3 +-
drivers/video/backlight/ili9320.h | 2 +-
drivers/video/backlight/vgg2432a4.c | 4 +-
drivers/video/fbdev/chipsfb.c | 2 +-
drivers/video/fbdev/core/bitblit.c | 16 -
drivers/video/fbdev/core/fbcon.c | 509 +-
drivers/video/fbdev/core/fbcon.h | 59 -
drivers/video/fbdev/core/fbcon_ccw.c | 28 +-
drivers/video/fbdev/core/fbcon_cw.c | 28 +-
drivers/video/fbdev/core/fbcon_rotate.h | 9 -
drivers/video/fbdev/core/fbcon_ud.c | 37 +-
drivers/video/fbdev/core/fbmem.c | 5 +-
drivers/video/fbdev/core/tileblit.c | 16 -
drivers/video/fbdev/efifb.c | 21 +-
drivers/video/fbdev/skeletonfb.c | 12 +-
drivers/virt/acrn/hsm.c | 49 +
drivers/virt/acrn/hypercall.h | 52 +
drivers/virt/nitro_enclaves/Kconfig | 8 +-
drivers/virt/nitro_enclaves/ne_misc_dev.c | 17 +-
drivers/virt/nitro_enclaves/ne_pci_dev.c | 2 +-
drivers/virt/nitro_enclaves/ne_pci_dev.h | 8 +-
drivers/virtio/Kconfig | 13 +-
drivers/virtio/Makefile | 1 +
drivers/virtio/virtio_dma_buf.c | 1 +
drivers/virtio/virtio_mem.c | 302 +-
drivers/virtio/virtio_pci_common.c | 58 +-
drivers/virtio/virtio_pci_common.h | 16 +-
drivers/virtio/virtio_pci_legacy.c | 106 +-
drivers/virtio/virtio_pci_legacy_dev.c | 220 +
drivers/virtio/virtio_pci_modern.c | 6 +-
drivers/virtio/virtio_ring.c | 92 +-
drivers/virtio/virtio_vdpa.c | 19 +-
drivers/watchdog/Kconfig | 35 +-
drivers/watchdog/Makefile | 3 +-
drivers/watchdog/ar7_wdt.c | 6 +-
drivers/watchdog/bcm63xx_wdt.c | 2 +
drivers/watchdog/da9062_wdt.c | 7 +
drivers/watchdog/da9063_wdt.c | 7 +
drivers/watchdog/db8500_wdt.c | 152 +
drivers/watchdog/f71808e_wdt.c | 615 +-
drivers/watchdog/iTCO_wdt.c | 31 +-
drivers/watchdog/iop_wdt.c | 250 -
drivers/watchdog/ixp4xx_wdt.c | 2 +-
drivers/watchdog/meson_gxbb_wdt.c | 12 +
drivers/watchdog/mlx_wdt.c | 5 +-
drivers/watchdog/mtk_wdt.c | 13 +-
drivers/watchdog/omap_wdt.c | 6 +-
drivers/watchdog/rti_wdt.c | 4 +-
drivers/watchdog/rza_wdt.c | 4 +-
drivers/watchdog/sbsa_gwdt.c | 5 +-
drivers/watchdog/sp5100_tco.c | 9 +
drivers/watchdog/stm32_iwdg.c | 4 +-
drivers/watchdog/sunxi_wdt.c | 20 +-
drivers/watchdog/ux500_wdt.c | 161 -
drivers/xen/Kconfig | 24 +
drivers/xen/Makefile | 2 +-
drivers/xen/balloon.c | 113 +-
drivers/xen/gntdev-dmabuf.c | 3 +
drivers/xen/mem-reservation.c | 27 +-
drivers/xen/pci.c | 76 +
drivers/xen/pvcalls-back.c | 1 -
drivers/xen/swiotlb-xen.c | 4 +-
drivers/xen/xen-acpi-processor.c | 6 +-
drivers/xen/xen-pciback/Makefile | 7 +
drivers/xen/xen-pciback/conf_space_capability.c | 2 +-
drivers/xen/xen-pciback/conf_space_header.c | 8 +-
drivers/xen/xen-pciback/pci_stub.c | 3 +-
drivers/xen/xen-pciback/pciback.h | 5 +
drivers/xen/xen-pciback/xenbus.c | 8 +-
fs/9p/Kconfig | 1 +
fs/9p/acl.c | 11 +-
fs/9p/acl.h | 27 +-
fs/9p/cache.c | 141 +-
fs/9p/cache.h | 97 +-
fs/9p/fid.c | 3 +-
fs/9p/v9fs.c | 22 +-
fs/9p/v9fs.h | 17 +-
fs/9p/v9fs_vfs.h | 11 +-
fs/9p/vfs_addr.c | 266 +-
fs/9p/vfs_dentry.c | 4 +-
fs/9p/vfs_dir.c | 6 +-
fs/9p/vfs_file.c | 32 +-
fs/9p/vfs_inode.c | 29 +-
fs/9p/vfs_inode_dotl.c | 11 +-
fs/9p/vfs_super.c | 14 +-
fs/9p/xattr.c | 10 +-
fs/9p/xattr.h | 29 +-
fs/affs/super.c | 2 +-
fs/afs/dir.c | 229 +-
fs/afs/dir_edit.c | 154 +-
fs/afs/file.c | 82 +-
fs/afs/inode.c | 6 +-
fs/afs/internal.h | 49 +-
fs/afs/write.c | 354 +-
fs/afs/yfsclient.c | 32 +-
fs/aio.c | 9 +-
fs/anon_inodes.c | 29 +
fs/autofs/waitq.c | 2 +-
fs/binfmt_elf.c | 37 +-
fs/binfmt_elf_fdpic.c | 2 +-
fs/btrfs/block-group.c | 242 +-
fs/btrfs/block-group.h | 8 +-
fs/btrfs/btrfs_inode.h | 46 +-
fs/btrfs/check-integrity.c | 205 +-
fs/btrfs/compression.c | 685 +-
fs/btrfs/compression.h | 4 +-
fs/btrfs/ctree.c | 157 +-
fs/btrfs/ctree.h | 84 +-
fs/btrfs/delayed-inode.c | 41 +-
fs/btrfs/delayed-ref.c | 17 +-
fs/btrfs/delayed-ref.h | 51 +-
fs/btrfs/dev-replace.c | 19 +-
fs/btrfs/disk-io.c | 53 +-
fs/btrfs/disk-io.h | 5 +-
fs/btrfs/extent-tree.c | 326 +-
fs/btrfs/extent_io.c | 334 +-
fs/btrfs/extent_io.h | 10 +-
fs/btrfs/extent_map.c | 4 +-
fs/btrfs/file-item.c | 21 +-
fs/btrfs/file.c | 177 +-
fs/btrfs/free-space-cache.c | 24 +-
fs/btrfs/inode.c | 623 +-
fs/btrfs/ioctl.c | 1013 +-
fs/btrfs/locking.h | 7 +-
fs/btrfs/lzo.c | 301 +-
fs/btrfs/raid56.c | 175 +-
fs/btrfs/raid56.h | 22 +-
fs/btrfs/reada.c | 26 +-
fs/btrfs/ref-verify.c | 4 +-
fs/btrfs/reflink.c | 4 +-
fs/btrfs/relocation.c | 81 +-
fs/btrfs/root-tree.c | 6 +-
fs/btrfs/scrub.c | 139 +-
fs/btrfs/send.c | 38 +-
fs/btrfs/send.h | 7 +
fs/btrfs/space-info.c | 28 +-
fs/btrfs/subpage.c | 290 +-
fs/btrfs/subpage.h | 56 +-
fs/btrfs/super.c | 28 +-
fs/btrfs/sysfs.c | 93 +-
fs/btrfs/tests/extent-buffer-tests.c | 2 +-
fs/btrfs/tests/extent-io-tests.c | 12 +-
fs/btrfs/tests/inode-tests.c | 4 +-
fs/btrfs/transaction.c | 11 +-
fs/btrfs/tree-log.c | 745 +-
fs/btrfs/tree-log.h | 18 +-
fs/btrfs/volumes.c | 602 +-
fs/btrfs/volumes.h | 119 +-
fs/btrfs/xattr.c | 2 +-
fs/btrfs/zlib.c | 36 +-
fs/btrfs/zoned.c | 531 +-
fs/btrfs/zoned.h | 39 +-
fs/btrfs/zstd.c | 95 +-
fs/buffer.c | 4 +-
fs/cachefiles/io.c | 12 +-
fs/cachefiles/rdwr.c | 16 +-
fs/ceph/addr.c | 109 +-
fs/ceph/cache.c | 23 +-
fs/ceph/caps.c | 163 +-
fs/ceph/debugfs.c | 167 +-
fs/ceph/export.c | 12 +-
fs/ceph/file.c | 106 +-
fs/ceph/inode.c | 56 +-
fs/ceph/locks.c | 9 +-
fs/ceph/mds_client.c | 154 +-
fs/ceph/mdsmap.c | 4 -
fs/ceph/metric.c | 128 +-
fs/ceph/metric.h | 88 +-
fs/ceph/super.c | 34 +-
fs/ceph/super.h | 21 +-
fs/ceph/xattr.c | 3 +-
fs/cifs/cifs_debug.c | 7 +-
fs/cifs/cifs_dfs_ref.c | 59 +-
fs/cifs/cifs_fs_sb.h | 5 -
fs/cifs/cifsfs.c | 1 -
fs/cifs/cifsglob.h | 50 +-
fs/cifs/cifsproto.h | 10 +-
fs/cifs/connect.c | 1494 +-
fs/cifs/dfs_cache.c | 46 +-
fs/cifs/file.c | 39 +-
fs/cifs/fs_context.c | 52 +-
fs/cifs/fs_context.h | 3 +
fs/cifs/fscache.c | 8 +
fs/cifs/misc.c | 66 +-
fs/cifs/ntlmssp.h | 4 +-
fs/cifs/sess.c | 240 +-
fs/cifs/smb2inode.c | 22 +-
fs/cifs/smb2maperror.c | 16 +-
fs/cifs/smb2misc.c | 47 +-
fs/cifs/smb2ops.c | 83 +-
fs/cifs/smb2pdu.c | 239 +-
fs/cifs/smb2pdu.h | 919 +-
fs/cifs/smb2proto.h | 2 +-
fs/cifs/smb2transport.c | 36 +-
fs/cifs/trace.h | 71 +
fs/cifs/transport.c | 3 +
fs/coda/cnode.c | 13 +-
fs/coda/coda_linux.c | 39 +-
fs/coda/coda_linux.h | 6 +-
fs/coda/dir.c | 20 +-
fs/coda/file.c | 12 +-
fs/coda/psdev.c | 14 +-
fs/coda/upcall.c | 3 +-
fs/coredump.c | 88 +-
fs/cramfs/inode.c | 2 +-
fs/crypto/bio.c | 32 +-
fs/crypto/fname.c | 3 +-
fs/crypto/fscrypt_private.h | 16 +-
fs/crypto/hkdf.c | 11 +-
fs/crypto/keysetup.c | 62 +-
fs/d_path.c | 8 +-
fs/direct-io.c | 16 +-
fs/erofs/Kconfig | 40 +-
fs/erofs/Makefile | 1 +
fs/erofs/compress.h | 28 +-
fs/erofs/data.c | 75 +-
fs/erofs/decompressor.c | 139 +-
fs/erofs/decompressor_lzma.c | 290 +
fs/erofs/erofs_fs.h | 73 +-
fs/erofs/inode.c | 2 +-
fs/erofs/internal.h | 105 +-
fs/erofs/pcpubuf.c | 6 +-
fs/erofs/super.c | 231 +-
fs/erofs/utils.c | 19 +-
fs/erofs/xattr.c | 4 +-
fs/erofs/zdata.c | 208 +-
fs/erofs/zdata.h | 8 -
fs/erofs/zmap.c | 65 +-
fs/erofs/zpvec.h | 13 +-
fs/exec.c | 16 +-
fs/exfat/inode.c | 2 +-
fs/ext4/ext4.h | 3 +-
fs/ext4/extents.c | 175 +-
fs/ext4/fast_commit.c | 11 +-
fs/ext4/file.c | 7 +-
fs/ext4/inode.c | 331 +-
fs/ext4/mballoc.c | 5 +-
fs/ext4/namei.c | 2 +-
fs/ext4/page-io.c | 8 +-
fs/ext4/super.c | 26 +-
fs/f2fs/checkpoint.c | 8 +-
fs/f2fs/compress.c | 77 +-
fs/f2fs/data.c | 95 +-
fs/f2fs/f2fs.h | 54 +-
fs/f2fs/file.c | 8 +-
fs/f2fs/gc.c | 5 +-
fs/f2fs/inline.c | 2 +-
fs/f2fs/inode.c | 4 +-
fs/f2fs/namei.c | 32 +-
fs/f2fs/node.c | 1 +
fs/f2fs/node.h | 5 -
fs/f2fs/recovery.c | 14 +-
fs/f2fs/segment.c | 83 +-
fs/f2fs/segment.h | 1 +
fs/f2fs/super.c | 42 +-
fs/f2fs/sysfs.c | 24 +-
fs/f2fs/verity.c | 2 +-
fs/f2fs/xattr.c | 2 +-
fs/fat/inode.c | 11 +-
fs/fs-writeback.c | 11 +-
fs/fuse/dax.c | 5 +-
fs/fuse/dev.c | 24 +-
fs/fuse/dir.c | 128 +-
fs/fuse/file.c | 110 +-
fs/fuse/fuse_i.h | 20 +-
fs/fuse/inode.c | 132 +-
fs/fuse/ioctl.c | 4 +-
fs/fuse/readdir.c | 6 +-
fs/fuse/virtio_fs.c | 14 +-
fs/fuse/xattr.c | 10 +-
fs/gfs2/bmap.c | 60 +-
fs/gfs2/file.c | 269 +-
fs/gfs2/glock.c | 471 +-
fs/gfs2/glock.h | 34 +-
fs/gfs2/glops.c | 29 +-
fs/gfs2/incore.h | 10 +-
fs/gfs2/inode.c | 12 +-
fs/gfs2/rgrp.c | 70 +-
fs/gfs2/rgrp.h | 2 +-
fs/gfs2/super.c | 4 +-
fs/gfs2/trace_gfs2.h | 9 +-
fs/gfs2/util.c | 2 +
fs/hfs/inode.c | 6 +-
fs/hfs/mdb.c | 2 +-
fs/hfsplus/inode.c | 12 +-
fs/hfsplus/wrapper.c | 2 +-
fs/hpfs/hpfs.h | 8 +-
fs/hugetlbfs/inode.c | 23 +-
fs/inode.c | 53 +-
fs/internal.h | 12 -
fs/io-wq.c | 102 +-
fs/io-wq.h | 59 +-
fs/io_uring.c | 1864 +-
fs/iomap/buffered-io.c | 2 +-
fs/iomap/direct-io.c | 88 +-
fs/isofs/inode.c | 2 +
fs/jfs/jfs_metapage.c | 1 +
fs/jfs/jfs_mount.c | 51 +-
fs/jfs/resize.c | 5 +-
fs/jfs/super.c | 5 +-
fs/kernel_read_file.c | 2 +-
fs/kernfs/symlink.c | 3 +-
fs/ksmbd/Kconfig | 2 +-
fs/ksmbd/auth.c | 27 +-
fs/ksmbd/connection.c | 13 +-
fs/ksmbd/ksmbd_netlink.h | 2 +
fs/ksmbd/ksmbd_work.c | 1 -
fs/ksmbd/ksmbd_work.h | 4 +-
fs/ksmbd/mgmt/user_config.c | 2 +-
fs/ksmbd/mgmt/user_config.h | 1 +
fs/ksmbd/oplock.c | 48 +-
fs/ksmbd/oplock.h | 2 -
fs/ksmbd/server.c | 2 +-
fs/ksmbd/smb2misc.c | 71 +-
fs/ksmbd/smb2ops.c | 12 +-
fs/ksmbd/smb2pdu.c | 929 +-
fs/ksmbd/smb2pdu.h | 698 +-
fs/ksmbd/smb_common.c | 13 +-
fs/ksmbd/smb_common.h | 55 +-
fs/ksmbd/transport_ipc.c | 3 +-
fs/ksmbd/transport_ipc.h | 2 +-
fs/ksmbd/transport_rdma.c | 24 +-
fs/ksmbd/vfs.c | 10 +-
fs/ksmbd/vfs.h | 41 +-
fs/libfs.c | 29 +-
fs/lockd/clntproc.c | 3 -
fs/lockd/svc.c | 6 +-
fs/lockd/svc4proc.c | 2 -
fs/lockd/svcproc.c | 2 -
fs/lockd/xdr.c | 152 +-
fs/lockd/xdr4.c | 153 +-
fs/locks.c | 161 +-
fs/namei.c | 4 +-
fs/netfs/read_helper.c | 165 +-
fs/nfs/blocklayout/dev.c | 4 +-
fs/nfs/callback_proc.c | 3 +
fs/nfs/callback_xdr.c | 4 +-
fs/nfs/client.c | 39 +-
fs/nfs/delegation.c | 10 +-
fs/nfs/dir.c | 119 +-
fs/nfs/direct.c | 4 +-
fs/nfs/export.c | 44 +-
fs/nfs/file.c | 9 -
fs/nfs/filelayout/filelayout.c | 2 -
fs/nfs/flexfilelayout/flexfilelayout.c | 2 -
fs/nfs/flexfilelayout/flexfilelayoutdev.c | 4 +-
fs/nfs/getroot.c | 21 +-
fs/nfs/inode.c | 130 +-
fs/nfs/internal.h | 12 +-
fs/nfs/namespace.c | 3 +-
fs/nfs/nfs3proc.c | 10 +-
fs/nfs/nfs3xdr.c | 2 +-
fs/nfs/nfs42proc.c | 9 +
fs/nfs/nfs4_fs.h | 4 +-
fs/nfs/nfs4client.c | 65 +-
fs/nfs/nfs4file.c | 14 +-
fs/nfs/nfs4idmap.c | 2 +-
fs/nfs/nfs4proc.c | 292 +-
fs/nfs/nfs4session.c | 12 +-
fs/nfs/nfs4session.h | 1 +
fs/nfs/nfs4state.c | 5 +-
fs/nfs/nfs4trace.h | 920 +-
fs/nfs/nfs4xdr.c | 81 +-
fs/nfs/nfstrace.h | 467 +-
fs/nfs/pagelist.c | 13 +-
fs/nfs/pnfs.h | 6 +-
fs/nfs/pnfs_nfs.c | 6 +-
fs/nfs/proc.c | 16 +-
fs/nfs/read.c | 11 +-
fs/nfs/super.c | 7 +-
fs/nfs/write.c | 73 +-
fs/nfsd/Kconfig | 1 -
fs/nfsd/blocklayout.c | 158 +-
fs/nfsd/filecache.c | 3 +
fs/nfsd/flexfilelayout.c | 2 +-
fs/nfsd/lockd.c | 2 +-
fs/nfsd/nfs2acl.c | 44 +-
fs/nfsd/nfs3acl.c | 48 +-
fs/nfsd/nfs3proc.c | 3 +-
fs/nfsd/nfs3xdr.c | 387 +-
fs/nfsd/nfs4callback.c | 2 +-
fs/nfsd/nfs4layouts.c | 5 +-
fs/nfsd/nfs4proc.c | 11 +-
fs/nfsd/nfs4state.c | 6 +-
fs/nfsd/nfs4xdr.c | 52 +-
fs/nfsd/nfscache.c | 17 +-
fs/nfsd/nfsctl.c | 6 +-
fs/nfsd/nfsd.h | 6 +-
fs/nfsd/nfsfh.c | 173 +-
fs/nfsd/nfsfh.h | 55 +-
fs/nfsd/nfsproc.c | 3 +-
fs/nfsd/nfssvc.c | 28 +-
fs/nfsd/nfsxdr.c | 187 +-
fs/nfsd/trace.h | 1 +
fs/nfsd/vfs.c | 7 +-
fs/nfsd/xdr.h | 37 +-
fs/nfsd/xdr3.h | 63 +-
fs/nfsd/xdr4.h | 7 +-
fs/nilfs2/alloc.c | 2 +-
fs/nilfs2/alloc.h | 2 +-
fs/nilfs2/bmap.c | 2 +-
fs/nilfs2/bmap.h | 2 +-
fs/nilfs2/btnode.c | 2 +-
fs/nilfs2/btnode.h | 2 +-
fs/nilfs2/btree.c | 2 +-
fs/nilfs2/btree.h | 2 +-
fs/nilfs2/cpfile.c | 2 +-
fs/nilfs2/cpfile.h | 2 +-
fs/nilfs2/dat.c | 2 +-
fs/nilfs2/dat.h | 2 +-
fs/nilfs2/dir.c | 2 +-
fs/nilfs2/direct.c | 2 +-
fs/nilfs2/direct.h | 2 +-
fs/nilfs2/file.c | 2 +-
fs/nilfs2/gcinode.c | 2 +-
fs/nilfs2/ifile.c | 2 +-
fs/nilfs2/ifile.h | 2 +-
fs/nilfs2/inode.c | 2 +-
fs/nilfs2/ioctl.c | 4 +-
fs/nilfs2/mdt.c | 2 +-
fs/nilfs2/mdt.h | 2 +-
fs/nilfs2/namei.c | 2 +-
fs/nilfs2/nilfs.h | 2 +-
fs/nilfs2/page.c | 2 +-
fs/nilfs2/page.h | 2 +-
fs/nilfs2/recovery.c | 2 +-
fs/nilfs2/segbuf.c | 2 +-
fs/nilfs2/segbuf.h | 2 +-
fs/nilfs2/segment.c | 2 +-
fs/nilfs2/segment.h | 2 +-
fs/nilfs2/sufile.c | 2 +-
fs/nilfs2/sufile.h | 2 +-
fs/nilfs2/super.c | 4 +-
fs/nilfs2/sysfs.c | 78 +-
fs/nilfs2/sysfs.h | 2 +-
fs/nilfs2/the_nilfs.c | 4 +-
fs/nilfs2/the_nilfs.h | 2 +-
fs/notify/fanotify/fanotify.c | 117 +-
fs/notify/fanotify/fanotify.h | 54 +-
fs/notify/fanotify/fanotify_user.c | 157 +-
fs/notify/fsnotify.c | 10 +-
fs/notify/group.c | 2 +-
fs/notify/inotify/inotify_fsnotify.c | 5 +-
fs/notify/inotify/inotify_user.c | 6 +-
fs/notify/notification.c | 14 +-
fs/ntfs/file.c | 3 +-
fs/ntfs/super.c | 8 +-
fs/ntfs3/file.c | 3 +-
fs/ntfs3/inode.c | 2 +-
fs/ntfs3/super.c | 2 +-
fs/ocfs2/alloc.c | 67 +-
fs/ocfs2/dlm/dlmrecovery.c | 1 -
fs/ocfs2/file.c | 8 +-
fs/ocfs2/inode.c | 4 +-
fs/ocfs2/journal.c | 31 +-
fs/ocfs2/journal.h | 3 +-
fs/ocfs2/suballoc.c | 22 +-
fs/ocfs2/super.c | 54 +-
fs/open.c | 18 +-
fs/orangefs/dcache.c | 4 +-
fs/orangefs/inode.c | 2 +-
fs/orangefs/super.c | 5 +-
fs/overlayfs/copy_up.c | 23 +-
fs/overlayfs/dir.c | 3 +-
fs/overlayfs/file.c | 20 +-
fs/overlayfs/inode.c | 5 +-
fs/overlayfs/overlayfs.h | 1 +
fs/overlayfs/super.c | 12 +-
fs/posix_acl.c | 3 +-
fs/proc/array.c | 13 +-
fs/proc/base.c | 40 +-
fs/proc/stat.c | 4 +-
fs/proc/task_mmu.c | 28 +-
fs/proc/uptime.c | 14 +-
fs/proc/vmcore.c | 109 +-
fs/pstore/blk.c | 8 +-
fs/pstore/platform.c | 2 +-
fs/quota/quota.c | 1 +
fs/quota/quota_tree.c | 15 +
fs/ramfs/inode.c | 12 +-
fs/read_write.c | 4 -
fs/reiserfs/super.c | 14 +-
fs/seq_file.c | 16 -
fs/smbfs_common/smb2pdu.h | 989 +
fs/squashfs/super.c | 5 +-
fs/squashfs/zstd_wrapper.c | 16 +-
fs/super.c | 3 +
fs/sync.c | 62 +-
fs/sysfs/dir.c | 3 +-
fs/sysfs/file.c | 140 +-
fs/sysfs/group.c | 15 +-
fs/sysfs/sysfs.h | 8 +-
fs/sysv/super.c | 6 +-
fs/tracefs/inode.c | 3 +-
fs/ubifs/crypto.c | 1 -
fs/udf/lowlevel.c | 5 +-
fs/udf/super.c | 9 +-
fs/userfaultfd.c | 12 +-
fs/xfs/kmem.h | 4 -
fs/xfs/libxfs/xfs_ag.c | 4 +-
fs/xfs/libxfs/xfs_ag.h | 44 +-
fs/xfs/libxfs/xfs_ag_resv.c | 3 +-
fs/xfs/libxfs/xfs_alloc.c | 120 +-
fs/xfs/libxfs/xfs_alloc.h | 38 +-
fs/xfs/libxfs/xfs_alloc_btree.c | 63 +-
fs/xfs/libxfs/xfs_alloc_btree.h | 5 +
fs/xfs/libxfs/xfs_attr_leaf.c | 2 +-
fs/xfs/libxfs/xfs_bmap.c | 101 +-
fs/xfs/libxfs/xfs_bmap.h | 35 +-
fs/xfs/libxfs/xfs_bmap_btree.c | 62 +-
fs/xfs/libxfs/xfs_bmap_btree.h | 5 +
fs/xfs/libxfs/xfs_btree.c | 337 +-
fs/xfs/libxfs/xfs_btree.h | 99 +-
fs/xfs/libxfs/xfs_btree_staging.c | 8 +-
fs/xfs/libxfs/xfs_da_btree.c | 11 +-
fs/xfs/libxfs/xfs_da_btree.h | 3 +-
fs/xfs/libxfs/xfs_defer.c | 241 +-
fs/xfs/libxfs/xfs_defer.h | 41 +-
fs/xfs/libxfs/xfs_dquot_buf.c | 4 +-
fs/xfs/libxfs/xfs_format.h | 12 +-
fs/xfs/libxfs/xfs_fs.h | 2 +
fs/xfs/libxfs/xfs_ialloc.c | 5 +-
fs/xfs/libxfs/xfs_ialloc_btree.c | 90 +-
fs/xfs/libxfs/xfs_ialloc_btree.h | 5 +
fs/xfs/libxfs/xfs_inode_buf.c | 6 +-
fs/xfs/libxfs/xfs_inode_fork.c | 24 +-
fs/xfs/libxfs/xfs_inode_fork.h | 2 +-
fs/xfs/libxfs/xfs_refcount.c | 46 +-
fs/xfs/libxfs/xfs_refcount.h | 7 +-
fs/xfs/libxfs/xfs_refcount_btree.c | 65 +-
fs/xfs/libxfs/xfs_refcount_btree.h | 5 +
fs/xfs/libxfs/xfs_rmap.c | 21 +-
fs/xfs/libxfs/xfs_rmap.h | 7 +-
fs/xfs/libxfs/xfs_rmap_btree.c | 116 +-
fs/xfs/libxfs/xfs_rmap_btree.h | 5 +
fs/xfs/libxfs/xfs_sb.c | 4 +-
fs/xfs/libxfs/xfs_trans_resv.c | 18 +-
fs/xfs/libxfs/xfs_trans_space.h | 9 +-
fs/xfs/scrub/agheader.c | 13 +-
fs/xfs/scrub/agheader_repair.c | 8 +-
fs/xfs/scrub/bitmap.c | 22 +-
fs/xfs/scrub/bmap.c | 2 +-
fs/xfs/scrub/btree.c | 121 +-
fs/xfs/scrub/btree.h | 17 +-
fs/xfs/scrub/dabtree.c | 62 +-
fs/xfs/scrub/repair.h | 3 +
fs/xfs/scrub/scrub.c | 64 +-
fs/xfs/scrub/trace.c | 11 +-
fs/xfs/scrub/trace.h | 10 +-
fs/xfs/xfs_aops.c | 15 +-
fs/xfs/xfs_attr_inactive.c | 2 +-
fs/xfs/xfs_bmap_item.c | 18 +-
fs/xfs/xfs_bmap_item.h | 6 +-
fs/xfs/xfs_buf.c | 14 +-
fs/xfs/xfs_buf_item.c | 8 +-
fs/xfs/xfs_buf_item.h | 2 +-
fs/xfs/xfs_buf_item_recover.c | 2 +-
fs/xfs/xfs_dquot.c | 28 +-
fs/xfs/xfs_extfree_item.c | 33 +-
fs/xfs/xfs_extfree_item.h | 6 +-
fs/xfs/xfs_file.c | 8 +-
fs/xfs/xfs_icache.c | 10 +-
fs/xfs/xfs_icreate_item.c | 6 +-
fs/xfs/xfs_icreate_item.h | 2 +-
fs/xfs/xfs_inode.c | 12 +-
fs/xfs/xfs_inode.h | 2 +-
fs/xfs/xfs_inode_item.c | 6 +-
fs/xfs/xfs_inode_item.h | 2 +-
fs/xfs/xfs_ioctl.c | 6 +-
fs/xfs/xfs_log.c | 6 +-
fs/xfs/xfs_log_priv.h | 2 +-
fs/xfs/xfs_log_recover.c | 12 +-
fs/xfs/xfs_mount.c | 14 +
fs/xfs/xfs_mount.h | 5 +-
fs/xfs/xfs_mru_cache.c | 2 +-
fs/xfs/xfs_qm.c | 2 +-
fs/xfs/xfs_qm.h | 2 +-
fs/xfs/xfs_refcount_item.c | 18 +-
fs/xfs/xfs_refcount_item.h | 6 +-
fs/xfs/xfs_reflink.c | 2 +-
fs/xfs/xfs_rmap_item.c | 18 +-
fs/xfs/xfs_rmap_item.h | 6 +-
fs/xfs/xfs_super.c | 233 +-
fs/xfs/xfs_sysfs.c | 24 +-
fs/xfs/xfs_trace.h | 2 +-
fs/xfs/xfs_trans.c | 16 +-
fs/xfs/xfs_trans.h | 8 +-
fs/xfs/xfs_trans_dquot.c | 4 +-
fs/zonefs/super.c | 6 +-
include/acpi/acpi_bus.h | 2 +-
include/acpi/acpixf.h | 2 +-
include/acpi/actbl2.h | 251 +-
include/acpi/actbl3.h | 9 +-
include/acpi/actypes.h | 1 +
include/acpi/apei.h | 3 -
include/acpi/pcc.h | 21 +-
include/acpi/platform/acgcc.h | 18 +-
include/asm-generic/cacheflush.h | 6 +
include/asm-generic/hyperv-tlfs.h | 1 +
include/asm-generic/mshyperv.h | 20 +-
include/asm-generic/sections.h | 89 +-
include/asm-generic/syscall.h | 16 -
include/asm-generic/vmlinux.lds.h | 33 +-
include/clocksource/arm_arch_timer.h | 2 +-
include/clocksource/timer-riscv.h | 16 +
include/crypto/engine.h | 5 +
include/crypto/internal/ecc.h | 281 +
include/drm/amd_asic_type.h | 1 +
include/drm/drm_bridge.h | 23 +-
include/drm/drm_connector.h | 37 +
include/drm/drm_displayid.h | 101 +-
include/drm/drm_dp_helper.h | 26 +
include/drm/drm_dp_mst_helper.h | 5 +-
include/drm/drm_edid.h | 47 +
include/drm/drm_format_helper.h | 4 +
include/drm/drm_ioctl.h | 1 -
include/drm/drm_mipi_dsi.h | 4 +
include/drm/drm_mode_config.h | 13 +-
include/drm/drm_modeset_lock.h | 8 +
include/drm/drm_plane.h | 2 +-
include/drm/drm_print.h | 30 +
include/drm/drm_probe_helper.h | 1 +
include/drm/gpu_scheduler.h | 188 +-
include/drm/gud.h | 6 +-
include/drm/i915_component.h | 1 +
include/drm/i915_pciids.h | 8 +-
include/drm/i915_pxp_tee_interface.h | 42 +
include/drm/ttm/ttm_bo_api.h | 21 +-
include/drm/ttm/ttm_bo_driver.h | 2 +-
include/drm/ttm/ttm_caching.h | 17 +
include/drm/ttm/ttm_device.h | 79 +-
include/drm/ttm/ttm_placement.h | 1 +
include/drm/ttm/ttm_pool.h | 5 +-
include/drm/ttm/ttm_range_manager.h | 18 +-
include/drm/ttm/ttm_resource.h | 9 +-
include/drm/ttm/ttm_tt.h | 98 +-
include/dt-bindings/clock/am4.h | 1 +
include/dt-bindings/clock/exynos850.h | 141 +
include/dt-bindings/clock/imx8ulp-clock.h | 258 +
.../clock/{jz4725b-cgu.h => ingenic,jz4725b-cgu.h} | 0
.../clock/{jz4740-cgu.h => ingenic,jz4740-cgu.h} | 0
.../clock/{jz4760-cgu.h => ingenic,jz4760-cgu.h} | 0
.../clock/{jz4770-cgu.h => ingenic,jz4770-cgu.h} | 0
.../clock/{jz4780-cgu.h => ingenic,jz4780-cgu.h} | 0
.../clock/{x1000-cgu.h => ingenic,x1000-cgu.h} | 0
.../clock/{x1830-cgu.h => ingenic,x1830-cgu.h} | 0
include/dt-bindings/clock/meson8b-clkc.h | 10 +
include/dt-bindings/clock/mt8195-clk.h | 864 +
include/dt-bindings/clock/qcom,camcc-sc7280.h | 127 +
include/dt-bindings/clock/qcom,gcc-msm8994.h | 13 +
include/dt-bindings/clock/qcom,gcc-qcm2290.h | 188 +
include/dt-bindings/clock/qcom,lpass-sc7280.h | 16 +
include/dt-bindings/clock/qcom,rpmcc.h | 6 +
include/dt-bindings/leds/common.h | 7 +
include/dt-bindings/phy/phy-cadence.h | 2 +
include/dt-bindings/pinctrl/mt65xx.h | 9 +
include/dt-bindings/power/imx8mm-power.h | 9 +
include/dt-bindings/power/qcom-aoss-qmp.h | 14 -
include/dt-bindings/power/qcom-rpmpd.h | 17 +
.../dt-bindings/reset-controller/mt8183-resets.h | 98 -
include/dt-bindings/reset/imx8ulp-pcc-reset.h | 59 +
.../{reset-controller => reset}/mt2712-resets.h | 0
include/dt-bindings/reset/mt8173-resets.h | 2 +
include/dt-bindings/reset/mt8183-resets.h | 101 +
.../{reset-controller => reset}/mt8192-resets.h | 0
.../reset/stericsson,db8500-prcc-reset.h | 51 +
include/dt-bindings/sound/rt5640.h | 1 +
include/dt-bindings/sound/tlv320adc3xxx.h | 28 +
include/kunit/test.h | 13 +-
include/linux/acpi.h | 12 +-
include/linux/amba/bus.h | 18 -
include/linux/anon_inodes.h | 4 +
include/linux/apple-mailbox.h | 19 +
include/linux/arch_topology.h | 5 +
include/linux/arm_ffa.h | 2 +
include/linux/ata.h | 1 +
include/linux/audit.h | 37 +
include/linux/audit_arch.h | 24 +
include/linux/avf/virtchnl.h | 41 +-
include/linux/backing-dev-defs.h | 3 +
include/linux/backing-dev.h | 26 +-
include/linux/bio.h | 147 +-
include/linux/bitmap.h | 2 +
include/linux/blk-crypto-profile.h | 166 +
include/linux/blk-integrity.h | 183 +
include/linux/blk-mq.h | 584 +-
include/linux/blk_types.h | 55 +-
include/linux/blkdev.h | 949 +-
include/linux/blktrace_api.h | 2 +-
include/linux/bootconfig.h | 31 +-
include/linux/bottom_half.h | 1 +
include/linux/bpf-cgroup.h | 21 +-
include/linux/bpf.h | 79 +-
include/linux/bpf_types.h | 9 +-
include/linux/bpf_verifier.h | 2 +
include/linux/bpfptr.h | 1 +
include/linux/brcmphy.h | 11 +
include/linux/btf.h | 39 +
include/linux/bvec.h | 2 +-
include/linux/can/bittiming.h | 89 +-
include/linux/can/dev.h | 34 +
include/linux/cc_platform.h | 88 +
include/linux/cdrom.h | 1 +
include/linux/ceph/ceph_fs.h | 2 +
include/linux/ceph/osd_client.h | 19 +-
include/linux/clk/tegra.h | 24 +-
include/linux/cma.h | 1 +
include/linux/compiler-gcc.h | 18 +-
include/linux/compiler_attributes.h | 11 +-
include/linux/compiler_types.h | 25 +-
include/linux/console.h | 2 +
include/linux/container_of.h | 40 +
include/linux/context_tracking.h | 2 +-
include/linux/counter.h | 715 +-
include/linux/counter_enum.h | 45 -
include/linux/cpufreq.h | 169 +-
include/linux/cpuhotplug.h | 6 +-
include/linux/cpuset.h | 17 +
include/linux/crash_dump.h | 30 +-
include/linux/damon.h | 236 +-
include/linux/dax.h | 2 -
include/linux/debug_locks.h | 2 -
include/linux/decompress/mm.h | 12 +-
include/linux/delay.h | 2 +-
include/linux/device-mapper.h | 4 +-
include/linux/device/bus.h | 1 +
include/linux/dma-buf.h | 13 +-
include/linux/dma-fence.h | 32 +-
include/linux/dma-resv.h | 224 +-
include/linux/dma/qcom_adm.h | 12 +
include/linux/dma/xilinx_dpdma.h | 11 +
include/linux/dmaengine.h | 6 -
include/linux/dmar.h | 8 +
include/linux/dsa/8021q.h | 5 +-
include/linux/dsa/ocelot.h | 5 +-
include/linux/dsa/sja1105.h | 1 -
include/linux/dtpm.h | 26 +-
include/linux/efi.h | 1 +
include/linux/elevator.h | 181 -
include/linux/elfcore.h | 2 +-
include/linux/energy_model.h | 68 +-
include/linux/etherdevice.h | 37 +-
include/linux/ethtool.h | 23 +
include/linux/ethtool_netlink.h | 3 +
include/linux/fanotify.h | 9 +-
include/linux/fb.h | 2 +-
include/linux/filter.h | 29 +-
include/linux/firewire.h | 11 +-
include/linux/firmware.h | 30 +-
include/linux/firmware/cirrus/cs_dsp.h | 21 +-
include/linux/firmware/cirrus/wmfw.h | 1 +
include/linux/firmware/imx/s4.h | 20 +
include/linux/firmware/xlnx-zynqmp.h | 26 +
include/linux/flex_proportions.h | 9 +-
include/linux/fortify-string.h | 77 +-
include/linux/fs.h | 18 +-
include/linux/fscache.h | 2 +-
include/linux/fscrypt.h | 3 -
include/linux/fsi-occ.h | 2 +
include/linux/fsl/mc.h | 14 +
include/linux/fsnotify.h | 58 +-
include/linux/fsnotify_backend.h | 96 +-
include/linux/ftrace.h | 38 +-
include/linux/fwnode.h | 1 +
include/linux/generic-radix-tree.h | 3 +-
include/linux/genhd.h | 44 +-
include/linux/gfp.h | 30 +-
include/linux/gpio/driver.h | 19 +-
include/linux/highmem-internal.h | 11 +
include/linux/highmem.h | 65 +-
include/linux/huge_mm.h | 15 -
include/linux/hugetlb.h | 42 +-
include/linux/hyperv.h | 25 +-
include/linux/i2c.h | 18 +
include/linux/ieee80211.h | 69 +-
include/linux/iio/buffer.h | 11 +
include/linux/iio/buffer_impl.h | 11 +
include/linux/iio/common/st_sensors.h | 13 -
include/linux/iio/driver.h | 14 +
include/linux/iio/iio-opaque.h | 4 +
include/linux/iio/imu/adis.h | 2 +
include/linux/iio/triggered_buffer.h | 11 +-
include/linux/inetdevice.h | 2 +
include/linux/input/cy8ctmg110_pdata.h | 10 -
include/linux/instruction_pointer.h | 8 +
include/linux/intel-iommu.h | 13 +-
include/linux/io-mapping.h | 6 -
include/linux/io.h | 5 +
include/linux/iomap.h | 16 +-
include/linux/ipmi.h | 3 +
include/linux/ipmi_smi.h | 59 +
include/linux/ipv6.h | 2 +-
include/linux/irq.h | 6 +-
include/linux/irq_work.h | 8 +
include/linux/irqchip.h | 20 +-
include/linux/irqdesc.h | 9 +-
include/linux/irqdomain.h | 4 +
include/linux/kallsyms.h | 13 +-
include/linux/kasan.h | 17 +-
include/linux/kcsan-checks.h | 3 +
include/linux/kernel.h | 55 +-
include/linux/kernel_stat.h | 1 +
include/linux/kernfs.h | 28 -
include/linux/keyslot-manager.h | 120 -
include/linux/kfence.h | 21 +-
include/linux/kobject.h | 1 -
include/linux/kprobes.h | 113 +-
include/linux/ksm.h | 4 +-
include/linux/kvm_host.h | 30 +-
include/linux/leds.h | 2 +-
include/linux/libata.h | 26 +-
include/linux/list.h | 4 +-
include/linux/llist.h | 4 +-
include/linux/lockd/xdr.h | 27 +-
include/linux/lockd/xdr4.h | 29 +-
include/linux/lockdep.h | 17 -
include/linux/lockdep_types.h | 2 +-
include/linux/lsm_hook_defs.h | 26 +-
include/linux/lsm_hooks.h | 38 +-
include/linux/mdev.h | 20 -
include/linux/mdio.h | 26 +
include/linux/mem_encrypt.h | 4 -
include/linux/memblock.h | 50 +-
include/linux/memcontrol.h | 273 +-
include/linux/memory.h | 23 +-
include/linux/memory_hotplug.h | 3 -
include/linux/mempolicy.h | 5 -
include/linux/mfd/da9063/core.h | 1 +
include/linux/mfd/hi6421-spmi-pmic.h | 25 -
include/linux/mfd/idt8a340_reg.h | 31 +-
include/linux/mfd/max77686-private.h | 26 +-
include/linux/mfd/stm32-lptimer.h | 5 +
include/linux/mfd/stm32-timers.h | 4 +
include/linux/mfd/ti_am335x_tscadc.h | 119 +-
include/linux/mfd/tps65912.h | 2 +-
include/linux/mfd/tps80031.h | 637 -
include/linux/micrel_phy.h | 1 +
include/linux/migrate.h | 28 +-
include/linux/migrate_mode.h | 13 +
include/linux/misc_cgroup.h | 6 +-
include/linux/mlx4/device.h | 2 +-
include/linux/mlx4/driver.h | 22 -
include/linux/mlx5/device.h | 63 +-
include/linux/mlx5/driver.h | 62 +-
include/linux/mlx5/eq.h | 1 -
include/linux/mlx5/eswitch.h | 9 +
include/linux/mlx5/fs.h | 15 +
include/linux/mlx5/mlx5_ifc.h | 450 +-
include/linux/mm.h | 299 +-
include/linux/mm_inline.h | 103 +-
include/linux/mm_types.h | 109 +-
include/linux/mmc/host.h | 8 +-
include/linux/mmc/sdhci-pci-data.h | 18 -
include/linux/mmdebug.h | 20 +
include/linux/mmzone.h | 41 +-
include/linux/msi.h | 2 +-
include/linux/mtd/mtd.h | 2 -
include/linux/mux/consumer.h | 23 +-
include/linux/mux/driver.h | 4 +
include/linux/nd.h | 4 +-
include/linux/netdevice.h | 17 +-
include/linux/netfilter_arp/arp_tables.h | 5 +-
include/linux/netfilter_bridge/ebtables.h | 5 +-
include/linux/netfilter_ingress.h | 58 -
include/linux/netfilter_ipv4/ip_tables.h | 6 +-
include/linux/netfilter_ipv6/ip6_tables.h | 5 +-
include/linux/netfilter_netdev.h | 146 +
include/linux/netfs.h | 89 +-
include/linux/netlink.h | 4 -
include/linux/nfs4.h | 4 +
include/linux/nfs_fs.h | 77 +-
include/linux/nfs_xdr.h | 16 +-
include/linux/node.h | 4 +-
include/linux/nvme-fc-driver.h | 7 +
include/linux/nvme-rdma.h | 2 +
include/linux/nvme.h | 30 +-
include/linux/nvmem-provider.h | 5 +
include/linux/objtool.h | 12 +
include/linux/of.h | 3 +-
include/linux/of_fdt.h | 1 -
include/linux/of_net.h | 8 +-
include/linux/page-flags.h | 292 +-
include/linux/page_idle.h | 99 +-
include/linux/page_owner.h | 20 +-
include/linux/page_ref.h | 158 +-
include/linux/pagemap.h | 714 +-
include/linux/part_stat.h | 1 +
include/linux/pci-acpi.h | 8 +
include/linux/pci.h | 24 +-
include/linux/percpu-refcount.h | 33 +-
include/linux/percpu.h | 6 +-
include/linux/perf_event.h | 24 +
include/linux/phy.h | 35 +
include/linux/phylink.h | 14 +-
include/linux/pid.h | 1 +
include/linux/platform_data/brcmfmac.h | 2 +-
include/linux/platform_data/cros_ec_proto.h | 7 +-
include/linux/platform_data/mlxreg.h | 82 +
include/linux/platform_data/ti-sysc.h | 3 +
include/linux/platform_data/ux500_wdt.h | 18 -
include/linux/platform_data/x86/soc.h | 65 +
include/linux/plist.h | 5 +-
include/linux/pm_opp.h | 20 +-
include/linux/pm_wakeirq.h | 9 +-
include/linux/pnfs_osd_xdr.h | 317 -
include/linux/posix-timers.h | 2 +
include/linux/power/max17042_battery.h | 4 +-
include/linux/preempt.h | 26 +-
include/linux/property.h | 5 +-
include/linux/ptrace.h | 22 +-
include/linux/pwm.h | 13 +
include/linux/qed/common_hsi.h | 141 +-
include/linux/qed/eth_common.h | 1 +
include/linux/qed/fcoe_common.h | 362 +-
include/linux/qed/iscsi_common.h | 360 +-
include/linux/qed/nvmetcp_common.h | 18 +-
include/linux/qed/qed_chain.h | 97 +-
include/linux/qed/qed_eth_if.h | 23 +-
include/linux/qed/qed_if.h | 265 +-
include/linux/qed/qed_iscsi_if.h | 2 +-
include/linux/qed/qed_ll2_if.h | 42 +-
include/linux/qed/qed_nvmetcp_if.h | 17 +
include/linux/qed/qed_rdma_if.h | 3 +-
include/linux/qed/rdma_common.h | 1 +
include/linux/radix-tree.h | 4 +-
include/linux/rcupdate.h | 3 +-
include/linux/rcupdate_trace.h | 5 +-
include/linux/regulator/lp872x.h | 17 +-
include/linux/regulator/tps62360.h | 6 -
include/linux/remoteproc.h | 12 -
include/linux/rmap.h | 10 +-
include/linux/rpmsg.h | 12 +-
include/linux/rtc.h | 3 +
include/linux/rwlock.h | 15 -
include/linux/rwlock_api_smp.h | 6 +-
include/linux/rwsem.h | 1 -
include/linux/sbitmap.h | 35 +-
include/linux/sched.h | 66 +-
include/linux/sched/idle.h | 4 +
include/linux/sched/mm.h | 29 +
include/linux/sched/signal.h | 14 +
include/linux/sched/task.h | 3 +-
include/linux/sched/task_stack.h | 4 +
include/linux/sched/topology.h | 9 +-
include/linux/secretmem.h | 2 +-
include/linux/security.h | 65 +-
include/linux/seq_file.h | 19 +-
include/linux/seqno-fence.h | 109 -
include/linux/shrinker.h | 1 +
include/linux/signal.h | 7 +-
include/linux/signal_types.h | 3 +
include/linux/skbuff.h | 42 +-
include/linux/skmsg.h | 31 +-
include/linux/slab.h | 135 +-
include/linux/slub_def.h | 13 +-
include/linux/smp.h | 1 -
include/linux/soc/marvell/octeontx2/asm.h | 15 +
include/linux/soc/mediatek/mtk-mmsys.h | 3 +
include/linux/soc/qcom/qcom_aoss.h | 38 +
include/linux/soc/qcom/smd-rpm.h | 2 +
include/linux/soc/samsung/exynos-chipid.h | 6 +-
include/linux/socket.h | 2 +
include/linux/soundwire/sdw_intel.h | 4 +-
include/linux/spi/ads7846.h | 15 -
include/linux/spi/max7301.h | 2 +-
include/linux/spi/spi.h | 55 -
include/linux/spinlock.h | 14 -
include/linux/spinlock_api_smp.h | 9 -
include/linux/spinlock_up.h | 1 -
include/linux/stackdepot.h | 11 +-
include/linux/stacktrace.h | 1 +
include/linux/stddef.h | 65 +-
include/linux/string.h | 59 +-
include/linux/string_helpers.h | 1 +
include/linux/sunrpc/clnt.h | 1 +
include/linux/sunrpc/sched.h | 16 +-
include/linux/sunrpc/svc.h | 14 +-
include/linux/surface_aggregator/controller.h | 4 +-
include/linux/swap.h | 18 +-
include/linux/swiotlb.h | 3 +-
include/linux/switchtec.h | 1 +
include/linux/syscalls.h | 7 +-
include/linux/t10-pi.h | 2 +-
include/linux/tee_drv.h | 7 +-
include/linux/thread_info.h | 2 +-
include/linux/topology.h | 13 +
include/linux/torture.h | 8 +
include/linux/tpm.h | 1 +
include/linux/trace_events.h | 2 +-
include/linux/trace_recursion.h | 76 +-
include/linux/tty.h | 140 +-
include/linux/tty_driver.h | 10 +-
include/linux/tty_flip.h | 20 +-
include/linux/tty_ldisc.h | 27 +-
include/linux/u64_stats_sync.h | 10 +
include/linux/uio.h | 4 +-
include/linux/usb/hcd.h | 2 -
include/linux/usb/tegra_usb_phy.h | 5 +
include/linux/user_namespace.h | 2 +
include/linux/vdpa.h | 53 +-
include/linux/vermagic.h | 2 +-
include/linux/vfio.h | 53 +-
include/linux/virtio.h | 2 +
include/linux/virtio_config.h | 6 +
include/linux/virtio_pci_legacy.h | 42 +
include/linux/vmalloc.h | 24 +-
include/linux/vmstat.h | 113 +-
include/linux/wait.h | 3 +-
include/linux/workqueue.h | 3 +-
include/linux/writeback.h | 23 +-
include/linux/ww_mutex.h | 15 +-
include/linux/xz.h | 106 +
include/linux/zstd.h | 1252 +-
include/linux/zstd_errors.h | 77 +
include/linux/zstd_lib.h | 2432 +
include/media/hevc-ctrls.h | 11 +
include/media/i2c/mt9p031.h | 1 +
include/media/media-entity.h | 3 +-
include/media/tuner.h | 1 +
include/media/v4l2-async.h | 105 +-
include/media/v4l2-dev.h | 3 +-
include/media/v4l2-fwnode.h | 12 +-
include/media/videobuf2-core.h | 59 +-
include/memory/renesas-rpc-if.h | 1 +
include/net/9p/9p.h | 12 +-
include/net/9p/client.h | 24 +-
include/net/9p/transport.h | 26 +-
include/net/act_api.h | 10 +-
include/net/amt.h | 385 +
include/net/ax25.h | 13 +-
include/net/bluetooth/bluetooth.h | 90 +
include/net/bluetooth/hci.h | 117 +
include/net/bluetooth/hci_core.h | 75 +-
include/net/busy_poll.h | 3 +-
include/net/cfg80211.h | 81 +-
include/net/codel.h | 5 +
include/net/codel_impl.h | 18 +-
include/net/datalink.h | 2 +-
include/net/devlink.h | 128 +-
include/net/dn.h | 2 +-
include/net/dsa.h | 46 +-
include/net/flow_dissector.h | 1 +
include/net/gen_stats.h | 59 +-
include/net/inet_connection_sock.h | 2 +-
include/net/inet_ecn.h | 17 +
include/net/inet_sock.h | 3 +-
include/net/ioam6.h | 3 +-
include/net/ip.h | 8 +-
include/net/ip_vs.h | 11 +
include/net/ipv6.h | 1 +
include/net/llc.h | 6 +-
include/net/llc_if.h | 3 +-
include/net/mac80211.h | 11 +
include/net/mctp.h | 84 +-
include/net/mctpdevice.h | 21 +
include/net/mptcp.h | 8 +
include/net/ndisc.h | 2 +-
include/net/neighbour.h | 45 +-
include/net/netfilter/nf_tables.h | 10 +-
include/net/netfilter/nf_tables_ipv4.h | 7 +-
include/net/netfilter/nf_tables_ipv6.h | 6 +-
include/net/netfilter/xt_rateest.h | 2 +-
include/net/page_pool.h | 12 +-
include/net/pkt_cls.h | 6 +-
include/net/rose.h | 8 +-
include/net/sch_generic.h | 86 +-
include/net/sctp/sctp.h | 7 +-
include/net/sctp/sm.h | 6 +-
include/net/sctp/structs.h | 20 +-
include/net/sock.h | 137 +-
include/net/strparser.h | 20 +-
include/net/switchdev.h | 48 +-
include/net/tcp.h | 63 +-
include/net/tls.h | 16 +-
include/net/udp.h | 5 +-
include/net/xdp.h | 8 +-
include/net/xdp_sock_drv.h | 22 +
include/net/xsk_buff_pool.h | 48 +-
include/rdma/ib_hdrs.h | 1 +
include/rdma/ib_umem.h | 11 +
include/rdma/ib_verbs.h | 74 +-
include/rdma/rdma_counter.h | 2 +
include/scsi/libsas.h | 1 +
include/scsi/sas.h | 12 +-
include/scsi/scsi_cmnd.h | 19 +-
include/scsi/scsi_device.h | 3 +-
include/scsi/scsi_host.h | 28 +-
include/scsi/scsi_transport_sas.h | 1 +
include/soc/arc/timers.h | 4 +-
include/soc/fsl/dpaa2-io.h | 9 +
include/soc/mscc/ocelot.h | 27 +-
include/soc/mscc/ocelot_vcap.h | 10 +
include/soc/qcom/spm.h | 43 +
include/soc/tegra/fuse.h | 31 +-
include/soc/tegra/irq.h | 9 +-
include/soc/tegra/pm.h | 2 +-
include/sound/cs35l41.h | 739 +
include/sound/dmaengine_pcm.h | 2 -
include/sound/hdaudio_ext.h | 2 +
include/sound/memalloc.h | 44 +-
include/sound/rt5682s.h | 1 +
include/sound/soc-component.h | 4 +
include/sound/soc-dai.h | 36 +-
include/sound/soc-dpcm.h | 2 +
include/sound/soc.h | 3 +-
include/sound/sof.h | 22 +
include/sound/sof/dai-amd.h | 21 +
include/sound/sof/dai-mediatek.h | 23 +
include/sound/sof/dai.h | 35 +-
include/sound/sof/debug.h | 2 +
include/sound/sof/header.h | 1 +
include/target/target_core_base.h | 9 +-
include/target/target_core_fabric.h | 1 +
include/trace/bpf_probe.h | 19 +-
include/trace/events/afs.h | 21 +-
include/trace/events/block.h | 6 +-
include/trace/events/devlink.h | 72 +-
include/trace/events/erofs.h | 2 +-
include/trace/events/f2fs.h | 33 +-
include/trace/events/fs.h | 122 +
include/trace/events/io_uring.h | 61 +
include/trace/events/mctp.h | 75 +
include/trace/events/mmap_lock.h | 48 +-
include/trace/events/nfs.h | 375 +
include/trace/events/pagemap.h | 46 +-
include/trace/events/rpcgss.h | 18 +-
include/trace/events/rpcrdma.h | 240 +-
include/trace/events/sunrpc.h | 135 +-
include/trace/events/sunrpc_base.h | 18 +
include/trace/events/vmscan.h | 38 +
include/trace/events/writeback.h | 35 +-
include/uapi/asm-generic/fcntl.h | 4 +
include/uapi/asm-generic/signal-defs.h | 1 +
include/uapi/asm-generic/socket.h | 2 +
include/uapi/asm-generic/unistd.h | 5 +-
include/uapi/drm/amdgpu_drm.h | 13 +-
include/uapi/drm/drm_fourcc.h | 12 +
include/uapi/drm/drm_mode.h | 4 +
include/uapi/drm/i915_drm.h | 242 +-
include/uapi/drm/mga_drm.h | 22 +-
include/uapi/drm/v3d_drm.h | 78 +
include/uapi/drm/virtgpu_drm.h | 27 +
include/uapi/linux/acrn.h | 70 +
include/uapi/linux/amt.h | 62 +
include/uapi/linux/audit.h | 7 +-
include/uapi/linux/bcache.h | 445 -
include/uapi/linux/bpf.h | 76 +-
include/uapi/linux/btf.h | 55 +-
include/uapi/linux/btrfs.h | 11 +-
include/uapi/linux/can/netlink.h | 31 +-
include/uapi/linux/cdrom.h | 19 +
include/uapi/linux/counter.h | 154 +
include/uapi/linux/devlink.h | 2 +
include/uapi/linux/dlm_device.h | 4 +-
include/uapi/linux/ethtool.h | 29 +
include/uapi/linux/ethtool_netlink.h | 21 +-
include/uapi/linux/fanotify.h | 8 +
include/uapi/linux/fuse.h | 7 +-
include/uapi/linux/futex.h | 25 +
include/uapi/linux/if_ether.h | 1 +
include/uapi/linux/io_uring.h | 1 +
include/uapi/linux/ioam6_iptunnel.h | 29 +
include/uapi/linux/ip.h | 1 +
include/uapi/linux/ipmi.h | 16 +-
include/uapi/linux/ipv6.h | 1 +
include/uapi/linux/kvm.h | 30 +-
include/uapi/linux/map_to_14segment.h | 241 +
include/uapi/linux/mctp.h | 18 +-
include/uapi/linux/mdio.h | 9 +
include/uapi/linux/mptcp.h | 35 +
include/uapi/linux/neighbour.h | 35 +-
include/uapi/linux/netfilter.h | 1 +
include/uapi/linux/netfilter/nf_tables.h | 6 +-
include/uapi/linux/nfsd/nfsfh.h | 115 -
include/uapi/linux/nitro_enclaves.h | 10 +-
include/uapi/linux/nl80211-vnd-intel.h | 29 +
include/uapi/linux/nl80211.h | 115 +-
include/uapi/linux/pci_regs.h | 6 +
include/uapi/linux/perf_event.h | 34 +-
include/uapi/linux/pkt_sched.h | 2 +
include/uapi/linux/prctl.h | 5 +-
include/uapi/linux/rtc.h | 31 +-
include/uapi/linux/smc.h | 44 +-
include/uapi/linux/stddef.h | 37 +
include/uapi/linux/sysctl.h | 1 +
include/uapi/linux/tls.h | 30 +
include/uapi/linux/v4l2-controls.h | 6 +
include/uapi/linux/vdpa.h | 7 +
include/uapi/linux/videodev2.h | 31 +-
include/uapi/linux/virtio_gpio.h | 27 +-
include/uapi/linux/virtio_gpu.h | 18 +-
include/uapi/linux/virtio_i2c.h | 6 +
include/uapi/linux/virtio_mem.h | 9 +-
include/uapi/linux/vm_sockets.h | 13 +-
include/uapi/misc/habanalabs.h | 84 +-
include/uapi/rdma/efa-abi.h | 18 +-
include/uapi/rdma/rdma_netlink.h | 5 +
include/uapi/rdma/rdma_user_rxe.h | 14 +-
include/uapi/sound/asoc.h | 4 +-
include/uapi/sound/asound.h | 4 +-
include/uapi/sound/firewire.h | 150 +
include/uapi/sound/sof/tokens.h | 5 +
include/xen/arm/hypercall.h | 15 -
include/xen/balloon.h | 3 -
include/xen/interface/callback.h | 19 +-
include/xen/interface/elfnote.h | 19 +-
include/xen/interface/event_channel.h | 2 +-
include/xen/interface/features.h | 2 +-
include/xen/interface/grant_table.h | 19 +-
include/xen/interface/hvm/dm_op.h | 19 +-
include/xen/interface/hvm/hvm_op.h | 20 +-
include/xen/interface/hvm/hvm_vcpu.h | 19 +-
include/xen/interface/hvm/params.h | 20 +-
include/xen/interface/hvm/start_info.h | 19 +-
include/xen/interface/io/9pfs.h | 19 +-
include/xen/interface/io/blkif.h | 2 +-
include/xen/interface/io/console.h | 2 +-
include/xen/interface/io/displif.h | 19 +-
include/xen/interface/io/fbif.h | 19 +-
include/xen/interface/io/kbdif.h | 19 +-
include/xen/interface/io/netif.h | 19 +-
include/xen/interface/io/pciif.h | 19 +-
include/xen/interface/io/protocols.h | 2 +-
include/xen/interface/io/pvcalls.h | 2 +
include/xen/interface/io/ring.h | 19 +-
include/xen/interface/io/sndif.h | 19 +-
include/xen/interface/io/vscsiif.h | 19 +-
include/xen/interface/io/xenbus.h | 2 +-
include/xen/interface/io/xs_wire.h | 2 +-
include/xen/interface/memory.h | 2 +-
include/xen/interface/nmi.h | 2 +-
include/xen/interface/physdev.h | 20 +-
include/xen/interface/platform.h | 19 +-
include/xen/interface/sched.h | 19 +-
include/xen/interface/vcpu.h | 19 +-
include/xen/interface/version.h | 2 +-
include/xen/interface/xen-mca.h | 1 +
include/xen/interface/xen.h | 19 +-
include/xen/interface/xenpmu.h | 2 +-
include/xen/pci.h | 28 +
include/xen/xen.h | 6 -
init/Kconfig | 9 +-
init/Makefile | 2 +-
init/initramfs.c | 2 +-
init/main.c | 27 +-
ipc/ipc_sysctl.c | 32 +-
ipc/shm.c | 8 +-
kernel/Kconfig.preempt | 22 +-
kernel/Makefile | 3 +-
kernel/acct.c | 1 -
kernel/audit.h | 9 +-
kernel/audit_fsnotify.c | 3 +-
kernel/audit_tree.c | 23 +-
kernel/audit_watch.c | 6 +-
kernel/auditfilter.c | 15 +-
kernel/auditsc.c | 521 +-
kernel/bpf/Kconfig | 7 +
kernel/bpf/Makefile | 2 +-
kernel/bpf/arraymap.c | 8 +-
kernel/bpf/bloom_filter.c | 204 +
kernel/bpf/bpf_struct_ops.c | 32 +-
kernel/bpf/bpf_struct_ops_types.h | 3 +
kernel/bpf/btf.c | 183 +
kernel/bpf/cgroup.c | 54 +-
kernel/bpf/core.c | 40 +-
kernel/bpf/hashtab.c | 13 +-
kernel/bpf/helpers.c | 11 +-
kernel/bpf/preload/.gitignore | 4 +-
kernel/bpf/preload/Makefile | 26 +-
kernel/bpf/preload/iterators/Makefile | 38 +-
kernel/bpf/syscall.c | 88 +-
kernel/bpf/trampoline.c | 15 +-
kernel/bpf/verifier.c | 420 +-
kernel/cgroup/cgroup-v1.c | 17 +-
kernel/cgroup/cgroup.c | 124 +-
kernel/cgroup/cpuset.c | 23 +
kernel/cgroup/misc.c | 31 +-
kernel/cgroup/rstat.c | 2 -
kernel/cred.c | 14 +-
kernel/debug/kdb/kdb_bt.c | 16 +-
kernel/debug/kdb/kdb_main.c | 37 +-
kernel/debug/kdb/kdb_private.h | 4 +-
kernel/debug/kdb/kdb_support.c | 118 +-
kernel/dma/coherent.c | 5 +-
kernel/dma/debug.c | 36 +-
kernel/dma/debug.h | 24 +-
kernel/dma/mapping.c | 28 +-
kernel/dma/swiotlb.c | 19 +-
kernel/entry/syscall_user_dispatch.c | 12 +-
kernel/events/Makefile | 5 -
kernel/events/core.c | 42 +-
kernel/events/internal.h | 7 +-
kernel/events/uprobes.c | 3 +-
kernel/exit.c | 79 +-
kernel/extable.c | 35 +-
kernel/fork.c | 17 +-
kernel/futex.c | 4272 --
kernel/futex/Makefile | 3 +
kernel/futex/core.c | 1176 +
kernel/futex/futex.h | 299 +
kernel/futex/pi.c | 1233 +
kernel/futex/requeue.c | 897 +
kernel/futex/syscalls.c | 398 +
kernel/futex/waitwake.c | 708 +
kernel/irq/Kconfig | 10 +-
kernel/irq/chip.c | 2 +
kernel/irq/generic-chip.c | 3 +
kernel/irq/handle.c | 18 +
kernel/irq/irqdesc.c | 81 +-
kernel/irq/irqdomain.c | 7 +-
kernel/irq/manage.c | 6 +-
kernel/irq/msi.c | 4 +-
kernel/irq/spurious.c | 8 +
kernel/irq_work.c | 130 +-
kernel/kallsyms.c | 46 +-
kernel/kcov.c | 36 +-
kernel/kcsan/core.c | 75 +-
kernel/kcsan/kcsan.h | 8 +-
kernel/kcsan/kcsan_test.c | 62 +-
kernel/kcsan/report.c | 77 +-
kernel/kcsan/selftest.c | 72 +-
kernel/kexec_file.c | 5 +
kernel/kprobes.c | 509 +-
kernel/kthread.c | 18 +-
kernel/livepatch/patch.c | 12 +-
kernel/livepatch/transition.c | 95 +-
kernel/locking/lockdep.c | 24 +-
kernel/locking/locktorture.c | 14 +-
kernel/locking/mutex.c | 63 +-
kernel/locking/rtmutex.c | 19 +-
kernel/locking/rwbase_rt.c | 11 +-
kernel/locking/rwsem.c | 70 +-
kernel/locking/spinlock.c | 3 +-
kernel/locking/spinlock_rt.c | 17 +-
kernel/locking/test-ww_mutex.c | 87 +-
kernel/locking/ww_rt_mutex.c | 25 +
kernel/module.c | 79 +-
kernel/pid.c | 36 +
kernel/power/energy_model.c | 86 +-
kernel/power/hibernate.c | 12 +-
kernel/power/power.h | 14 +
kernel/power/process.c | 2 +-
kernel/power/suspend.c | 18 +-
kernel/power/swap.c | 21 +-
kernel/printk/index.c | 5 +-
kernel/printk/printk.c | 9 +-
kernel/rcu/rcuscale.c | 10 +-
kernel/rcu/rcutorture.c | 86 +-
kernel/rcu/refscale.c | 6 +-
kernel/rcu/tasks.h | 119 +-
kernel/rcu/tree.c | 36 +-
kernel/rcu/tree_exp.h | 3 +-
kernel/rcu/tree_nocb.h | 2 +-
kernel/rcu/tree_plugin.h | 11 +-
kernel/rcu/tree_stall.h | 8 +-
kernel/rcu/update.c | 12 +-
kernel/reboot.c | 2 +-
kernel/resource.c | 54 +-
kernel/scftorture.c | 43 +-
kernel/sched/Makefile | 4 +
kernel/sched/autogroup.c | 2 +-
kernel/sched/core.c | 514 +-
kernel/sched/core_sched.c | 13 +-
kernel/sched/deadline.c | 99 +-
kernel/sched/debug.c | 101 +-
kernel/sched/fair.c | 500 +-
kernel/sched/features.h | 5 +
kernel/sched/rt.c | 142 +-
kernel/sched/sched.h | 40 +-
kernel/sched/stats.c | 104 +
kernel/sched/stats.h | 49 +
kernel/sched/stop_task.c | 4 +-
kernel/sched/topology.c | 35 +-
kernel/scs.c | 1 +
kernel/signal.c | 143 +-
kernel/smp.c | 12 +-
kernel/stacktrace.c | 30 +
kernel/sys_ni.c | 3 +-
kernel/test_kprobes.c | 313 -
kernel/time/posix-cpu-timers.c | 19 +-
kernel/trace/Makefile | 1 +
kernel/trace/blktrace.c | 7 +-
kernel/trace/bpf_trace.c | 102 +-
kernel/trace/fgraph.c | 6 +-
kernel/trace/ftrace.c | 373 +-
kernel/trace/pid_list.c | 495 +
kernel/trace/pid_list.h | 88 +
kernel/trace/ring_buffer.c | 14 +-
kernel/trace/trace.c | 162 +-
kernel/trace/trace.h | 19 +-
kernel/trace/trace_boot.c | 4 +
kernel/trace/trace_dynevent.c | 2 +-
kernel/trace/trace_eprobe.c | 4 +-
kernel/trace/trace_event_perf.c | 9 +-
kernel/trace/trace_events.c | 48 +-
kernel/trace/trace_events_hist.c | 528 +-
kernel/trace/trace_events_synth.c | 4 +-
kernel/trace/trace_functions.c | 5 -
kernel/trace/trace_functions_graph.c | 4 +-
kernel/trace/trace_hwlat.c | 10 +-
kernel/trace/trace_kprobe.c | 10 +-
kernel/trace/trace_osnoise.c | 651 +-
kernel/trace/trace_output.c | 17 +-
kernel/trace/trace_printk.c | 2 +-
kernel/trace/trace_recursion_record.c | 4 +-
kernel/trace/trace_selftest.c | 92 +-
kernel/trace/trace_stack.c | 6 +-
kernel/trace/trace_stat.c | 6 +-
kernel/trace/trace_uprobe.c | 4 +-
kernel/trace/tracing_map.c | 40 +-
kernel/tsacct.c | 2 +-
kernel/ucount.c | 65 +-
kernel/workqueue.c | 189 +-
lib/.gitignore | 2 +
lib/Kconfig.debug | 18 +-
lib/Kconfig.kfence | 26 +-
lib/Makefile | 35 +
lib/assoc_array.c | 22 +-
lib/audit.c | 14 +-
lib/bitmap.c | 13 +
lib/bootconfig.c | 231 +-
lib/compat_audit.c | 15 +-
lib/cpumask.c | 2 +-
lib/crypto/sm4.c | 4 +-
lib/decompress_unxz.c | 10 +-
lib/decompress_unzstd.c | 48 +-
lib/devres.c | 82 +
lib/dynamic_debug.c | 60 +-
lib/error-inject.c | 3 +-
lib/flex_proportions.c | 28 +-
lib/iov_iter.c | 103 +-
lib/kobject.c | 2 +-
lib/kunit/executor.c | 152 +-
lib/kunit/executor_test.c | 110 +-
lib/kunit/kunit-test.c | 14 +-
lib/kunit/test.c | 6 +-
lib/locking-selftest.c | 2 +-
lib/memcpy_kunit.c | 289 +
lib/raid6/Makefile | 4 +
lib/random32.c | 1 +
lib/sbitmap.c | 95 +-
lib/scatterlist.c | 11 +-
lib/stackdepot.c | 118 +-
lib/string.c | 210 +-
lib/string_helpers.c | 215 +
lib/test_bpf.c | 17416 ++++---
lib/test_fortify/read_overflow-memchr.c | 5 +
lib/test_fortify/read_overflow-memchr_inv.c | 5 +
lib/test_fortify/read_overflow-memcmp.c | 5 +
lib/test_fortify/read_overflow-memscan.c | 5 +
lib/test_fortify/read_overflow2-memcmp.c | 5 +
lib/test_fortify/read_overflow2-memcpy.c | 5 +
lib/test_fortify/read_overflow2-memmove.c | 5 +
lib/test_fortify/test_fortify.h | 35 +
lib/test_fortify/write_overflow-memcpy.c | 5 +
lib/test_fortify/write_overflow-memmove.c | 5 +
lib/test_fortify/write_overflow-memset.c | 5 +
lib/test_fortify/write_overflow-strcpy-lit.c | 5 +
lib/test_fortify/write_overflow-strcpy.c | 5 +
lib/test_fortify/write_overflow-strlcpy-src.c | 5 +
lib/test_fortify/write_overflow-strlcpy.c | 5 +
lib/test_fortify/write_overflow-strncpy-src.c | 5 +
lib/test_fortify/write_overflow-strncpy.c | 5 +
lib/test_fortify/write_overflow-strscpy.c | 5 +
lib/test_hmm.c | 5 +-
lib/test_kasan.c | 28 +-
lib/test_kasan_module.c | 2 +
lib/test_kprobes.c | 371 +
lib/test_printf.c | 61 +-
lib/test_vmalloc.c | 6 +-
lib/vsprintf.c | 14 +-
lib/xz/Kconfig | 13 +
lib/xz/xz_dec_lzma2.c | 182 +-
lib/xz/xz_dec_stream.c | 6 +-
lib/xz/xz_dec_syms.c | 9 +-
lib/xz/xz_private.h | 3 +
lib/zstd/Makefile | 46 +-
lib/zstd/bitstream.h | 380 -
lib/zstd/common/bitstream.h | 437 +
lib/zstd/common/compiler.h | 170 +
lib/zstd/common/cpu.h | 194 +
lib/zstd/common/debug.c | 24 +
lib/zstd/common/debug.h | 101 +
lib/zstd/common/entropy_common.c | 357 +
lib/zstd/common/error_private.c | 56 +
lib/zstd/common/error_private.h | 66 +
lib/zstd/common/fse.h | 710 +
lib/zstd/common/fse_decompress.c | 390 +
lib/zstd/common/huf.h | 356 +
lib/zstd/common/mem.h | 259 +
lib/zstd/common/zstd_common.c | 83 +
lib/zstd/common/zstd_deps.h | 125 +
lib/zstd/common/zstd_internal.h | 450 +
lib/zstd/compress.c | 3485 --
lib/zstd/compress/fse_compress.c | 625 +
lib/zstd/compress/hist.c | 165 +
lib/zstd/compress/hist.h | 75 +
lib/zstd/compress/huf_compress.c | 905 +
lib/zstd/compress/zstd_compress.c | 5109 ++
lib/zstd/compress/zstd_compress_internal.h | 1188 +
lib/zstd/compress/zstd_compress_literals.c | 158 +
lib/zstd/compress/zstd_compress_literals.h | 29 +
lib/zstd/compress/zstd_compress_sequences.c | 439 +
lib/zstd/compress/zstd_compress_sequences.h | 54 +
lib/zstd/compress/zstd_compress_superblock.c | 850 +
lib/zstd/compress/zstd_compress_superblock.h | 32 +
lib/zstd/compress/zstd_cwksp.h | 482 +
lib/zstd/compress/zstd_double_fast.c | 519 +
lib/zstd/compress/zstd_double_fast.h | 32 +
lib/zstd/compress/zstd_fast.c | 496 +
lib/zstd/compress/zstd_fast.h | 31 +
lib/zstd/compress/zstd_lazy.c | 1414 +
lib/zstd/compress/zstd_lazy.h | 81 +
lib/zstd/compress/zstd_ldm.c | 686 +
lib/zstd/compress/zstd_ldm.h | 110 +
lib/zstd/compress/zstd_ldm_geartab.h | 103 +
lib/zstd/compress/zstd_opt.c | 1346 +
lib/zstd/compress/zstd_opt.h | 50 +
lib/zstd/decompress.c | 2531 -
lib/zstd/decompress/huf_decompress.c | 1206 +
lib/zstd/decompress/zstd_ddict.c | 241 +
lib/zstd/decompress/zstd_ddict.h | 44 +
lib/zstd/decompress/zstd_decompress.c | 2085 +
lib/zstd/decompress/zstd_decompress_block.c | 1540 +
lib/zstd/decompress/zstd_decompress_block.h | 62 +
lib/zstd/decompress/zstd_decompress_internal.h | 202 +
lib/zstd/decompress_sources.h | 28 +
lib/zstd/entropy_common.c | 243 -
lib/zstd/error_private.h | 53 -
lib/zstd/fse.h | 575 -
lib/zstd/fse_compress.c | 795 -
lib/zstd/fse_decompress.c | 325 -
lib/zstd/huf.h | 212 -
lib/zstd/huf_compress.c | 773 -
lib/zstd/huf_decompress.c | 960 -
lib/zstd/mem.h | 151 -
lib/zstd/zstd_common.c | 75 -
lib/zstd/zstd_compress_module.c | 160 +
lib/zstd/zstd_decompress_module.c | 105 +
lib/zstd/zstd_internal.h | 273 -
lib/zstd/zstd_opt.h | 1014 -
mm/Kconfig | 17 +-
mm/Makefile | 2 +-
mm/backing-dev.c | 84 +-
mm/cma.c | 26 +-
mm/compaction.c | 14 +-
mm/damon/Kconfig | 24 +-
mm/damon/Makefile | 4 +-
mm/damon/core-test.h | 4 +-
mm/damon/core.c | 446 +-
mm/damon/dbgfs-test.h | 54 +
mm/damon/dbgfs.c | 430 +-
mm/damon/paddr.c | 273 +
mm/damon/prmtv-common.c | 133 +
mm/damon/prmtv-common.h | 20 +
mm/damon/reclaim.c | 356 +
mm/damon/vaddr-test.h | 2 +-
mm/damon/vaddr.c | 167 +-
mm/debug.c | 26 +-
mm/debug_vm_pgtable.c | 7 +-
mm/filemap.c | 658 +-
mm/folio-compat.c | 142 +
mm/gup.c | 144 +-
mm/highmem.c | 7 +-
mm/huge_memory.c | 15 +-
mm/hugetlb.c | 701 +-
mm/hugetlb_cgroup.c | 3 -
mm/internal.h | 58 +-
mm/kasan/common.c | 8 +-
mm/kasan/generic.c | 14 +-
mm/kasan/hw_tags.c | 43 +-
mm/kasan/kasan.h | 34 +-
mm/kasan/report.c | 19 +-
mm/kasan/shadow.c | 5 +
mm/kasan/sw_tags.c | 2 +-
mm/kfence/core.c | 200 +-
mm/kfence/kfence.h | 2 +
mm/kfence/kfence_test.c | 14 +-
mm/khugepaged.c | 44 +-
mm/ksm.c | 34 +-
mm/list_lru.c | 58 +-
mm/madvise.c | 15 +-
mm/memblock.c | 56 +-
mm/memcontrol.c | 569 +-
mm/memfd.c | 4 +-
mm/memory-failure.c | 141 +-
mm/memory.c | 193 +-
mm/memory_hotplug.c | 53 +-
mm/mempolicy.c | 169 +-
mm/mempool.c | 1 -
mm/memremap.c | 2 +-
mm/migrate.c | 459 +-
mm/mlock.c | 3 +-
mm/mmap.c | 5 +-
mm/mprotect.c | 5 +-
mm/mremap.c | 86 +-
mm/nommu.c | 7 -
mm/oom_kill.c | 69 +-
mm/page-writeback.c | 487 +-
mm/page_alloc.c | 141 +-
mm/page_ext.c | 6 +-
mm/page_io.c | 14 +-
mm/page_isolation.c | 29 +-
mm/page_owner.c | 38 +-
mm/percpu.c | 8 +-
mm/readahead.c | 3 +-
mm/rmap.c | 22 +-
mm/secretmem.c | 11 +-
mm/shmem.c | 38 +-
mm/slab.c | 20 +-
mm/slab_common.c | 8 -
mm/slub.c | 144 +-
mm/sparse-vmemmap.c | 2 +-
mm/sparse.c | 2 +-
mm/swap.c | 220 +-
mm/swap_state.c | 2 +-
mm/swapfile.c | 16 +-
mm/truncate.c | 19 +-
mm/userfaultfd.c | 5 +-
mm/util.c | 111 +-
mm/vmalloc.c | 112 +-
mm/vmpressure.c | 2 +-
mm/vmscan.c | 184 +-
mm/vmstat.c | 76 +-
mm/workingset.c | 62 +-
mm/zsmalloc.c | 7 +-
net/802/hippi.c | 2 +-
net/802/p8022.c | 2 +-
net/802/psnap.c | 2 +-
net/8021q/vlan.c | 3 -
net/8021q/vlan_dev.c | 9 +-
net/9p/client.c | 436 +-
net/9p/error.c | 4 +-
net/9p/mod.c | 41 +-
net/9p/protocol.c | 38 +-
net/9p/protocol.h | 4 +-
net/9p/trans_common.c | 10 +-
net/9p/trans_common.h | 12 +-
net/9p/trans_fd.c | 2 -
net/9p/trans_rdma.c | 3 +-
net/9p/trans_virtio.c | 1 +
net/9p/trans_xen.c | 26 +-
net/Kconfig | 2 +-
net/atm/br2684.c | 6 +-
net/atm/lec.c | 8 +-
net/ax25/af_ax25.c | 2 +-
net/ax25/ax25_dev.c | 2 +-
net/ax25/ax25_iface.c | 6 +-
net/ax25/ax25_in.c | 4 +-
net/ax25/ax25_out.c | 2 +-
net/batman-adv/bridge_loop_avoidance.c | 22 +-
net/batman-adv/main.c | 56 +-
net/batman-adv/multicast.c | 2 +-
net/batman-adv/network-coding.c | 4 +-
net/batman-adv/routing.c | 3 +-
net/batman-adv/soft-interface.c | 2 +-
net/batman-adv/tp_meter.c | 4 +-
net/batman-adv/translation-table.c | 4 +-
net/batman-adv/tvlv.c | 4 +-
net/batman-adv/tvlv.h | 4 +-
net/bluetooth/6lowpan.c | 4 +-
net/bluetooth/Makefile | 3 +-
net/bluetooth/bnep/core.c | 2 +-
net/bluetooth/eir.c | 335 +
net/bluetooth/eir.h | 72 +
net/bluetooth/hci_codec.c | 238 +
net/bluetooth/hci_codec.h | 7 +
net/bluetooth/hci_conn.c | 168 +-
net/bluetooth/hci_core.c | 320 +-
net/bluetooth/hci_debugfs.c | 123 +
net/bluetooth/hci_debugfs.h | 5 +
net/bluetooth/hci_event.c | 135 +-
net/bluetooth/hci_request.c | 478 +-
net/bluetooth/hci_request.h | 25 +-
net/bluetooth/hci_sock.c | 214 +-
net/bluetooth/l2cap_core.c | 2 +-
net/bluetooth/l2cap_sock.c | 10 +-
net/bluetooth/mgmt.c | 445 +-
net/bluetooth/msft.c | 172 +-
net/bluetooth/msft.h | 9 +
net/bluetooth/rfcomm/core.c | 50 +-
net/bluetooth/rfcomm/sock.c | 46 +-
net/bluetooth/sco.c | 209 +-
net/bpf/Makefile | 3 +
net/bpf/bpf_dummy_struct_ops.c | 200 +
net/bpf/test_run.c | 50 +-
net/bridge/br.c | 4 +-
net/bridge/br_fdb.c | 439 +-
net/bridge/br_if.c | 4 +-
net/bridge/br_ioctl.c | 10 +-
net/bridge/br_mdb.c | 242 +-
net/bridge/br_netfilter_hooks.c | 2 +-
net/bridge/br_netlink.c | 4 +-
net/bridge/br_private.h | 45 +-
net/bridge/br_stp_if.c | 2 +-
net/bridge/br_switchdev.c | 438 +-
net/bridge/br_vlan.c | 89 +-
net/bridge/netfilter/ebtable_broute.c | 2 +-
net/bridge/netfilter/ebtable_filter.c | 13 +-
net/bridge/netfilter/ebtable_nat.c | 12 +-
net/bridge/netfilter/ebtables.c | 17 +-
net/caif/caif_usb.c | 2 +-
net/can/bcm.c | 2 +-
net/can/isotp.c | 51 +-
net/can/j1939/j1939-priv.h | 1 +
net/can/j1939/main.c | 14 +-
net/can/j1939/transport.c | 25 +-
net/ceph/mon_client.c | 3 +-
net/ceph/osd_client.c | 60 +-
net/core/Makefile | 1 +
net/core/datagram.c | 3 +-
net/core/dev.c | 104 +-
net/core/dev_ioctl.c | 2 -
net/core/devlink.c | 825 +-
net/core/filter.c | 108 +-
net/core/flow_dissector.c | 18 +-
net/core/gen_estimator.c | 52 +-
net/core/gen_stats.c | 186 +-
net/core/neighbour.c | 204 +-
net/core/net-sysfs.c | 61 +-
net/core/net_namespace.c | 4 +
net/core/of_net.c | 170 +
net/core/page_pool.c | 10 +-
net/core/rtnetlink.c | 13 +-
net/core/selftests.c | 8 +-
net/core/skbuff.c | 99 +-
net/core/skmsg.c | 57 +-
net/core/sock.c | 104 +-
net/core/sock_destructor.h | 12 +
net/core/sock_map.c | 6 -
net/core/stream.c | 5 +-
net/core/sysctl_net_core.c | 2 +-
net/core/xdp.c | 2 -
net/dccp/dccp.h | 2 +-
net/dccp/proto.c | 14 +-
net/dsa/Kconfig | 20 +-
net/dsa/Makefile | 3 +-
net/dsa/dsa.c | 22 +-
net/dsa/dsa2.c | 86 +-
net/dsa/port.c | 27 +-
net/dsa/slave.c | 90 +-
net/dsa/switch.c | 249 +-
net/dsa/tag_8021q.c | 114 +-
net/dsa/tag_ksz.c | 1 -
net/dsa/tag_ocelot.c | 42 +
net/dsa/tag_ocelot_8021q.c | 2 +-
net/dsa/tag_rtl4_a.c | 2 +-
net/dsa/tag_rtl8_4.c | 178 +
net/dsa/tag_sja1105.c | 9 +-
net/ethernet/eth.c | 102 +-
net/ethtool/Makefile | 2 +-
net/ethtool/ioctl.c | 171 +-
net/ethtool/module.c | 180 +
net/ethtool/netlink.c | 19 +
net/ethtool/netlink.h | 4 +
net/ethtool/pause.c | 3 +-
net/hsr/hsr_device.c | 10 +-
net/hsr/hsr_forward.c | 54 +-
net/hsr/hsr_framereg.c | 65 +-
net/hsr/hsr_framereg.h | 4 +-
net/hsr/hsr_main.c | 2 +-
net/hsr/hsr_main.h | 16 +-
net/ieee802154/6lowpan/core.c | 2 +-
net/ipv4/af_inet.c | 30 +-
net/ipv4/arp.c | 11 +-
net/ipv4/bpf_tcp_ca.c | 45 +-
net/ipv4/cipso_ipv4.c | 2 +-
net/ipv4/datagram.c | 1 -
net/ipv4/devinet.c | 4 +
net/ipv4/fib_notifier.c | 1 -
net/ipv4/inet_connection_sock.c | 4 +-
net/ipv4/inet_diag.c | 2 +-
net/ipv4/inet_hashtables.c | 2 +-
net/ipv4/ip_gre.c | 2 +-
net/ipv4/ip_sockglue.c | 11 +-
net/ipv4/ip_tunnel.c | 2 +-
net/ipv4/ip_vti.c | 2 +-
net/ipv4/ipconfig.c | 12 +-
net/ipv4/ipip.c | 2 +-
net/ipv4/netfilter/arp_tables.c | 7 +-
net/ipv4/netfilter/arptable_filter.c | 10 +-
net/ipv4/netfilter/ip_tables.c | 7 +-
net/ipv4/netfilter/iptable_filter.c | 9 +-
net/ipv4/netfilter/iptable_mangle.c | 8 +-
net/ipv4/netfilter/iptable_nat.c | 15 +-
net/ipv4/netfilter/iptable_raw.c | 10 +-
net/ipv4/netfilter/iptable_security.c | 9 +-
net/ipv4/proc.c | 2 +-
net/ipv4/route.c | 8 -
net/ipv4/syncookies.c | 2 -
net/ipv4/sysctl_net_ipv4.c | 21 -
net/ipv4/tcp.c | 160 +-
net/ipv4/tcp_bbr.c | 28 +-
net/ipv4/tcp_bpf.c | 75 +-
net/ipv4/tcp_cubic.c | 26 +-
net/ipv4/tcp_dctcp.c | 26 +-
net/ipv4/tcp_fastopen.c | 6 -
net/ipv4/tcp_input.c | 37 +-
net/ipv4/tcp_ipv4.c | 76 +-
net/ipv4/tcp_minisocks.c | 7 -
net/ipv4/tcp_nv.c | 1 -
net/ipv4/tcp_output.c | 66 +-
net/ipv4/tcp_rate.c | 6 +
net/ipv4/udp.c | 4 +-
net/ipv4/udp_bpf.c | 1 +
net/ipv4/udp_tunnel_core.c | 3 -
net/ipv4/xfrm4_tunnel.c | 2 -
net/ipv6/Kconfig | 6 +-
net/ipv6/Makefile | 11 +-
net/ipv6/addrconf.c | 19 +-
net/ipv6/af_inet6.c | 21 +-
net/ipv6/exthdrs.c | 2 +-
net/ipv6/ila/ila_xlat.c | 6 +-
net/ipv6/ioam6.c | 11 +-
net/ipv6/ioam6_iptunnel.c | 300 +-
net/ipv6/ip6_gre.c | 4 +-
net/ipv6/ip6_output.c | 3 +-
net/ipv6/ip6_tunnel.c | 2 +-
net/ipv6/ip6_vti.c | 2 +-
net/ipv6/ipv6_sockglue.c | 11 +-
net/ipv6/ndisc.c | 16 +-
net/ipv6/netfilter/ip6_tables.c | 6 +-
net/ipv6/netfilter/ip6t_rt.c | 48 +-
net/ipv6/netfilter/ip6table_filter.c | 10 +-
net/ipv6/netfilter/ip6table_mangle.c | 8 +-
net/ipv6/netfilter/ip6table_nat.c | 15 +-
net/ipv6/netfilter/ip6table_raw.c | 10 +-
net/ipv6/netfilter/ip6table_security.c | 9 +-
net/ipv6/route.c | 24 +-
net/ipv6/seg6.c | 8 +-
net/ipv6/seg6_hmac.c | 4 +-
net/ipv6/sit.c | 4 +-
net/ipv6/tcp_ipv6.c | 58 +-
net/ipv6/udp.c | 12 +-
net/llc/llc_c_ac.c | 2 +-
net/llc/llc_if.c | 2 +-
net/llc/llc_output.c | 2 +-
net/llc/llc_proc.c | 2 +-
net/mac80211/agg-rx.c | 14 +-
net/mac80211/cfg.c | 38 +
net/mac80211/debugfs_sta.c | 123 +-
net/mac80211/fils_aead.c | 22 +-
net/mac80211/ibss.c | 33 +-
net/mac80211/ieee80211_i.h | 35 +-
net/mac80211/iface.c | 39 +-
net/mac80211/mesh.c | 96 +-
net/mac80211/mesh_hwmp.c | 44 +-
net/mac80211/mesh_plink.c | 11 +-
net/mac80211/mesh_sync.c | 26 +-
net/mac80211/mlme.c | 355 +-
net/mac80211/pm.c | 4 +
net/mac80211/rx.c | 12 +-
net/mac80211/s1g.c | 8 +-
net/mac80211/scan.c | 16 +-
net/mac80211/sta_info.c | 3 +
net/mac80211/tdls.c | 63 +-
net/mac80211/tx.c | 206 +-
net/mac80211/util.c | 40 +-
net/mac802154/iface.c | 17 +-
net/mctp/Kconfig | 12 +-
net/mctp/Makefile | 3 +
net/mctp/af_mctp.c | 174 +-
net/mctp/device.c | 104 +-
net/mctp/neigh.c | 4 +-
net/mctp/route.c | 362 +-
net/mctp/test/route-test.c | 544 +
net/mctp/test/utils.c | 67 +
net/mctp/test/utils.h | 20 +
net/mptcp/mib.c | 17 +-
net/mptcp/mptcp_diag.c | 26 +-
net/mptcp/options.c | 54 +-
net/mptcp/pm_netlink.c | 9 +-
net/mptcp/protocol.c | 447 +-
net/mptcp/protocol.h | 19 +-
net/mptcp/sockopt.c | 279 +
net/netfilter/Kconfig | 13 +-
net/netfilter/core.c | 38 +-
net/netfilter/ipvs/ip_vs_core.c | 166 +-
net/netfilter/ipvs/ip_vs_ctl.c | 16 +-
net/netfilter/ipvs/ip_vs_est.c | 5 +
net/netfilter/nf_conntrack_proto.c | 16 +
net/netfilter/nf_conntrack_proto_udp.c | 7 +-
net/netfilter/nf_nat_core.c | 12 +-
net/netfilter/nf_tables_core.c | 2 +-
net/netfilter/nf_tables_trace.c | 4 +-
net/netfilter/nfnetlink_hook.c | 16 +-
net/netfilter/nfnetlink_queue.c | 2 +-
net/netfilter/nft_chain_filter.c | 13 +-
net/netfilter/nft_dynset.c | 11 +-
net/netfilter/nft_meta.c | 8 +-
net/netfilter/nft_payload.c | 60 +-
net/netfilter/xt_IDLETIMER.c | 2 +-
net/netfilter/xt_RATEEST.c | 7 +-
net/netlink/af_netlink.c | 23 +-
net/netrom/af_netrom.c | 4 +-
net/netrom/nr_dev.c | 8 +-
net/netrom/nr_route.c | 4 +-
net/nfc/hci/command.c | 16 -
net/nfc/hci/llc_shdlc.c | 35 +-
net/nfc/llcp_commands.c | 8 -
net/nfc/llcp_core.c | 5 +-
net/nfc/nci/core.c | 4 -
net/nfc/nci/hci.c | 4 -
net/nfc/nci/ntf.c | 9 -
net/nfc/nci/uart.c | 18 +-
net/nfc/netlink.c | 15 +
net/openvswitch/meter.c | 1 -
net/packet/af_packet.c | 35 +
net/qrtr/Makefile | 3 +-
net/qrtr/{qrtr.c => af_qrtr.c} | 0
net/rose/af_rose.c | 5 +-
net/rose/rose_dev.c | 8 +-
net/rose/rose_link.c | 8 +-
net/rose/rose_route.c | 10 +-
net/rxrpc/rtt.c | 2 +-
net/sched/act_api.c | 21 +-
net/sched/act_bpf.c | 2 +-
net/sched/act_ct.c | 2 +-
net/sched/act_ife.c | 4 +-
net/sched/act_mpls.c | 2 +-
net/sched/act_police.c | 4 +-
net/sched/act_sample.c | 2 +-
net/sched/act_simple.c | 3 +-
net/sched/act_skbedit.c | 2 +-
net/sched/act_skbmod.c | 2 +-
net/sched/cls_flower.c | 3 +-
net/sched/em_meta.c | 2 +-
net/sched/sch_api.c | 25 +-
net/sched/sch_atm.c | 6 +-
net/sched/sch_cbq.c | 15 +-
net/sched/sch_drr.c | 13 +-
net/sched/sch_ets.c | 17 +-
net/sched/sch_fq_codel.c | 20 +-
net/sched/sch_generic.c | 84 +-
net/sched/sch_gred.c | 65 +-
net/sched/sch_hfsc.c | 11 +-
net/sched/sch_htb.c | 51 +-
net/sched/sch_mq.c | 31 +-
net/sched/sch_mqprio.c | 64 +-
net/sched/sch_multiq.c | 3 +-
net/sched/sch_netem.c | 2 +-
net/sched/sch_prio.c | 4 +-
net/sched/sch_qfq.c | 13 +-
net/sched/sch_taprio.c | 29 +-
net/sched/sch_tbf.c | 16 +
net/sctp/output.c | 13 +-
net/sctp/protocol.c | 1 -
net/sctp/sm_statefuns.c | 171 +-
net/sctp/socket.c | 5 +-
net/sctp/transport.c | 11 +-
net/smc/Makefile | 2 +
net/smc/af_smc.c | 469 +-
net/smc/smc.h | 23 +-
net/smc/smc_clc.c | 463 +-
net/smc/smc_clc.h | 72 +-
net/smc/smc_core.c | 192 +-
net/smc/smc_core.h | 51 +-
net/smc/smc_ib.c | 160 +-
net/smc/smc_ib.h | 16 +-
net/smc/smc_ism.c | 16 +-
net/smc/smc_ism.h | 2 +-
net/smc/smc_llc.c | 625 +-
net/smc/smc_llc.h | 12 +-
net/smc/smc_netlink.c | 47 +-
net/smc/smc_netlink.h | 2 +
net/smc/smc_pnet.c | 41 +-
net/smc/smc_rx.c | 3 +
net/smc/smc_tracepoint.c | 9 +
net/smc/smc_tracepoint.h | 116 +
net/smc/smc_tx.c | 3 +
net/smc/smc_wr.c | 237 +-
net/smc/smc_wr.h | 8 +
net/strparser/strparser.c | 10 +-
net/sunrpc/addr.c | 40 +-
net/sunrpc/auth_gss/svcauth_gss.c | 2 +-
net/sunrpc/clnt.c | 33 +-
net/sunrpc/sched.c | 20 +-
net/sunrpc/svc.c | 80 +-
net/sunrpc/svc_xprt.c | 1 +
net/sunrpc/sysfs.c | 12 +-
net/sunrpc/xdr.c | 32 +-
net/sunrpc/xprt.c | 41 +-
net/sunrpc/xprtrdma/frwr_ops.c | 48 +-
net/sunrpc/xprtrdma/rpc_rdma.c | 23 +-
net/sunrpc/xprtrdma/svc_rdma_recvfrom.c | 9 +-
net/sunrpc/xprtrdma/svc_rdma_rw.c | 30 +-
net/sunrpc/xprtrdma/svc_rdma_sendto.c | 14 +-
net/sunrpc/xprtrdma/verbs.c | 3 +-
net/sunrpc/xprtrdma/xprt_rdma.h | 6 +-
net/sunrpc/xprtsock.c | 109 +-
net/switchdev/switchdev.c | 156 +-
net/sysctl_net.c | 2 +-
net/tipc/bearer.c | 4 +-
net/tipc/bearer.h | 2 +-
net/tipc/crypto.c | 32 +-
net/tipc/eth_media.c | 2 +-
net/tipc/ib_media.c | 2 +-
net/tls/tls_main.c | 92 +-
net/tls/tls_sw.c | 75 +-
net/unix/af_unix.c | 4 +
net/unix/unix_bpf.c | 2 +
net/vmw_vsock/af_vsock.c | 82 +-
net/wireless/Makefile | 4 +-
net/wireless/core.c | 12 +-
net/wireless/core.h | 2 +
net/wireless/mlme.c | 26 +-
net/wireless/nl80211.c | 452 +-
net/wireless/rdev-ops.h | 14 +
net/wireless/scan.c | 66 +-
net/wireless/trace.h | 31 +
net/wireless/util.c | 16 +-
net/xdp/xsk.c | 15 -
net/xdp/xsk_buff_pool.c | 132 +-
net/xdp/xsk_queue.h | 12 +-
net/xfrm/xfrm_input.c | 4 +-
net/xfrm/xfrm_policy.c | 4 +-
net/xfrm/xfrm_user.c | 2 +-
samples/Kconfig | 17 +-
samples/Makefile | 2 +
samples/bpf/.gitignore | 4 +
samples/bpf/Makefile | 47 +-
samples/bpf/xdp1_user.c | 2 +-
samples/bpf/xdp_redirect_cpu_user.c | 6 +-
samples/bpf/xdp_router_ipv4_user.c | 39 +-
samples/bpf/xdp_sample_pkts_user.c | 2 +-
samples/fanotify/.gitignore | 1 +
samples/fanotify/Makefile | 5 +
samples/fanotify/fs-monitor.c | 142 +
samples/ftrace/Makefile | 1 +
samples/ftrace/ftrace-direct-modify.c | 44 +
samples/ftrace/ftrace-direct-multi.c | 54 +
samples/ftrace/ftrace-direct-too.c | 28 +
samples/ftrace/ftrace-direct.c | 28 +
samples/kfifo/bytestream-example.c | 12 +-
samples/kfifo/inttype-example.c | 12 +-
samples/kfifo/record-example.c | 12 +-
samples/kprobes/kretprobe_example.c | 2 +-
samples/nitro_enclaves/ne_ioctl_sample.c | 7 +-
samples/seccomp/bpf-helper.h | 8 +-
samples/vfio-mdev/mbochs.c | 3 +-
samples/vfio-mdev/mdpy.c | 2 +-
samples/vfio-mdev/mtty.c | 2 +-
scripts/Makefile.build | 63 +-
scripts/Makefile.debug | 33 +
scripts/Makefile.gcc-plugins | 2 -
scripts/Makefile.lib | 12 -
scripts/Makefile.modfinal | 3 +-
scripts/Makefile.package | 10 +-
scripts/bpf_doc.py | 2 +
scripts/checkpatch.pl | 36 +-
scripts/coccinelle/misc/do_div.cocci | 155 +
scripts/const_structs.checkpatch | 4 +
scripts/decodecode | 2 +-
scripts/documentation-file-ref-check | 4 +
scripts/dtc/checks.c | 222 +-
scripts/dtc/dtc-lexer.l | 2 +-
scripts/dtc/dtc.c | 6 +-
scripts/dtc/dtc.h | 40 +-
scripts/dtc/flattree.c | 11 +-
scripts/dtc/libfdt/fdt.c | 4 +
scripts/dtc/libfdt/fdt_rw.c | 18 +-
scripts/dtc/libfdt/fdt_strerror.c | 1 +
scripts/dtc/libfdt/libfdt.h | 7 +
scripts/dtc/livetree.c | 6 +-
scripts/dtc/treesource.c | 48 +-
scripts/dtc/util.h | 6 +-
scripts/dtc/version_gen.h | 2 +-
scripts/dtc/yamltree.c | 16 +-
scripts/gcc-plugins/Kconfig | 20 +-
scripts/gcc-plugins/arm_ssp_per_task_plugin.c | 27 +-
scripts/gcc-plugins/cyc_complexity_plugin.c | 69 -
scripts/gcc-plugins/gcc-common.h | 132 +-
scripts/gcc-plugins/gcc-generate-gimple-pass.h | 19 -
scripts/gcc-plugins/gcc-generate-ipa-pass.h | 19 -
scripts/gcc-plugins/gcc-generate-rtl-pass.h | 19 -
scripts/gcc-plugins/gcc-generate-simple_ipa-pass.h | 19 -
scripts/gcc-plugins/structleak_plugin.c | 2 -
scripts/gdb/linux/symbols.py | 3 +-
scripts/get_abi.pl | 493 +-
scripts/kconfig/conf.c | 15 +-
scripts/kconfig/confdata.c | 441 +-
scripts/kconfig/lexer.l | 9 +-
scripts/kconfig/lkc_proto.h | 2 +-
scripts/kconfig/menu.c | 33 +-
scripts/kconfig/symbol.c | 43 -
scripts/kernel-doc | 11 +
scripts/leaking_addresses.pl | 3 +-
scripts/link-vmlinux.sh | 17 +-
scripts/package/buildtar | 4 +
scripts/pahole-flags.sh | 20 +
scripts/remove-stale-files | 5 +
scripts/sorttable.c | 34 +-
scripts/spelling.txt | 16 +
scripts/tags.sh | 6 +-
scripts/test_fortify.sh | 62 +
security/Kconfig | 17 +-
security/Kconfig.hardening | 14 +-
security/apparmor/apparmorfs.c | 17 +-
security/apparmor/include/file.h | 2 +-
security/apparmor/include/label.h | 5 +-
security/apparmor/include/lib.h | 9 +-
security/apparmor/include/policy.h | 6 +-
security/apparmor/label.c | 7 +-
security/apparmor/lsm.c | 42 +-
security/apparmor/path.c | 2 +-
security/apparmor/policy.c | 62 +-
security/apparmor/policy_unpack.c | 2 +-
security/apparmor/procattr.c | 2 -
security/integrity/evm/evm_main.c | 2 +-
security/integrity/ima/ima_api.c | 2 +-
security/integrity/ima/ima_policy.c | 243 +-
security/keys/process_keys.c | 8 +
security/lsm_audit.c | 2 +-
security/security.c | 43 +-
security/selinux/avc.c | 13 +-
security/selinux/hooks.c | 261 +-
security/selinux/include/classmap.h | 4 +-
security/selinux/include/netlabel.h | 4 +-
security/selinux/netlabel.c | 25 +-
security/selinux/netport.c | 2 +-
security/selinux/ss/hashtab.c | 1 +
security/selinux/ss/mls.c | 4 +
security/selinux/ss/services.c | 176 +-
security/smack/smack_lsm.c | 87 +-
security/smack/smack_netfilter.c | 26 +-
security/smack/smackfs.c | 11 +-
sound/core/Makefile | 2 +
sound/core/memalloc.c | 220 +-
sound/core/memalloc_local.h | 1 +
sound/core/oss/mixer_oss.c | 44 +-
sound/core/pcm_compat.c | 4 +
sound/core/pcm_dmaengine.c | 5 +-
sound/core/pcm_lib.c | 22 +
sound/core/pcm_local.h | 7 +
sound/core/pcm_memory.c | 13 +-
sound/core/pcm_native.c | 66 +-
sound/core/timer.c | 17 +-
sound/firewire/Kconfig | 3 +
sound/firewire/fireworks/fireworks_stream.c | 5 +-
sound/firewire/motu/Makefile | 3 +-
sound/firewire/motu/amdtp-motu.c | 11 +-
.../motu/motu-command-dsp-message-parser.c | 181 +
sound/firewire/motu/motu-hwdep.c | 119 +-
sound/firewire/motu/motu-protocol-v2.c | 14 +-
sound/firewire/motu/motu-protocol-v3.c | 47 +-
.../motu/motu-register-dsp-message-parser.c | 420 +
sound/firewire/motu/motu-stream.c | 10 +
sound/firewire/motu/motu.c | 12 +
sound/firewire/motu/motu.h | 25 +
sound/firewire/oxfw/oxfw-stream.c | 7 +-
sound/firewire/oxfw/oxfw.c | 8 +
sound/firewire/oxfw/oxfw.h | 5 +
sound/hda/ext/hdac_ext_stream.c | 46 +-
sound/hda/hdac_stream.c | 4 +-
sound/isa/Kconfig | 2 +-
sound/isa/gus/gus_dma.c | 2 +
sound/pci/Kconfig | 1 +
sound/pci/hda/hda_intel.c | 53 +-
sound/pci/hda/patch_realtek.c | 83 +
sound/pci/rme9652/hdsp.c | 41 +-
sound/pci/rme9652/rme9652.c | 41 +-
sound/soc/amd/Kconfig | 9 +-
sound/soc/amd/Makefile | 2 +
sound/soc/amd/acp-config.c | 124 +
sound/soc/amd/acp-da7219-max98357a.c | 20 +-
sound/soc/amd/acp-pcm-dma.c | 15 +-
sound/soc/amd/acp-rt5645.c | 4 +-
sound/soc/amd/acp.h | 1 +
sound/soc/amd/acp/Kconfig | 8 +-
sound/soc/amd/acp/acp-legacy-mach.c | 19 +-
sound/soc/amd/acp/acp-mach-common.c | 25 +
sound/soc/amd/acp/acp-mach.h | 10 +-
sound/soc/amd/acp/acp-sof-mach.c | 21 +-
sound/soc/amd/acp3x-rt5682-max9836.c | 8 +-
sound/soc/amd/mach-config.h | 28 +
sound/soc/amd/yc/acp6x-pdm-dma.c | 2 +-
sound/soc/atmel/mikroe-proto.c | 6 +-
sound/soc/atmel/tse850-pcm5142.c | 32 +-
sound/soc/bcm/bcm63xx-i2s.h | 1 -
sound/soc/bcm/bcm63xx-pcm-whistler.c | 13 +-
sound/soc/cirrus/ep93xx-i2s.c | 12 +-
sound/soc/codecs/Kconfig | 36 +-
sound/soc/codecs/Makefile | 12 +-
sound/soc/codecs/adau1701.c | 94 +-
sound/soc/codecs/ak4118.c | 18 +-
sound/soc/codecs/ak4375.c | 612 +
sound/soc/codecs/cs35l35.c | 2 +-
sound/soc/codecs/cs35l41-i2c.c | 16 -
sound/soc/codecs/cs35l41-lib.c | 1070 +
sound/soc/codecs/cs35l41-spi.c | 17 -
sound/soc/codecs/cs35l41-tables.c | 594 -
sound/soc/codecs/cs35l41.c | 666 +-
sound/soc/codecs/cs35l41.h | 747 +-
sound/soc/codecs/cs4265.c | 4 +-
sound/soc/codecs/cs42l42.c | 94 +-
sound/soc/codecs/cs42l42.h | 6 +-
sound/soc/codecs/cx20442.c | 3 +-
sound/soc/codecs/es7241.c | 28 +-
sound/soc/codecs/hdac_hda.c | 22 +-
sound/soc/codecs/jz4770.c | 9 +
sound/soc/codecs/max9759.c | 28 +-
sound/soc/codecs/max98373-sdw.c | 2 +-
sound/soc/codecs/max9860.c | 12 +-
sound/soc/codecs/msm8916-wcd-analog.c | 7 +-
sound/soc/codecs/mt6660.c | 5 +-
sound/soc/codecs/pcm3168a.c | 22 +-
sound/soc/codecs/rt1308-sdw.c | 2 +-
sound/soc/codecs/rt1316-sdw.c | 2 +-
sound/soc/codecs/rt5640.c | 106 +-
sound/soc/codecs/rt5663.c | 12 +-
sound/soc/codecs/rt5682-sdw.c | 2 +-
sound/soc/codecs/rt5682.c | 7 +-
sound/soc/codecs/rt5682s.c | 34 +-
sound/soc/codecs/rt700.c | 2 +-
sound/soc/codecs/rt711-sdca.c | 2 +-
sound/soc/codecs/rt711.c | 2 +-
sound/soc/codecs/rt715-sdca.c | 2 +-
sound/soc/codecs/rt715.c | 2 +-
sound/soc/codecs/sdw-mockup.c | 2 +-
sound/soc/codecs/sgtl5000.c | 5 +-
sound/soc/codecs/simple-amplifier.c | 10 +-
sound/soc/codecs/simple-mux.c | 10 +-
sound/soc/codecs/ssm2305.c | 11 +-
sound/soc/codecs/tfa989x.c | 20 +-
sound/soc/codecs/tlv320adc3xxx.c | 1317 +
sound/soc/codecs/tlv320aic31xx.c | 121 +-
sound/soc/codecs/tlv320aic31xx.h | 2 +-
sound/soc/codecs/wcd-mbhc-v2.c | 76 +-
sound/soc/codecs/wcd934x.c | 6 +-
sound/soc/codecs/wcd938x.c | 8 +-
sound/soc/codecs/wm_adsp.c | 47 +-
sound/soc/codecs/wsa881x.c | 2 +-
sound/soc/codecs/zl38060.c | 4 +-
sound/soc/fsl/Kconfig | 1 +
sound/soc/fsl/fsl-asoc-card.c | 15 +-
sound/soc/fsl/fsl_mqs.c | 2 +-
sound/soc/fsl/imx-card.c | 17 +-
sound/soc/fsl/imx-hdmi.c | 2 +
sound/soc/fsl/imx-sgtl5000.c | 4 +-
sound/soc/fsl/imx-spdif.c | 4 +-
sound/soc/generic/audio-graph-card.c | 5 +-
sound/soc/generic/audio-graph-card2.c | 4 +-
sound/soc/generic/simple-card-utils.c | 45 +-
sound/soc/generic/simple-card.c | 3 +-
sound/soc/generic/test-component.c | 5 +-
sound/soc/img/img-i2s-in.c | 8 +-
sound/soc/img/img-i2s-out.c | 24 +-
sound/soc/img/img-parallel-out.c | 24 +-
sound/soc/img/img-spdif-in.c | 8 +-
sound/soc/img/img-spdif-out.c | 24 +-
sound/soc/img/pistachio-internal-dac.c | 9 +-
sound/soc/intel/atom/sst-mfld-platform-pcm.c | 14 +-
sound/soc/intel/boards/Kconfig | 20 +
sound/soc/intel/boards/Makefile | 2 +
sound/soc/intel/boards/bytcht_cx2072x.c | 2 +-
sound/soc/intel/boards/bytcht_nocodec.c | 2 +-
sound/soc/intel/boards/hda_dsp_common.c | 2 +-
sound/soc/intel/boards/sof_maxim_common.c | 180 +
sound/soc/intel/boards/sof_maxim_common.h | 16 +
sound/soc/intel/boards/sof_nau8825.c | 651 +
sound/soc/intel/boards/sof_realtek_common.c | 119 +-
sound/soc/intel/boards/sof_realtek_common.h | 7 +
sound/soc/intel/boards/sof_rt5682.c | 179 +-
sound/soc/intel/boards/sof_sdw.c | 158 +-
sound/soc/intel/boards/sof_sdw_common.h | 7 +-
sound/soc/intel/boards/sof_sdw_rt715.c | 7 -
sound/soc/intel/boards/sof_sdw_rt715_sdca.c | 7 -
sound/soc/intel/catpt/dsp.c | 14 +-
sound/soc/intel/catpt/pcm.c | 37 +-
sound/soc/intel/common/soc-acpi-intel-adl-match.c | 48 +
sound/soc/intel/common/soc-intel-quirks.h | 51 +-
sound/soc/intel/skylake/skl-pcm.c | 7 +-
sound/soc/mediatek/Kconfig | 2 +
sound/soc/mediatek/mt2701/mt2701-afe-pcm.c | 2 -
sound/soc/mediatek/mt6797/mt6797-afe-pcm.c | 2 -
sound/soc/mediatek/mt8173/mt8173-max98090.c | 8 +-
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c | 7 +-
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c | 7 +-
sound/soc/mediatek/mt8173/mt8173-rt5650.c | 7 +-
sound/soc/mediatek/mt8183/mt8183-afe-pcm.c | 2 -
sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c | 21 +-
.../mt8183/mt8183-mt6358-ts3a227-max98357.c | 26 +-
sound/soc/mediatek/mt8192/mt8192-afe-pcm.c | 2 -
.../mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c | 17 +-
sound/soc/mediatek/mt8195/mt8195-afe-clk.c | 12 +-
sound/soc/mediatek/mt8195/mt8195-afe-pcm.c | 9 +-
sound/soc/mediatek/mt8195/mt8195-dai-pcm.c | 73 +-
.../mediatek/mt8195/mt8195-mt6359-rt1011-rt5682.c | 147 +-
.../mediatek/mt8195/mt8195-mt6359-rt1019-rt5682.c | 470 +-
sound/soc/mediatek/mt8195/mt8195-reg.h | 1 +
sound/soc/meson/aiu.c | 36 +-
sound/soc/meson/axg-fifo.c | 16 +-
sound/soc/meson/axg-pdm.c | 25 +-
sound/soc/meson/axg-spdifin.c | 17 +-
sound/soc/meson/axg-spdifout.c | 17 +-
sound/soc/meson/axg-tdm-formatter.c | 50 +-
sound/soc/meson/axg-tdm-interface.c | 25 +-
sound/soc/meson/meson-card-utils.c | 8 +-
sound/soc/meson/t9015.c | 14 +-
sound/soc/mxs/mxs-sgtl5000.c | 8 +-
sound/soc/qcom/Kconfig | 1 +
sound/soc/qcom/apq8016_sbc.c | 134 +-
sound/soc/qcom/common.c | 20 +-
sound/soc/qcom/qdsp6/q6apm.c | 14 +-
sound/soc/qcom/sc7180.c | 24 +-
sound/soc/qcom/sdm845.c | 14 +-
sound/soc/qcom/sm8250.c | 4 +-
sound/soc/rockchip/rk3288_hdmi_analog.c | 10 +-
sound/soc/samsung/aries_wm8994.c | 17 +-
sound/soc/samsung/arndale.c | 5 +-
sound/soc/samsung/idma.c | 2 +
sound/soc/samsung/littlemill.c | 5 +-
sound/soc/samsung/lowland.c | 5 +-
sound/soc/samsung/odroid.c | 4 +-
sound/soc/samsung/smdk_wm8994.c | 4 +-
sound/soc/samsung/smdk_wm8994pcm.c | 4 +-
sound/soc/samsung/snow.c | 9 +-
sound/soc/samsung/speyside.c | 5 +-
sound/soc/samsung/tm2_wm5110.c | 3 +-
sound/soc/samsung/tobermory.c | 5 +-
sound/soc/sh/rz-ssi.c | 7 +-
sound/soc/soc-component.c | 28 +
sound/soc/soc-core.c | 51 +-
sound/soc/soc-dai.c | 40 +-
sound/soc/soc-pcm.c | 380 +-
sound/soc/sof/Kconfig | 18 +-
sound/soc/sof/Makefile | 4 +-
sound/soc/sof/amd/Kconfig | 33 +
sound/soc/sof/amd/Makefile | 11 +
sound/soc/sof/amd/acp-dsp-offset.h | 78 +
sound/soc/sof/amd/acp-ipc.c | 187 +
sound/soc/sof/amd/acp-loader.c | 199 +
sound/soc/sof/amd/acp-pcm.c | 82 +
sound/soc/sof/amd/acp-stream.c | 181 +
sound/soc/sof/amd/acp-trace.c | 84 +
sound/soc/sof/amd/acp.c | 446 +
sound/soc/sof/amd/acp.h | 226 +
sound/soc/sof/amd/pci-rn.c | 165 +
sound/soc/sof/amd/renoir.c | 186 +
sound/soc/sof/control.c | 61 +-
sound/soc/sof/core.c | 135 +-
sound/soc/sof/debug.c | 142 +-
sound/soc/sof/imx/Kconfig | 46 +-
sound/soc/sof/imx/imx-common.c | 28 +-
sound/soc/sof/imx/imx-common.h | 11 +
sound/soc/sof/imx/imx-ops.h | 10 -
sound/soc/sof/imx/imx8.c | 220 +-
sound/soc/sof/imx/imx8m.c | 260 +-
sound/soc/sof/intel/apl.c | 7 +-
sound/soc/sof/intel/atom.c | 64 +-
sound/soc/sof/intel/atom.h | 4 +-
sound/soc/sof/intel/bdw.c | 71 +-
sound/soc/sof/intel/byt.c | 9 +
sound/soc/sof/intel/cnl.c | 34 +-
sound/soc/sof/intel/hda-codec.c | 3 +-
sound/soc/sof/intel/hda-ctrl.c | 2 +-
sound/soc/sof/intel/hda-dai.c | 104 +-
sound/soc/sof/intel/hda-dsp.c | 52 +-
sound/soc/sof/intel/hda-ipc.c | 48 +-
sound/soc/sof/intel/hda-loader.c | 104 +-
sound/soc/sof/intel/hda-pcm.c | 127 +-
sound/soc/sof/intel/hda-stream.c | 109 +-
sound/soc/sof/intel/hda.c | 139 +-
sound/soc/sof/intel/hda.h | 22 +-
sound/soc/sof/intel/icl.c | 73 +-
sound/soc/sof/intel/pci-tng.c | 9 +
sound/soc/sof/intel/shim.h | 11 +
sound/soc/sof/intel/tgl.c | 47 +-
sound/soc/sof/ipc.c | 134 +-
sound/soc/sof/loader.c | 16 +-
sound/soc/sof/mediatek/Kconfig | 33 +
sound/soc/sof/mediatek/Makefile | 2 +
sound/soc/sof/mediatek/adsp_helper.h | 49 +
sound/soc/sof/mediatek/mt8195/Makefile | 3 +
sound/soc/sof/mediatek/mt8195/mt8195-clk.c | 158 +
sound/soc/sof/mediatek/mt8195/mt8195-clk.h | 28 +
sound/soc/sof/mediatek/mt8195/mt8195-loader.c | 56 +
sound/soc/sof/mediatek/mt8195/mt8195.c | 463 +
sound/soc/sof/mediatek/mt8195/mt8195.h | 158 +
sound/soc/sof/ops.c | 47 +-
sound/soc/sof/ops.h | 93 +-
sound/soc/sof/pcm.c | 118 +-
sound/soc/sof/pm.c | 10 +
sound/soc/sof/sof-audio.c | 239 +-
sound/soc/sof/sof-audio.h | 17 +-
sound/soc/sof/sof-of-dev.c | 68 +-
sound/soc/sof/sof-of-dev.h | 17 +
sound/soc/sof/sof-pci-dev.c | 19 +-
sound/soc/sof/sof-priv.h | 82 +-
sound/soc/sof/sof-probes.c | 2 +-
sound/soc/sof/sof-probes.h | 2 +-
sound/soc/sof/topology.c | 292 +-
sound/soc/sof/trace.c | 18 +
sound/soc/sof/xtensa/core.c | 44 +-
sound/soc/stm/stm32_adfsdm.c | 5 +-
sound/soc/stm/stm32_i2s.c | 66 +-
sound/soc/stm/stm32_sai.c | 37 +-
sound/soc/stm/stm32_sai_sub.c | 29 +-
sound/soc/stm/stm32_spdifrx.c | 48 +-
sound/soc/sunxi/sun4i-codec.c | 3 +-
sound/soc/sunxi/sun4i-spdif.c | 115 +
sound/soc/sunxi/sun8i-codec.c | 56 +
sound/soc/tegra/tegra20_i2s.c | 49 +
sound/soc/tegra/tegra20_spdif.c | 197 +-
sound/soc/tegra/tegra20_spdif.h | 1 +
sound/soc/tegra/tegra210_mvc.c | 209 +-
sound/soc/tegra/tegra210_mvc.h | 5 +
sound/soc/tegra/tegra_pcm.c | 6 +
sound/soc/tegra/tegra_pcm.h | 1 +
sound/soc/ti/ams-delta.c | 3 +-
sound/soc/ti/davinci-mcasp.c | 21 +-
sound/soc/ti/j721e-evm.c | 10 +-
sound/soc/uniphier/Kconfig | 2 -
sound/soc/xilinx/xlnx_spdif.c | 10 +-
sound/synth/emux/emux.c | 2 +-
sound/usb/6fire/comm.c | 2 +-
sound/usb/6fire/firmware.c | 6 +-
sound/usb/card.h | 11 +-
sound/usb/clock.c | 8 +-
sound/usb/endpoint.c | 230 +-
sound/usb/endpoint.h | 13 +-
sound/usb/format.c | 1 +
sound/usb/implicit.c | 2 -
sound/usb/line6/driver.c | 14 +-
sound/usb/line6/driver.h | 2 +-
sound/usb/line6/podhd.c | 6 +-
sound/usb/line6/toneport.c | 2 +-
sound/usb/misc/ua101.c | 4 +-
sound/usb/mixer.c | 49 +-
sound/usb/mixer_quirks.c | 34 +
sound/usb/pcm.c | 164 +-
sound/usb/quirks-table.h | 90 +
sound/usb/quirks.c | 12 +
sound/usb/usx2y/usbusx2yaudio.c | 11 +-
sound/virtio/virtio_pcm_msg.c | 5 +-
tools/Makefile | 27 +-
tools/arch/arm64/include/asm/sysreg.h | 1296 +
tools/arch/powerpc/include/uapi/asm/perf_regs.h | 28 +-
tools/arch/x86/include/asm/msr-index.h | 2 +
tools/arch/x86/include/asm/pvclock-abi.h | 48 +
tools/arch/x86/include/asm/pvclock.h | 103 +
tools/arch/x86/include/uapi/asm/prctl.h | 4 +
tools/arch/x86/lib/insn.c | 5 +-
tools/bootconfig/Makefile | 4 +-
tools/bootconfig/include/linux/bootconfig.h | 45 +-
tools/bootconfig/include/linux/bug.h | 12 -
tools/bootconfig/include/linux/ctype.h | 7 -
tools/bootconfig/include/linux/errno.h | 7 -
tools/bootconfig/include/linux/kernel.h | 18 -
tools/bootconfig/include/linux/memblock.h | 11 -
tools/bootconfig/include/linux/printk.h | 14 -
tools/bootconfig/include/linux/string.h | 32 -
tools/bootconfig/main.c | 32 +-
tools/bpf/bpftool/Makefile | 83 +-
tools/bpf/bpftool/btf.c | 156 +-
tools/bpf/bpftool/common.c | 50 +-
tools/bpf/bpftool/feature.c | 1 +
tools/bpf/bpftool/gen.c | 195 +-
tools/bpf/bpftool/iter.c | 2 +-
tools/bpf/bpftool/link.c | 45 +-
tools/bpf/bpftool/main.c | 17 +-
tools/bpf/bpftool/main.h | 54 +-
tools/bpf/bpftool/map.c | 45 +-
tools/bpf/bpftool/map_perf_ring.c | 1 -
tools/bpf/bpftool/pids.c | 90 +-
tools/bpf/bpftool/prog.c | 64 +-
tools/bpf/resolve_btfids/Makefile | 19 +-
tools/bpf/resolve_btfids/main.c | 36 +-
tools/bpf/runqslower/Makefile | 22 +-
tools/build/Makefile.feature | 1 +
tools/build/feature/Makefile | 12 +-
tools/build/feature/test-libtracefs.c | 10 +
tools/counter/Build | 1 +
tools/counter/Makefile | 53 +
tools/counter/counter_example.c | 92 +
tools/include/asm-generic/unaligned.h | 23 +
tools/include/linux/list_sort.h | 14 +
tools/include/linux/objtool.h | 12 +
tools/include/uapi/asm-generic/unistd.h | 5 +-
tools/include/uapi/drm/i915_drm.h | 242 +-
tools/include/uapi/linux/bpf.h | 76 +-
tools/include/uapi/linux/btf.h | 55 +-
tools/include/uapi/linux/perf_event.h | 34 +-
tools/include/uapi/linux/prctl.h | 5 +-
tools/include/uapi/sound/asound.h | 2 +-
tools/kvm/kvm_stat/kvm_stat | 2 +-
tools/lib/bpf/.gitignore | 1 -
tools/lib/bpf/Makefile | 62 +-
tools/lib/bpf/bpf.c | 67 +-
tools/lib/bpf/bpf_core_read.h | 2 +-
tools/lib/bpf/bpf_gen_internal.h | 24 +-
tools/lib/bpf/bpf_helpers.h | 51 +-
tools/lib/bpf/bpf_tracing.h | 32 +
tools/lib/bpf/btf.c | 369 +-
tools/lib/bpf/btf.h | 114 +
tools/lib/bpf/btf_dump.c | 61 +-
tools/lib/bpf/gen_loader.c | 422 +-
tools/lib/bpf/libbpf.c | 2296 +-
tools/lib/bpf/libbpf.h | 193 +-
tools/lib/bpf/libbpf.map | 16 +
tools/lib/bpf/libbpf_common.h | 24 +
tools/lib/bpf/libbpf_internal.h | 94 +-
tools/lib/bpf/libbpf_legacy.h | 18 +
tools/lib/bpf/libbpf_probes.c | 2 +-
tools/lib/bpf/libbpf_version.h | 9 +
tools/lib/bpf/linker.c | 45 +-
tools/lib/bpf/relo_core.c | 2 +-
tools/lib/bpf/skel_internal.h | 6 +-
tools/lib/bpf/xsk.c | 10 +-
tools/lib/bpf/xsk.h | 90 +-
tools/lib/list_sort.c | 252 +
tools/lib/lockdep/.gitignore | 2 -
tools/lib/lockdep/Build | 1 -
tools/lib/lockdep/Makefile | 162 -
tools/lib/lockdep/common.c | 29 -
tools/lib/lockdep/include/liblockdep/common.h | 54 -
tools/lib/lockdep/include/liblockdep/mutex.h | 73 -
tools/lib/lockdep/include/liblockdep/rwlock.h | 87 -
tools/lib/lockdep/lockdep | 3 -
tools/lib/lockdep/lockdep.c | 33 -
tools/lib/lockdep/lockdep_internals.h | 1 -
tools/lib/lockdep/lockdep_states.h | 1 -
tools/lib/lockdep/preload.c | 443 -
tools/lib/lockdep/rbtree.c | 1 -
tools/lib/lockdep/run_tests.sh | 47 -
tools/lib/lockdep/tests/AA.c | 14 -
tools/lib/lockdep/tests/AA.sh | 2 -
tools/lib/lockdep/tests/ABA.c | 14 -
tools/lib/lockdep/tests/ABA.sh | 2 -
tools/lib/lockdep/tests/ABBA.c | 26 -
tools/lib/lockdep/tests/ABBA.sh | 2 -
tools/lib/lockdep/tests/ABBA_2threads.c | 47 -
tools/lib/lockdep/tests/ABBA_2threads.sh | 2 -
tools/lib/lockdep/tests/ABBCCA.c | 20 -
tools/lib/lockdep/tests/ABBCCA.sh | 2 -
tools/lib/lockdep/tests/ABBCCDDA.c | 23 -
tools/lib/lockdep/tests/ABBCCDDA.sh | 2 -
tools/lib/lockdep/tests/ABCABC.c | 20 -
tools/lib/lockdep/tests/ABCABC.sh | 2 -
tools/lib/lockdep/tests/ABCDBCDA.c | 23 -
tools/lib/lockdep/tests/ABCDBCDA.sh | 2 -
tools/lib/lockdep/tests/ABCDBDDA.c | 23 -
tools/lib/lockdep/tests/ABCDBDDA.sh | 2 -
tools/lib/lockdep/tests/WW.c | 14 -
tools/lib/lockdep/tests/WW.sh | 2 -
tools/lib/lockdep/tests/common.h | 13 -
tools/lib/lockdep/tests/unlock_balance.c | 15 -
tools/lib/lockdep/tests/unlock_balance.sh | 2 -
tools/lib/perf/cpumap.c | 16 +-
tools/lib/perf/include/perf/event.h | 6 +
tools/objtool/arch/x86/decode.c | 180 +-
tools/objtool/check.c | 651 +-
tools/objtool/elf.c | 84 -
tools/objtool/include/objtool/arch.h | 5 +-
tools/objtool/include/objtool/cfi.h | 2 +
tools/objtool/include/objtool/check.h | 3 +-
tools/objtool/include/objtool/elf.h | 9 +-
tools/objtool/include/objtool/objtool.h | 9 +
tools/objtool/objtool.c | 22 +
tools/objtool/orc_gen.c | 15 +-
tools/objtool/special.c | 8 -
tools/perf/.gitignore | 1 +
tools/perf/Documentation/itrace.txt | 2 +
tools/perf/Documentation/perf-inject.txt | 7 +
tools/perf/Documentation/perf-intel-pt.txt | 35 +-
tools/perf/Documentation/perf-kmem.txt | 13 +-
tools/perf/Documentation/perf-list.txt | 4 +
tools/perf/Documentation/perf-record.txt | 18 +-
tools/perf/Documentation/perf-script.txt | 2 +-
tools/perf/Documentation/perf.data-file-format.txt | 2 +-
tools/perf/MANIFEST | 4 +
tools/perf/Makefile.config | 23 +-
tools/perf/Makefile.perf | 58 +-
tools/perf/arch/arm/include/arch-tests.h | 2 +-
tools/perf/arch/arm/tests/arch-tests.c | 16 +-
tools/perf/arch/arm/tests/vectors-page.c | 5 +-
tools/perf/arch/arm64/include/arch-tests.h | 2 +-
tools/perf/arch/arm64/tests/arch-tests.c | 11 +-
tools/perf/arch/arm64/util/arm-spe.c | 283 +-
tools/perf/arch/arm64/util/pmu.c | 2 +-
tools/perf/arch/powerpc/include/arch-tests.h | 2 +-
tools/perf/arch/powerpc/include/perf_regs.h | 2 +
tools/perf/arch/powerpc/tests/arch-tests.c | 12 +-
tools/perf/arch/powerpc/util/header.c | 2 +-
tools/perf/arch/powerpc/util/kvm-stat.c | 5 +-
tools/perf/arch/powerpc/util/perf_regs.c | 2 +
tools/perf/arch/powerpc/util/skip-callchain-idx.c | 2 +-
tools/perf/arch/riscv64/annotate/instructions.c | 34 +
tools/perf/arch/x86/annotate/instructions.c | 28 +-
tools/perf/arch/x86/entry/syscalls/syscall_64.tbl | 1 +
tools/perf/arch/x86/include/arch-tests.h | 14 +-
tools/perf/arch/x86/tests/arch-tests.c | 47 +-
tools/perf/arch/x86/tests/bp-modify.c | 2 +-
tools/perf/arch/x86/tests/insn-x86.c | 2 +-
tools/perf/arch/x86/tests/intel-cqm.c | 2 +-
.../arch/x86/tests/intel-pt-pkt-decoder-test.c | 2 +-
tools/perf/arch/x86/tests/rdpmc.c | 2 +-
tools/perf/arch/x86/tests/sample-parsing.c | 2 +-
tools/perf/arch/x86/util/evsel.c | 23 +
tools/perf/bench/evlist-open-close.c | 15 +-
tools/perf/bench/futex-lock-pi.c | 1 +
tools/perf/bench/futex-requeue.c | 1 +
tools/perf/bench/futex-wake-parallel.c | 1 +
tools/perf/bench/futex-wake.c | 1 +
tools/perf/bench/futex.h | 43 +-
tools/perf/bench/synthesize.c | 4 +-
tools/perf/builtin-annotate.c | 4 +
tools/perf/builtin-c2c.c | 4 +
tools/perf/builtin-daemon.c | 15 +-
tools/perf/builtin-inject.c | 11 +-
tools/perf/builtin-kvm.c | 2 +-
tools/perf/builtin-list.c | 42 +-
tools/perf/builtin-probe.c | 5 +
tools/perf/builtin-record.c | 52 +-
tools/perf/builtin-report.c | 13 +-
tools/perf/builtin-sched.c | 4 +
tools/perf/builtin-script.c | 31 +-
tools/perf/builtin-stat.c | 46 +-
tools/perf/builtin-top.c | 6 +-
tools/perf/builtin-trace.c | 27 +-
tools/perf/check-headers.sh | 2 +
tools/perf/design.txt | 3 +
tools/perf/dlfilters/dlfilter-show-cycles.c | 144 +
.../pmu-events/arch/arm64/ampere/emag/bus.json | 2 +-
.../pmu-events/arch/arm64/ampere/emag/cache.json | 20 +-
.../pmu-events/arch/arm64/ampere/emag/clock.json | 2 +-
.../arch/arm64/ampere/emag/exception.json | 4 +-
.../arch/arm64/ampere/emag/instruction.json | 10 +-
.../pmu-events/arch/arm64/ampere/emag/memory.json | 4 +-
.../arch/arm64/arm/cortex-a76-n1/branch.json | 4 +-
.../arch/arm64/arm/cortex-a76-n1/bus.json | 12 +-
.../arch/arm64/arm/cortex-a76-n1/cache.json | 34 +-
.../arch/arm64/arm/cortex-a76-n1/exception.json | 4 +-
.../arch/arm64/arm/cortex-a76-n1/instruction.json | 18 +-
.../arch/arm64/arm/cortex-a76-n1/memory.json | 2 +-
.../arch/arm64/arm/cortex-a76-n1/other.json | 2 +-
.../arch/arm64/arm/cortex-a76-n1/pipeline.json | 4 +-
.../arch/arm64/arm/neoverse-v1/branch.json | 8 +
.../pmu-events/arch/arm64/arm/neoverse-v1/bus.json | 20 +
.../arch/arm64/arm/neoverse-v1/cache.json | 155 +
.../arch/arm64/arm/neoverse-v1/exception.json | 47 +
.../arch/arm64/arm/neoverse-v1/instruction.json | 89 +
.../arch/arm64/arm/neoverse-v1/memory.json | 20 +
.../arch/arm64/arm/neoverse-v1/other.json | 5 +
.../arch/arm64/arm/neoverse-v1/pipeline.json | 23 +
.../arch/arm64/armv8-common-and-microarch.json | 72 +
.../arch/arm64/hisilicon/hip08/metrics.json | 2 +-
.../arch/arm64/hisilicon/hip08/uncore-ddrc.json | 32 +-
.../arch/arm64/hisilicon/hip08/uncore-hha.json | 120 +-
.../arch/arm64/hisilicon/hip08/uncore-l3c.json | 52 +-
tools/perf/pmu-events/arch/arm64/mapfile.csv | 1 +
tools/perf/pmu-events/arch/nds32/n13/atcpmu.json | 2 +-
.../pmu-events/arch/powerpc/power10/metrics.json | 676 +
tools/perf/pmu-events/arch/s390/cf_z10/basic.json | 2 +-
tools/perf/pmu-events/arch/s390/cf_z10/crypto.json | 2 +-
.../perf/pmu-events/arch/s390/cf_z10/extended.json | 2 +-
tools/perf/pmu-events/arch/s390/cf_z13/basic.json | 2 +-
tools/perf/pmu-events/arch/s390/cf_z13/crypto.json | 2 +-
.../perf/pmu-events/arch/s390/cf_z13/extended.json | 2 +-
tools/perf/pmu-events/arch/s390/cf_z14/basic.json | 2 +-
tools/perf/pmu-events/arch/s390/cf_z14/crypto.json | 2 +-
.../perf/pmu-events/arch/s390/cf_z14/extended.json | 2 +-
tools/perf/pmu-events/arch/s390/cf_z15/basic.json | 2 +-
tools/perf/pmu-events/arch/s390/cf_z15/crypto.json | 2 +-
.../perf/pmu-events/arch/s390/cf_z15/crypto6.json | 2 +-
.../perf/pmu-events/arch/s390/cf_z15/extended.json | 2 +-
tools/perf/pmu-events/arch/s390/cf_z196/basic.json | 2 +-
.../perf/pmu-events/arch/s390/cf_z196/crypto.json | 2 +-
.../pmu-events/arch/s390/cf_z196/extended.json | 2 +-
.../perf/pmu-events/arch/s390/cf_zec12/basic.json | 2 +-
.../perf/pmu-events/arch/s390/cf_zec12/crypto.json | 2 +-
.../pmu-events/arch/s390/cf_zec12/extended.json | 2 +-
.../pmu-events/arch/test/test_soc/cpu/uncore.json | 2 +-
.../pmu-events/arch/test/test_soc/sys/uncore.json | 7 +
.../pmu-events/arch/x86/icelakex/icx-metrics.json | 2 +-
tools/perf/pmu-events/jevents.c | 32 +-
tools/perf/pmu-events/jsmn.c | 43 +-
tools/perf/pmu-events/pmu-events.h | 8 +-
tools/perf/tests/api-io.c | 6 +-
tools/perf/tests/attr.c | 4 +-
tools/perf/tests/backward-ring-buffer.c | 7 +-
tools/perf/tests/bitmap.c | 4 +-
tools/perf/tests/bp_account.c | 36 +-
tools/perf/tests/bp_signal.c | 34 +-
tools/perf/tests/bp_signal_overflow.c | 9 +-
tools/perf/tests/bpf.c | 74 +-
tools/perf/tests/builtin-test.c | 578 +-
tools/perf/tests/clang.c | 54 +-
tools/perf/tests/code-reading.c | 7 +-
tools/perf/tests/cpumap.c | 10 +-
tools/perf/tests/demangle-java-test.c | 4 +-
tools/perf/tests/demangle-ocaml-test.c | 4 +-
tools/perf/tests/dlfilter-test.c | 4 +-
tools/perf/tests/dso-data.c | 10 +-
tools/perf/tests/dwarf-unwind.c | 5 +-
tools/perf/tests/event-times.c | 4 +-
tools/perf/tests/event_update.c | 4 +-
tools/perf/tests/evsel-roundtrip-name.c | 5 +-
tools/perf/tests/evsel-tp-sched.c | 5 +-
tools/perf/tests/expand-cgroup.c | 12 +-
tools/perf/tests/expr.c | 201 +-
tools/perf/tests/fdarray.c | 7 +-
tools/perf/tests/genelf.c | 6 +-
tools/perf/tests/hists_cumulate.c | 4 +-
tools/perf/tests/hists_filter.c | 4 +-
tools/perf/tests/hists_link.c | 4 +-
tools/perf/tests/hists_output.c | 4 +-
tools/perf/tests/is_printable_array.c | 4 +-
tools/perf/tests/keep-tracking.c | 4 +-
tools/perf/tests/kmod-path.c | 4 +-
tools/perf/tests/llvm.c | 74 +-
tools/perf/tests/maps.c | 4 +-
tools/perf/tests/mem.c | 4 +-
tools/perf/tests/mem2node.c | 4 +-
tools/perf/tests/mmap-basic.c | 4 +-
tools/perf/tests/mmap-thread-lookup.c | 8 +-
tools/perf/tests/openat-syscall-all-cpus.c | 5 +-
tools/perf/tests/openat-syscall-tp-fields.c | 5 +-
tools/perf/tests/openat-syscall.c | 5 +-
tools/perf/tests/parse-events.c | 18 +-
tools/perf/tests/parse-metric.c | 6 +-
tools/perf/tests/parse-no-sample-id-all.c | 5 +-
tools/perf/tests/pe-file-parsing.c | 6 +-
tools/perf/tests/perf-hooks.c | 4 +-
tools/perf/tests/perf-record.c | 4 +-
tools/perf/tests/perf-time-to-tsc.c | 30 +-
tools/perf/tests/pfm.c | 63 +-
tools/perf/tests/pmu-events.c | 279 +-
tools/perf/tests/pmu.c | 4 +-
tools/perf/tests/python-use.c | 4 +-
tools/perf/tests/sample-parsing.c | 47 +-
tools/perf/tests/sdt.c | 6 +-
.../tests/shell/record+script_probe_vfs_getname.sh | 6 +-
tools/perf/tests/shell/record+zstd_comp_decomp.sh | 2 +-
tools/perf/tests/shell/stat_all_metricgroups.sh | 12 +
tools/perf/tests/shell/stat_all_metrics.sh | 22 +
tools/perf/tests/shell/stat_all_pmu.sh | 22 +
tools/perf/tests/shell/stat_bpf_counters.sh | 2 +-
tools/perf/tests/shell/test_arm_coresight.sh | 11 +-
tools/perf/tests/shell/test_arm_spe.sh | 89 +
tools/perf/tests/shell/trace+probe_vfs_getname.sh | 4 +-
tools/perf/tests/stat.c | 11 +-
tools/perf/tests/sw-clock.c | 4 +-
tools/perf/tests/switch-tracking.c | 4 +-
tools/perf/tests/task-exit.c | 4 +-
tools/perf/tests/tests.h | 238 +-
tools/perf/tests/thread-map.c | 10 +-
tools/perf/tests/thread-maps-share.c | 4 +-
tools/perf/tests/time-utils-test.c | 4 +-
tools/perf/tests/topology.c | 6 +-
tools/perf/tests/unit_number__scnprintf.c | 4 +-
tools/perf/tests/vmlinux-kallsyms.c | 107 +-
tools/perf/tests/wp.c | 124 +-
tools/perf/trace/beauty/beauty.h | 5 +
tools/perf/trace/beauty/include/linux/socket.h | 2 +
tools/perf/trace/beauty/sockaddr.c | 2 +-
tools/perf/trace/beauty/sockaddr.sh | 24 +
tools/perf/trace/beauty/socket.c | 21 +-
tools/perf/trace/beauty/socket.sh | 38 +-
tools/perf/trace/beauty/socket_ipproto.sh | 12 -
tools/perf/util/Build | 6 +
tools/perf/util/annotate.c | 22 +-
tools/perf/util/annotate.h | 3 +
tools/perf/util/arm-spe-decoder/arm-spe-decoder.c | 2 +
tools/perf/util/arm-spe-decoder/arm-spe-decoder.h | 1 +
.../util/arm-spe-decoder/arm-spe-pkt-decoder.c | 2 +-
tools/perf/util/arm-spe.c | 122 +-
tools/perf/util/auxtrace.c | 3 +
tools/perf/util/auxtrace.h | 6 +
tools/perf/util/bpf-event.c | 78 +-
tools/perf/util/bpf-event.h | 2 +-
tools/perf/util/bpf-utils.c | 261 +
tools/perf/util/bpf-utils.h | 76 +
tools/perf/util/bpf_counter.c | 14 +-
tools/perf/util/bpf_counter_cgroup.c | 8 +-
tools/perf/util/c++/clang-c.h | 8 +-
tools/perf/util/c++/clang-test.cpp | 6 +-
tools/perf/util/c++/clang.cpp | 21 +-
tools/perf/util/cputopo.c | 78 +-
tools/perf/util/cputopo.h | 33 +-
tools/perf/util/cs-etm.c | 2 +-
tools/perf/util/data-convert-bt.c | 2 +-
tools/perf/util/debug.c | 19 +
tools/perf/util/dso.c | 1 +
tools/perf/util/dso.h | 2 +-
tools/perf/util/env.c | 6 +-
tools/perf/util/env.h | 2 +-
tools/perf/util/event.c | 18 +
tools/perf/util/event.h | 5 +
tools/perf/util/evsel.c | 145 +-
tools/perf/util/evsel.h | 21 +
tools/perf/util/evsel_fprintf.c | 12 +-
tools/perf/util/expr.c | 218 +-
tools/perf/util/expr.h | 38 +-
tools/perf/util/expr.l | 31 +-
tools/perf/util/expr.y | 336 +-
tools/perf/util/genelf.h | 2 +-
tools/perf/util/header.c | 33 +-
tools/perf/util/intel-bts.c | 2 +-
tools/perf/util/intel-pt-decoder/Build | 2 +
.../perf/util/intel-pt-decoder/intel-pt-decoder.c | 1 +
.../perf/util/intel-pt-decoder/intel-pt-decoder.h | 1 +
.../util/intel-pt-decoder/intel-pt-insn-decoder.c | 2 +-
tools/perf/util/intel-pt-decoder/intel-pt-log.c | 8 +-
.../util/intel-pt-decoder/intel-pt-pkt-decoder.c | 2 +-
tools/perf/util/intel-pt.c | 106 +-
tools/perf/util/machine.c | 10 +
tools/perf/util/machine.h | 2 +
tools/perf/util/mem-events.c | 20 +-
tools/perf/util/metricgroup.c | 1454 +-
tools/perf/util/metricgroup.h | 37 +-
tools/perf/util/mmap.c | 11 +
tools/perf/util/mmap.h | 3 +
tools/perf/util/parse-events-hybrid.c | 34 +-
tools/perf/util/parse-events-hybrid.h | 6 +-
tools/perf/util/parse-events.c | 392 +-
tools/perf/util/parse-events.h | 27 +-
tools/perf/util/parse-events.l | 19 +-
tools/perf/util/parse-events.y | 27 +-
tools/perf/util/pfm.c | 3 +-
tools/perf/util/pmu.c | 59 +-
tools/perf/util/pmu.h | 16 +-
tools/perf/util/python-ext-sources | 1 +
tools/perf/util/python.c | 12 +
tools/perf/util/record.h | 1 +
tools/perf/util/s390-cpumsf.c | 8 +-
tools/perf/util/s390-sample-raw.c | 6 +-
tools/perf/util/session.c | 198 +-
tools/perf/util/session.h | 10 +-
tools/perf/util/srcline.c | 338 +-
tools/perf/util/stat-shadow.c | 81 +-
tools/perf/util/symbol.c | 35 +-
tools/perf/util/symbol.h | 21 +-
tools/perf/util/synthetic-events.c | 73 +-
tools/perf/util/synthetic-events.h | 20 +-
tools/perf/util/tool.h | 1 +
tools/rcu/extract-stall.sh | 34 +
tools/scripts/Makefile.arch | 3 +-
tools/testing/cxl/Kbuild | 38 +
tools/testing/cxl/config_check.c | 13 +
tools/testing/cxl/mock_acpi.c | 109 +
tools/testing/cxl/mock_pmem.c | 24 +
tools/testing/cxl/test/Kbuild | 10 +
tools/testing/cxl/test/cxl.c | 576 +
tools/testing/cxl/test/mem.c | 256 +
tools/testing/cxl/test/mock.c | 171 +
tools/testing/cxl/test/mock.h | 27 +
tools/testing/kunit/kunit.py | 154 +-
tools/testing/kunit/kunit_json.py | 56 +-
tools/testing/kunit/kunit_kernel.py | 107 +-
tools/testing/kunit/kunit_parser.py | 1015 +-
tools/testing/kunit/kunit_tool_test.py | 211 +-
.../test_is_test_passed-all_passed_nested.log | 34 +
.../test_data/test_is_test_passed-kselftest.log | 14 +
.../test_data/test_is_test_passed-missing_plan.log | 31 +
.../testing/kunit/test_data/test_strip_hyphen.log | 16 +
tools/testing/selftests/arm64/fp/Makefile | 6 +-
tools/testing/selftests/arm64/fp/TODO | 9 +-
tools/testing/selftests/arm64/fp/asm-utils.S | 172 +
tools/testing/selftests/arm64/fp/assembler.h | 11 +
tools/testing/selftests/arm64/fp/fpsimd-test.S | 164 -
tools/testing/selftests/arm64/fp/sve-ptrace-asm.S | 33 -
tools/testing/selftests/arm64/fp/sve-ptrace.c | 511 +-
tools/testing/selftests/arm64/fp/sve-test.S | 163 -
tools/testing/selftests/arm64/fp/vec-syscfg.c | 95 +-
tools/testing/selftests/bpf/.gitignore | 5 +-
tools/testing/selftests/bpf/Makefile | 55 +-
tools/testing/selftests/bpf/README.rst | 27 +
tools/testing/selftests/bpf/bench.c | 60 +-
tools/testing/selftests/bpf/bench.h | 3 +
.../selftests/bpf/benchs/bench_bloom_filter_map.c | 477 +
.../bpf/benchs/run_bench_bloom_filter_map.sh | 45 +
.../selftests/bpf/benchs/run_bench_ringbufs.sh | 30 +-
tools/testing/selftests/bpf/benchs/run_common.sh | 60 +
.../selftests/bpf/bpf_testmod/bpf_testmod-events.h | 15 +
.../selftests/bpf/bpf_testmod/bpf_testmod.c | 52 +-
.../selftests/bpf/bpf_testmod/bpf_testmod.h | 5 +
tools/testing/selftests/bpf/btf_helpers.c | 11 +-
tools/testing/selftests/bpf/cgroup_helpers.c | 5 +-
tools/testing/selftests/bpf/cgroup_helpers.h | 2 +-
tools/testing/selftests/bpf/flow_dissector_load.c | 18 +-
tools/testing/selftests/bpf/flow_dissector_load.h | 10 +-
tools/testing/selftests/bpf/prog_tests/atomics.c | 35 +-
.../selftests/bpf/prog_tests/attach_probe.c | 33 +-
.../selftests/bpf/prog_tests/bloom_filter_map.c | 211 +
tools/testing/selftests/bpf/prog_tests/bpf_iter.c | 6 +-
.../selftests/bpf/prog_tests/bpf_iter_setsockopt.c | 2 +-
.../testing/selftests/bpf/prog_tests/bpf_obj_id.c | 2 +-
.../selftests/bpf/prog_tests/bpf_verif_scale.c | 225 +-
tools/testing/selftests/bpf/prog_tests/btf.c | 524 +-
tools/testing/selftests/bpf/prog_tests/btf_dump.c | 39 +-
.../testing/selftests/bpf/prog_tests/btf_endian.c | 18 +-
tools/testing/selftests/bpf/prog_tests/btf_split.c | 2 +-
tools/testing/selftests/bpf/prog_tests/btf_tag.c | 20 +
tools/testing/selftests/bpf/prog_tests/btf_write.c | 162 +-
.../selftests/bpf/prog_tests/cg_storage_multi.c | 2 +-
.../bpf/prog_tests/cgroup_attach_autodetach.c | 2 +-
.../selftests/bpf/prog_tests/cgroup_attach_multi.c | 2 +-
.../bpf/prog_tests/cgroup_attach_override.c | 2 +-
.../testing/selftests/bpf/prog_tests/cgroup_link.c | 2 +-
.../testing/selftests/bpf/prog_tests/cgroup_v1v2.c | 2 +-
tools/testing/selftests/bpf/prog_tests/check_mtu.c | 2 +-
.../selftests/bpf/prog_tests/core_autosize.c | 4 +-
.../testing/selftests/bpf/prog_tests/core_reloc.c | 21 +-
.../selftests/bpf/prog_tests/dummy_st_ops.c | 115 +
.../selftests/bpf/prog_tests/fentry_fexit.c | 16 +-
.../testing/selftests/bpf/prog_tests/fentry_test.c | 14 +-
.../selftests/bpf/prog_tests/fexit_bpf2bpf.c | 46 +-
.../testing/selftests/bpf/prog_tests/fexit_sleep.c | 12 +-
.../testing/selftests/bpf/prog_tests/fexit_test.c | 14 +-
.../selftests/bpf/prog_tests/flow_dissector.c | 4 +-
.../bpf/prog_tests/flow_dissector_load_bytes.c | 2 +-
.../bpf/prog_tests/flow_dissector_reattach.c | 2 +-
.../selftests/bpf/prog_tests/get_branch_snapshot.c | 130 +
.../testing/selftests/bpf/prog_tests/global_data.c | 11 +-
.../selftests/bpf/prog_tests/global_data_init.c | 2 +-
tools/testing/selftests/bpf/prog_tests/kfree_skb.c | 5 +-
.../testing/selftests/bpf/prog_tests/kfunc_call.c | 6 +-
tools/testing/selftests/bpf/prog_tests/ksyms_btf.c | 35 +-
.../selftests/bpf/prog_tests/ksyms_module.c | 57 +-
.../selftests/bpf/prog_tests/migrate_reuseport.c | 2 +-
.../selftests/bpf/prog_tests/modify_return.c | 3 +-
.../selftests/bpf/prog_tests/module_attach.c | 46 +-
tools/testing/selftests/bpf/prog_tests/netcnt.c | 2 +-
.../selftests/bpf/prog_tests/ns_current_pid_tgid.c | 3 +-
.../testing/selftests/bpf/prog_tests/perf_buffer.c | 24 +-
tools/testing/selftests/bpf/prog_tests/perf_link.c | 3 +-
.../testing/selftests/bpf/prog_tests/probe_user.c | 7 +-
.../bpf/prog_tests/raw_tp_writable_test_run.c | 3 +-
.../testing/selftests/bpf/prog_tests/rdonly_maps.c | 2 +-
tools/testing/selftests/bpf/prog_tests/recursion.c | 10 +-
.../selftests/bpf/prog_tests/reference_tracking.c | 52 +-
.../selftests/bpf/prog_tests/resolve_btfids.c | 14 +-
tools/testing/selftests/bpf/prog_tests/ringbuf.c | 12 +-
.../selftests/bpf/prog_tests/select_reuseport.c | 4 +-
.../bpf/prog_tests/send_signal_sched_switch.c | 3 +-
.../selftests/bpf/prog_tests/signal_pending.c | 2 +-
tools/testing/selftests/bpf/prog_tests/sk_assign.c | 2 +-
tools/testing/selftests/bpf/prog_tests/sk_lookup.c | 4 +-
.../selftests/bpf/prog_tests/sk_storage_tracing.c | 2 +-
tools/testing/selftests/bpf/prog_tests/skb_ctx.c | 6 +
.../selftests/bpf/prog_tests/skc_to_unix_sock.c | 54 +
tools/testing/selftests/bpf/prog_tests/skeleton.c | 35 +
tools/testing/selftests/bpf/prog_tests/snprintf.c | 4 +-
.../selftests/bpf/prog_tests/snprintf_btf.c | 2 +-
.../testing/selftests/bpf/prog_tests/sock_fields.c | 2 +-
.../selftests/bpf/prog_tests/sockmap_listen.c | 77 +-
.../selftests/bpf/prog_tests/sockopt_multi.c | 30 +-
tools/testing/selftests/bpf/prog_tests/tailcalls.c | 83 +-
.../testing/selftests/bpf/prog_tests/tc_redirect.c | 18 +-
tools/testing/selftests/bpf/prog_tests/tcp_rtt.c | 2 +-
.../testing/selftests/bpf/prog_tests/test_bpffs.c | 85 +-
tools/testing/selftests/bpf/prog_tests/test_ima.c | 3 +-
tools/testing/selftests/bpf/prog_tests/timer.c | 3 +-
tools/testing/selftests/bpf/prog_tests/timer_mim.c | 2 +-
.../selftests/bpf/prog_tests/tp_attach_query.c | 2 +-
.../selftests/bpf/prog_tests/trace_printk.c | 40 +-
.../selftests/bpf/prog_tests/trace_vprintk.c | 68 +
.../selftests/bpf/prog_tests/trampoline_count.c | 3 +-
.../testing/selftests/bpf/prog_tests/verif_stats.c | 28 +
.../selftests/bpf/prog_tests/xdp_adjust_tail.c | 6 +-
.../testing/selftests/bpf/prog_tests/xdp_attach.c | 2 +-
.../testing/selftests/bpf/prog_tests/xdp_bonding.c | 2 +-
.../selftests/bpf/prog_tests/xdp_cpumap_attach.c | 2 +-
.../selftests/bpf/prog_tests/xdp_devmap_attach.c | 6 +-
tools/testing/selftests/bpf/prog_tests/xdp_info.c | 2 +-
tools/testing/selftests/bpf/prog_tests/xdp_link.c | 2 +-
tools/testing/selftests/bpf/prog_tests/xdpwall.c | 15 +
tools/testing/selftests/bpf/progs/atomics.c | 16 +
.../selftests/bpf/progs/bloom_filter_bench.c | 153 +
.../testing/selftests/bpf/progs/bloom_filter_map.c | 82 +
tools/testing/selftests/bpf/progs/bpf_cubic.c | 12 +-
tools/testing/selftests/bpf/progs/bpf_flow.c | 3 +-
.../bpf/progs/btf_dump_test_case_bitfields.c | 10 +-
.../bpf/progs/btf_dump_test_case_packing.c | 4 +-
.../bpf/progs/btf_dump_test_case_padding.c | 2 +-
.../bpf/progs/btf_dump_test_case_syntax.c | 2 +-
.../bpf/progs/cg_storage_multi_isolated.c | 4 +-
.../selftests/bpf/progs/cg_storage_multi_shared.c | 4 +-
.../bpf/progs/cgroup_skb_sk_lookup_kern.c | 1 -
.../testing/selftests/bpf/progs/connect4_dropper.c | 2 +-
tools/testing/selftests/bpf/progs/connect4_prog.c | 2 -
tools/testing/selftests/bpf/progs/connect6_prog.c | 2 -
.../selftests/bpf/progs/connect_force_port4.c | 1 -
.../selftests/bpf/progs/connect_force_port6.c | 1 -
tools/testing/selftests/bpf/progs/dev_cgroup.c | 1 -
tools/testing/selftests/bpf/progs/dummy_st_ops.c | 50 +
tools/testing/selftests/bpf/progs/fexit_sleep.c | 4 +-
.../selftests/bpf/progs/for_each_array_map_elem.c | 14 +-
.../selftests/bpf/progs/for_each_hash_map_elem.c | 2 +-
.../selftests/bpf/progs/get_branch_snapshot.c | 40 +
.../selftests/bpf/progs/get_cgroup_id_kern.c | 1 -
tools/testing/selftests/bpf/progs/kfree_skb.c | 4 +-
.../testing/selftests/bpf/progs/kfunc_call_test.c | 4 +-
.../selftests/bpf/progs/kfunc_call_test_subprog.c | 2 +-
tools/testing/selftests/bpf/progs/map_ptr_kern.c | 1 -
tools/testing/selftests/bpf/progs/netcnt_prog.c | 1 -
.../selftests/bpf/progs/perf_event_stackmap.c | 4 +-
tools/testing/selftests/bpf/progs/recursion.c | 9 +-
tools/testing/selftests/bpf/progs/sendmsg4_prog.c | 2 -
tools/testing/selftests/bpf/progs/sendmsg6_prog.c | 2 -
tools/testing/selftests/bpf/progs/skb_pkt_end.c | 2 +-
.../selftests/bpf/progs/sockmap_parse_prog.c | 2 -
.../selftests/bpf/progs/sockmap_tcp_msg_prog.c | 2 -
.../selftests/bpf/progs/sockmap_verdict_prog.c | 14 +-
.../testing/selftests/bpf/progs/sockopt_inherit.c | 1 -
tools/testing/selftests/bpf/progs/sockopt_multi.c | 5 +-
tools/testing/selftests/bpf/progs/strobemeta.h | 4 +-
tools/testing/selftests/bpf/progs/tag.c | 54 +
tools/testing/selftests/bpf/progs/tailcall1.c | 7 +-
tools/testing/selftests/bpf/progs/tailcall2.c | 23 +-
tools/testing/selftests/bpf/progs/tailcall3.c | 7 +-
tools/testing/selftests/bpf/progs/tailcall4.c | 7 +-
tools/testing/selftests/bpf/progs/tailcall5.c | 7 +-
tools/testing/selftests/bpf/progs/tailcall6.c | 34 +
.../selftests/bpf/progs/tailcall_bpf2bpf1.c | 7 +-
.../selftests/bpf/progs/tailcall_bpf2bpf2.c | 7 +-
.../selftests/bpf/progs/tailcall_bpf2bpf3.c | 11 +-
.../selftests/bpf/progs/tailcall_bpf2bpf4.c | 15 +-
tools/testing/selftests/bpf/progs/tcp_rtt.c | 1 -
tools/testing/selftests/bpf/progs/test_btf_haskv.c | 2 -
.../selftests/bpf/progs/test_btf_map_in_map.c | 14 +-
tools/testing/selftests/bpf/progs/test_btf_newkv.c | 2 -
tools/testing/selftests/bpf/progs/test_btf_nokv.c | 2 -
.../selftests/bpf/progs/test_btf_skc_cls_ingress.c | 2 +-
.../testing/selftests/bpf/progs/test_cgroup_link.c | 4 +-
tools/testing/selftests/bpf/progs/test_check_mtu.c | 12 +-
.../selftests/bpf/progs/test_cls_redirect.c | 2 +-
.../selftests/bpf/progs/test_core_reloc_mods.c | 9 +
.../selftests/bpf/progs/test_enable_stats.c | 2 +-
.../testing/selftests/bpf/progs/test_global_data.c | 2 +-
.../selftests/bpf/progs/test_global_func1.c | 2 +-
.../selftests/bpf/progs/test_global_func3.c | 2 +-
.../selftests/bpf/progs/test_global_func5.c | 2 +-
.../selftests/bpf/progs/test_global_func6.c | 2 +-
.../selftests/bpf/progs/test_global_func7.c | 2 +-
.../selftests/bpf/progs/test_ksyms_module.c | 46 +-
.../testing/selftests/bpf/progs/test_ksyms_weak.c | 2 +-
tools/testing/selftests/bpf/progs/test_l4lb.c | 2 -
.../testing/selftests/bpf/progs/test_map_in_map.c | 13 +-
.../selftests/bpf/progs/test_map_in_map_invalid.c | 2 +-
.../bpf/progs/test_misc_tcp_hdr_options.c | 2 +-
.../selftests/bpf/progs/test_module_attach.c | 14 +
.../selftests/bpf/progs/test_pe_preserve_elems.c | 8 +-
.../testing/selftests/bpf/progs/test_perf_buffer.c | 22 +-
tools/testing/selftests/bpf/progs/test_pinning.c | 2 -
.../selftests/bpf/progs/test_pinning_invalid.c | 2 -
.../testing/selftests/bpf/progs/test_pkt_access.c | 3 +-
.../selftests/bpf/progs/test_pkt_md_access.c | 4 +-
.../testing/selftests/bpf/progs/test_probe_user.c | 28 +-
.../selftests/bpf/progs/test_queue_stack_map.h | 2 -
.../bpf/progs/test_select_reuseport_kern.c | 6 +-
tools/testing/selftests/bpf/progs/test_sk_assign.c | 3 +-
tools/testing/selftests/bpf/progs/test_sk_lookup.c | 45 +-
.../selftests/bpf/progs/test_sk_lookup_kern.c | 37 +-
.../selftests/bpf/progs/test_skb_cgroup_id_kern.c | 2 -
tools/testing/selftests/bpf/progs/test_skb_ctx.c | 7 +-
.../testing/selftests/bpf/progs/test_skb_helpers.c | 2 +-
.../selftests/bpf/progs/test_skc_to_unix_sock.c | 40 +
tools/testing/selftests/bpf/progs/test_skeleton.c | 18 +
.../selftests/bpf/progs/test_sockmap_kern.h | 1 -
.../selftests/bpf/progs/test_sockmap_listen.c | 3 +-
.../bpf/progs/test_sockmap_skb_verdict_attach.c | 2 +-
.../selftests/bpf/progs/test_sockmap_update.c | 2 +-
.../selftests/bpf/progs/test_stacktrace_build_id.c | 5 +-
.../selftests/bpf/progs/test_stacktrace_map.c | 4 +-
tools/testing/selftests/bpf/progs/test_tc_bpf.c | 2 +-
tools/testing/selftests/bpf/progs/test_tc_neigh.c | 6 +-
.../selftests/bpf/progs/test_tc_neigh_fib.c | 6 +-
tools/testing/selftests/bpf/progs/test_tc_peer.c | 10 +-
.../bpf/progs/test_tcp_check_syncookie_kern.c | 4 +-
.../testing/selftests/bpf/progs/test_tcp_estats.c | 1 -
.../selftests/bpf/progs/test_tcp_hdr_options.c | 2 +-
.../testing/selftests/bpf/progs/test_tcpbpf_kern.c | 1 -
.../selftests/bpf/progs/test_tcpnotify_kern.c | 6 +-
.../testing/selftests/bpf/progs/test_tracepoint.c | 1 -
.../testing/selftests/bpf/progs/test_tunnel_kern.c | 2 -
tools/testing/selftests/bpf/progs/test_xdp.c | 4 +-
.../bpf/progs/test_xdp_adjust_tail_grow.c | 2 +-
.../bpf/progs/test_xdp_adjust_tail_shrink.c | 4 +-
.../testing/selftests/bpf/progs/test_xdp_bpf2bpf.c | 4 +-
.../selftests/bpf/progs/test_xdp_devmap_helpers.c | 2 +-
tools/testing/selftests/bpf/progs/test_xdp_link.c | 2 +-
tools/testing/selftests/bpf/progs/test_xdp_loop.c | 4 +-
.../selftests/bpf/progs/test_xdp_noinline.c | 4 +-
.../selftests/bpf/progs/test_xdp_redirect.c | 2 -
.../bpf/progs/test_xdp_with_cpumap_helpers.c | 4 +-
.../bpf/progs/test_xdp_with_devmap_helpers.c | 4 +-
tools/testing/selftests/bpf/progs/trace_vprintk.c | 33 +
tools/testing/selftests/bpf/progs/twfw.c | 58 +
tools/testing/selftests/bpf/progs/xdp_dummy.c | 2 +-
.../selftests/bpf/progs/xdp_redirect_multi_kern.c | 4 +-
tools/testing/selftests/bpf/progs/xdping_kern.c | 4 +-
tools/testing/selftests/bpf/progs/xdpwall.c | 365 +
tools/testing/selftests/bpf/test_bpftool.py | 22 +-
tools/testing/selftests/bpf/test_bpftool_build.sh | 4 +
tools/testing/selftests/bpf/test_btf.h | 3 +
tools/testing/selftests/bpf/test_flow_dissector.sh | 10 +-
tools/testing/selftests/bpf/test_progs.c | 710 +-
tools/testing/selftests/bpf/test_progs.h | 40 +-
tools/testing/selftests/bpf/test_sockmap.c | 35 +-
tools/testing/selftests/bpf/test_sysctl.c | 4 +-
.../selftests/bpf/test_tcp_check_syncookie.sh | 4 +-
tools/testing/selftests/bpf/test_tunnel.sh | 5 +-
tools/testing/selftests/bpf/test_verifier.c | 12 +-
tools/testing/selftests/bpf/test_xdp_meta.sh | 5 +-
tools/testing/selftests/bpf/test_xdp_redirect.sh | 4 +-
.../selftests/bpf/test_xdp_redirect_multi.sh | 64 +-
tools/testing/selftests/bpf/test_xdp_veth.sh | 4 +-
tools/testing/selftests/bpf/test_xdp_vlan.sh | 7 +-
tools/testing/selftests/bpf/trace_helpers.c | 1 +
.../testing/selftests/bpf/verifier/array_access.c | 2 +-
.../selftests/bpf/verifier/atomic_cmpxchg.c | 38 +
.../testing/selftests/bpf/verifier/atomic_fetch.c | 57 +
.../selftests/bpf/verifier/atomic_invalid.c | 25 +
tools/testing/selftests/bpf/verifier/calls.c | 23 +
tools/testing/selftests/bpf/verifier/ctx_skb.c | 74 +-
tools/testing/selftests/bpf/verifier/jit.c | 69 +-
tools/testing/selftests/bpf/verifier/lwt.c | 2 +-
.../bpf/verifier/perf_event_sample_period.c | 6 +-
tools/testing/selftests/bpf/verifier/spill_fill.c | 178 +
tools/testing/selftests/bpf/vmtest.sh | 6 +-
tools/testing/selftests/bpf/xdp_redirect_multi.c | 4 +-
tools/testing/selftests/bpf/xdping.c | 7 +-
tools/testing/selftests/bpf/xdpxceiver.c | 961 +-
tools/testing/selftests/bpf/xdpxceiver.h | 75 +-
tools/testing/selftests/core/close_range_test.c | 2 +-
tools/testing/selftests/damon/debugfs_attrs.sh | 13 +
.../drivers/net/dsa/test_bridge_fdb_stress.sh | 47 +
.../drivers/net/mlxsw/devlink_trap_control.sh | 7 +-
.../drivers/net/mlxsw/devlink_trap_policer.sh | 32 +-
.../drivers/net/mlxsw/devlink_trap_tunnel_ipip.sh | 50 +-
.../selftests/drivers/net/mlxsw/mlxsw_lib.sh | 50 +
.../drivers/net/mlxsw/rif_mac_profile_scale.sh | 72 +
.../drivers/net/mlxsw/rif_mac_profiles.sh | 213 +
.../drivers/net/mlxsw/rif_mac_profiles_occ.sh | 117 +
.../selftests/drivers/net/mlxsw/rtnetlink.sh | 112 +-
.../selftests/drivers/net/mlxsw/sch_offload.sh | 290 +
.../selftests/drivers/net/mlxsw/sch_red_core.sh | 129 +-
.../selftests/drivers/net/mlxsw/sch_red_ets.sh | 64 +-
.../selftests/drivers/net/mlxsw/sch_red_root.sh | 8 +
.../mlxsw/spectrum-2/devlink_trap_tunnel_ipip6.sh | 250 +
.../drivers/net/mlxsw/spectrum-2/resource_scale.sh | 9 +-
.../net/mlxsw/spectrum-2/rif_mac_profile_scale.sh | 16 +
.../net/mlxsw/spectrum/devlink_lib_spectrum.sh | 6 +-
.../drivers/net/mlxsw/spectrum/resource_scale.sh | 2 +-
.../net/mlxsw/spectrum/rif_mac_profile_scale.sh | 16 +
.../selftests/drivers/net/mlxsw/tc_restrictions.sh | 3 +-
.../selftests/drivers/net/mlxsw/tc_sample.sh | 13 +-
.../drivers/net/netdevsim/ethtool-common.sh | 2 +-
.../drivers/net/netdevsim/tc-mq-visibility.sh | 77 +
.../drivers/net/ocelot/tc_flower_chains.sh | 50 +-
tools/testing/selftests/ftrace/ftracetest | 2 +-
tools/testing/selftests/ftrace/test.d/functions | 12 +
.../ftrace/test.d/kprobe/kprobe_args_string.tc | 3 +
.../ftrace/test.d/kprobe/kprobe_args_syntax.tc | 4 +
.../test.d/trigger/trigger-hist-expressions.tc | 63 +
.../testing/selftests/futex/functional/.gitignore | 1 +
tools/testing/selftests/futex/functional/Makefile | 3 +-
.../futex/functional/futex_wait_timeout.c | 21 +-
.../futex/functional/futex_wait_wouldblock.c | 41 +-
.../selftests/futex/functional/futex_waitv.c | 237 +
tools/testing/selftests/futex/functional/run.sh | 3 +
tools/testing/selftests/futex/include/futex2test.h | 22 +
tools/testing/selftests/kselftest/runner.sh | 28 +-
tools/testing/selftests/kvm/.gitignore | 3 +
tools/testing/selftests/kvm/Makefile | 10 +-
tools/testing/selftests/kvm/aarch64/arch_timer.c | 479 +
.../selftests/kvm/aarch64/debug-exceptions.c | 30 +-
.../selftests/kvm/aarch64/psci_cpu_on_test.c | 2 +-
tools/testing/selftests/kvm/aarch64/vgic_init.c | 369 +-
.../selftests/kvm/include/aarch64/arch_timer.h | 142 +
.../testing/selftests/kvm/include/aarch64/delay.h | 25 +
tools/testing/selftests/kvm/include/aarch64/gic.h | 21 +
.../selftests/kvm/include/aarch64/processor.h | 90 +-
.../selftests/kvm/include/aarch64/spinlock.h | 13 +
tools/testing/selftests/kvm/include/aarch64/vgic.h | 20 +
tools/testing/selftests/kvm/include/kvm_util.h | 14 +
.../selftests/kvm/include/x86_64/svm_util.h | 2 +
tools/testing/selftests/kvm/kvm_create_max_vcpus.c | 2 +-
tools/testing/selftests/kvm/lib/aarch64/gic.c | 95 +
.../selftests/kvm/lib/aarch64/gic_private.h | 21 +
tools/testing/selftests/kvm/lib/aarch64/gic_v3.c | 240 +
tools/testing/selftests/kvm/lib/aarch64/gic_v3.h | 70 +
.../testing/selftests/kvm/lib/aarch64/processor.c | 24 +-
tools/testing/selftests/kvm/lib/aarch64/spinlock.c | 27 +
tools/testing/selftests/kvm/lib/aarch64/vgic.c | 70 +
tools/testing/selftests/kvm/lib/kvm_util.c | 70 +-
tools/testing/selftests/kvm/lib/sparsebit.c | 2 +-
tools/testing/selftests/kvm/lib/x86_64/processor.c | 4 +-
tools/testing/selftests/kvm/lib/x86_64/svm.c | 27 +-
tools/testing/selftests/kvm/memslot_perf_test.c | 56 +-
.../selftests/kvm/system_counter_offset_test.c | 132 +
.../selftests/kvm/x86_64/cr4_cpuid_sync_test.c | 3 +-
.../testing/selftests/kvm/x86_64/kvm_clock_test.c | 203 +
.../selftests/kvm/x86_64/mmio_warning_test.c | 2 +-
.../selftests/kvm/x86_64/sev_migrate_tests.c | 203 +
.../selftests/kvm/x86_64/vmx_tsc_adjust_test.c | 2 +-
tools/testing/selftests/lkdtm/config | 1 +
tools/testing/selftests/lkdtm/run.sh | 10 +-
tools/testing/selftests/lkdtm/tests.txt | 1 +
tools/testing/selftests/memory-hotplug/config | 1 -
tools/testing/selftests/net/.gitignore | 5 +
tools/testing/selftests/net/Makefile | 12 +-
tools/testing/selftests/net/amt.sh | 284 +
.../selftests/net/arp_ndisc_evict_nocarrier.sh | 220 +
tools/testing/selftests/net/cmsg_so_mark.c | 67 +
tools/testing/selftests/net/cmsg_so_mark.sh | 61 +
tools/testing/selftests/net/config | 2 +
tools/testing/selftests/net/fcnal-test.sh | 63 +
tools/testing/selftests/net/fib_nexthops.sh | 1 +
tools/testing/selftests/net/forwarding/Makefile | 1 +
.../selftests/net/forwarding/bridge_igmp.sh | 12 +-
.../testing/selftests/net/forwarding/bridge_mld.sh | 12 +-
.../selftests/net/forwarding/devlink_lib.sh | 6 -
.../net/forwarding/forwarding.config.sample | 6 +
.../net/forwarding/ip6_forward_instats_vrf.sh | 172 +
.../selftests/net/forwarding/ip6gre_flat.sh | 65 +
.../selftests/net/forwarding/ip6gre_flat_key.sh | 65 +
.../selftests/net/forwarding/ip6gre_flat_keys.sh | 65 +
.../selftests/net/forwarding/ip6gre_hier.sh | 65 +
.../selftests/net/forwarding/ip6gre_hier_key.sh | 65 +
.../selftests/net/forwarding/ip6gre_hier_keys.sh | 65 +
.../testing/selftests/net/forwarding/ip6gre_lib.sh | 438 +
tools/testing/selftests/net/forwarding/lib.sh | 27 +-
.../net/forwarding/mirror_gre_bridge_1d_vlan.sh | 2 +-
.../selftests/net/forwarding/mirror_gre_changes.sh | 2 +-
.../net/forwarding/mirror_gre_vlan_bridge_1q.sh | 13 +-
.../testing/selftests/net/forwarding/mirror_lib.sh | 3 +-
.../selftests/net/forwarding/mirror_vlan.sh | 4 +-
.../selftests/net/forwarding/sch_tbf_etsprio.sh | 28 +
.../testing/selftests/net/forwarding/tc_common.sh | 10 +
tools/testing/selftests/net/gre_gso.sh | 9 +-
tools/testing/selftests/net/ioam6.sh | 208 +-
tools/testing/selftests/net/mptcp/.gitignore | 1 +
tools/testing/selftests/net/mptcp/Makefile | 2 +-
tools/testing/selftests/net/mptcp/mptcp_connect.c | 72 +-
tools/testing/selftests/net/mptcp/mptcp_join.sh | 7 +-
tools/testing/selftests/net/mptcp/mptcp_sockopt.c | 683 +
tools/testing/selftests/net/mptcp/mptcp_sockopt.sh | 31 +-
tools/testing/selftests/net/mptcp/pm_netlink.sh | 6 +-
tools/testing/selftests/net/mptcp/simult_flows.sh | 36 +-
tools/testing/selftests/net/nettest.c | 28 +-
tools/testing/selftests/net/reuseport_bpf_numa.c | 4 +
.../testing/selftests/net/test_vxlan_under_vrf.sh | 2 +
tools/testing/selftests/net/tls.c | 31 +-
tools/testing/selftests/net/udpgso_bench_rx.c | 11 +-
tools/testing/selftests/netfilter/nft_flowtable.sh | 1 -
tools/testing/selftests/netfilter/nft_nat.sh | 145 +
.../powerpc/security/mitigation-patching.sh | 4 +-
tools/testing/selftests/proc/.gitignore | 1 +
tools/testing/selftests/proc/Makefile | 2 +
tools/testing/selftests/proc/proc-tid0.c | 81 +
.../testing/selftests/rcutorture/bin/kvm-remote.sh | 1 +
tools/testing/selftests/rcutorture/bin/kvm.sh | 2 +-
tools/testing/selftests/rcutorture/bin/torture.sh | 11 +-
tools/testing/selftests/sched/cs_prctl_test.c | 28 +-
tools/testing/selftests/seccomp/seccomp_bpf.c | 6 +-
tools/testing/selftests/vm/.gitignore | 1 +
tools/testing/selftests/vm/Makefile | 1 +
tools/testing/selftests/vm/hugepage-mremap.c | 159 +
tools/testing/selftests/vm/ksm_tests.c | 154 +-
tools/testing/selftests/vm/madv_populate.c | 15 +-
tools/testing/selftests/vm/run_vmtests.sh | 11 +
tools/testing/selftests/vm/split_huge_page_test.c | 2 +-
tools/testing/selftests/vm/transhuge-stress.c | 2 +-
tools/testing/selftests/vm/userfaultfd.c | 180 +-
tools/testing/selftests/x86/Makefile | 2 +-
tools/testing/selftests/x86/amx.c | 851 +
tools/testing/selftests/x86/iopl.c | 78 +-
tools/testing/selftests/x86/test_vsyscall.c | 2 +-
tools/testing/vsock/vsock_diag_test.c | 2 -
tools/tracing/latency/latency-collector.c | 2 +-
tools/vm/page-types.c | 38 +-
tools/vm/page_owner_sort.c | 94 +-
usr/gen_init_cpio.c | 20 +-
virt/kvm/eventfd.c | 15 +-
virt/kvm/kvm_main.c | 137 +-
11298 files changed, 635795 insertions(+), 250216 deletions(-)
create mode 100644 Documentation/ABI/obsolete/o2cb
create mode 100644 Documentation/ABI/testing/sysfs-bus-fsi-devices-sbefifo
create mode 100644 Documentation/ABI/testing/sysfs-bus-iio-chemical-sunrise-co2
delete mode 100644 Documentation/ABI/testing/sysfs-bus-iio-scd30
create mode 100644 Documentation/ABI/testing/sysfs-bus-iio-temperature-max31865
create mode 100644 Documentation/ABI/testing/sysfs-bus-platform-devices-occ-hwmon
create mode 100644 Documentation/ABI/testing/sysfs-class-fc
create mode 100644 Documentation/ABI/testing/sysfs-class-hwmon
create mode 100644 Documentation/ABI/testing/sysfs-class-thermal
create mode 100644 Documentation/ABI/testing/sysfs-driver-aspeed-uart-routing
create mode 100644 Documentation/ABI/testing/sysfs-mce
create mode 100644 Documentation/ABI/testing/sysfs-timecard
create mode 100644 Documentation/admin-guide/filesystem-monitoring.rst
create mode 100644 Documentation/admin-guide/mm/damon/reclaim.rst
rename Documentation/{vm => admin-guide/mm}/swap_numa.rst (100%)
rename Documentation/{vm => admin-guide/mm}/zswap.rst (100%)
create mode 100644 Documentation/arm/stm32/stm32mp13-overview.rst
create mode 100644 Documentation/bpf/bpf_licensing.rst
create mode 100644 Documentation/devicetree/bindings/arm/arm,cci-400.yaml
create mode 100644 Documentation/devicetree/bindings/arm/cci-control-port.yaml
delete mode 100644 Documentation/devicetree/bindings/arm/cci.txt
delete mode 100644 Documentation/devicetree/bindings/arm/firmware/tlm,trusted-foundations.txt
create mode 100644 Documentation/devicetree/bindings/arm/firmware/tlm,trusted-foundations.yaml
create mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,mt8195-clock.yaml
create mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,mt8195-sys-clock.yaml
create mode 100644 Documentation/devicetree/bindings/arm/sunxi/allwinner,sun6i-a31-cpuconfig.yaml
create mode 100644 Documentation/devicetree/bindings/arm/sunxi/allwinner,sun9i-a80-prcm.yaml
create mode 100644 Documentation/devicetree/bindings/bus/palmbus.yaml
delete mode 100644 Documentation/devicetree/bindings/bus/ti-sysc.txt
create mode 100644 Documentation/devicetree/bindings/bus/ti-sysc.yaml
delete mode 100644 Documentation/devicetree/bindings/clock/fixed-mmio-clock.txt
create mode 100644 Documentation/devicetree/bindings/clock/fixed-mmio-clock.yaml
create mode 100644 Documentation/devicetree/bindings/clock/imx8ulp-cgc-clock.yaml
create mode 100644 Documentation/devicetree/bindings/clock/imx8ulp-pcc-clock.yaml
create mode 100644 Documentation/devicetree/bindings/clock/qcom,gcc-msm8994.yaml
create mode 100644 Documentation/devicetree/bindings/clock/qcom,gcc-qcm2290.yaml
create mode 100644 Documentation/devicetree/bindings/clock/qcom,sc7280-camcc.yaml
create mode 100644 Documentation/devicetree/bindings/clock/qcom,sc7280-lpasscc.yaml
create mode 100644 Documentation/devicetree/bindings/clock/samsung,exynos850-clock.yaml
delete mode 100644 Documentation/devicetree/bindings/clock/samsung,s2mps11.txt
create mode 100644 Documentation/devicetree/bindings/clock/samsung,s2mps11.yaml
create mode 100644 Documentation/devicetree/bindings/clock/stericsson,u8500-clks.yaml
delete mode 100644 Documentation/devicetree/bindings/clock/ux500.txt
create mode 100644 Documentation/devicetree/bindings/crypto/intel,keembay-ocs-ecc.yaml
delete mode 100644 Documentation/devicetree/bindings/ddr/lpddr2.txt
delete mode 100644 Documentation/devicetree/bindings/ddr/lpddr3.txt
delete mode 100644 Documentation/devicetree/bindings/display/bridge/toshiba,tc358767.txt
create mode 100644 Documentation/devicetree/bindings/display/bridge/toshiba,tc358767.yaml
create mode 100644 Documentation/devicetree/bindings/display/msm/dpu-sc7280.yaml
delete mode 100644 Documentation/devicetree/bindings/display/msm/gpu.txt
create mode 100644 Documentation/devicetree/bindings/display/msm/gpu.yaml
create mode 100644 Documentation/devicetree/bindings/display/panel/panel-edp.yaml
create mode 100644 Documentation/devicetree/bindings/display/panel/samsung,s6d27a1.yaml
create mode 100644 Documentation/devicetree/bindings/display/panel/sharp,ls060t1sx01.yaml
create mode 100644 Documentation/devicetree/bindings/display/xylon,logicvc-display.yaml
create mode 100644 Documentation/devicetree/bindings/gnss/u-blox,neo-6m.yaml
delete mode 100644 Documentation/devicetree/bindings/gnss/u-blox.txt
delete mode 100644 Documentation/devicetree/bindings/gpio/gpio-axp209.txt
delete mode 100644 Documentation/devicetree/bindings/gpio/gpio-xlp.txt
create mode 100644 Documentation/devicetree/bindings/gpio/x-powers,axp209-gpio.yaml
create mode 100644 Documentation/devicetree/bindings/gpio/xlnx,zynqmp-gpio-modepin.yaml
create mode 100644 Documentation/devicetree/bindings/gpu/host1x/nvidia,tegra210-nvdec.yaml
delete mode 100644 Documentation/devicetree/bindings/hwmon/dps650ab.txt
delete mode 100644 Documentation/devicetree/bindings/hwmon/hih6130.txt
delete mode 100644 Documentation/devicetree/bindings/hwmon/ibm,cffps1.txt
create mode 100644 Documentation/devicetree/bindings/hwmon/iio-hwmon.yaml
delete mode 100644 Documentation/devicetree/bindings/hwmon/jc42.txt
create mode 100644 Documentation/devicetree/bindings/hwmon/jedec,jc42.yaml
create mode 100644 Documentation/devicetree/bindings/hwmon/lltc,ltc4151.yaml
delete mode 100644 Documentation/devicetree/bindings/hwmon/lm70.txt
delete mode 100644 Documentation/devicetree/bindings/hwmon/lm90.txt
delete mode 100644 Documentation/devicetree/bindings/hwmon/ltc4151.txt
delete mode 100644 Documentation/devicetree/bindings/hwmon/mcp3021.txt
create mode 100644 Documentation/devicetree/bindings/hwmon/microchip,mcp3021.yaml
create mode 100644 Documentation/devicetree/bindings/hwmon/national,lm90.yaml
create mode 100644 Documentation/devicetree/bindings/hwmon/ntc-thermistor.yaml
delete mode 100644 Documentation/devicetree/bindings/hwmon/ntc_thermistor.txt
create mode 100644 Documentation/devicetree/bindings/hwmon/nuvoton,nct7802.yaml
create mode 100644 Documentation/devicetree/bindings/hwmon/pmbus/ti,lm25066.yaml
create mode 100644 Documentation/devicetree/bindings/hwmon/sensirion,sht15.yaml
delete mode 100644 Documentation/devicetree/bindings/hwmon/sht15.txt
create mode 100644 Documentation/devicetree/bindings/hwmon/ti,tmp102.yaml
create mode 100644 Documentation/devicetree/bindings/hwmon/ti,tmp108.yaml
create mode 100644 Documentation/devicetree/bindings/hwmon/ti,tmp421.yaml
delete mode 100644 Documentation/devicetree/bindings/hwmon/tmp108.txt
create mode 100644 Documentation/devicetree/bindings/i2c/apple,i2c.yaml
delete mode 100644 Documentation/devicetree/bindings/i2c/i2c-xlp9xx.txt
create mode 100644 Documentation/devicetree/bindings/iio/accel/adi,adxl313.yaml
create mode 100644 Documentation/devicetree/bindings/iio/accel/adi,adxl355.yaml
create mode 100644 Documentation/devicetree/bindings/iio/adc/adi,ad799x.yaml
create mode 100644 Documentation/devicetree/bindings/iio/adc/aspeed,ast2600-adc.yaml
create mode 100644 Documentation/devicetree/bindings/iio/adc/nxp,imx8qxp-adc.yaml
create mode 100644 Documentation/devicetree/bindings/iio/adc/ti,am3359-adc.yaml
create mode 100644 Documentation/devicetree/bindings/iio/chemical/senseair,sunrise.yaml
create mode 100644 Documentation/devicetree/bindings/iio/chemical/sensirion,scd4x.yaml
create mode 100644 Documentation/devicetree/bindings/iio/frequency/adi,adrf6780.yaml
create mode 100644 Documentation/devicetree/bindings/iio/light/liteon,ltr501.yaml
create mode 100644 Documentation/devicetree/bindings/iio/temperature/maxim,max31865.yaml
delete mode 100644 Documentation/devicetree/bindings/input/cap11xx.txt
create mode 100644 Documentation/devicetree/bindings/input/cypress-sf.yaml
create mode 100644 Documentation/devicetree/bindings/input/elan,ekth3000.yaml
delete mode 100644 Documentation/devicetree/bindings/input/elan_i2c.txt
create mode 100644 Documentation/devicetree/bindings/input/microchip,cap11xx.yaml
create mode 100644 Documentation/devicetree/bindings/input/touchscreen/silead,gsl1680.yaml
delete mode 100644 Documentation/devicetree/bindings/input/touchscreen/silead_gsl1680.txt
create mode 100644 Documentation/devicetree/bindings/input/touchscreen/ti,am3359-tsc.yaml
delete mode 100644 Documentation/devicetree/bindings/input/touchscreen/ti-tsc-adc.txt
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/microchip,eic.yaml
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/msi-controller.yaml
create mode 100644 Documentation/devicetree/bindings/ipmi/ipmi-ipmb.yaml
delete mode 100644 Documentation/devicetree/bindings/leds/register-bit-led.txt
create mode 100644 Documentation/devicetree/bindings/leds/register-bit-led.yaml
create mode 100644 Documentation/devicetree/bindings/mailbox/apple,mailbox.yaml
create mode 100644 Documentation/devicetree/bindings/media/i2c/aptina,mt9p031.yaml
create mode 100644 Documentation/devicetree/bindings/media/i2c/hynix,hi846.yaml
delete mode 100644 Documentation/devicetree/bindings/media/i2c/mt9p031.txt
delete mode 100644 Documentation/devicetree/bindings/media/i2c/ov5640.txt
create mode 100644 Documentation/devicetree/bindings/media/i2c/ovti,ov5640.yaml
create mode 100644 Documentation/devicetree/bindings/media/qcom,sc7280-venus.yaml
create mode 100644 Documentation/devicetree/bindings/media/qcom,sdm660-venus.yaml
delete mode 100644 Documentation/devicetree/bindings/media/renesas,imr.txt
create mode 100644 Documentation/devicetree/bindings/media/renesas,imr.yaml
create mode 100644 Documentation/devicetree/bindings/memory-controllers/ddr/jedec,lpddr2.yaml
rename Documentation/devicetree/bindings/{ => memory-controllers}/ddr/lpddr2-timings.txt (100%)
rename Documentation/devicetree/bindings/{ => memory-controllers}/ddr/lpddr3-timings.txt (100%)
create mode 100644 Documentation/devicetree/bindings/memory-controllers/ddr/lpddr3.txt
delete mode 100644 Documentation/devicetree/bindings/memory-controllers/fsl/ddr.txt
create mode 100644 Documentation/devicetree/bindings/memory-controllers/fsl/fsl,ddr.yaml
create mode 100644 Documentation/devicetree/bindings/memory-controllers/mediatek,mt7621-memc.yaml
delete mode 100644 Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt
create mode 100644 Documentation/devicetree/bindings/memory-controllers/ti,gpmc-child.yaml
create mode 100644 Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml
delete mode 100644 Documentation/devicetree/bindings/mfd/ac100.txt
delete mode 100644 Documentation/devicetree/bindings/mfd/aspeed-lpc.txt
create mode 100644 Documentation/devicetree/bindings/mfd/aspeed-lpc.yaml
delete mode 100644 Documentation/devicetree/bindings/mfd/axp20x.txt
create mode 100644 Documentation/devicetree/bindings/mfd/brcm,misc.yaml
create mode 100644 Documentation/devicetree/bindings/mfd/samsung,s2mpa01.yaml
create mode 100644 Documentation/devicetree/bindings/mfd/samsung,s2mps11.yaml
create mode 100644 Documentation/devicetree/bindings/mfd/samsung,s5m8767.yaml
delete mode 100644 Documentation/devicetree/bindings/mfd/samsung,sec-core.txt
create mode 100644 Documentation/devicetree/bindings/mfd/ti,am3359-tscadc.yaml
create mode 100644 Documentation/devicetree/bindings/mfd/x-powers,ac100.yaml
create mode 100644 Documentation/devicetree/bindings/mfd/x-powers,axp152.yaml
delete mode 100644 Documentation/devicetree/bindings/mips/ralink.txt
create mode 100644 Documentation/devicetree/bindings/mips/ralink.yaml
delete mode 100644 Documentation/devicetree/bindings/mmc/mmc-card.txt
create mode 100644 Documentation/devicetree/bindings/mmc/mmc-card.yaml
delete mode 100644 Documentation/devicetree/bindings/mtd/gpmc-nand.txt
delete mode 100644 Documentation/devicetree/bindings/mtd/gpmc-nor.txt
delete mode 100644 Documentation/devicetree/bindings/mtd/gpmc-onenand.txt
create mode 100644 Documentation/devicetree/bindings/mtd/ti,gpmc-nand.yaml
create mode 100644 Documentation/devicetree/bindings/mtd/ti,gpmc-onenand.yaml
create mode 100644 Documentation/devicetree/bindings/net/asix,ax88796c.yaml
delete mode 100644 Documentation/devicetree/bindings/net/dsa/qca8k.txt
create mode 100644 Documentation/devicetree/bindings/net/dsa/qca8k.yaml
delete mode 100644 Documentation/devicetree/bindings/net/gpmc-eth.txt
create mode 100644 Documentation/devicetree/bindings/net/lantiq,etop-xway.yaml
delete mode 100644 Documentation/devicetree/bindings/net/lantiq,xrx200-net.txt
create mode 100644 Documentation/devicetree/bindings/net/lantiq,xrx200-net.yaml
delete mode 100644 Documentation/devicetree/bindings/net/marvell-bluetooth.txt
create mode 100644 Documentation/devicetree/bindings/net/marvell-bluetooth.yaml
create mode 100644 Documentation/devicetree/bindings/net/nfc/marvell,nci.yaml
delete mode 100644 Documentation/devicetree/bindings/net/nfc/nfcmrvl.txt
create mode 100644 Documentation/devicetree/bindings/net/nfc/nxp,nci.yaml
create mode 100644 Documentation/devicetree/bindings/net/nfc/nxp,pn532.yaml
create mode 100644 Documentation/devicetree/bindings/net/nfc/nxp,pn544.yaml
delete mode 100644 Documentation/devicetree/bindings/net/nfc/nxp-nci.txt
delete mode 100644 Documentation/devicetree/bindings/net/nfc/pn532.txt
delete mode 100644 Documentation/devicetree/bindings/net/nfc/pn544.txt
create mode 100644 Documentation/devicetree/bindings/net/nfc/st,st-nci.yaml
create mode 100644 Documentation/devicetree/bindings/net/nfc/st,st21nfca.yaml
create mode 100644 Documentation/devicetree/bindings/net/nfc/st,st95hf.yaml
delete mode 100644 Documentation/devicetree/bindings/net/nfc/st-nci-i2c.txt
delete mode 100644 Documentation/devicetree/bindings/net/nfc/st-nci-spi.txt
delete mode 100644 Documentation/devicetree/bindings/net/nfc/st21nfca.txt
delete mode 100644 Documentation/devicetree/bindings/net/nfc/st95hf.txt
create mode 100644 Documentation/devicetree/bindings/net/nfc/ti,trf7970a.yaml
delete mode 100644 Documentation/devicetree/bindings/net/nfc/trf7970a.txt
create mode 100644 Documentation/devicetree/bindings/net/ti,bluetooth.yaml
delete mode 100644 Documentation/devicetree/bindings/net/ti-bluetooth.txt
delete mode 100644 Documentation/devicetree/bindings/net/wireless/esp,esp8089.txt
create mode 100644 Documentation/devicetree/bindings/net/wireless/esp,esp8089.yaml
delete mode 100644 Documentation/devicetree/bindings/net/wireless/qca,ath9k.txt
create mode 100644 Documentation/devicetree/bindings/net/wireless/qca,ath9k.yaml
delete mode 100644 Documentation/devicetree/bindings/net/wireless/ti,wlcore,spi.txt
delete mode 100644 Documentation/devicetree/bindings/net/wireless/ti,wlcore.txt
create mode 100644 Documentation/devicetree/bindings/net/wireless/ti,wlcore.yaml
create mode 100644 Documentation/devicetree/bindings/pci/apple,pcie.yaml
create mode 100644 Documentation/devicetree/bindings/pci/mediatek,mt7621-pcie.yaml
create mode 100644 Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml
create mode 100644 Documentation/devicetree/bindings/pci/rockchip-dw-pcie.yaml
delete mode 100644 Documentation/devicetree/bindings/phy/nvidia,tegra20-usb-phy.txt
create mode 100644 Documentation/devicetree/bindings/phy/nvidia,tegra20-usb-phy.yaml
create mode 100644 Documentation/devicetree/bindings/pinctrl/mediatek,mt7986-pinctrl.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,pmic-mpp.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,pmic-mpp.yaml
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,qcm2290-pinctrl.yaml
create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,sm6350-pinctrl.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/rockchip,pinctrl.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/rockchip,pinctrl.yaml
create mode 100644 Documentation/devicetree/bindings/power/supply/samsung,battery.yaml
delete mode 100644 Documentation/devicetree/bindings/regulator/max8952.txt
delete mode 100644 Documentation/devicetree/bindings/regulator/max8973-regulator.txt
delete mode 100644 Documentation/devicetree/bindings/regulator/max8997-regulator.txt
create mode 100644 Documentation/devicetree/bindings/regulator/maxim,max8952.yaml
create mode 100644 Documentation/devicetree/bindings/regulator/maxim,max8973.yaml
create mode 100644 Documentation/devicetree/bindings/regulator/maxim,max8997.yaml
delete mode 100644 Documentation/devicetree/bindings/regulator/samsung,s2mpa01.txt
create mode 100644 Documentation/devicetree/bindings/regulator/samsung,s2mpa01.yaml
delete mode 100644 Documentation/devicetree/bindings/regulator/samsung,s2mps11.txt
create mode 100644 Documentation/devicetree/bindings/regulator/samsung,s2mps11.yaml
create mode 100644 Documentation/devicetree/bindings/regulator/samsung,s2mps13.yaml
create mode 100644 Documentation/devicetree/bindings/regulator/samsung,s2mps14.yaml
create mode 100644 Documentation/devicetree/bindings/regulator/samsung,s2mps15.yaml
create mode 100644 Documentation/devicetree/bindings/regulator/samsung,s2mpu02.yaml
delete mode 100644 Documentation/devicetree/bindings/regulator/samsung,s5m8767.txt
create mode 100644 Documentation/devicetree/bindings/regulator/samsung,s5m8767.yaml
create mode 100644 Documentation/devicetree/bindings/regulator/silergy,sy8106a.yaml
delete mode 100644 Documentation/devicetree/bindings/regulator/sy8106a-regulator.txt
create mode 100644 Documentation/devicetree/bindings/remoteproc/amlogic,meson-mx-ao-arc.yaml
delete mode 100644 Documentation/devicetree/bindings/remoteproc/mtk,scp.txt
create mode 100644 Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml
create mode 100644 Documentation/devicetree/bindings/reserved-memory/memory-region.yaml
delete mode 100644 Documentation/devicetree/bindings/reserved-memory/ramoops.txt
create mode 100644 Documentation/devicetree/bindings/reserved-memory/ramoops.yaml
create mode 100644 Documentation/devicetree/bindings/reserved-memory/reserved-memory.yaml
create mode 100644 Documentation/devicetree/bindings/reserved-memory/shared-dma-pool.yaml
delete mode 100644 Documentation/devicetree/bindings/rng/omap_rng.txt
create mode 100644 Documentation/devicetree/bindings/rng/omap_rng.yaml
create mode 100644 Documentation/devicetree/bindings/rtc/mstar,msc313-rtc.yaml
delete mode 100644 Documentation/devicetree/bindings/serial/brcm,bcm6345-uart.txt
create mode 100644 Documentation/devicetree/bindings/serial/brcm,bcm6345-uart.yaml
delete mode 100644 Documentation/devicetree/bindings/serial/fsl,s32-linflexuart.txt
create mode 100644 Documentation/devicetree/bindings/serial/fsl,s32-linflexuart.yaml
delete mode 100644 Documentation/devicetree/bindings/serial/xlnx,opb-uartlite.txt
create mode 100644 Documentation/devicetree/bindings/serial/xlnx,opb-uartlite.yaml
create mode 100644 Documentation/devicetree/bindings/soc/aspeed/uart-routing.yaml
create mode 100644 Documentation/devicetree/bindings/soc/imx/fsl,imx8mm-disp-blk-ctrl.yaml
create mode 100644 Documentation/devicetree/bindings/soc/imx/fsl,imx8mm-vpu-blk-ctrl.yaml
create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,spm.yaml
create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom-stats.yaml
create mode 100644 Documentation/devicetree/bindings/sound/ak4375.yaml
create mode 100644 Documentation/devicetree/bindings/sound/cirrus,cs42l42.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/cs42l42.txt
delete mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-alc5632.txt
create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-alc5632.yaml
create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-common.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-max98090.txt
create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-max98090.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-rt5640.txt
create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-rt5640.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-rt5677.txt
create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-rt5677.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-sgtl5000.txt
create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-sgtl5000.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-trimslice.txt
create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-trimslice.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8753.txt
create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8753.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8903.txt
create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8903.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm9712.txt
create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm9712.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra20-i2s.txt
create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra20-i2s.yaml
create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra20-spdif.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/qcom,apq8016-sbc.txt
create mode 100644 Documentation/devicetree/bindings/sound/ti,tlv320adc3xxx.yaml
create mode 100644 Documentation/devicetree/bindings/sound/wlf,wm8903.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/wm8903.txt
create mode 100644 Documentation/devicetree/bindings/spi/cdns,xspi.yaml
create mode 100644 Documentation/devicetree/bindings/spi/ingenic,spi.yaml
delete mode 100644 Documentation/devicetree/bindings/spi/spi-nxp-fspi.txt
create mode 100644 Documentation/devicetree/bindings/spi/spi-nxp-fspi.yaml
delete mode 100644 Documentation/devicetree/bindings/spi/spi-xlp.txt
create mode 100644 Documentation/devicetree/bindings/thermal/qcom-spmi-adc-tm-hc.yaml
create mode 100644 Documentation/devicetree/bindings/usb/smsc,usb3503.yaml
delete mode 100644 Documentation/devicetree/bindings/usb/udc-xilinx.txt
delete mode 100644 Documentation/devicetree/bindings/usb/usb3503.txt
create mode 100644 Documentation/devicetree/bindings/usb/xlnx,usb2.yaml
delete mode 100644 Documentation/devicetree/bindings/w1/w1-gpio.txt
create mode 100644 Documentation/devicetree/bindings/w1/w1-gpio.yaml
create mode 100644 Documentation/driver-api/media/drivers/rkisp1.rst
create mode 100644 Documentation/filesystems/nfs/reexport.rst
create mode 100644 Documentation/firmware-guide/acpi/non-d0-probe.rst
delete mode 100644 Documentation/gpu/rfc/i915_parallel_execbuf.h
create mode 100644 Documentation/hwmon/max6620.rst
create mode 100644 Documentation/networking/devlink/iosm.rst
create mode 100644 Documentation/networking/devlink/octeontx2.rst
create mode 100644 Documentation/process/maintainer-handbooks.rst
create mode 100644 Documentation/process/maintainer-tip.rst
create mode 100644 Documentation/translations/zh_CN/PCI/index.rst
create mode 100644 Documentation/translations/zh_CN/PCI/pci.rst
create mode 100644 Documentation/translations/zh_CN/admin-guide/sysrq.rst
create mode 100644 Documentation/translations/zh_CN/core-api/assoc_array.rst
create mode 100644 Documentation/translations/zh_CN/core-api/boot-time-mm.rst
create mode 100644 Documentation/translations/zh_CN/core-api/genalloc.rst
create mode 100644 Documentation/translations/zh_CN/core-api/gfp_mask-from-fs-io.rst
create mode 100644 Documentation/translations/zh_CN/core-api/kref.rst
create mode 100644 Documentation/translations/zh_CN/core-api/memory-allocation.rst
create mode 100644 Documentation/translations/zh_CN/core-api/mm-api.rst
create mode 100644 Documentation/translations/zh_CN/core-api/unaligned-memory-access.rst
create mode 100644 Documentation/translations/zh_CN/core-api/xarray.rst
create mode 100644 Documentation/userspace-api/futex2.rst
create mode 100644 Documentation/x86/xstate.rst
create mode 100644 arch/arm/boot/dts/armada-381-netgear-gs110emx.dts
create mode 100644 arch/arm/boot/dts/aspeed-bmc-inventec-transformers.dts
create mode 100644 arch/arm/boot/dts/aspeed-bmc-tyan-s7106.dts
create mode 100644 arch/arm/boot/dts/at91-lmu5000.dts
create mode 100644 arch/arm/boot/dts/at91-q5xr5.dts
create mode 100644 arch/arm/boot/dts/bcm-nsp-ax.dtsi
create mode 100644 arch/arm/boot/dts/bcm2711-rpi-cm4-io.dts
create mode 100644 arch/arm/boot/dts/bcm2711-rpi-cm4.dtsi
create mode 100644 arch/arm/boot/dts/bcm283x-rpi-wifi-bt.dtsi
create mode 100644 arch/arm/boot/dts/bcm47094-asus-rt-ac88u.dts
create mode 100644 arch/arm/boot/dts/bcm958625-meraki-alamo.dtsi
create mode 100644 arch/arm/boot/dts/bcm958625-meraki-kingpin.dtsi
create mode 100644 arch/arm/boot/dts/bcm958625-meraki-mx64-a0.dts
create mode 100644 arch/arm/boot/dts/bcm958625-meraki-mx64.dts
create mode 100644 arch/arm/boot/dts/bcm958625-meraki-mx64w-a0.dts
create mode 100644 arch/arm/boot/dts/bcm958625-meraki-mx64w.dts
create mode 100644 arch/arm/boot/dts/bcm958625-meraki-mx65.dts
create mode 100644 arch/arm/boot/dts/bcm958625-meraki-mx65w.dts
create mode 100644 arch/arm/boot/dts/bcm958625-meraki-mx6x-common.dtsi
create mode 100644 arch/arm/boot/dts/e70k02.dtsi
create mode 100644 arch/arm/boot/dts/gemini-ns2502.dts
create mode 100644 arch/arm/boot/dts/gemini-ssi1328.dts
create mode 100644 arch/arm/boot/dts/imx6qdl-skov-revc-lt2.dtsi
create mode 100644 arch/arm/boot/dts/imx6sl-tolino-vision5.dts
create mode 100644 arch/arm/boot/dts/imx6sll-kobo-librah2o.dts
create mode 100644 arch/arm/boot/dts/imx6ull-colibri-emmc-eval-v3.dts
create mode 100644 arch/arm/boot/dts/imx6ull-colibri-emmc-nonwifi.dtsi
create mode 100644 arch/arm/boot/dts/qcom-apq8026-lg-lenok.dts
create mode 100644 arch/arm/boot/dts/qcom-msm8916-samsung-serranove.dts
create mode 100644 arch/arm/boot/dts/qcom-msm8916-smp.dtsi
create mode 100644 arch/arm/boot/dts/qcom-pm8226.dtsi
create mode 100644 arch/arm/boot/dts/sama5d29.dtsi
create mode 100644 arch/arm/boot/dts/socfpga_arria10_mercury_aa1.dts
create mode 100644 arch/arm/boot/dts/stm32mp13-pinctrl.dtsi
create mode 100644 arch/arm/boot/dts/stm32mp131.dtsi
create mode 100644 arch/arm/boot/dts/stm32mp133.dtsi
create mode 100644 arch/arm/boot/dts/stm32mp135.dtsi
create mode 100644 arch/arm/boot/dts/stm32mp135f-dk.dts
create mode 100644 arch/arm/boot/dts/stm32mp13xc.dtsi
create mode 100644 arch/arm/boot/dts/stm32mp13xf.dtsi
create mode 100644 arch/arm/include/asm/current.h
delete mode 100644 arch/arm/mach-omap2/scrm54xx.h
create mode 100644 arch/arm64/boot/dts/amlogic/meson-axg-jethome-jethub-j100.dts
create mode 100644 arch/arm64/boot/dts/amlogic/meson-g12a-radxa-zero.dts
create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxl-s905w-jethome-jethub-j80.dts
create mode 100644 arch/arm64/boot/dts/broadcom/bcm2711-rpi-cm4-io.dts
create mode 100644 arch/arm64/boot/dts/exynos/exynosautov9-pinctrl.dtsi
create mode 100644 arch/arm64/boot/dts/exynos/exynosautov9-sadk.dts
create mode 100644 arch/arm64/boot/dts/exynos/exynosautov9.dtsi
create mode 100644 arch/arm64/boot/dts/freescale/fsl-lx2160a-bluebox3-rev-a.dts
create mode 100644 arch/arm64/boot/dts/freescale/fsl-lx2160a-bluebox3.dts
create mode 100644 arch/arm64/boot/dts/freescale/s32g2.dtsi
create mode 100644 arch/arm64/boot/dts/freescale/s32g274a-evb.dts
create mode 100644 arch/arm64/boot/dts/freescale/s32g274a-rdb2.dts
create mode 100644 arch/arm64/boot/dts/hisilicon/hikey970-pmic.dtsi
create mode 100644 arch/arm64/boot/dts/marvell/armada-7040-mochabin.dts
create mode 100644 arch/arm64/boot/dts/mediatek/mt8183-kukui-audio-da7219-max98357a.dtsi
create mode 100644 arch/arm64/boot/dts/mediatek/mt8183-kukui-audio-da7219-rt1015p.dtsi
create mode 100644 arch/arm64/boot/dts/mediatek/mt8183-kukui-audio-da7219.dtsi
create mode 100644 arch/arm64/boot/dts/mediatek/mt8183-kukui-audio-max98357a.dtsi
create mode 100644 arch/arm64/boot/dts/mediatek/mt8183-kukui-audio-rt1015p.dtsi
create mode 100644 arch/arm64/boot/dts/mediatek/mt8183-kukui-audio-ts3a227e-max98357a.dtsi
create mode 100644 arch/arm64/boot/dts/mediatek/mt8183-kukui-audio-ts3a227e-rt1015p.dtsi
create mode 100644 arch/arm64/boot/dts/mediatek/mt8183-kukui-audio-ts3a227e.dtsi
delete mode 100644 arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi
delete mode 100644 arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi
delete mode 100644 arch/arm64/boot/dts/qcom/msm8916-mtp.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/msm8916-samsung-serranove.dts
delete mode 100644 arch/arm64/boot/dts/qcom/msm8996-mtp.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/msm8996-xiaomi-common.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/msm8996-xiaomi-gemini.dts
create mode 100644 arch/arm64/boot/dts/qcom/msm8996-xiaomi-scorpio.dts
create mode 100644 arch/arm64/boot/dts/qcom/msm8998-fxtec-pro1.dts
create mode 100644 arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino-lilac.dts
create mode 100644 arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino-maple.dts
create mode 100644 arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino-poplar.dts
create mode 100644 arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/pm6350.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-homestar-r2.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-homestar-r3.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-homestar.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-parade-ps8640.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sc7180-trogdor-ti-sn65dsi86.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sc7280-herobrine.dts
create mode 100644 arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sm6350-sony-xperia-lena-pdx213.dts
create mode 100644 arch/arm64/boot/dts/qcom/sm6350.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts
create mode 100644 arch/arm64/boot/dts/qcom/sm7225.dtsi
create mode 100644 arch/arm64/boot/dts/renesas/draak.dtsi
create mode 100644 arch/arm64/boot/dts/renesas/ebisu.dtsi
create mode 100644 arch/arm64/boot/dts/renesas/r8a779m0.dtsi
create mode 100644 arch/arm64/boot/dts/renesas/r8a779m2.dtsi
create mode 100644 arch/arm64/boot/dts/renesas/r8a779m4.dtsi
create mode 100644 arch/arm64/boot/dts/renesas/r8a779m5-salvator-xs.dts
create mode 100644 arch/arm64/boot/dts/renesas/r8a779m5.dtsi
create mode 100644 arch/arm64/boot/dts/renesas/r8a779m6.dtsi
create mode 100644 arch/arm64/boot/dts/renesas/r8a779m7.dtsi
create mode 100644 arch/arm64/boot/dts/renesas/r8a779m8.dtsi
create mode 100644 arch/arm64/boot/dts/renesas/rzg2l-smarc-som.dtsi
create mode 100644 arch/arm64/boot/dts/rockchip/rk3328-roc-pc.dts
create mode 100644 arch/arm64/boot/dts/rockchip/rk3399-gru-scarlet-dumo.dts
create mode 100644 arch/arm64/boot/dts/rockchip/rk3399-roc-pc-plus.dts
create mode 100644 arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4a-plus.dts
create mode 100644 arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4b-plus.dts
create mode 100644 arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts
create mode 100644 arch/arm64/boot/dts/rockchip/rk3566.dtsi
create mode 100644 arch/arm64/boot/dts/rockchip/rk356x.dtsi
create mode 100644 arch/arm64/boot/dts/ti/k3-am65-iot2050-common-pg1.dtsi
create mode 100644 arch/arm64/boot/dts/ti/k3-am65-iot2050-common-pg2.dtsi
create mode 100644 arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic-common.dtsi
create mode 100644 arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic-pg2.dts
create mode 100644 arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced-common.dtsi
create mode 100644 arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced-pg2.dts
create mode 100644 arch/arm64/boot/dts/ti/k3-j721e-sk.dts
create mode 100644 arch/arm64/boot/dts/toshiba/tmpv7708-visrobo-vrb.dts
create mode 100644 arch/arm64/boot/dts/toshiba/tmpv7708-visrobo-vrc.dtsi
create mode 100644 arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revA.dts
create mode 100644 arch/arm64/boot/dts/xilinx/zynqmp-sck-kv-g-revB.dts
create mode 100644 arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
create mode 100644 arch/arm64/boot/dts/xilinx/zynqmp-smk-k26-revA.dts
create mode 100644 arch/arm64/boot/dts/xilinx/zynqmp-zcu102-rev1.1.dts
create mode 100644 arch/arm64/include/asm/asm-extable.h
create mode 100644 arch/arm64/include/asm/gpr-num.h
delete mode 100644 arch/arm64/kernel/cpu-reset.h
create mode 100644 arch/arm64/kvm/hyp/include/hyp/fault.h
create mode 100644 arch/arm64/kvm/hyp/include/nvhe/fixed_config.h
create mode 100644 arch/arm64/kvm/hyp/nvhe/pkvm.c
create mode 100644 arch/arm64/kvm/hyp/nvhe/sys_regs.c
create mode 100644 arch/arm64/mm/trans_pgd-asm.S
delete mode 100644 arch/mips/boot/compressed/.gitignore
create mode 100644 arch/mips/boot/compressed/ashldi3.c
create mode 100644 arch/mips/boot/compressed/bswapdi.c
create mode 100644 arch/mips/boot/compressed/bswapsi.c
create mode 100644 arch/mips/boot/compressed/uart-ath79.c
delete mode 100644 arch/mips/boot/dts/netlogic/Makefile
delete mode 100644 arch/mips/boot/dts/netlogic/xlp_evp.dts
delete mode 100644 arch/mips/boot/dts/netlogic/xlp_fvp.dts
delete mode 100644 arch/mips/boot/dts/netlogic/xlp_gvp.dts
delete mode 100644 arch/mips/boot/dts/netlogic/xlp_rvp.dts
delete mode 100644 arch/mips/boot/dts/netlogic/xlp_svp.dts
delete mode 100644 arch/mips/configs/nlm_xlp_defconfig
delete mode 100644 arch/mips/configs/nlm_xlr_defconfig
delete mode 100644 arch/mips/include/asm/mach-netlogic/cpu-feature-overrides.h
delete mode 100644 arch/mips/include/asm/mach-netlogic/irq.h
delete mode 100644 arch/mips/include/asm/mach-netlogic/multi-node.h
delete mode 100644 arch/mips/include/asm/netlogic/common.h
delete mode 100644 arch/mips/include/asm/netlogic/haldefs.h
delete mode 100644 arch/mips/include/asm/netlogic/interrupt.h
delete mode 100644 arch/mips/include/asm/netlogic/mips-extns.h
delete mode 100644 arch/mips/include/asm/netlogic/psb-bootinfo.h
delete mode 100644 arch/mips/include/asm/netlogic/xlp-hal/bridge.h
delete mode 100644 arch/mips/include/asm/netlogic/xlp-hal/cpucontrol.h
delete mode 100644 arch/mips/include/asm/netlogic/xlp-hal/iomap.h
delete mode 100644 arch/mips/include/asm/netlogic/xlp-hal/pcibus.h
delete mode 100644 arch/mips/include/asm/netlogic/xlp-hal/pic.h
delete mode 100644 arch/mips/include/asm/netlogic/xlp-hal/sys.h
delete mode 100644 arch/mips/include/asm/netlogic/xlp-hal/uart.h
delete mode 100644 arch/mips/include/asm/netlogic/xlp-hal/xlp.h
delete mode 100644 arch/mips/include/asm/netlogic/xlr/bridge.h
delete mode 100644 arch/mips/include/asm/netlogic/xlr/flash.h
delete mode 100644 arch/mips/include/asm/netlogic/xlr/fmn.h
delete mode 100644 arch/mips/include/asm/netlogic/xlr/gpio.h
delete mode 100644 arch/mips/include/asm/netlogic/xlr/iomap.h
delete mode 100644 arch/mips/include/asm/netlogic/xlr/msidef.h
delete mode 100644 arch/mips/include/asm/netlogic/xlr/pic.h
delete mode 100644 arch/mips/include/asm/netlogic/xlr/xlr.h
delete mode 100644 arch/mips/net/bpf_jit.c
delete mode 100644 arch/mips/net/bpf_jit.h
delete mode 100644 arch/mips/net/bpf_jit_asm.S
create mode 100644 arch/mips/net/bpf_jit_comp.c
create mode 100644 arch/mips/net/bpf_jit_comp.h
create mode 100644 arch/mips/net/bpf_jit_comp32.c
create mode 100644 arch/mips/net/bpf_jit_comp64.c
delete mode 100644 arch/mips/net/ebpf_jit.c
delete mode 100644 arch/mips/netlogic/Kconfig
delete mode 100644 arch/mips/netlogic/Makefile
delete mode 100644 arch/mips/netlogic/Platform
delete mode 100644 arch/mips/netlogic/common/Makefile
delete mode 100644 arch/mips/netlogic/common/earlycons.c
delete mode 100644 arch/mips/netlogic/common/irq.c
delete mode 100644 arch/mips/netlogic/common/reset.S
delete mode 100644 arch/mips/netlogic/common/smp.c
delete mode 100644 arch/mips/netlogic/common/smpboot.S
delete mode 100644 arch/mips/netlogic/common/time.c
delete mode 100644 arch/mips/netlogic/xlp/Makefile
delete mode 100644 arch/mips/netlogic/xlp/ahci-init-xlp2.c
delete mode 100644 arch/mips/netlogic/xlp/ahci-init.c
delete mode 100644 arch/mips/netlogic/xlp/cop2-ex.c
delete mode 100644 arch/mips/netlogic/xlp/dt.c
delete mode 100644 arch/mips/netlogic/xlp/nlm_hal.c
delete mode 100644 arch/mips/netlogic/xlp/setup.c
delete mode 100644 arch/mips/netlogic/xlp/usb-init-xlp2.c
delete mode 100644 arch/mips/netlogic/xlp/usb-init.c
delete mode 100644 arch/mips/netlogic/xlp/wakeup.c
delete mode 100644 arch/mips/netlogic/xlr/Makefile
delete mode 100644 arch/mips/netlogic/xlr/fmn-config.c
delete mode 100644 arch/mips/netlogic/xlr/fmn.c
delete mode 100644 arch/mips/netlogic/xlr/platform-flash.c
delete mode 100644 arch/mips/netlogic/xlr/platform.c
delete mode 100644 arch/mips/netlogic/xlr/setup.c
delete mode 100644 arch/mips/netlogic/xlr/wakeup.c
delete mode 100644 arch/mips/pci/msi-xlp.c
delete mode 100644 arch/mips/pci/pci-xlp.c
delete mode 100644 arch/mips/pci/pci-xlr.c
create mode 100644 arch/parisc/include/asm/current.h
create mode 100644 arch/parisc/include/asm/kfence.h
create mode 100644 arch/parisc/kernel/toc.c
create mode 100644 arch/parisc/kernel/toc_asm.S
create mode 100644 arch/powerpc/include/asm/static_call.h
create mode 100644 arch/powerpc/kernel/static_call.c
create mode 100644 arch/powerpc/mm/nohash/fsl_book3e.c
delete mode 100644 arch/powerpc/mm/nohash/fsl_booke.c
create mode 100644 arch/powerpc/platforms/pseries/cc_platform.c
create mode 100644 arch/riscv/configs/32-bit.config
create mode 100644 arch/riscv/configs/64-bit.config
create mode 100644 arch/riscv/include/asm/kvm_host.h
create mode 100644 arch/riscv/include/asm/kvm_types.h
create mode 100644 arch/riscv/include/asm/kvm_vcpu_fp.h
create mode 100644 arch/riscv/include/asm/kvm_vcpu_timer.h
create mode 100644 arch/riscv/include/uapi/asm/kvm.h
create mode 100644 arch/riscv/kvm/Kconfig
create mode 100644 arch/riscv/kvm/Makefile
create mode 100644 arch/riscv/kvm/main.c
create mode 100644 arch/riscv/kvm/mmu.c
create mode 100644 arch/riscv/kvm/tlb.S
create mode 100644 arch/riscv/kvm/vcpu.c
create mode 100644 arch/riscv/kvm/vcpu_exit.c
create mode 100644 arch/riscv/kvm/vcpu_fp.c
create mode 100644 arch/riscv/kvm/vcpu_sbi.c
create mode 100644 arch/riscv/kvm/vcpu_switch.S
create mode 100644 arch/riscv/kvm/vcpu_timer.c
create mode 100644 arch/riscv/kvm/vm.c
create mode 100644 arch/riscv/kvm/vmid.c
create mode 100644 arch/s390/include/asm/text-patching.h
create mode 100644 arch/s390/lib/test_kprobes.c
create mode 100644 arch/s390/lib/test_kprobes.h
create mode 100644 arch/s390/lib/test_kprobes_asm.S
create mode 100644 arch/sh/boot/compressed/ashiftrt.S
create mode 100644 arch/sh/boot/compressed/ashldi3.c
create mode 100644 arch/sh/boot/compressed/ashlsi3.S
create mode 100644 arch/sh/boot/compressed/ashrsi3.S
create mode 100644 arch/sh/boot/compressed/lshrsi3.S
create mode 100644 arch/x86/hyperv/ivm.c
create mode 100644 arch/x86/include/asm/extable_fixup_types.h
create mode 100644 arch/x86/include/asm/fpu/sched.h
create mode 100644 arch/x86/kernel/cc_platform.c
create mode 100644 arch/x86/kernel/cpu/vortex.c
create mode 100644 arch/x86/kernel/fpu/context.h
create mode 100644 arch/x86/kernel/fpu/internal.h
create mode 100644 arch/x86/kernel/fpu/legacy.h
create mode 100644 arch/x86/kernel/fpu/xstate.h
create mode 100644 arch/xtensa/include/asm/sections.h
create mode 100644 block/blk-crypto-profile.c
create mode 100644 block/blk-ia-ranges.c
create mode 100644 block/blk-throttle.h
create mode 100644 block/elevator.h
delete mode 100644 block/keyslot-manager.c
delete mode 100644 crypto/ecc.h
create mode 100644 drivers/auxdisplay/line-display.c
create mode 100644 drivers/auxdisplay/line-display.h
create mode 100644 drivers/base/firmware_loader/builtin/main.c
delete mode 100644 drivers/block/cryptoloop.c
create mode 100644 drivers/bus/fsl-mc/obj-api.c
create mode 100644 drivers/char/ipmi/ipmi_ipmb.c
create mode 100644 drivers/clk/imx/clk-imx8ulp.c
create mode 100644 drivers/clk/mediatek/clk-mt8195-apmixedsys.c
create mode 100644 drivers/clk/mediatek/clk-mt8195-apusys_pll.c
create mode 100644 drivers/clk/mediatek/clk-mt8195-cam.c
create mode 100644 drivers/clk/mediatek/clk-mt8195-ccu.c
create mode 100644 drivers/clk/mediatek/clk-mt8195-img.c
create mode 100644 drivers/clk/mediatek/clk-mt8195-imp_iic_wrap.c
create mode 100644 drivers/clk/mediatek/clk-mt8195-infra_ao.c
create mode 100644 drivers/clk/mediatek/clk-mt8195-ipe.c
create mode 100644 drivers/clk/mediatek/clk-mt8195-mfg.c
create mode 100644 drivers/clk/mediatek/clk-mt8195-peri_ao.c
create mode 100644 drivers/clk/mediatek/clk-mt8195-scp_adsp.c
create mode 100644 drivers/clk/mediatek/clk-mt8195-topckgen.c
create mode 100644 drivers/clk/mediatek/clk-mt8195-vdec.c
create mode 100644 drivers/clk/mediatek/clk-mt8195-vdo0.c
create mode 100644 drivers/clk/mediatek/clk-mt8195-vdo1.c
create mode 100644 drivers/clk/mediatek/clk-mt8195-venc.c
create mode 100644 drivers/clk/mediatek/clk-mt8195-vpp0.c
create mode 100644 drivers/clk/mediatek/clk-mt8195-vpp1.c
create mode 100644 drivers/clk/mediatek/clk-mt8195-wpe.c
create mode 100644 drivers/clk/qcom/camcc-sc7280.c
create mode 100644 drivers/clk/qcom/gcc-qcm2290.c
create mode 100644 drivers/clk/qcom/lpasscc-sc7280.c
create mode 100644 drivers/clk/samsung/clk-exynos850.c
create mode 100644 drivers/clk/ux500/prcc.h
create mode 100644 drivers/clk/ux500/reset-prcc.c
create mode 100644 drivers/clk/ux500/reset-prcc.h
create mode 100644 drivers/counter/counter-chrdev.c
create mode 100644 drivers/counter/counter-chrdev.h
create mode 100644 drivers/counter/counter-core.c
create mode 100644 drivers/counter/counter-sysfs.c
create mode 100644 drivers/counter/counter-sysfs.h
delete mode 100644 drivers/counter/counter.c
create mode 100644 drivers/crypto/keembay/keembay-ocs-ecc.c
create mode 100644 drivers/cxl/core/mbox.c
delete mode 100644 drivers/dma-buf/seqno-fence.c
create mode 100644 drivers/gpio/gpio-zynqmp-modepin.c
create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_umr.h
delete mode 100644 drivers/gpu/drm/amd/amdgpu/beige_goby_reg_init.c
delete mode 100644 drivers/gpu/drm/amd/amdgpu/cyan_skillfish_reg_init.c
delete mode 100644 drivers/gpu/drm/amd/amdgpu/navi10_reg_init.c
delete mode 100644 drivers/gpu/drm/amd/amdgpu/navi12_reg_init.c
delete mode 100644 drivers/gpu/drm/amd/amdgpu/navi14_reg_init.c
delete mode 100644 drivers/gpu/drm/amd/amdgpu/sienna_cichlid_reg_init.c
delete mode 100644 drivers/gpu/drm/amd/amdgpu/vangogh_reg_init.c
delete mode 100644 drivers/gpu/drm/amd/amdgpu/yellow_carp_reg_init.c
create mode 100644 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn201/dcn201_clk_mgr.c
create mode 100644 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn201/dcn201_clk_mgr.h
create mode 100644 drivers/gpu/drm/amd/display/dc/core/dc_link_dpia.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/Makefile
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_dccg.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_dccg.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_dpp.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_dpp.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_hubbub.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_hubbub.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_hubp.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_hubp.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_hwseq.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_hwseq.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_init.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_init.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_link_encoder.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_link_encoder.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_mpc.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_mpc.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_opp.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_opp.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_optc.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_optc.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_resource.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_resource.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn31/dcn31_afmt.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn31/dcn31_afmt.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn31/dcn31_apg.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn31/dcn31_apg.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hpo_dp_link_encoder.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hpo_dp_link_encoder.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hpo_dp_stream_encoder.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hpo_dp_stream_encoder.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn31/dcn31_vpg.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dcn31/dcn31_vpg.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn20/dcn20_fpu.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn20/dcn20_fpu.h
delete mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn2x/dcn2x.c
delete mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn2x/dcn2x.h
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn301/dcn301_fpu.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn301/dcn301_fpu.h
rename drivers/gpu/drm/amd/display/dc/{ => dml}/dsc/qp_tables.h (100%)
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dsc/rc_calc_fpu.c
create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dsc/rc_calc_fpu.h
create mode 100644 drivers/gpu/drm/amd/display/dc/inc/dc_link_dpia.h
create mode 100644 drivers/gpu/drm/amd/display/dc/irq/dcn201/irq_service_dcn201.c
create mode 100644 drivers/gpu/drm/amd/display/dc/irq/dcn201/irq_service_dcn201.h
create mode 100755 drivers/gpu/drm/amd/include/asic_reg/clk/clk_11_0_1_offset.h
create mode 100755 drivers/gpu/drm/amd/include/asic_reg/clk/clk_11_0_1_sh_mask.h
create mode 100755 drivers/gpu/drm/amd/include/asic_reg/dcn/dcn_2_0_3_offset.h
create mode 100755 drivers/gpu/drm/amd/include/asic_reg/dcn/dcn_2_0_3_sh_mask.h
create mode 100755 drivers/gpu/drm/amd/include/asic_reg/dpcs/dpcs_2_0_3_offset.h
create mode 100755 drivers/gpu/drm/amd/include/asic_reg/dpcs/dpcs_2_0_3_sh_mask.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/mp/mp_11_0_8_sh_mask.h
create mode 100644 drivers/gpu/drm/i915/display/intel_backlight.c
create mode 100644 drivers/gpu/drm/i915/display/intel_backlight.h
create mode 100644 drivers/gpu/drm/i915/display/intel_dpt.c
create mode 100644 drivers/gpu/drm/i915/display/intel_dpt.h
create mode 100644 drivers/gpu/drm/i915/display/intel_drrs.c
create mode 100644 drivers/gpu/drm/i915/display/intel_drrs.h
create mode 100644 drivers/gpu/drm/i915/display/intel_fb_pin.c
create mode 100644 drivers/gpu/drm/i915/display/intel_fb_pin.h
create mode 100644 drivers/gpu/drm/i915/display/intel_plane_initial.c
create mode 100644 drivers/gpu/drm/i915/display/intel_plane_initial.h
create mode 100644 drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.c
create mode 100644 drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.h
delete mode 100644 drivers/gpu/drm/i915/gem/selftests/i915_gem_execbuffer.c
delete mode 100644 drivers/gpu/drm/i915/gt/debugfs_engines.c
delete mode 100644 drivers/gpu/drm/i915/gt/debugfs_engines.h
delete mode 100644 drivers/gpu/drm/i915/gt/debugfs_gt.c
delete mode 100644 drivers/gpu/drm/i915/gt/debugfs_gt.h
delete mode 100644 drivers/gpu/drm/i915/gt/debugfs_gt_pm.c
delete mode 100644 drivers/gpu/drm/i915/gt/debugfs_gt_pm.h
create mode 100644 drivers/gpu/drm/i915/gt/intel_gt_debugfs.c
create mode 100644 drivers/gpu/drm/i915/gt/intel_gt_debugfs.h
create mode 100644 drivers/gpu/drm/i915/gt/intel_gt_engines_debugfs.c
create mode 100644 drivers/gpu/drm/i915/gt/intel_gt_engines_debugfs.h
create mode 100644 drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.c
create mode 100644 drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.h
create mode 100644 drivers/gpu/drm/i915/gt/uc/selftest_guc.c
create mode 100644 drivers/gpu/drm/i915/gt/uc/selftest_guc_multi_lrc.c
create mode 100644 drivers/gpu/drm/i915/intel_pcode.c
create mode 100644 drivers/gpu/drm/i915/intel_pcode.h
create mode 100644 drivers/gpu/drm/i915/intel_sbi.c
create mode 100644 drivers/gpu/drm/i915/intel_sbi.h
delete mode 100644 drivers/gpu/drm/i915/intel_sideband.c
delete mode 100644 drivers/gpu/drm/i915/intel_sideband.h
create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp.c
create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp.h
create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_cmd.c
create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_cmd.h
create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_debugfs.c
create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_debugfs.h
create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_irq.c
create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_irq.h
create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_pm.c
create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_pm.h
create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_session.c
create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_session.h
create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_tee.c
create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_tee.h
create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_tee_interface.h
create mode 100644 drivers/gpu/drm/i915/pxp/intel_pxp_types.h
create mode 100644 drivers/gpu/drm/i915/vlv_sideband.c
create mode 100644 drivers/gpu/drm/i915/vlv_sideband.h
delete mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_core_irq.c
create mode 100644 drivers/gpu/drm/panel/panel-edp.c
create mode 100644 drivers/gpu/drm/panel/panel-samsung-s6d27a1.c
create mode 100644 drivers/gpu/drm/panel/panel-sharp-ls060t1sx01.c
delete mode 100644 drivers/gpu/drm/zte/Kconfig
delete mode 100644 drivers/gpu/drm/zte/Makefile
delete mode 100644 drivers/gpu/drm/zte/zx_common_regs.h
delete mode 100644 drivers/gpu/drm/zte/zx_drm_drv.c
delete mode 100644 drivers/gpu/drm/zte/zx_drm_drv.h
delete mode 100644 drivers/gpu/drm/zte/zx_hdmi.c
delete mode 100644 drivers/gpu/drm/zte/zx_hdmi_regs.h
delete mode 100644 drivers/gpu/drm/zte/zx_plane.c
delete mode 100644 drivers/gpu/drm/zte/zx_plane.h
delete mode 100644 drivers/gpu/drm/zte/zx_plane_regs.h
delete mode 100644 drivers/gpu/drm/zte/zx_tvenc.c
delete mode 100644 drivers/gpu/drm/zte/zx_tvenc_regs.h
delete mode 100644 drivers/gpu/drm/zte/zx_vga.c
delete mode 100644 drivers/gpu/drm/zte/zx_vga_regs.h
delete mode 100644 drivers/gpu/drm/zte/zx_vou.c
delete mode 100644 drivers/gpu/drm/zte/zx_vou.h
delete mode 100644 drivers/gpu/drm/zte/zx_vou_regs.h
create mode 100644 drivers/hid/hid-nintendo.c
create mode 100644 drivers/hid/hid-xiaomi.c
create mode 100644 drivers/hwmon/max6620.c
create mode 100644 drivers/hwtracing/coresight/coresight-self-hosted-trace.h
create mode 100644 drivers/i2c/busses/i2c-pasemi-core.c
create mode 100644 drivers/i2c/busses/i2c-pasemi-core.h
create mode 100644 drivers/i2c/busses/i2c-pasemi-pci.c
create mode 100644 drivers/i2c/busses/i2c-pasemi-platform.c
delete mode 100644 drivers/i2c/busses/i2c-pasemi.c
create mode 100644 drivers/iio/accel/adxl313.h
create mode 100644 drivers/iio/accel/adxl313_core.c
create mode 100644 drivers/iio/accel/adxl313_i2c.c
create mode 100644 drivers/iio/accel/adxl313_spi.c
create mode 100644 drivers/iio/accel/adxl355.h
create mode 100644 drivers/iio/accel/adxl355_core.c
create mode 100644 drivers/iio/accel/adxl355_i2c.c
create mode 100644 drivers/iio/accel/adxl355_spi.c
create mode 100644 drivers/iio/adc/imx8qxp-adc.c
create mode 100644 drivers/iio/chemical/scd4x.c
create mode 100644 drivers/iio/chemical/sunrise_co2.c
create mode 100644 drivers/iio/frequency/adrf6780.c
create mode 100644 drivers/iio/temperature/max31865.c
create mode 100644 drivers/input/keyboard/cypress-sf.c
create mode 100644 drivers/input/touchscreen/goodix.h
create mode 100644 drivers/input/touchscreen/goodix_fwupload.c
create mode 100644 drivers/irqchip/irq-mchp-eic.c
create mode 100644 drivers/mailbox/apple-mailbox.c
create mode 100644 drivers/md/bcache/bcache_ondisk.h
create mode 100644 drivers/md/dm-audit.c
create mode 100644 drivers/md/dm-audit.h
create mode 100644 drivers/media/i2c/hi846.c
create mode 100644 drivers/media/i2c/ov13b10.c
create mode 100644 drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_stateful.c
create mode 100644 drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_stateless.c
create mode 100644 drivers/media/platform/mtk-vcodec/vdec/vdec_h264_req_if.c
create mode 100644 drivers/media/platform/rcar-isp.c
delete mode 100644 drivers/media/rc/sir_ir.c
delete mode 100644 drivers/mfd/tps80031.c
create mode 100644 drivers/misc/habanalabs/common/hwmgr.c
delete mode 100644 drivers/misc/habanalabs/gaudi/gaudi_hwmgr.c
create mode 100644 drivers/misc/mei/pxp/Kconfig
create mode 100644 drivers/misc/mei/pxp/Makefile
create mode 100644 drivers/misc/mei/pxp/mei_pxp.c
create mode 100644 drivers/misc/mei/pxp/mei_pxp.h
delete mode 100644 drivers/mmc/host/sdhci-pci-data.c
create mode 100644 drivers/net/amt.c
create mode 100644 drivers/net/dsa/rtl8365mb.c
create mode 100644 drivers/net/ethernet/asix/Kconfig
create mode 100644 drivers/net/ethernet/asix/Makefile
create mode 100644 drivers/net/ethernet/asix/ax88796c_ioctl.c
create mode 100644 drivers/net/ethernet/asix/ax88796c_ioctl.h
create mode 100644 drivers/net/ethernet/asix/ax88796c_main.c
create mode 100644 drivers/net/ethernet/asix/ax88796c_main.h
create mode 100644 drivers/net/ethernet/asix/ax88796c_spi.c
create mode 100644 drivers/net/ethernet/asix/ax88796c_spi.h
create mode 100644 drivers/net/ethernet/broadcom/bnxt/bnxt_coredump.c
create mode 100644 drivers/net/ethernet/intel/ice/ice_eswitch.c
create mode 100644 drivers/net/ethernet/intel/ice/ice_eswitch.h
create mode 100644 drivers/net/ethernet/intel/ice/ice_repr.c
create mode 100644 drivers/net/ethernet/intel/ice/ice_repr.h
create mode 100644 drivers/net/ethernet/intel/ice/ice_tc_lib.c
create mode 100644 drivers/net/ethernet/intel/ice/ice_tc_lib.h
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/tc/int_port.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/tc/int_port.h
delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lag.c
delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lag.h
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lag/lag.h
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lag/mp.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lag/mp.h
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lag/port_sel.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lag/port_sel.h
delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lag_mp.c
delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lag_mp.h
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lib/tout.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lib/tout.h
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/sf/dev/diag/dev_tracepoint.h
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/sf/diag/sf_tracepoint.h
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/sf/diag/vhca_tracepoint.h
delete mode 100644 drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_gpio.c
create mode 100644 drivers/net/ethernet/qlogic/qed/qed_dbg_hsi.h
create mode 100644 drivers/net/ethernet/qlogic/qed/qed_iro_hsi.h
create mode 100644 drivers/net/ethernet/qlogic/qed/qed_mfw_hsi.h
create mode 100644 drivers/net/wireless/intel/iwlwifi/fw/rs.c
delete mode 100644 drivers/net/wireless/mediatek/mt76/mt7615/sdio.h
delete mode 100644 drivers/net/wireless/mediatek/mt76/mt7615/sdio_txrx.c
delete mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/eeprom.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/pci_mac.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/pci_mcu.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/sdio.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/sdio_mac.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/sdio_mcu.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/testmode.c
create mode 100644 drivers/net/wireless/mediatek/mt76/sdio.h
create mode 100644 drivers/net/wireless/mediatek/mt76/sdio_txrx.c
create mode 100644 drivers/net/wireless/realtek/rtw89/Kconfig
create mode 100644 drivers/net/wireless/realtek/rtw89/Makefile
create mode 100644 drivers/net/wireless/realtek/rtw89/cam.c
create mode 100644 drivers/net/wireless/realtek/rtw89/cam.h
create mode 100644 drivers/net/wireless/realtek/rtw89/coex.c
create mode 100644 drivers/net/wireless/realtek/rtw89/coex.h
create mode 100644 drivers/net/wireless/realtek/rtw89/core.c
create mode 100644 drivers/net/wireless/realtek/rtw89/core.h
create mode 100644 drivers/net/wireless/realtek/rtw89/debug.c
create mode 100644 drivers/net/wireless/realtek/rtw89/debug.h
create mode 100644 drivers/net/wireless/realtek/rtw89/efuse.c
create mode 100644 drivers/net/wireless/realtek/rtw89/efuse.h
create mode 100644 drivers/net/wireless/realtek/rtw89/fw.c
create mode 100644 drivers/net/wireless/realtek/rtw89/fw.h
create mode 100644 drivers/net/wireless/realtek/rtw89/mac.c
create mode 100644 drivers/net/wireless/realtek/rtw89/mac.h
create mode 100644 drivers/net/wireless/realtek/rtw89/mac80211.c
create mode 100644 drivers/net/wireless/realtek/rtw89/pci.c
create mode 100644 drivers/net/wireless/realtek/rtw89/pci.h
create mode 100644 drivers/net/wireless/realtek/rtw89/phy.c
create mode 100644 drivers/net/wireless/realtek/rtw89/phy.h
create mode 100644 drivers/net/wireless/realtek/rtw89/ps.c
create mode 100644 drivers/net/wireless/realtek/rtw89/ps.h
create mode 100644 drivers/net/wireless/realtek/rtw89/reg.h
create mode 100644 drivers/net/wireless/realtek/rtw89/regd.c
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852a.c
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852a.h
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.h
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852a_rfk_table.c
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852a_rfk_table.h
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852a_table.c
create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852a_table.h
create mode 100644 drivers/net/wireless/realtek/rtw89/sar.c
create mode 100644 drivers/net/wireless/realtek/rtw89/sar.h
create mode 100644 drivers/net/wireless/realtek/rtw89/ser.c
create mode 100644 drivers/net/wireless/realtek/rtw89/ser.h
create mode 100644 drivers/net/wireless/realtek/rtw89/txrx.h
create mode 100644 drivers/net/wireless/realtek/rtw89/util.h
create mode 100644 drivers/net/wwan/iosm/iosm_ipc_coredump.c
create mode 100644 drivers/net/wwan/iosm/iosm_ipc_coredump.h
create mode 100644 drivers/net/wwan/iosm/iosm_ipc_devlink.c
create mode 100644 drivers/net/wwan/iosm/iosm_ipc_devlink.h
create mode 100644 drivers/net/wwan/iosm/iosm_ipc_flash.c
create mode 100644 drivers/net/wwan/iosm/iosm_ipc_flash.h
delete mode 100644 drivers/of/of_net.c
create mode 100644 drivers/pci/controller/dwc/pcie-qcom-ep.c
create mode 100644 drivers/pci/controller/pcie-apple.c
create mode 100644 drivers/pci/controller/pcie-mt7621.c
create mode 100644 drivers/phy/hisilicon/phy-hi3670-pcie.c
create mode 100644 drivers/pinctrl/mediatek/pinctrl-mt7986.c
create mode 100644 drivers/pinctrl/pinctrl-apple-gpio.c
create mode 100644 drivers/pinctrl/qcom/pinctrl-qcm2290.c
create mode 100644 drivers/pinctrl/qcom/pinctrl-sm6350.c
create mode 100644 drivers/pinctrl/uniphier/pinctrl-uniphier-nx1.c
create mode 100644 drivers/platform/mellanox/mlxreg-lc.c
create mode 100644 drivers/platform/x86/barco-p50-gpio.c
create mode 100644 drivers/platform/x86/intel/ishtp_eclite.c
create mode 100644 drivers/platform/x86/nvidia-wmi-ec-backlight.c
delete mode 100644 drivers/ptp/idt8a340_reg.h
delete mode 100644 drivers/regulator/tps80031-regulator.c
create mode 100644 drivers/remoteproc/imx_dsp_rproc.c
create mode 100644 drivers/remoteproc/imx_rproc.h
create mode 100644 drivers/remoteproc/meson_mx_ao_arc.c
create mode 100644 drivers/rtc/rtc-msc313.c
delete mode 100644 drivers/rtc/rtc-tps80031.c
create mode 100644 drivers/scsi/ufs/ufs-hwmon.c
create mode 100644 drivers/soc/aspeed/aspeed-uart-routing.c
create mode 100644 drivers/soc/imx/imx8m-blk-ctrl.c
create mode 100644 drivers/soc/mediatek/mt8192-mmsys.h
create mode 100644 drivers/soc/qcom/qcom_stats.c
create mode 100644 drivers/soc/qcom/spm.c
create mode 100644 drivers/soc/tegra/ari-tegra186.c
create mode 100644 drivers/spi/spi-cadence-xspi.c
create mode 100644 drivers/spi/spi-ingenic.c
delete mode 100644 drivers/staging/most/dim2/sysfs.c
delete mode 100644 drivers/staging/mt7621-pci/Kconfig
delete mode 100644 drivers/staging/mt7621-pci/Makefile
delete mode 100644 drivers/staging/mt7621-pci/TODO
delete mode 100644 drivers/staging/mt7621-pci/mediatek,mt7621-pci.txt
delete mode 100644 drivers/staging/mt7621-pci/pci-mt7621.c
delete mode 100644 drivers/staging/r8188eu/core/rtw_debug.c
delete mode 100644 drivers/staging/r8188eu/core/rtw_io.c
delete mode 100644 drivers/staging/r8188eu/core/rtw_mp.c
delete mode 100644 drivers/staging/r8188eu/core/rtw_mp_ioctl.c
delete mode 100644 drivers/staging/r8188eu/core/rtw_sreset.c
delete mode 100644 drivers/staging/r8188eu/hal/rtl8188e_mp.c
delete mode 100644 drivers/staging/r8188eu/include/HalHWImg8188E_FW.h
delete mode 100644 drivers/staging/r8188eu/include/mp_custom_oid.h
delete mode 100644 drivers/staging/r8188eu/include/odm_RegDefine11AC.h
delete mode 100644 drivers/staging/r8188eu/include/odm_reg.h
delete mode 100644 drivers/staging/r8188eu/include/rtw_ioctl_rtl.h
delete mode 100644 drivers/staging/r8188eu/include/rtw_mp.h
delete mode 100644 drivers/staging/r8188eu/include/rtw_mp_ioctl.h
delete mode 100644 drivers/staging/r8188eu/include/rtw_mp_phy_regdef.h
delete mode 100644 drivers/staging/r8188eu/include/rtw_sreset.h
create mode 100644 drivers/tee/optee/ffa_abi.c
create mode 100644 drivers/tee/optee/optee_ffa.h
delete mode 100644 drivers/tee/optee/shm_pool.c
delete mode 100644 drivers/tee/optee/shm_pool.h
create mode 100644 drivers/tee/optee/smc_abi.c
delete mode 100644 drivers/tty/moxa.h
create mode 100644 drivers/tty/rpmsg_tty.c
create mode 100644 drivers/vdpa/alibaba/Makefile
create mode 100644 drivers/vdpa/alibaba/eni_vdpa.c
create mode 100644 drivers/vfio/vfio.h
create mode 100644 drivers/virtio/virtio_pci_legacy_dev.c
create mode 100644 drivers/watchdog/db8500_wdt.c
delete mode 100644 drivers/watchdog/iop_wdt.c
delete mode 100644 drivers/watchdog/ux500_wdt.c
create mode 100644 fs/erofs/decompressor_lzma.c
create mode 100644 fs/smbfs_common/smb2pdu.h
create mode 100644 include/clocksource/timer-riscv.h
create mode 100644 include/crypto/internal/ecc.h
create mode 100644 include/drm/i915_pxp_tee_interface.h
create mode 100644 include/dt-bindings/clock/exynos850.h
create mode 100644 include/dt-bindings/clock/imx8ulp-clock.h
rename include/dt-bindings/clock/{jz4725b-cgu.h => ingenic,jz4725b-cgu.h} (100%)
rename include/dt-bindings/clock/{jz4740-cgu.h => ingenic,jz4740-cgu.h} (100%)
rename include/dt-bindings/clock/{jz4760-cgu.h => ingenic,jz4760-cgu.h} (100%)
rename include/dt-bindings/clock/{jz4770-cgu.h => ingenic,jz4770-cgu.h} (100%)
rename include/dt-bindings/clock/{jz4780-cgu.h => ingenic,jz4780-cgu.h} (100%)
rename include/dt-bindings/clock/{x1000-cgu.h => ingenic,x1000-cgu.h} (100%)
rename include/dt-bindings/clock/{x1830-cgu.h => ingenic,x1830-cgu.h} (100%)
create mode 100644 include/dt-bindings/clock/mt8195-clk.h
create mode 100644 include/dt-bindings/clock/qcom,camcc-sc7280.h
create mode 100644 include/dt-bindings/clock/qcom,gcc-qcm2290.h
create mode 100644 include/dt-bindings/clock/qcom,lpass-sc7280.h
delete mode 100644 include/dt-bindings/power/qcom-aoss-qmp.h
delete mode 100644 include/dt-bindings/reset-controller/mt8183-resets.h
create mode 100644 include/dt-bindings/reset/imx8ulp-pcc-reset.h
rename include/dt-bindings/{reset-controller => reset}/mt2712-resets.h (100%)
create mode 100644 include/dt-bindings/reset/mt8183-resets.h
rename include/dt-bindings/{reset-controller => reset}/mt8192-resets.h (100%)
create mode 100644 include/dt-bindings/reset/stericsson,db8500-prcc-reset.h
create mode 100644 include/dt-bindings/sound/tlv320adc3xxx.h
create mode 100644 include/linux/apple-mailbox.h
create mode 100644 include/linux/audit_arch.h
create mode 100644 include/linux/blk-crypto-profile.h
create mode 100644 include/linux/blk-integrity.h
create mode 100644 include/linux/cc_platform.h
create mode 100644 include/linux/container_of.h
delete mode 100644 include/linux/counter_enum.h
create mode 100644 include/linux/dma/qcom_adm.h
create mode 100644 include/linux/dma/xilinx_dpdma.h
delete mode 100644 include/linux/elevator.h
create mode 100644 include/linux/firmware/imx/s4.h
delete mode 100644 include/linux/input/cy8ctmg110_pdata.h
create mode 100644 include/linux/instruction_pointer.h
delete mode 100644 include/linux/keyslot-manager.h
delete mode 100644 include/linux/mfd/hi6421-spmi-pmic.h
delete mode 100644 include/linux/mfd/tps80031.h
delete mode 100644 include/linux/mmc/sdhci-pci-data.h
delete mode 100644 include/linux/netfilter_ingress.h
create mode 100644 include/linux/netfilter_netdev.h
delete mode 100644 include/linux/platform_data/ux500_wdt.h
create mode 100644 include/linux/platform_data/x86/soc.h
delete mode 100644 include/linux/pnfs_osd_xdr.h
delete mode 100644 include/linux/seqno-fence.h
create mode 100644 include/linux/soc/qcom/qcom_aoss.h
create mode 100644 include/linux/virtio_pci_legacy.h
create mode 100644 include/linux/zstd_errors.h
create mode 100644 include/linux/zstd_lib.h
create mode 100644 include/net/amt.h
create mode 100644 include/soc/qcom/spm.h
create mode 100644 include/sound/sof/dai-amd.h
create mode 100644 include/sound/sof/dai-mediatek.h
create mode 100644 include/trace/events/fs.h
create mode 100644 include/trace/events/mctp.h
create mode 100644 include/trace/events/nfs.h
create mode 100644 include/trace/events/sunrpc_base.h
create mode 100644 include/uapi/linux/amt.h
delete mode 100644 include/uapi/linux/bcache.h
create mode 100644 include/uapi/linux/counter.h
create mode 100644 include/uapi/linux/map_to_14segment.h
delete mode 100644 include/uapi/linux/nfsd/nfsfh.h
create mode 100644 include/xen/pci.h
create mode 100644 kernel/bpf/bloom_filter.c
delete mode 100644 kernel/futex.c
create mode 100644 kernel/futex/Makefile
create mode 100644 kernel/futex/core.c
create mode 100644 kernel/futex/futex.h
create mode 100644 kernel/futex/pi.c
create mode 100644 kernel/futex/requeue.c
create mode 100644 kernel/futex/syscalls.c
create mode 100644 kernel/futex/waitwake.c
delete mode 100644 kernel/test_kprobes.c
create mode 100644 kernel/trace/pid_list.c
create mode 100644 kernel/trace/pid_list.h
create mode 100644 lib/memcpy_kunit.c
create mode 100644 lib/test_fortify/read_overflow-memchr.c
create mode 100644 lib/test_fortify/read_overflow-memchr_inv.c
create mode 100644 lib/test_fortify/read_overflow-memcmp.c
create mode 100644 lib/test_fortify/read_overflow-memscan.c
create mode 100644 lib/test_fortify/read_overflow2-memcmp.c
create mode 100644 lib/test_fortify/read_overflow2-memcpy.c
create mode 100644 lib/test_fortify/read_overflow2-memmove.c
create mode 100644 lib/test_fortify/test_fortify.h
create mode 100644 lib/test_fortify/write_overflow-memcpy.c
create mode 100644 lib/test_fortify/write_overflow-memmove.c
create mode 100644 lib/test_fortify/write_overflow-memset.c
create mode 100644 lib/test_fortify/write_overflow-strcpy-lit.c
create mode 100644 lib/test_fortify/write_overflow-strcpy.c
create mode 100644 lib/test_fortify/write_overflow-strlcpy-src.c
create mode 100644 lib/test_fortify/write_overflow-strlcpy.c
create mode 100644 lib/test_fortify/write_overflow-strncpy-src.c
create mode 100644 lib/test_fortify/write_overflow-strncpy.c
create mode 100644 lib/test_fortify/write_overflow-strscpy.c
create mode 100644 lib/test_kprobes.c
delete mode 100644 lib/zstd/bitstream.h
create mode 100644 lib/zstd/common/bitstream.h
create mode 100644 lib/zstd/common/compiler.h
create mode 100644 lib/zstd/common/cpu.h
create mode 100644 lib/zstd/common/debug.c
create mode 100644 lib/zstd/common/debug.h
create mode 100644 lib/zstd/common/entropy_common.c
create mode 100644 lib/zstd/common/error_private.c
create mode 100644 lib/zstd/common/error_private.h
create mode 100644 lib/zstd/common/fse.h
create mode 100644 lib/zstd/common/fse_decompress.c
create mode 100644 lib/zstd/common/huf.h
create mode 100644 lib/zstd/common/mem.h
create mode 100644 lib/zstd/common/zstd_common.c
create mode 100644 lib/zstd/common/zstd_deps.h
create mode 100644 lib/zstd/common/zstd_internal.h
delete mode 100644 lib/zstd/compress.c
create mode 100644 lib/zstd/compress/fse_compress.c
create mode 100644 lib/zstd/compress/hist.c
create mode 100644 lib/zstd/compress/hist.h
create mode 100644 lib/zstd/compress/huf_compress.c
create mode 100644 lib/zstd/compress/zstd_compress.c
create mode 100644 lib/zstd/compress/zstd_compress_internal.h
create mode 100644 lib/zstd/compress/zstd_compress_literals.c
create mode 100644 lib/zstd/compress/zstd_compress_literals.h
create mode 100644 lib/zstd/compress/zstd_compress_sequences.c
create mode 100644 lib/zstd/compress/zstd_compress_sequences.h
create mode 100644 lib/zstd/compress/zstd_compress_superblock.c
create mode 100644 lib/zstd/compress/zstd_compress_superblock.h
create mode 100644 lib/zstd/compress/zstd_cwksp.h
create mode 100644 lib/zstd/compress/zstd_double_fast.c
create mode 100644 lib/zstd/compress/zstd_double_fast.h
create mode 100644 lib/zstd/compress/zstd_fast.c
create mode 100644 lib/zstd/compress/zstd_fast.h
create mode 100644 lib/zstd/compress/zstd_lazy.c
create mode 100644 lib/zstd/compress/zstd_lazy.h
create mode 100644 lib/zstd/compress/zstd_ldm.c
create mode 100644 lib/zstd/compress/zstd_ldm.h
create mode 100644 lib/zstd/compress/zstd_ldm_geartab.h
create mode 100644 lib/zstd/compress/zstd_opt.c
create mode 100644 lib/zstd/compress/zstd_opt.h
delete mode 100644 lib/zstd/decompress.c
create mode 100644 lib/zstd/decompress/huf_decompress.c
create mode 100644 lib/zstd/decompress/zstd_ddict.c
create mode 100644 lib/zstd/decompress/zstd_ddict.h
create mode 100644 lib/zstd/decompress/zstd_decompress.c
create mode 100644 lib/zstd/decompress/zstd_decompress_block.c
create mode 100644 lib/zstd/decompress/zstd_decompress_block.h
create mode 100644 lib/zstd/decompress/zstd_decompress_internal.h
create mode 100644 lib/zstd/decompress_sources.h
delete mode 100644 lib/zstd/entropy_common.c
delete mode 100644 lib/zstd/error_private.h
delete mode 100644 lib/zstd/fse.h
delete mode 100644 lib/zstd/fse_compress.c
delete mode 100644 lib/zstd/fse_decompress.c
delete mode 100644 lib/zstd/huf.h
delete mode 100644 lib/zstd/huf_compress.c
delete mode 100644 lib/zstd/huf_decompress.c
delete mode 100644 lib/zstd/mem.h
delete mode 100644 lib/zstd/zstd_common.c
create mode 100644 lib/zstd/zstd_compress_module.c
create mode 100644 lib/zstd/zstd_decompress_module.c
delete mode 100644 lib/zstd/zstd_internal.h
delete mode 100644 lib/zstd/zstd_opt.h
create mode 100644 mm/damon/paddr.c
create mode 100644 mm/damon/prmtv-common.c
create mode 100644 mm/damon/prmtv-common.h
create mode 100644 mm/damon/reclaim.c
create mode 100644 mm/folio-compat.c
create mode 100644 net/bluetooth/eir.c
create mode 100644 net/bluetooth/eir.h
create mode 100644 net/bluetooth/hci_codec.c
create mode 100644 net/bluetooth/hci_codec.h
create mode 100644 net/bpf/bpf_dummy_struct_ops.c
create mode 100644 net/core/of_net.c
create mode 100644 net/core/sock_destructor.h
create mode 100644 net/dsa/tag_rtl8_4.c
create mode 100644 net/ethtool/module.c
create mode 100644 net/mctp/test/route-test.c
create mode 100644 net/mctp/test/utils.c
create mode 100644 net/mctp/test/utils.h
rename net/qrtr/{qrtr.c => af_qrtr.c} (100%)
create mode 100644 net/smc/smc_tracepoint.c
create mode 100644 net/smc/smc_tracepoint.h
create mode 100644 samples/fanotify/.gitignore
create mode 100644 samples/fanotify/Makefile
create mode 100644 samples/fanotify/fs-monitor.c
create mode 100644 samples/ftrace/ftrace-direct-multi.c
create mode 100644 scripts/Makefile.debug
create mode 100644 scripts/coccinelle/misc/do_div.cocci
delete mode 100644 scripts/gcc-plugins/cyc_complexity_plugin.c
create mode 100755 scripts/pahole-flags.sh
create mode 100644 scripts/test_fortify.sh
create mode 100644 sound/firewire/motu/motu-command-dsp-message-parser.c
create mode 100644 sound/firewire/motu/motu-register-dsp-message-parser.c
create mode 100644 sound/soc/amd/acp-config.c
create mode 100644 sound/soc/amd/mach-config.h
create mode 100644 sound/soc/codecs/ak4375.c
create mode 100644 sound/soc/codecs/cs35l41-lib.c
delete mode 100644 sound/soc/codecs/cs35l41-tables.c
create mode 100644 sound/soc/codecs/tlv320adc3xxx.c
create mode 100644 sound/soc/intel/boards/sof_nau8825.c
create mode 100644 sound/soc/sof/amd/Kconfig
create mode 100644 sound/soc/sof/amd/Makefile
create mode 100644 sound/soc/sof/amd/acp-dsp-offset.h
create mode 100644 sound/soc/sof/amd/acp-ipc.c
create mode 100644 sound/soc/sof/amd/acp-loader.c
create mode 100644 sound/soc/sof/amd/acp-pcm.c
create mode 100644 sound/soc/sof/amd/acp-stream.c
create mode 100644 sound/soc/sof/amd/acp-trace.c
create mode 100644 sound/soc/sof/amd/acp.c
create mode 100644 sound/soc/sof/amd/acp.h
create mode 100644 sound/soc/sof/amd/pci-rn.c
create mode 100644 sound/soc/sof/amd/renoir.c
delete mode 100644 sound/soc/sof/imx/imx-ops.h
create mode 100644 sound/soc/sof/mediatek/Kconfig
create mode 100644 sound/soc/sof/mediatek/Makefile
create mode 100644 sound/soc/sof/mediatek/adsp_helper.h
create mode 100644 sound/soc/sof/mediatek/mt8195/Makefile
create mode 100644 sound/soc/sof/mediatek/mt8195/mt8195-clk.c
create mode 100644 sound/soc/sof/mediatek/mt8195/mt8195-clk.h
create mode 100644 sound/soc/sof/mediatek/mt8195/mt8195-loader.c
create mode 100644 sound/soc/sof/mediatek/mt8195/mt8195.c
create mode 100644 sound/soc/sof/mediatek/mt8195/mt8195.h
create mode 100644 sound/soc/sof/sof-of-dev.h
create mode 100644 tools/arch/arm64/include/asm/sysreg.h
create mode 100644 tools/arch/x86/include/asm/pvclock-abi.h
create mode 100644 tools/arch/x86/include/asm/pvclock.h
delete mode 100644 tools/bootconfig/include/linux/bug.h
delete mode 100644 tools/bootconfig/include/linux/ctype.h
delete mode 100644 tools/bootconfig/include/linux/errno.h
delete mode 100644 tools/bootconfig/include/linux/kernel.h
delete mode 100644 tools/bootconfig/include/linux/memblock.h
delete mode 100644 tools/bootconfig/include/linux/printk.h
delete mode 100644 tools/bootconfig/include/linux/string.h
create mode 100644 tools/build/feature/test-libtracefs.c
create mode 100644 tools/counter/Build
create mode 100644 tools/counter/Makefile
create mode 100644 tools/counter/counter_example.c
create mode 100644 tools/include/asm-generic/unaligned.h
create mode 100644 tools/include/linux/list_sort.h
create mode 100644 tools/lib/bpf/libbpf_version.h
create mode 100644 tools/lib/list_sort.c
delete mode 100644 tools/lib/lockdep/.gitignore
delete mode 100644 tools/lib/lockdep/Build
delete mode 100644 tools/lib/lockdep/Makefile
delete mode 100644 tools/lib/lockdep/common.c
delete mode 100644 tools/lib/lockdep/include/liblockdep/common.h
delete mode 100644 tools/lib/lockdep/include/liblockdep/mutex.h
delete mode 100644 tools/lib/lockdep/include/liblockdep/rwlock.h
delete mode 100755 tools/lib/lockdep/lockdep
delete mode 100644 tools/lib/lockdep/lockdep.c
delete mode 100644 tools/lib/lockdep/lockdep_internals.h
delete mode 100644 tools/lib/lockdep/lockdep_states.h
delete mode 100644 tools/lib/lockdep/preload.c
delete mode 100644 tools/lib/lockdep/rbtree.c
delete mode 100755 tools/lib/lockdep/run_tests.sh
delete mode 100644 tools/lib/lockdep/tests/AA.c
delete mode 100644 tools/lib/lockdep/tests/AA.sh
delete mode 100644 tools/lib/lockdep/tests/ABA.c
delete mode 100644 tools/lib/lockdep/tests/ABA.sh
delete mode 100644 tools/lib/lockdep/tests/ABBA.c
delete mode 100644 tools/lib/lockdep/tests/ABBA.sh
delete mode 100644 tools/lib/lockdep/tests/ABBA_2threads.c
delete mode 100644 tools/lib/lockdep/tests/ABBA_2threads.sh
delete mode 100644 tools/lib/lockdep/tests/ABBCCA.c
delete mode 100644 tools/lib/lockdep/tests/ABBCCA.sh
delete mode 100644 tools/lib/lockdep/tests/ABBCCDDA.c
delete mode 100644 tools/lib/lockdep/tests/ABBCCDDA.sh
delete mode 100644 tools/lib/lockdep/tests/ABCABC.c
delete mode 100644 tools/lib/lockdep/tests/ABCABC.sh
delete mode 100644 tools/lib/lockdep/tests/ABCDBCDA.c
delete mode 100644 tools/lib/lockdep/tests/ABCDBCDA.sh
delete mode 100644 tools/lib/lockdep/tests/ABCDBDDA.c
delete mode 100644 tools/lib/lockdep/tests/ABCDBDDA.sh
delete mode 100644 tools/lib/lockdep/tests/WW.c
delete mode 100644 tools/lib/lockdep/tests/WW.sh
delete mode 100644 tools/lib/lockdep/tests/common.h
delete mode 100644 tools/lib/lockdep/tests/unlock_balance.c
delete mode 100644 tools/lib/lockdep/tests/unlock_balance.sh
create mode 100644 tools/perf/arch/riscv64/annotate/instructions.c
create mode 100644 tools/perf/dlfilters/dlfilter-show-cycles.c
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-v1/branch.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-v1/bus.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-v1/cache.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-v1/exception.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-v1/instruction.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-v1/memory.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-v1/other.json
create mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-v1/pipeline.json
create mode 100644 tools/perf/pmu-events/arch/powerpc/power10/metrics.json
create mode 100755 tools/perf/tests/shell/stat_all_metricgroups.sh
create mode 100755 tools/perf/tests/shell/stat_all_metrics.sh
create mode 100755 tools/perf/tests/shell/stat_all_pmu.sh
create mode 100755 tools/perf/tests/shell/test_arm_spe.sh
create mode 100755 tools/perf/trace/beauty/sockaddr.sh
delete mode 100755 tools/perf/trace/beauty/socket_ipproto.sh
create mode 100644 tools/perf/util/bpf-utils.c
create mode 100644 tools/perf/util/bpf-utils.h
create mode 100644 tools/rcu/extract-stall.sh
create mode 100644 tools/testing/cxl/Kbuild
create mode 100644 tools/testing/cxl/config_check.c
create mode 100644 tools/testing/cxl/mock_acpi.c
create mode 100644 tools/testing/cxl/mock_pmem.c
create mode 100644 tools/testing/cxl/test/Kbuild
create mode 100644 tools/testing/cxl/test/cxl.c
create mode 100644 tools/testing/cxl/test/mem.c
create mode 100644 tools/testing/cxl/test/mock.c
create mode 100644 tools/testing/cxl/test/mock.h
create mode 100644 tools/testing/kunit/test_data/test_is_test_passed-all_passed_nested.log
create mode 100644 tools/testing/kunit/test_data/test_is_test_passed-kselftest.log
create mode 100644 tools/testing/kunit/test_data/test_is_test_passed-missing_plan.log
create mode 100644 tools/testing/kunit/test_data/test_strip_hyphen.log
create mode 100644 tools/testing/selftests/arm64/fp/asm-utils.S
delete mode 100644 tools/testing/selftests/arm64/fp/sve-ptrace-asm.S
create mode 100644 tools/testing/selftests/bpf/benchs/bench_bloom_filter_map.c
create mode 100755 tools/testing/selftests/bpf/benchs/run_bench_bloom_filter_map.sh
create mode 100644 tools/testing/selftests/bpf/benchs/run_common.sh
create mode 100644 tools/testing/selftests/bpf/prog_tests/bloom_filter_map.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/btf_tag.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/dummy_st_ops.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/get_branch_snapshot.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/skc_to_unix_sock.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/trace_vprintk.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/verif_stats.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/xdpwall.c
create mode 100644 tools/testing/selftests/bpf/progs/bloom_filter_bench.c
create mode 100644 tools/testing/selftests/bpf/progs/bloom_filter_map.c
create mode 100644 tools/testing/selftests/bpf/progs/dummy_st_ops.c
create mode 100644 tools/testing/selftests/bpf/progs/get_branch_snapshot.c
create mode 100644 tools/testing/selftests/bpf/progs/tag.c
create mode 100644 tools/testing/selftests/bpf/progs/tailcall6.c
create mode 100644 tools/testing/selftests/bpf/progs/test_skc_to_unix_sock.c
create mode 100644 tools/testing/selftests/bpf/progs/trace_vprintk.c
create mode 100644 tools/testing/selftests/bpf/progs/twfw.c
create mode 100644 tools/testing/selftests/bpf/progs/xdpwall.c
create mode 100644 tools/testing/selftests/bpf/verifier/atomic_fetch.c
create mode 100644 tools/testing/selftests/bpf/verifier/atomic_invalid.c
create mode 100755 tools/testing/selftests/drivers/net/dsa/test_bridge_fdb_stress.sh
create mode 100644 tools/testing/selftests/drivers/net/mlxsw/rif_mac_profile_scale.sh
create mode 100755 tools/testing/selftests/drivers/net/mlxsw/rif_mac_profiles.sh
create mode 100755 tools/testing/selftests/drivers/net/mlxsw/rif_mac_profiles_occ.sh
create mode 100755 tools/testing/selftests/drivers/net/mlxsw/sch_offload.sh
create mode 100755 tools/testing/selftests/drivers/net/mlxsw/spectrum-2/devlink_trap_tunnel_ipip6.sh
create mode 100644 tools/testing/selftests/drivers/net/mlxsw/spectrum-2/rif_mac_profile_scale.sh
create mode 100644 tools/testing/selftests/drivers/net/mlxsw/spectrum/rif_mac_profile_scale.sh
create mode 100755 tools/testing/selftests/drivers/net/netdevsim/tc-mq-visibility.sh
create mode 100644 tools/testing/selftests/ftrace/test.d/trigger/trigger-hist-expressions.tc
create mode 100644 tools/testing/selftests/futex/functional/futex_waitv.c
create mode 100644 tools/testing/selftests/futex/include/futex2test.h
create mode 100644 tools/testing/selftests/kvm/aarch64/arch_timer.c
create mode 100644 tools/testing/selftests/kvm/include/aarch64/arch_timer.h
create mode 100644 tools/testing/selftests/kvm/include/aarch64/delay.h
create mode 100644 tools/testing/selftests/kvm/include/aarch64/gic.h
create mode 100644 tools/testing/selftests/kvm/include/aarch64/spinlock.h
create mode 100644 tools/testing/selftests/kvm/include/aarch64/vgic.h
create mode 100644 tools/testing/selftests/kvm/lib/aarch64/gic.c
create mode 100644 tools/testing/selftests/kvm/lib/aarch64/gic_private.h
create mode 100644 tools/testing/selftests/kvm/lib/aarch64/gic_v3.c
create mode 100644 tools/testing/selftests/kvm/lib/aarch64/gic_v3.h
create mode 100644 tools/testing/selftests/kvm/lib/aarch64/spinlock.c
create mode 100644 tools/testing/selftests/kvm/lib/aarch64/vgic.c
create mode 100644 tools/testing/selftests/kvm/system_counter_offset_test.c
create mode 100644 tools/testing/selftests/kvm/x86_64/kvm_clock_test.c
create mode 100644 tools/testing/selftests/kvm/x86_64/sev_migrate_tests.c
create mode 100644 tools/testing/selftests/net/amt.sh
create mode 100755 tools/testing/selftests/net/arp_ndisc_evict_nocarrier.sh
create mode 100644 tools/testing/selftests/net/cmsg_so_mark.c
create mode 100755 tools/testing/selftests/net/cmsg_so_mark.sh
create mode 100755 tools/testing/selftests/net/forwarding/ip6_forward_instats_vrf.sh
create mode 100755 tools/testing/selftests/net/forwarding/ip6gre_flat.sh
create mode 100755 tools/testing/selftests/net/forwarding/ip6gre_flat_key.sh
create mode 100755 tools/testing/selftests/net/forwarding/ip6gre_flat_keys.sh
create mode 100755 tools/testing/selftests/net/forwarding/ip6gre_hier.sh
create mode 100755 tools/testing/selftests/net/forwarding/ip6gre_hier_key.sh
create mode 100755 tools/testing/selftests/net/forwarding/ip6gre_hier_keys.sh
create mode 100644 tools/testing/selftests/net/forwarding/ip6gre_lib.sh
create mode 100644 tools/testing/selftests/net/mptcp/mptcp_sockopt.c
create mode 100644 tools/testing/selftests/proc/proc-tid0.c
create mode 100644 tools/testing/selftests/vm/hugepage-mremap.c
create mode 100644 tools/testing/selftests/x86/amx.c
2
1
commit 25960cafa06e6fcd830e6c792e6a7de68c1e25ed upstream.
Legion Y9000X 2020 has a speaker, but the speaker doesn't work.
This can be fixed by applying alc285_fixup_ideapad_s740_coef
to fix the speaker's coefficients.
Besides, to support the transition between the speaker and the headphone,
alc287_fixup_legion_15imhg05_speakers needs to be run.
Signed-off-by: Baole Fang <fbl718(a)163.com>
---
sound/pci/hda/patch_realtek.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 28255e752c4a..c7232f9be690 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -6784,6 +6784,8 @@ enum {
ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE,
ALC233_FIXUP_NO_AUDIO_JACK,
ALC256_FIXUP_MIC_NO_PRESENCE_AND_RESUME,
+ ALC285_FIXUP_LEGION_Y9000X_SPEAKERS,
+ ALC285_FIXUP_LEGION_Y9000X_AUTOMUTE,
};
static const struct hda_fixup alc269_fixups[] = {
@@ -8380,6 +8382,18 @@ static const struct hda_fixup alc269_fixups[] = {
.chained = true,
.chain_id = ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF,
},
+ [ALC285_FIXUP_LEGION_Y9000X_SPEAKERS] = {
+ .type = HDA_FIXUP_FUNC,
+ .v.func = alc285_fixup_ideapad_s740_coef,
+ .chained = true,
+ .chain_id = ALC285_FIXUP_LEGION_Y9000X_AUTOMUTE,
+ },
+ [ALC285_FIXUP_LEGION_Y9000X_AUTOMUTE] = {
+ .type = HDA_FIXUP_FUNC,
+ .v.func = alc287_fixup_legion_15imhg05_speakers,
+ .chained = true,
+ .chain_id = ALC269_FIXUP_THINKPAD_ACPI,
+ },
[ALC287_FIXUP_LEGION_15IMHG05_SPEAKERS] = {
.type = HDA_FIXUP_VERBS,
//.v.verbs = legion_15imhg05_coefs,
@@ -8923,6 +8937,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
SND_PCI_QUIRK(0x17aa, 0x31af, "ThinkCentre Station", ALC623_FIXUP_LENOVO_THINKSTATION_P340),
SND_PCI_QUIRK(0x17aa, 0x3818, "Lenovo C940", ALC298_FIXUP_LENOVO_SPK_VOLUME),
SND_PCI_QUIRK(0x17aa, 0x3827, "Ideapad S740", ALC285_FIXUP_IDEAPAD_S740_COEF),
+ SND_PCI_QUIRK(0x17aa, 0x3824, "Legion Y9000X 2020", ALC285_FIXUP_LEGION_Y9000X_SPEAKERS),
SND_PCI_QUIRK(0x17aa, 0x3843, "Yoga 9i", ALC287_FIXUP_IDEAPAD_BASS_SPK_AMP),
SND_PCI_QUIRK(0x17aa, 0x3813, "Legion 7i 15IMHG05", ALC287_FIXUP_LEGION_15IMHG05_SPEAKERS),
SND_PCI_QUIRK(0x17aa, 0x3852, "Lenovo Yoga 7 14ITL5", ALC287_FIXUP_YOGA7_14ITL_SPEAKERS),
--
2.25.1
3
7
Hi Takashi,
I am working on stopping alsa streams of audio USB gadget when USB host
stops capture/playback/USB cable unplugged.
For capture I used code from AK4114 SPDIF receiver
https://elixir.bootlin.com/linux/latest/source/sound/i2c/other/ak4114.c#L590:
static void stop_substream(struct uac_rtd_params *prm)
{
unsigned long _flags;
struct snd_pcm_substream *substream;
substream = prm->ss;
if (substream) {
snd_pcm_stream_lock_irqsave(substream, _flags);
if (snd_pcm_running(substream))
// TODO - correct handling for playback substream?
snd_pcm_stop(substream, SNDRV_PCM_STATE_DRAINING);
snd_pcm_stream_unlock_irqrestore(substream, _flags);
}
}
For setup I found calling snd_pcm_stop(substream, SNDRV_PCM_STATE_SETUP)
(https://elixir.bootlin.com/linux/latest/source/drivers/staging/vc04_service…)
Or for both capture and playback using SNDRV_PCM_STATE_DISCONNECTED
(https://elixir.bootlin.com/linux/latest/source/sound/core/pcm.c#L1103).
Or perhaps using snd_pcm_dev_disconnect(dev) or snd_pcm_drop(substream)?
Please what is the recommended way?
Thanks a lot,
Pavel.
4
11
This code frees "graph" and then dereferences to save the error code.
Save the error code first and then use gotos to unwind the allocation.
Fixes: 59716aa3f976 ("ASoC: qdsp6: Fix an IS_ERR() vs NULL bug")
Signed-off-by: Dan Carpenter <dan.carpenter(a)oracle.com>
---
sound/soc/qcom/qdsp6/q6apm.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/sound/soc/qcom/qdsp6/q6apm.c b/sound/soc/qcom/qdsp6/q6apm.c
index 3e007d609a9b..f424d7aa389a 100644
--- a/sound/soc/qcom/qdsp6/q6apm.c
+++ b/sound/soc/qcom/qdsp6/q6apm.c
@@ -615,7 +615,7 @@ struct q6apm_graph *q6apm_graph_open(struct device *dev, q6apm_cb cb,
graph = kzalloc(sizeof(*graph), GFP_KERNEL);
if (!graph) {
ret = -ENOMEM;
- goto err;
+ goto put_ar_graph;
}
graph->apm = apm;
@@ -631,13 +631,15 @@ struct q6apm_graph *q6apm_graph_open(struct device *dev, q6apm_cb cb,
graph->port = gpr_alloc_port(apm->gdev, dev, graph_callback, graph);
if (IS_ERR(graph->port)) {
- kfree(graph);
ret = PTR_ERR(graph->port);
- goto err;
+ goto free_graph;
}
return graph;
-err:
+
+free_graph:
+ kfree(graph);
+put_ar_graph:
kref_put(&ar_graph->refcount, q6apm_put_audioreach_graph);
return ERR_PTR(ret);
}
--
2.20.1
3
3

05 Jan '22
Hi
>
> > /* sai may support mclk/bclk = 1 */
> > - if (of_find_property(np, "fsl,mclk-equal-bclk", NULL))
> > + if (of_find_property(np, "fsl,mclk-equal-bclk", NULL))
> {
> > link_data->one2one_ratio = true;
> > + } else {
> > + int i;
> > +
> > + /*
> > + * i.MX8MQ don't support one2one ratio,
> then
> > + * with ak4497 only 16bit case is supported.
> > + */
> > + for (i = 0; i < ARRAY_SIZE(ak4497_fs_mul); i++)
> {
>
> Shouldn't this be keyed off checking that we are actually running with an
> ak4497?
No need. Here just update the ak4497_fs_mul table, before it is used the
codec type is checked.
Best regards
Wang Shengjiu
1
0
Add the following two control options:
1. DMIC pin slew rate selection.
2. DMIC clock speed selection.
Signed-off-by: Seven Lee <wtli(a)nuvoton.com>
---
sound/soc/codecs/nau8821.c | 79 ++++++++++++++++++++++++++++++++++++++
sound/soc/codecs/nau8821.h | 6 ++-
2 files changed, 84 insertions(+), 1 deletion(-)
diff --git a/sound/soc/codecs/nau8821.c b/sound/soc/codecs/nau8821.c
index 2de818377484..52cdbf263e42 100644
--- a/sound/soc/codecs/nau8821.c
+++ b/sound/soc/codecs/nau8821.c
@@ -305,6 +305,66 @@ static int nau8821_biq_coeff_put(struct snd_kcontrol *kcontrol,
return 0;
}
+static int nau8821_slew_rate_get(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_value *ucontrol)
+{
+ struct snd_soc_component *component = snd_kcontrol_chip(kcontrol);
+ struct nau8821 *nau8821 = snd_soc_component_get_drvdata(component);
+ unsigned int value;
+
+ regmap_read(nau8821->regmap, NAU8821_R13_DMIC_CTRL, &value);
+ nau8821->def_mclk_src = (value & NAU8821_DMIC_SLEW_MASK)
+ >> NAU8821_DMIC_SLEW_SFT;
+ ucontrol->value.bytes.data[0] = nau8821->def_mclk_src;
+
+ return 0;
+}
+
+static int nau8821_slew_rate_put(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_value *ucontrol)
+{
+ struct snd_soc_component *component = snd_kcontrol_chip(kcontrol);
+ struct nau8821 *nau8821 = snd_soc_component_get_drvdata(component);
+
+ nau8821->def_mclk_src = ucontrol->value.integer.value[0];
+
+ regmap_update_bits(component->regmap, NAU8821_R13_DMIC_CTRL,
+ NAU8821_DMIC_SLEW_MASK,
+ nau8821->def_mclk_src << NAU8821_DMIC_SLEW_SFT);
+
+ return 0;
+}
+
+static int nau8821_dmic_clock_speed_get(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_value *ucontrol)
+{
+ struct snd_soc_component *component = snd_kcontrol_chip(kcontrol);
+ struct nau8821 *nau8821 = snd_soc_component_get_drvdata(component);
+ unsigned int value;
+
+ regmap_read(nau8821->regmap, NAU8821_R13_DMIC_CTRL, &value);
+ nau8821->def_dmic_clock = (value & NAU8821_DMIC_SRC_MASK)
+ >> NAU8821_DMIC_SRC_SFT;
+ ucontrol->value.bytes.data[0] = nau8821->def_dmic_clock;
+
+ return 0;
+}
+
+static int nau8821_dmic_clock_speed_put(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_value *ucontrol)
+{
+ struct snd_soc_component *component = snd_kcontrol_chip(kcontrol);
+ struct nau8821 *nau8821 = snd_soc_component_get_drvdata(component);
+
+ nau8821->def_dmic_clock = ucontrol->value.integer.value[0];
+
+ regmap_update_bits(component->regmap, NAU8821_R13_DMIC_CTRL,
+ NAU8821_DMIC_SRC_MASK,
+ nau8821->def_dmic_clock << NAU8821_DMIC_SRC_SFT);
+
+ return 0;
+}
+
static const char * const nau8821_adc_decimation[] = {
"32", "64", "128", "256" };
@@ -319,6 +379,20 @@ static const struct soc_enum nau8821_dac_oversampl_enum =
SOC_ENUM_SINGLE(NAU8821_R2C_DAC_CTRL1, NAU8821_DAC_OVERSAMPLE_SFT,
ARRAY_SIZE(nau8821_dac_oversampl), nau8821_dac_oversampl);
+static const char *const dmic_slew_text[] = {"0", "1", "2", "3", "4", "5",
+ "6", "7"};
+
+static const struct soc_enum nau8821_slew_rate_enum =
+ SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(dmic_slew_text),
+ dmic_slew_text);
+
+static const char *const dmic_clock_speed_text[] = {"3.072", "1.536", "0.768",
+ "0.384"};
+
+static const struct soc_enum nau8821_dmic_clock_speed_enum =
+ SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(dmic_clock_speed_text),
+ dmic_clock_speed_text);
+
static const DECLARE_TLV_DB_MINMAX_MUTE(adc_vol_tlv, -6600, 2400);
static const DECLARE_TLV_DB_MINMAX_MUTE(sidetone_vol_tlv, -4200, 0);
static const DECLARE_TLV_DB_MINMAX(hp_vol_tlv, -900, 0);
@@ -350,6 +424,11 @@ static const struct snd_kcontrol_new nau8821_controls[] = {
nau8821_biq_coeff_get, nau8821_biq_coeff_put),
SOC_SINGLE("ADC Phase Switch", NAU8821_R1B_TDM_CTRL,
NAU8821_ADCPHS_SFT, 1, 0),
+ SOC_ENUM_EXT("Slew Rate Selection", nau8821_slew_rate_enum,
+ nau8821_slew_rate_get, nau8821_slew_rate_put),
+ SOC_ENUM_EXT("DMIC Clock Speed Selection",
+ nau8821_dmic_clock_speed_enum, nau8821_dmic_clock_speed_get,
+ nau8821_dmic_clock_speed_put),
};
static const struct snd_kcontrol_new nau8821_dmic_mode_switch =
diff --git a/sound/soc/codecs/nau8821.h b/sound/soc/codecs/nau8821.h
index a92edfeb9d3a..0ca099fa98bb 100644
--- a/sound/soc/codecs/nau8821.h
+++ b/sound/soc/codecs/nau8821.h
@@ -228,7 +228,7 @@
#define NAU8821_IRQ_INSERT_DIS 0x1
/* DMIC_CTRL (0x13) */
-#define NAU8821_DMIC_DS_SFT 7
+#define NAU8821_DMIC_DS_SFT 11
#define NAU8821_DMIC_DS_MASK (0x1 << NAU8821_DMIC_DS_SFT)
#define NAU8821_DMIC_DS_HIGH (0x1 << NAU8821_DMIC_DS_SFT)
#define NAU8821_DMIC_DS_LOW (0x0 << NAU8821_DMIC_DS_SFT)
@@ -236,6 +236,8 @@
#define NAU8821_DMIC_SRC_MASK (0x3 << NAU8821_DMIC_SRC_SFT)
#define NAU8821_CLK_DMIC_SRC (0x2 << NAU8821_DMIC_SRC_SFT)
#define NAU8821_DMIC_EN_SFT 0
+#define NAU8821_DMIC_SLEW_SFT 8
+#define NAU8821_DMIC_SLEW_MASK (0x7 << NAU8821_DMIC_SLEW_SFT)
/* GPIO12_CTRL (0x1a) */
#define NAU8821_JKDET_PULL_UP (0x1 << 11) /* 0 - pull down, 1 - pull up */
@@ -525,6 +527,8 @@ struct nau8821 {
int jack_eject_debounce;
int fs;
int dmic_clk_threshold;
+ int def_mclk_src;
+ int def_dmic_clock;
};
int nau8821_enable_jack_detect(struct snd_soc_component *component,
--
2.25.1
3
4

04 Jan '22
From: Fabio Estevam <festevam(a)denx.de>
The Chip ID - Register 01h contains the following description
as per the CS4265 datasheet:
"Bits 7 through 4 are the part number ID, which is 1101b (0Dh)"
The current error message is incorrect as it prints CS4265_CHIP_ID,
which is the register number, instead of printing the expected
part number ID value.
To make it clearer, also do a shift by 4, so that the error message
would become:
[ 4.218083] cs4265 1-004f: CS4265 Part Number ID: 0x0 Expected: 0xd
Signed-off-by: Fabio Estevam <festevam(a)denx.de>
Acked-by: Charles Keepax <ckeepax(a)opensource.cirrus.com>
---
Changes since v1:
- None
sound/soc/codecs/cs4265.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sound/soc/codecs/cs4265.c b/sound/soc/codecs/cs4265.c
index cffd6111afac..b89002189a2b 100644
--- a/sound/soc/codecs/cs4265.c
+++ b/sound/soc/codecs/cs4265.c
@@ -611,8 +611,8 @@ static int cs4265_i2c_probe(struct i2c_client *i2c_client,
if (devid != CS4265_CHIP_ID_VAL) {
ret = -ENODEV;
dev_err(&i2c_client->dev,
- "CS4265 Device ID (%X). Expected %X\n",
- devid, CS4265_CHIP_ID);
+ "CS4265 Part Number ID: 0x%x Expected: 0x%x\n",
+ devid >> 4, CS4265_CHIP_ID_VAL >> 4);
return ret;
}
dev_info(&i2c_client->dev,
--
2.25.1
3
8
modprobe can't handle spaces in aliases.
Fixes: 9e28f6532c61 ("ASoC: fsl_mqs: Add MQS component driver")
Signed-off-by: Alyssa Ross <hi(a)alyssa.is>
---
sound/soc/fsl/fsl_mqs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/soc/fsl/fsl_mqs.c b/sound/soc/fsl/fsl_mqs.c
index 27b4536dce44..ceaecbe3a25e 100644
--- a/sound/soc/fsl/fsl_mqs.c
+++ b/sound/soc/fsl/fsl_mqs.c
@@ -337,4 +337,4 @@ module_platform_driver(fsl_mqs_driver);
MODULE_AUTHOR("Shengjiu Wang <Shengjiu.Wang(a)nxp.com>");
MODULE_DESCRIPTION("MQS codec driver");
MODULE_LICENSE("GPL v2");
-MODULE_ALIAS("platform: fsl-mqs");
+MODULE_ALIAS("platform:fsl-mqs");
base-commit: c9e6606c7fe92b50a02ce51dda82586ebdf99b48
--
2.33.0
2
1
Hi,
while debugging something different, I found the following
jack detection related bug in the cs8904 driver on my DELL
Inspirion 3501:
- Plug in a headset, play some sound to make sure that
the headset is detected.
- Stop the sound, wait for the codec to go into suspend (30s
should be plenty enough time)
- Unplug the headset while the codec is in suspend.
- Try to play sound on the internal speakers. Notice that
the the driver still thinks the headset is connected. As a result
there is no sound on the internal speakers.
AFAICS the bug was introduced by the following commit:
| commit 424e531b47f83da87490464c5bf633dfb624fe6a
| Author: Stefan Binding <sbinding(a)opensource.cirrus.com>
| Date: Fri Aug 27 12:02:51 2021 +0100
|
| ALSA: hda/cs8409: Ensure Type Detection is only run on startup when
| necessary
The bug is with the hp_jack_in and mic_jack_in flags that are used
to determine if jack detection should be run etc. These flags
are cleared in the suspend path. This prevents a status change from
being detected after resume as hp_jack_in is cleared by suspend and
there is no jack due to the unplug of the headset.
This status change was never reported to the HDA core, though.
On suspend this is not done, only hd_jack_in is cleared and on
resume the driver thinks that there is no change the needs reporting.
Proposed fix below, please consider inclusion.
regards Christian
>From 1dcf34c1d1c6c4852a86ec3ae189afa5d90ea09c Mon Sep 17 00:00:00 2001
From: "Christian A. Ehrhardt" <lk(a)c--e.de>
Date: Fri, 31 Dec 2021 12:13:48 +0100
Subject: [PATCH 2/2] ALSA: hda/cs8409: Fix Jack detection after resume
The suspend code unconditionally sets ->hp_jack_in and ->mic_jack_in
to zero but without reporting this status change to the HDA core.
To compensate for this, always assume a status change on the
first unsol event after boot or resume.
Fixes: 424e531b47f8 ("ALSA: hda/cs8409: Ensure Type Detection is only run on startup when necessary")
Signed-off-by: Christian A. Ehrhardt <lk(a)c--e.de>
---
sound/pci/hda/patch_cs8409-tables.c | 3 +++
sound/pci/hda/patch_cs8409.c | 5 ++++-
sound/pci/hda/patch_cs8409.h | 1 +
3 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/sound/pci/hda/patch_cs8409-tables.c b/sound/pci/hda/patch_cs8409-tables.c
index 0fb0a428428b..df0b4522babf 100644
--- a/sound/pci/hda/patch_cs8409-tables.c
+++ b/sound/pci/hda/patch_cs8409-tables.c
@@ -252,6 +252,7 @@ struct sub_codec cs8409_cs42l42_codec = {
.init_seq_num = ARRAY_SIZE(cs42l42_init_reg_seq),
.hp_jack_in = 0,
.mic_jack_in = 0,
+ .force_status_change = 1,
.paged = 1,
.suspended = 1,
.no_type_dect = 0,
@@ -443,6 +444,7 @@ struct sub_codec dolphin_cs42l42_0 = {
.init_seq_num = ARRAY_SIZE(dolphin_c0_init_reg_seq),
.hp_jack_in = 0,
.mic_jack_in = 0,
+ .force_status_change = 1,
.paged = 1,
.suspended = 1,
.no_type_dect = 0,
@@ -456,6 +458,7 @@ struct sub_codec dolphin_cs42l42_1 = {
.init_seq_num = ARRAY_SIZE(dolphin_c1_init_reg_seq),
.hp_jack_in = 0,
.mic_jack_in = 0,
+ .force_status_change = 1,
.paged = 1,
.suspended = 1,
.no_type_dect = 1,
diff --git a/sound/pci/hda/patch_cs8409.c b/sound/pci/hda/patch_cs8409.c
index bf5d7f0c6ba5..aff2b5abb81e 100644
--- a/sound/pci/hda/patch_cs8409.c
+++ b/sound/pci/hda/patch_cs8409.c
@@ -636,7 +636,9 @@ static void cs42l42_run_jack_detect(struct sub_codec *cs42l42)
static int cs42l42_handle_tip_sense(struct sub_codec *cs42l42, unsigned int reg_ts_status)
{
- int status_changed = 0;
+ int status_changed = cs42l42->force_status_change;
+
+ cs42l42->force_status_change = 0;
/* TIP_SENSE INSERT/REMOVE */
switch (reg_ts_status) {
@@ -791,6 +793,7 @@ static void cs42l42_suspend(struct sub_codec *cs42l42)
cs42l42->last_page = 0;
cs42l42->hp_jack_in = 0;
cs42l42->mic_jack_in = 0;
+ cs42l42->force_status_change = 1;
/* Put CS42L42 into Reset */
gpio_data = snd_hda_codec_read(codec, CS8409_PIN_AFG, 0, AC_VERB_GET_GPIO_DATA, 0);
diff --git a/sound/pci/hda/patch_cs8409.h b/sound/pci/hda/patch_cs8409.h
index ade2b838590c..d0b725c7285b 100644
--- a/sound/pci/hda/patch_cs8409.h
+++ b/sound/pci/hda/patch_cs8409.h
@@ -305,6 +305,7 @@ struct sub_codec {
unsigned int hp_jack_in:1;
unsigned int mic_jack_in:1;
+ unsigned int force_status_change:1;
unsigned int suspended:1;
unsigned int paged:1;
unsigned int last_page;
--
2.32.0
2
1
Hi,
I have a DELL Inspirion 3501 laptop with a cirrus cs8904 HDA codec.
With more recent kernels the internal speakers stopped working.
I bisected the issue and tracked it down to this commit
| commit c8b4f0865e82c14924c69c07d985af3ee9133316
| Author: Stefan Binding <sbinding(a)opensource.cirrus.com>
| Date: Wed Aug 11 19:56:52 2021 +0100
|
| ALSA: hda/cs8409: Remove unnecessary delays
After a bit of experimenting with the timeouts I came
up with the patch below that fixes the issue for me.
However, I don't have the specs for the chip, i.e. I don't
know what a theoretically correct value would be.
Suggested patch below, please consider inclusion.
regards Christian
>From 9c796d221171c6d12fd84ae4f5c8315030c8c4ca Mon Sep 17 00:00:00 2001
From: "Christian A. Ehrhardt" <lk(a)c--e.de>
Date: Fri, 31 Dec 2021 10:33:19 +0100
Subject: [PATCH 1/2] ALSA: hda/cs8409: Increase delay during jack detection
Commit c8b4f0865e82 reduced delays related to cs42l42 jack
detection. However, the change was too aggressive. As a result
internal speakers on DELL Inspirion 3501 ac8b4f0865e82re not detected.
Increase the delay in cs42l42_run_jack_detect() a bit.
Fixes: c8b4f0865e82 ("ALSA: hda/cs8409: Remove unnecessary delays")
Signed-off-by: Christian A. Ehrhardt <lk(a)c--e.de>
---
sound/pci/hda/patch_cs8409.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sound/pci/hda/patch_cs8409.c b/sound/pci/hda/patch_cs8409.c
index 039b9f2f8e94..bf5d7f0c6ba5 100644
--- a/sound/pci/hda/patch_cs8409.c
+++ b/sound/pci/hda/patch_cs8409.c
@@ -628,8 +628,8 @@ static void cs42l42_run_jack_detect(struct sub_codec *cs42l42)
cs8409_i2c_write(cs42l42, 0x1b74, 0x07);
cs8409_i2c_write(cs42l42, 0x131b, 0xFD);
cs8409_i2c_write(cs42l42, 0x1120, 0x80);
- /* Wait ~100us*/
- usleep_range(100, 200);
+ /* Wait ~20ms*/
+ usleep_range(20000, 25000);
cs8409_i2c_write(cs42l42, 0x111f, 0x77);
cs8409_i2c_write(cs42l42, 0x1120, 0xc0);
}
--
2.32.0
2
1

[RESEND PATCH v10 0/3] This patches provide ADSP IPC support for MT8195
by allen-kh.cheng 04 Jan '22
by allen-kh.cheng 04 Jan '22
04 Jan '22
From: Allen-KH Cheng <Allen-KH.Cheng(a)mediatek.com>
Mediatek ADSP IPC is used to send notification or short message between
processors with dsp.·
It will place the message to the share buffer and will access the ADSP mailbox
registers to kick dsp.
Two mailboxes used to send notification or short message between processors with
dsp
changes since v9:
- rename adsp_mbox_chan_ops to mtk_adsp_mbox_chan_ops
changes since v8:
- remove struct adsp_mbox_ch_info
- add get_mtk_adsp_mbox_priv
- use mtk_adsp_mbox_priv va_mboxreg address in adsp mbox driver
- add struct mtk_adsp_mbox_cfg for DSP mbox register offset
- remove adsp mbox register offset hard code define
- remove mtk-adsp-ipc.h reference in adsp mbox driver
changes since v7:
- add mtk prefix for adsp ipc functions
- rename adsp_mbox_ch_info to mtk_adsp_mbox_ch_info
- remove incorrect reviewers in commit message
changes since v6:
- dt-bindings: change example dtsi node.
- rename config MTK_ADSP_IPC_MBOX to MTK_ADSP_MBOX
- remove unused variable
- add reviewers
changes since v5:
- remove some redundant code
changes since v4:
- use switch ... case in adsp_ipc_recv
- add error handling path for chan_name pointer
- refine some code to be concise
changes since v3:
- reorder MTK_ADSP_IPC_MBOX config
- remove some redundant code
- remove lock in mtk-adsp-mailbox
changes since v2:
- separate adsp_mailbox into two instances
changes since v1:
- fix dt_binding_check error
Allen-KH Cheng (3):
dt-bindings: mediatek: add adsp-mbox document
firmware: mediatek: add adsp ipc protocol interface
mailbox: mediatek: add support for adsp mailbox controller
.../bindings/mailbox/mtk,adsp-mbox.yaml | 52 ++++++
drivers/firmware/Kconfig | 1 +
drivers/firmware/Makefile | 1 +
drivers/firmware/mediatek/Kconfig | 9 +
drivers/firmware/mediatek/Makefile | 2 +
drivers/firmware/mediatek/mtk-adsp-ipc.c | 135 ++++++++++++++
drivers/mailbox/Kconfig | 7 +
drivers/mailbox/Makefile | 2 +
drivers/mailbox/mtk-adsp-mailbox.c | 176 ++++++++++++++++++
.../linux/firmware/mediatek/mtk-adsp-ipc.h | 65 +++++++
10 files changed, 450 insertions(+)
create mode 100644 Documentation/devicetree/bindings/mailbox/mtk,adsp-mbox.yaml
create mode 100644 drivers/firmware/mediatek/Kconfig
create mode 100644 drivers/firmware/mediatek/Makefile
create mode 100644 drivers/firmware/mediatek/mtk-adsp-ipc.c
create mode 100644 drivers/mailbox/mtk-adsp-mailbox.c
create mode 100644 include/linux/firmware/mediatek/mtk-adsp-ipc.h
--
2.18.0
1
4

04 Jan '22
Hi,
With current 5.15.11, my soundblaster Zx is not correctly coming back
from suspend. Dmesg prints:
[Mi Dez 29 16:12:14 2021] [drm] UVD and UVD ENC initialized successfully.
[Mi Dez 29 16:12:14 2021] snd_hda_codec_ca0132 hdaudioC0D1: ca0132 DSP downloaded and running
[Mi Dez 29 16:12:15 2021] [drm] VCE initialized successfully.
[Mi Dez 29 16:12:15 2021] usb 1-5: reset full-speed USB device number 2 using xhci_hcd
[Mi Dez 29 16:12:16 2021] ata1.00: Enabling discard_zeroes_data
[Mi Dez 29 16:12:16 2021] OOM killer enabled.
[Mi Dez 29 16:12:16 2021] Restarting tasks ... done.
[Mi Dez 29 16:12:16 2021] PM: suspend exit
[Mi Dez 29 16:12:16 2021] snd_hda_intel 0000:06:00.0: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x000f address=0xdf880000 flags=0x0000]
[Mi Dez 29 16:12:17 2021] igb 0000:08:00.0 enp8s0: igb: enp8s0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX
Where the IOMMU Page Fault looks suspicious. Unbinding and rebinding the
driver using sysfs fixes it, thats the current workaround I have
been using.
Thanks and happy holidays,
Rouven Czerwinski
3
2
The MIPS BMC63XX subarch does not provide/support clk_set_parent().
This causes build errors in a few drivers, so add a simple implementation
of that function so that callers of it will build without errors.
Fixes these build errors:
ERROR: modpost: "clk_set_parent" [sound/soc/jz4740/snd-soc-jz4740-i2s.ko] undefined!
ERROR: modpost: "clk_set_parent" [sound/soc/atmel/snd-soc-atmel-i2s.ko] undefined!
Fixes: e7300d04bd08 ("MIPS: BCM63xx: Add support for the Broadcom BCM63xx family of SOCs." )
Signed-off-by: Randy Dunlap <rdunlap(a)infradead.org>
---
arch/mips/bcm63xx/clk.c | 6 ++++++
1 file changed, 6 insertions(+)
--- linux-next-20211224.orig/arch/mips/bcm63xx/clk.c
+++ linux-next-20211224/arch/mips/bcm63xx/clk.c
@@ -387,6 +387,12 @@ struct clk *clk_get_parent(struct clk *c
}
EXPORT_SYMBOL(clk_get_parent);
+int clk_set_parent(struct clk *clk, struct clk *parent)
+{
+ return 0;
+}
+EXPORT_SYMBOL(clk_set_parent);
+
unsigned long clk_get_rate(struct clk *clk)
{
if (!clk)
4
3
Provide a simple implementation of clk_set_parent() in the lantiq
subarch so that callers of it will build without errors.
Fixes these build errors:
ERROR: modpost: "clk_set_parent" [sound/soc/jz4740/snd-soc-jz4740-i2s.ko] undefined!
ERROR: modpost: "clk_set_parent" [sound/soc/atmel/snd-soc-atmel-i2s.ko] undefined!
Fixes: 171bb2f19ed6 ("MIPS: Lantiq: Add initial support for Lantiq SoCs")
Signed-off-by: Randy Dunlap <rdunlap(a)infradead.org>
Reported-by: kernel test robot <lkp(a)intel.com>
--to=linux-mips(a)vger.kernel.org --cc="John Crispin <john(a)phrozen.org>" --cc="Jonathan Cameron <jic23(a)kernel.org>" --cc="Russell King <linux(a)armlinux.org.uk>" --cc="Andy Shevchenko <andy.shevchenko(a)gmail.com>" --cc=alsa-devel(a)alsa-project.org --to="Thomas Bogendoerfer <tsbogend(a)alpha.franken.de>"
---
arch/mips/lantiq/clk.c | 6 ++++++
1 file changed, 6 insertions(+)
--- linux-next-20211224.orig/arch/mips/lantiq/clk.c
+++ linux-next-20211224/arch/mips/lantiq/clk.c
@@ -164,6 +164,12 @@ struct clk *clk_get_parent(struct clk *c
}
EXPORT_SYMBOL(clk_get_parent);
+int clk_set_parent(struct clk *clk, struct clk *parent)
+{
+ return 0;
+}
+EXPORT_SYMBOL(clk_set_parent);
+
static inline u32 get_counter_resolution(void)
{
u32 res;
3
2

[PATCH v2 0/1] ALSA: hda/realtek - Fix silent output on Gigabyte X570 Aorus Master after reboot from Windows
by Christian Lachner 03 Jan '22
by Christian Lachner 03 Jan '22
03 Jan '22
This is version 2 of my patch. It implements suggestions from Takashi Iwai.
Thanks for that! Furthermore, I re-analyzed all the relevant coefs and
removed those that are not actually needed.
===
This patch addresses an issue where after rebooting from Windows into Linux
there would be no audio output.
It turns out that the Realtek Audio driver on Windows changes some coeffs
which are not being reset/reinitialized when rebooting the machine. As a
result, there is no audio output until these coeffs are being reset to
their initial state. This patch takes care of that by setting known-good
(initial) values to the coeffs.
The coeffs were collected via alsa-info, see:
broken: https://pastebin.com/4bRBSseH
working: https://pastebin.com/WUTufvZB
I also created a script which fixes the audio at runtime.
#!/bin/sh
hda-verb /dev/snd/hwC2D0 0x20 SET_COEF_INDEX 0x1a
hda-verb /dev/snd/hwC2D0 0x20 SET_PROC_COEF 0x01c1
hda-verb /dev/snd/hwC2D0 0x20 SET_COEF_INDEX 0x1b
hda-verb /dev/snd/hwC2D0 0x20 SET_PROC_COEF 0x0202
hda-verb /dev/snd/hwC2D0 0x20 SET_COEF_INDEX 0x43
hda-verb /dev/snd/hwC2D0 0x20 SET_PROC_COEF 0x3005
However, obviously, we can and should fix this in the kernel.
We initially relied upon alc1220_fixup_clevo_p950() to fix some pins in the
connection list. However, it also sets coef 0x7 which does not need to be
touched. Furthermore, to prevent mixing device-specific quirks I introduced
a new alc1220_fixup_gb_x570() which is heavily based on
alc1220_fixup_clevo_p950() but does not set coeff 0x7 and fixes the coeffs
that are actually needed instead.
This new alc1220_fixup_gb_x570() is believed to also work for other boards,
like the Gigabyte X570 Aorus Extreme and the newer Gigabyte Aorus X570S
Master. However, as there is no way for me to test these I initially only
enable this new behaviour for the mainboard I have which is the Gigabyte
X570(non-S) Aorus Master.
I tested this patch on the 5.15 branch as well as on master and it is
working well for me.
Christian Lachner (1):
ALSA: hda/realtek - Fix silent output on Gigabyte X570 Aorus Master
after reboot from Windows
sound/pci/hda/patch_realtek.c | 30 +++++++++++++++++++++++++++++-
1 file changed, 29 insertions(+), 1 deletion(-)
--
2.34.1
2
2
Following up [1] here are more fix for missing sound-name-prefix properties in
the arch/arm64/boot/dts/amlogic/ subtree.
[1] https://www.spinics.net/lists/devicetree/msg466125.html
Alexander Stein (3):
dt-bindings: display: meson-dw-hdmi: add missing sound-name-prefix
property
ASoC: dt-bindings: spdif-dit: add missing sound-name-prefix property
ASoC: dt-bindings: aiu: spdif-dit: add missing sound-name-prefix
property
.../devicetree/bindings/display/amlogic,meson-dw-hdmi.yaml | 5 +++++
Documentation/devicetree/bindings/sound/amlogic,aiu.yaml | 5 +++++
Documentation/devicetree/bindings/sound/linux,spdif-dit.yaml | 5 +++++
3 files changed, 15 insertions(+)
--
2.34.1
3
6

03 Jan '22
Hello alsa-dev people,
I’d like to describe a problem with speaker placement seen with the Amlogic
(meson) AIU and AXG drivers when playing multi-channel media. The problem
was traced to a failure to get the channel map via snd_pcm_get_chmap()
and further analysis showed this failed because the PCM controls are exposed
on a different device than the PCM stream.
e.g. on LibreTech LePotato with DPCM routing configured for HDMI output,
the hw PCM is on the single frontend device 0 but the PCM controls are
on device 2:
LePotato:~ # aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: LIBRETECHCC [LIBRETECH-CC], device 0: fe.dai-link-0 (*) []
Subdevices: 1/1
Subdevice #0: subdevice #0
LePotato:~ # amixer controls
numid=19,iface=MIXER,name='PCM Playback Volume'
numid=18,iface=MIXER,name='ACODEC Left DAC Sel'
numid=7,iface=MIXER,name='ACODEC Mute Ramp Switch'
numid=2,iface=MIXER,name='ACODEC Playback Channel Mode'
numid=3,iface=MIXER,name='ACODEC Playback Switch'
numid=4,iface=MIXER,name='ACODEC Playback Volume'
numid=5,iface=MIXER,name='ACODEC Ramp Rate'
numid=17,iface=MIXER,name='ACODEC Right DAC Sel'
numid=8,iface=MIXER,name='ACODEC Unmute Ramp Switch'
numid=6,iface=MIXER,name='ACODEC Volume Ramp Switch'
numid=1,iface=MIXER,name='AIU ACODEC I2S Lane Select'
numid=16,iface=MIXER,name='AIU ACODEC OUT EN Switch'
numid=15,iface=MIXER,name='AIU ACODEC SRC'
numid=14,iface=MIXER,name='AIU HDMI CTRL SRC'
numid=13,iface=MIXER,name='AIU SPDIF SRC SEL'
numid=12,iface=PCM,name='ELD',device=2
numid=11,iface=PCM,name='IEC958 Playback Default',device=2
numid=10,iface=PCM,name='IEC958 Playback Mask',device=2
numid=9,iface=PCM,name='Playback Channel Map',device=2
https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/amlogic/m…
or on a Wetek Play 2:
WP2:~ # aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: WETEKPLAY2 [WETEK-PLAY2], device 0: fe.dai-link-0 (*) []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: WETEKPLAY2 [WETEK-PLAY2], device 1: fe.dai-link-1 (*) []
Subdevices: 1/1
Subdevice #0: subdevice #0
WP2:~ # amixer controls
numid=7,iface=MIXER,name='PCM Playback Volume'
numid=6,iface=MIXER,name='AIU HDMI CTRL SRC'
numid=5,iface=MIXER,name='AIU SPDIF SRC SEL'
numid=4,iface=PCM,name='ELD',device=4
numid=3,iface=PCM,name='IEC958 Playback Default',device=4
numid=2,iface=PCM,name='IEC958 Playback Mask',device=4
numid=1,iface=PCM,name='Playback Channel Map',device=4
https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/amlogic/m…
It looks like the PCM controls of the backend hdmi-codec are not routed
through the DPCM driver the same way as PCM streams. We discussed that
issue with Jerome, the driver author, but it’s not clear which bits we
are missing. i.e. if it's something ASoC DPCM should be handling or if
some further plumbing in the card driver or userspace is needed?
Any hints into the right direction would be highly appreciated!
Christian
3
4
hi,
happy new year every one. During the free days I've tried to link
BitwigStudio to the webapp [1]cables.gl over virmidi. Unfortunately
Bitwig Studio only supports rawmidi. What I discovered is that there is
a strange slowness when sending data to virmidi caused
by snd_rawmidi_drain().
I've posted two tiny, self-contained c apps
to: [2]https://gist.github.com/ensonic/c7588b87fa6c1fa94a8f753b1e0aa394
See some examples below. 2 observations:
* snd_rawmidi_type() is *not* reporting virmidi as VIRTUAL
* snd_rawmidi_drain() takes about 60ms! on virtual vs. less that 0.1 ms
on usb midi (I checked all my hw midi and the worst was avg=1ms on
physical midi image unitor8)
When comparing the implementations:
[3]https://github.com/alsa-project/alsa-lib/blob/master/
src/rawmidi/rawmidi_virt.c#L173
[4]https://github.com/alsa-project/alsa-lib/blob/master/
src/rawmidi/rawmidi_hw.c#L164
I see that the hw one results in an IOCTL (SNDRV_RAWMIDI_IOCTL_DRAIN)
which I can see when strac'ing app and I wonder if this is the root
cause? Why is rawmidi_virt.c not used for virmidi?
From poking at snd_rawmidi_open_conf() I have not yet figured where
this is decided ....
If the IOCTl is the right code path, any idea why it is slow? Is the
virmidi driver not reporting buffer fill status or something like that?
Stefan
> amidi -l
Dir Device Name
IO hw:0,0,0 Scarlett 18i20 USB MIDI 1
IO hw:3,0,0 nanoKEY2 nanoKEY2 _ KEYBOARD
IO hw:5,0,0 nanoKONTROL nanoKONTROL _ SLIDE
IO hw:10,0 Virtual Raw MIDI (16 subdevices)
IO hw:11,0 Virtual Raw MIDI (16 subdevices)
# using direct i/o to virmidi - all good
> ./rawmidi_oss /dev/midi11 0
Using device '/dev/midi11' without draining
write took min= 0.0015 ms, avg= 0.0016 ms, max= 0.0110 ms
> ./rawmidi_oss /dev/midi11 1
Using device '/dev/midi11' with draining
write took min= 0.0015 ms, avg= 0.0017 ms, max= 0.0101 ms
drain took min= 0.0001 ms, avg= 0.0001 ms, max= 0.0008 ms
# using snd_rawmidi to virmidi - slow drain operations
> ./rawmidi_alsa hw:11,0 0
Using device 'hw:11,0' without draining
SND_RAWMIDI_TYPE_HW
write took min= 0.0010 ms, avg= 0.0011 ms, max= 0.0056 ms
> ./rawmidi_alsa hw:11,0 1
Using device 'hw:11,0' with draining
SND_RAWMIDI_TYPE_HW
write took min= 0.0016 ms, avg= 0.0040 ms, max= 0.0077 ms
drain took min= 55.9951 ms, avg= 60.4330 ms, max= 64.0653 ms
# using snd_rawmidi to usb hw - all good
> ./rawmidi_alsa hw:3,0 0
Using device 'hw:3,0' without draining
SND_RAWMIDI_TYPE_HW
write took min= 0.0012 ms, avg= 0.0015 ms, max= 0.0121 ms
> ./rawmidi_alsa hw:3,0 1
Using device 'hw:3,0' with draining
SND_RAWMIDI_TYPE_HW
write took min= 0.0024 ms, avg= 0.0032 ms, max= 0.0110 ms
drain took min= 0.0293 ms, avg= 0.0636 ms, max= 0.2277 ms
References
1. http://cables.gl/
2. https://gist.github.com/ensonic/c7588b87fa6c1fa94a8f753b1e0aa394
3. https://github.com/alsa-project/alsa-lib/blob/master/src/rawmidi/rawmidi_vi…
4. https://github.com/alsa-project/alsa-lib/blob/master/src/rawmidi/rawmidi_hw…
1
0

01 Jan '22
alsa-project/alsa-lib pull request #208 was opened from ffontaine:
`safe_strtol_base` is defined twice since https://github.com/alsa-project/alsa-lib/commit/f547b2e35f71e89397e8b29cd0b… and https://github.com/alsa-project/alsa-lib/commit/5fab157a593180525607b7d2626… resulting in the following build failure when alsa-utils is built statically:
```
checking for snd_tplg_new in -latopology... no
configure: error: No linkable libatopology was found.
```
because `safe_strtol_base` is defined twice:
```
configure:7776: checking for snd_tplg_new in -latopology
configure:7801: /home/buildroot/autobuild/instance-2/output-1/host/bin/arm-linux-gcc -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -g0 -static -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -static conftest.c -latopology -lasound -lasound -lm -lpthread >&5
/home/buildroot/autobuild/instance-2/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/9.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: /home/buildroot/autobuild/instance-2/output-1/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libasound.a(conf.o): in function `safe_strtol_base':
conf.c:(.text+0x1600): multiple definition of `safe_strtol_base'; /home/buildroot/autobuild/instance-2/output-1/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libatopology.a(parser.o):parser.c:(.text+0x130): first defined here
```
Fixes:
- http://autobuild.buildroot.org/results/08d028004090b2a8292f03910cb9bf80a73a…
Request URL : https://github.com/alsa-project/alsa-lib/pull/208
Patch URL : https://github.com/alsa-project/alsa-lib/pull/208.patch
Repository URL: https://github.com/alsa-project/alsa-lib
1
0

01 Jan '22
alsa-project/alsa-lib pull request #207 was opened from ffontaine:
`safe_strtol_base` is defined twice since https://github.com/alsa-project/alsa-lib/commit/f547b2e35f71e89397e8b29cd0b… and https://github.com/alsa-project/alsa-lib/commit/5fab157a593180525607b7d2626… resulting in the following build failure when alsa-utils is built statically:
```
checking for snd_tplg_new in -latopology... no
configure: error: No linkable libatopology was found.
```
because `safe_strtol_base` is defined twice:
```
configure:7776: checking for snd_tplg_new in -latopology
configure:7801: /home/buildroot/autobuild/instance-2/output-1/host/bin/arm-linux-gcc -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -g0 -static -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -static conftest.c -latopology -lasound -lasound -lm -lpthread >&5
/home/buildroot/autobuild/instance-2/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/9.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: /home/buildroot/autobuild/instance-2/output-1/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libasound.a(conf.o): in function `safe_strtol_base':
conf.c:(.text+0x1600): multiple definition of `safe_strtol_base'; /home/buildroot/autobuild/instance-2/output-1/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libatopology.a(parser.o):parser.c:(.text+0x130): first defined here
```
Fixes:
- http://autobuild.buildroot.org/results/08d028004090b2a8292f03910cb9bf80a73a…
Signed-off-by: Fabrice Fontaine <fontaine.fabrice(a)gmail.com>
Request URL : https://github.com/alsa-project/alsa-lib/pull/207
Patch URL : https://github.com/alsa-project/alsa-lib/pull/207.patch
Repository URL: https://github.com/alsa-project/alsa-lib
1
0
HDA probe failure is observed on Tegra194 based platforms and this
happens due to reset failure. This series fixes the problem by
skipping the failing reset and DT bindings are updated accordingly.
Changelog
=========
v3 -> v4:
---------
* Rename SoC data variable in HDA driver patch.
* Remove NULL check for compatible match data in HDA driver patch.
* Drop "Depends-on" tag from commit message and add "Reviewed-by"
tag from Dmitry.
* Update binding doc patch as per comment from Rob.
v2 -> v3:
---------
* Use reset bulk APIs in HDA driver as suggested by Dmitry.
v1 -> v2:
---------
* Updated HDA driver patch to skip the failing reset instead of
skipping resets in general for BPMP devices as per comment from
Dmitry.
* Used a better strucure name for SoC data as per comment from
Thierry.
* Dropped 'Fixes' tag in binding doc patch as per comment from
Dmitry.
Sameer Pujar (3):
ALSA: hda/tegra: Fix Tegra194 HDA reset failure
dt-bindings: sound: tegra: Add minItems for resets
arm64: tegra: Remove non existent Tegra194 reset
.../bindings/sound/nvidia,tegra30-hda.yaml | 2 +
arch/arm64/boot/dts/nvidia/tegra194.dtsi | 5 +--
sound/pci/hda/hda_tegra.c | 43 +++++++++++++++++-----
3 files changed, 38 insertions(+), 12 deletions(-)
--
2.7.4
2
4

[PATCH 0/1] ALSA: hda/realtek - Fix silent output on Gigabyte X570 Aorus Master after reboot from Windows
by Christian Lachner 31 Dec '21
by Christian Lachner 31 Dec '21
31 Dec '21
This patch addresses an issue where after rebooting from Windows into Linux
there would be no audio output.
It turns out that the Realtek Audio driver on Windows changes some coeffs
which are not being reset/reinitialized when rebooting the machine. As a
result, there is no audio output until these coeffs are being reset to
their initial state. This patch takes care of that by setting known-good
(initial) values to the coeffs.
The coeffs were collected via alsa-info, see:
broken: https://pastebin.com/4bRBSseH
working: https://pastebin.com/WUTufvZB
I also created a script which fixes the audio at runtime.
#!/bin/sh
hda-verb /dev/snd/hwC2D0 0x20 SET_COEF_INDEX 0x1a
hda-verb /dev/snd/hwC2D0 0x20 SET_PROC_COEF 0x01c1
hda-verb /dev/snd/hwC2D0 0x20 SET_COEF_INDEX 0x1b
hda-verb /dev/snd/hwC2D0 0x20 SET_PROC_COEF 0x0202
hda-verb /dev/snd/hwC2D0 0x20 SET_COEF_INDEX 0x43
hda-verb /dev/snd/hwC2D0 0x20 SET_PROC_COEF 0x3005
hda-verb /dev/snd/hwC2D0 0x20 SET_COEF_INDEX 0x58
hda-verb /dev/snd/hwC2D0 0x20 SET_PROC_COEF 0x8fd6
hda-verb /dev/snd/hwC2D0 0x20 SET_COEF_INDEX 0x5f
hda-verb /dev/snd/hwC2D0 0x20 SET_PROC_COEF 0xa3c5
hda-verb /dev/snd/hwC2D0 0x20 SET_COEF_INDEX 0x6a
hda-verb /dev/snd/hwC2D0 0x20 SET_PROC_COEF 0x0232
However, obviously, we can and should fix this in the kernel.
We initially relied upon alc1220_fixup_clevo_p950() to fix some pins in the
connection list. However, it also sets coef 0x7 which does not need to be
touched. Furthermore, to prevent mixing device-specific quirks I introduced
a new alc1220_fixup_gb_x570() which is heavily based on
alc1220_fixup_clevo_p950() but does not set coeff 0x7 and fixes the coeffs
that are actually needed instead.
This new alc1220_fixup_gb_x570() is believed to also work for other boards,
like the Gigabyte X570 Aorus Extreme and the newer Gigabyte Aorus X570S
Master. However, as there is no way for me to test these I initially only
enable this new behaviour for the mainboard I have which is the Gigabyte
X570(non-S) Aorus Master.
I tested this patch on the 5.15 branch as well as on master and it is
working well for me.
Christian Lachner (1):
ALSA: hda/realtek - Fix silent output on Gigabyte X570 Aorus Master
after reboot from Windows
sound/pci/hda/patch_realtek.c | 27 ++++++++++++++++++++++++++-
1 file changed, 26 insertions(+), 1 deletion(-)
--
2.34.1
2
2
This series of patches repairs some problems for pcmif BE dai.
The unexpected control flow is corrected, and the missing playback
support of DPCM is added.
Patches are based on broonie tree "for-next" branch.
Trevor Wu (2):
ASoC: mediatek: mt8195: correct pcmif BE dai control flow
ASoC: mediatek: mt8195: add playback support to PCM1_BE dai_link
sound/soc/mediatek/mt8195/mt8195-dai-pcm.c | 73 ++++++-------------
.../mt8195/mt8195-mt6359-rt1011-rt5682.c | 1 +
.../mt8195/mt8195-mt6359-rt1019-rt5682.c | 1 +
sound/soc/mediatek/mt8195/mt8195-reg.h | 1 +
4 files changed, 24 insertions(+), 52 deletions(-)
--
2.18.0
2
3
alsa-project/alsa-ucm-conf issue #133 was edited from lm41:
Hi, many in the community had noticed that the Configuration for the GoXLR does not work for the GoXLR mini. https://www.tc-helicon.com/product.html?modelCode=P0DI7 Any ideas to get this to work as well? ref: #121
Issue URL : https://github.com/alsa-project/alsa-ucm-conf/issues/133
Repository URL: https://github.com/alsa-project/alsa-ucm-conf
1
0