diff --git a/.gitignore b/.gitignore index 44e34991875e..372e57abbf41 100644 --- a/.gitignore +++ b/.gitignore @@ -56,6 +56,7 @@ modules.order /tags /TAGS /linux +/modules-only.symvers /vmlinux /vmlinux.32 /vmlinux.symvers diff --git a/Documentation/ABI/testing/OWNERS b/Documentation/ABI/testing/OWNERS new file mode 100644 index 000000000000..75edfd5b3a32 --- /dev/null +++ b/Documentation/ABI/testing/OWNERS @@ -0,0 +1,2 @@ +# include OWNERS from the authoritative android-mainline branch +include kernel/common:android-mainline:/Documentation/ABI/testing/OWNERS diff --git a/Documentation/ABI/testing/sysfs-fs-f2fs b/Documentation/ABI/testing/sysfs-fs-f2fs index ddd4bd6116fc..5088281e312e 100644 --- a/Documentation/ABI/testing/sysfs-fs-f2fs +++ b/Documentation/ABI/testing/sysfs-fs-f2fs @@ -276,7 +276,7 @@ Date April 2019 Contact: "Daniel Rosenberg" Description: If checkpoint=disable, it displays the number of blocks that are unusable. - If checkpoint=enable it displays the enumber of blocks that + If checkpoint=enable it displays the number of blocks that would be unusable if checkpoint=disable were to be set. What: /sys/fs/f2fs//encoding @@ -410,6 +410,11 @@ Description: Give a way to change checkpoint merge daemon's io priority. and set the I/O priority within valid range of it. "," delimiter is necessary in between I/O class and priority number. +What: /sys/fs/f2fs//ovp_segments +Date: March 2021 +Contact: "Jaegeuk Kim" +Description: Shows the number of overprovision segments. + What: /sys/fs/f2fs//compr_written_block Date: March 2021 Contact: "Daeho Jeong" @@ -433,3 +438,31 @@ Description: Show the count of inode newly enabled for compression since mount. Note that when the compression is disabled for the files, this count doesn't decrease. If you write "0" here, you can initialize compr_new_inode to "0". + +What: /sys/fs/f2fs//atgc_candidate_ratio +Date: May 2021 +Contact: "Chao Yu" +Description: When ATGC is on, it controls candidate ratio in order to limit total + number of potential victim in all candidates, the value should be in + range of [0, 100], by default it was initialized as 20(%). + +What: /sys/fs/f2fs//atgc_candidate_count +Date: May 2021 +Contact: "Chao Yu" +Description: When ATGC is on, it controls candidate count in order to limit total + number of potential victim in all candidates, by default it was + initialized as 10 (sections). + +What: /sys/fs/f2fs//atgc_age_weight +Date: May 2021 +Contact: "Chao Yu" +Description: When ATGC is on, it controls age weight to balance weight proportion + in between aging and valid blocks, the value should be in range of + [0, 100], by default it was initialized as 60(%). + +What: /sys/fs/f2fs//atgc_age_threshold +Date: May 2021 +Contact: "Chao Yu" +Description: When ATGC is on, it controls age threshold to bypass GCing young + candidates whose age is not beyond the threshold, by default it was + initialized as 604800 seconds (equals to 7 days). diff --git a/Documentation/ABI/testing/sysfs-fs-incfs b/Documentation/ABI/testing/sysfs-fs-incfs new file mode 100644 index 000000000000..690c687c67ab --- /dev/null +++ b/Documentation/ABI/testing/sysfs-fs-incfs @@ -0,0 +1,64 @@ +What: /sys/fs/incremental-fs/features/corefs +Date: 2019 +Contact: Paul Lawrence +Description: Reads 'supported'. Always present. + +What: /sys/fs/incremental-fs/features/v2 +Date: April 2021 +Contact: Paul Lawrence +Description: Reads 'supported'. Present if all v2 features of incfs are + supported. + +What: /sys/fs/incremental-fs/features/zstd +Date: April 2021 +Contact: Paul Lawrence +Description: Reads 'supported'. Present if zstd compression is supported + for data blocks. + +What: /sys/fs/incremental-fs/instances/[name] +Date: April 2021 +Contact: Paul Lawrence +Description: Folder created when incfs is mounted with the sysfs_name=[name] + option. If this option is used, the following values are created + in this folder. + +What: /sys/fs/incremental-fs/instances/[name]/reads_delayed_min +Date: April 2021 +Contact: Paul Lawrence +Description: Returns a count of the number of reads that were delayed as a + result of the per UID read timeouts min time setting. + +What: /sys/fs/incremental-fs/instances/[name]/reads_delayed_min_us +Date: April 2021 +Contact: Paul Lawrence +Description: Returns total delay time for all files since first mount as a + result of the per UID read timeouts min time setting. + +What: /sys/fs/incremental-fs/instances/[name]/reads_delayed_pending +Date: April 2021 +Contact: Paul Lawrence +Description: Returns a count of the number of reads that were delayed as a + result of waiting for a pending read. + +What: /sys/fs/incremental-fs/instances/[name]/reads_delayed_pending_us +Date: April 2021 +Contact: Paul Lawrence +Description: Returns total delay time for all files since first mount as a + result of waiting for a pending read. + +What: /sys/fs/incremental-fs/instances/[name]/reads_failed_hash_verification +Date: April 2021 +Contact: Paul Lawrence +Description: Returns number of reads that failed because of hash verification + failures. + +What: /sys/fs/incremental-fs/instances/[name]/reads_failed_other +Date: April 2021 +Contact: Paul Lawrence +Description: Returns number of reads that failed for reasons other than + timing out or hash failures. + +What: /sys/fs/incremental-fs/instances/[name]/reads_failed_timed_out +Date: April 2021 +Contact: Paul Lawrence +Description: Returns number of reads that timed out. diff --git a/Documentation/admin-guide/bootconfig.rst b/Documentation/admin-guide/bootconfig.rst index 9b90efcc3a35..2400b1ed886c 100644 --- a/Documentation/admin-guide/bootconfig.rst +++ b/Documentation/admin-guide/bootconfig.rst @@ -89,13 +89,35 @@ you can use ``+=`` operator. For example:: In this case, the key ``foo`` has ``bar``, ``baz`` and ``qux``. -However, a sub-key and a value can not co-exist under a parent key. -For example, following config is NOT allowed.:: +Moreover, sub-keys and a value can coexist under a parent key. +For example, following config is allowed.:: foo = value1 - foo.bar = value2 # !ERROR! subkey "bar" and value "value1" can NOT co-exist - foo.bar := value2 # !ERROR! even with the override operator, this is NOT allowed. + foo.bar = value2 + foo := value3 # This will update foo's value. +Note, since there is no syntax to put a raw value directly under a +structured key, you have to define it outside of the brace. For example:: + + foo { + bar = value1 + bar { + baz = value2 + qux = value3 + } + } + +Also, the order of the value node under a key is fixed. If there +are a value and subkeys, the value is always the first child node +of the key. Thus if user specifies subkeys first, e.g.:: + + foo.bar = value1 + foo = value2 + +In the program (and /proc/bootconfig), it will be shown as below:: + + foo = value2 + foo.bar = value1 Comments -------- diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt index 72f2b974b6d1..ed42c3bad107 100644 --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt @@ -289,6 +289,12 @@ do not want to use tracing_snapshot_alloc() as it needs to be done where GFP_KERNEL allocations are allowed. + allow_file_spec_access + Allow speculative faults on file backed pages. + Speculative faults are enabled only for those vm_ops + that implement and return true for allow_speculation + callback. + allow_mismatched_32bit_el0 [ARM64] Allow execve() of 32-bit applications and setting of the PER_LINUX32 personality on systems where only a strict @@ -4677,10 +4683,6 @@ (that will set all pages holding image data during restoration read-only). - reap_mem_when_killed_by= - The name of a process, the kill signal from which to a process - make its memory reaped with oom reaper. - retain_initrd [RAM] Keep initrd memory after extraction rfkill.default_state= diff --git a/Documentation/admin-guide/mm/userfaultfd.rst b/Documentation/admin-guide/mm/userfaultfd.rst index 3aa38e8b8361..6528036093e1 100644 --- a/Documentation/admin-guide/mm/userfaultfd.rst +++ b/Documentation/admin-guide/mm/userfaultfd.rst @@ -77,7 +77,8 @@ events, except page fault notifications, may be generated: - ``UFFD_FEATURE_MINOR_HUGETLBFS`` indicates that the kernel supports ``UFFDIO_REGISTER_MODE_MINOR`` registration for hugetlbfs virtual memory - areas. + areas. ``UFFD_FEATURE_MINOR_SHMEM`` is the analogous feature indicating + support for shmem virtual memory areas. The userland application should set the feature flags it intends to use when invoking the ``UFFDIO_API`` ioctl, to request that those features be diff --git a/Documentation/arm/memory.rst b/Documentation/arm/memory.rst index 0521b4ce5c96..34bb23c44a71 100644 --- a/Documentation/arm/memory.rst +++ b/Documentation/arm/memory.rst @@ -45,9 +45,14 @@ fffe8000 fffeffff DTCM mapping area for platforms with fffe0000 fffe7fff ITCM mapping area for platforms with ITCM mounted inside the CPU. -ffc00000 ffefffff Fixmap mapping region. Addresses provided +ffc80000 ffefffff Fixmap mapping region. Addresses provided by fix_to_virt() will be located here. +ffc00000 ffc7ffff Guard region + +ff800000 ffbfffff Permanent, fixed read-only mapping of the + firmware provided DT blob + fee00000 feffffff Mapping of PCI I/O space. This is a static mapping within the vmalloc space. diff --git a/Documentation/crypto/api-skcipher.rst b/Documentation/crypto/api-skcipher.rst index 1aaf8985894b..04d6cc5357c8 100644 --- a/Documentation/crypto/api-skcipher.rst +++ b/Documentation/crypto/api-skcipher.rst @@ -28,8 +28,8 @@ Symmetric Key Cipher Request Handle Single Block Cipher API ----------------------- -.. kernel-doc:: include/linux/crypto.h +.. kernel-doc:: include/crypto/internal/cipher.h :doc: Single Block Cipher API -.. kernel-doc:: include/linux/crypto.h +.. kernel-doc:: include/crypto/internal/cipher.h :functions: crypto_alloc_cipher crypto_free_cipher crypto_has_cipher crypto_cipher_blocksize crypto_cipher_setkey crypto_cipher_encrypt_one crypto_cipher_decrypt_one diff --git a/Documentation/dev-tools/kasan.rst b/Documentation/dev-tools/kasan.rst index 09e3d21c740c..075ef8e17b64 100644 --- a/Documentation/dev-tools/kasan.rst +++ b/Documentation/dev-tools/kasan.rst @@ -161,6 +161,15 @@ particular KASAN features. - ``kasan=off`` or ``=on`` controls whether KASAN is enabled (default: ``on``). +- ``kasan.mode=sync`` or ``=async`` controls whether KASAN is configured in + synchronous or asynchronous mode of execution (default: ``sync``). + Synchronous mode: a bad access is detected immediately when a tag + check fault occurs. + Asynchronous mode: a bad access detection is delayed. When a tag check + fault occurs, the information is stored in hardware (in the TFSR_EL1 + register for arm64). The kernel periodically checks the hardware and + only reports tag faults during these checks. + - ``kasan.stacktrace=off`` or ``=on`` disables or enables alloc and free stack traces collection (default: ``on``). diff --git a/Documentation/devicetree/bindings/connector/usb-connector.yaml b/Documentation/devicetree/bindings/connector/usb-connector.yaml index acc90ba891f0..e4cf07ab5744 100644 --- a/Documentation/devicetree/bindings/connector/usb-connector.yaml +++ b/Documentation/devicetree/bindings/connector/usb-connector.yaml @@ -131,6 +131,17 @@ properties: maxItems: 6 $ref: /schemas/types.yaml#/definitions/uint32-array + sink-vdos-v1: + description: An array of u32 with each entry, a Vendor Defined Message Object (VDO), + providing additional information corresponding to the product, the detailed bit + definitions and the order of each VDO can be found in + "USB Power Delivery Specification Revision 2.0, Version 1.3" chapter 6.4.4.3.1 Discover + Identity. User can specify the VDO array via VDO_IDH/_CERT/_PRODUCT/_CABLE/_AMA defined in + dt-bindings/usb/pd.h. + minItems: 3 + maxItems: 6 + $ref: /schemas/types.yaml#/definitions/uint32-array + op-sink-microwatt: description: Sink required operating power in microwatt, if source can't offer the power, Capability Mismatch is set. Required for power sink and @@ -178,6 +189,20 @@ properties: $ref: /schemas/types.yaml#/definitions/uint32 enum: [1, 2, 3] + slow-charger-loop: + description: Allows PMIC charger loops which are slow(i.e. cannot meet the 15ms deadline) to + still comply to pSnkStby i.e Maximum power that can be consumed by sink while in Sink Standby + state as defined in 7.4.2 Sink Electrical Parameters of USB Power Delivery Specification + Revision 3.0, Version 1.2. When the property is set, the port requests pSnkStby(2.5W - + 5V@500mA) upon entering SNK_DISCOVERY(instead of 3A or the 1.5A, Rp current advertised, during + SNK_DISCOVERY) and the actual currrent limit after reception of PS_Ready for PD link or during + SNK_READY for non-pd link. + type: boolean + +dependencies: + sink-vdos-v1: [ 'sink-vdos' ] + sink-vdos: [ 'sink-vdos-v1' ] + required: - compatible diff --git a/Documentation/devicetree/bindings/media/renesas,vin.yaml b/Documentation/devicetree/bindings/media/renesas,vin.yaml index ad2fe660364b..c69cf8d0cb15 100644 --- a/Documentation/devicetree/bindings/media/renesas,vin.yaml +++ b/Documentation/devicetree/bindings/media/renesas,vin.yaml @@ -278,23 +278,35 @@ required: - interrupts - clocks - power-domains - - resets -if: - properties: - compatible: - contains: - enum: - - renesas,vin-r8a7778 - - renesas,vin-r8a7779 - - renesas,rcar-gen2-vin -then: - required: - - port -else: - required: - - renesas,id - - ports +allOf: + - if: + not: + properties: + compatible: + contains: + enum: + - renesas,vin-r8a7778 + - renesas,vin-r8a7779 + then: + required: + - resets + + - if: + properties: + compatible: + contains: + enum: + - renesas,vin-r8a7778 + - renesas,vin-r8a7779 + - renesas,rcar-gen2-vin + then: + required: + - port + else: + required: + - renesas,id + - ports additionalProperties: false diff --git a/Documentation/devicetree/bindings/serial/8250.yaml b/Documentation/devicetree/bindings/serial/8250.yaml index c1d4c196f005..460cb546c54a 100644 --- a/Documentation/devicetree/bindings/serial/8250.yaml +++ b/Documentation/devicetree/bindings/serial/8250.yaml @@ -93,11 +93,6 @@ properties: - mediatek,mt7622-btif - mediatek,mt7623-btif - const: mediatek,mtk-btif - - items: - - enum: - - mediatek,mt7622-btif - - mediatek,mt7623-btif - - const: mediatek,mtk-btif - items: - const: mrvl,mmp-uart - const: intel,xscale-uart diff --git a/Documentation/devicetree/bindings/serial/st,stm32-uart.yaml b/Documentation/devicetree/bindings/serial/st,stm32-uart.yaml index 06d5f251ec88..51f390e5c276 100644 --- a/Documentation/devicetree/bindings/serial/st,stm32-uart.yaml +++ b/Documentation/devicetree/bindings/serial/st,stm32-uart.yaml @@ -77,7 +77,8 @@ required: - interrupts - clocks -additionalProperties: false +additionalProperties: + type: object examples: - | diff --git a/Documentation/dontdiff b/Documentation/dontdiff index e361fc95ca29..82e3eee7363b 100644 --- a/Documentation/dontdiff +++ b/Documentation/dontdiff @@ -178,6 +178,7 @@ mktables mktree mkutf8data modpost +modules-only.symvers modules.builtin modules.builtin.modinfo modules.nsdeps diff --git a/Documentation/driver-api/xilinx/eemi.rst b/Documentation/driver-api/xilinx/eemi.rst index 9dcbc6f18d75..c1bc47b9000d 100644 --- a/Documentation/driver-api/xilinx/eemi.rst +++ b/Documentation/driver-api/xilinx/eemi.rst @@ -16,35 +16,8 @@ components running across different processing clusters on a chip or device to communicate with a power management controller (PMC) on a device to issue or respond to power management requests. -EEMI ops is a structure containing all eemi APIs supported by Zynq MPSoC. -The zynqmp-firmware driver maintain all EEMI APIs in zynqmp_eemi_ops -structure. Any driver who want to communicate with PMC using EEMI APIs -can call zynqmp_pm_get_eemi_ops(). - -Example of EEMI ops:: - - /* zynqmp-firmware driver maintain all EEMI APIs */ - struct zynqmp_eemi_ops { - int (*get_api_version)(u32 *version); - int (*query_data)(struct zynqmp_pm_query_data qdata, u32 *out); - }; - - static const struct zynqmp_eemi_ops eemi_ops = { - .get_api_version = zynqmp_pm_get_api_version, - .query_data = zynqmp_pm_query_data, - }; - -Example of EEMI ops usage:: - - static const struct zynqmp_eemi_ops *eemi_ops; - u32 ret_payload[PAYLOAD_ARG_CNT]; - int ret; - - eemi_ops = zynqmp_pm_get_eemi_ops(); - if (IS_ERR(eemi_ops)) - return PTR_ERR(eemi_ops); - - ret = eemi_ops->query_data(qdata, ret_payload); +Any driver who wants to communicate with PMC using EEMI APIs use the +functions provided for each function. IOCTL ------ diff --git a/Documentation/filesystems/f2fs.rst b/Documentation/filesystems/f2fs.rst index 35ed01a5fbc9..992bf91eeec8 100644 --- a/Documentation/filesystems/f2fs.rst +++ b/Documentation/filesystems/f2fs.rst @@ -110,6 +110,12 @@ background_gc=%s Turn on/off cleaning operations, namely garbage on synchronous garbage collection running in background. Default value for this option is on. So garbage collection is on by default. +gc_merge When background_gc is on, this option can be enabled to + let background GC thread to handle foreground GC requests, + it can eliminate the sluggish issue caused by slow foreground + GC operation when GC is triggered from a process with limited + I/O and CPU resources. +nogc_merge Disable GC merge feature. disable_roll_forward Disable the roll-forward recovery routine norecovery Disable the roll-forward recovery routine, mounted read- only (i.e., -o ro,disable_roll_forward) @@ -813,6 +819,14 @@ Compression implementation * chattr +c file * chattr +c dir; touch dir/file * mount w/ -o compress_extension=ext; touch file.ext + * mount w/ -o compress_extension=*; touch any_file + +- At this point, compression feature doesn't expose compressed space to user + directly in order to guarantee potential data updates later to the space. + Instead, the main goal is to reduce data writes to flash disk as much as + possible, resulting in extending disk life time as well as relaxing IO + congestion. Alternatively, we've added ioctl interface to reclaim compressed + space and show it to user after putting the immutable bit. Compress metadata layout:: diff --git a/Documentation/filesystems/incfs.rst b/Documentation/filesystems/incfs.rst new file mode 100644 index 000000000000..03ae39ec72dc --- /dev/null +++ b/Documentation/filesystems/incfs.rst @@ -0,0 +1,82 @@ +.. SPDX-License-Identifier: GPL-2.0 + +================================================= +incfs: A stacked incremental filesystem for Linux +================================================= + +/sys/fs interface +================= + +Please update Documentation/ABI/testing/sys-fs-incfs if you update this +section. + +incfs creates the following files in /sys/fs. + +Features +-------- + +/sys/fs/incremental-fs/features/corefs + Reads 'supported'. Always present. + +/sys/fs/incremental-fs/features/v2 + Reads 'supported'. Present if all v2 features of incfs are supported. These + are: + fs-verity support + inotify support + ioclts: + INCFS_IOC_SET_READ_TIMEOUTS + INCFS_IOC_GET_READ_TIMEOUTS + INCFS_IOC_GET_BLOCK_COUNT + INCFS_IOC_CREATE_MAPPED_FILE + .incomplete folder + .blocks_written pseudo file + report_uid mount option + +/sys/fs/incremental-fs/features/zstd + Reads 'supported'. Present if zstd compression is supported for data blocks. + +Optional per mount +------------------ + +For each incfs mount, the mount option sysfs_name=[name] creates a /sys/fs +node called: + +/sys/fs/incremental-fs/instances/[name] + +This will contain the following files: + +/sys/fs/incremental-fs/instances/[name]/reads_delayed_min + Returns a count of the number of reads that were delayed as a result of the + per UID read timeouts min time setting. + +/sys/fs/incremental-fs/instances/[name]/reads_delayed_min_us + Returns total delay time for all files since first mount as a result of the + per UID read timeouts min time setting. + +/sys/fs/incremental-fs/instances/[name]/reads_delayed_pending + Returns a count of the number of reads that were delayed as a result of + waiting for a pending read. + +/sys/fs/incremental-fs/instances/[name]/reads_delayed_pending_us + Returns total delay time for all files since first mount as a result of + waiting for a pending read. + +/sys/fs/incremental-fs/instances/[name]/reads_failed_hash_verification + Returns number of reads that failed because of hash verification failures. + +/sys/fs/incremental-fs/instances/[name]/reads_failed_other + Returns number of reads that failed for reasons other than timing out or + hash failures. + +/sys/fs/incremental-fs/instances/[name]/reads_failed_timed_out + Returns number of reads that timed out. + +For reads_delayed_*** settings, note that a file can count for both +reads_delayed_min and reads_delayed_pending if incfs first waits for a pending +read then has to wait further for the min time. In that case, the time spent +waiting is split between reads_delayed_pending_us, which is increased by the +time spent waiting for the pending read, and reads_delayed_min_us, which is +increased by the remainder of the time spent waiting. + +Reads that timed out are not added to the reads_delayed_pending or the +reads_delayed_pending_us counters. diff --git a/Documentation/powerpc/syscall64-abi.rst b/Documentation/powerpc/syscall64-abi.rst index cf9b2857c72a..d8242049bdcb 100644 --- a/Documentation/powerpc/syscall64-abi.rst +++ b/Documentation/powerpc/syscall64-abi.rst @@ -96,6 +96,16 @@ auxiliary vector. scv 0 syscalls will always behave as PPC_FEATURE2_HTM_NOSC. +ptrace +------ +When ptracing system calls (PTRACE_SYSCALL), the pt_regs.trap value contains +the system call type that can be used to distinguish between sc and scv 0 +system calls, and the different register conventions can be accounted for. + +If the value of (pt_regs.trap & 0xfff0) is 0xc00 then the system call was +performed with the sc instruction, if it is 0x3000 then the system call was +performed with the scv 0 instruction. + vsyscall ======== diff --git a/Documentation/sphinx/parse-headers.pl b/Documentation/sphinx/parse-headers.pl index 1910079f984f..b063f2f1cfb2 100755 --- a/Documentation/sphinx/parse-headers.pl +++ b/Documentation/sphinx/parse-headers.pl @@ -1,4 +1,4 @@ -#!/usr/bin/perl +#!/usr/bin/env perl use strict; use Text::Tabs; use Getopt::Long; diff --git a/Documentation/target/tcm_mod_builder.py b/Documentation/target/tcm_mod_builder.py index 1548d8420499..54492aa813b9 100755 --- a/Documentation/target/tcm_mod_builder.py +++ b/Documentation/target/tcm_mod_builder.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/env python # The TCM v4 multi-protocol fabric module generation script for drivers/target/$NEW_MOD # # Copyright (c) 2010 Rising Tide Systems diff --git a/Documentation/trace/postprocess/decode_msr.py b/Documentation/trace/postprocess/decode_msr.py index 0ab40e0db580..aa9cc7abd5c2 100644 --- a/Documentation/trace/postprocess/decode_msr.py +++ b/Documentation/trace/postprocess/decode_msr.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/env python # add symbolic names to read_msr / write_msr in trace # decode_msr msr-index.h < trace import sys diff --git a/Documentation/trace/postprocess/trace-pagealloc-postprocess.pl b/Documentation/trace/postprocess/trace-pagealloc-postprocess.pl index 0a120aae33ce..b9b7d80c2f9d 100644 --- a/Documentation/trace/postprocess/trace-pagealloc-postprocess.pl +++ b/Documentation/trace/postprocess/trace-pagealloc-postprocess.pl @@ -1,4 +1,4 @@ -#!/usr/bin/perl +#!/usr/bin/env perl # This is a POC (proof of concept or piece of crap, take your pick) for reading the # text representation of trace output related to page allocation. It makes an attempt # to extract some high-level information on what is going on. The accuracy of the parser diff --git a/Documentation/trace/postprocess/trace-vmscan-postprocess.pl b/Documentation/trace/postprocess/trace-vmscan-postprocess.pl index 995da15b16ca..2f4e39875fb3 100644 --- a/Documentation/trace/postprocess/trace-vmscan-postprocess.pl +++ b/Documentation/trace/postprocess/trace-vmscan-postprocess.pl @@ -1,4 +1,4 @@ -#!/usr/bin/perl +#!/usr/bin/env perl # This is a POC for reading the text representation of trace output related to # page reclaim. It makes an attempt to extract some high-level information on # what is going on. The accuracy of the parser may vary diff --git a/Documentation/userspace-api/media/v4l/ext-ctrls-colorimetry.rst b/Documentation/userspace-api/media/v4l/ext-ctrls-colorimetry.rst index 862f78b41b32..1e7265155715 100644 --- a/Documentation/userspace-api/media/v4l/ext-ctrls-colorimetry.rst +++ b/Documentation/userspace-api/media/v4l/ext-ctrls-colorimetry.rst @@ -20,3 +20,74 @@ Colorimetry Control IDs The Colorimetry class descriptor. Calling :ref:`VIDIOC_QUERYCTRL` for this control will return a description of this control class. + +``V4L2_CID_COLORIMETRY_HDR10_CLL_INFO (struct)`` + The Content Light Level defines upper bounds for the nominal target + brightness light level of the pictures. + +.. c:type:: v4l2_ctrl_hdr10_cll_info + +.. cssclass:: longtable + +.. flat-table:: struct v4l2_ctrl_hdr10_cll_info + :header-rows: 0 + :stub-columns: 0 + :widths: 1 1 2 + + * - __u16 + - ``max_content_light_level`` + - The upper bound for the maximum light level among all individual + samples for the pictures of a video sequence, cd/m\ :sup:`2`. + When equal to 0 no such upper bound is present. + * - __u16 + - ``max_pic_average_light_level`` + - The upper bound for the maximum average light level among the + samples for any individual picture of a video sequence, + cd/m\ :sup:`2`. When equal to 0 no such upper bound is present. + +``V4L2_CID_COLORIMETRY_HDR10_MASTERING_DISPLAY (struct)`` + The mastering display defines the color volume (the color primaries, + white point and luminance range) of a display considered to be the + mastering display for the current video content. + +.. c:type:: v4l2_ctrl_hdr10_mastering_display + +.. cssclass:: longtable + +.. flat-table:: struct v4l2_ctrl_hdr10_mastering_display + :header-rows: 0 + :stub-columns: 0 + :widths: 1 1 2 + + * - __u16 + - ``display_primaries_x[3]`` + - Specifies the normalized x chromaticity coordinate of the color + primary component c of the mastering display in increments of 0.00002. + For describing the mastering display that uses Red, Green and Blue + color primaries, index value c equal to 0 corresponds to the Green + primary, c equal to 1 corresponds to Blue primary and c equal to 2 + corresponds to the Red color primary. + * - __u16 + - ``display_primaries_y[3]`` + - Specifies the normalized y chromaticity coordinate of the color + primary component c of the mastering display in increments of 0.00002. + For describing the mastering display that uses Red, Green and Blue + color primaries, index value c equal to 0 corresponds to the Green + primary, c equal to 1 corresponds to Blue primary and c equal to 2 + corresponds to Red color primary. + * - __u16 + - ``white_point_x`` + - Specifies the normalized x chromaticity coordinate of the white + point of the mastering display in increments of 0.00002. + * - __u16 + - ``white_point_y`` + - Specifies the normalized y chromaticity coordinate of the white + point of the mastering display in increments of 0.00002. + * - __u32 + - ``max_luminance`` + - Specifies the nominal maximum display luminance of the mastering + display in units of 0.0001 cd/m\ :sup:`2`. + * - __u32 + - ``min_luminance`` + - specifies the nominal minimum display luminance of the mastering + display in units of 0.0001 cd/m\ :sup:`2`. diff --git a/Documentation/userspace-api/media/v4l/subdev-formats.rst b/Documentation/userspace-api/media/v4l/subdev-formats.rst index c9b7bb3ca089..eff6727c69d3 100644 --- a/Documentation/userspace-api/media/v4l/subdev-formats.rst +++ b/Documentation/userspace-api/media/v4l/subdev-formats.rst @@ -1567,8 +1567,8 @@ The following tables list existing packed RGB formats. - MEDIA_BUS_FMT_RGB101010_1X30 - 0x1018 - - - 0 - - 0 + - + - - r\ :sub:`9` - r\ :sub:`8` - r\ :sub:`7` diff --git a/Documentation/userspace-api/media/v4l/vidioc-g-ext-ctrls.rst b/Documentation/userspace-api/media/v4l/vidioc-g-ext-ctrls.rst index 672f82de2b64..b1851102c703 100644 --- a/Documentation/userspace-api/media/v4l/vidioc-g-ext-ctrls.rst +++ b/Documentation/userspace-api/media/v4l/vidioc-g-ext-ctrls.rst @@ -184,6 +184,14 @@ still cause this situation. - ``p_area`` - A pointer to a struct :c:type:`v4l2_area`. Valid if this control is of type ``V4L2_CTRL_TYPE_AREA``. + * - struct :c:type:`v4l2_ctrl_hdr10_cll_info` * + - ``p_hdr10_cll`` + - A pointer to a struct :c:type:`v4l2_ctrl_hdr10_cll_info`. Valid if this control is + of type ``V4L2_CTRL_TYPE_HDR10_CLL_INFO``. + * - struct :c:type:`v4l2_ctrl_hdr10_mastering_display` * + - ``p_hdr10_mastering`` + - A pointer to a struct :c:type:`v4l2_ctrl_hdr10_mastering_display`. Valid if this control is + of type ``V4L2_CTRL_TYPE_HDR10_MASTERING_DISPLAY``. * - void * - ``ptr`` - A pointer to a compound type which can be an N-dimensional array diff --git a/Documentation/userspace-api/media/videodev2.h.rst.exceptions b/Documentation/userspace-api/media/videodev2.h.rst.exceptions index 121e396a2779..58880328d8c5 100644 --- a/Documentation/userspace-api/media/videodev2.h.rst.exceptions +++ b/Documentation/userspace-api/media/videodev2.h.rst.exceptions @@ -145,6 +145,8 @@ replace symbol V4L2_CTRL_TYPE_HEVC_SPS :c:type:`v4l2_ctrl_type` replace symbol V4L2_CTRL_TYPE_HEVC_PPS :c:type:`v4l2_ctrl_type` replace symbol V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS :c:type:`v4l2_ctrl_type` replace symbol V4L2_CTRL_TYPE_AREA :c:type:`v4l2_ctrl_type` +replace symbol V4L2_CTRL_TYPE_HDR10_CLL_INFO :c:type:`v4l2_ctrl_type` +replace symbol V4L2_CTRL_TYPE_HDR10_MASTERING_DISPLAY :c:type:`v4l2_ctrl_type` # V4L2 capability defines replace define V4L2_CAP_VIDEO_CAPTURE device-capabilities diff --git a/Documentation/userspace-api/seccomp_filter.rst b/Documentation/userspace-api/seccomp_filter.rst index bd9165241b6c..6efb41cc8072 100644 --- a/Documentation/userspace-api/seccomp_filter.rst +++ b/Documentation/userspace-api/seccomp_filter.rst @@ -250,14 +250,14 @@ Users can read via ``ioctl(SECCOMP_IOCTL_NOTIF_RECV)`` (or ``poll()``) on a seccomp notification fd to receive a ``struct seccomp_notif``, which contains five members: the input length of the structure, a unique-per-filter ``id``, the ``pid`` of the task which triggered this request (which may be 0 if the -task is in a pid ns not visible from the listener's pid namespace), a ``flags`` -member which for now only has ``SECCOMP_NOTIF_FLAG_SIGNALED``, representing -whether or not the notification is a result of a non-fatal signal, and the -``data`` passed to seccomp. Userspace can then make a decision based on this -information about what to do, and ``ioctl(SECCOMP_IOCTL_NOTIF_SEND)`` a -response, indicating what should be returned to userspace. The ``id`` member of -``struct seccomp_notif_resp`` should be the same ``id`` as in ``struct -seccomp_notif``. +task is in a pid ns not visible from the listener's pid namespace). The +notification also contains the ``data`` passed to seccomp, and a filters flag. +The structure should be zeroed out prior to calling the ioctl. + +Userspace can then make a decision based on this information about what to do, +and ``ioctl(SECCOMP_IOCTL_NOTIF_SEND)`` a response, indicating what should be +returned to userspace. The ``id`` member of ``struct seccomp_notif_resp`` should +be the same ``id`` as in ``struct seccomp_notif``. It is worth noting that ``struct seccomp_data`` contains the values of register arguments to the syscall, but does not contain pointers to memory. The task's diff --git a/MAINTAINERS b/MAINTAINERS index db2a3dfb063d..354831907474 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -6694,6 +6694,7 @@ F: Documentation/filesystems/f2fs.rst F: fs/f2fs/ F: include/linux/f2fs_fs.h F: include/trace/events/f2fs.h +F: include/uapi/linux/f2fs.h F71805F HARDWARE MONITORING DRIVER M: Jean Delvare diff --git a/Makefile b/Makefile index 304ff6add2c7..4063ee2d4031 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 10 -SUBLEVEL = 31 +SUBLEVEL = 42 EXTRAVERSION = NAME = Dare mighty things @@ -449,7 +449,6 @@ OBJCOPY = llvm-objcopy OBJDUMP = llvm-objdump READELF = llvm-readelf STRIP = llvm-strip -KBUILD_HOSTLDFLAGS += -fuse-ld=lld --rtlib=compiler-rt else CC = $(CROSS_COMPILE)gcc LD = $(CROSS_COMPILE)ld @@ -792,16 +791,16 @@ KBUILD_CFLAGS += -Wno-gnu KBUILD_CFLAGS += -mno-global-merge else -# These warnings generated too much noise in a regular build. -# Use make W=1 to enable them (see scripts/Makefile.extrawarn) -KBUILD_CFLAGS += -Wno-unused-but-set-variable - # Warn about unmarked fall-throughs in switch statement. # Disabled for clang while comment to attribute conversion happens and # https://github.com/ClangBuiltLinux/linux/issues/636 is discussed. KBUILD_CFLAGS += $(call cc-option,-Wimplicit-fallthrough,) endif +# These warnings generated too much noise in a regular build. +# Use make W=1 to enable them (see scripts/Makefile.extrawarn) +KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable) + KBUILD_CFLAGS += $(call cc-disable-warning, unused-const-variable) ifdef CONFIG_FRAME_POINTER KBUILD_CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls @@ -1567,7 +1566,7 @@ endif # CONFIG_MODULES # make distclean Remove editor backup files, patch leftover files and the like # Directories & files removed with 'make clean' -CLEAN_FILES += include/ksym vmlinux.symvers \ +CLEAN_FILES += include/ksym vmlinux.symvers modules-only.symvers \ modules.builtin modules.builtin.modinfo modules.nsdeps \ compile_commands.json diff --git a/android/abi_gki_aarch64.xml b/android/abi_gki_aarch64.xml index 8abf1fe4098c..5765c9ea961e 100644 --- a/android/abi_gki_aarch64.xml +++ b/android/abi_gki_aarch64.xml @@ -1,78 +1,87 @@ - - - - + + + + - - + + - + + + + + - - - - - - - + + + + + + + + - - - - + + + + - - + + + - - - + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + + @@ -80,22 +89,23 @@ - + - + - + - + - - - - - - - + + + + + + + + @@ -103,124 +113,290 @@ - + + + - + - + - - + + - - - - + + + + + - - - + + + - - - - - + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - + + + + + - - - + + + - - - - - - - + + + + + + + + + - - - - - - - - - - + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - + + + @@ -228,21 +404,22 @@ - + - - - - - - - - - + + + + + + + + + + @@ -265,11 +442,11 @@ - - - - - + + + + + @@ -279,31 +456,34 @@ - + + + + - + - + - - - - + + + + - + - - - - + + + + - + - - + + @@ -314,42 +494,48 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + + @@ -357,650 +543,732 @@ - - - - + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + - + - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - + - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - - + + + + - + - + - - - - + + + + - - + + - - - - - - - + + + + + + + - - - - - - - - + + + + + + + + - + + + - - - - + + + + + + - - - - - - + + + + + + + - - - + + + - + + - - + + - - + + - - - + + + + + + - + + + - + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1008,528 +1276,581 @@ + + + - - - - - - - - + + + + + + + + + - + - - - - - + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - + + + + + + + - - - - - + + + + + + - + - - - - + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - + + + + - + - - - + + + + + - - + + - + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + - + - + - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - + + + + + - + - - - - + + + + - - - - + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - + + + + + - - + + + - + - + + + - + - + - - - - - - + + + + + + + - - - - - - - - - - - + + + + + + + + + + + @@ -1546,108 +1867,116 @@ - - - + + + - - - - - - - - + + + + + + + + + - - - + + + + + + - + + + + - - - - - + + + + + + - - - + + + - + - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - - - - + + + + + - + - - - - - + + + + + @@ -1656,69 +1985,78 @@ + + + + + - - + + - - + + - - + + - - - - - - - - - - + + + + + + + + + + + - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + @@ -1732,11 +2070,11 @@ - - + + - - + + @@ -1747,270 +2085,295 @@ - - - + + + - - - - + + + + - - - - + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - + + + + + + - - + + - - - - + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - - + + + + + + + + + + - + + - - + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + - - + + + + - + - + + + + + - - - - - + + + + + - - + - + - - - + + + + - + - - - - + + + + - - - - - - + + + + + + - - - - - - - - - - + + + + + + + + + + + + + + - + + - + @@ -2029,30 +2392,32 @@ - - - - - - + + + + + + + - - - - - + + + + + - - + + - - - - + + + + + @@ -2065,41 +2430,54 @@ - - - - - - - + + + + + + + + + + + + + + + + - + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + @@ -2127,148 +2505,166 @@ - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - + - + + + @@ -2278,357 +2674,406 @@ - - - - + + + + - + - - - - + + + + - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + + - - + + - + @@ -2638,45 +3083,51 @@ - - - + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - + - - - - - + + + + + + + + - + @@ -2686,15 +3137,18 @@ + + + @@ -2709,587 +3163,674 @@ + + - + - - - + + + + + + - + + - - - - - - + + + + + + - + - + - + - - + + - - + + - + - - + + - - - - - + + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + - + + - + - - - - + + + + - + + - - + + - - - + + + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - + - + - + + + - - - - - - - - - - - + + + + + + + + + + + - - - - + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - + + + - - - + + + + - + + - + + - - - - - + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - + - - - - + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + @@ -3305,7 +3846,7 @@ - + @@ -3327,12 +3868,14 @@ - - - - - - + + + + + + + + @@ -3340,40 +3883,46 @@ - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + - + - - + + + - + @@ -3384,22 +3933,22 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + @@ -3407,173 +3956,239 @@ + + + - - - - - + + + + + + - + + - + - + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + - - + + + + + + - + + - - - - + + + + + - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - - + + - - + + - - + + - - - - - - - - - - - - + + + + + + + + + + + + - + - - - - - + + + + + - - + + + - + + - - - + + + - + + - + @@ -3585,276 +4200,306 @@ - - - - - + + + + + - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - - - - + + + + - + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - + + + + + + + + + + + + + + - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + + - + - + - - - + + + - - + + - - + + - - - + + + + @@ -3865,72 +4510,90 @@ + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - + + + + - + - - - - - - + + + + + + - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - + + + + + + + + + @@ -3944,27 +4607,35 @@ + + + + + + + + @@ -3973,8 +4644,11 @@ + + + @@ -3982,6 +4656,8 @@ + + @@ -3995,40 +4671,62 @@ + + + + + + + + + + + + + + + + + + + + + + @@ -4037,6 +4735,7 @@ + @@ -4048,9 +4747,13 @@ + + + + @@ -4065,115 +4768,132 @@ + + - + - + + - - - + + + + + + - + - - + + - + - - - + + + + - + + + - + - + - - - - - + + + + + + + - - - + + + - + + - + - - - + + + + - - + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - - - + + + - - + + - - + + + + @@ -4186,15 +4906,18 @@ - - + + + + - + - - - + + + + @@ -4205,8 +4928,8 @@ - - + + @@ -4215,8 +4938,8 @@ - - + + @@ -4227,8 +4950,8 @@ - - + + @@ -4319,46 +5042,46 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -4370,127 +5093,127 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -4509,7 +5232,7 @@ - + @@ -4519,6 +5242,18 @@ + + + + + + + + + + + + @@ -4571,18 +5306,21 @@ - + - + - + - + - + + + + @@ -4773,26 +5511,26 @@ - + - + - + - + - + - + - + - + @@ -4801,6 +5539,7 @@ + @@ -4814,6 +5553,9 @@ + + + @@ -4874,15 +5616,15 @@ - + - + - + - + @@ -4890,7 +5632,7 @@ - + @@ -4900,43 +5642,43 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -4992,6 +5734,7 @@ + @@ -5184,12 +5927,12 @@ - + - + - + @@ -5262,6 +6005,7 @@ + @@ -5294,6 +6038,17 @@ + + + + + + + + + + + @@ -5664,49 +6419,49 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -5732,13 +6487,11 @@ + - - - @@ -5978,7 +6731,7 @@ - + @@ -6104,135 +6857,135 @@ - + - + - + - + - + - + - + - + - + - + - + - - + + - - - - - - - - + + - + - + - + + + + - - - - + - + - + - + - + - + + + + - - - - + - - - - + - + - + - - + + - + - + + + + + + + - - - - + - + - + - + + + + + + + - + - + - + - + - + @@ -6374,18 +7127,18 @@ - + - + - + - + - + @@ -6486,61 +7239,64 @@ - + - + - - + + - + - + - + - + + + + - + - + - + - + - + - + - + - + - + - + - + - + @@ -6572,7 +7328,7 @@ - + @@ -7062,109 +7818,106 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + @@ -7422,7 +8175,7 @@ - + @@ -7468,124 +8221,124 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -7710,42 +8463,45 @@ - + - + - + - + - + - - - - - - - + - + + + + - + - - - - - + + - + + + + + + + + + + @@ -7753,20 +8509,20 @@ - + - + - + - + - + @@ -7787,32 +8543,35 @@ - + - + - + - + - + - + - + + + + - + @@ -8016,7 +8775,7 @@ - + @@ -8029,32 +8788,32 @@ - + - + - + - + - + - + - + - + - + @@ -8112,7 +8871,7 @@ - + @@ -8432,48 +9191,48 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -8499,7 +9258,7 @@ - + @@ -8540,7 +9299,6 @@ - @@ -8567,12 +9325,12 @@ + + + - - - @@ -8710,11 +9468,11 @@ - + - + @@ -8772,45 +9530,45 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -8878,21 +9636,21 @@ - + - + - + - + - + - + @@ -8974,7 +9732,7 @@ - + @@ -8984,16 +9742,16 @@ - + - + - + - + @@ -9214,7 +9972,7 @@ - + @@ -9227,46 +9985,46 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -9295,7 +10053,6 @@ - @@ -9310,11 +10067,11 @@ - + - + @@ -9374,59 +10131,59 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -9477,7 +10234,7 @@ - + @@ -9607,70 +10364,70 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -9826,7 +10583,7 @@ - + @@ -10004,19 +10761,19 @@ - + - + - + - + - + @@ -10061,66 +10818,66 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -10138,10 +10895,10 @@ - + - + @@ -10165,30 +10922,33 @@ - + - + - + - + - + - + - + - + - + + + + @@ -10291,15 +11051,15 @@ - + - + - + - + @@ -10374,6 +11134,9 @@ + + + @@ -10412,6 +11175,9 @@ + + + @@ -10655,35 +11421,35 @@ - + - + - + - + - + - + - + - + - + @@ -10702,79 +11468,79 @@ - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -10818,12 +11584,12 @@ - + - + - + @@ -10956,17 +11722,17 @@ - + - + - + @@ -11065,7 +11831,7 @@ - + @@ -11129,7 +11895,7 @@ - + @@ -11168,84 +11934,84 @@ - + - + - + - - - - + - + - + - + - + - + - - - - - - - - - - + - + - + - + - + - + + + + - + + + + - + - + - + - + - + - + - + + + + + + + @@ -11423,7 +12189,7 @@ - + @@ -11442,86 +12208,89 @@ + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -11534,28 +12303,28 @@ - + - + - + - + - + - + - + @@ -11578,7 +12347,7 @@ - + @@ -11612,6 +12381,9 @@ + + + @@ -11680,7 +12452,7 @@ - + @@ -11738,115 +12510,115 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -11940,9 +12712,6 @@ - - - @@ -12142,7 +12911,7 @@ - + @@ -12164,22 +12933,22 @@ - + - + - + - + - + - + @@ -12215,7 +12984,7 @@ - + @@ -12264,7 +13033,7 @@ - + @@ -12455,7 +13224,7 @@ - + @@ -12475,7 +13244,7 @@ - + @@ -12569,25 +13338,25 @@ - + - + - + - + - + - + - + @@ -12760,7 +13529,7 @@ - + @@ -12776,7 +13545,7 @@ - + @@ -12800,7 +13569,7 @@ - + @@ -12831,40 +13600,40 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -13190,7 +13959,7 @@ - + @@ -13287,61 +14056,61 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -13370,12 +14139,12 @@ - + - + - + @@ -13441,12 +14210,12 @@ - + - + - + @@ -13800,7 +14569,7 @@ - + @@ -13828,119 +14597,119 @@ - + - + - + - + - + - + - + - + - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + - - - - + - + - - + + - - + + - + + + + + + + + + + + + + + + + + + + @@ -14098,21 +14867,21 @@ - + - + - + - + - + - + @@ -14263,12 +15032,12 @@ - + - + @@ -15068,7 +15837,32 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -15418,82 +16212,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -15611,292 +16405,292 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -16147,7 +16941,7 @@ - + @@ -16198,11 +16992,11 @@ - + - + @@ -16214,11 +17008,11 @@ - + - + @@ -16302,10 +17096,13 @@ - + - + + + + @@ -16373,210 +17170,210 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + - - - - - - - + - + + + + + + + - + - - + + - - - - - - - - + + - + - + - + + + + - + - + - - + + - - + + - - + + - + - + - + - - - - - - - + - + + + + - + - + - - - - + - + - + - + - + - + - + - + + + + + + + + + + + + + @@ -16709,65 +17506,65 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -16784,222 +17581,225 @@ - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + + + + + + + + + + + - + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + - + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - + + - + + + + + + + + + + - + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -17061,7 +17861,7 @@ - + @@ -17093,34 +17893,37 @@ - + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + @@ -17203,11 +18006,6 @@ - - - - - @@ -17289,6 +18087,11 @@ + + + + + @@ -17571,7 +18374,7 @@ - + @@ -17587,7 +18390,7 @@ - + @@ -17704,7 +18507,7 @@ - + @@ -17726,51 +18529,51 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -17877,7 +18680,7 @@ - + @@ -17890,22 +18693,22 @@ - + - + - + - + - + - + @@ -17993,36 +18796,36 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -18133,7 +18936,7 @@ - + @@ -18158,59 +18961,59 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -18229,31 +19032,31 @@ - + - + - + - + - + - + - + - + - + @@ -18306,7 +19109,7 @@ - + @@ -18382,79 +19185,79 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -19114,45 +19917,45 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -19453,7 +20256,7 @@ - + @@ -19499,154 +20302,154 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -19675,72 +20478,72 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -19751,41 +20554,41 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -19794,46 +20597,46 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -19877,39 +20680,39 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -20336,6 +21139,9 @@ + + + @@ -20349,7 +21155,7 @@ - + @@ -20486,94 +21292,94 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -20604,6 +21410,9 @@ + + + @@ -20963,7 +21772,7 @@ - + @@ -21830,21 +22639,21 @@ - + - + - + - + - + - + @@ -22131,61 +22940,61 @@ - + - - - - - - - - - - + - + - + - - + + - - + + + + + - + + + + - - - - - - - + - + + + + - + + + + + + + - + - + - + - + @@ -22230,103 +23039,103 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -22377,101 +23186,101 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -22532,12 +23341,12 @@ - + - + - + @@ -22689,27 +23498,27 @@ - + - + - + - + - + - + - + - + @@ -23041,7 +23850,7 @@ - + @@ -23051,135 +23860,135 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -23189,57 +23998,60 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + @@ -23256,7 +24068,7 @@ - + @@ -23284,106 +24096,106 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -23462,12 +24274,12 @@ - + - + - + @@ -23507,12 +24319,12 @@ - + - + - + @@ -23603,8 +24415,8 @@ - - + + @@ -23925,7 +24737,7 @@ - + @@ -23941,49 +24753,49 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -24097,7 +24909,7 @@ - + @@ -24110,19 +24922,19 @@ - + - + - + - + - + @@ -24160,15 +24972,15 @@ - + - + - + - + @@ -24760,24 +25572,24 @@ - + - + - + - + - + - + - + @@ -24785,41 +25597,41 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -25081,7 +25893,14 @@ - + + + + + + + + @@ -25130,89 +25949,89 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -25425,21 +26244,21 @@ - + - + - + - + - + - + @@ -25461,10 +26280,10 @@ - + - + @@ -26232,10 +27051,10 @@ - + @@ -26264,9 +27083,6 @@ - - - @@ -26276,8 +27092,8 @@ - - + + @@ -26736,15 +27552,15 @@ - + - + - + - + @@ -27613,15 +28429,15 @@ - + - + - + - + @@ -27850,21 +28666,21 @@ - + - + - + - + - + - + @@ -27984,24 +28800,24 @@ - + - + - + - + - + - + - + @@ -28112,101 +28928,101 @@ - + - - - - + - - - - - - - + - + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -28234,12 +29050,12 @@ - + - + - + @@ -28253,7 +29069,14 @@ - + + + + + + + + @@ -28423,61 +29246,61 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -28486,13 +29309,13 @@ - + - + - + @@ -28859,11 +29682,10 @@ - - - - - + + + + @@ -28957,6 +29779,7 @@ + @@ -29110,6 +29933,7 @@ + @@ -29144,10 +29968,10 @@ - - + + - + @@ -29162,69 +29986,69 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -29559,21 +30383,21 @@ - + - + - + - + - + - + @@ -29713,7 +30537,7 @@ - + @@ -29741,43 +30565,43 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -30287,9 +31111,9 @@ - + - + @@ -30302,12 +31126,12 @@ - + - + - + @@ -31119,69 +31943,69 @@ - + - + - + - + - + - + - + - + - + - + - + - - - - - + + - - - - - - - + - - - - - - - + - + + + + - + + + + + + + - + + + + + + + @@ -31673,8 +32497,8 @@ - - + + @@ -31699,48 +32523,48 @@ - + - + - + - - - - - - - - + + - + - + - - - - + - + - + + + + - + + + + - + - - + + + + + @@ -31993,72 +32817,72 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -32354,48 +33178,48 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -33928,58 +34752,61 @@ - + - + - + - + - + - - - - - - - + - + + + + - + - - - - - + + - + + + + + + + + + + - + - + - + - + - + @@ -34000,7 +34827,7 @@ - + @@ -34010,16 +34837,16 @@ - + - + - + - + @@ -34164,7 +34991,7 @@ - + @@ -34177,28 +35004,28 @@ - + - + - + - + - + - + - + - + @@ -34438,16 +35265,16 @@ - + - + - + - + @@ -34460,28 +35287,28 @@ - + - + - + - + - + - + - + @@ -34725,7 +35552,7 @@ - + @@ -34819,13 +35646,13 @@ - + - + - + @@ -34881,135 +35708,135 @@ - + - + - + - + - + - + - + - + - + - + - + - - + + - - - - - - - - + + - + - + - + + + + - - - - + - + - + - + - + - + + + + - - - - + - - - - + - + - + - - + + - + - + + + + + + + - - - - + - + - + - + + + + + + + - + - + - + - + - + @@ -35347,7 +36174,7 @@ - + @@ -35366,52 +36193,52 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -35629,56 +36456,56 @@ - + - - - - - - - - - - + - + - + - - + + - - + + + + + - + + + + - - - - - - - + - + + + + - + + + + + + + - + - + - + @@ -35722,7 +36549,7 @@ - + @@ -35816,25 +36643,25 @@ - + - + - + - + - + - + - + @@ -35849,7 +36676,7 @@ - + @@ -35862,22 +36689,22 @@ - + - + - + - + - + - + @@ -35914,65 +36741,65 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -36205,35 +37032,35 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -36708,69 +37535,69 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -36881,20 +37708,20 @@ - + - + - + - + - + - + @@ -36954,21 +37781,21 @@ - + - + - + - + - + - + @@ -37073,61 +37900,64 @@ - + - + - - + + - + - + - + - + + + + - + - + - + - + - + - + - + - + - + - + - + - + @@ -37221,24 +38051,24 @@ - + - + - + - + - + - + - + @@ -37266,7 +38096,7 @@ - + @@ -37324,7 +38154,7 @@ - + @@ -37835,8 +38665,11 @@ + + + - + @@ -38243,7 +39076,24 @@ + + + + + + + + + + + + + + + + + @@ -38882,7 +39732,7 @@ - + @@ -38907,16 +39757,16 @@ - + - + - + - + @@ -39029,15 +39879,15 @@ - - + + - - + + @@ -39233,7 +40083,7 @@ - + @@ -39264,6 +40114,9 @@ + + + @@ -39451,6 +40304,10 @@ + + + + @@ -39649,9 +40506,9 @@ - - - + + + @@ -39746,7 +40603,7 @@ - + @@ -39760,7 +40617,7 @@ - + @@ -39843,6 +40700,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -39943,7 +40829,7 @@ - + @@ -39987,45 +40873,51 @@ + + + + + + - + - + - + - + - + - + - + - + - + - + - + @@ -40073,40 +40965,40 @@ - + - + - + - + - + - + - + - + - + - + @@ -40217,65 +41109,65 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -40345,25 +41237,25 @@ - + - + - + - + - + - + @@ -40510,6 +41402,7 @@ + @@ -40656,6 +41549,9 @@ + + + @@ -40697,18 +41593,18 @@ - - + + - - + + - - - - + + + + @@ -40740,7 +41636,7 @@ - + @@ -40759,22 +41655,22 @@ - + - + - + - + - + - + @@ -40964,128 +41860,135 @@ - - + + - - - - + + + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - + + - - - + + + - - + + - - - + + + - - + + - - - + + + - - + + + + + - - - + + + + + + + + + + + - - + + - - + + + - - - + + + - - - - - - - + + - - + + - - - - - + + + + + - - - - + + + + @@ -41187,6 +42090,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -41294,6 +42285,15 @@ + + + + + + + + + @@ -41425,6 +42425,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -41459,28 +42491,22 @@ - - - - - - - - - - - - - - - - - - + - - + + + + + + + + + + + + + @@ -41502,31 +42528,10 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + + + + @@ -41577,8 +42582,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -41588,6 +42653,7 @@ + @@ -41614,6 +42680,7 @@ + @@ -41659,7 +42726,197 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -41668,6 +42925,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -41984,29 +43270,29 @@ - + - + - - - - + + + + - - - - + + + + - + - + @@ -42069,14 +43355,14 @@ - - - + + + - - - + + + @@ -42100,6 +43386,22 @@ + + + + + + + + + + + + + + + + @@ -42186,6 +43488,13 @@ + + + + + + + @@ -42214,6 +43523,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -42234,28 +43578,71 @@ + + + + + + + + + + - - - - + + + + + - - + + + + + + - - + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -42278,32 +43665,32 @@ - + - + - + - + - + - + - + - + - + @@ -42681,7 +44068,488 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -42693,40 +44561,98 @@ - + + + + + + + + + - + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -42745,40 +44671,55 @@ + - - - - - - + + + + + + + + + + + - - - + + + + + + + + + + - + - - - - - - - + + + + + + + + + @@ -42792,6 +44733,7 @@ + @@ -42800,17 +44742,6960 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -43126,48 +52011,51 @@ - + - + - + - + - + - - - - - - - - - - - - - + - + + + + + + + + + + - - - - + - + + + + + + + + + + - + @@ -43181,253 +52069,254 @@ - - + + - - - + + + - - + + - - - + + + - - + + - - - + + + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -43441,6 +52330,9 @@ + + + @@ -43576,7 +52468,7 @@ - + @@ -43798,7 +52690,7 @@ - + @@ -43811,28 +52703,28 @@ - + - + - + - + - + - + - + - + @@ -43970,6 +52862,8 @@ + + @@ -44008,6 +52902,11 @@ + + + + + @@ -44080,6 +52979,12 @@ + + + + + + @@ -44091,9 +52996,6 @@ - - - @@ -44213,271 +53115,271 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - + + - + - + - + - + - - + + - - - - - + + - + - - - - + - - - - + - + - + - + + + + - + + + + - + - + - + - + - + - + + + + - - - - + - - - - - - - + - + - + + + + + + + - + - + - + - - - - + - + - + + + + - + - + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -44494,34 +53396,34 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -44542,38 +53444,52 @@ - - - + + + - - + + - - - - + + - - - + + + + - - + + + + + + + + + + + + - - - + + + - - - + + + + + + + + @@ -44581,34 +53497,20 @@ - - - + + + + + + + - - + + + - - - - - - - - - - - - - - - - - - - @@ -44660,74 +53562,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -44739,1241 +53574,9 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -46097,6 +53700,10 @@ + + + + @@ -46106,12 +53713,12 @@ - - + + - - + + @@ -46323,6 +53930,10 @@ + + + + @@ -46362,7 +53973,7 @@ - + @@ -46378,13 +53989,13 @@ - + - + - + @@ -46398,63 +54009,63 @@ - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - - - - - - - - - - + + - + + + + + + + + + + @@ -46728,59 +54339,59 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -47016,259 +54627,259 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -47462,31 +55073,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - @@ -47553,7 +55139,6 @@ - @@ -47604,42 +55189,19 @@ - - - - - - - - - - - - - - - - - - - - - - - - + - + @@ -47651,162 +55213,162 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - + - + - + - + - + - + + + + - + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + @@ -47817,15 +55379,15 @@ - + - + - + - + @@ -47846,14 +55408,14 @@ - + - + @@ -47871,18 +55433,18 @@ - + - + - + - + - + @@ -47898,7 +55460,7 @@ - + @@ -48553,14 +56115,14 @@ - + - + - + @@ -48614,6 +56176,12 @@ + + + + + + @@ -48673,6 +56241,11 @@ + + + + + @@ -48803,6 +56376,22 @@ + + + + + + + + + + + + + + + + @@ -48871,6 +56460,7 @@ + @@ -48909,9 +56499,18 @@ - - - + + + + + + + + + + + + @@ -48929,6 +56528,10 @@ + + + + @@ -48967,6 +56570,7 @@ + @@ -48978,8 +56582,27 @@ + + + + + + + + + + + + + + + + + + + @@ -49696,6 +57319,20 @@ + + + + + + + + + + + + + + @@ -49801,20 +57438,6 @@ - - - - - - - - - - - - - - @@ -49863,6 +57486,15 @@ + + + + + + + + + @@ -49881,15 +57513,14 @@ + + + + - - - - - @@ -49921,6 +57552,10 @@ + + + + @@ -49932,6 +57567,12 @@ + + + + + + @@ -49940,20 +57581,6 @@ - - - - - - - - - - - - - - @@ -49989,262 +57616,9 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -50254,7 +57628,7 @@ - + @@ -50303,6 +57677,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -50361,119 +57784,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -50489,75 +57799,103 @@ - - + + - - + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + - - + + - - + + - - - + + + - - - - + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - @@ -50569,156 +57907,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -50744,8 +57932,11 @@ + + + @@ -50755,6 +57946,13 @@ + + + + + + + @@ -50779,6 +57977,15 @@ + + + + + + + + + @@ -50789,6 +57996,14 @@ + + + + + + + + @@ -50832,19 +58047,7 @@ - - - - - - - - - - - - - + @@ -50860,55 +58063,66 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + @@ -50944,21 +58158,42 @@ - + + + + + + + + + + + + - + - + - + + + + + + + + + + + @@ -51012,31 +58247,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - @@ -51051,6 +58261,26 @@ + + + + + + + + + + + + + + + + + + + + @@ -51077,14 +58307,6 @@ - - - - - - - - @@ -51104,7 +58326,6 @@ - @@ -51113,26 +58334,18 @@ + - - - - - - - - - - + @@ -51143,8 +58356,8 @@ - + @@ -51242,6 +58455,9 @@ + + + @@ -51268,6 +58484,19 @@ + + + + + + + + + + + + + @@ -51285,6 +58514,7 @@ + @@ -51407,6 +58637,7 @@ + @@ -51419,15 +58650,12 @@ - - - - - - - - - + + + + + + @@ -51439,6 +58667,16 @@ + + + + + + + + + + @@ -51476,7 +58714,7 @@ - + @@ -51486,13 +58724,13 @@ - + - + - + @@ -51604,185 +58842,185 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - + - + - + - + - + - + + + + - + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + - + - + - + - + - - + + - + - + - + @@ -51792,7 +59030,7 @@ - + @@ -51802,48 +59040,57 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + @@ -51860,58 +59107,58 @@ - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -51973,74 +59220,80 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + @@ -52063,28 +59316,28 @@ - + - + - + - + - + - + - + @@ -52154,12 +59407,12 @@ - - + + - - + + @@ -52176,13 +59429,13 @@ - - - + + + - - + + @@ -52390,6 +59643,11 @@ + + + + + @@ -52401,8 +59659,8 @@ - - + + @@ -52444,14 +59702,14 @@ - + - + - + @@ -52765,7 +60023,7 @@ - + @@ -52778,37 +60036,37 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -53001,6 +60259,400 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -53537,47 +61189,47 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -53746,6 +61398,11 @@ + + + + + @@ -54073,10 +61730,10 @@ - - - - + + + + @@ -54096,82 +61753,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -54202,7 +61859,7 @@ - + @@ -54224,174 +61881,174 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -54461,7 +62118,7 @@ - + @@ -54510,82 +62167,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -54703,11 +62360,11 @@ - + - + @@ -54970,320 +62627,320 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -55360,7 +63017,7 @@ - + @@ -55416,7 +63073,7 @@ - + @@ -55498,7 +63155,7 @@ - + @@ -55514,82 +63171,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -55754,53 +63411,53 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -55842,7 +63499,7 @@ - + @@ -56082,7 +63739,7 @@ - + @@ -56101,7 +63758,7 @@ - + @@ -56713,7 +64370,7 @@ - + @@ -56726,75 +64383,75 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -56810,70 +64467,70 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -57151,7 +64808,7 @@ - + @@ -57215,25 +64872,25 @@ - + - + - + - + - + - + - + @@ -57288,32 +64945,32 @@ - + - + - + - + - + - + - + - + - + @@ -57617,7 +65274,6 @@ - @@ -57656,7 +65312,7 @@ - + @@ -57690,7 +65346,7 @@ - + @@ -57794,14 +65450,14 @@ - + - + - + @@ -57932,7 +65588,7 @@ - + @@ -58252,7 +65908,7 @@ - + @@ -58364,6 +66020,10 @@ + + + + @@ -58376,6 +66036,15 @@ + + + + + + + + + @@ -58438,7 +66107,7 @@ - + @@ -58510,6 +66179,15 @@ + + + + + + + + + @@ -58524,6 +66202,16 @@ + + + + + + + + + + @@ -58537,15 +66225,19 @@ + + + + + + + + + - - - - - @@ -58575,11 +66267,6 @@ - - - - - @@ -58652,53 +66339,53 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -59138,7 +66825,7 @@ - + @@ -59210,7 +66897,7 @@ - + @@ -59283,7 +66970,7 @@ - + @@ -59362,6 +67049,28 @@ + + + + + + + + + + + + + + + + + + + + + + @@ -59465,6 +67174,11 @@ + + + + + @@ -59503,14 +67217,14 @@ - - - - + + + + @@ -59529,6 +67243,10 @@ + + + + @@ -59564,6 +67282,10 @@ + + + + @@ -59588,57 +67310,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -59648,123 +67320,104 @@ - + - + - + + + + + + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -59794,86 +67447,327 @@ - + - + + + + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + + + + - + - + + + + - + - + + + + + + + + + + + + - + - - - - - - - + - + - + - + - - - - + - - - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -60037,1046 +67931,94 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - + - + - + - + - - + + - + - - + + - + - + - + - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - + + @@ -61099,6 +68041,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -61302,328 +68278,328 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -61777,6 +68753,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -61788,104 +68804,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -61990,7 +68908,7 @@ - + @@ -62003,504 +68921,266 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - + - + - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + @@ -62522,160 +69202,160 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -62955,6 +69635,263 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -63019,7 +69956,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -63085,6 +70076,168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -63099,6 +70252,7 @@ + @@ -63107,7 +70261,7 @@ - + @@ -63129,151 +70283,61 @@ - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + @@ -63314,35 +70378,403 @@ - + - - - - - - - + - + - + - - - - + + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -63350,8 +70782,9 @@ - + + @@ -63370,11 +70803,15 @@ + + + + @@ -63389,18 +70826,21 @@ - - + + + + + @@ -63413,19 +70853,25 @@ - - + + + + + + + + @@ -63444,16 +70890,25 @@ + + + + + + + + + @@ -63461,34 +70916,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -63496,13 +70978,26 @@ + + + + + + + + + + + + + @@ -63511,9 +71006,1301 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -63593,26 +72380,26 @@ - + - + - + - + - + - + - + @@ -63652,392 +72439,11 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -64078,7 +72484,7 @@ - + @@ -64100,214 +72506,213 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - @@ -64517,7 +72922,7 @@ - + @@ -64632,34 +73037,34 @@ - + - + - + - + - + - + - + - + - + - + @@ -64710,7 +73115,7 @@ - + @@ -64738,13 +73143,13 @@ - + - + - + @@ -65137,158 +73542,44 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + @@ -65297,99 +73588,76 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - @@ -65398,7 +73666,7 @@ - + @@ -65444,25 +73712,25 @@ - + - + - + - + - + - + - + @@ -65589,11 +73857,6 @@ - - - - - @@ -65601,307 +73864,126 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + - - + + - - + + - - + + - - - - + + + + - - - + + + - - + + - - - + + + - - - - + + + + - - + + - - - - + + + + - - - - - + + + + + - - - + + + - - - - - + + + + + - - - + + + - - + + - - - - + + + + - - - - + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -65953,9 +74035,26 @@ + + + + + + + + + + + + + + + + + @@ -66005,10 +74104,24 @@ + + + + + + + + + + + + + + @@ -66187,17 +74300,17 @@ - + - + - + - + @@ -66209,16 +74322,6 @@ - - - - - - - - - - @@ -66345,6 +74448,10 @@ + + + + @@ -66449,6 +74556,12 @@ + + + + + + @@ -66647,17 +74760,17 @@ - + - + - + - + @@ -66901,23 +75014,23 @@ - + - + - + - + - + - + @@ -66926,19 +75039,19 @@ - + - + - + - + - + @@ -67020,6 +75133,12 @@ + + + + + + @@ -67049,32 +75168,32 @@ - + - + - + - + - + - + - + - + @@ -67338,6 +75457,12 @@ + + + + + + @@ -67711,6 +75836,12 @@ + + + + + + @@ -68022,362 +76153,39 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -68483,6 +76291,12 @@ + + + + + + @@ -68535,6 +76349,7 @@ + @@ -68544,6 +76359,17 @@ + + + + + + + + + + + @@ -68557,6 +76383,12 @@ + + + + + + @@ -68582,6 +76414,11 @@ + + + + + @@ -68628,6 +76465,10 @@ + + + + @@ -68643,6 +76484,24 @@ + + + + + + + + + + + + + + + + + + @@ -68664,6 +76523,1084 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -68674,6 +77611,677 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -68754,6 +78362,12 @@ + + + + + + @@ -69066,12 +78680,18 @@ - - + + + + + + + + - - + + @@ -69096,6 +78716,19 @@ + + + + + + + + + + + + + @@ -69112,6 +78745,13 @@ + + + + + + + @@ -69122,13 +78762,75 @@ - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -69144,79 +78846,527 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -69586,6 +79736,8 @@ + + @@ -69622,6 +79774,10 @@ + + + + @@ -69631,13 +79787,17 @@ + + + + + - @@ -69802,7 +79962,6 @@ - @@ -69818,16 +79977,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -69925,7 +80141,7 @@ - + @@ -70040,34 +80256,34 @@ - + - + - + - + - + - + - + - + - + - + @@ -70102,7 +80318,7 @@ - + @@ -70130,13 +80346,13 @@ - + - + - + @@ -70667,26 +80883,26 @@ - + - + - + - + - + - + @@ -70742,7 +80958,7 @@ - + @@ -70797,13 +81013,13 @@ - + - + - + @@ -70867,7 +81083,7 @@ - + @@ -70922,13 +81138,13 @@ - + - + - + @@ -71318,32 +81534,32 @@ - - + + - - - + + + - - + + - - - - + + + + - - - + + + - - + + @@ -71670,7 +81886,7 @@ - + @@ -72173,9 +82389,9 @@ - - - + + + @@ -72193,19 +82409,19 @@ - - - + + + - - - + + + - - - + + + @@ -72612,20 +82828,20 @@ - + - + - + - + - + @@ -72670,6 +82886,25 @@ + + + + + + + + + + + + + + + + + + + @@ -72680,7 +82915,7 @@ - + @@ -72753,22 +82988,22 @@ - + - + - + - + - + - + @@ -72815,45 +83050,10 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -72881,6 +83081,11 @@ + + + + + @@ -72889,6 +83094,25 @@ + + + + + + + + + + + + + + + + + + + @@ -72905,6 +83129,10 @@ + + + + @@ -73177,211 +83405,211 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -73537,7 +83765,7 @@ - + @@ -73559,22 +83787,22 @@ - + - + - + - + - + - + @@ -73969,7 +84197,7 @@ - + @@ -74051,34 +84279,34 @@ - + - + - + - + - + - + - + - + - + - + @@ -74108,13 +84336,13 @@ - + - + - + @@ -74389,7 +84617,7 @@ - + @@ -74441,25 +84669,25 @@ - + - + - + - + - + - + - + @@ -74496,15 +84724,15 @@ - + - + - + - + @@ -74516,7 +84744,7 @@ - + @@ -74526,28 +84754,28 @@ - + - + - + - + - + - + - + - + @@ -74568,12 +84796,12 @@ - + - + - + @@ -74584,54 +84812,54 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -74660,19 +84888,19 @@ - + - + - + - + - + @@ -74680,57 +84908,57 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -74741,6 +84969,9 @@ + + + @@ -74753,21 +84984,21 @@ - + - + - + - + - + - + @@ -74959,24 +85190,24 @@ - + - + - + - + - + - + - + @@ -75034,12 +85265,12 @@ - + - + - + @@ -75087,42 +85318,42 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -75163,42 +85394,42 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -75218,55 +85449,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -75338,12 +85569,12 @@ - + - + - + @@ -75358,15 +85589,15 @@ - + - + - + - + @@ -75386,7 +85617,7 @@ - + @@ -75438,29 +85669,29 @@ - + - + - + - + - + - + - + - + @@ -75470,19 +85701,19 @@ - + - + - + - + - + @@ -75512,213 +85743,216 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -75807,21 +86041,21 @@ - - + + - - + + - - + + - - - + + + @@ -75880,1601 +86114,78 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + - + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - @@ -77507,86 +86218,414 @@ - + - + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - + + - - + + - - + + - - + + - - - - - + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + @@ -77978,13 +87017,454 @@ - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -78036,6 +87516,1426 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -78099,51 +88999,51 @@ - + - + - - - - - + + - + - - - - + - + - + - - - - + - + - + + + + + + + - + - + + + + - + @@ -78168,23 +89068,23 @@ - + - + - + - + - + - + @@ -78266,34 +89166,34 @@ - + - + - + - + - + - + - + - + - + - + @@ -78323,13 +89223,13 @@ - + - + - + @@ -78342,7 +89242,7 @@ - + @@ -78361,79 +89261,79 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -78646,7 +89546,7 @@ - + @@ -78665,19 +89565,19 @@ - + - + - + - + - + @@ -78689,18 +89589,18 @@ - + - + - + - + - + @@ -78738,105 +89638,105 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -79052,75 +89952,75 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -79571,14 +90471,14 @@ - + - + - + @@ -80107,38 +91007,38 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -80187,61 +91087,61 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -80275,23 +91175,23 @@ - + - + - + - + - + - + - + @@ -80453,24 +91353,24 @@ - + - + - + - + - + - + - + @@ -80586,74 +91486,74 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -80737,60 +91637,60 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -80833,115 +91733,115 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -80984,30 +91884,30 @@ - + - + - + - + - + - + - + - + - + @@ -81361,9 +92261,6 @@ - - - @@ -81964,18 +92861,6 @@ - - - - - - - - - - - - @@ -81998,6 +92883,9 @@ + + + @@ -82033,6 +92921,9 @@ + + + @@ -82045,171 +92936,171 @@ - + - + - + - + - + - + - + + + + - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -82348,330 +93239,336 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -83092,6 +93989,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -83108,29 +94033,37 @@ + + + + + + + + - + - + - + - + - + - + - + - + - + @@ -83192,6 +94125,8 @@ + + @@ -83273,107 +94208,107 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -83455,9 +94390,9 @@ - - - + + + @@ -83467,6 +94402,11 @@ + + + + + @@ -83515,6 +94455,10 @@ + + + + @@ -83529,10 +94473,10 @@ - - - - + + + + @@ -83875,20 +94819,20 @@ - + - + - + - + - + @@ -83931,6 +94875,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -83941,10 +94915,22 @@ + + + + + + + + + + + + @@ -83974,12 +94960,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + @@ -84003,10 +95013,21 @@ + + + + + + + + + + + @@ -84152,6 +95173,10 @@ + + + + @@ -84192,137 +95217,137 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -84735,95 +95760,92 @@ - + - + - - - - - - - + - + - - - - + - - - - + - + - + - + + + + - + - + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -84859,125 +95881,128 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + + + + @@ -84997,56 +96022,56 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -85064,63 +96089,66 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + - + - + - + @@ -85190,7 +96218,7 @@ - + @@ -85224,102 +96252,105 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -85409,6 +96440,7 @@ + @@ -85432,56 +96464,56 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -85505,95 +96537,92 @@ - + - + - - - - - - - + - + - - - - + - - - - + - + - + - + + + + - + - + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -85629,193 +96658,196 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -85932,172 +96964,172 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -86547,23 +97579,26 @@ - + - + - + - + - + - + + + + - + @@ -86597,42 +97632,45 @@ - - - - - - - + + - + - + - + + + + + + + + + - + - + - + - + - + - + - + @@ -86664,6 +97702,7 @@ + @@ -86818,6 +97857,10 @@ + + + + @@ -86859,48 +97902,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - @@ -86925,8 +98027,8 @@ - - + + @@ -86937,12 +98039,12 @@ - - + + - - + + @@ -87042,6 +98144,12 @@ + + + + + + @@ -87054,6 +98162,20 @@ + + + + + + + + + + + + + + @@ -87070,6 +98192,12 @@ + + + + + + @@ -87107,41 +98235,50 @@ + + + + + + + + + - - + + - - - - - + + + + + - - - - - - + + + + + + - - + + - - + + - - + + @@ -87218,190 +98355,190 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -87612,190 +98749,190 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -87917,62 +99054,62 @@ - - + + - - + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - + + + + + - - + + - - - + + + - - + + - - + + @@ -88682,45 +99819,45 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -88748,43 +99885,43 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -91056,7 +102193,7 @@ - + @@ -91102,10 +102239,10 @@ - + - + @@ -91318,7 +102455,7 @@ - + @@ -91340,101 +102477,101 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -91477,37 +102614,37 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -91549,34 +102686,34 @@ - + - + - + - + - + - + - + - + - + - + @@ -91588,28 +102725,28 @@ - + - + - + - + - + - + - + - + @@ -91638,7 +102775,7 @@ - + @@ -91678,25 +102815,25 @@ - + - + - + - + - + - + - + @@ -92513,7 +103650,7 @@ - + @@ -92526,22 +103663,22 @@ - + - + - + - + - + - + @@ -92581,7 +103718,7 @@ - + @@ -92594,28 +103731,28 @@ - + - + - + - + - + - + - + - + @@ -92837,83 +103974,83 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -92939,7 +104076,7 @@ - + @@ -92958,7 +104095,7 @@ - + @@ -93070,71 +104207,169 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -93194,6 +104429,18 @@ + + + + + + + + + + + + @@ -93211,110 +104458,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -93454,6 +104597,11 @@ + + + + + @@ -93609,6 +104757,12 @@ + + + + + + @@ -93946,6 +105100,11 @@ + + + + + @@ -94042,6 +105201,11 @@ + + + + + @@ -94104,6 +105268,11 @@ + + + + + @@ -94147,6 +105316,13 @@ + + + + + + + @@ -94183,8 +105359,26 @@ + + + + + + + + + + + + + + + + + + @@ -94192,6 +105386,11 @@ + + + + + @@ -94281,6 +105480,12 @@ + + + + + + @@ -94306,40 +105511,40 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -94372,7 +105577,7 @@ - + @@ -94567,6 +105772,10 @@ + + + + @@ -94692,6 +105901,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -94714,20 +105963,23 @@ + + - - + + + - - - + + + - - - + + + @@ -94740,13 +105992,28 @@ - - + + - - - + + + + + + + + + + + + + + + + + + @@ -94758,17 +106025,17 @@ - - + + - - + + - - - + + + @@ -94779,25 +106046,25 @@ - - - - + + + + - - - + + + - - - - + + + + - - + + @@ -94815,9 +106082,9 @@ - - - + + + @@ -94826,33 +106093,55 @@ - - - - + + + + - - + + - - + + - - + + + + + + + - - + + - - + + + + + + + + + + + + + + + + + + + @@ -94904,40 +106193,40 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -94970,7 +106259,7 @@ - + @@ -94992,12 +106281,12 @@ - - + + - - + + @@ -95048,12 +106337,30 @@ + + + + + + + + + + + + + + + + + + @@ -95070,12 +106377,29 @@ + + + + + + + + + + + + + + + + + @@ -95119,29 +106443,29 @@ - + - + - + - + - + - + - + - + @@ -95365,6 +106689,11 @@ + + + + + @@ -95385,6 +106714,11 @@ + + + + + @@ -95414,6 +106748,12 @@ + + + + + + @@ -95486,7 +106826,7 @@ - + @@ -95532,7 +106872,7 @@ - + @@ -95881,47 +107221,47 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -96114,6 +107454,14 @@ + + + + + + + + @@ -96126,8 +107474,8 @@ - - + + @@ -96144,17 +107492,17 @@ - - - - - + + + + + - - - - + + + + @@ -96316,6 +107664,13 @@ + + + + + + + @@ -96332,12 +107687,31 @@ + + + + + + + + + + + + + + + + + + + @@ -96602,6 +107976,9 @@ + + + @@ -96623,86 +108000,12 @@ - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -96788,94 +108091,8 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -96884,179 +108101,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -97216,22 +108260,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + @@ -97281,228 +108350,228 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -97530,43 +108599,43 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -97575,7 +108644,7 @@ - + @@ -97907,7 +108976,6 @@ - @@ -98177,6 +109245,22 @@ + + + + + + + + + + + + + + + + @@ -98210,6 +109294,11 @@ + + + + + @@ -98282,6 +109371,10 @@ + + + + @@ -98347,6 +109440,19 @@ + + + + + + + + + + + + + @@ -98375,6 +109481,11 @@ + + + + + @@ -98402,6 +109513,12 @@ + + + + + + @@ -98413,6 +109530,12 @@ + + + + + + @@ -98461,164 +109584,164 @@ - + - + - + - + - + - + - + - - - - - - - - - - + - + - - + + - - + + - - + + - + - - + + + + + - + - - + + - - + + - + - - + + - + + + + - - - - - - - - - - - - - + - + + + + - - - - - - - + - + + + + - - - - - - - + - + - - + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -98635,33 +109758,33 @@ - + - + - + - + - + - + - + - + @@ -98681,60 +109804,73 @@ - - - - - - - + + + + + + + - - + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + + + + + + + + + + + + + + @@ -98790,38 +109926,39 @@ - + + - + - + - + - + - + - + - + - - + + @@ -98967,6 +110104,10 @@ + + + + @@ -99028,33 +110169,33 @@ - + - + - + - + - + - + - + - + - + @@ -99067,16 +110208,16 @@ - + - + - + - + @@ -99199,6 +110340,17 @@ + + + + + + + + + + + @@ -99295,92 +110447,92 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -99511,11 +110663,192 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -99589,7 +110922,7 @@ - + @@ -99668,43 +111001,43 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -99848,77 +111181,77 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -99937,88 +111270,88 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -100054,55 +111387,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -100437,7 +111770,7 @@ - + @@ -100450,13 +111783,13 @@ - + - + - + @@ -100474,28 +111807,28 @@ - + - + - + - + - + - + - + - + @@ -100582,6 +111915,13 @@ + + + + + + + @@ -100591,14 +111931,6 @@ - - - - - - - - @@ -100692,35 +112024,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -100758,37 +112061,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -100816,9 +112088,6 @@ - - - @@ -100829,18 +112098,11 @@ - - - - - - - - - - - - + + + + + @@ -100889,6 +112151,21 @@ + + + + + + + + + + + + + + + @@ -100902,9 +112179,17 @@ + + + + + + + + @@ -100913,6 +112198,12 @@ + + + + + + @@ -100931,6 +112222,20 @@ + + + + + + + + + + + + + + @@ -100981,148 +112286,42 @@ - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -101172,273 +112371,276 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - - + + - - + + - - + + - - + + - - - - - - - - + + - + + + + + + + + + + - + + + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - + + - + - + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + @@ -101720,100 +112922,103 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + - + - + - + - + - + - + - + - + - + @@ -101924,18 +113129,35 @@ - + + + + + + + + + + + + + + + + + + - + - + - + - + @@ -101974,48 +113196,48 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -102051,59 +113273,59 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -102114,133 +113336,139 @@ - + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -102258,50 +113486,59 @@ - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + + + + + + + + + + - + - + - + @@ -102464,6 +113701,7 @@ + @@ -102477,26 +113715,27 @@ + - - - - - - + + + + + + - - - - - + + + + + - - + + @@ -102506,121 +113745,144 @@ - - + + - - + + - - - + + + - - - + + + - - - - - - - + + + + + + + - - - - - - + + + + + + - - - - - - - + + - - - - - - - - + + + + + + + - - + + - - + + + + + + + + - - + + + + + + + + + + - - + + - - - - - - + + + + + + - - - - - - - + + + + + + + - - + + + + + + + + + + + + - - - + + + - - - + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + @@ -102689,6 +113951,12 @@ + + + + + + @@ -102928,64 +114196,65 @@ - - + + + - - - + + + - - + + - - - + + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + @@ -102993,16 +114262,16 @@ - - - - + + + + - - - - + + + + @@ -103041,31 +114310,31 @@ - + - + - + - + - + - + - + - + @@ -103244,65 +114513,65 @@ - - - - - - - - - + + + + + + + + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - - - - + + + + + - - - - + + + + - - - - - - + + + + + + @@ -103479,50 +114748,50 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -103633,37 +114902,37 @@ - + - + - + - + - + - + - + - + - + - + @@ -103817,6 +115086,689 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -104040,23 +115992,23 @@ - + - + - + - + - + - + @@ -104240,18 +116192,18 @@ - - - - - - - + + + + + + + - - - + + + @@ -104264,50 +116216,55 @@ - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - - - - + + + + + + - - - - - - + + + + + + + + + + + @@ -104316,19 +116273,18 @@ - - - - - + + + + + - - - + + + - @@ -104422,47 +116378,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -104520,17 +116435,6 @@ - - - - - - - - - - - @@ -104582,6 +116486,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + @@ -104636,35 +116564,35 @@ - + - + - + - + - + - + - + - + - + @@ -104913,6 +116841,10 @@ + + + + @@ -104942,6 +116874,12 @@ + + + + + + @@ -105122,7 +117060,7 @@ - + @@ -105135,41 +117073,41 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -105206,19 +117144,19 @@ - + - + - + - + - + @@ -105272,19 +117210,19 @@ - + - + - + - + - + @@ -105292,47 +117230,47 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -105371,49 +117309,49 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -105902,6 +117840,13 @@ + + + + + + + @@ -106241,7 +118186,7 @@ - + @@ -106251,13 +118196,13 @@ - + - + - + @@ -106561,7 +118506,7 @@ - + @@ -106571,122 +118516,122 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -106696,13 +118641,13 @@ - + - + - + @@ -106712,72 +118657,78 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + @@ -106938,418 +118889,442 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - + + - + - + - + - + - + - + - - - - + - + - + - + + + + + + + - + - + - + + + + - + - - - - + - - - - - - - - - - - - - - - - + - - - - + - - - - + - - - - + - - - - + - + - + - - - - + - - - - - - - - - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + - + + + + - + + + + - + - + - + - + - + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - - + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + @@ -107360,30 +119335,33 @@ - + - + - + - + - + - + - + - + - + + + + @@ -107520,7 +119498,7 @@ - + @@ -107545,61 +119523,61 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -107777,7 +119755,7 @@ - + @@ -107850,22 +119828,22 @@ - + - + - + - + - + - + @@ -107889,21 +119867,21 @@ - + - + - + @@ -107921,44 +119899,53 @@ - + - + - + - + - + - + - + - + - + - + + + + + + + + + + - + - + - + - + @@ -108036,10 +120023,10 @@ - - - - + + + + @@ -108052,12 +120039,6 @@ - - - - - - @@ -108208,8 +120189,6 @@ - - @@ -108224,8 +120203,6 @@ - - @@ -108692,7 +120669,7 @@ - + @@ -109408,65 +121385,65 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -109641,11 +121618,23 @@ + + + + + + + + + + + + @@ -109719,6 +121708,16 @@ + + + + + + + + + + @@ -109765,6 +121764,11 @@ + + + + + @@ -109774,6 +121778,18 @@ + + + + + + + + + + + + @@ -109795,6 +121811,10 @@ + + + + @@ -109843,6 +121863,7 @@ + @@ -109883,7 +121904,7 @@ - + @@ -110004,52 +122025,52 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -110058,52 +122079,52 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -110166,6 +122187,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -110238,7 +122285,6 @@ - @@ -110451,32 +122497,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -110761,9 +122781,9 @@ - - - + + + @@ -110771,16 +122791,16 @@ - - - - - - + + + + + + - - + + @@ -110839,7 +122859,7 @@ - + @@ -110960,52 +122980,52 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -111014,52 +123034,52 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -111841,11 +123861,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -112004,9 +124051,9 @@ - - - + + + @@ -112022,16 +124069,16 @@ - - + + - - + + @@ -112055,58 +124102,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -112115,50 +124110,50 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -112191,20 +124186,20 @@ - + - + - + - + @@ -112220,26 +124215,26 @@ - + - + - + - + - + - + @@ -112333,29 +124328,29 @@ - + - + - + - + - + - + - + @@ -112446,6 +124441,11 @@ + + + + + @@ -112456,6 +124456,11 @@ + + + + + @@ -112476,6 +124481,10 @@ + + + + @@ -112563,6 +124572,22 @@ + + + + + + + + + + + + + + + + @@ -112578,26 +124603,39 @@ + + + + + + + + + + + + + - + - + - + - + - + - + - - + + @@ -112640,94 +124678,23 @@ - - - + + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -112763,606 +124730,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -113383,410 +124750,422 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + + + + - + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + @@ -113964,53 +125343,53 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -114063,6 +125442,7 @@ + @@ -114077,45 +125457,45 @@ - - + + - - - - - + + + + + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - - + + @@ -114139,6 +125519,12 @@ + + + + + + @@ -114206,171 +125592,168 @@ - - - - + - + - + - + - + - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - - - - - - - + + - + - - + + - - + + - - + + - - - - - + + - + - - + + - - + + - - + + + + + + + + - + - - + + + + + - + - + - + - + - + - + - + - + @@ -114381,35 +125764,35 @@ - - - + + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + @@ -114442,32 +125825,32 @@ - + - + - + - + - + - + - + - + @@ -114521,7 +125904,7 @@ - + @@ -114537,70 +125920,70 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -115213,6 +126596,10 @@ + + + + @@ -116228,10 +127615,10 @@ - - - - + + + + @@ -116239,15 +127626,15 @@ - - - + + + - - - - + + + + @@ -116259,6 +127646,10 @@ + + + + @@ -116422,7 +127813,7 @@ - + @@ -116823,6 +128214,13 @@ + + + + + + + @@ -116987,10 +128385,10 @@ - - - - + + + + @@ -117011,6 +128409,7 @@ + @@ -117020,6 +128419,13 @@ + + + + + + + @@ -117037,6 +128443,12 @@ + + + + + + @@ -117054,6 +128466,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -117102,6 +128548,13 @@ + + + + + + + @@ -117116,6 +128569,9 @@ + + + @@ -117217,56 +128673,56 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -117349,27 +128805,6 @@ - - - - - - - - - - - - - - - - - - - - - @@ -117390,9 +128825,6 @@ - - - @@ -117421,13 +128853,26 @@ - - - - - - + + + + + + + + + + + + + + + + + + + @@ -117435,31 +128880,31 @@ - - - + + + - - - + + + - - - - + + + + - - - + + + - - - - + + + + @@ -117554,17 +128999,33 @@ + + + + + + + + + + + + + + + + @@ -117617,13 +129078,6 @@ - - - - - - - @@ -117648,6 +129102,13 @@ + + + + + + + @@ -117730,6 +129191,18 @@ + + + + + + + + + + + + @@ -117747,12 +129220,6 @@ - - - - - - @@ -117809,11 +129276,11 @@ - - - - - + + + + + @@ -117903,10 +129370,24 @@ + + + + + + + + + + + + + + @@ -118096,6 +129577,14 @@ + + + + + + + + @@ -118154,28 +129643,28 @@ - + - + - + - + - + - + @@ -118191,49 +129680,49 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -118656,56 +130145,56 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -119219,28 +130708,53 @@ - - + - + - + + + + - + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + @@ -119673,82 +131187,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -119776,7 +131290,14 @@ - + + + + + + + + @@ -120504,7 +132025,7 @@ - + @@ -120532,119 +132053,119 @@ - + - + - + - + - + - + - + - + - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + - - - - + - + - - + + - - + + - + + + + + + + + + + + + + + + + + + + @@ -120695,49 +132216,49 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -120874,12 +132395,12 @@ - - - + + + @@ -120940,7 +132461,7 @@ - + @@ -120998,115 +132519,115 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -121133,102 +132654,105 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -121238,18 +132762,18 @@ - + - + - + - + - + @@ -121278,12 +132802,12 @@ - + - + @@ -121318,7 +132842,7 @@ - + @@ -121340,35 +132864,35 @@ - + - + - + - + - + - + - + - + - + - + @@ -121444,79 +132968,79 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -121749,7 +133273,7 @@ - + @@ -121795,159 +133319,157 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - @@ -122043,46 +133565,46 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -122094,127 +133616,127 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -122436,7 +133958,7 @@ - + @@ -122467,40 +133989,40 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -122787,7 +134309,7 @@ - + @@ -122821,6 +134343,9 @@ + + + @@ -123006,7 +134531,7 @@ - + @@ -123031,16 +134556,16 @@ - + - + - + - + @@ -123112,7 +134637,7 @@ - + @@ -123131,6 +134656,9 @@ + + + @@ -123704,7 +135232,7 @@ - + @@ -123720,19 +135248,19 @@ - + - + - + - + - + @@ -123741,7 +135269,7 @@ - + @@ -123894,7 +135422,7 @@ - + @@ -123904,6 +135432,18 @@ + + + + + + + + + + + + @@ -123916,18 +135456,33 @@ - + - + - + - + + + + + + + + + + + + + + + + @@ -123979,10 +135534,8 @@ - - - + @@ -123992,43 +135545,43 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -124323,7 +135876,7 @@ - + @@ -124339,25 +135892,25 @@ - + - + - + - + - + - + - + @@ -124423,21 +135976,24 @@ - + - + - + - + - + - + + + + @@ -124644,20 +136200,20 @@ - + - + - + - + @@ -124789,27 +136345,27 @@ - + - + - + - + - + - + - + - + @@ -125088,12 +136644,11 @@ - + - + - @@ -125346,7 +136901,7 @@ - + @@ -125528,11 +137083,11 @@ - + - + @@ -125544,7 +137099,7 @@ - + @@ -125561,11 +137116,11 @@ - + - + @@ -125597,292 +137152,292 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -126534,7 +138089,7 @@ - + @@ -126556,10 +138111,10 @@ - + - + @@ -127275,10 +138830,13 @@ - + - + + + + @@ -127321,11 +138879,11 @@ - + - + @@ -127498,6 +139056,8 @@ + + @@ -129192,78 +140752,78 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -129559,7 +141119,7 @@ - + @@ -129572,61 +141132,60 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + - + - + @@ -129723,61 +141282,61 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -129786,7 +141345,7 @@ - + @@ -129795,290 +141354,290 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + - - - - - - - + - + + + + + + + - + - - + + - - - - - - - - + + - + - + - + + + + - + - + - - + + - - + + - - + + - + - + - + - - - - - - - + - + + + + - + - + - - - - + - + - + - + - + - + - + - + + + + + + + + + + + + + - + - + - + - - - - + - + - + - + - + - + - - - - - - - - - - + - + - + - + - + - + + + + - + + + + - + - + - + - + - + - + - + + + + + + + @@ -130119,59 +141678,59 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -130192,7 +141751,7 @@ - + @@ -130322,70 +141881,70 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -130410,81 +141969,81 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -130502,7 +142061,7 @@ - + @@ -130680,19 +142239,19 @@ - + - + - + - + - + @@ -130737,84 +142296,84 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -130837,7 +142396,7 @@ - + @@ -130869,34 +142428,37 @@ - + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + @@ -130973,30 +142535,33 @@ - + - + - + - + - + - + - + - + - + + + + @@ -131022,12 +142587,15 @@ + + + + + + - - - @@ -131143,7 +142711,7 @@ - + @@ -131633,109 +143201,106 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + @@ -132266,6 +143831,14 @@ + + + + + + + + @@ -132305,10 +143878,10 @@ - + - + @@ -132650,14 +144223,6 @@ - - - - - - - - @@ -132863,18 +144428,21 @@ - + - + - + - + - + + + + @@ -132902,100 +144470,100 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -133013,21 +144581,21 @@ - + - + - + - + - + - + @@ -133110,7 +144678,6 @@ - @@ -133288,26 +144855,26 @@ - - - + + + - - - + + + - - - + + + - - - - - + + + + + @@ -133439,130 +145006,143 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - + + + + + + - - - - - - - + + + + + + + - + - - + + - - + + - - + + - - + + + + + + + + + + + + + + - - - - + + + + - - - - + + + + - - - - - - - + + + + + + + - - - + + + @@ -133584,6 +145164,7 @@ + @@ -133774,6 +145355,10 @@ + + + + @@ -133932,6 +145517,11 @@ + + + + + @@ -134049,77 +145639,77 @@ - - - - + + + + - - + + - - - - - - + + + + + + - - + + - - + + - - + + - - - - - + + + + + - - - - - - - - - + + + + + + + + + - - + + - - - - + + + + - - - - + + + + - - - + + + - - + + @@ -134258,7 +145848,7 @@ - + @@ -134280,22 +145870,22 @@ - + - + - + - + - + - + @@ -134532,7 +146122,7 @@ - + @@ -134581,7 +146171,7 @@ - + @@ -134615,7 +146205,7 @@ - + @@ -134628,19 +146218,19 @@ - + - + - + - + - + @@ -134696,9 +146286,6 @@ - - - @@ -134849,7 +146436,7 @@ - + @@ -134868,31 +146455,31 @@ - + - + - + - + - + - + - + - + - + @@ -134927,17 +146514,17 @@ - + - + - + @@ -135011,7 +146598,7 @@ - + @@ -135036,55 +146623,55 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -135499,7 +147086,7 @@ - + @@ -135515,7 +147102,7 @@ - + @@ -135580,7 +147167,7 @@ - + @@ -136332,8 +147919,8 @@ - + @@ -136352,23 +147939,27 @@ - - - + + + - - + + - - + + - - + + + + + + @@ -136508,16 +148099,16 @@ - - - - - - + + + + + + @@ -136628,16 +148219,16 @@ - - - + + + - + - - + + @@ -136678,6 +148269,11 @@ + + + + + @@ -136690,6 +148286,11 @@ + + + + + @@ -136785,6 +148386,13 @@ + + + + + + + @@ -136812,6 +148420,18 @@ + + + + + + + + + + + + @@ -136907,6 +148527,15 @@ + + + + + + + + + @@ -136986,96 +148615,102 @@ - - - - - - - - - - - - - - - + + + + - - - + + + - - - - - - - + + + + + + + + + + - - + + + - - - + + + + + + + + + + + + + + + + - - + + - - - - - - + + + + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - + + @@ -137390,12 +149025,12 @@ - - + + - - + + @@ -137424,16 +149059,16 @@ - - + + - - + + @@ -137446,12 +149081,12 @@ - - + + - - + + @@ -137475,12 +149110,12 @@ - + - + - - + + @@ -137500,7 +149135,7 @@ - + @@ -137509,38 +149144,42 @@ - - + + - - + + - - + + - - - + + + - - - + + + - - + + - - + + + + + + @@ -137589,16 +149228,16 @@ - - + + - - + + - - + + @@ -137612,6 +149251,10 @@ + + + + @@ -137630,6 +149273,10 @@ + + + + @@ -137760,6 +149407,10 @@ + + + + @@ -137784,12 +149435,12 @@ - + - + - + @@ -137804,44 +149455,44 @@ - - + + - - + + - - + + - - + + - - - - - - + + + + + + - - + + - + - + - + @@ -137969,11 +149620,17 @@ + + + + + + @@ -137989,11 +149646,21 @@ + + + + + + + + + + @@ -138014,6 +149681,16 @@ + + + + + + + + + + @@ -138063,8 +149740,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -138073,6 +149784,9 @@ + + + @@ -138101,6 +149815,12 @@ + + + + + + @@ -138121,7 +149841,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -138177,15 +149944,55 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -138218,12 +150025,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + @@ -138254,12 +150086,22 @@ + + + + + + + + + + @@ -138327,12 +150169,12 @@ - - - + + + - + @@ -138341,21 +150183,21 @@ - + - - - + + + - + - + @@ -138367,8 +150209,14 @@ - - + + + + + + + + @@ -138384,11 +150232,11 @@ - + - - + + @@ -138511,6 +150359,10 @@ + + + + @@ -138649,460 +150501,466 @@ + + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + + + + + + + + + + + - + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + - + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - + + - + + + + + + + + + + - + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -139146,15 +151004,15 @@ - + - + - + - + @@ -139285,50 +151143,50 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -139523,6 +151381,18 @@ + + + + + + + + + + + + @@ -139534,50 +151404,38 @@ - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - @@ -139612,43 +151470,55 @@ - - - + + + - - - - - - - - - + + + + + + + + + - + - + - - - + + + - + + + + + + - - - + + + + + + + + + + - - + + @@ -139656,94 +151526,135 @@ - - + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - - - + + + + + - - + + - - - - + + + + - - - - + + + + - - + + - - - - + + + + - - - + + + @@ -139786,7 +151697,7 @@ - + @@ -139796,32 +151707,32 @@ - + - + - + - + - + - + - + - + - + @@ -139879,76 +151790,76 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -140072,6 +151983,21 @@ + + + + + + + + + + + + + + + @@ -140089,18 +152015,18 @@ - + - + - + - + - + @@ -140115,10 +152041,10 @@ - - - - + + + + @@ -140181,52 +152107,52 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + + + - - + + - - + + @@ -140437,72 +152363,72 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -140534,41 +152460,41 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -140577,32 +152503,32 @@ - + - + - + - + - + - + - + - + - + @@ -140612,22 +152538,22 @@ - + - + - + - + - + - + @@ -140692,108 +152618,108 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -140965,19 +152891,25 @@ - - - - + + + + - - - + + + + + + + + + - - + + @@ -141194,6 +153126,13 @@ + + + + + + + @@ -141234,7 +153173,26 @@ + + + + + + + + + + + + + + + + + + + @@ -141258,11 +153216,6 @@ - - - - - @@ -141341,92 +153294,92 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -141578,6 +153531,11 @@ + + + + + @@ -141875,7 +153833,6 @@ - @@ -142006,6 +153963,10 @@ + + + + @@ -142252,6 +154213,10 @@ + + + + @@ -142286,6 +154251,9 @@ + + + @@ -142321,6 +154289,17 @@ + + + + + + + + + + + @@ -142345,6 +154324,11 @@ + + + + + @@ -142433,15 +154417,15 @@ - + - + - + - + @@ -142721,17 +154705,17 @@ - + - + - + - + @@ -142776,103 +154760,103 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -142915,7 +154899,7 @@ - + @@ -142943,106 +154927,106 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -143267,7 +155251,7 @@ - + @@ -143313,124 +155297,124 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -143476,35 +155460,35 @@ - + - + - + - + - + - + - + - + - + @@ -143706,7 +155690,7 @@ - + @@ -144338,9 +156322,9 @@ - + - + @@ -146549,94 +158533,94 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -146656,362 +158640,362 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - + - - - - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - - - - - - - - - - - - - - - - + - + - - - - - - - - - - - - - - - - + - - - - + - + + + + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -147186,21 +159170,21 @@ - + - + - + - + - + - + @@ -147245,18 +159229,18 @@ - + - + - + - + - + @@ -147264,12 +159248,12 @@ - + - + - + @@ -149101,6 +161085,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -149362,12 +161377,12 @@ - - + + - - + + @@ -149377,14 +161392,28 @@ - - + + + + + + + + + + + + + + + + @@ -149472,6 +161501,12 @@ + + + + + + @@ -149482,6 +161517,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -149512,6 +161576,12 @@ + + + + + + @@ -149587,6 +161657,29 @@ + + + + + + + + + + + + + + + + + + + + + + + @@ -149602,6 +161695,7 @@ + @@ -149621,12 +161715,22 @@ + + + + + + + + + + @@ -149829,7 +161933,7 @@ - + @@ -149838,12 +161942,15 @@ + + + @@ -149857,6 +161964,7 @@ + @@ -149865,6 +161973,23 @@ + + + + + + + + + + + + + + + + + @@ -149920,6 +162045,10 @@ + + + + @@ -149956,12 +162085,23 @@ + + + + + + + + + + + @@ -149994,17 +162134,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -150099,6 +162269,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -150141,7 +162347,7 @@ - + @@ -150245,6 +162451,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + @@ -150397,6 +162627,10 @@ + + + + @@ -150534,20 +162768,6 @@ - - - - - - - - - - - - - - @@ -150572,6 +162792,20 @@ + + + + + + + + + + + + + + @@ -150665,6 +162899,13 @@ + + + + + + + @@ -150724,6 +162965,11 @@ + + + + + @@ -150760,21 +163006,21 @@ - - - + + + - - - - + + + + - - - + + + @@ -150932,6 +163178,13 @@ + + + + + + + @@ -150990,6 +163243,12 @@ + + + + + + @@ -151084,11 +163343,6 @@ - - - - - @@ -151240,6 +163494,11 @@ + + + + + @@ -151266,14 +163525,14 @@ + + + - - - @@ -151289,6 +163548,13 @@ + + + + + + + @@ -151299,6 +163565,12 @@ + + + + + + @@ -151309,6 +163581,10 @@ + + + + @@ -151317,10 +163593,19 @@ + + + + + + + + + @@ -151497,6 +163782,11 @@ + + + + + @@ -151519,6 +163809,20 @@ + + + + + + + + + + + + + + @@ -151578,6 +163882,15 @@ + + + + + + + + + @@ -151777,9 +164090,9 @@ - - - + + + @@ -151796,6 +164109,12 @@ + + + + + + @@ -151871,6 +164190,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -151921,12 +164333,12 @@ - + - + - + @@ -151935,10 +164347,10 @@ - - - - + + + + @@ -151952,9 +164364,9 @@ - - - + + + @@ -151964,6 +164376,11 @@ + + + + + @@ -152036,10 +164453,18 @@ + + + + + + + + @@ -152050,23 +164475,28 @@ + + + + + - + - + - + - + - + - + @@ -152096,61 +164526,74 @@ - - + + + - - - - - - - - + + + + + + + + + + + + - - - - - + + + + + - - - - - - - - + + + + + + - - - - - + + + + + + + + + + + + + + + - - - - - - + + + + + + - + - - - - + + + + @@ -152161,7 +164604,7 @@ - + @@ -152310,28 +164753,34 @@ - - - - - + + + + + - - - - - - + + + + + + + + + + + + - - - - + + + + @@ -152413,29 +164862,165 @@ - - - - - - - - - - - - + + + + + + + + + + + + - - - + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -152456,8 +165041,8 @@ - - + + @@ -152471,22 +165056,21 @@ - - + + - + - - + + - - - - - + + + + @@ -152507,39 +165091,39 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -152609,95 +165193,95 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -152795,24 +165379,28 @@ - - + + - - + + - - + + - - + + + + + + @@ -152863,77 +165451,125 @@ - - - - - - - + + + + + + + - - + + - - - + + + - + - - - - - + + + + + - - - - - - + + + + + + - - - + + + - - + + - - - + + + + + + + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -152976,6 +165612,9 @@ + + + @@ -153011,20 +165650,26 @@ - - - - + + + + + + + + + + - - + + @@ -153072,29 +165717,29 @@ - + - + - + - + - + - + - + - + @@ -153145,6 +165790,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -153170,12 +165878,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -153318,10 +166058,9 @@ - - - - + + + @@ -153334,9 +166073,10 @@ - - - + + + + @@ -153348,6 +166088,9 @@ + + + @@ -153390,76 +166133,76 @@ - - + + - - + + + + + - - - - - + + + - - + + - - - - - - - + + - - + + - - + + - - + + - + - - - - - - - - - + + - - + + + + + + + + + + + + + - - - - + + + + - - + + - - + + @@ -153474,12 +166217,12 @@ - - + + - + - + @@ -153559,6 +166302,11 @@ + + + + + @@ -153568,6 +166316,12 @@ + + + + + + @@ -153589,7 +166343,7 @@ - + @@ -153629,717 +166383,717 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -154371,7 +167125,7 @@ - + @@ -154428,7 +167182,7 @@ - + @@ -154973,6 +167727,7 @@ + @@ -154983,33 +167738,33 @@ - - + + - - - - - + + + + + - - - + + + - - + + - - - + + + - + @@ -155019,23 +167774,23 @@ - - - + + + - - - - - - - + + + + + + + - - + + @@ -155044,30 +167799,30 @@ - - + + - - + + - - - + + + - - - + + + - - + + - - + + @@ -155075,27 +167830,27 @@ - - + + - - - + + + - - + + - - - + + + @@ -155107,12 +167862,12 @@ - - + + - - + + @@ -155123,20 +167878,25 @@ - - - + + + - - + + + + + + + - + - - + + @@ -155145,88 +167905,88 @@ - - + + - - - + + + - - + + - - + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + + - - - - + + + + - - + + - - - + + + - - + + - - - + + + - - + + @@ -155265,6 +168025,11 @@ + + + + + @@ -155434,23 +168199,23 @@ - - + + - - - - + + + + - - - - + + + + - + @@ -156115,21 +168880,21 @@ - - - + + + - - - - - - - - - - + + + + + + + + + + @@ -156179,6 +168944,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + @@ -156543,6 +169332,11 @@ + + + + + @@ -156593,6 +169387,10 @@ + + + + @@ -156655,7 +169453,14 @@ - + + + + + + + + @@ -157809,6 +170614,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -157937,6 +170768,9 @@ + + + @@ -157989,6 +170823,15 @@ + + + + + + + + + @@ -157998,6 +170841,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -158010,6 +170963,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -158034,6 +171096,9 @@ + + + @@ -158639,8 +171704,8 @@ - - + + @@ -160278,8 +173343,8 @@ - - + + @@ -160290,8 +173355,8 @@ - - + + @@ -161489,34 +174554,34 @@ - - - + + + - - - - - + + + + + - - - + + + - - + + - - - + + + - - + + @@ -161558,16 +174623,16 @@ - - - - - + + + + + - - - + + + @@ -161588,22 +174653,22 @@ - - - - - + + + + + - - - - + + + + - - - + + + @@ -162028,7 +175093,7 @@ - + @@ -162305,11 +175370,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -162690,16 +175839,16 @@ - - + + - - + + - - + + @@ -164055,9 +177204,9 @@ - - - + + + @@ -164099,8 +177248,8 @@ - - + + @@ -164167,8 +177316,8 @@ - - + + @@ -164495,61 +177644,61 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -164558,13 +177707,13 @@ - + - + - + @@ -168935,6 +182084,17 @@ + + + + + + + + + + + @@ -168944,6 +182104,12 @@ + + + + + + @@ -168953,6 +182119,13 @@ + + + + + + + @@ -170074,14 +183247,14 @@ - - - + + + - - - + + + @@ -170099,25 +183272,25 @@ - - - - - - + + + + + + - - - - - - - - - - - + + + + + + + + + + + @@ -170309,7 +183482,7 @@ - + @@ -170332,13 +183505,18 @@ - - - + + + - - + + + + + + + @@ -170359,27 +183537,27 @@ - - - + + + - - - - - - - - - - + + + + + + + + + + - - - - + + + + @@ -170847,29 +184025,29 @@ - + - + - + - + - + - + - + @@ -170979,7 +184157,7 @@ - + @@ -171019,76 +184197,76 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -171106,7 +184284,7 @@ - + @@ -171140,10 +184318,10 @@ - + - + @@ -171695,6 +184873,207 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -171730,7 +185109,7 @@ - + @@ -171770,80 +185149,80 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -171877,10 +185256,10 @@ - + - + @@ -171973,21 +185352,21 @@ - - + + - - - + + + - - + + @@ -172195,13 +185574,13 @@ - + - + @@ -172229,29 +185608,29 @@ - + - + - + - + - + - + - + - + @@ -172274,7 +185653,7 @@ - + @@ -172329,22 +185708,22 @@ - + - + - + - + - + - + @@ -172943,17 +186322,17 @@ - + - + - + @@ -173255,6 +186634,10 @@ + + + + @@ -173272,6 +186655,14 @@ + + + + + + + + @@ -173283,6 +186674,11 @@ + + + + + @@ -173297,17 +186693,17 @@ - - - + + - - + + + @@ -173389,7 +186785,7 @@ - + @@ -173417,148 +186813,148 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -173576,30 +186972,30 @@ - + - + - + - + - + - + - + - + @@ -173680,7 +187076,7 @@ - + @@ -173783,6 +187179,9 @@ + + + @@ -173825,78 +187224,78 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + - + - - - - - + + - + - + - + - + + + + + + + @@ -174043,18 +187442,6 @@ - - - - - - - - - - - - @@ -174075,6 +187462,18 @@ + + + + + + + + + + + + @@ -174121,6 +187520,19 @@ + + + + + + + + + + + + + @@ -174132,6 +187544,15 @@ + + + + + + + + + @@ -174146,6 +187567,22 @@ + + + + + + + + + + + + + + + + @@ -174192,30 +187629,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + @@ -174325,132 +187799,53 @@ - + - + - - + + + + + - + - + - + - + - + - - - - + - + - + - + - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -174458,6 +187853,18 @@ + + + + + + + + + + + + @@ -174466,20 +187873,40 @@ - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - @@ -174521,31 +187948,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - @@ -174581,6 +187983,13 @@ + + + + + + + @@ -174608,6 +188017,11 @@ + + + + + @@ -174617,11 +188031,20 @@ + + + + + + + + + @@ -175035,7 +188458,7 @@ - + @@ -175063,148 +188486,148 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -175222,7 +188645,7 @@ - + @@ -175273,81 +188696,81 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + - + - - - - - + + - + - + - + - + + + + + + + - + @@ -175457,46 +188880,49 @@ - + - + - - + + + + + - + - + - + - + - + - - - - + - + - + - + - - + + + + + @@ -176119,7 +189545,7 @@ - + @@ -176222,6 +189648,9 @@ + + + @@ -176766,26 +190195,26 @@ - + - + - + - + - + - + - + @@ -176896,6 +190325,8 @@ + + @@ -177025,6 +190456,14 @@ + + + + + + + + @@ -177050,12 +190489,20 @@ + + + + + + + + @@ -177646,6 +191093,11 @@ + + + + + @@ -177660,7 +191112,7 @@ - + @@ -177685,7 +191137,12 @@ + + + + + @@ -177707,6 +191164,12 @@ + + + + + + @@ -177726,6 +191189,11 @@ + + + + + @@ -177789,6 +191257,11 @@ + + + + + @@ -177799,35 +191272,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + @@ -177934,6 +191435,11 @@ + + + + + @@ -177954,6 +191460,11 @@ + + + + + @@ -177974,6 +191485,11 @@ + + + + + @@ -178001,6 +191517,11 @@ + + + + + @@ -178022,6 +191543,10 @@ + + + + @@ -178042,6 +191567,221 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -178190,187 +191930,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -178606,16 +192165,27 @@ + + + + + + + + + + + @@ -178624,6 +192194,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -178646,6 +192252,6 @@ diff --git a/android/abi_gki_aarch64_db845c b/android/abi_gki_aarch64_db845c index 23ade640267a..ef65c2cad42b 100644 --- a/android/abi_gki_aarch64_db845c +++ b/android/abi_gki_aarch64_db845c @@ -21,6 +21,7 @@ cdev_device_add cdev_device_del cdev_init + __cfi_slowpath __check_object_size clk_bulk_disable clk_bulk_enable @@ -183,7 +184,6 @@ flush_workqueue free_io_pgtable_ops free_irq - __free_pages generic_handle_irq generic_mii_ioctl get_device @@ -224,7 +224,6 @@ icc_nodes_remove icc_provider_add icc_provider_del - icc_put icc_set_bw icc_sync_state ida_alloc_range @@ -241,6 +240,7 @@ init_timer_key init_wait_entry __init_waitqueue_head + iomem_resource iommu_attach_device iommu_detach_device iommu_domain_alloc @@ -276,6 +276,7 @@ irq_to_desc is_vmalloc_addr jiffies + kasan_flag_enabled kasprintf kernel_connect kernel_getsockname @@ -293,7 +294,6 @@ kstrdup_const kstrtoint kstrtouint - kthread_create_on_node ktime_get ktime_get_mono_fast_ns ktime_get_real_ts64 @@ -348,13 +348,11 @@ of_device_is_compatible of_device_uevent_modalias of_dma_configure_id - of_find_device_by_node of_find_property of_fwnode_ops of_genpd_add_provider_onecell of_genpd_del_provider of_get_child_by_name - of_get_compatible_child of_get_named_gpio_flags of_get_next_available_child of_get_next_child @@ -455,7 +453,6 @@ regcache_sync register_reboot_notifier __register_rpmsg_driver - register_shrinker regmap_bulk_read regmap_bulk_write __regmap_init @@ -473,10 +470,12 @@ regulator_set_load regulator_set_voltage release_firmware + __release_region remap_pfn_range request_firmware request_firmware_direct request_firmware_into_buf + __request_region request_threaded_irq reset_control_assert reset_control_deassert @@ -576,6 +575,9 @@ trace_event_raw_init trace_event_reg trace_handle_return + __traceiter_rwmmio_post_read + __traceiter_rwmmio_read + __traceiter_rwmmio_write __tracepoint_rwmmio_post_read __tracepoint_rwmmio_read __tracepoint_rwmmio_write @@ -629,7 +631,6 @@ vunmap wait_for_completion_timeout __wake_up - wake_up_process __warn_printk watchdog_init_timeout @@ -694,11 +695,15 @@ # required by ath10k_core.ko bcmp cancel_delayed_work + __cfg80211_alloc_event_skb + __cfg80211_alloc_reply_skb cfg80211_calculate_bitrate cfg80211_find_elem_match cfg80211_find_vendor_elem cfg80211_get_bss cfg80211_put_bss + __cfg80211_send_event_skb + cfg80211_vendor_cmd_reply cpu_latency_qos_add_request cpu_latency_qos_remove_request device_get_mac_address @@ -757,6 +762,8 @@ __kfifo_alloc __kfifo_free __local_bh_enable_ip + __nla_parse + nla_put param_ops_ulong regulatory_hint skb_copy @@ -840,15 +847,10 @@ of_clk_get_parent_name # required by cqhci.ko + devm_blk_ksm_init dmam_free_coherent mmc_cqe_request_done -# required by deferred-free-helper.ko - freezing_slow_path - __refrigerator - sched_set_normal - system_freezing_cnt - # required by extcon-usb-gpio.ko devm_extcon_dev_allocate devm_extcon_dev_register @@ -1185,12 +1187,14 @@ hdmi_infoframe_pack hrtimer_init hrtimer_start_range_ns + icc_put invalidate_mapping_pages iommu_map_sg iommu_set_fault_handler irq_domain_xlate_onecell kstrdup_quotable_cmdline kstrtouint_from_user + kthread_create_on_node kthread_create_worker kthread_destroy_worker kthread_queue_work @@ -1213,7 +1217,9 @@ of_device_is_available of_drm_find_bridge of_drm_find_panel + of_find_device_by_node of_find_matching_node_and_match + of_get_compatible_child of_graph_get_endpoint_by_regs of_graph_get_next_endpoint of_graph_get_remote_port_parent @@ -1229,6 +1235,7 @@ _raw_read_unlock _raw_write_lock _raw_write_unlock + register_shrinker register_vmap_purge_notifier regulator_get regulator_put @@ -1253,13 +1260,11 @@ vm_get_page_prot vscnprintf vsnprintf + wake_up_process ww_mutex_lock_interruptible ww_mutex_unlock # required by msm_serial.ko - iomem_resource - __release_region - __request_region tty_termios_baud_rate tty_termios_encode_baud_rate @@ -1318,11 +1323,6 @@ usb_put_hcd usb_remove_hcd -# required by page_pool.ko - __alloc_pages_nodemask - contig_page_data - mod_node_page_state - # required by pdr_interface.ko strnlen @@ -1403,9 +1403,7 @@ of_get_cpu_node # required by qcom-geni-se.ko - console_drivers icc_set_tag - of_get_next_parent # required by qcom-pdc.ko irq_chip_get_parent_state @@ -1677,10 +1675,17 @@ spmi_controller_remove # required by system_heap.ko + deferred_free + dmabuf_page_pool_alloc + dmabuf_page_pool_create + dmabuf_page_pool_destroy + dmabuf_page_pool_free dma_heap_add dma_heap_get_dev + dma_heap_get_name dma_sync_sg_for_cpu dma_sync_sg_for_device + __free_pages preempt_schedule __sg_page_iter_next diff --git a/android/abi_gki_aarch64_exynos b/android/abi_gki_aarch64_exynos new file mode 100644 index 000000000000..2240832a275f --- /dev/null +++ b/android/abi_gki_aarch64_exynos @@ -0,0 +1,1663 @@ +[abi_symbol_list] + activate_task + add_cpu + add_timer + add_timer_on + adjust_managed_page_count + alarm_cancel + alarm_init + alarm_start_relative + alloc_chrdev_region + alloc_netdev_mqs + __alloc_pages_nodemask + __alloc_percpu + __alloc_skb + alloc_workqueue + amba_driver_register + amba_driver_unregister + android_debug_symbol + android_rvh_probe_register + __arch_copy_from_user + __arch_copy_to_user + arm64_const_caps_ready + arm64_use_ng_mappings + __arm_smccc_hvc + __arm_smccc_smc + atomic_notifier_call_chain + atomic_notifier_chain_register + atomic_notifier_chain_unregister + autoremove_wake_function + available_idle_cpu + backlight_device_register + backlight_device_unregister + bcmp + __bitmap_andnot + __bitmap_complement + __bitmap_or + bitmap_parse + bitmap_parselist + bitmap_to_arr32 + __bitmap_weight + __bitmap_xor + blkdev_get_by_path + blocking_notifier_call_chain + blocking_notifier_chain_register + blocking_notifier_chain_unregister + bpf_trace_run10 + bpf_trace_run12 + bpf_trace_run1 + bpf_trace_run2 + bpf_trace_run3 + bpf_trace_run4 + bpf_trace_run5 + bpf_trace_run6 + bpf_trace_run7 + bpf_trace_run9 + build_skb + bus_find_device + bus_for_each_dev + bus_register + bus_register_notifier + bus_set_iommu + bus_unregister + bus_unregister_notifier + call_rcu + cancel_delayed_work + cancel_delayed_work_sync + cancel_work_sync + capable + cdev_add + cdev_del + cdev_device_add + cdev_device_del + cdev_init + __cfi_slowpath + cgroup_taskset_first + cgroup_taskset_next + __check_object_size + check_preempt_curr + __class_create + class_destroy + __class_register + class_unregister + clk_disable + clk_enable + clk_get + __clk_get_hw + __clk_get_name + clk_get_rate + clk_hw_get_name + clk_hw_get_parent + __clk_hw_register_divider + __clk_hw_register_gate + __clk_hw_register_mux + clk_hw_unregister_divider + clk_hw_unregister_gate + clk_hw_unregister_mux + clk_prepare + clk_put + clk_register + clk_register_clkdev + clk_register_fixed_factor + clk_register_fixed_rate + clk_register_gate + clk_set_parent + clk_set_rate + clk_unprepare + clockevents_config_and_register + __clocksource_register_scale + cma_alloc + cma_release + complete + complete_all + complete_and_exit + completion_done + config_ep_by_speed + config_group_init_type_name + console_stop + console_suspend_enabled + __const_udelay + contig_page_data + __cpu_active_mask + cpu_all_bits + cpu_bit_bitmap + cpufreq_add_update_util_hook + cpufreq_cpu_get + cpufreq_cpu_get_raw + cpufreq_cpu_put + cpufreq_driver_resolve_freq + __cpufreq_driver_target + cpufreq_freq_transition_begin + cpufreq_freq_transition_end + cpufreq_frequency_table_verify + cpufreq_generic_attr + cpufreq_get_policy + cpufreq_quick_get + cpufreq_quick_get_max + cpufreq_register_driver + cpufreq_register_governor + cpufreq_register_notifier + cpufreq_remove_update_util_hook + cpufreq_table_index_unsorted + cpufreq_this_cpu_can_update + cpufreq_unregister_notifier + __cpuhp_setup_state + __cpuhp_setup_state_cpuslocked + cpuhp_tasks_frozen + cpu_hwcap_keys + cpu_hwcaps + cpumask_next + cpumask_next_and + cpu_number + __cpu_online_mask + cpu_pm_register_notifier + __cpu_possible_mask + cpu_scale + cpus_read_lock + cpus_read_unlock + cpu_subsys + cpu_topology + crypto_alloc_shash + crypto_destroy_tfm + crypto_shash_final + crypto_shash_update + _ctype + dapm_pinctrl_event + dapm_regulator_event + deactivate_task + debugfs_create_bool + debugfs_create_dir + debugfs_create_file + debugfs_create_symlink + debugfs_create_u32 + debugfs_create_x32 + debugfs_remove + default_llseek + delayed_work_timer_fn + del_timer + del_timer_sync + destroy_workqueue + _dev_crit + dev_driver_string + _dev_emerg + _dev_err + dev_err_probe + devfreq_add_device + devfreq_add_governor + devfreq_monitor_resume + devfreq_monitor_start + devfreq_monitor_stop + devfreq_monitor_suspend + devfreq_recommended_opp + devfreq_register_opp_notifier + devfreq_remove_device + devfreq_remove_governor + devfreq_resume_device + devfreq_suspend_device + devfreq_unregister_opp_notifier + devfreq_update_interval + dev_get_by_name + dev_get_regmap + device_create + device_create_bin_file + device_create_file + device_destroy + device_for_each_child + device_initialize + device_init_wakeup + device_link_add + device_link_del + device_property_present + device_property_read_u32_array + device_register + device_remove_file + device_set_wakeup_capable + device_set_wakeup_enable + device_show_bool + device_show_int + device_store_bool + device_store_int + device_unregister + device_wakeup_enable + _dev_info + __dev_kfree_skb_any + devm_add_action + devm_clk_get + devm_clk_get_optional + devm_devfreq_register_notifier + devm_devfreq_unregister_notifier + __devm_drm_dev_alloc + devm_free_irq + devm_gen_pool_create + devm_gpiochip_add_data_with_key + devm_gpiod_get_optional + devm_gpio_request_one + devm_hwrng_register + devm_i2c_new_dummy_device + devm_iio_device_alloc + __devm_iio_device_register + devm_input_allocate_device + devm_ioremap + devm_ioremap_resource + devm_iounmap + __devm_irq_alloc_descs + devm_kasprintf + devm_kfree + devm_kmalloc + devm_kmemdup + devm_kstrdup + devm_kstrdup_const + devm_led_classdev_register_ext + devm_mfd_add_devices + __devm_of_phy_provider_register + devm_phy_create + devm_phy_get + devm_pinctrl_get + devm_pinctrl_register + devm_platform_get_and_ioremap_resource + devm_platform_ioremap_resource + __devm_regmap_init_i2c + __devm_regmap_init_mmio_clk + devm_regulator_bulk_get + devm_regulator_get + devm_regulator_register + __devm_request_region + devm_request_threaded_irq + __devm_reset_control_get + devm_rtc_device_register + devm_snd_dmaengine_pcm_register + devm_snd_soc_register_card + devm_snd_soc_register_component + devm_thermal_zone_of_sensor_register + devm_usb_get_phy_by_phandle + _dev_notice + dev_pm_opp_add + dev_pm_opp_disable + dev_pm_opp_find_freq_ceil + dev_pm_opp_find_freq_exact + dev_pm_opp_get_freq + dev_pm_opp_get_opp_count + dev_pm_opp_get_voltage + dev_pm_opp_of_register_em + dev_pm_opp_put + dev_pm_qos_add_request + dev_pm_qos_read_value + dev_pm_qos_remove_request + dev_pm_qos_update_request + dev_queue_xmit + devres_add + devres_alloc_node + devres_free + devres_release + dev_set_name + _dev_warn + disable_irq + disable_irq_nosync + disable_percpu_irq + dma_alloc_attrs + dma_async_device_register + dma_async_device_unregister + dma_async_tx_descriptor_init + dma_buf_attach + dma_buf_begin_cpu_access + dma_buf_begin_cpu_access_partial + dma_buf_detach + dma_buf_dynamic_attach + dma_buf_end_cpu_access + dma_buf_end_cpu_access_partial + dma_buf_export + dma_buf_fd + dma_buf_get + dma_buf_map_attachment + dma_buf_mmap + dma_buf_move_notify + dma_buf_pin + dma_buf_put + dma_buf_unmap_attachment + dma_buf_unpin + dma_buf_vmap + dma_buf_vunmap + dmaengine_unmap_put + dma_fence_add_callback + dma_fence_array_create + dma_fence_context_alloc + dma_fence_default_wait + dma_fence_get_stub + dma_fence_init + dma_fence_release + dma_fence_remove_callback + dma_fence_signal + dma_fence_wait_any_timeout + dma_fence_wait_timeout + dma_free_attrs + dma_get_required_mask + dma_get_slave_caps + dma_get_slave_channel + dma_heap_add + dma_heap_buffer_alloc + dma_heap_buffer_free + dma_heap_find + dma_heap_get_dev + dma_heap_get_drvdata + dma_heap_get_name + dma_heap_put + dmam_alloc_attrs + dma_map_page_attrs + dma_map_resource + dma_map_sg_attrs + dma_mmap_attrs + dma_pool_alloc + dma_pool_free + dma_release_channel + dma_request_chan + dma_resv_add_excl_fence + dma_resv_add_shared_fence + dma_resv_get_fences_rcu + dma_resv_reserve_shared + dma_resv_test_signaled_rcu + dma_resv_wait_timeout_rcu + dma_set_coherent_mask + dma_set_mask + dma_sync_sg_for_cpu + dma_sync_sg_for_device + dma_sync_single_for_cpu + dma_sync_single_for_device + dma_unmap_page_attrs + dma_unmap_resource + dma_unmap_sg_attrs + do_SAK + do_wait_intr + down + down_read + down_read_killable + down_read_trylock + down_write + d_path + drain_workqueue + driver_unregister + drm_add_edid_modes + drm_compat_ioctl + drm_connector_attach_dp_subconnector_property + drm_connector_attach_encoder + drm_connector_cleanup + drm_connector_init + drm_connector_init_with_ddc + drm_connector_list_iter_begin + drm_connector_list_iter_end + drm_connector_list_iter_next + drm_connector_unregister + drm_connector_update_edid_property + drm_crtc_cleanup + drm_crtc_helper_set_config + drm_crtc_helper_set_mode + drm_crtc_init + drm_crtc_send_vblank_event + drm_crtc_vblank_count + drm_crtc_vblank_helper_get_vblank_timestamp + drm_crtc_vblank_off + drm_crtc_vblank_on + drm_crtc_vblank_put + drm_cvt_mode + __drm_dbg + __drm_debug + drm_debugfs_create_files + drm_detect_hdmi_monitor + drm_dev_dbg + drm_dev_printk + drm_dev_put + drm_dev_register + drm_dev_unregister + drm_dp_aux_init + drm_dp_aux_register + drm_dp_aux_unregister + drm_dp_bw_code_to_link_rate + drm_dp_channel_eq_ok + drm_dp_clock_recovery_ok + drm_dp_dpcd_read + drm_dp_dpcd_read_link_status + drm_dp_dpcd_write + drm_dp_get_adjust_request_pre_emphasis + drm_dp_get_adjust_request_voltage + drm_dp_link_rate_to_bw_code + drm_dp_link_train_channel_eq_delay + drm_dp_link_train_clock_recovery_delay + drm_dp_set_subconnector_property + drm_edid_header_is_valid + drm_edid_is_valid + drm_edid_to_sad + drm_edid_to_speaker_allocation + drm_encoder_cleanup + drm_encoder_init + __drm_err + drm_framebuffer_cleanup + drm_framebuffer_init + drm_framebuffer_unregister_private + drm_gem_dmabuf_mmap + drm_gem_dmabuf_release + drm_gem_dmabuf_vmap + drm_gem_dmabuf_vunmap + drm_gem_fb_create_handle + drm_gem_fb_destroy + drm_gem_handle_create + drm_gem_object_free + drm_gem_object_lookup + drm_gem_object_release + drm_gem_prime_export + drm_gem_prime_fd_to_handle + drm_gem_prime_handle_to_fd + drm_gem_private_object_init + drm_get_edid + drm_get_format_name + drm_handle_vblank + drm_hdmi_avi_infoframe_from_display_mode + drm_helper_connector_dpms + drm_helper_disable_unused_functions + drm_helper_force_disable_all + drm_helper_hpd_irq_event + drm_helper_mode_fill_fb_struct + drm_helper_probe_single_connector_modes + drm_helper_resume_force_mode + drm_ioctl + drm_irq_install + drm_irq_uninstall + drm_is_current_master + drm_kms_helper_is_poll_worker + drm_kms_helper_poll_disable + drm_kms_helper_poll_enable + drm_kms_helper_poll_fini + drm_kms_helper_poll_init + drm_mm_init + drm_mm_insert_node_in_range + drmm_mode_config_init + drm_mm_print + drm_mm_remove_node + drm_mm_takedown + drm_mode_config_cleanup + drm_mode_create_scaling_mode_property + drm_mode_crtc_set_gamma_size + drm_mode_duplicate + drm_mode_probed_add + drm_mode_set_crtcinfo + drm_modeset_lock + drm_modeset_lock_all + drm_mode_set_name + drm_modeset_unlock + drm_modeset_unlock_all + drm_mode_vrefresh + drm_need_swiotlb + drm_object_attach_property + drm_open + drm_poll + drm_prime_gem_destroy + drm_prime_pages_to_sg + drm_prime_sg_to_page_addr_arrays + drm_printf + __drm_printfn_seq_file + drm_property_create_enum + drm_property_create_range + __drm_puts_seq_file + drm_read + drm_release + drm_syncobj_add_point + drm_syncobj_create + drm_syncobj_find + drm_syncobj_find_fence + drm_syncobj_free + drm_syncobj_get_fd + drm_syncobj_get_handle + drm_syncobj_replace_fence + drm_vblank_init + drm_vma_node_allow + drm_vma_node_is_allowed + drm_vma_node_revoke + dump_backtrace + dump_stack + dw_handle_msi_irq + dw_pcie_host_init + dw_pcie_msi_init + dw_pcie_own_conf_map_bus + dw_pcie_read + dw_pcie_setup_rc + dw_pcie_write + emergency_restart + enable_irq + enable_percpu_irq + event_triggers_call + __fdget + fd_install + find_last_bit + find_next_bit + find_next_zero_bit + find_vma + find_vpid + finish_wait + firmware_request_nowarn + flush_dcache_page + flush_delayed_work + flush_work + flush_workqueue + fput + frame_vector_to_pages + free_irq + free_netdev + __free_pages + free_pages + free_percpu + free_percpu_irq + freezing_slow_path + freq_qos_add_request + freq_qos_remove_request + freq_qos_update_request + freq_scale + gcd + generic_file_llseek + generic_handle_irq + gen_pool_add_owner + gen_pool_alloc_algo_owner + gen_pool_free_owner + get_cpu_device + get_cpu_idle_time + get_device + __get_free_pages + get_random_u32 + __get_task_comm + get_task_exe_file + get_task_mm + get_thermal_instance + get_unused_fd_flags + get_zeroed_page + gic_nonsecure_priorities + gpiochip_generic_free + gpiochip_generic_request + gpiochip_get_data + gpiochip_lock_as_irq + gpiochip_unlock_as_irq + gpiod_direction_input + gpiod_direction_output_raw + gpiod_get_raw_value + gpiod_set_raw_value + gpiod_set_value_cansleep + gpiod_to_irq + gpio_free + gpio_request + gpio_request_one + gpio_to_desc + gserial_alloc_line + gserial_connect + gserial_disconnect + handle_edge_irq + handle_level_irq + handle_nested_irq + handle_simple_irq + handle_sysrq + hdmi_avi_infoframe_pack + hex_dump_to_buffer + hrtimer_active + hrtimer_cancel + hrtimer_forward + hrtimer_init + hrtimer_start_range_ns + i2c_adapter_type + i2c_add_adapter + i2c_add_numbered_adapter + i2c_bit_add_bus + i2c_bus_type + i2c_del_adapter + i2c_del_driver + i2c_for_each_dev + i2c_get_adapter + i2c_new_client_device + i2c_new_dummy_device + i2c_put_adapter + i2c_register_driver + i2c_smbus_read_byte_data + i2c_smbus_read_i2c_block_data + i2c_smbus_read_word_data + i2c_smbus_write_byte_data + i2c_smbus_write_i2c_block_data + i2c_smbus_write_word_data + i2c_smbus_xfer + i2c_transfer + i2c_transfer_buffer_flags + i2c_unregister_device + i2c_verify_client + ida_alloc_range + ida_destroy + ida_free + idr_alloc + idr_destroy + idr_find + idr_for_each + idr_get_next + idr_remove + idr_replace + init_dummy_netdev + init_net + __init_rwsem + __init_swait_queue_head + init_task + init_timer_key + init_wait_entry + __init_waitqueue_head + input_allocate_device + input_close_device + input_event + input_free_device + input_mt_destroy_slots + input_mt_init_slots + input_mt_report_slot_state + input_open_device + input_register_device + input_register_handle + input_register_handler + input_set_abs_params + input_set_capability + input_unregister_device + input_unregister_handle + iomem_resource + iommu_alloc_resv_region + iommu_attach_group + iommu_device_register + iommu_device_sysfs_add + iommu_device_sysfs_remove + iommu_device_unlink + iommu_device_unregister + iommu_dma_reserve_iova + iommu_domain_alloc + iommu_fwspec_add_ids + iommu_fwspec_free + iommu_get_dma_cookie + iommu_get_domain_for_dev + iommu_group_alloc + iommu_group_for_each_dev + iommu_group_get + iommu_group_get_iommudata + iommu_group_set_iommudata + iommu_group_set_name + iommu_iova_to_phys + iommu_map + iommu_map_sg + iommu_put_dma_cookie + iommu_register_device_fault_handler + iommu_report_device_fault + iommu_unmap + iommu_unregister_device_fault_handler + __ioremap + iounmap + __irq_alloc_descs + irq_create_mapping_affinity + __irq_domain_add + irq_domain_get_irq_data + irq_domain_remove + irq_domain_set_info + irq_domain_xlate_onetwocell + irq_domain_xlate_twocell + irq_find_mapping + irq_get_irq_data + irq_modify_status + irq_of_parse_and_map + irq_set_affinity_hint + irq_set_chained_handler_and_data + irq_set_chip + irq_set_chip_and_handler_name + irq_set_chip_data + __irq_set_handler + irq_set_handler_data + irq_set_irq_wake + irq_to_desc + irq_work_queue + irq_work_sync + is_vmalloc_addr + jiffies_64_to_clock_t + jiffies64_to_msecs + jiffies + jiffies_to_msecs + jiffies_to_usecs + kasan_flag_enabled + kasprintf + kernel_kobj + kfree + kfree_const + kimage_voffset + __kmalloc + kmalloc_caches + kmalloc_order_trace + kmem_cache_alloc + kmem_cache_alloc_trace + kmem_cache_create + kmem_cache_destroy + kmem_cache_free + kmemdup + kobject_add + kobject_create_and_add + kobject_get + kobject_init + kobject_init_and_add + kobject_put + kobject_uevent + kobject_uevent_env + krealloc + kstat + kstrdup + kstrndup + kstrtobool_from_user + kstrtoint + kstrtoint_from_user + kstrtol_from_user + kstrtoll + kstrtou8 + kstrtouint + kstrtouint_from_user + kstrtoull + kstrtoull_from_user + ksys_sync_helper + kthread_bind + kthread_cancel_delayed_work_sync + kthread_create_on_node + kthread_delayed_work_timer_fn + kthread_flush_work + __kthread_init_worker + kthread_mod_delayed_work + kthread_park + kthread_parkme + kthread_queue_work + kthread_should_park + kthread_should_stop + kthread_stop + kthread_unpark + kthread_worker_fn + ktime_get + ktime_get_mono_fast_ns + ktime_get_raw_ts64 + ktime_get_real_seconds + ktime_get_real_ts64 + ktime_get_ts64 + ktime_get_with_offset + kvasprintf + kvfree + kvmalloc_node + __list_add_valid + __list_del_entry_valid + __log_post_read_mmio + __log_read_mmio + __log_write_mmio + loops_per_jiffy + memchr + memcpy + __memcpy_fromio + __memcpy_toio + memdup_user + memmove + memremap + memset + __memset_io + memstart_addr + memunmap + mfd_add_devices + mfd_remove_devices + misc_deregister + misc_register + mmput + mmu_interval_notifier_insert + mmu_interval_notifier_remove + mmu_interval_read_begin + mmu_notifier_synchronize + mod_delayed_work_on + mod_node_page_state + mod_timer + module_layout + module_put + __msecs_to_jiffies + msleep + __mutex_init + mutex_is_locked + mutex_lock + mutex_lock_interruptible + mutex_trylock + mutex_unlock + __napi_alloc_skb + napi_complete_done + napi_gro_flush + napi_gro_receive + __napi_schedule + napi_schedule_prep + __netdev_alloc_skb + netif_napi_add + netif_receive_skb + netif_tx_wake_queue + no_llseek + noop_llseek + nr_cpu_ids + nr_irqs + nsecs_to_jiffies + ns_to_timespec64 + __num_online_cpus + of_address_to_resource + of_alias_get_id + of_clk_add_hw_provider + of_clk_add_provider + of_clk_del_provider + of_clk_get_by_name + of_clk_hw_onecell_get + of_clk_src_onecell_get + of_count_phandle_with_args + of_device_get_match_data + of_device_is_available + of_device_is_compatible + of_dma_controller_free + of_dma_controller_register + of_find_compatible_node + of_find_device_by_node + of_find_matching_node_and_match + of_find_node_by_name + of_find_node_by_type + of_find_node_opts_by_path + of_find_property + of_fwnode_ops + of_genpd_add_provider_simple + of_get_child_by_name + of_get_cpu_node + of_get_dma_window + of_get_named_gpio_flags + of_get_next_available_child + of_get_next_child + of_get_property + of_get_regulator_init_data + of_iomap + of_irq_get_byname + of_irq_parse_one + of_machine_is_compatible + of_match_device + of_match_node + of_n_addr_cells + of_node_name_eq + of_n_size_cells + of_parse_phandle + of_parse_phandle_with_fixed_args + of_phandle_iterator_init + of_phandle_iterator_next + of_platform_populate + of_property_count_elems_of_size + of_property_match_string + of_property_read_string + of_property_read_string_helper + of_property_read_u32_index + of_property_read_u64 + of_property_read_variable_u32_array + of_property_read_variable_u8_array + of_prop_next_string + of_prop_next_u32 + of_pwm_xlate_with_flags + of_reserved_mem_device_init_by_idx + of_reserved_mem_device_release + of_reserved_mem_lookup + of_root + of_thermal_get_ntrips + of_usb_host_tpl_support + orderly_poweroff + panic + panic_notifier_list + param_ops_bool + param_ops_charp + param_ops_hexint + param_ops_int + param_ops_long + param_ops_string + param_ops_uint + param_ops_ulong + pci_alloc_irq_vectors_affinity + pci_assign_unassigned_bus_resources + pci_bus_resource_n + pci_bus_type + pci_clear_master + pcie_bandwidth_available + pcie_get_mps + pcie_get_speed_cap + pci_enable_atomic_ops_to_root + pci_find_bus + pci_find_ext_capability + pci_free_irq_vectors + pci_generic_config_read + pci_generic_config_write + pci_get_device + pci_get_domain_bus_and_slot + pci_iomap + pci_irq_vector + pci_load_saved_state + pci_map_rom + pci_msix_vec_count + pci_read_config_dword + pci_read_config_word + pci_release_resource + pci_rescan_bus + pci_resize_resource + pci_restore_state + pci_save_state + pci_set_master + pci_store_saved_state + pci_unmap_rom + pci_write_config_dword + pci_write_config_word + PDE_DATA + __per_cpu_offset + perf_event_update_userpage + perf_pmu_register + perf_pmu_unregister + perf_trace_buf_alloc + perf_trace_run_bpf_submit + pfn_valid + pid_task + pinctrl_add_gpio_range + pinctrl_dev_get_drvdata + pinctrl_force_sleep + pinctrl_get + pinctrl_lookup_state + pinctrl_put + pinctrl_remove_gpio_range + pinctrl_select_state + pin_get_name + pin_user_pages + platform_bus_type + platform_device_add + platform_device_add_properties + platform_device_add_resources + platform_device_alloc + platform_device_del + platform_device_put + platform_device_register + platform_device_register_full + platform_device_unregister + __platform_driver_probe + __platform_driver_register + platform_driver_unregister + platform_get_irq + platform_get_irq_byname + platform_get_resource + platform_get_resource_byname + __platform_register_drivers + pm_genpd_add_subdomain + pm_genpd_init + pm_power_off + __pm_relax + pm_relax + pm_runtime_allow + pm_runtime_autosuspend_expiration + pm_runtime_barrier + __pm_runtime_disable + pm_runtime_enable + pm_runtime_forbid + pm_runtime_force_resume + pm_runtime_force_suspend + pm_runtime_get_if_active + __pm_runtime_idle + pm_runtime_irq_safe + pm_runtime_no_callbacks + __pm_runtime_resume + pm_runtime_set_autosuspend_delay + __pm_runtime_set_status + __pm_runtime_suspend + __pm_runtime_use_autosuspend + __pm_stay_awake + pm_stay_awake + pm_wakeup_dev_event + pm_wakeup_ws_event + power_supply_changed + power_supply_get_by_name + power_supply_get_drvdata + power_supply_get_property + power_supply_is_system_supplied + power_supply_put + power_supply_register + power_supply_set_property + power_supply_unregister + preempt_schedule + preempt_schedule_notrace + prepare_to_wait_event + print_hex_dump + printk + __printk_ratelimit + printk_timed_ratelimit + proc_create + proc_create_data + proc_mkdir + proc_remove + proc_set_size + proc_symlink + put_device + __put_page + __put_task_struct + put_unused_fd + pwmchip_add + pwmchip_remove + pwm_get_chip_data + pwm_set_chip_data + queue_delayed_work_on + queue_work_on + radix_tree_tagged + ___ratelimit + raw_notifier_call_chain + raw_notifier_chain_register + raw_notifier_chain_unregister + _raw_read_lock + _raw_read_lock_irqsave + _raw_read_unlock + _raw_read_unlock_irqrestore + _raw_spin_lock + _raw_spin_lock_irq + _raw_spin_lock_irqsave + _raw_spin_trylock + _raw_spin_unlock + _raw_spin_unlock_irq + _raw_spin_unlock_irqrestore + _raw_write_lock_irqsave + _raw_write_unlock_irqrestore + __rb_erase_color + rb_first_postorder + __rb_insert_augmented + rb_insert_color + rb_next + rb_next_postorder + rcu_barrier + __rcu_read_lock + __rcu_read_unlock + rdev_get_drvdata + rdev_get_id + reciprocal_value + refcount_warn_saturate + refresh_frequency_limits + __refrigerator + regcache_cache_only + regcache_drop_region + regcache_mark_dirty + regcache_sync + __register_chrdev + register_chrdev_region + register_console + register_die_notifier + register_netdev + register_pm_notifier + register_reboot_notifier + register_restart_handler + register_shrinker + register_syscore_ops + regmap_async_complete + regmap_bulk_read + regmap_multi_reg_write + regmap_multi_reg_write_bypassed + regmap_raw_read + regmap_raw_write + regmap_raw_write_async + regmap_read + regmap_register_patch + regmap_update_bits_base + regmap_write + regulator_bulk_disable + regulator_bulk_enable + regulator_disable + regulator_enable + regulator_get + regulator_is_enabled + regulator_list_voltage_linear + regulator_map_voltage_linear + regulator_put + regulator_set_voltage + release_firmware + release_pages + __release_region + remap_pfn_range + remove_cpu + request_firmware + request_firmware_direct + request_firmware_into_buf + request_firmware_nowait + __request_percpu_irq + __request_region + request_threaded_irq + reset_control_assert + reset_control_deassert + return_address + rtc_class_close + rtc_class_open + rtc_read_time + rtc_time64_to_tm + rtc_update_irq + rtc_valid_tm + runqueues + sched_clock + sched_set_fifo_low + sched_set_normal + sched_setscheduler_nocheck + schedule + schedule_timeout + scnprintf + scsi_block_when_processing_errors + __scsi_execute + scsi_print_sense_hdr + sdev_prefix_printk + seq_lseek + seq_printf + seq_puts + seq_read + seq_write + set_cpus_allowed_ptr + set_normalized_timespec64 + set_page_dirty_lock + set_task_cpu + sg_alloc_table + sg_alloc_table_from_pages + sg_free_table + sg_init_table + sg_miter_next + sg_miter_start + sg_miter_stop + sg_nents_for_len + sg_next + __sg_page_iter_next + __sg_page_iter_start + si_meminfo + simple_attr_open + simple_attr_read + simple_attr_release + simple_attr_write + simple_open + simple_read_from_buffer + simple_strtoul + simple_write_to_buffer + single_open + single_open_size + single_release + skb_clone + skb_copy_expand + skb_dequeue + skb_dequeue_tail + skb_pull + skb_push + skb_put + skb_queue_head + skb_queue_purge + skb_queue_tail + skb_trim + smp_call_function + smp_call_function_many + smp_call_function_single + smp_call_on_cpu + snd_compr_stop_error + snd_ctl_add + snd_ctl_boolean_mono_info + snd_ctl_new1 + snd_ctl_notify + snd_device_free + snd_dma_alloc_pages + snd_dmaengine_pcm_prepare_slave_config + snd_dma_free_pages + snd_hwdep_new + snd_pcm_format_physical_width + snd_pcm_format_width + snd_pcm_hw_constraint_list + snd_pcm_lib_free_pages + snd_pcm_lib_ioctl + snd_pcm_lib_malloc_pages + snd_pcm_lib_preallocate_free_for_all + snd_pcm_lib_preallocate_pages + snd_pcm_period_elapsed + snd_pcm_rate_range_to_bits + snd_soc_add_component_controls + snd_soc_bytes_info_ext + snd_soc_bytes_tlv_callback + snd_soc_card_get_kcontrol + snd_soc_component_async_complete + snd_soc_component_disable_pin + snd_soc_component_force_enable_pin + snd_soc_component_init_regmap + snd_soc_component_read + snd_soc_component_set_pll + snd_soc_component_set_sysclk + snd_soc_component_update_bits + snd_soc_component_update_bits_async + snd_soc_component_write + snd_soc_dai_set_bclk_ratio + snd_soc_dai_set_channel_map + snd_soc_dai_set_sysclk + snd_soc_dai_set_tdm_slot + snd_soc_dapm_add_routes + snd_soc_dapm_disable_pin + snd_soc_dapm_enable_pin + snd_soc_dapm_get_enum_double + snd_soc_dapm_get_pin_status + snd_soc_dapm_get_pin_switch + snd_soc_dapm_get_volsw + snd_soc_dapm_ignore_suspend + snd_soc_dapm_info_pin_switch + snd_soc_dapm_kcontrol_dapm + snd_soc_dapm_new_control + snd_soc_dapm_new_controls + snd_soc_dapm_put_enum_double + snd_soc_dapm_put_pin_switch + snd_soc_dapm_put_volsw + snd_soc_dapm_sync + snd_soc_dapm_weak_routes + snd_soc_find_dai + snd_soc_get_enum_double + snd_soc_get_pcm_runtime + snd_soc_get_volsw + snd_soc_get_volsw_range + snd_soc_get_xr_sx + snd_soc_info_enum_double + snd_soc_info_volsw + snd_soc_info_volsw_range + snd_soc_info_volsw_sx + snd_soc_info_xr_sx + snd_soc_new_compress + snd_soc_of_get_dai_link_codecs + snd_soc_of_get_dai_name + snd_soc_of_parse_audio_routing + snd_soc_of_parse_daifmt + snd_soc_of_put_dai_link_codecs + snd_soc_params_to_bclk + snd_soc_pm_ops + snd_soc_put_enum_double + snd_soc_put_volsw + snd_soc_put_volsw_range + snd_soc_put_xr_sx + snd_soc_register_card + snd_soc_register_component + snd_soc_set_runtime_hwparams + snd_soc_unregister_card + snd_soc_unregister_component + snd_vendor_set_ops + snprintf + soc_device_register + sort + __spi_alloc_controller + spi_controller_resume + spi_controller_suspend + spi_finalize_current_message + spi_register_controller + __spi_register_driver + spi_setup + spi_sync + spi_unregister_controller + split_page + sprintf + sprint_symbol + srcu_init_notifier_head + srcu_notifier_call_chain + srcu_notifier_chain_register + srcu_notifier_chain_unregister + sscanf + __stack_chk_fail + __stack_chk_guard + stop_one_cpu_nowait + strcasecmp + strcat + strchr + strcmp + strcpy + stream_open + strim + strlcat + strlcpy + strlen + strncasecmp + strncmp + strncpy + strnlen + strnstr + strpbrk + strsep + strstr + subsys_system_register + __sw_hweight32 + __sw_hweight64 + swiotlb_nr_tbl + sync_file_create + sync_file_get_fence + synchronize_rcu + syscon_regmap_lookup_by_phandle + sysfs_add_file_to_group + sysfs_create_bin_file + sysfs_create_file_ns + sysfs_create_files + sysfs_create_group + sysfs_create_groups + sysfs_create_link + sysfs_notify + sysfs_remove_bin_file + sysfs_remove_file_from_group + sysfs_remove_file_ns + sysfs_remove_files + sysfs_remove_group + sysfs_remove_link + sysrq_mask + system_freezable_wq + system_freezing_cnt + system_highpri_wq + system_state + system_unbound_wq + system_wq + sys_tz + __tasklet_hi_schedule + tasklet_init + tasklet_kill + __tasklet_schedule + task_rq_lock + thermal_cooling_device_unregister + thermal_of_cooling_device_register + thermal_zone_device_disable + thermal_zone_device_enable + thermal_zone_device_is_enabled + thermal_zone_device_update + thermal_zone_get_temp + thermal_zone_get_zone_by_name + thermal_zone_of_sensor_register + thermal_zone_of_sensor_unregister + time64_to_tm + topology_set_thermal_pressure + _totalram_pages + trace_event_buffer_commit + trace_event_buffer_reserve + trace_event_ignore_this_pid + trace_event_raw_init + trace_event_reg + trace_handle_return + __traceiter_android_rvh_can_migrate_task + __traceiter_android_rvh_cpu_cgroup_can_attach + __traceiter_android_rvh_dequeue_task + __traceiter_android_rvh_enqueue_task + __traceiter_android_rvh_find_lowest_rq + __traceiter_android_rvh_sched_newidle_balance + __traceiter_android_rvh_sched_nohz_balancer_kick + __traceiter_android_rvh_sched_rebalance_domains + __traceiter_android_rvh_select_fallback_rq + __traceiter_android_rvh_select_task_rq_fair + __traceiter_android_rvh_select_task_rq_rt + __traceiter_android_vh_cpu_idle_enter + __traceiter_android_vh_cpu_idle_exit + __traceiter_android_rvh_gic_v3_set_affinity + __traceiter_android_vh_ipi_stop + __traceiter_android_vh_scheduler_tick + __traceiter_cpu_idle + __traceiter_device_pm_callback_end + __traceiter_device_pm_callback_start + __traceiter_hrtimer_expire_entry + __traceiter_hrtimer_expire_exit + __traceiter_ipi_entry + __traceiter_ipi_exit + __traceiter_ipi_raise + __traceiter_irq_handler_entry + __traceiter_irq_handler_exit + __traceiter_pelt_cfs_tp + __traceiter_pelt_dl_tp + __traceiter_pelt_irq_tp + __traceiter_pelt_rt_tp + __traceiter_pelt_se_tp + __traceiter_rwmmio_post_read + __traceiter_rwmmio_read + __traceiter_rwmmio_write + __traceiter_sched_overutilized_tp + __traceiter_sched_switch + __traceiter_suspend_resume + __traceiter_workqueue_execute_end + __traceiter_workqueue_execute_start + __tracepoint_android_rvh_can_migrate_task + __tracepoint_android_rvh_cpu_cgroup_can_attach + __tracepoint_android_rvh_dequeue_task + __tracepoint_android_rvh_enqueue_task + __tracepoint_android_rvh_find_lowest_rq + __tracepoint_android_rvh_sched_newidle_balance + __tracepoint_android_rvh_sched_nohz_balancer_kick + __tracepoint_android_rvh_sched_rebalance_domains + __tracepoint_android_rvh_select_fallback_rq + __tracepoint_android_rvh_select_task_rq_fair + __tracepoint_android_rvh_select_task_rq_rt + __tracepoint_android_vh_cpu_idle_enter + __tracepoint_android_vh_cpu_idle_exit + __tracepoint_android_rvh_gic_v3_set_affinity + __tracepoint_android_vh_ipi_stop + __tracepoint_android_vh_scheduler_tick + __tracepoint_cpu_idle + __tracepoint_device_pm_callback_end + __tracepoint_device_pm_callback_start + __tracepoint_hrtimer_expire_entry + __tracepoint_hrtimer_expire_exit + __tracepoint_ipi_entry + __tracepoint_ipi_exit + __tracepoint_ipi_raise + __tracepoint_irq_handler_entry + __tracepoint_irq_handler_exit + __tracepoint_pelt_cfs_tp + __tracepoint_pelt_dl_tp + __tracepoint_pelt_irq_tp + __tracepoint_pelt_rt_tp + __tracepoint_pelt_se_tp + tracepoint_probe_register + tracepoint_probe_unregister + __tracepoint_rwmmio_post_read + __tracepoint_rwmmio_read + __tracepoint_rwmmio_write + __tracepoint_sched_overutilized_tp + __tracepoint_sched_switch + __tracepoint_suspend_resume + __tracepoint_workqueue_execute_end + __tracepoint_workqueue_execute_start + trace_print_array_seq + trace_raw_output_prep + trace_seq_printf + try_module_get + ttm_bo_bulk_move_lru_tail + ttm_bo_device_init + ttm_bo_device_release + ttm_bo_dma_acc_size + ttm_bo_eviction_valuable + ttm_bo_evict_mm + ttm_bo_glob + ttm_bo_init_reserved + ttm_bo_kmap + ttm_bo_kunmap + ttm_bo_lock_delayed_workqueue + ttm_bo_mem_space + ttm_bo_mmap + ttm_bo_mmap_obj + ttm_bo_move_accel_cleanup + ttm_bo_move_memcpy + ttm_bo_move_to_lru_tail + ttm_bo_move_ttm + ttm_bo_put + ttm_bo_unlock_delayed_workqueue + ttm_bo_validate + ttm_dma_page_alloc_debugfs + ttm_dma_populate + ttm_dma_tt_fini + ttm_dma_unpopulate + ttm_eu_backoff_reservation + ttm_eu_fence_buffer_objects + ttm_eu_reserve_buffers + ttm_page_alloc_debugfs + ttm_populate_and_map_pages + ttm_range_man_fini + ttm_range_man_init + ttm_resource_free + ttm_resource_manager_force_list_clean + ttm_resource_manager_init + ttm_sg_tt_init + ttm_tt_destroy_common + ttm_tt_populate + ttm_tt_set_placement_caching + ttm_unmap_and_unpopulate_pages + tty_flip_buffer_push + tty_insert_flip_string_fixed_flag + tty_kref_put + tty_port_tty_get + typec_register_partner + typec_register_port + typec_set_data_role + typec_set_pwr_opmode + typec_set_pwr_role + typec_unregister_partner + typec_unregister_port + uart_add_one_port + uart_console_write + uart_get_baud_rate + uart_parse_options + uart_register_driver + uart_remove_one_port + uart_resume_port + uart_set_options + uart_suspend_port + uart_try_toggle_sysrq + uart_unregister_driver + uart_update_timeout + uart_write_wakeup + __udelay + ufshcd_auto_hibern8_update + ufshcd_pltfrm_init + ufshcd_remove + ufshcd_shutdown + ufshcd_system_resume + ufshcd_system_suspend + __unregister_chrdev + unregister_chrdev_region + unregister_netdev + unregister_pm_notifier + unregister_reboot_notifier + up + update_devfreq + up_read + up_write + usb_add_function + usb_add_hcd + usb_choose_configuration + usb_copy_descriptors + __usb_create_hcd + usb_disabled + usb_enable_autosuspend + usb_ep_autoconfig + usb_function_register + usb_function_unregister + usb_gadget_set_state + usb_hcd_is_primary_hcd + usb_hcd_platform_shutdown + usb_hub_find_child + usb_interface_id + usb_otg_state_string + usb_put_function_instance + usb_put_hcd + usb_register_notify + usb_remove_hcd + usb_speed_string + usb_string_id + usb_unregister_notify + __usecs_to_jiffies + usleep_range + v4l2_ctrl_handler_free + v4l2_ctrl_handler_init_class + v4l2_ctrl_handler_setup + v4l2_ctrl_log_status + v4l2_ctrl_new_custom + v4l2_ctrl_new_std + v4l2_ctrl_new_std_menu + v4l2_device_register + v4l2_device_unregister + v4l2_fh_add + v4l2_fh_del + v4l2_fh_exit + v4l2_fh_init + v4l2_m2m_buf_queue + v4l2_m2m_buf_remove + v4l2_m2m_ctx_init + v4l2_m2m_ctx_release + v4l2_m2m_dqbuf + v4l2_m2m_fop_mmap + v4l2_m2m_fop_poll + v4l2_m2m_get_curr_priv + v4l2_m2m_get_vq + v4l2_m2m_init + v4l2_m2m_ioctl_dqbuf + v4l2_m2m_ioctl_querybuf + v4l2_m2m_ioctl_reqbufs + v4l2_m2m_ioctl_streamoff + v4l2_m2m_ioctl_streamon + v4l2_m2m_job_finish + v4l2_m2m_mmap + v4l2_m2m_next_buf + v4l2_m2m_poll + v4l2_m2m_qbuf + v4l2_m2m_release + v4l2_m2m_reqbufs + v4l2_m2m_streamoff + v4l2_m2m_streamon + v4l2_m2m_try_schedule + v4l_bound_align_image + vabits_actual + vb2_buffer_done + vb2_common_vm_ops + vb2_create_framevec + vb2_destroy_framevec + vb2_dqbuf + vb2_mmap + vb2_ops_wait_finish + vb2_ops_wait_prepare + vb2_plane_cookie + vb2_plane_vaddr + vb2_poll + vb2_qbuf + vb2_querybuf + vb2_queue_init + vb2_queue_release + vb2_reqbufs + vb2_streamoff + vb2_streamon + vb2_wait_for_all_buffers + vfree + video_devdata + video_device_alloc + video_device_release + video_ioctl2 + __video_register_device + video_unregister_device + vmalloc + vmalloc_to_page + vmap + vm_map_pages + vm_map_ram + vm_unmap_ram + vscnprintf + vsnprintf + vunmap + vzalloc + wait_for_completion + wait_for_completion_interruptible + wait_for_completion_interruptible_timeout + wait_for_completion_killable + wait_for_completion_timeout + __wake_up + __wake_up_locked + wake_up_process + wakeup_source_add + wakeup_source_register + wakeup_source_unregister + __warn_printk + watchdog_init_timeout + watchdog_register_device + watchdog_set_restart_priority + watchdog_unregister_device + work_busy + ww_mutex_lock + ww_mutex_lock_interruptible + ww_mutex_unlock + xhci_add_endpoint + xhci_address_device + xhci_check_trb_in_td_math + xhci_gen_setup + xhci_get_endpoint_index + xhci_get_ep_ctx + xhci_init_driver + xhci_initialize_ring_info + xhci_link_segments + xhci_resume + xhci_ring_alloc + xhci_run + xhci_segment_free + xhci_suspend + xhci_trb_virt_to_dma + xhci_vendor_get_ops diff --git a/android/abi_gki_aarch64_generic b/android/abi_gki_aarch64_generic index 79cf6eb8e2de..3013aaac6b71 100644 --- a/android/abi_gki_aarch64_generic +++ b/android/abi_gki_aarch64_generic @@ -50,7 +50,11 @@ bio_endio bio_init bio_put + __bitmap_andnot + __bitmap_clear + __bitmap_equal bitmap_from_arr32 + __bitmap_or bitmap_parse bitmap_parselist bitmap_print_to_pagebuf @@ -79,15 +83,17 @@ blocking_notifier_call_chain blocking_notifier_chain_register blocking_notifier_chain_unregister + bpf_trace_run1 bpf_trace_run10 bpf_trace_run11 - bpf_trace_run1 + bpf_trace_run12 bpf_trace_run2 bpf_trace_run3 bpf_trace_run4 bpf_trace_run5 bpf_trace_run6 bpf_trace_run7 + bpf_trace_run8 bpf_trace_run9 build_skb bus_find_device @@ -157,6 +163,8 @@ clk_hw_get_name clk_hw_get_parent __clk_is_enabled + clk_notifier_register + clk_notifier_unregister clk_prepare clk_put clk_register @@ -207,11 +215,13 @@ cpufreq_driver_fast_switch cpufreq_driver_resolve_freq __cpufreq_driver_target + cpufreq_driver_target cpufreq_enable_fast_switch cpufreq_freq_transition_begin cpufreq_freq_transition_end cpufreq_frequency_table_verify cpufreq_generic_attr + cpufreq_get cpufreq_policy_transition_delay_us cpufreq_quick_get cpufreq_register_driver @@ -246,14 +256,24 @@ cpu_subsys crc8 crc8_populate_msb + crypto_aead_decrypt + crypto_aead_encrypt + crypto_aead_setauthsize + crypto_aead_setkey + crypto_alloc_aead crypto_alloc_base crypto_alloc_shash + crypto_alloc_sync_skcipher crypto_comp_compress crypto_comp_decompress crypto_destroy_tfm crypto_register_alg crypto_register_scomp crypto_shash_digest + crypto_shash_finup + crypto_shash_setkey + crypto_skcipher_encrypt + crypto_skcipher_setkey crypto_unregister_alg crypto_unregister_scomp csum_ipv6_magic @@ -289,16 +309,22 @@ _dev_err devfreq_add_device devfreq_add_governor + devfreq_monitor_resume + devfreq_monitor_start + devfreq_monitor_stop + devfreq_monitor_suspend devfreq_recommended_opp devfreq_register_opp_notifier devfreq_remove_device devfreq_unregister_opp_notifier + devfreq_update_interval dev_fwnode dev_get_by_name device_add_disk device_add_groups device_create device_create_file + device_create_with_groups device_destroy device_find_child device_for_each_child @@ -374,6 +400,8 @@ devm_platform_ioremap_resource devm_platform_ioremap_resource_byname devm_power_supply_register + devm_pwm_get + devm_regmap_add_irq_chip __devm_regmap_init __devm_regmap_init_i2c __devm_regmap_init_spi @@ -467,6 +495,8 @@ dma_map_resource dma_map_sg_attrs dma_mmap_attrs + dma_pool_alloc + dma_pool_free dma_release_channel dma_request_chan dma_set_coherent_mask @@ -484,6 +514,7 @@ downgrade_write down_interruptible down_read + down_read_trylock down_timeout down_trylock down_write @@ -496,8 +527,10 @@ drm_atomic_add_affected_connectors drm_atomic_add_affected_planes drm_atomic_commit + drm_atomic_get_connector_state drm_atomic_get_crtc_state drm_atomic_get_new_connector_for_encoder + drm_atomic_get_old_connector_for_encoder drm_atomic_get_plane_state drm_atomic_get_private_obj_state drm_atomic_helper_bridge_destroy_state @@ -529,11 +562,13 @@ __drm_atomic_helper_private_obj_duplicate_state drm_atomic_helper_set_config drm_atomic_helper_setup_commit + drm_atomic_helper_shutdown drm_atomic_helper_swap_state drm_atomic_helper_update_plane drm_atomic_helper_wait_for_dependencies drm_atomic_helper_wait_for_fences drm_atomic_helper_wait_for_flip_done + drm_atomic_nonblocking_commit drm_atomic_normalize_zpos drm_atomic_private_obj_fini drm_atomic_private_obj_init @@ -557,6 +592,7 @@ drm_connector_unregister drm_crtc_arm_vblank_event drm_crtc_cleanup + __drm_crtc_commit_free drm_crtc_enable_color_mgmt drm_crtc_handle_vblank drm_crtc_init_with_planes @@ -655,7 +691,9 @@ drm_rect_intersect drm_release drm_rotation_simplify + drm_self_refresh_helper_alter_state drm_send_event + drm_send_event_locked drm_universal_plane_init drm_vblank_init drm_writeback_connector_init @@ -688,6 +726,7 @@ extcon_set_property extcon_set_property_capability extcon_set_state_sync + failure_tracking fasync_helper __fdget fd_install @@ -695,6 +734,7 @@ file_path filp_close filp_open_block + find_extend_vma find_get_pid find_next_bit find_next_zero_bit @@ -756,6 +796,7 @@ get_unused_fd_flags get_user_pages get_user_pages_fast + get_user_pages_remote get_vaddr_frames gic_nonsecure_priorities glob_match @@ -792,10 +833,18 @@ handle_edge_irq handle_level_irq handle_nested_irq + handle_simple_irq handle_sysrq have_governor_per_policy + hex2bin hex_dump_to_buffer hex_to_bin + hid_add_device + hid_allocate_device + hid_debug + hid_destroy_device + hid_input_report + hid_parse_report hrtimer_active hrtimer_cancel hrtimer_forward @@ -929,23 +978,24 @@ irq_work_queue irq_work_sync is_vmalloc_addr - jiffies64_to_msecs jiffies + jiffies64_to_msecs jiffies_to_msecs jiffies_to_usecs kasan_flag_enabled kasprintf kernel_cpustat kernel_kobj - kernel_read kernel_restart kern_mount kern_unmount + __kfifo_alloc __kfifo_free __kfifo_in __kfifo_init __kfifo_out kfree + kfree_sensitive kfree_skb kill_anon_super kill_fasync @@ -967,6 +1017,7 @@ kobject_init_and_add kobject_put kobject_uevent + kobject_uevent_env kobj_sysfs_ops krealloc kstat @@ -1043,8 +1094,8 @@ memmove memparse memremap - memset64 memset + memset64 memstart_addr memunmap mfd_add_devices @@ -1106,8 +1157,8 @@ nla_append nla_memcpy __nla_parse - nla_put_64bit nla_put + nla_put_64bit nla_put_nohdr nla_reserve nla_strlcpy @@ -1182,6 +1233,7 @@ of_property_read_string_helper of_property_read_u32_index of_property_read_u64 + of_property_read_u64_index of_property_read_variable_u16_array of_property_read_variable_u32_array of_property_read_variable_u64_array @@ -1198,6 +1250,7 @@ of_usb_host_tpl_support page_endio page_mapping + __page_pinner_migration_failed panic panic_notifier_list param_array_ops @@ -1244,6 +1297,7 @@ perf_event_create_kernel_counter perf_event_enable perf_event_pause + perf_event_read_local perf_event_read_value perf_event_release_kernel perf_event_update_userpage @@ -1326,13 +1380,17 @@ prandom_u32 preempt_schedule preempt_schedule_notrace + prepare_to_wait prepare_to_wait_event print_hex_dump printk + printk_deferred proc_create proc_create_data + proc_create_single_data proc_dointvec proc_dostring + proc_douintvec_minmax proc_mkdir proc_mkdir_data proc_remove @@ -1404,6 +1462,7 @@ register_restart_handler register_shrinker register_syscore_ops + register_sysctl register_sysctl_table register_virtio_device register_virtio_driver @@ -1411,6 +1470,7 @@ regmap_bulk_read regmap_bulk_write regmap_get_device + regmap_irq_get_virq regmap_multi_reg_write regmap_multi_reg_write_bypassed regmap_raw_read @@ -1429,6 +1489,7 @@ regulator_get regulator_get_optional regulator_get_voltage_sel_regmap + regulator_is_enabled regulator_is_enabled_regmap regulator_list_voltage_linear regulator_map_voltage_linear @@ -1534,6 +1595,7 @@ __sg_page_iter_next __sg_page_iter_start sg_scsi_ioctl + shmem_file_setup simple_attr_open simple_attr_read simple_attr_release @@ -1585,7 +1647,9 @@ snd_soc_card_get_kcontrol snd_soc_card_jack_new snd_soc_component_disable_pin + snd_soc_component_enable_pin snd_soc_component_force_enable_pin + snd_soc_component_get_pin_status snd_soc_component_read snd_soc_component_set_jack snd_soc_component_set_pll @@ -1596,6 +1660,7 @@ snd_soc_dai_set_sysclk snd_soc_dai_set_tdm_slot snd_soc_dapm_add_routes + snd_soc_dapm_del_routes snd_soc_dapm_disable_pin snd_soc_dapm_disable_pin_unlocked snd_soc_dapm_force_enable_pin_unlocked @@ -1613,19 +1678,24 @@ snd_soc_get_enum_double snd_soc_get_volsw snd_soc_get_volsw_range + snd_soc_get_volsw_sx snd_soc_info_enum_double snd_soc_info_volsw snd_soc_info_volsw_range + snd_soc_info_volsw_sx snd_soc_jack_report + snd_soc_lookup_component snd_soc_new_compress snd_soc_of_get_dai_link_codecs snd_soc_of_get_dai_name snd_soc_of_parse_card_name snd_soc_of_parse_daifmt + snd_soc_params_to_bclk snd_soc_params_to_frame_size snd_soc_put_enum_double snd_soc_put_volsw snd_soc_put_volsw_range + snd_soc_put_volsw_sx snd_soc_register_card snd_soc_register_component snd_soc_runtime_set_dai_fmt @@ -1698,6 +1768,7 @@ synchronize_net synchronize_rcu syscon_regmap_lookup_by_phandle + sysctl_sched_latency sysfs_add_file_to_group sysfs_create_file_ns sysfs_create_files @@ -1716,6 +1787,7 @@ sysrq_mask system_freezing_cnt system_highpri_wq + system_long_wq system_power_efficient_wq system_state system_unbound_wq @@ -1726,6 +1798,7 @@ __tasklet_schedule task_may_not_preempt __task_pid_nr_ns + task_rq_lock tcpci_get_tcpm_port tcpci_irq tcpci_register_port @@ -1761,16 +1834,81 @@ trace_event_raw_init trace_event_reg trace_handle_return + __traceiter_android_rvh_cgroup_force_kthread_migration + __traceiter_android_rvh_check_preempt_wakeup + __traceiter_android_rvh_cpu_overutilized + __traceiter_android_rvh_dequeue_task + __traceiter_android_rvh_find_energy_efficient_cpu + __traceiter_android_rvh_irqs_disable + __traceiter_android_rvh_irqs_enable + __traceiter_android_rvh_post_init_entity_util_avg + __traceiter_android_rvh_preempt_disable + __traceiter_android_rvh_preempt_enable + __traceiter_android_rvh_select_task_rq_rt + __traceiter_android_rvh_set_iowait + __traceiter_android_rvh_typec_tcpci_chk_contaminant + __traceiter_android_rvh_typec_tcpci_get_vbus + __traceiter_android_rvh_uclamp_eff_get + __traceiter_android_rvh_util_est_update + __traceiter_android_vh_arch_set_freq_scale + __traceiter_android_vh_cma_alloc_finish + __traceiter_android_vh_cma_alloc_start + __traceiter_android_vh_cpu_idle_enter + __traceiter_android_vh_cpu_idle_exit + __traceiter_android_vh_enable_thermal_genl_check + __traceiter_android_vh_ep_create_wakeup_source + __traceiter_android_vh_ipi_stop + __traceiter_android_vh_meminfo_proc_show + __traceiter_android_vh_of_i2c_get_board_info + __traceiter_android_vh_pagecache_get_page + __traceiter_android_vh_rmqueue + __traceiter_android_vh_thermal_pm_notify_suspend + __traceiter_android_vh_timerfd_create + __traceiter_android_vh_typec_store_partner_src_caps + __traceiter_android_vh_typec_tcpci_override_toggling + __traceiter_android_vh_typec_tcpm_adj_current_limit + __traceiter_android_vh_typec_tcpm_get_timer + __traceiter_android_vh_typec_tcpm_log + __traceiter_android_vh_ufs_check_int_errors + __traceiter_android_vh_ufs_compl_command + __traceiter_android_vh_ufs_fill_prdt + __traceiter_android_vh_ufs_prepare_command + __traceiter_android_vh_ufs_send_command + __traceiter_android_vh_ufs_send_tm_command + __traceiter_android_vh_ufs_send_uic_command + __traceiter_android_vh_ufs_update_sysfs __traceiter_clock_set_rate __traceiter_cpu_frequency + __traceiter_device_pm_callback_end + __traceiter_device_pm_callback_start __traceiter_dwc3_readl __traceiter_dwc3_writel __traceiter_gpu_mem_total + __traceiter_pelt_cfs_tp + __traceiter_pelt_dl_tp + __traceiter_pelt_irq_tp + __traceiter_pelt_rt_tp + __traceiter_pelt_se_tp + __traceiter_rwmmio_post_read + __traceiter_rwmmio_read + __traceiter_rwmmio_write + __traceiter_sched_cpu_capacity_tp + __traceiter_sched_overutilized_tp + __traceiter_sched_switch + __traceiter_sched_util_est_cfs_tp __traceiter_sched_util_est_se_tp + __traceiter_suspend_resume trace_output_call + __tracepoint_android_rvh_cgroup_force_kthread_migration + __tracepoint_android_rvh_check_preempt_wakeup __tracepoint_android_rvh_cpu_overutilized __tracepoint_android_rvh_dequeue_task __tracepoint_android_rvh_find_energy_efficient_cpu + __tracepoint_android_rvh_irqs_disable + __tracepoint_android_rvh_irqs_enable + __tracepoint_android_rvh_post_init_entity_util_avg + __tracepoint_android_rvh_preempt_disable + __tracepoint_android_rvh_preempt_enable __tracepoint_android_rvh_select_task_rq_rt __tracepoint_android_rvh_set_iowait __tracepoint_android_rvh_typec_tcpci_chk_contaminant @@ -1785,13 +1923,17 @@ __tracepoint_android_vh_enable_thermal_genl_check __tracepoint_android_vh_ep_create_wakeup_source __tracepoint_android_vh_ipi_stop + __tracepoint_android_vh_meminfo_proc_show + __tracepoint_android_vh_of_i2c_get_board_info __tracepoint_android_vh_pagecache_get_page __tracepoint_android_vh_rmqueue + __tracepoint_android_vh_thermal_pm_notify_suspend __tracepoint_android_vh_timerfd_create __tracepoint_android_vh_typec_store_partner_src_caps __tracepoint_android_vh_typec_tcpci_override_toggling __tracepoint_android_vh_typec_tcpm_adj_current_limit __tracepoint_android_vh_typec_tcpm_get_timer + __tracepoint_android_vh_typec_tcpm_log __tracepoint_android_vh_ufs_check_int_errors __tracepoint_android_vh_ufs_compl_command __tracepoint_android_vh_ufs_fill_prdt @@ -1819,11 +1961,14 @@ __tracepoint_rwmmio_write __tracepoint_sched_cpu_capacity_tp __tracepoint_sched_overutilized_tp + __tracepoint_sched_switch __tracepoint_sched_util_est_cfs_tp __tracepoint_sched_util_est_se_tp __tracepoint_suspend_resume trace_print_array_seq + trace_print_bitmask_seq trace_print_flags_seq + trace_print_hex_seq trace_print_symbols_seq trace_raw_output_prep trace_seq_printf @@ -1894,6 +2039,7 @@ usb_copy_descriptors __usb_create_hcd usb_disabled + usb_enable_autosuspend usb_ep_autoconfig usb_ep_disable usb_ep_enable @@ -1902,6 +2048,7 @@ usb_gadget_set_state usb_hcd_is_primary_hcd usb_hcd_platform_shutdown + usb_hub_find_child usb_interface_id usb_otg_state_string usb_put_function_instance @@ -1911,6 +2058,7 @@ usb_role_switch_get_drvdata usb_role_switch_register usb_role_switch_unregister + usb_speed_string usb_string_id usb_unregister_notify __usecs_to_jiffies @@ -2002,6 +2150,7 @@ vm_map_pages vm_map_ram vm_unmap_ram + vprintk vring_del_virtqueue vring_interrupt vring_new_virtqueue @@ -2039,6 +2188,9 @@ __xfrm_state_destroy xfrm_state_lookup_byspi xfrm_stateonly_find + xhci_address_device + xhci_bus_resume + xhci_bus_suspend xhci_gen_setup xhci_get_ep_ctx xhci_get_slot_ctx diff --git a/android/abi_gki_aarch64_hikey960 b/android/abi_gki_aarch64_hikey960 index 9bb6a5dbcae2..2515273bd123 100644 --- a/android/abi_gki_aarch64_hikey960 +++ b/android/abi_gki_aarch64_hikey960 @@ -25,6 +25,8 @@ blk_mq_quiesce_queue blk_mq_requeue_request blk_mq_start_request + blk_mq_tagset_busy_iter + blk_mq_tagset_wait_completed_request blk_mq_unquiesce_queue blk_put_queue blk_queue_flag_clear @@ -44,6 +46,7 @@ cdev_device_add cdev_device_del cdev_init + __cfi_slowpath __check_object_size __class_create class_destroy @@ -193,7 +196,6 @@ kstrtouint kstrtoul_from_user kstrtoull - kthread_create_on_node ktime_get ktime_get_mono_fast_ns ktime_get_with_offset @@ -308,7 +310,6 @@ __rcu_read_unlock rdev_get_drvdata refcount_warn_saturate - register_shrinker regmap_read regmap_update_bits_base regmap_write @@ -376,6 +377,9 @@ trace_event_raw_init trace_event_reg trace_handle_return + __traceiter_rwmmio_post_read + __traceiter_rwmmio_read + __traceiter_rwmmio_write __tracepoint_rwmmio_post_read __tracepoint_rwmmio_read __tracepoint_rwmmio_write @@ -398,7 +402,6 @@ wait_for_completion wait_for_completion_timeout __wake_up - wake_up_process __warn_printk xa_destroy xa_erase @@ -507,12 +510,6 @@ get_cpu_device policy_has_boost_freq -# required by deferred-free-helper.ko - freezing_slow_path - __refrigerator - sched_set_normal - system_freezing_cnt - # required by dw_mmc.ko debugfs_create_u32 debugfs_create_x64 @@ -809,6 +806,7 @@ kimage_voffset kstrdup kstrtobool_from_user + kthread_create_on_node kthread_should_stop kthread_stop ktime_add_safe @@ -830,6 +828,7 @@ rb_next rb_prev rb_replace_node + register_shrinker regulator_get_optional regulator_put __release_region @@ -857,6 +856,7 @@ vmf_insert_pfn vm_mmap vzalloc + wake_up_process # required by mmc_block.ko blk_get_request @@ -882,6 +882,8 @@ mmc_cqe_post_req mmc_cqe_recovery mmc_cqe_start_req + mmc_crypto_prepare_req + mmc_crypto_setup_queue mmc_detect_card_removed mmc_erase mmc_erase_group_aligned @@ -978,8 +980,6 @@ blk_mq_complete_request_remote blk_mq_map_queues blk_mq_pci_map_queues - blk_mq_tagset_busy_iter - blk_mq_tagset_wait_completed_request blk_mq_tag_to_rq blk_mq_update_nr_hw_queues device_release_driver @@ -1033,7 +1033,6 @@ config_group_init config_group_init_type_name _ctype - filp_open fs_bio_set hex_to_bin iov_iter_bvec @@ -1113,10 +1112,6 @@ usb_put_hcd usb_remove_hcd -# required by page_pool.ko - contig_page_data - mod_node_page_state - # required by phy-hi3660-usb3.ko __devm_of_phy_provider_register devm_phy_create @@ -1212,6 +1207,11 @@ __unregister_chrdev # required by system_heap.ko + deferred_free + dmabuf_page_pool_alloc + dmabuf_page_pool_create + dmabuf_page_pool_destroy + dmabuf_page_pool_free dma_heap_get_dev __sg_page_iter_next __sg_page_iter_start diff --git a/android/abi_gki_aarch64_mtk b/android/abi_gki_aarch64_mtk new file mode 100644 index 000000000000..1150db28bc95 --- /dev/null +++ b/android/abi_gki_aarch64_mtk @@ -0,0 +1,1987 @@ +[abi_symbol_list] + access_process_vm + activate_task + add_timer + add_uevent_var + add_wait_queue + adjust_managed_page_count + alarm_cancel + alarm_init + alarm_start + alarm_start_relative + alarm_try_to_cancel + alloc_anon_inode + alloc_chrdev_region + __alloc_disk_node + alloc_etherdev_mqs + alloc_io_pgtable_ops + alloc_netdev_mqs + alloc_pages_exact + __alloc_pages_nodemask + __alloc_percpu + __alloc_skb + alloc_workqueue + android_debug_symbol + android_rvh_probe_register + anon_inode_getfd + anon_inode_getfile + __arch_clear_user + __arch_copy_from_user + __arch_copy_to_user + arch_timer_read_counter + arm64_const_caps_ready + arm64_use_ng_mappings + __arm_smccc_smc + arp_tbl + atomic_notifier_call_chain + atomic_notifier_chain_register + atomic_notifier_chain_unregister + autoremove_wake_function + bcmp + bdget_disk + bdput + bio_endio + __bitmap_andnot + __bitmap_clear + __bitmap_equal + bitmap_find_free_region + bitmap_find_next_zero_area_off + bitmap_free + bitmap_from_arr32 + __bitmap_or + bitmap_print_to_pagebuf + bitmap_release_region + __bitmap_set + bitmap_to_arr32 + __bitmap_weight + bitmap_zalloc + blk_alloc_queue + blk_cleanup_queue + blk_queue_flag_clear + blk_queue_flag_set + blk_queue_io_min + blk_queue_io_opt + blk_queue_logical_block_size + blk_queue_max_discard_sectors + blk_queue_max_write_zeroes_sectors + blk_queue_physical_block_size + blocking_notifier_call_chain + blocking_notifier_chain_register + blocking_notifier_chain_unregister + bpf_trace_run1 + bpf_trace_run2 + bpf_trace_run3 + bpf_trace_run4 + bpf_trace_run5 + bpf_trace_run6 + bpf_trace_run7 + bpf_trace_run8 + bpf_trace_run9 + bus_register + bus_set_iommu + bus_unregister + cache_line_size + cancel_delayed_work + cancel_delayed_work_sync + cancel_work_sync + cdev_add + cdev_alloc + cdev_del + cdev_device_add + cdev_device_del + cdev_init + __cfg80211_alloc_event_skb + __cfg80211_alloc_reply_skb + cfg80211_cac_event + cfg80211_chandef_create + cfg80211_ch_switch_notify + cfg80211_classify8021d + cfg80211_connect_done + cfg80211_del_sta_sinfo + cfg80211_disconnected + cfg80211_external_auth_request + cfg80211_find_elem_match + cfg80211_ft_event + cfg80211_get_bss + cfg80211_inform_bss_data + cfg80211_inform_bss_frame_data + cfg80211_mgmt_tx_status + cfg80211_michael_mic_failure + cfg80211_new_sta + cfg80211_pmksa_candidate_notify + cfg80211_put_bss + cfg80211_radar_event + cfg80211_ready_on_channel + cfg80211_remain_on_channel_expired + cfg80211_roamed + cfg80211_rx_mgmt_khz + cfg80211_scan_done + cfg80211_sched_scan_results + cfg80211_sched_scan_stopped + __cfg80211_send_event_skb + cfg80211_tdls_oper_request + cfg80211_unlink_bss + cfg80211_vendor_cmd_reply + __cfi_slowpath + __check_object_size + check_preempt_curr + __class_create + class_destroy + class_find_device + class_for_each_device + __class_register + class_unregister + clear_page + __ClearPageMovable + clk_bulk_disable + clk_bulk_enable + clk_bulk_prepare + clk_bulk_put_all + clk_bulk_unprepare + clk_disable + clk_divider_ops + clk_enable + clk_gate_ops + clk_get + __clk_get_hw + __clk_get_name + clk_get_parent + clk_get_rate + clk_hw_get_name + clk_hw_get_num_parents + clk_hw_get_parent + clk_hw_get_parent_by_index + clk_hw_get_rate + clk_hw_is_enabled + clk_hw_is_prepared + __clk_is_enabled + clk_mux_ops + clk_notifier_register + clk_prepare + clk_put + clk_register + clk_register_composite + clk_register_divider_table + clk_register_fixed_factor + clk_register_fixed_rate + clk_set_parent + clk_set_rate + clk_unprepare + clocks_calc_mult_shift + __close_fd + compat_alloc_user_space + compat_ptr_ioctl + complete + complete_all + completion_done + component_add + component_bind_all + component_del + component_master_add_with_match + component_master_del + component_match_add_release + component_unbind_all + console_drivers + console_suspend_enabled + console_unlock + __const_udelay + consume_skb + contig_page_data + _copy_from_iter + copy_from_kernel_nofault + _copy_to_iter + __cpu_active_mask + cpu_all_bits + cpu_bit_bitmap + cpufreq_add_update_util_hook + cpufreq_cpu_get + cpufreq_disable_fast_switch + cpufreq_driver_fast_switch + cpufreq_driver_resolve_freq + __cpufreq_driver_target + cpufreq_enable_fast_switch + cpufreq_generic_attr + cpufreq_generic_frequency_table_verify + cpufreq_get_policy + cpufreq_policy_transition_delay_us + cpufreq_quick_get + cpufreq_register_driver + cpufreq_register_governor + cpufreq_remove_update_util_hook + cpufreq_table_index_unsorted + cpufreq_this_cpu_can_update + cpufreq_unregister_driver + cpufreq_unregister_governor + cpu_hotplug_disable + cpu_hotplug_enable + __cpuhp_remove_state + __cpuhp_setup_state + __cpuhp_state_add_instance + __cpuhp_state_remove_instance + cpu_hwcap_keys + cpu_hwcaps + cpuidle_driver_state_disabled + cpuidle_get_driver + cpuidle_pause_and_lock + cpuidle_resume_and_unlock + cpu_latency_qos_add_request + cpu_latency_qos_remove_request + cpu_latency_qos_update_request + cpumask_any_but + cpumask_next + cpumask_next_and + cpu_number + __cpu_online_mask + __cpu_possible_mask + __cpu_present_mask + cpu_scale + cpu_subsys + cpu_topology + crc32_le + crc8 + crc8_populate_msb + crypto_alloc_base + crypto_alloc_shash + crypto_comp_compress + crypto_comp_decompress + crypto_destroy_tfm + crypto_has_alg + crypto_register_alg + crypto_register_scomp + crypto_shash_final + crypto_shash_update + crypto_unregister_alg + crypto_unregister_scomp + _ctype + dapm_clock_event + dapm_kcontrol_get_value + dapm_regulator_event + deactivate_task + debugfs_attr_read + debugfs_attr_write + debugfs_create_blob + debugfs_create_bool + debugfs_create_devm_seqfile + debugfs_create_dir + debugfs_create_file + debugfs_create_regset32 + debugfs_create_symlink + debugfs_create_u32 + debugfs_create_u64 + debugfs_create_u8 + debugfs_create_x32 + debugfs_lookup + debugfs_remove + debug_locks_off + dec_zone_page_state + default_llseek + deferred_free + delayed_work_timer_fn + del_gendisk + del_timer + del_timer_sync + destroy_workqueue + dev_base_lock + dev_driver_string + _dev_emerg + _dev_err + dev_err_probe + devfreq_add_device + devfreq_add_governor + devfreq_cooling_unregister + devfreq_get_devfreq_by_phandle + devfreq_monitor_resume + devfreq_monitor_start + devfreq_monitor_stop + devfreq_monitor_suspend + devfreq_recommended_opp + devfreq_register_opp_notifier + devfreq_remove_device + devfreq_remove_governor + devfreq_resume_device + devfreq_suspend_device + devfreq_unregister_opp_notifier + devfreq_update_interval + dev_fwnode + dev_get_by_name + dev_get_regmap + dev_get_stats + device_add_disk + device_create + device_create_bin_file + device_create_file + device_destroy + device_for_each_child + device_get_child_node_count + device_get_match_data + device_get_next_child_node + device_initialize + device_init_wakeup + device_link_add + device_link_remove + device_property_present + device_property_read_u32_array + device_register + device_remove_bin_file + device_remove_file + device_rename + device_set_of_node_from_dev + device_unregister + _dev_info + __dev_kfree_skb_any + __devm_alloc_percpu + devm_blk_ksm_init + devm_clk_bulk_get + devm_clk_get + devm_clk_get_optional + devm_clk_register + devm_devfreq_add_device + devm_devfreq_register_notifier + devm_devfreq_remove_device + devm_devfreq_unregister_notifier + devm_extcon_dev_allocate + devm_extcon_dev_register + devm_extcon_register_notifier + devm_free_irq + devm_fwnode_pwm_get + devm_gpiod_get + devm_gpiod_get_index + devm_gpiod_put + devm_gpio_free + devm_gpio_request + devm_gpio_request_one + devm_i2c_new_dummy_device + devm_iio_channel_get + devm_iio_device_alloc + __devm_iio_device_register + devm_input_allocate_device + devm_ioremap + devm_ioremap_resource + devm_kasprintf + devm_kfree + devm_kmalloc + devm_led_classdev_register_ext + devm_led_classdev_unregister + devm_mbox_controller_register + devm_memremap + devm_mfd_add_devices + devm_nvmem_cell_get + devm_nvmem_device_get + devm_nvmem_register + devm_of_phy_get_by_index + __devm_of_phy_provider_register + devm_of_platform_populate + devm_phy_create + devm_phy_get + devm_pinctrl_get + devm_pinctrl_put + devm_pinctrl_register_and_init + devm_platform_ioremap_resource + devm_platform_ioremap_resource_byname + devm_power_supply_get_by_phandle + devm_power_supply_register + devm_regmap_add_irq_chip + devm_regmap_field_alloc + __devm_regmap_init + __devm_regmap_init_i2c + __devm_regmap_init_mmio_clk + devm_regulator_get + devm_regulator_get_optional + devm_regulator_register + devm_regulator_register_notifier + devm_regulator_unregister_notifier + devm_request_threaded_irq + __devm_reset_control_get + devm_reset_controller_register + devm_rtc_allocate_device + devm_snd_soc_register_card + devm_snd_soc_register_component + devm_spi_register_controller + devm_thermal_zone_of_sensor_register + devm_watchdog_register_device + _dev_notice + dev_pm_genpd_add_notifier + dev_pm_genpd_set_performance_state + dev_pm_opp_add + dev_pm_opp_find_freq_ceil + dev_pm_opp_find_freq_ceil_by_volt + dev_pm_opp_find_freq_exact + dev_pm_opp_find_freq_floor + dev_pm_opp_get_freq + dev_pm_opp_get_level + dev_pm_opp_get_opp_count + dev_pm_opp_get_opp_table + dev_pm_opp_get_voltage + dev_pm_opp_of_add_table + dev_pm_opp_of_add_table_indexed + dev_pm_opp_of_remove_table + dev_pm_opp_put + dev_pm_opp_put_opp_table + dev_pm_opp_put_regulators + dev_pm_opp_remove_all_dynamic + dev_pm_opp_set_regulators + dev_pm_qos_update_request + dev_printk + dev_queue_xmit + devres_add + devres_alloc_node + devres_free + devres_release + dev_set_name + _dev_warn + disable_irq + disable_irq_nosync + disable_percpu_irq + disk_end_io_acct + disk_start_io_acct + dma_alloc_attrs + dma_async_device_register + dma_async_device_unregister + dma_async_tx_descriptor_init + dma_buf_attach + dma_buf_begin_cpu_access + dma_buf_detach + dma_buf_end_cpu_access + dma_buf_export + dma_buf_fd + dma_buf_get + dma_buf_map_attachment + dma_buf_mmap + dmabuf_page_pool_alloc + dmabuf_page_pool_create + dmabuf_page_pool_destroy + dmabuf_page_pool_free + dma_buf_put + dma_buf_unmap_attachment + dma_buf_vmap + dma_buf_vunmap + dma_fence_add_callback + dma_fence_context_alloc + dma_fence_default_wait + dma_fence_free + dma_fence_get_status + dma_fence_init + dma_fence_release + dma_fence_remove_callback + dma_fence_signal + dma_fence_signal_locked + dma_fence_signal_timestamp_locked + dma_fence_wait_timeout + dma_free_attrs + dma_get_sgtable_attrs + dma_heap_add + dma_heap_get_dev + dma_heap_get_name + dmam_alloc_attrs + dma_map_page_attrs + dma_map_sg_attrs + dmam_free_coherent + dma_mmap_attrs + dma_pool_alloc + dma_pool_create + dma_pool_destroy + dma_pool_free + dma_resv_wait_timeout_rcu + dma_set_coherent_mask + dma_set_mask + dma_sync_sg_for_cpu + dma_sync_sg_for_device + dma_sync_single_for_cpu + dma_sync_single_for_device + dma_unmap_page_attrs + dma_unmap_sg_attrs + do_exit + do_wait_intr_irq + down + downgrade_write + down_interruptible + down_read + down_read_trylock + down_timeout + down_trylock + down_write + d_path + dput + driver_create_file + driver_remove_file + driver_unregister + drm_add_modes_noedid + drm_atomic_add_affected_connectors + drm_atomic_get_crtc_state + drm_atomic_helper_check + drm_atomic_helper_check_plane_state + drm_atomic_helper_cleanup_planes + drm_atomic_helper_commit_modeset_disables + drm_atomic_helper_commit_modeset_enables + drm_atomic_helper_commit_planes + drm_atomic_helper_connector_destroy_state + drm_atomic_helper_connector_duplicate_state + drm_atomic_helper_connector_reset + __drm_atomic_helper_crtc_destroy_state + __drm_atomic_helper_crtc_duplicate_state + drm_atomic_helper_disable_plane + drm_atomic_helper_legacy_gamma_set + drm_atomic_helper_page_flip + __drm_atomic_helper_plane_destroy_state + __drm_atomic_helper_plane_duplicate_state + drm_atomic_helper_prepare_planes + drm_atomic_helper_resume + drm_atomic_helper_set_config + drm_atomic_helper_shutdown + drm_atomic_helper_suspend + drm_atomic_helper_swap_state + drm_atomic_helper_update_plane + drm_atomic_helper_wait_for_vblanks + drm_atomic_state_clear + drm_atomic_state_default_release + __drm_atomic_state_free + drm_atomic_state_init + drm_bridge_attach + drm_calc_timestamping_constants + drm_compat_ioctl + drm_connector_attach_encoder + drm_connector_cleanup + drm_connector_init + drm_crtc_cleanup + drm_crtc_handle_vblank + drm_crtc_init_with_planes + drm_crtc_send_vblank_event + drm_crtc_vblank_get + drm_crtc_vblank_off + drm_crtc_vblank_on + drm_crtc_vblank_put + __drm_dbg + drm_dev_alloc + drm_dev_put + drm_dev_register + drm_dev_unregister + drm_encoder_cleanup + drm_encoder_init + __drm_err + drm_format_info + drm_framebuffer_cleanup + drm_framebuffer_init + drm_framebuffer_lookup + drm_framebuffer_remove + drm_gem_cma_vm_ops + drm_gem_create_mmap_offset + drm_gem_dumb_destroy + drm_gem_handle_create + drm_gem_mmap + drm_gem_mmap_obj + drm_gem_object_free + drm_gem_object_init + drm_gem_object_lookup + drm_gem_object_release + drm_gem_prime_export + drm_gem_prime_fd_to_handle + drm_gem_prime_handle_to_fd + drm_gem_prime_import + drm_gem_private_object_init + drm_gem_vm_close + drm_helper_hpd_irq_event + drm_helper_mode_fill_fb_struct + drm_helper_probe_single_connector_modes + drm_ioctl + drm_is_current_master + drm_kms_helper_poll_disable + drm_kms_helper_poll_enable + drm_kms_helper_poll_fini + drm_kms_helper_poll_init + drmm_mode_config_init + drm_mode_config_cleanup + drm_mode_config_reset + drm_mode_copy + drm_mode_crtc_set_gamma_size + drm_mode_duplicate + drm_mode_object_find + drm_mode_object_put + drm_mode_probed_add + drm_mode_set_crtcinfo + drm_mode_set_name + drm_mode_vrefresh + drm_object_attach_property + drm_open + drm_panel_add + drm_panel_disable + drm_panel_enable + drm_panel_get_modes + drm_panel_init + drm_panel_prepare + drm_panel_remove + drm_panel_unprepare + drm_plane_cleanup + drm_poll + drm_prime_gem_destroy + drm_property_blob_put + drm_property_create_blob + drm_property_create_range + drm_property_lookup_blob + drm_read + drm_release + drm_universal_plane_init + drm_vblank_init + drm_writeback_connector_init + drm_writeback_queue_job + drm_writeback_signal_completion + dump_stack + em_cpu_get + em_dev_register_perf_domain + enable_irq + enable_percpu_irq + ether_setup + eth_header + eth_header_cache + eth_header_cache_update + eth_header_parse + eth_type_trans + event_triggers_call + extcon_get_edev_by_phandle + extcon_get_state + extcon_set_state_sync + failure_tracking + fd_install + fget + find_last_bit + find_next_bit + find_next_zero_bit + find_pid_ns + find_task_by_vpid + find_vma + find_vpid + finish_wait + flush_dcache_page + flush_delayed_work + flush_work + flush_workqueue + follow_pfn + font_vga_8x16 + for_each_kernel_tracepoint + fput + free_irq + free_netdev + __free_pages + free_pages + free_pages_exact + free_percpu + free_percpu_irq + freezing_slow_path + freq_qos_add_notifier + freq_qos_add_request + freq_qos_remove_request + freq_qos_update_request + fsync_bdev + fwnode_handle_get + fwnode_handle_put + fwnode_property_present + fwnode_property_read_string + fwnode_property_read_u32_array + gcd + generic_file_llseek + generic_handle_irq + generic_iommu_put_resv_regions + genlmsg_put + genl_register_family + genl_unregister_family + gen_pool_add_owner + gen_pool_alloc_algo_owner + gen_pool_avail + gen_pool_best_fit + gen_pool_create + gen_pool_destroy + gen_pool_free_owner + gen_pool_has_addr + gen_pool_set_algo + gen_pool_size + gen_pool_virt_to_phys + get_cpu_device + get_cpu_idle_time + get_cpu_idle_time_us + get_cpu_iowait_time_us + get_device + get_each_dmabuf + __get_free_pages + get_governor_parent_kobj + get_kernel_pages + get_random_bytes + get_random_u32 + __get_task_comm + get_task_exe_file + get_task_mm + get_unused_fd_flags + get_user_pages + get_user_pages_fast + get_user_pages_remote + get_zeroed_page + gic_nonsecure_priorities + gov_attr_set_get + gov_attr_set_init + gov_attr_set_put + governor_sysfs_ops + gpiochip_add_data_with_key + gpiochip_generic_free + gpiochip_generic_request + gpiochip_get_data + gpiochip_lock_as_irq + gpiochip_unlock_as_irq + gpiod_direction_input + gpiod_direction_output_raw + gpiod_get_raw_value + gpiod_set_debounce + gpiod_set_raw_value + gpiod_set_value + gpiod_to_irq + gpio_free + gpio_request + gpio_request_one + gpio_to_desc + handle_level_irq + handle_nested_irq + hashlen_string + have_governor_per_policy + hci_alloc_dev + hci_free_dev + hci_recv_frame + hci_register_dev + hci_unregister_dev + hex_asc + hex_dump_to_buffer + hrtimer_active + hrtimer_cancel + hrtimer_forward + hrtimer_init + hrtimer_start_range_ns + hrtimer_try_to_cancel + i2c_add_adapter + i2c_del_adapter + i2c_del_driver + i2c_get_dma_safe_msg_buf + i2c_put_dma_safe_msg_buf + i2c_register_driver + i2c_smbus_read_byte_data + i2c_smbus_read_i2c_block_data + i2c_smbus_write_byte_data + i2c_smbus_write_i2c_block_data + i2c_transfer + i2c_transfer_buffer_flags + icc_link_create + icc_node_add + icc_node_create + icc_node_del + icc_node_destroy + icc_provider_add + icc_provider_del + icc_put + icc_set_bw + icc_sync_state + idr_alloc + idr_destroy + idr_find + idr_for_each + idr_get_next + idr_remove + ieee80211_channel_to_freq_khz + ieee80211_freq_khz_to_channel + ieee80211_get_channel_khz + iio_buffer_init + iio_buffer_put + iio_channel_get + iio_channel_release + iio_device_attach_buffer + __iio_device_register + iio_device_unregister + iio_get_channel_type + iio_get_time_ns + iio_push_to_buffers + iio_read_channel_attribute + iio_read_channel_processed + iio_read_channel_raw + inc_zone_page_state + in_egroup_p + init_net + init_pseudo + __init_rwsem + __init_swait_queue_head + init_task + init_timer_key + init_uts_ns + init_wait_entry + __init_waitqueue_head + input_allocate_device + input_event + input_free_device + input_mt_init_slots + input_mt_report_slot_state + input_register_device + input_set_abs_params + input_set_capability + input_unregister_device + iomem_resource + iommu_alloc_resv_region + iommu_device_register + iommu_device_sysfs_add + iommu_device_sysfs_remove + iommu_device_unregister + iommu_fwspec_add_ids + iommu_fwspec_free + iommu_get_dma_cookie + iommu_get_domain_for_dev + iommu_group_alloc + iommu_group_ref_get + iommu_iova_to_phys + iommu_map_sg + iommu_present + iommu_put_dma_cookie + iommu_unmap + __ioremap + iounmap + iput + ipv6_skip_exthdr + irq_create_mapping_affinity + irq_create_of_mapping + __irq_domain_add + irq_domain_remove + irq_domain_simple_ops + irq_domain_xlate_twocell + irq_find_mapping + irq_get_irqchip_state + irq_get_irq_data + irq_modify_status + irq_of_parse_and_map + irq_set_affinity_hint + irq_set_chained_handler_and_data + irq_set_chip_and_handler_name + irq_set_chip_data + irq_set_irq_type + irq_set_irq_wake + irq_to_desc + irq_work_queue + irq_work_sync + is_vmalloc_addr + jiffies + jiffies_to_msecs + jiffies_to_usecs + kasan_flag_enabled + kasprintf + kernel_cpustat + kernel_kobj + kernel_power_off + kernel_restart + kernel_sigaction + kernfs_path_from_node + kern_mount + kern_unmount + __kfifo_alloc + __kfifo_free + __kfifo_in + __kfifo_init + __kfifo_out + __kfifo_to_user + kfree + kfree_const + kfree_sensitive + kfree_skb + kill_anon_super + kimage_vaddr + kimage_voffset + __kmalloc + kmalloc_caches + kmalloc_order_trace + kmem_cache_alloc + kmem_cache_alloc_trace + kmem_cache_create + kmem_cache_destroy + kmem_cache_free + kobject_create_and_add + kobject_del + kobject_init_and_add + kobject_put + kobject_uevent + kobject_uevent_env + krealloc + kset_find_obj + kstrdup + kstrdup_const + kstrndup + kstrtobool + kstrtobool_from_user + kstrtoint + kstrtoint_from_user + kstrtol_from_user + kstrtoll + kstrtou16 + kstrtou8 + kstrtouint + kstrtouint_from_user + kstrtoul_from_user + kstrtoull + kstrtoull_from_user + ksys_sync_helper + kthread_bind + kthread_bind_mask + kthread_cancel_delayed_work_sync + kthread_cancel_work_sync + kthread_create_on_node + kthread_create_worker + kthread_delayed_work_timer_fn + kthread_destroy_worker + kthread_flush_work + kthread_flush_worker + __kthread_init_worker + kthread_queue_delayed_work + kthread_queue_work + kthread_should_stop + kthread_stop + kthread_worker_fn + ktime_get + ktime_get_mono_fast_ns + ktime_get_raw + ktime_get_raw_ts64 + ktime_get_real_ts64 + ktime_get_ts64 + ktime_get_with_offset + kvfree + kvfree_call_rcu + kvmalloc_node + led_classdev_flash_register_ext + led_classdev_flash_unregister + led_get_flash_fault + led_set_brightness_sync + led_set_flash_brightness + led_set_flash_timeout + led_sysfs_disable + led_sysfs_enable + led_trigger_remove + led_update_brightness + led_update_flash_brightness + __list_add_valid + __list_del_entry_valid + list_sort + __local_bh_enable_ip + __lock_page + log_buf_addr_get + log_buf_len_get + __log_post_read_mmio + __log_read_mmio + log_threaded_irq_wakeup_reason + __log_write_mmio + lzo1x_1_compress + lzo1x_decompress_safe + lzorle1x_1_compress + mbox_chan_received_data + mbox_client_txdone + mbox_controller_register + mbox_controller_unregister + mbox_free_channel + mbox_request_channel + mbox_send_message + media_device_init + __media_device_register + media_device_unregister + media_entity_pads_init + memblock_end_of_DRAM + memcmp + memcpy + __memcpy_fromio + __memcpy_toio + memmove + memparse + memremap + memset64 + memset + __memset_io + memstart_addr + memunmap + migrate_swap + mipi_dsi_attach + mipi_dsi_dcs_read + mipi_dsi_dcs_write_buffer + mipi_dsi_detach + mipi_dsi_driver_register_full + mipi_dsi_driver_unregister + mipi_dsi_generic_write + mipi_dsi_host_register + mipi_dsi_host_unregister + misc_deregister + misc_register + mktime64 + mmc_add_host + mmc_alloc_host + mmc_can_gpio_cd + mmc_cqe_request_done + mmc_detect_change + mmc_free_host + mmc_gpio_get_cd + mmc_gpio_get_ro + mmc_of_parse + mmc_regulator_get_supply + mmc_regulator_set_ocr + mmc_regulator_set_vqmmc + mmc_remove_host + mmc_request_done + mmc_send_tuning + __mmdrop + mmput + mod_delayed_work_on + mod_timer + mod_timer_pending + module_layout + module_put + __msecs_to_jiffies + msleep + msleep_interruptible + __mutex_init + mutex_is_locked + mutex_lock + mutex_lock_interruptible + mutex_lock_killable + mutex_trylock + mutex_unlock + napi_disable + napi_gro_flush + napi_gro_receive + __napi_schedule + napi_schedule_prep + nd_tbl + netdev_alloc_frag + __netdev_alloc_skb + netif_carrier_off + netif_carrier_on + netif_napi_add + netif_receive_skb + netif_rx + netif_rx_ni + netif_tx_stop_all_queues + netif_tx_wake_queue + __netlink_kernel_create + netlink_kernel_release + netlink_unicast + net_namespace_list + nf_register_net_hooks + nf_unregister_net_hooks + __nla_parse + nla_put + nla_put_nohdr + __nlmsg_put + no_llseek + nonseekable_open + nr_cpu_ids + nsecs_to_jiffies + ns_to_timespec64 + n_tty_ioctl_helper + __num_online_cpus + nvmem_cell_get + nvmem_cell_put + nvmem_cell_read + nvmem_cell_read_u32 + nvmem_cell_write + nvmem_device_get + nvmem_device_put + nvmem_device_read + of_address_to_resource + of_alias_get_id + of_clk_add_provider + of_clk_del_provider + of_clk_get + of_clk_get_by_name + of_clk_get_from_provider + of_clk_src_onecell_get + of_clk_src_simple_get + of_count_phandle_with_args + of_cpu_node_to_id + of_devfreq_cooling_register_power + of_device_get_match_data + of_device_is_available + of_device_is_compatible + of_dma_configure_id + of_dma_controller_free + of_dma_controller_register + of_dma_xlate_by_chan_id + of_drm_find_bridge + of_drm_find_panel + of_find_backlight_by_node + of_find_compatible_node + of_find_device_by_node + of_find_matching_node_and_match + of_find_node_by_name + of_find_node_opts_by_path + of_find_node_with_property + of_find_property + of_fwnode_ops + of_genpd_add_device + of_genpd_add_provider_onecell + of_get_address + of_get_child_by_name + of_get_cpu_node + of_get_named_gpio_flags + of_get_next_available_child + of_get_next_child + of_get_next_parent + of_get_parent + of_get_property + of_graph_get_next_endpoint + of_graph_get_remote_node + of_graph_get_remote_port_parent + of_icc_get + of_icc_xlate_onecell + of_iomap + of_irq_find_parent + of_irq_get + of_irq_parse_one + of_irq_to_resource_table + of_machine_is_compatible + of_match_device + of_match_node + of_parse_phandle + of_parse_phandle_with_args + of_parse_phandle_with_fixed_args + of_phandle_iterator_init + of_phandle_iterator_next + of_phy_simple_xlate + of_platform_depopulate + of_platform_device_create + of_platform_populate + of_property_count_elems_of_size + of_property_match_string + of_property_read_string + of_property_read_string_helper + of_property_read_u32_index + of_property_read_u64 + of_property_read_variable_u16_array + of_property_read_variable_u32_array + of_property_read_variable_u64_array + of_property_read_variable_u8_array + of_prop_next_string + of_prop_next_u32 + of_remove_property + of_reserved_mem_device_init_by_idx + of_reserved_mem_lookup + of_thermal_get_trip_points + of_translate_address + on_each_cpu + oops_in_progress + page_endio + page_mapping + __page_pinner_migration_failed + panic + panic_notifier_list + param_array_ops + param_get_bool + param_get_charp + param_get_int + param_get_uint + param_get_ulong + param_ops_bool + param_ops_byte + param_ops_charp + param_ops_int + param_ops_string + param_ops_uint + param_set_bool + param_set_charp + param_set_uint + param_set_ulong + pause_cpus + PDE_DATA + __per_cpu_offset + perf_event_update_userpage + perf_pmu_migrate_context + perf_pmu_register + perf_pmu_unregister + perf_trace_buf_alloc + perf_trace_run_bpf_submit + pfn_valid + phy_exit + phy_get + phy_init + phy_power_off + phy_power_on + phy_put + phy_set_mode_ext + pid_task + pinconf_generic_parse_dt_config + pinctrl_dev_get_drvdata + pinctrl_enable + pinctrl_gpio_direction_input + pinctrl_gpio_direction_output + pinctrl_lookup_state + pinctrl_pm_select_default_state + pinctrl_pm_select_sleep_state + pinctrl_put + pinctrl_select_state + pinctrl_utils_add_map_configs + pinctrl_utils_free_map + pinctrl_utils_reserve_map + pin_user_pages_fast + platform_bus_type + platform_device_add + platform_device_alloc + platform_device_put + platform_device_register + platform_device_register_full + platform_device_unregister + __platform_driver_register + platform_driver_unregister + platform_get_irq + platform_get_irq_byname + platform_get_irq_optional + platform_get_resource + platform_get_resource_byname + __platform_register_drivers + platform_unregister_drivers + pm_genpd_add_device + pm_genpd_add_subdomain + pm_genpd_init + pm_genpd_remove_device + __pm_relax + pm_relax + __pm_runtime_disable + pm_runtime_enable + pm_runtime_force_resume + pm_runtime_force_suspend + pm_runtime_get_if_active + __pm_runtime_idle + __pm_runtime_resume + pm_runtime_set_autosuspend_delay + __pm_runtime_set_status + __pm_runtime_suspend + __pm_runtime_use_autosuspend + __pm_stay_awake + pm_stay_awake + pm_suspend_default_s2idle + pm_system_wakeup + pm_wakeup_dev_event + pm_wakeup_ws_event + pm_wq + power_supply_changed + power_supply_get_by_name + power_supply_get_drvdata + power_supply_get_property + power_supply_register + power_supply_reg_notifier + power_supply_set_property + preempt_schedule + preempt_schedule_notrace + prepare_to_wait_event + print_hex_dump + printk + proc_create + proc_create_data + proc_mkdir + proc_remove + proc_set_user + put_device + put_disk + __put_page + __put_task_struct + put_unused_fd + pwm_apply_state + pwmchip_add + pwmchip_remove + queue_delayed_work_on + queue_work_on + ___ratelimit + raw_notifier_call_chain + raw_notifier_chain_register + raw_notifier_chain_unregister + _raw_read_lock + _raw_read_lock_bh + _raw_read_trylock + _raw_read_unlock + _raw_read_unlock_bh + _raw_spin_lock + _raw_spin_lock_bh + _raw_spin_lock_irq + _raw_spin_lock_irqsave + _raw_spin_trylock + _raw_spin_unlock + _raw_spin_unlock_bh + _raw_spin_unlock_irq + _raw_spin_unlock_irqrestore + _raw_write_lock + _raw_write_lock_bh + _raw_write_lock_irqsave + _raw_write_unlock + _raw_write_unlock_bh + _raw_write_unlock_irqrestore + rb_erase + rb_first + rb_insert_color + rb_next + rb_prev + rb_replace_node + rcu_idle_enter + rcu_idle_exit + __rcu_read_lock + __rcu_read_unlock + rdev_get_dev + rdev_get_drvdata + rdev_get_id + refcount_warn_saturate + __refrigerator + regcache_cache_only + regcache_mark_dirty + regcache_sync + register_blkdev + __register_chrdev + register_chrdev_region + register_die_notifier + register_inetaddr_notifier + register_kprobe + register_module_notifier + register_netdev + register_netdevice + register_netdevice_notifier + register_pernet_subsys + register_pm_notifier + register_reboot_notifier + __register_rpmsg_driver + register_shrinker + register_syscore_ops + register_virtio_device + register_virtio_driver + regmap_bulk_read + regmap_bulk_write + regmap_field_read + regmap_field_update_bits_base + __regmap_init + regmap_irq_get_domain + regmap_read + regmap_update_bits_base + regmap_write + regulator_count_voltages + regulator_disable + regulator_disable_regmap + regulator_enable + regulator_enable_regmap + regulator_get + regulator_get_optional + regulator_get_voltage + regulator_get_voltage_sel_regmap + regulator_is_enabled + regulator_is_enabled_regmap + regulator_list_voltage + regulator_list_voltage_linear + regulator_list_voltage_linear_range + regulator_list_voltage_table + regulator_map_voltage_iterate + regulator_map_voltage_linear_range + regulator_notifier_call_chain + regulator_put + regulator_set_current_limit + regulator_set_mode + regulator_set_voltage + regulator_set_voltage_sel_regmap + regulator_set_voltage_time + regulator_set_voltage_time_sel + regulator_sync_voltage + regulatory_hint + release_firmware + release_pages + __release_region + remap_pfn_range + remap_vmalloc_range + remove_proc_entry + remove_proc_subtree + remove_wait_queue + request_firmware + request_firmware_nowait + __request_percpu_irq + __request_region + request_threaded_irq + reset_control_assert + reset_control_deassert + reset_controller_register + reset_control_reset + resume_cpus + revalidate_disk_size + rpmsg_create_ept + rpmsg_destroy_ept + rpmsg_register_device + rpmsg_send + rpmsg_trysend + rpmsg_unregister_device + rproc_add + rproc_add_subdev + rproc_alloc + rproc_del + rproc_free + rproc_remove_subdev + rps_needed + rtc_ktime_to_tm + rtc_nvmem_register + __rtc_register_device + rtc_time64_to_tm + rtc_tm_to_ktime + rtc_tm_to_time64 + rtc_update_irq + rtc_valid_tm + rtnl_is_locked + rtnl_lock + rtnl_unlock + runqueues + sched_clock + sched_feat_keys + sched_setattr_nocheck + sched_set_normal + sched_setscheduler + sched_uclamp_used + schedule + schedule_timeout + schedutil_cpu_util + scmi_driver_register + scmi_driver_unregister + scnprintf + sdio_claim_host + sdio_claim_irq + sdio_disable_func + sdio_enable_func + sdio_f0_readb + sdio_f0_writeb + sdio_get_host_pm_caps + sdio_readb + sdio_readl + sdio_readsb + sdio_register_driver + sdio_release_host + sdio_release_irq + sdio_set_block_size + sdio_set_host_pm_flags + sdio_signal_irq + sdio_unregister_driver + sdio_writeb + sdio_writel + sdio_writesb + send_sig + seq_hex_dump + seq_lseek + seq_open + seq_open_private + seq_printf + seq_putc + seq_puts + seq_read + seq_release + seq_release_private + seq_write + serial8250_do_set_termios + serial8250_do_shutdown + serial8250_do_startup + serial8250_get_port + serial8250_register_8250_port + serial8250_resume_port + serial8250_rpm_get + serial8250_rpm_put + serial8250_suspend_port + serial8250_unregister_port + set_cpus_allowed_ptr + set_normalized_timespec64 + set_page_dirty_lock + __SetPageMovable + set_task_cpu + set_user_nice + sg_alloc_table + sg_alloc_table_from_pages + sg_free_table + sg_init_one + sg_init_table + sg_miter_next + sg_miter_start + sg_miter_stop + sg_next + __sg_page_iter_next + __sg_page_iter_start + shmem_file_setup + si_mem_available + simple_attr_open + simple_attr_read + simple_attr_release + simple_attr_write + simple_open + simple_read_from_buffer + simple_write_to_buffer + single_open + single_release + skb_add_rx_frag + skb_copy + skb_dequeue + skb_pull + skb_pull_rcsum + skb_push + skb_put + skb_queue_head + skb_queue_purge + skb_queue_tail + skb_realloc_headroom + skb_trim + snd_ctl_boolean_mono_info + snd_jack_set_key + snd_pcm_format_physical_width + snd_pcm_format_width + snd_pcm_hw_constraint_integer + snd_pcm_hw_constraint_minmax + snd_pcm_hw_constraint_step + snd_pcm_lib_free_pages + snd_pcm_lib_malloc_pages + snd_pcm_lib_preallocate_free_for_all + snd_pcm_lib_preallocate_pages_for_all + snd_pcm_period_elapsed + snd_pcm_set_ops + snd_soc_add_component_controls + snd_soc_bytes_info_ext + snd_soc_bytes_tlv_callback + snd_soc_card_jack_new + snd_soc_component_exit_regmap + snd_soc_component_init_regmap + snd_soc_dai_set_sysclk + snd_soc_dapm_add_routes + snd_soc_dapm_disable_pin + snd_soc_dapm_get_enum_double + snd_soc_dapm_get_pin_switch + snd_soc_dapm_get_volsw + snd_soc_dapm_info_pin_switch + snd_soc_dapm_new_controls + snd_soc_dapm_new_widgets + snd_soc_dapm_put_enum_double + snd_soc_dapm_put_pin_switch + snd_soc_dapm_put_volsw + snd_soc_get_volsw + snd_soc_info_enum_double + snd_soc_info_volsw + snd_soc_jack_report + snd_soc_new_compress + snd_soc_of_get_dai_link_codecs + snd_soc_poweroff + snd_soc_put_volsw + snd_soc_register_component + snd_soc_resume + snd_soc_rtdcom_lookup + snd_soc_set_runtime_hwparams + snd_soc_unregister_component + snprintf + soc_device_register + soc_device_unregister + sort + __spi_alloc_controller + spi_bus_type + spi_finalize_current_transfer + __spi_register_driver + spi_setup + spi_sync + spmi_controller_add + spmi_controller_alloc + spmi_controller_remove + __spmi_driver_register + spmi_ext_register_read + spmi_ext_register_readl + spmi_ext_register_write + spmi_ext_register_writel + spmi_register_read + spmi_register_write + spmi_register_zero_write + sprintf + srcu_init_notifier_head + srcu_notifier_call_chain + srcu_notifier_chain_register + srcu_notifier_chain_unregister + sscanf + __stack_chk_fail + __stack_chk_guard + stack_trace_save + static_key_slow_dec + static_key_slow_inc + strcasecmp + strchr + strcmp + strcpy + strcspn + strlcat + strlcpy + strlen + strncasecmp + strncat + strncmp + strncpy + strncpy_from_user + strnlen + strnstr + strpbrk + strrchr + strreplace + strscpy + strsep + strspn + strstr + suspend_set_ops + __sw_hweight32 + __sw_hweight64 + sync_file_create + sync_file_get_fence + synchronize_irq + synchronize_net + synchronize_rcu + syscon_node_to_regmap + syscon_regmap_lookup_by_compatible + syscon_regmap_lookup_by_phandle + syscore_resume + syscore_suspend + sysfs_create_bin_file + sysfs_create_file_ns + sysfs_create_group + sysfs_create_link + __sysfs_match_string + sysfs_remove_bin_file + sysfs_remove_file_ns + sysfs_remove_group + sysfs_remove_link + sysfs_streq + system_freezable_power_efficient_wq + system_freezing_cnt + system_highpri_wq + system_long_wq + system_power_efficient_wq + system_state + system_unbound_wq + system_wq + sys_tz + task_active_pid_ns + __tasklet_hi_schedule + tasklet_init + tasklet_kill + __tasklet_schedule + __task_pid_nr_ns + thermal_cooling_device_unregister + thermal_of_cooling_device_register + thermal_zone_get_temp + thermal_zone_get_zone_by_name + tick_nohz_get_idle_calls_cpu + timecounter_init + timecounter_read + timer_unstable_counter_workaround + topology_set_thermal_pressure + _totalram_pages + __trace_bprintk + __trace_bputs + trace_event_buffer_commit + trace_event_buffer_reserve + trace_event_ignore_this_pid + trace_event_raw_init + trace_event_reg + trace_handle_return + __traceiter_android_rvh_dequeue_task + __traceiter_android_rvh_enqueue_task + __traceiter_android_rvh_find_busiest_group + __traceiter_android_rvh_find_energy_efficient_cpu + __traceiter_android_rvh_finish_prio_fork + __traceiter_android_rvh_prepare_prio_fork + __traceiter_android_rvh_rtmutex_prepare_setprio + __traceiter_android_rvh_sched_newidle_balance + __traceiter_android_rvh_select_task_rq_fair + __traceiter_android_rvh_setscheduler + __traceiter_android_rvh_set_user_nice + __traceiter_android_rvh_tick_entry + __traceiter_android_vh_alter_futex_plist_add + __traceiter_android_vh_alter_rwsem_list_add + __traceiter_android_vh_arch_set_freq_scale + __traceiter_android_vh_binder_restore_priority + __traceiter_android_vh_binder_set_priority + __traceiter_android_vh_binder_transaction_init + __traceiter_android_vh_cgroup_set_task + __traceiter_android_vh_em_cpu_energy + __traceiter_android_vh_rwsem_init + __traceiter_android_vh_rwsem_wake + __traceiter_android_vh_rwsem_write_finished + __traceiter_android_vh_scheduler_tick + __traceiter_android_vh_set_wake_flags + __traceiter_android_vh_syscall_prctl_finished + __traceiter_cpu_frequency + __traceiter_gpu_mem_total + __traceiter_pelt_se_tp + __traceiter_rwmmio_post_read + __traceiter_rwmmio_read + __traceiter_rwmmio_write + trace_output_call + __tracepoint_android_rvh_dequeue_task + __tracepoint_android_rvh_enqueue_task + __tracepoint_android_rvh_find_busiest_group + __tracepoint_android_rvh_find_energy_efficient_cpu + __tracepoint_android_rvh_finish_prio_fork + __tracepoint_android_rvh_prepare_prio_fork + __tracepoint_android_rvh_rtmutex_prepare_setprio + __tracepoint_android_rvh_sched_newidle_balance + __tracepoint_android_rvh_select_task_rq_fair + __tracepoint_android_rvh_setscheduler + __tracepoint_android_rvh_set_user_nice + __tracepoint_android_rvh_tick_entry + __tracepoint_android_vh_alter_futex_plist_add + __tracepoint_android_vh_alter_rwsem_list_add + __tracepoint_android_vh_arch_set_freq_scale + __tracepoint_android_vh_binder_restore_priority + __tracepoint_android_vh_binder_set_priority + __tracepoint_android_vh_binder_transaction_init + __tracepoint_android_vh_cgroup_set_task + __tracepoint_android_vh_em_cpu_energy + __tracepoint_android_vh_rwsem_init + __tracepoint_android_vh_rwsem_wake + __tracepoint_android_vh_rwsem_write_finished + __tracepoint_android_vh_scheduler_tick + __tracepoint_android_vh_set_wake_flags + __tracepoint_android_vh_syscall_prctl_finished + __tracepoint_cpu_frequency + __tracepoint_gpu_mem_total + __tracepoint_pelt_se_tp + tracepoint_probe_register + tracepoint_probe_unregister + __tracepoint_rwmmio_post_read + __tracepoint_rwmmio_read + __tracepoint_rwmmio_write + trace_print_array_seq + trace_print_flags_seq + trace_print_symbols_seq + __trace_puts + trace_raw_output_prep + trace_seq_printf + trace_seq_putc + tracing_off + try_module_get + try_wait_for_completion + tty_driver_flush_buffer + tty_flip_buffer_push + tty_insert_flip_string_fixed_flag + tty_register_ldisc + tty_termios_baud_rate + tty_termios_encode_baud_rate + tty_unregister_ldisc + typec_get_drvdata + typec_mux_get_drvdata + typec_mux_register + typec_mux_unregister + typec_partner_set_identity + typec_register_partner + typec_register_port + typec_set_data_role + typec_set_orientation + typec_set_pwr_opmode + typec_set_pwr_role + typec_set_vconn_role + typec_switch_get_drvdata + typec_switch_register + typec_switch_unregister + typec_unregister_partner + uart_get_baud_rate + uart_get_divisor + uart_update_timeout + uclamp_eff_value + __udelay + ufshcd_auto_hibern8_update + ufshcd_delay_us + ufshcd_dme_get_attr + ufshcd_dme_set_attr + ufshcd_dump_regs + ufshcd_fixup_dev_quirks + ufshcd_get_pwr_dev_param + ufshcd_hba_enable + ufshcd_link_recovery + ufshcd_make_hba_operational + ufshcd_pltfrm_init + ufshcd_pltfrm_resume + ufshcd_pltfrm_runtime_idle + ufshcd_pltfrm_runtime_resume + ufshcd_pltfrm_runtime_suspend + ufshcd_pltfrm_shutdown + ufshcd_pltfrm_suspend + ufshcd_remove + ufshcd_uic_hibern8_exit + unlock_page + unmap_mapping_range + unpin_user_pages + unregister_blkdev + __unregister_chrdev + unregister_chrdev_region + unregister_die_notifier + unregister_inetaddr_notifier + unregister_kprobe + unregister_module_notifier + unregister_netdev + unregister_netdevice_notifier + unregister_netdevice_queue + unregister_pernet_subsys + unregister_pm_notifier + unregister_reboot_notifier + unregister_rpmsg_driver + unregister_shrinker + unregister_virtio_device + unregister_virtio_driver + up + update_devfreq + update_rq_clock + up_read + up_write + usb_add_gadget_udc + usb_add_hcd + usb_create_hcd + usb_create_shared_hcd + usb_debug_root + usb_del_gadget_udc + usb_disabled + usb_ep_set_halt + usb_ep_set_maxpacket_limit + usb_gadget_giveback_request + usb_gadget_map_request + usb_gadget_set_state + usb_gadget_unmap_request + usb_get_dr_mode + usb_get_maximum_speed + usb_hcd_is_primary_hcd + usb_hcd_poll_rh_status + usb_put_hcd + usb_remove_hcd + usb_role_switch_get + usb_role_switch_get_drvdata + usb_role_switch_register + usb_role_switch_set_role + usb_role_switch_unregister + usb_speed_string + __usecs_to_jiffies + usleep_range + uuid_null + v4l2_async_notifier_add_fwnode_subdev + v4l2_async_notifier_init + v4l2_async_notifier_register + v4l2_async_notifier_unregister + v4l2_async_register_subdev + v4l2_async_unregister_subdev + v4l2_ctrl_handler_free + v4l2_ctrl_handler_init_class + v4l2_ctrl_handler_setup + v4l2_ctrl_new_custom + v4l2_ctrl_new_std + v4l2_ctrl_new_std_menu + __v4l2_ctrl_s_ctrl + v4l2_ctrl_subscribe_event + v4l2_device_register + __v4l2_device_register_subdev_nodes + v4l2_device_unregister + v4l2_event_queue_fh + v4l2_event_subscribe + v4l2_event_unsubscribe + v4l2_fh_add + v4l2_fh_del + v4l2_fh_exit + v4l2_fh_init + v4l2_fh_is_singular + v4l2_m2m_buf_queue + v4l2_m2m_buf_remove + v4l2_m2m_buf_remove_by_buf + v4l2_m2m_ctx_init + v4l2_m2m_ctx_release + v4l2_m2m_dqbuf + v4l2_m2m_fop_mmap + v4l2_m2m_fop_poll + v4l2_m2m_get_curr_priv + v4l2_m2m_get_vq + v4l2_m2m_init + v4l2_m2m_ioctl_create_bufs + v4l2_m2m_ioctl_dqbuf + v4l2_m2m_ioctl_expbuf + v4l2_m2m_ioctl_prepare_buf + v4l2_m2m_ioctl_qbuf + v4l2_m2m_ioctl_querybuf + v4l2_m2m_ioctl_reqbufs + v4l2_m2m_ioctl_streamoff + v4l2_m2m_ioctl_streamon + v4l2_m2m_job_finish + v4l2_m2m_next_buf + v4l2_m2m_qbuf + v4l2_m2m_release + v4l2_m2m_resume + v4l2_m2m_streamoff + v4l2_m2m_suspend + v4l2_m2m_try_schedule + v4l2_src_change_event_subscribe + v4l2_subdev_init + v4l_bound_align_image + vabits_actual + vb2_buffer_done + vb2_dma_contig_memops + vb2_ops_wait_finish + vb2_ops_wait_prepare + vb2_plane_cookie + vb2_plane_vaddr + vb2_queue_init + vb2_queue_release + vchan_dma_desc_free_list + vchan_init + vchan_tx_desc_free + vchan_tx_submit + vfree + video_devdata + video_device_alloc + video_device_release + video_device_release_empty + video_ioctl2 + __video_register_device + video_unregister_device + virtqueue_add_inbuf + virtqueue_add_outbuf + virtqueue_detach_unused_buf + virtqueue_get_buf + virtqueue_get_vring_size + virtqueue_kick + virtqueue_kick_prepare + virtqueue_notify + vmalloc + vmalloc_to_page + vmalloc_to_pfn + vmalloc_user + vmap + vm_event_states + vmf_insert_pfn_prot + vm_node_stat + vm_zone_stat + vring_del_virtqueue + vring_interrupt + vring_new_virtqueue + vscnprintf + vsnprintf + vsprintf + vunmap + vzalloc + wait_for_completion + wait_for_completion_interruptible + wait_for_completion_interruptible_timeout + wait_for_completion_killable + wait_for_completion_timeout + wait_woken + __wake_up + __wake_up_locked + wake_up_process + wakeup_source_add + wakeup_source_create + wakeup_source_register + wakeup_source_unregister + __warn_printk + watchdog_init_timeout + watchdog_set_restart_priority + wiphy_apply_custom_regulatory + wiphy_free + wiphy_new_nm + wiphy_register + wiphy_unregister + wireless_send_event + woken_wake_function + work_busy + work_on_cpu + xhci_add_endpoint + xhci_check_bandwidth + xhci_drop_endpoint + xhci_gen_setup + xhci_get_endpoint_index + xhci_get_ep_ctx + xhci_init_driver + xhci_reset_bandwidth + zlib_deflate + zlib_deflateEnd + zlib_deflateInit2 + zlib_deflateReset + zlib_deflate_workspacesize diff --git a/android/abi_gki_aarch64_qcom b/android/abi_gki_aarch64_qcom index 6084b5a6b336..329a7fc9e442 100644 --- a/android/abi_gki_aarch64_qcom +++ b/android/abi_gki_aarch64_qcom @@ -11,6 +11,8 @@ add_uevent_var add_wait_queue adjust_managed_page_count + aes_encrypt + aes_expandkey alarm_cancel alarm_init alarm_start_relative @@ -42,6 +44,7 @@ arm64_const_caps_ready arm64_use_ng_mappings __arm_smccc_smc + arp_tbl atomic_notifier_call_chain atomic_notifier_chain_register atomic_notifier_chain_unregister @@ -56,8 +59,10 @@ bdput bio_endio bitmap_allocate_region + __bitmap_andnot __bitmap_clear bitmap_find_next_zero_area_off + __bitmap_or bitmap_parselist bitmap_parselist_user bitmap_print_to_pagebuf @@ -271,6 +276,9 @@ cpu_latency_qos_remove_request cpu_latency_qos_request_active cpu_latency_qos_update_request + cpu_maps_update_begin + cpu_maps_update_done + cpumask_any_but cpumask_next cpumask_next_and cpu_number @@ -290,28 +298,43 @@ crypto_aead_encrypt crypto_aead_setauthsize crypto_aead_setkey + crypto_ahash_digest + crypto_ahash_setkey crypto_alloc_aead + crypto_alloc_ahash crypto_alloc_base crypto_alloc_shash crypto_alloc_skcipher + crypto_alloc_sync_skcipher crypto_cipher_encrypt_one crypto_cipher_setkey crypto_comp_compress crypto_comp_decompress + crypto_dequeue_request crypto_destroy_tfm + crypto_enqueue_request crypto_has_alg + crypto_init_queue + crypto_register_aead + crypto_register_ahash crypto_register_alg + crypto_register_algs crypto_register_rngs crypto_register_scomp + crypto_register_skcipher crypto_shash_final crypto_shash_setkey crypto_shash_update crypto_skcipher_decrypt crypto_skcipher_encrypt crypto_skcipher_setkey + crypto_unregister_aead + crypto_unregister_ahash crypto_unregister_alg + crypto_unregister_algs crypto_unregister_rngs crypto_unregister_scomp + crypto_unregister_skcipher css_next_child csum_ipv6_magic csum_partial @@ -354,6 +377,7 @@ dev_alloc_name dev_coredumpv _dev_crit + __dev_direct_xmit dev_driver_string _dev_emerg _dev_err @@ -361,6 +385,7 @@ devfreq_add_device devfreq_add_governor devfreq_cooling_unregister + devfreq_get_devfreq_by_node devfreq_remove_device devfreq_remove_governor devfreq_resume_device @@ -369,6 +394,7 @@ __dev_get_by_index dev_get_by_index dev_get_by_name + dev_get_by_name_rcu dev_get_regmap device_add device_add_disk @@ -476,6 +502,8 @@ devm_reset_control_array_get __devm_reset_control_get devm_reset_controller_register + devm_rproc_add + devm_rproc_alloc devm_rtc_allocate_device devm_snd_soc_register_card devm_thermal_of_cooling_device_register @@ -552,6 +580,7 @@ dma_buf_unmap_attachment dma_buf_vmap dma_buf_vunmap + dma_contiguous_default_area dma_fence_add_callback dma_fence_array_create dma_fence_array_ops @@ -565,6 +594,7 @@ dma_fence_remove_callback dma_fence_signal dma_fence_signal_locked + dma_fence_signal_timestamp_locked dma_fence_wait_timeout dma_free_attrs dma_get_sgtable_attrs @@ -834,6 +864,7 @@ drm_universal_plane_init drm_vblank_init drm_wait_one_vblank + dst_release dump_stack __dynamic_dev_dbg __dynamic_pr_debug @@ -932,13 +963,18 @@ getboottime64 get_cpu_device get_device + get_each_dmabuf + get_each_object_track __get_free_pages get_governor_parent_kobj get_option + get_page_owner_handle + get_pfnblock_flags_mask get_pid_task get_random_bytes get_random_u32 get_sg_io_hdr + get_slabinfo get_state_synchronize_rcu __get_task_comm get_task_mm @@ -1017,6 +1053,7 @@ i2c_del_adapter i2c_del_driver i2c_get_dma_safe_msg_buf + i2c_new_client_device i2c_put_dma_safe_msg_buf i2c_register_driver i2c_transfer @@ -1053,6 +1090,7 @@ import_iovec in4_pton in6_pton + inc_node_page_state inc_zone_page_state in_egroup_p inet_proto_csum_replace4 @@ -1088,11 +1126,11 @@ input_unregister_device input_unregister_handle input_unregister_handler - int_sqrt interval_tree_insert interval_tree_iter_first interval_tree_iter_next interval_tree_remove + int_sqrt invalidate_mapping_pages iomem_resource iommu_alloc_resv_region @@ -1135,11 +1173,13 @@ __iowrite32_copy ip_compute_csum ipi_desc_get + ip_route_output_flow iput __ipv6_addr_type ipv6_ext_hdr ipv6_find_hdr ipv6_skip_exthdr + ipv6_stub irq_chip_ack_parent irq_chip_disable_parent irq_chip_enable_parent @@ -1168,6 +1208,7 @@ irq_domain_update_bus_token irq_domain_xlate_onecell irq_domain_xlate_twocell + irq_do_set_affinity irq_find_mapping irq_find_matching_fwspec irq_get_irqchip_state @@ -1188,7 +1229,10 @@ irq_work_queue_on irq_work_sync is_dma_buf_file + isolate_and_split_free_page + isolate_anon_lru_page is_vmalloc_addr + iterate_fd jiffies jiffies_to_msecs jiffies_to_usecs @@ -1208,6 +1252,7 @@ kern_mount kern_unmount __kfifo_alloc + __kfifo_free __kfifo_in __kfifo_out kfree @@ -1314,6 +1359,7 @@ __log_post_read_mmio __log_read_mmio __log_write_mmio + lookup_page_ext lzo1x_1_compress lzo1x_decompress_safe lzorle1x_1_compress @@ -1358,6 +1404,7 @@ __memset_io memstart_addr memunmap + migrate_pages migrate_swap mipi_dsi_create_packet mipi_dsi_dcs_set_display_brightness @@ -1379,6 +1426,7 @@ __module_get module_layout module_put + __mod_zone_page_state __msecs_to_jiffies msleep msleep_interruptible @@ -1394,6 +1442,10 @@ napi_gro_receive __napi_schedule napi_schedule_prep + neigh_destroy + __neigh_event_send + neigh_lookup + neigh_xmit __netdev_alloc_skb netdev_rx_handler_register netdev_rx_handler_unregister @@ -1502,6 +1554,7 @@ of_graph_is_present of_graph_parse_endpoint of_hwspin_lock_get_id + of_i2c_get_board_info of_icc_get of_icc_xlate_onecell of_iomap @@ -1554,6 +1607,7 @@ overflowuid page_endio page_mapping + __page_pinner_migration_failed panic panic_notifier_list panic_timeout @@ -1574,20 +1628,26 @@ param_set_copystring param_set_int pause_cpus + pci_aer_clear_nonfatal_status pci_alloc_irq_vectors_affinity pci_assign_resource pci_bus_type pci_clear_master pci_d3cold_disable - pci_dev_present pci_device_group + pci_device_is_present + pci_dev_present pci_disable_device pci_disable_msi + pci_disable_pcie_error_reporting + pcie_capability_clear_and_set_word pcie_capability_read_word pci_enable_device + pci_enable_pcie_error_reporting pci_find_ext_capability pci_free_irq_vectors pci_get_device + pci_get_domain_bus_and_slot pci_host_probe pci_iomap pci_irq_vector @@ -1614,6 +1674,7 @@ pci_walk_bus pci_write_config_dword pci_write_config_word + pcpu_nr_pages PDE_DATA __percpu_down_read percpu_down_write @@ -1743,6 +1804,7 @@ pskb_expand_head __pskb_pull_tail ___pskb_trim + putback_movable_pages put_device put_disk put_iova_domain @@ -1978,6 +2040,8 @@ rtnl_unlock rtnl_unregister runqueues + scatterwalk_ffwd + scatterwalk_map_and_copy sched_clock sched_feat_keys sched_feat_names @@ -1994,6 +2058,10 @@ schedule_timeout schedule_timeout_interruptible schedule_timeout_uninterruptible + scmi_driver_register + scmi_driver_unregister + scmi_protocol_register + scmi_protocol_unregister scnprintf scsi_autopm_get_device scsi_autopm_put_device @@ -2045,6 +2113,8 @@ set_user_nice sg_alloc_table sg_alloc_table_from_pages + sg_copy_from_buffer + sg_copy_to_buffer sg_free_table sg_init_one sg_init_table @@ -2062,6 +2132,7 @@ show_rcu_gp_kthreads show_regs sigprocmask + si_mem_available si_meminfo simple_attr_open simple_attr_read @@ -2218,6 +2289,7 @@ sscanf __stack_chk_fail __stack_chk_guard + stack_depot_fetch stack_trace_print stack_trace_save static_key_disable @@ -2259,6 +2331,8 @@ synchronize_rcu_tasks_trace synchronize_srcu synchronize_srcu_expedited + synth_event_create + synth_event_delete syscon_node_to_regmap syscon_regmap_lookup_by_phandle sysctl_sched_features @@ -2305,6 +2379,7 @@ task_may_not_preempt __task_pid_nr_ns __task_rq_lock + thermal_cooling_device_register thermal_cooling_device_unregister thermal_of_cooling_device_register thermal_pressure @@ -2321,8 +2396,12 @@ time64_to_tm timer_unstable_counter_workaround topology_set_thermal_pressure + topology_update_done _totalram_pages total_swapcache_pages + trace_array_get_by_name + trace_array_put + trace_array_set_clr_event __trace_bprintk __trace_bputs trace_clock_local @@ -2331,12 +2410,102 @@ trace_event_ignore_this_pid trace_event_raw_init trace_event_reg + trace_get_event_file trace_handle_return + __traceiter_android_rvh_account_irq + __traceiter_android_rvh_build_perf_domains + __traceiter_android_rvh_can_migrate_task + __traceiter_android_rvh_cgroup_force_kthread_migration + __traceiter_android_rvh_check_preempt_wakeup + __traceiter_android_rvh_cpu_cgroup_attach + __traceiter_android_rvh_cpu_cgroup_online + __traceiter_android_rvh_cpufreq_transition + __traceiter_android_rvh_dequeue_task + __traceiter_android_rvh_enqueue_task + __traceiter_android_rvh_find_busiest_queue + __traceiter_android_rvh_find_lowest_rq + __traceiter_android_rvh_flush_task + __traceiter_android_rvh_gic_v3_set_affinity + __traceiter_android_rvh_irqs_disable + __traceiter_android_rvh_irqs_enable + __traceiter_android_rvh_migrate_queued_task + __traceiter_android_rvh_new_task_stats + __traceiter_android_rvh_pick_next_entity + __traceiter_android_rvh_place_entity + __traceiter_android_rvh_preempt_disable + __traceiter_android_rvh_preempt_enable + __traceiter_android_rvh_replace_next_task_fair + __traceiter_android_rvh_resume_cpus + __traceiter_android_rvh_sched_balance_rt + __traceiter_android_rvh_sched_cpu_dying + __traceiter_android_rvh_sched_cpu_starting + __traceiter_android_rvh_sched_exec + __traceiter_android_rvh_sched_fork + __traceiter_android_rvh_sched_fork_init + __traceiter_android_rvh_sched_newidle_balance + __traceiter_android_rvh_sched_nohz_balancer_kick + __traceiter_android_rvh_sched_setaffinity + __traceiter_android_rvh_schedule + __traceiter_android_rvh_schedule_bug + __traceiter_android_rvh_select_task_rq_fair + __traceiter_android_rvh_select_task_rq_rt + __traceiter_android_rvh_set_gfp_zone_flags + __traceiter_android_rvh_set_readahead_gfp_mask + __traceiter_android_rvh_set_skip_swapcache_flags + __traceiter_android_rvh_set_task_cpu + __traceiter_android_rvh_tick_entry + __traceiter_android_rvh_try_to_wake_up + __traceiter_android_rvh_try_to_wake_up_success + __traceiter_android_rvh_ttwu_cond + __traceiter_android_rvh_update_cpu_capacity + __traceiter_android_rvh_update_cpus_allowed + __traceiter_android_rvh_update_misfit_status + __traceiter_android_rvh_wake_up_new_task + __traceiter_android_vh_allow_domain_state + __traceiter_android_vh_binder_restore_priority + __traceiter_android_vh_binder_set_priority + __traceiter_android_vh_binder_transaction_init + __traceiter_android_vh_binder_wakeup_ilocked + __traceiter_android_vh_cpu_idle_enter + __traceiter_android_vh_cpu_idle_exit + __traceiter_android_vh_dump_throttled_rt_tasks + __traceiter_android_vh_force_compatible_post + __traceiter_android_vh_force_compatible_pre + __traceiter_android_vh_freq_table_limits + __traceiter_android_vh_ftrace_dump_buffer + __traceiter_android_vh_ftrace_format_check + __traceiter_android_vh_ftrace_oops_enter + __traceiter_android_vh_ftrace_oops_exit + __traceiter_android_vh_ftrace_size_check + __traceiter_android_vh_gpio_block_read + __traceiter_android_vh_iommu_setup_dma_ops + __traceiter_android_vh_ipi_stop + __traceiter_android_vh_jiffies_update + __traceiter_android_vh_logbuf + __traceiter_android_vh_printk_hotplug + __traceiter_android_vh_scheduler_tick + __traceiter_android_vh_show_max_freq + __traceiter_android_vh_show_resume_epoch_val + __traceiter_android_vh_show_suspend_epoch_val + __traceiter_android_vh_timer_calc_index + __traceiter_android_vh_update_topology_flags_workfn + __traceiter_binder_transaction_received __traceiter_cpu_frequency + __traceiter_cpu_frequency_limits + __traceiter_cpu_idle __traceiter_gpu_mem_total + __traceiter_ipi_entry + __traceiter_ipi_raise + __traceiter_irq_handler_entry + __traceiter_rwmmio_post_read + __traceiter_rwmmio_read + __traceiter_rwmmio_write + __traceiter_sched_switch + __traceiter_suspend_resume __tracepoint_android_rvh_account_irq __tracepoint_android_rvh_build_perf_domains __tracepoint_android_rvh_can_migrate_task + __tracepoint_android_rvh_cgroup_force_kthread_migration __tracepoint_android_rvh_check_preempt_wakeup __tracepoint_android_rvh_cpu_cgroup_attach __tracepoint_android_rvh_cpu_cgroup_online @@ -2346,6 +2515,7 @@ __tracepoint_android_rvh_find_busiest_queue __tracepoint_android_rvh_find_lowest_rq __tracepoint_android_rvh_flush_task + __tracepoint_android_rvh_gic_v3_set_affinity __tracepoint_android_rvh_irqs_disable __tracepoint_android_rvh_irqs_enable __tracepoint_android_rvh_migrate_queued_task @@ -2364,6 +2534,7 @@ __tracepoint_android_rvh_sched_fork_init __tracepoint_android_rvh_sched_newidle_balance __tracepoint_android_rvh_sched_nohz_balancer_kick + __tracepoint_android_rvh_sched_setaffinity __tracepoint_android_rvh_schedule __tracepoint_android_rvh_schedule_bug __tracepoint_android_rvh_select_task_rq_fair @@ -2385,24 +2556,34 @@ __tracepoint_android_vh_binder_set_priority __tracepoint_android_vh_binder_transaction_init __tracepoint_android_vh_binder_wakeup_ilocked + __tracepoint_android_vh_check_uninterruptible_tasks + __tracepoint_android_vh_check_uninterruptible_tasks_dn __tracepoint_android_vh_cpu_idle_enter __tracepoint_android_vh_cpu_idle_exit __tracepoint_android_vh_dump_throttled_rt_tasks + __tracepoint_android_vh_force_compatible_post + __tracepoint_android_vh_force_compatible_pre __tracepoint_android_vh_freq_table_limits __tracepoint_android_vh_ftrace_dump_buffer __tracepoint_android_vh_ftrace_format_check __tracepoint_android_vh_ftrace_oops_enter __tracepoint_android_vh_ftrace_oops_exit __tracepoint_android_vh_ftrace_size_check + __tracepoint_android_vh_gpio_block_read __tracepoint_android_vh_iommu_setup_dma_ops __tracepoint_android_vh_ipi_stop __tracepoint_android_vh_jiffies_update + __tracepoint_android_vh_logbuf __tracepoint_android_vh_printk_hotplug + __tracepoint_android_vh_process_killed + __tracepoint_android_vh_psi_event + __tracepoint_android_vh_psi_group __tracepoint_android_vh_scheduler_tick __tracepoint_android_vh_show_max_freq __tracepoint_android_vh_show_resume_epoch_val __tracepoint_android_vh_show_suspend_epoch_val __tracepoint_android_vh_timer_calc_index + __tracepoint_android_vh_update_topology_flags_workfn __tracepoint_binder_transaction_received __tracepoint_cpu_frequency __tracepoint_cpu_frequency_limits @@ -2670,12 +2851,14 @@ vmalloc_to_page vmalloc_to_pfn vmap + vmemdup_user vmf_insert_mixed vmf_insert_pfn vm_get_page_prot vm_insert_page vm_iomap_memory vm_map_pages + vm_memory_committed vm_mmap vm_munmap vm_node_stat diff --git a/android/abi_gki_aarch64_unisoc b/android/abi_gki_aarch64_unisoc new file mode 100644 index 000000000000..c1c6e5e983bc --- /dev/null +++ b/android/abi_gki_aarch64_unisoc @@ -0,0 +1,2571 @@ +[abi_symbol_list] +# commonly used symbols + add_timer + add_uevent_var + add_wait_queue + add_to_page_cache_lru + aes_encrypt + aes_expandkey + alloc_anon_inode + alloc_chrdev_region + alloc_netdev_mqs + alloc_pages_exact + __alloc_pages_nodemask + __alloc_percpu + __alloc_skb + alloc_workqueue + __arch_copy_from_user + __arch_copy_in_user + __arch_copy_to_user + arm64_const_caps_ready + arp_tbl + atomic_notifier_call_chain + atomic_notifier_chain_register + atomic_notifier_chain_unregister + bdget_disk + bdput + bio_add_page + bio_alloc_bioset + bio_associate_blkg + bio_endio + bio_put + bit_wait + blk_alloc_queue + blk_finish_plug + blk_start_plug + blk_queue_flag_clear + blk_queue_flag_set + blk_queue_io_min + blk_queue_io_opt + blk_queue_make_request + blk_queue_max_discard_sectors + blk_queue_max_write_zeroes_sectors + blk_queue_physical_block_size + blocking_notifier_chain_register + blocking_notifier_chain_unregister + bpf_trace_run1 + bpf_trace_run2 + bpf_trace_run3 + bpf_trace_run4 + __breadahead + bus_register + bus_set_iommu + bus_unregister + __close_fd + __ClearPageMovable + call_rcu + cancel_delayed_work + cancel_delayed_work_sync + cancel_work_sync + cdev_add + cdev_del + cdev_device_add + cdev_device_del + cdev_init + __cfi_slowpath + __check_object_size + __class_create + class_destroy + class_find_device + clear_nlink + clear_inode + clk_bulk_disable + clk_bulk_enable + clk_bulk_prepare + clk_bulk_unprepare + clk_disable + clk_enable + clk_fixed_factor_ops + clk_get_rate + clk_prepare + clk_put + clk_set_parent + clk_set_rate + clk_unprepare + clocks_calc_mult_shift + clockevents_config_and_register + __clocksource_register_scale + compat_alloc_user_space + complete + complete_all + config_ep_by_speed + config_group_init_type_name + contig_page_data + console_lock + console_unlock + __const_udelay + cpu_have_feature + cpu_hwcap_keys + cpu_hwcaps + cpumask_next + cpufreq_add_update_util_hook + cpufreq_remove_update_util_hook + cpu_number + __cpu_online_mask + __cpu_possible_mask + crypto_alloc_base + crypto_ahash_digest + crypto_ahash_setkey + crypto_alloc_ahash + crypto_destroy_tfm + crypto_has_alg + crypto_inc + __crypto_memneq + crypto_register_aead + crypto_register_shash + crypto_register_shashes + crypto_unregister_aead + crypto_unregister_shash + crypto_unregister_shashes + __crypto_xor + csum_ipv6_magic + csum_partial + __dynamic_netdev_dbg + d_make_root + d_splice_alias + debugfs_create_bool + debugfs_create_dir + debugfs_create_file + debugfs_create_u32 + debugfs_initialized + debugfs_remove + debugfs_remove_recursive + debugfs_create_symlink + dec_zone_page_state + default_llseek + delayed_work_timer_fn + del_timer + del_timer_sync + destroy_workqueue + dev_driver_string + _dev_err + dev_fwnode + dev_get_by_name + dev_get_regmap + device_add + device_connection_find_match + device_create + device_create_file + device_destroy + device_initialize + device_init_wakeup + device_link_add + device_match_fwnode + device_match_name + device_property_present + device_property_read_string + device_property_read_u32_array + device_register + device_remove_file + device_set_wakeup_capable + device_unregister + _dev_info + __dev_kfree_skb_any + devm_add_action + devm_backlight_device_register + devm_clk_bulk_get + devm_clk_bulk_get_all + devm_clk_get + devm_clk_get_optional + devm_free_irq + devm_gpiochip_add_data + devm_gpiod_get + devm_gpio_free + devm_gpio_request + devm_hwspin_lock_request_specific + __devm_iio_device_register + devm_ioremap_nocache + devm_ioremap_resource + devm_kfree + devm_kmalloc + devm_kmemdup + devm_mfd_add_devices + devm_nvmem_register + devm_of_platform_populate + devm_pinctrl_get + devm_pinctrl_put + devm_power_supply_register + __devm_regmap_init + __devm_regmap_init_i2c + __devm_regmap_init_mmio_clk + devm_regulator_get + devm_regulator_register + devm_request_threaded_irq + devm_spi_register_controller + devm_usb_get_phy + devm_usb_get_phy_by_phandle + dev_queue_xmit + dev_set_name + _dev_warn + disable_irq + disable_irq_nosync + dma_alloc_attrs + dma_direct_map_page + dma_direct_sync_single_for_cpu + dma_direct_sync_single_for_device + dma_direct_unmap_page + dma_fence_release + dma_fence_wait_timeout + dma_free_attrs + dma_heap_add + dma_heap_get_dev + dma_heap_get_name + dma_max_mapping_size + dma_set_mask + down + dput + driver_register + driver_unregister + drm_atomic_helper_plane_destroy_state + drm_atomic_helper_plane_duplicate_state + drm_atomic_helper_plane_reset + drm_atomic_helper_setup_commit + drm_compat_ioctl + drm_dbg + drm_dev_alloc + drm_dev_put + drm_dev_register + drm_err + drm_ioctl + drm_mm_init + drm_mm_insert_node_in_range + drm_mm_remove_node + drm_mm_takedown + drm_mode_config_cleanup + drm_mode_config_init + drm_open + drm_plane_create_color_properties + drm_poll + drm_read + drm_release + dst_release + dump_stack + enable_irq + ether_setup + eth_type_trans + event_triggers_call + extcon_find_edev_by_node + extcon_get_edev_by_phandle + extcon_get_state + fb_mode_option + __find_get_block + find_next_bit + finish_wait + flush_work + flush_workqueue + fpsimd_context_busy + fput + free_irq + free_netdev + __free_pages + free_pages_exact + free_percpu + freezing_slow_path + fs_bio_set + fs_ftype_to_dtype + fsync_bdev + fwnode_property_present + fwnode_property_read_string + gen_pool_avail + generic_end_io_acct + generic_file_llseek + generic_handle_irq + generic_read_dir + generic_ro_fops + generic_start_io_acct + genl_register_family + genl_unregister_family + gen_pool_add_owner + gen_pool_alloc_algo_owner + gen_pool_create + gen_pool_free_owner + get_cpu_device + __get_free_pages + get_governor_parent_kobj + get_random_bytes + gov_attr_set_get + gov_attr_set_init + gov_attr_set_put + governor_sysfs_ops + gpiochip_get_data + gpiochip_line_is_irq + gpiod_direction_input + gpiod_direction_output_raw + gpiod_get + gpiod_get_raw_value + gpiod_set_raw_value + gpiod_set_raw_value_cansleep + gpiod_to_chip + gpiod_to_irq + gpio_free + gpio_request + gpio_to_desc + handle_bad_irq + handle_edge_irq + handle_level_irq + have_governor_per_policy + i2c_del_driver + i2c_register_driver + i2c_smbus_read_byte_data + i2c_smbus_write_byte_data + i2c_transfer_buffer_flags + ida_alloc_range + ida_destroy + ida_free + idr_alloc + idr_destroy + idr_find + idr_for_each + idr_remove + ieee80211_channel_to_freq_khz + ieee80211_freq_khz_to_channel + ieee80211_get_channel_khz + iget_failed + iget5_locked + ignore_console_lock_warning + igrab + inet_proto_csum_replace4 + init_net + __init_rwsem + init_timer_key + init_user_ns + init_wait_entry + init_pseudo + init_special_inode + __init_waitqueue_head + inc_zone_page_state + inode_init_once + inode_nohighmem + input_alloc_absinfo + input_allocate_device + input_event + input_free_device + input_mt_get_slot_by_key + input_mt_sync_frame + input_register_device + iommu_alloc_resv_region + iommu_attach_device + iommu_detach_device + iommu_device_link + iommu_device_register + iommu_device_sysfs_add + iommu_device_sysfs_remove + iommu_device_unlink + iommu_device_unregister + iommu_dma_get_resv_regions + iommu_domain_alloc + iommu_domain_free + iommu_domain_get_attr + iommu_domain_set_attr + iommu_fwspec_add_ids + iommu_fwspec_free + iommu_get_dma_cookie + iommu_get_domain_for_dev + iommu_group_alloc + iommu_group_get + iommu_group_get_for_dev + iommu_group_get_iommudata + iommu_group_put + iommu_group_ref_get + iommu_group_remove_device + iommu_group_set_iommudata + iommu_map + iommu_map_sg + iommu_present + iommu_put_dma_cookie + iommu_set_fault_handler + iommu_unmap + __ioremap + iounmap + iput + ip6t_alloc_initial_table + ip6t_do_table + ip6t_register_table + ip6t_unregister_table + ip_route_output_flow + ipv4_redirect + ipv4_update_pmtu + ir_lirc_scancode_event + ir_raw_gen_manchester + ir_raw_gen_pd + ir_raw_handler_register + ir_raw_handler_unregister + ir_raw_gen_pl + irq_find_mapping + irq_get_irq_data + irq_modify_status + irq_of_parse_and_map + irq_set_irq_type + irq_set_irq_wake + irq_work_sync + is_console_locked + jiffies + jiffies_to_msecs + kern_mount + kern_unmount + kernel_kobj + kasprintf + kernel_neon_begin + kernel_neon_end + __kfifo_alloc + __kfifo_free + __kfifo_in + __kfifo_out + kfree + kfree_skb + kill_anon_super + kimage_vaddr + kimage_voffset + __kmalloc + kmalloc_caches + kmalloc_order_trace + kmem_cache_alloc + kmem_cache_alloc_trace + kmem_cache_create + kmem_cache_destroy + kmem_cache_free + kmemdup + kobject_create_and_add + kobject_uevent_env + kstrndup + kstrtou16 + kstrtobool + kstrtoint + kstrtoll + kstrtouint + kstrtoull + kthread_create_on_node + kthread_should_stop + kthread_stop + ktime_get + ktime_get_mono_fast_ns + ktime_get_real_seconds + ktime_get_real_ts64 + kzfree + LZ4_decompress_safe_partial + lzo1x_decompress_safe + lzorle1x_1_compress + lzo1x_1_compress + __list_add_valid + __list_del_entry_valid + memcpy + __memcpy_fromio + memmove + memparse + memset + memset64 + misc_deregister + misc_register + mod_node_page_state + mod_timer + module_put + __msecs_to_jiffies + msleep + __mutex_init + mutex_lock + mutex_lock_interruptible + mutex_trylock + mutex_unlock + nd_tbl + neigh_destroy + __netdev_alloc_skb + __num_online_cpus + netif_carrier_off + netif_carrier_on + netif_rx_ni + netif_tx_wake_queue + nf_conntrack_destroy + nf_conntrack_find_get + nf_ct_get_tuplepr + nf_ct_invert_tuple + nf_ct_l4proto_find + nf_register_net_hooks + nf_unregister_net_hooks + nr_cpu_ids + nvmem_cell_get + nvmem_cell_put + nvmem_cell_read + of_address_to_resource + of_alias_get_id + of_clk_get + of_clk_get_parent_count + of_count_phandle_with_args + of_device_get_match_data + of_device_is_available + of_device_is_compatible + of_dev_put + of_find_compatible_node + of_find_device_by_node + of_find_node_by_name + of_find_property + of_get_child_by_name + of_get_named_gpio_flags + of_get_next_available_child + of_get_next_child + of_get_property + of_get_regulator_init_data + of_graph_get_remote_node + of_irq_get + of_match_node + of_nvmem_cell_get + of_parse_phandle + of_parse_phandle_with_args + of_parse_phandle_with_fixed_args + of_platform_depopulate + of_platform_populate + of_property_count_elems_of_size + of_property_match_string + of_property_read_string + of_property_read_u32_index + of_property_read_u64 + of_property_read_variable_u32_array + of_prop_next_string + oops_in_progress + out_of_line_wait_on_bit_lock + overflowgid + overflowuid + panic + page_endio + page_get_link + page_mapping + pagecache_get_page + param_ops_charp + param_ops_uint + param_ops_ushort + __pci_register_driver + pci_set_master + pci_unregister_driver + PDE_DATA + __per_cpu_offset + perf_trace_buf_alloc + perf_trace_run_bpf_submit + pfn_valid + pinctrl_lookup_state + pinctrl_select_state + pinctrl_pm_select_default_state + pinctrl_pm_select_sleep_state + platform_bus_type + platform_device_add + platform_device_add_properties + platform_device_add_resources + platform_device_alloc + platform_device_put + platform_device_register + platform_device_register_full + platform_device_unregister + __platform_driver_register + platform_driver_unregister + platform_get_irq + platform_get_irq_byname + platform_get_resource + platform_get_resource_byname + pm_power_off + __pm_relax + pm_runtime_allow + __pm_runtime_disable + pm_runtime_enable + pm_runtime_forbid + pm_runtime_force_resume + pm_runtime_force_suspend + __pm_runtime_idle + __pm_runtime_resume + pm_runtime_set_autosuspend_delay + __pm_runtime_set_status + __pm_runtime_suspend + __pm_runtime_use_autosuspend + __pm_stay_awake + pm_wakeup_ws_event + posix_acl_access_xattr_handler + posix_acl_default_xattr_handler + posix_acl_from_xattr + power_supply_changed + power_supply_get_battery_info + power_supply_get_by_name + power_supply_get_drvdata + power_supply_get_property + power_supply_powers + power_supply_put + ppp_input + ppp_register_compressor + ppp_unregister_compressor + preempt_schedule + preempt_schedule_notrace + prepare_to_wait_event + printk + proc_create + proc_create_data + proc_create_seq_private + proc_mkdir + __pskb_copy_fclone + pskb_expand_head + put_device + put_pages_list + put_tty_driver + queue_delayed_work_on + queue_work_on + ___ratelimit + _raw_read_lock + _raw_read_unlock + _raw_spin_lock + _raw_spin_lock_bh + _raw_spin_lock_irq + _raw_spin_lock_irqsave + _raw_spin_unlock + _raw_spin_unlock_bh + _raw_spin_unlock_irq + _raw_spin_unlock_irqrestore + _raw_write_lock + _raw_write_unlock + __rcu_read_lock + __rcu_read_unlock + radix_tree_preload + radix_tree_delete + radix_tree_gang_lookup + radix_tree_insert + radix_tree_lookup + rc_map_unregister + rc_repeat + rc_keydown + rc_map_register + rdev_get_drvdata + refcount_dec_and_test_checked + refcount_inc_checked + __refrigerator + __register_chrdev + read_cache_page + read_cache_page_gfp + register_filesystem + register_pernet_subsys + register_pm_notifier + regmap_read + regmap_update_bits_base + regmap_write + regulator_disable + regulator_disable_regmap + regulator_enable + regulator_enable_regmap + regulator_get_voltage_sel_regmap + regulator_is_enabled_regmap + regulator_list_voltage_linear + regulator_map_voltage_linear + regulator_set_voltage_sel_regmap + release_firmware + remap_pfn_range + remove_proc_entry + remove_wait_queue + __request_module + request_threaded_irq + reset_control_assert + reset_control_deassert + revalidate_disk + rfkill_alloc + rfkill_destroy + rfkill_init_sw_state + rfkill_register + rfkill_unregister + __SetPageMovable + sched_clock + sched_setscheduler + schedule + schedule_timeout + schedule_timeout_interruptible + scnprintf + seq_lseek + seq_printf + seq_putc + seq_puts + seq_read + set_nlink + set_normalized_timespec64 + set_user_nice + sg_init_table + sg_miter_next + sg_miter_start + sg_miter_stop + sg_nents + sg_next + simple_attr_open + simple_attr_read + simple_attr_release + simple_attr_write + simple_get_link + simple_read_from_buffer + simple_strtol + single_open + single_release + skb_clone + skb_copy + skb_cow_data + skb_ensure_writable + skb_push + skb_put + skb_realloc_headroom + skb_to_sgvec_nomark + skb_trim + skcipher_walk_aead_decrypt + skcipher_walk_aead_encrypt + skcipher_walk_done + skcipher_walk_virt + sk_free + snd_info_create_card_entry + snd_info_free_entry + snd_info_get_line + snd_info_register + snd_pcm_hw_constraint_minmax + snd_pcm_lib_ioctl + snd_pcm_period_elapsed + snd_soc_add_component_controls + snd_soc_dapm_disable_pin + snd_soc_dapm_enable_pin + snd_soc_dapm_ignore_suspend + snd_soc_dapm_kcontrol_dapm + snd_soc_dapm_put_enum_double + snd_soc_dapm_put_volsw + snd_soc_dapm_sync + snd_soc_info_enum_double + snd_soc_info_volsw + snd_soc_pm_ops + snd_soc_register_component + snd_soc_unregister_component + snprintf + __spi_alloc_controller + sprintf + sscanf + __stack_chk_fail + __stack_chk_guard + strcasecmp + strcat + strchr + strcmp + strcpy + strlcat + strlcpy + strlen + strncasecmp + strncmp + strncpy + strncpy_from_user + strnlen + strnstr + strstr + __sw_hweight32 + __sw_hweight64 + submit_bio + sync_filesystem + synchronize_irq + syscon_regmap_lookup_by_phandle + syscon_regmap_lookup_by_phandle_args + sysfs_create_bin_file + sysfs_create_file_ns + sysfs_create_group + sysfs_create_groups + sysfs_create_link + __sysfs_match_string + sysfs_notify + sysfs_remove_bin_file + sysfs_remove_file_ns + sysfs_remove_group + sysfs_remove_groups + sysfs_remove_link + sysfs_streq + system_freezable_wq + system_freezing_cnt + system_unbound_wq + system_wq + sys_tz + tasklet_init + tasklet_kill + __tasklet_schedule + thermal_zone_get_zone_by_name + timer_of_init + trace_define_field + trace_event_buffer_commit + trace_event_buffer_reserve + trace_event_ignore_this_pid + trace_event_raw_init + trace_event_reg + trace_handle_return + trace_raw_output_prep + trace_seq_printf + try_module_get + __tty_alloc_driver + tty_flip_buffer_push + __tty_insert_flip_char + tty_insert_flip_string_fixed_flag + tty_kref_put + tty_port_close + tty_port_destroy + tty_port_hangup + tty_port_init + tty_port_link_device + tty_port_open + tty_port_register_device + tty_port_tty_get + tty_port_tty_wakeup + tty_register_driver + tty_set_operations + tty_standard_install + tty_std_termios + tty_termios_baud_rate + tty_unregister_device + tty_unregister_driver + tty_vhangup + __ubsan_handle_cfi_check_fail_abort + __udelay + __unregister_chrdev + unlock_new_inode + unlock_page + unregister_filesystem + unregister_chrdev_region + unregister_pernet_subsys + up + usb_add_gadget_udc + usb_alloc_coherent + usb_alloc_urb + usb_autopm_get_interface + usb_autopm_get_interface_no_resume + usb_autopm_put_interface + usb_control_msg + usb_del_gadget_udc + usb_deregister + usb_ep_alloc_request + usb_ep_autoconfig + usb_ep_dequeue + usb_ep_enable + usb_ep_free_request + usb_ep_queue + usb_ep_set_maxpacket_limit + usb_find_common_endpoints + usb_free_coherent + usb_free_urb + usb_function_register + usb_function_unregister + usb_gadget_giveback_request + usb_gadget_udc_reset + usb_get_dr_mode + usb_get_intf + usb_hcd_is_primary_hcd + usb_interface_id + usb_kill_urb + usb_phy_get_charger_current + usb_phy_set_charger_current + usb_put_function_instance + usb_put_intf + usb_register_driver + usb_submit_urb + usleep_range + vabits_actual + vfree + vmalloc + vm_map_ram + vm_unmap_aliases + vm_unmap_ram + vm_iomap_memory + vsnprintf + vunmap + wait_for_completion + wait_for_completion_interruptible + wait_for_completion_interruptible_timeout + wait_for_completion_timeout + __wake_up + __wake_up_locked + wake_up_bit + wake_up_process + wakeup_source_add + wakeup_source_create + wakeup_source_destroy + wakeup_source_register + wakeup_source_remove + wakeup_source_unregister + __warn_printk + xfrm4_protocol_deregister + xfrm4_protocol_register + xfrm4_rcv + xfrm_aalg_get_byname + xfrm_input + xfrm_input_resume + xfrm_output_resume + xfrm_register_type + __xfrm_state_destroy + xfrm_state_lookup + xfrm_unregister_type + xt_register_match + xt_register_matches + xt_register_target + xt_register_targets + xt_unregister_match + xt_unregister_matches + xt_unregister_target + xt_unregister_targets + +# required by blk-mq-virtio.ko + blk_mq_map_queues + +# required by cdc-acm.ko + capable + cdc_parse_cdc_header + default_wake_function + refcount_inc_not_zero_checked + tty_port_put + tty_port_tty_hangup + usb_anchor_urb + usb_autopm_get_interface_async + usb_autopm_put_interface_async + usb_clear_halt + usb_driver_claim_interface + usb_driver_release_interface + usb_get_from_anchor + usb_ifnum_to_if + +# required by charger-manager.ko + alarm_cancel + alarm_expires_remaining + alarm_init + alarm_start + alarmtimer_get_rtcdev + devm_kasprintf + ns_to_timespec64 + orderly_poweroff + power_supply_set_property + regulator_force_disable + regulator_set_current_limit + thermal_zone_get_temp + +# required by clk-sprd.ko + clk_hw_get_num_parents + clk_hw_get_parent + clk_hw_is_enabled + __clk_mux_determine_rate + devm_clk_hw_register + devm_of_clk_add_hw_provider + divider_get_val + divider_recalc_rate + divider_round_rate_parent + of_clk_hw_onecell_get + +# required by cpufreq_userspace.ko + __cpufreq_driver_target + cpufreq_register_governor + cpufreq_unregister_governor + +# required by dwc3-haps.ko + pcim_enable_device + +# required by dwc3-of-simple.ko + clk_bulk_get_all + clk_bulk_put_all + of_reset_control_array_get + reset_control_put + reset_control_reset + +# required by dwc3-qcom.ko + devm_extcon_register_notifier + devm_reset_control_array_get + +# required by dwc3.ko + extcon_register_notifier + extcon_unregister_notifier + usb_gadget_map_request_by_dev + usb_gadget_set_state + +# required by exfat.ko + __blockdev_direct_IO + block_write_full_page + __bread_gfp + __brelse + cont_write_begin + current_time + d_find_alias + d_instantiate + d_move + drop_nlink + filemap_fdatawait_range + filemap_fdatawrite_range + full_name_hash + generic_block_bmap + generic_cont_expand_simple + generic_fh_to_dentry + generic_fh_to_parent + generic_file_fsync + generic_file_mmap + generic_file_read_iter + generic_file_splice_read + generic_file_write_iter + generic_fillattr + generic_write_end + __getblk_gfp + ilookup + inc_nlink + in_group_p + __insert_inode_hash + invalidate_inode_buffers + iunique + kill_block_super + kvfree + kvmalloc_node + load_nls + __lock_buffer + __lock_page + new_inode + mark_buffer_dirty + __mark_inode_dirty + match_int + match_octal + match_strdup + match_token + mktime64 + mount_bdev + mpage_readpage + mpage_readpages + mpage_writepages + __remove_inode_hash + setattr_copy + setattr_prepare + sb_min_blocksize + sb_set_blocksize + strscpy + sync_blockdev + sync_dirty_buffer + sync_mapping_buffers + time64_to_tm + touch_buffer + trace_print_symbols_seq + truncate_inode_pages + truncate_pagecache + truncate_setsize + unload_nls + unlock_buffer + utf16s_to_utf8s + utf8s_to_utf16s + write_inode_now + +# required by fan53555.ko + regulator_set_voltage_time_sel + +# required by focaltech_ats.ko + devm_input_allocate_device + devm_regulator_put + i2c_new_probed_device + i2c_transfer + input_mt_init_slots + input_mt_report_slot_state + input_set_abs_params + input_set_capability + kobject_put + of_find_i2c_adapter_by_node + of_property_read_variable_u8_array + request_firmware_nowait + +# required by gpio-eic-sprd.ko + gpiochip_find + +# required by gpio-pmic-eic-sprd.ko + handle_nested_irq + +# required by gpio-sprd.ko + __platform_driver_probe + +# required by i2c-sprd.ko + i2c_add_numbered_adapter + i2c_del_adapter + +# required by img_mem.ko + dma_direct_map_sg + dma_direct_sync_sg_for_cpu + dma_direct_sync_sg_for_device + dma_direct_unmap_sg + idr_get_next + sg_alloc_table + sg_free_table + vsprintf + +# required by ims_bridge.ko + in4_pton + in6_pton + inet_select_addr + ip6_local_out + ip6_route_output_flags + ip_local_out + ipv6_dev_get_saddr + mempool_alloc + mempool_alloc_slab + mempool_create + mempool_destroy + mempool_free + mempool_free_slab + nf_ct_get_tuplepr + nf_ct_invert_tuple + param_ops_int + prandom_u32 + proc_create_net_data + __pskb_pull_tail + skb_checksum_help + rcu_barrier + strim + xfrm_lookup + completion_done + +# required by kfifo_buf.ko + devres_add + devres_alloc_node + devres_free + devres_release + iio_buffer_init + iio_buffer_put + __kfifo_to_user + +# required by leds-sc27xx-bltc.ko + devm_led_classdev_register_ext + +# required by mali_gondul.ko + anon_inode_getfd + __bitmap_weight + clear_page + devfreq_add_device + devfreq_remove_device + devfreq_resume_device + devfreq_suspend_device + dev_pm_opp_disable + dev_pm_opp_find_freq_floor + dev_pm_opp_put_regulators + dev_pm_opp_set_regulators + dma_fence_get_status + dma_fence_remove_callback + downgrade_write + down_trylock + get_user_pages + get_user_pages_fast + get_user_pages_remote + hrtimer_active + hrtimer_forward + iomem_resource + kstrtobool_from_user + memstart_addr + __mmdrop + nonseekable_open + of_property_read_variable_u64_array + param_ops_byte + rb_erase + rb_first + rb_insert_color + rb_next + rb_prev + rb_replace_node + regulator_get_optional + __release_region + remap_vmalloc_range + __request_region + reservation_ww_class + seq_open + __seq_open_private + seq_release_private + seq_write + set_page_dirty_lock + strcspn + system_highpri_wq + trace_print_flags_seq + vmalloc_user + ww_mutex_lock + ww_mutex_unlock + +# required by microarray_fp.ko + cdev_alloc + +# required by mmc_hsq.ko + mmc_cqe_request_done + mmc_send_tuning + +# required by musb_hdrc.ko + device_wakeup_enable + dev_printk + flush_delayed_work + flush_dcache_page + param_ops_bool + usb_add_hcd + usb_create_hcd + usb_ep_set_halt + usb_hcd_check_unlink_urb + usb_hcd_giveback_urb + usb_hcd_link_urb_to_ep + usb_hcd_map_urb_for_dma + usb_hcd_poll_rh_status + usb_hcd_resume_root_hub + usb_hcd_unlink_urb_from_ep + usb_hcd_unmap_urb_for_dma + usb_otg_state_string + usb_put_hcd + usb_remove_hcd + +# required by musb_sprd.ko + usb_ep_disable + usb_speed_string + +# required by pcie-sprd.ko + device_get_next_child_node + devm_gpiod_get_index + devm_ioremap + dw_pcie_host_init + dw_pcie_msi_init + dw_pcie_setup_rc + dw_pcie_wait_for_link + fwnode_handle_put + gpiod_get_value + of_fwnode_ops + pci_assign_unassigned_bus_resources + pci_bus_add_devices + pci_check_and_mask_intx + pci_check_and_unmask_intx + pci_clear_master + pcie_bus_configure_settings + pci_enable_msi + pci_intx + pci_ioremap_bar + pci_ioremap_wc_bar + pci_lock_rescan_remove + pci_reset_function + pci_scan_child_bus + pci_stop_and_remove_bus_device + pci_unlock_rescan_remove + sdio_claim_irq + sdio_f0_readb + sdio_f0_writeb + sdio_get_host_pm_caps + sdio_readw + sdio_release_irq + sdio_set_host_pm_flags + sdio_writew + +# required by phy-sprd-sharkl3.ko + usb_add_phy_dev + usb_phy_set_charger_state + usb_remove_phy + +# required by pinctrl-sprd.ko + devm_platform_ioremap_resource + of_property_read_string_helper + pinconf_generic_parse_dt_config + pinctrl_dev_get_drvdata + pinctrl_register + pinctrl_unregister + pinctrl_utils_add_map_configs + pinctrl_utils_add_map_mux + pinctrl_utils_free_map + pinctrl_utils_reserve_map + pin_get_name + +# required by pvrsrvkm.ko + autoremove_wake_function + bpf_trace_run6 + bpf_trace_run7 + bpf_trace_run8 + cache_line_size + devfreq_cooling_unregister + devfreq_recommended_opp + devfreq_register_opp_notifier + devfreq_unregister_opp_notifier + devm_devfreq_add_device + devm_devfreq_remove_device + dev_pm_opp_add + dev_pm_opp_find_freq_ceil + dev_pm_opp_get_freq + dev_pm_opp_get_opp_count + dev_pm_opp_get_voltage + dev_pm_opp_of_add_table + dev_pm_opp_of_register_em + dev_pm_opp_of_remove_table + dev_pm_opp_put + dma_buf_attach + dma_buf_begin_cpu_access + dma_buf_detach + dma_buf_end_cpu_access + dma_buf_export + dma_buf_fd + dma_buf_get + dma_buf_kmap + dma_buf_kunmap + dma_buf_map_attachment + dma_buf_mmap + dma_buf_put + dma_buf_unmap_attachment + dma_buf_vmap + dma_buf_vunmap + dma_fence_add_callback + dma_fence_array_ops + dma_fence_context_alloc + dma_fence_default_wait + dma_fence_enable_sw_signaling + dma_fence_free + dma_fence_init + dma_fence_signal + down_read + down_write + drm_dev_unregister + fd_install + fget + find_vma + find_vpid + __get_task_comm + get_unused_fd_flags + idr_preload + idr_replace + ion_query_heaps_kernel + kill_pid + ksize + kthread_freezable_should_stop + ktime_get_raw_ts64 + memcmp + mutex_is_locked + of_devfreq_cooling_register_power + of_hwspin_lock_get_id_byname + of_modalias_node + on_each_cpu + prepare_to_wait + proc_remove + put_unused_fd + _raw_read_lock_bh + _raw_read_unlock_bh + _raw_write_lock_bh + _raw_write_unlock_bh + register_shrinker + request_firmware + seq_vprintf + set_freezable + si_meminfo + split_page + strncat + strsep + sync_file_create + sync_file_get_fence + __task_pid_nr_ns + trace_set_clr_event + unmap_mapping_range + unregister_shrinker + up_read + up_write + __usecs_to_jiffies + vmf_insert_mixed + vm_get_page_prot + vm_insert_page + vsscanf + vzalloc + +# required by pwm-sprd.ko + pwmchip_add + pwmchip_remove + +# required by pwm_bl.ko + backlight_device_register + backlight_device_unregister + devm_pwm_get + gpiod_get_direction + int_pow + pwm_free + pwm_request + +# required by roles.ko + fwnode_connection_find_match + fwnode_get_parent + +# required by rtc-sc27xx.ko + devm_rtc_allocate_device + rtc_ktime_to_tm + __rtc_register_device + rtc_time64_to_tm + rtc_tm_to_time64 + rtc_update_irq + +# required by sc2703-bl.ko + of_pwm_get + pwm_apply_state + +# required by sc2703_disp.ko + mfd_add_devices + +# required by sc2703_regulator.ko + regulator_notifier_call_chain + +# required by sc27xx_adc.ko + devm_iio_device_alloc + hwspin_lock_free + hwspin_lock_request_specific + __hwspin_lock_timeout + __hwspin_unlock + of_hwspin_lock_get_id + +# required by sc27xx_fuel_gauge.ko + devm_iio_channel_get + gpiod_get_value_cansleep + iio_read_channel_processed + power_supply_find_ocv2cap_table + power_supply_ocv2cap_simple + power_supply_put_battery_info + power_supply_temp2resist_simple + +# required by sc27xx_pd.ko + device_get_named_child_node + devm_extcon_register_notifier_all + devm_regulator_get_optional + +# required by sc27xx_typec.ko + devm_extcon_dev_allocate + devm_extcon_dev_register + extcon_set_state_sync + typec_register_partner + typec_register_port + typec_set_data_role + typec_set_pwr_opmode + typec_set_pwr_role + typec_set_vconn_role + typec_unregister_partner + typec_unregister_port + +# required by sc27xx-vibra.ko + input_ff_create_memless + +# required by sc9863a-clk.ko + device_get_match_data + +# required by sdhci-sprd.ko + clk_round_rate + mmc_free_host + mmc_of_parse + mmc_regulator_set_vqmmc + mmc_remove_host + mmc_request_done + __sdhci_add_host + sdhci_cleanup_host + sdhci_enable_clk + sdhci_enable_v4_mode + sdhci_pltfm_free + sdhci_pltfm_init + sdhci_remove_host + sdhci_request + sdhci_request_atomic + sdhci_reset + sdhci_runtime_resume_host + sdhci_runtime_suspend_host + sdhci_set_bus_width + sdhci_setup_host + +# required by sdiohal.ko + mmc_detect_change + mmc_set_data_timeout + mmc_wait_for_req + __put_page + print_hex_dump + sdio_claim_host + sdio_enable_func + sdio_memcpy_fromio + sdio_memcpy_toio + sdio_readb + sdio_readl + sdio_readsb + sdio_register_driver + sdio_release_host + sdio_set_block_size + sdio_unregister_driver + sdio_writeb + sdio_writel + sdio_writesb + __trace_bprintk + +# required by seth.ko + napi_complete_done + napi_disable + __napi_schedule + napi_schedule_prep + netif_napi_add + netif_napi_del + netif_receive_skb + register_netdev + unregister_netdev + +# required by sfp_core.ko + csum_tcpudp_nofold + dev_get_by_index_rcu + ip_send_check + ipv6_ext_hdr + ipv6_find_hdr + kstrtouint_from_user + __local_bh_enable_ip + nf_conntrack_destroy + nf_conntrack_find_get + of_dma_configure + proc_dointvec + register_netdevice_notifier + register_net_sysctl + rt6_lookup + seq_open_private + seq_release + skb_copy_bits + unregister_netdevice_notifier + +# required by shubcore.ko + iio_alloc_pollfunc + iio_dealloc_pollfunc + iio_device_alloc + iio_device_attach_buffer + iio_device_free + iio_device_unregister + iio_pollfunc_store_time + iio_push_to_buffers + iio_trigger_alloc + iio_triggered_buffer_postenable + iio_triggered_buffer_predisable + iio_trigger_free + iio_trigger_notify_done + iio_trigger_poll + __iio_trigger_register + iio_trigger_unregister + ktime_get_with_offset + param_array_ops + unregister_pm_notifier + +# required by sipa_core.ko + free_pages + memremap + memunmap + pm_wakeup_dev_event + skb_dequeue + skb_queue_tail + +# required by sipa_sys_pd.ko + kstrdup + of_genpd_add_provider_simple + pm_genpd_init + pm_genpd_remove + +# required by sipc_core.ko + gen_pool_destroy + mbox_chan_received_data + mbox_chan_txdone + mbox_client_txdone + mbox_controller_register + mbox_controller_unregister + mbox_free_channel + mbox_request_channel + mbox_request_channel_byname + mbox_send_message + register_syscore_ops + +# required by sipx.ko + hrtimer_cancel + hrtimer_init + hrtimer_start_range_ns + hrtimer_try_to_cancel + +# required by snd-soc-aw881xx.ko + i2c_smbus_write_byte + +# required by snd-soc-akm4377.ko + regcache_mark_dirty + regcache_sync + snd_soc_get_volsw + snd_soc_put_volsw + +# required by snd-soc-sprd-audio-dma.ko + dmam_alloc_attrs + dmam_free_coherent + dma_release_channel + __memset_io + of_dma_request_slave_channel + snd_pcm_format_physical_width + snd_pcm_hw_constraint_integer + snd_pcm_hw_constraint_step + snd_soc_rtdcom_lookup + snd_soc_set_runtime_hwparams + vmap + +# required by snd-soc-sprd-card.ko + devm_gpio_request_one + devm_snd_soc_register_card + gpio_request_one + snd_interval_refine + snd_soc_of_get_dai_name + snd_soc_of_parse_audio_routing + snd_soc_of_parse_audio_simple_widgets + snd_soc_of_parse_card_name + snd_soc_of_parse_daifmt + snd_soc_of_parse_tdm_slot + +# required by snd-soc-sprd-codec-sc2721-power.ko + regulator_register + regulator_unregister + +# required by snd-soc-sprd-codec-sc2721.ko + dapm_regulator_event + gpiod_set_debounce + iio_channel_get + iio_read_channel_raw + iio_write_channel_attribute + irq_to_desc + power_supply_register + power_supply_unregister + regulator_get + regulator_get_mode + regulator_is_enabled + regulator_put + regulator_set_mode + regulator_set_voltage + snd_ctl_find_id + snd_jack_set_key + snd_pcm_rate_to_rate_bit + snd_soc_card_jack_new + snd_soc_component_read32 + snd_soc_component_update_bits + snd_soc_component_write + snd_soc_dapm_force_enable_pin + snd_soc_dapm_get_enum_double + snd_soc_dapm_get_volsw + snd_soc_get_enum_double + snd_soc_jack_report + snd_soc_put_enum_double + +# required by snd-soc-sprd-platform.ko + devm_snd_soc_register_component + dma_request_slave_channel + of_reserved_mem_device_init_by_idx + snd_dma_alloc_pages + snd_dma_free_pages + +# required by snd-soc-sprd-vbc-r1p0v3.ko + snd_ctl_boolean_mono_info + snd_pcm_hw_constraint_list + +# required by snd-soc-tfa98xx.ko + crc32_le + device_create_bin_file + device_remove_bin_file + msleep_interruptible + snd_pcm_format_width + snd_pcm_hw_constraint_mask64 + snd_soc_dapm_add_routes + snd_soc_dapm_new_controls + +# required by sprd-cpufreq-common.ko + dev_pm_opp_remove + +# required by sprd-cpufreqhw.ko + arch_set_freq_scale + cpufreq_generic_attr + cpufreq_generic_frequency_table_verify + cpufreq_generic_get + cpufreq_generic_suspend + cpufreq_register_driver + cpufreq_unregister_driver + dev_pm_opp_free_cpufreq_table + dev_pm_opp_init_cpufreq_table + +# required by sprd-drm.ko + adjust_managed_page_count + component_add + component_bind_all + component_del + component_master_add_with_match + component_master_del + component_match_add_release + component_unbind_all + devm_gpiod_get_optional + dma_get_sgtable_attrs + dma_mmap_attrs + dma_set_coherent_mask + drm_add_edid_modes + drm_atomic_helper_async_commit + drm_atomic_helper_check + drm_atomic_helper_cleanup_planes + drm_atomic_helper_commit + drm_atomic_helper_commit_cleanup_done + drm_atomic_helper_commit_hw_done + drm_atomic_helper_commit_modeset_disables + drm_atomic_helper_commit_modeset_enables + drm_atomic_helper_commit_planes + drm_atomic_helper_commit_tail + drm_atomic_helper_commit_tail_rpm + drm_atomic_helper_connector_destroy_state + drm_atomic_helper_connector_duplicate_state + drm_atomic_helper_connector_reset + drm_atomic_helper_crtc_destroy_state + drm_atomic_helper_crtc_duplicate_state + drm_atomic_helper_crtc_reset + drm_atomic_helper_disable_plane + drm_atomic_helper_page_flip + __drm_atomic_helper_plane_destroy_state + __drm_atomic_helper_plane_duplicate_state + __dynamic_dev_dbg + __dynamic_pr_debug + drm_atomic_helper_prepare_planes + drm_atomic_helper_resume + drm_atomic_helper_set_config + drm_atomic_helper_shutdown + drm_atomic_helper_suspend + drm_atomic_helper_swap_state + drm_atomic_helper_update_legacy_modeset_state + drm_atomic_helper_update_plane + drm_atomic_helper_wait_for_dependencies + drm_atomic_helper_wait_for_fences + drm_atomic_helper_wait_for_vblanks + drm_atomic_private_obj_fini + drm_atomic_private_obj_init + drm_atomic_set_crtc_for_connector + drm_atomic_set_fence_for_plane + drm_atomic_set_mode_for_crtc + drm_atomic_state_alloc + drm_atomic_state_clear + drm_atomic_state_default_clear + drm_atomic_state_default_release + __drm_atomic_state_free + drm_bridge_attach + drm_connector_attach_content_protection_property + drm_connector_attach_encoder + drm_connector_cleanup + drm_connector_init + drm_connector_unregister + drm_connector_update_edid_property + drm_crtc_cleanup + __drm_crtc_commit_free + drm_crtc_handle_vblank + drm_crtc_init_with_planes + drm_crtc_send_vblank_event + drm_crtc_vblank_off + drm_crtc_vblank_on + drm_detect_monitor_audio + drm_display_mode_from_videomode + drm_display_mode_to_videomode + drm_dp_aux_register + drm_dp_aux_unregister + drm_dp_calc_pbn_mode + drm_dp_channel_eq_ok + drm_dp_clock_recovery_ok + drm_dp_dpcd_read + drm_dp_dpcd_read_link_status + drm_dp_dpcd_write + drm_encoder_cleanup + drm_encoder_init + drm_format_info + drm_gem_cma_prime_get_sg_table + drm_gem_cma_prime_mmap + drm_gem_cma_prime_vmap + drm_gem_cma_prime_vunmap + drm_gem_cma_vm_ops + drm_gem_create_mmap_offset + drm_gem_fb_create + drm_gem_fb_get_obj + drm_gem_handle_create + drm_gem_mmap + drm_gem_mmap_obj + drm_gem_object_init + drm_gem_object_put_unlocked + drm_gem_object_release + drm_gem_prime_export + drm_gem_prime_fd_to_handle + drm_gem_prime_handle_to_fd + drm_gem_prime_import + drm_gem_vm_close + drm_get_edid + drm_hdcp_check_ksvs_revoked + drm_hdcp_update_content_protection + drm_helper_hpd_irq_event + drm_helper_probe_single_connector_modes + drm_kms_helper_poll_disable + drm_kms_helper_poll_enable + drm_kms_helper_poll_fini + drm_kms_helper_poll_init + drm_match_cea_mode + drm_mode_config_reset + drm_mode_create + drm_mode_crtc_set_gamma_size + drm_mode_destroy + drm_mode_duplicate + drm_mode_probed_add + drm_mode_vrefresh + drm_object_attach_property + drm_panel_add + drm_panel_attach + drm_panel_detach + drm_panel_disable + drm_panel_enable + drm_panel_get_modes + drm_panel_init + drm_panel_prepare + drm_panel_remove + drm_panel_unprepare + drm_plane_cleanup + drm_plane_create_alpha_property + drm_plane_create_blend_mode_property + drm_plane_create_rotation_property + drm_plane_create_zpos_immutable_property + drm_prime_gem_destroy + drm_property_create + drm_property_create_blob + drm_property_create_range + drm_put_dev + drm_universal_plane_init + drm_vblank_init + gpiod_direction_output + kstrtou8 + mipi_dsi_attach + mipi_dsi_dcs_read + mipi_dsi_dcs_write_buffer + mipi_dsi_detach + mipi_dsi_driver_register_full + mipi_dsi_driver_unregister + mipi_dsi_generic_read + mipi_dsi_generic_write + mipi_dsi_host_register + mipi_dsi_host_unregister + mipi_dsi_set_maximum_return_packet_size + no_llseek + of_clk_get_by_name + of_drm_find_bridge + of_drm_find_panel + of_fdt_unflatten_tree + of_find_backlight_by_node + of_find_node_opts_by_path + of_get_drm_display_mode + of_graph_get_endpoint_by_regs + of_graph_get_remote_port_parent + of_reserved_mem_device_release + __platform_register_drivers + platform_unregister_drivers + regmap_get_reg_stride + regmap_get_val_bytes + try_wait_for_completion + +# required by spi-sprd.ko + dma_request_chan + spi_controller_suspend + spi_finalize_current_transfer + +# required by spi-sprd-adi.ko + unregister_restart_handler + +# required by sprd-dma.ko + dma_async_device_register + dma_async_device_unregister + dma_async_tx_descriptor_init + of_dma_controller_free + of_dma_controller_register + of_dma_simple_xlate + +# required by sprd-gsp.ko + __kthread_init_worker + kthread_queue_work + kthread_worker_fn + +# required by sprd-hwdvfs-sharkl3.ko + __i2c_transfer + rt_mutex_trylock + +# required by sprd_dedicate_thm.ko + devm_thermal_zone_of_sensor_register + system_power_efficient_wq + +# required by sprd_dvfs.ko + devfreq_add_governor + devfreq_remove_governor + devfreq_update_status + device_rename + update_devfreq + +# required by sprd_hwspinlock.ko + hwspin_lock_register + hwspin_lock_unregister + +# required by sprd_ipa.ko + skb_to_sgvec + irq_set_affinity_hint + napi_gro_receive + +# required by sprd-saudio.ko + snd_card_free + +# required by sprd-sc27xx-spi.ko + devm_regmap_add_irq_chip + regmap_irq_get_domain + spi_bus_type + __spi_register_driver + spi_sync + +# required by sprd_apb_busmonitor.ko + _dev_emerg + +# required by sprd_cproc.ko + of_get_parent + +# required by sprd_cpu_cooling.ko + cpu_down + cpufreq_get_policy + cpu_up + cpufreq_quick_get + dev_pm_opp_find_freq_exact + thermal_cooling_device_unregister + thermal_of_cooling_device_register + +# required by sprd-mailbox.ko + devm_mbox_controller_register + +# required by sprd_mcd.ko + gpiod_set_value_cansleep + kernel_power_off + register_restart_handler + unregister_reboot_notifier + +# required by sprd_pcie_ep_device.ko + pci_enable_device + pci_request_regions + pci_restore_state + pci_save_state + pci_set_power_state + +# required by sprd_pm_domain.ko + kfree_const + kstrdup_const + of_genpd_add_subdomain + +# required by sprd_powerdebug.ko + cpu_pm_register_notifier + cpu_pm_unregister_notifier + pm_print_active_wakeup_sources + syscon_node_to_regmap + +# required by sprd_sdio_fm.ko + vfs_llseek + +# required by sprd_soc_thm.ko + thermal_zone_device_unregister + thermal_zone_device_update + thermal_zone_of_sensor_register + +# required by sprd_vdsp.ko + bsearch + devm_kstrdup + __memcpy_toio + of_match_device + of_n_addr_cells + of_n_size_cells + of_translate_address + sort + +# required by sprd_wdt.ko + devm_watchdog_register_device + watchdog_init_timeout + +# required by sprdbt_sipc_tty.ko + tty_schedule_flip + +# required by sprdwl_ng.ko + bcmp + build_skb + __cfg80211_alloc_event_skb + __cfg80211_alloc_reply_skb + cfg80211_chandef_create + cfg80211_ch_switch_notify + cfg80211_connect_done + cfg80211_cqm_rssi_notify + cfg80211_del_sta_sinfo + cfg80211_disconnected + cfg80211_find_elem_match + cfg80211_get_bss + cfg80211_ibss_joined + cfg80211_inform_bss_data + cfg80211_mgmt_tx_status + cfg80211_michael_mic_failure + cfg80211_new_sta + cfg80211_put_bss + cfg80211_ready_on_channel + cfg80211_remain_on_channel_expired + cfg80211_roamed + cfg80211_rx_mgmt + cfg80211_rx_unprot_mlme_mgmt + cfg80211_scan_done + cfg80211_sched_scan_results + __cfg80211_send_event_skb + cfg80211_tdls_oper_request + cfg80211_unlink_bss + cfg80211_unregister_wdev + cfg80211_vendor_cmd_reply + console_printk + consume_skb + _ctype + dev_get_by_index + down_timeout + freq_reg_info + genlmsg_put + jiffies_to_usecs + kfree_skb_list + netdev_alloc_frag + netdev_err + netdev_info + netdev_warn + netlink_unicast + nla_memcpy + __nla_parse + nla_put + nla_put_64bit + nla_put_nohdr + printk_timed_ratelimit + register_inet6addr_notifier + register_inetaddr_notifier + register_netdevice + regulatory_hint + rtnl_lock + rtnl_unlock + simple_open + skb_queue_purge + skb_unlink + synchronize_rcu + unregister_inet6addr_notifier + unregister_inetaddr_notifier + unregister_netdevice_queue + wiphy_free + wiphy_new_nm + wiphy_register + wiphy_unregister + +# required by sunwave_fp.ko + input_unregister_device + +# required by tcpm.ko + fwnode_property_read_u32_array + mod_delayed_work_on + usb_debug_root + +# required by trusty.ko + _copy_from_iter + _copy_to_iter + __cpuhp_remove_state + __cpuhp_setup_state + __cpuhp_state_add_instance + __cpuhp_state_remove_instance + device_for_each_child + disable_percpu_irq + enable_percpu_irq + free_percpu_irq + irq_create_of_mapping + panic_notifier_list + register_virtio_device + register_virtio_driver + __request_percpu_irq + unregister_virtio_device + unregister_virtio_driver + virtqueue_add_inbuf + virtqueue_add_outbuf + virtqueue_detach_unused_buf + virtqueue_get_buf + virtqueue_get_vring_size + virtqueue_kick + virtqueue_kick_prepare + virtqueue_notify + vring_del_virtqueue + vring_interrupt + vring_new_virtqueue + wait_woken + woken_wake_function + +# required by typec.ko + blocking_notifier_call_chain + __class_register + class_unregister + device_find_child + fwnode_property_read_u16_array + get_device + kobject_uevent + match_string + +# required by usb-storage.ko + blk_queue_bounce_limit + blk_queue_max_hw_sectors + blk_queue_update_dma_alignment + _dev_notice + param_ops_string + schedule_timeout_uninterruptible + scsi_add_host_with_dma + scsi_eh_prep_cmnd + scsi_eh_restore_cmnd + scsi_get_host_dev + scsi_host_alloc + scsi_host_put + scsi_is_host_device + scsi_normalize_sense + scsi_remove_host + scsi_report_bus_reset + scsi_report_device_reset + scsi_scan_host + scsi_sense_desc_find + sg_miter_skip + simple_strtoul + usb_autopm_put_interface_no_suspend + usb_lock_device_for_reset + usb_reset_device + usb_reset_endpoint + usb_sg_cancel + usb_sg_init + usb_sg_wait + usb_unlink_urb + +# required by usb_f_mtp.ko + usb_os_desc_prepare_interf_dir + usb_string_id + config_group_init_type_name + +# required by usbserial.ko + device_del + driver_attach + handle_sysrq + tty_hangup + tty_ldisc_deref + tty_ldisc_ref + tty_termios_copy_hw + usb_disabled + usb_get_dev + usb_match_id + usb_match_one_id + usb_poison_urb + usb_put_dev + usb_show_dynids + usb_store_new_id + usb_unpoison_urb + +# required by vha.ko + clk_bulk_get + device_wakeup_disable + devm_iounmap + __ndelay + param_ops_long + param_ops_ulong + pm_relax + pm_stay_awake + +# required by virtio_crypto.ko + cpu_bit_bitmap + cpus_read_lock + cpus_read_unlock + cpu_topology + crypto_ablkcipher_type + crypto_engine_alloc_init + crypto_engine_exit + crypto_engine_start + crypto_finalize_ablkcipher_request + crypto_register_alg + crypto_register_scomp + crypto_transfer_ablkcipher_request_to_engine + crypto_unregister_alg + crypto_unregister_scomp + scatterwalk_map_and_copy + sg_init_one + sg_nents_for_len + +# required by wcn_bsp.ko + gpiod_set_value + memdup_user + pci_disable_device + pci_disable_msi + pci_disable_msix + pcie_capability_read_dword + pcie_capability_read_word + pci_enable_msix_range + pci_enable_wake + pci_find_ext_capability + pci_load_and_free_saved_state + pci_msi_vec_count + pci_read_config_byte + pci_read_config_dword + pci_release_regions + pci_store_saved_state + pci_write_config_byte + pci_write_config_dword + register_chrdev_region + request_firmware_direct + +# required by rc-core.ko + input_scancode_to_scalar + kobject_get_path + led_trigger_register_simple + led_trigger_unregister_simple + __module_get + nsecs_to_jiffies + +# required by spi-bitbang.ko + spi_register_controller + spi_unregister_controller + +# required by sprd_memdisk.ko + __alloc_disk_node + blk_cleanup_queue + blk_mq_end_request + blk_mq_init_sq_queue + blk_mq_start_request + blk_queue_logical_block_size + del_gendisk + device_add_disk + put_disk + register_blkdev + unregister_blkdev + +# required by ppp_async.ko + crc_ccitt_table + n_tty_ioctl_helper + ppp_channel_index + ppp_input_error + ppp_output_wakeup + ppp_register_channel + ppp_unit_number + ppp_unregister_channel + _raw_write_lock_irq + _raw_write_unlock_irq + skb_pull + start_tty + stop_tty + tty_mode_ioctl + tty_register_ldisc + tty_unregister_ldisc + tty_unthrottle + +# required by cls_fw.ko + __dev_get_by_index + __dev_get_by_name + kfree_call_rcu + nla_strlcpy + __put_net + register_tcf_proto_ops + rtnl_is_locked + tcf_action_exec + tcf_exts_destroy + tcf_exts_dump + tcf_exts_dump_stats + tcf_exts_validate + tcf_queue_work + unregister_tcf_proto_ops + +# required by ipcomp.ko + ipcomp_destroy + ipcomp_init_state + ipcomp_input + ipcomp_output + xfrm_init_state + xfrm_state_alloc + xfrm_state_insert + +# required by xcbc.ko + crypto_alloc_instance + crypto_attr_alg2 + crypto_check_attr_type + crypto_init_spawn + crypto_mod_put + crypto_register_template + crypto_spawn_tfm + crypto_unregister_template + shash_free_instance + shash_register_instance + +# required by aes-ce-ccm.ko + ce_aes_expandkey + +# required by xt_TEE.ko + static_key_slow_dec + static_key_slow_inc + xt_tee_enabled + +# required by ir-kbd-i2c.ko + i2c_new_dummy_device + i2c_unregister_device + +# required by ledtrig-pattern.ko + led_get_default_pattern + led_set_brightness + led_trigger_register + led_trigger_unregister + +# required by virtio_crypto.ko + virtio_break_device + virtqueue_add_sgs + virtqueue_disable_cb + virtqueue_enable_cb + virtqueue_is_broken + +# required by dns_resolver.ko + generic_key_instantiate + key_invalidate + key_put + key_revoke + keyring_alloc + key_validate + kmemdup_nul + memchr + prepare_kernel_cred + register_key_type + request_key_tag + unregister_key_type + user_destroy + user_read + user_revoke + +# required by aes-neon-blk.ko + crypto_aes_inv_sbox + crypto_aes_sbox + crypto_alloc_shash + crypto_register_skciphers + crypto_shash_digest + crypto_unregister_skciphers + scatterwalk_ffwd + simd_skcipher_create_compat + simd_skcipher_free + +# required by ghash-ce.ko + gf128mul_lle + +# required by pppoe.ko + _copy_from_iter_full + datagram_poll + dev_add_pack + dev_get_by_name_rcu + dev_remove_pack + lock_sock_nested + pppox_compat_ioctl + pppox_ioctl + pppox_unbind_sock + ppp_register_net_channel + proto_register + proto_unregister + pskb_trim_rcsum_slow + register_pernet_device + register_pppox_proto + release_sock + sk_alloc + skb_copy_datagram_iter + skb_pull_rcsum + skb_recv_datagram + __sk_receive_skb + sock_init_data + sock_no_accept + sock_no_bind + sock_no_getsockopt + sock_no_listen + sock_no_mmap + sock_no_setsockopt + sock_no_shutdown + sock_no_socketpair + sock_queue_rcv_skb + sock_wmalloc + unregister_pernet_device + unregister_pppox_proto + +# required by sha1-ce.ko + crypto_sha1_finup + crypto_sha1_update + +# required by ah6.ko + ip6_redirect + ip6_update_pmtu + net_ratelimit + xfrm6_find_1stfragopt + xfrm6_protocol_deregister + xfrm6_protocol_register + xfrm6_rcv + +# required by raw_diag.ko + inet_diag_bc_sk + inet_diag_register + inet_diag_unregister + inet_sk_diag_fill + netlink_net_capable + raw_v4_hashinfo + __raw_v4_lookup + raw_v6_hashinfo + __raw_v6_lookup + sock_diag_destroy + +# required by xt_addrtype.ko + inet_dev_addr_type + __ipv6_addr_type + ipv6_chk_addr + +# required by sprd_thermal.ko + devm_thermal_zone_of_sensor_unregister + +# required by arc4.ko + arc4_crypt + arc4_setkey + crypto_register_skcipher + crypto_unregister_skcipher + +# required by ip6table_security.ko + xt_hook_ops_alloc + +# required by xfrm4_tunnel.ko + xfrm4_tunnel_deregister + xfrm4_tunnel_register + +# required by ppp_mppe.ko + crypto_has_ahash + crypto_shash_final + crypto_shash_update + +# required by pptp.ko + find_next_zero_bit + gre_add_protocol + gre_del_protocol + __ip_select_ident + security_sk_classify_flow + skb_set_owner_w + sk_setup_caps + sock_no_recvmsg + sock_no_sendmsg + +# required by gtco.ko + __usb_get_extra_descriptor + +# required by l2tp_ppp.ko + l2tp_session_create + l2tp_session_delete + l2tp_session_free + l2tp_session_get_nth + l2tp_session_register + l2tp_session_set_header_len + l2tp_tunnel_create + l2tp_tunnel_delete + l2tp_tunnel_free + l2tp_tunnel_get + l2tp_tunnel_get_nth + l2tp_tunnel_get_session + l2tp_tunnel_register + l2tp_udp_encap_recv + l2tp_xmit_skb + ppp_dev_name + +# required by ppp_generic.ko + arch_bpf_jit_check_func + bpf_prog_create + bpf_prog_destroy + bpf_stats_enabled_key + iov_iter_init + netdev_printk + netif_rx + ns_capable + rtnl_link_register + rtnl_link_unregister + skb_queue_head + skb_scrub_packet + slhc_compress + slhc_free + slhc_init + slhc_remember + slhc_toss + slhc_uncompress + unregister_netdevice_many + +# required by pppox.ko + sock_register + sock_unregister + +# required by ppp_deflate.ko + zlib_deflate + zlib_deflateEnd + zlib_deflateInit2 + zlib_deflateReset + zlib_deflate_workspacesize + zlib_inflate + zlib_inflateEnd + zlib_inflateIncomp + zlib_inflateInit2 + zlib_inflateReset + zlib_inflate_workspacesize + +# required by sprd_cpp.ko + clk_get_parent + of_iomap + +# required by sprd_camera.ko + ion_alloc + ion_free + ktime_get_ts64 + ns_to_timeval + of_irq_to_resource + _raw_spin_trylock + regulator_get_linear_step + +# required by trusty-pm.ko + ktime_get_boot_fast_ns + unregister_syscore_ops + +# required by ufs-sprd.ko + ufshcd_dme_set_attr + ufshcd_get_local_unipro_ver + ufshcd_pltfrm_init + ufshcd_pltfrm_resume + ufshcd_pltfrm_runtime_idle + ufshcd_pltfrm_runtime_resume + ufshcd_pltfrm_runtime_suspend + ufshcd_pltfrm_shutdown + ufshcd_pltfrm_suspend + ufshcd_remove + +# required by sprd_sip_svc.ko + __arm_smccc_smc + +# required by mali_gondul.ko + __arch_clear_user + bpf_trace_run5 + ktime_get_raw + of_machine_is_compatible + _totalram_pages + trace_output_call + __tracepoint_gpu_mem_total + trace_print_array_seq + vmf_insert_pfn_prot + +# required by sprd_ion.ko + ion_buffer_zero + __ion_device_add_heap + memset32 + of_platform_device_create + __sg_page_iter_next + __sg_page_iter_start + +# required by snd-soc-sprd-codec-sc2730.ko + dapm_kcontrol_get_value + __kfifo_init + __kfifo_from_user_r + __kfifo_to_user_r + snd_pcm_rate_bit_to_rate + snd_soc_bytes_info_ext + snd_soc_new_compress + snd_card_new + snd_card_register + snd_ctl_add + snd_ctl_new1 + snd_pcm_new + snd_pcm_set_ops + +# required by ssd20xx_ts.ko + input_mt_report_pointer_emulation + +# cpufreq_interactive.ko + add_timer_on + cpufreq_register_notifier + cpufreq_table_index_unsorted + cpufreq_unregister_notifier + down_read_trylock + get_cpu_idle_time + irq_work_queue + kobject_init_and_add + sched_setscheduler_nocheck + strpbrk + +# required by sprd_wdf.ko + kstrtoull_from_user + smpboot_register_percpu_thread + +# required by zram.ko + bdgrab + bio_chain + bio_init + blkdev_put + blk_status_to_errno + blkdev_get + filp_close + filp_open_block + file_path + I_BDEV + set_blocksize + submit_bio_wait diff --git a/android/abi_gki_aarch64_virtual_device b/android/abi_gki_aarch64_virtual_device index 9db879798b02..db3c296e0791 100644 --- a/android/abi_gki_aarch64_virtual_device +++ b/android/abi_gki_aarch64_virtual_device @@ -109,6 +109,7 @@ ethtool_op_get_link eth_validate_addr event_triggers_call + failure_tracking fd_install finish_wait flush_work @@ -230,6 +231,7 @@ of_find_property of_get_property of_property_read_variable_u32_array + __page_pinner_migration_failed param_ops_bint param_ops_bool param_ops_charp @@ -391,6 +393,9 @@ trace_event_raw_init trace_event_reg trace_handle_return + __traceiter_rwmmio_post_read + __traceiter_rwmmio_read + __traceiter_rwmmio_write __tracepoint_rwmmio_post_read __tracepoint_rwmmio_read __tracepoint_rwmmio_write @@ -1197,6 +1202,7 @@ netif_set_real_num_tx_queues __netif_set_xps_queue net_ratelimit + __pskb_pull_tail _raw_spin_trylock sched_clock skb_coalesce_rx_frag diff --git a/android/abi_gki_aarch64_xiaomi b/android/abi_gki_aarch64_xiaomi new file mode 100644 index 000000000000..867cd0739539 --- /dev/null +++ b/android/abi_gki_aarch64_xiaomi @@ -0,0 +1,114 @@ +[abi_symbol_list] +# commonly used symbols + +# required by xxx.ko + +# required by touch module + proc_mkdir_data + +# required by aw8697-haptic.ko + devm_gpio_free + i2c_smbus_read_byte_data + i2c_smbus_write_byte_data + +#required by memory module + blk_execute_rq + blk_rq_map_kern + scsi_device_lookup + scsi_host_lookup + scsi_host_put + ufshcd_read_desc_param + utf16s_to_utf8s + async_schedule_node + blk_ksm_register + blk_ksm_reprogram_all_keys + blk_mq_alloc_tag_set + blk_mq_init_queue + blk_mq_tagset_busy_iter + bsg_job_done + bsg_remove_queue + bsg_setup_queue + dev_pm_opp_remove + scsi_add_host_with_dma + scsi_block_requests + scsi_dma_unmap + scsi_is_host_device + scsi_remove_host + scsi_report_bus_reset + scsi_scan_host + scsi_unblock_requests + sg_copy_from_buffer + sg_copy_to_buffer + ufshcd_alloc_host + ufshcd_config_pwr_mode + ufshcd_dealloc_host + ufshcd_hba_enable + ufshcd_make_hba_operational + ufshcd_map_desc_id_to_length + ufshcd_query_attr_retry + ufshcd_query_flag_retry + wait_for_completion_io_timeout + __scsi_add_device + __scsi_execute + blk_mq_free_tag_set + +#required by cs35l41 module + regmap_raw_write_async + snd_soc_bytes_tlv_callback + regmap_async_complete + snd_compr_stop_error + snd_soc_component_disable_pin + snd_soc_component_force_enable_pin + snd_pcm_format_physical_width + snd_pcm_hw_constraint_list + regmap_multi_reg_write_bypassed + snd_ctl_boolean_mono_info + snd_soc_put_volsw_range + snd_soc_get_volsw_range + snd_soc_info_volsw_range + regmap_raw_write + regcache_drop_region + regmap_raw_read + regmap_multi_reg_write + regulator_bulk_enable + +#required by mtd module + __blk_mq_end_request + balance_dirty_pages_ratelimited + bdi_alloc + bdi_put + bdi_register + blk_mq_freeze_queue + blk_mq_init_sq_queue + blk_mq_quiesce_queue + blk_mq_start_request + blk_mq_unfreeze_queue + blk_mq_unquiesce_queue + blk_queue_write_cache + blk_update_request + blkdev_get_by_dev + blkdev_get_by_path + blkdev_put + deactivate_locked_super + fixed_size_llseek + generic_shutdown_super + kmsg_dump_get_buffer + kmsg_dump_register + kmsg_dump_rewind + kmsg_dump_unregister + ktime_get_coarse_real_ts64 + lockref_get + logfc + lookup_bdev + name_to_dev_t + nvmem_register + nvmem_unregister + proc_create_single_data + read_cache_page + rq_flush_dcache_pages + set_disk_ro + set_page_dirty + sget_fc + simple_strtoul + sync_blockdev + wait_for_device_probe diff --git a/arch/alpha/include/asm/page.h b/arch/alpha/include/asm/page.h index e241bd88880f..fe80d19deba9 100644 --- a/arch/alpha/include/asm/page.h +++ b/arch/alpha/include/asm/page.h @@ -17,9 +17,9 @@ extern void clear_page(void *page); #define clear_user_page(page, vaddr, pg) clear_page(page) -#define __alloc_zeroed_user_highpage(movableflags, vma, vaddr) \ - alloc_page_vma(GFP_HIGHUSER | __GFP_ZERO | movableflags, vma, vmaddr) -#define __HAVE_ARCH_ALLOC_ZEROED_USER_HIGHPAGE +#define alloc_zeroed_user_highpage_movable(vma, vaddr) \ + alloc_page_vma(GFP_HIGHUSER_MOVABLE | __GFP_ZERO, vma, vmaddr) +#define __HAVE_ARCH_ALLOC_ZEROED_USER_HIGHPAGE_MOVABLE extern void copy_page(void * _to, void * _from); #define copy_user_page(to, from, vaddr, pg) copy_page(to, from) diff --git a/arch/arc/include/asm/page.h b/arch/arc/include/asm/page.h index d9c264dc25fc..9926cd5a17b0 100644 --- a/arch/arc/include/asm/page.h +++ b/arch/arc/include/asm/page.h @@ -7,6 +7,18 @@ #include +#ifdef CONFIG_ARC_HAS_PAE40 + +#define MAX_POSSIBLE_PHYSMEM_BITS 40 +#define PAGE_MASK_PHYS (0xff00000000ull | PAGE_MASK) + +#else /* CONFIG_ARC_HAS_PAE40 */ + +#define MAX_POSSIBLE_PHYSMEM_BITS 32 +#define PAGE_MASK_PHYS PAGE_MASK + +#endif /* CONFIG_ARC_HAS_PAE40 */ + #ifndef __ASSEMBLY__ #define clear_page(paddr) memset((paddr), 0, PAGE_SIZE) diff --git a/arch/arc/include/asm/pgtable.h b/arch/arc/include/asm/pgtable.h index 163641726a2b..5878846f00cf 100644 --- a/arch/arc/include/asm/pgtable.h +++ b/arch/arc/include/asm/pgtable.h @@ -107,8 +107,8 @@ #define ___DEF (_PAGE_PRESENT | _PAGE_CACHEABLE) /* Set of bits not changed in pte_modify */ -#define _PAGE_CHG_MASK (PAGE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY | _PAGE_SPECIAL) - +#define _PAGE_CHG_MASK (PAGE_MASK_PHYS | _PAGE_ACCESSED | _PAGE_DIRTY | \ + _PAGE_SPECIAL) /* More Abbrevaited helpers */ #define PAGE_U_NONE __pgprot(___DEF) #define PAGE_U_R __pgprot(___DEF | _PAGE_READ) @@ -132,13 +132,7 @@ #define PTE_BITS_IN_PD0 (_PAGE_GLOBAL | _PAGE_PRESENT | _PAGE_HW_SZ) #define PTE_BITS_RWX (_PAGE_EXECUTE | _PAGE_WRITE | _PAGE_READ) -#ifdef CONFIG_ARC_HAS_PAE40 -#define PTE_BITS_NON_RWX_IN_PD1 (0xff00000000 | PAGE_MASK | _PAGE_CACHEABLE) -#define MAX_POSSIBLE_PHYSMEM_BITS 40 -#else -#define PTE_BITS_NON_RWX_IN_PD1 (PAGE_MASK | _PAGE_CACHEABLE) -#define MAX_POSSIBLE_PHYSMEM_BITS 32 -#endif +#define PTE_BITS_NON_RWX_IN_PD1 (PAGE_MASK_PHYS | _PAGE_CACHEABLE) /************************************************************************** * Mapping of vm_flags (Generic VM) to PTE flags (arch specific) diff --git a/arch/arc/include/uapi/asm/page.h b/arch/arc/include/uapi/asm/page.h index 2a97e2718a21..2a4ad619abfb 100644 --- a/arch/arc/include/uapi/asm/page.h +++ b/arch/arc/include/uapi/asm/page.h @@ -33,5 +33,4 @@ #define PAGE_MASK (~(PAGE_SIZE-1)) - #endif /* _UAPI__ASM_ARC_PAGE_H */ diff --git a/arch/arc/kernel/entry.S b/arch/arc/kernel/entry.S index ea00c8a17f07..ae656bfc31c3 100644 --- a/arch/arc/kernel/entry.S +++ b/arch/arc/kernel/entry.S @@ -177,7 +177,7 @@ tracesys: ; Do the Sys Call as we normally would. ; Validate the Sys Call number - cmp r8, NR_syscalls + cmp r8, NR_syscalls - 1 mov.hi r0, -ENOSYS bhi tracesys_exit @@ -255,7 +255,7 @@ ENTRY(EV_Trap) ;============ Normal syscall case ; syscall num shd not exceed the total system calls avail - cmp r8, NR_syscalls + cmp r8, NR_syscalls - 1 mov.hi r0, -ENOSYS bhi .Lret_from_system_call diff --git a/arch/arc/kernel/signal.c b/arch/arc/kernel/signal.c index 2be55fb96d87..98e575dbcce5 100644 --- a/arch/arc/kernel/signal.c +++ b/arch/arc/kernel/signal.c @@ -96,7 +96,7 @@ stash_usr_regs(struct rt_sigframe __user *sf, struct pt_regs *regs, sizeof(sf->uc.uc_mcontext.regs.scratch)); err |= __copy_to_user(&sf->uc.uc_sigmask, set, sizeof(sigset_t)); - return err; + return err ? -EFAULT : 0; } static int restore_usr_regs(struct pt_regs *regs, struct rt_sigframe __user *sf) @@ -110,7 +110,7 @@ static int restore_usr_regs(struct pt_regs *regs, struct rt_sigframe __user *sf) &(sf->uc.uc_mcontext.regs.scratch), sizeof(sf->uc.uc_mcontext.regs.scratch)); if (err) - return err; + return -EFAULT; set_current_blocked(&set); regs->bta = uregs.scratch.bta; diff --git a/arch/arc/mm/init.c b/arch/arc/mm/init.c index 3a35b82a718e..da543fd422fe 100644 --- a/arch/arc/mm/init.c +++ b/arch/arc/mm/init.c @@ -158,7 +158,16 @@ void __init setup_arch_memory(void) min_high_pfn = PFN_DOWN(high_mem_start); max_high_pfn = PFN_DOWN(high_mem_start + high_mem_sz); - max_zone_pfn[ZONE_HIGHMEM] = min_low_pfn; + /* + * max_high_pfn should be ok here for both HIGHMEM and HIGHMEM+PAE. + * For HIGHMEM without PAE max_high_pfn should be less than + * min_low_pfn to guarantee that these two regions don't overlap. + * For PAE case highmem is greater than lowmem, so it is natural + * to use max_high_pfn. + * + * In both cases, holes should be handled by pfn_valid(). + */ + max_zone_pfn[ZONE_HIGHMEM] = max_high_pfn; high_memory = (void *)(min_high_pfn << PAGE_SHIFT); kmap_init(); diff --git a/arch/arc/mm/ioremap.c b/arch/arc/mm/ioremap.c index fac4adc90204..95c649fbc95a 100644 --- a/arch/arc/mm/ioremap.c +++ b/arch/arc/mm/ioremap.c @@ -53,9 +53,10 @@ EXPORT_SYMBOL(ioremap); void __iomem *ioremap_prot(phys_addr_t paddr, unsigned long size, unsigned long flags) { + unsigned int off; unsigned long vaddr; struct vm_struct *area; - phys_addr_t off, end; + phys_addr_t end; pgprot_t prot = __pgprot(flags); /* Don't allow wraparound, zero size */ @@ -72,7 +73,7 @@ void __iomem *ioremap_prot(phys_addr_t paddr, unsigned long size, /* Mappings have to be page-aligned */ off = paddr & ~PAGE_MASK; - paddr &= PAGE_MASK; + paddr &= PAGE_MASK_PHYS; size = PAGE_ALIGN(end + 1) - paddr; /* diff --git a/arch/arc/mm/tlb.c b/arch/arc/mm/tlb.c index 9bb3c24f3677..9c7c68247289 100644 --- a/arch/arc/mm/tlb.c +++ b/arch/arc/mm/tlb.c @@ -576,7 +576,7 @@ void update_mmu_cache(struct vm_area_struct *vma, unsigned long vaddr_unaligned, pte_t *ptep) { unsigned long vaddr = vaddr_unaligned & PAGE_MASK; - phys_addr_t paddr = pte_val(*ptep) & PAGE_MASK; + phys_addr_t paddr = pte_val(*ptep) & PAGE_MASK_PHYS; struct page *page = pfn_to_page(pte_pfn(*ptep)); create_tlb(vma, vaddr, ptep); diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile index e1567418a2b1..0d6ee56f5831 100644 --- a/arch/arm/boot/compressed/Makefile +++ b/arch/arm/boot/compressed/Makefile @@ -114,8 +114,8 @@ asflags-y := -DZIMAGE # Supply kernel BSS size to the decompressor via a linker symbol. KBSS_SZ = $(shell echo $$(($$($(NM) $(obj)/../../../../vmlinux | \ - sed -n -e 's/^\([^ ]*\) [AB] __bss_start$$/-0x\1/p' \ - -e 's/^\([^ ]*\) [AB] __bss_stop$$/+0x\1/p') )) ) + sed -n -e 's/^\([^ ]*\) [ABD] __bss_start$$/-0x\1/p' \ + -e 's/^\([^ ]*\) [ABD] __bss_stop$$/+0x\1/p') )) ) LDFLAGS_vmlinux = --defsym _kernel_bss_size=$(KBSS_SZ) # Supply ZRELADDR to the decompressor via a linker symbol. ifneq ($(CONFIG_AUTO_ZRELADDR),y) diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S index 247ce9055990..df7e4f8c8287 100644 --- a/arch/arm/boot/compressed/head.S +++ b/arch/arm/boot/compressed/head.S @@ -165,6 +165,13 @@ orr \res, \res, \tmp1, lsl #24 .endm + .macro be32tocpu, val, tmp +#ifndef __ARMEB__ + /* convert to little endian */ + rev_l \val, \tmp +#endif + .endm + .section ".start", "ax" /* * sort out different calling conventions @@ -345,13 +352,7 @@ restart: adr r0, LC1 /* Get the initial DTB size */ ldr r5, [r6, #4] -#ifndef __ARMEB__ - /* convert to little endian */ - eor r1, r5, r5, ror #16 - bic r1, r1, #0x00ff0000 - mov r5, r5, ror #8 - eor r5, r5, r1, lsr #8 -#endif + be32tocpu r5, r1 dbgadtb r6, r5 /* 50% DTB growth should be good enough */ add r5, r5, r5, lsr #1 @@ -403,13 +404,7 @@ restart: adr r0, LC1 /* Get the current DTB size */ ldr r5, [r6, #4] -#ifndef __ARMEB__ - /* convert r5 (dtb size) to little endian */ - eor r1, r5, r5, ror #16 - bic r1, r1, #0x00ff0000 - mov r5, r5, ror #8 - eor r5, r5, r1, lsr #8 -#endif + be32tocpu r5, r1 /* preserve 64-bit alignment */ add r5, r5, #7 diff --git a/arch/arm/boot/dts/aspeed-bmc-ibm-rainier.dts b/arch/arm/boot/dts/aspeed-bmc-ibm-rainier.dts index 21ae880c7530..c76b0046b402 100644 --- a/arch/arm/boot/dts/aspeed-bmc-ibm-rainier.dts +++ b/arch/arm/boot/dts/aspeed-bmc-ibm-rainier.dts @@ -707,9 +707,9 @@ &i2c7 { multi-master; status = "okay"; - si7021-a20@20 { + si7021-a20@40 { compatible = "silabs,si7020"; - reg = <0x20>; + reg = <0x40>; }; tmp275@48 { diff --git a/arch/arm/boot/dts/at91-sam9x60ek.dts b/arch/arm/boot/dts/at91-sam9x60ek.dts index 775ceb3acb6c..edca66c232c1 100644 --- a/arch/arm/boot/dts/at91-sam9x60ek.dts +++ b/arch/arm/boot/dts/at91-sam9x60ek.dts @@ -8,6 +8,7 @@ */ /dts-v1/; #include "sam9x60.dtsi" +#include / { model = "Microchip SAM9X60-EK"; @@ -84,7 +85,7 @@ gpio_keys { sw1 { label = "SW1"; gpios = <&pioD 18 GPIO_ACTIVE_LOW>; - linux,code=<0x104>; + linux,code=; wakeup-source; }; }; diff --git a/arch/arm/boot/dts/at91-sama5d27_som1_ek.dts b/arch/arm/boot/dts/at91-sama5d27_som1_ek.dts index 0e159f879c15..d3cd2443ba25 100644 --- a/arch/arm/boot/dts/at91-sama5d27_som1_ek.dts +++ b/arch/arm/boot/dts/at91-sama5d27_som1_ek.dts @@ -11,6 +11,7 @@ #include "at91-sama5d27_som1.dtsi" #include #include +#include / { model = "Atmel SAMA5D27 SOM1 EK"; @@ -467,7 +468,7 @@ gpio_keys { pb4 { label = "USER"; gpios = <&pioA PIN_PA29 GPIO_ACTIVE_LOW>; - linux,code = <0x104>; + linux,code = ; wakeup-source; }; }; diff --git a/arch/arm/boot/dts/at91-sama5d27_wlsom1_ek.dts b/arch/arm/boot/dts/at91-sama5d27_wlsom1_ek.dts index 6b38fa3f5568..4883b84b4ede 100644 --- a/arch/arm/boot/dts/at91-sama5d27_wlsom1_ek.dts +++ b/arch/arm/boot/dts/at91-sama5d27_wlsom1_ek.dts @@ -8,6 +8,7 @@ */ /dts-v1/; #include "at91-sama5d27_wlsom1.dtsi" +#include / { model = "Microchip SAMA5D27 WLSOM1 EK"; @@ -35,7 +36,7 @@ gpio_keys { sw4 { label = "USER BUTTON"; gpios = <&pioA PIN_PB2 GPIO_ACTIVE_LOW>; - linux,code = <0x104>; + linux,code = ; wakeup-source; }; }; diff --git a/arch/arm/boot/dts/at91-sama5d2_icp.dts b/arch/arm/boot/dts/at91-sama5d2_icp.dts index 6783cf16ff81..19bb50f50c1f 100644 --- a/arch/arm/boot/dts/at91-sama5d2_icp.dts +++ b/arch/arm/boot/dts/at91-sama5d2_icp.dts @@ -12,6 +12,7 @@ #include "sama5d2.dtsi" #include "sama5d2-pinfunc.h" #include +#include #include / { @@ -51,7 +52,7 @@ gpio_keys { sw4 { label = "USER_PB1"; gpios = <&pioA PIN_PD0 GPIO_ACTIVE_LOW>; - linux,code = <0x104>; + linux,code = ; wakeup-source; }; }; diff --git a/arch/arm/boot/dts/at91-sama5d2_ptc_ek.dts b/arch/arm/boot/dts/at91-sama5d2_ptc_ek.dts index c894c7c788a9..1c6361ba1aca 100644 --- a/arch/arm/boot/dts/at91-sama5d2_ptc_ek.dts +++ b/arch/arm/boot/dts/at91-sama5d2_ptc_ek.dts @@ -11,6 +11,7 @@ #include "sama5d2-pinfunc.h" #include #include +#include #include / { @@ -403,7 +404,7 @@ gpio_keys { bp1 { label = "PB_USER"; gpios = <&pioA PIN_PA10 GPIO_ACTIVE_LOW>; - linux,code = <0x104>; + linux,code = ; wakeup-source; }; }; diff --git a/arch/arm/boot/dts/at91-sama5d2_xplained.dts b/arch/arm/boot/dts/at91-sama5d2_xplained.dts index 058fae1b4a76..d767968ae217 100644 --- a/arch/arm/boot/dts/at91-sama5d2_xplained.dts +++ b/arch/arm/boot/dts/at91-sama5d2_xplained.dts @@ -10,6 +10,7 @@ #include "sama5d2-pinfunc.h" #include #include +#include #include / { @@ -713,7 +714,7 @@ gpio_keys { bp1 { label = "PB_USER"; gpios = <&pioA PIN_PB9 GPIO_ACTIVE_LOW>; - linux,code = <0x104>; + linux,code = ; wakeup-source; }; }; diff --git a/arch/arm/boot/dts/at91-sama5d3_xplained.dts b/arch/arm/boot/dts/at91-sama5d3_xplained.dts index 5179258f9247..9c55a921263b 100644 --- a/arch/arm/boot/dts/at91-sama5d3_xplained.dts +++ b/arch/arm/boot/dts/at91-sama5d3_xplained.dts @@ -7,6 +7,7 @@ */ /dts-v1/; #include "sama5d36.dtsi" +#include / { model = "SAMA5D3 Xplained"; @@ -354,7 +355,7 @@ gpio_keys { bp3 { label = "PB_USER"; gpios = <&pioE 29 GPIO_ACTIVE_LOW>; - linux,code = <0x104>; + linux,code = ; wakeup-source; }; }; diff --git a/arch/arm/boot/dts/at91sam9260ek.dts b/arch/arm/boot/dts/at91sam9260ek.dts index d3446e42b598..ce96345d28a3 100644 --- a/arch/arm/boot/dts/at91sam9260ek.dts +++ b/arch/arm/boot/dts/at91sam9260ek.dts @@ -7,6 +7,7 @@ */ /dts-v1/; #include "at91sam9260.dtsi" +#include / { model = "Atmel at91sam9260ek"; @@ -156,7 +157,7 @@ btn3 { btn4 { label = "Button 4"; gpios = <&pioA 31 GPIO_ACTIVE_LOW>; - linux,code = <0x104>; + linux,code = ; wakeup-source; }; }; diff --git a/arch/arm/boot/dts/at91sam9g20ek_common.dtsi b/arch/arm/boot/dts/at91sam9g20ek_common.dtsi index 6e6e672c0b86..87bb39060e8b 100644 --- a/arch/arm/boot/dts/at91sam9g20ek_common.dtsi +++ b/arch/arm/boot/dts/at91sam9g20ek_common.dtsi @@ -5,6 +5,7 @@ * Copyright (C) 2012 Jean-Christophe PLAGNIOL-VILLARD */ #include "at91sam9g20.dtsi" +#include / { @@ -234,7 +235,7 @@ btn3 { btn4 { label = "Button 4"; gpios = <&pioA 31 GPIO_ACTIVE_LOW>; - linux,code = <0x104>; + linux,code = ; wakeup-source; }; }; diff --git a/arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts b/arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts index 6a96655d8626..8ed403767540 100644 --- a/arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts +++ b/arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts @@ -21,8 +21,8 @@ chosen { memory@0 { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x08000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x08000000>; }; leds { diff --git a/arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts b/arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts index 3b0029e61b4c..667b118ba4ee 100644 --- a/arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts +++ b/arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts @@ -21,8 +21,8 @@ chosen { memory@0 { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x08000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x08000000>; }; leds { diff --git a/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts b/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts index 90f57bad6b24..ff31ce45831a 100644 --- a/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts +++ b/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts @@ -21,8 +21,8 @@ chosen { memory@0 { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x18000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x18000000>; }; spi { diff --git a/arch/arm/boot/dts/bcm4708-netgear-r6250.dts b/arch/arm/boot/dts/bcm4708-netgear-r6250.dts index fed75e6ab58c..61c7b137607e 100644 --- a/arch/arm/boot/dts/bcm4708-netgear-r6250.dts +++ b/arch/arm/boot/dts/bcm4708-netgear-r6250.dts @@ -22,8 +22,8 @@ chosen { memory { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x08000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x08000000>; }; leds { diff --git a/arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts b/arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts index 79542e18915c..4c60eda296d9 100644 --- a/arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts +++ b/arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts @@ -21,8 +21,8 @@ chosen { memory@0 { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x08000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x08000000>; }; leds { diff --git a/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts b/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts index abd35a518046..7d46561fca3c 100644 --- a/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts +++ b/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts @@ -21,8 +21,8 @@ chosen { memory@0 { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x08000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x08000000>; }; leds { diff --git a/arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts b/arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts index c29950b43a95..0e273c598732 100644 --- a/arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts +++ b/arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts @@ -21,8 +21,8 @@ chosen { memory@0 { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x08000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x08000000>; }; leds { diff --git a/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts b/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts index 4dcec6865469..083ec4036bd7 100644 --- a/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts +++ b/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts @@ -21,8 +21,8 @@ chosen { memory@0 { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x08000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x08000000>; }; spi { diff --git a/arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts b/arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts index 0e349e39f608..8b1a05a0f1a1 100644 --- a/arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts +++ b/arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts @@ -21,8 +21,8 @@ chosen { memory@0 { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x08000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x08000000>; }; spi { diff --git a/arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts b/arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts index 8f1e565c3db4..6c6bb7b17d27 100644 --- a/arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts +++ b/arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts @@ -21,8 +21,8 @@ chosen { memory { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x08000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x08000000>; }; leds { diff --git a/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts b/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts index ce888b1835d1..d29e7f80ea6a 100644 --- a/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts +++ b/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts @@ -21,8 +21,8 @@ chosen { memory { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x18000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x18000000>; }; leds { diff --git a/arch/arm/boot/dts/bcm4709-linksys-ea9200.dts b/arch/arm/boot/dts/bcm4709-linksys-ea9200.dts index ed8619b54d69..38fbefdf2e4e 100644 --- a/arch/arm/boot/dts/bcm4709-linksys-ea9200.dts +++ b/arch/arm/boot/dts/bcm4709-linksys-ea9200.dts @@ -18,8 +18,8 @@ chosen { memory { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x08000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x08000000>; }; gpio-keys { diff --git a/arch/arm/boot/dts/bcm4709-netgear-r7000.dts b/arch/arm/boot/dts/bcm4709-netgear-r7000.dts index 1f87993eae1d..7989a53597d4 100644 --- a/arch/arm/boot/dts/bcm4709-netgear-r7000.dts +++ b/arch/arm/boot/dts/bcm4709-netgear-r7000.dts @@ -21,8 +21,8 @@ chosen { memory { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x08000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x08000000>; }; leds { diff --git a/arch/arm/boot/dts/bcm4709-netgear-r8000.dts b/arch/arm/boot/dts/bcm4709-netgear-r8000.dts index 6c6199a53d09..87b655be674c 100644 --- a/arch/arm/boot/dts/bcm4709-netgear-r8000.dts +++ b/arch/arm/boot/dts/bcm4709-netgear-r8000.dts @@ -32,8 +32,8 @@ chosen { memory { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x08000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x08000000>; }; leds { diff --git a/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts b/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts index 911c65fbf251..e635a15041dd 100644 --- a/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts +++ b/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts @@ -21,8 +21,8 @@ chosen { memory@0 { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x08000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x08000000>; }; nand: nand@18028000 { diff --git a/arch/arm/boot/dts/bcm47094-linksys-panamera.dts b/arch/arm/boot/dts/bcm47094-linksys-panamera.dts index 0faae8950375..36d63beba8cd 100644 --- a/arch/arm/boot/dts/bcm47094-linksys-panamera.dts +++ b/arch/arm/boot/dts/bcm47094-linksys-panamera.dts @@ -18,8 +18,8 @@ chosen { memory@0 { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x08000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x08000000>; }; gpio-keys { diff --git a/arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts b/arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts index 50f7cd08cfbb..a6dc99955e19 100644 --- a/arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts +++ b/arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts @@ -18,8 +18,8 @@ chosen { memory@0 { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x18000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x18000000>; }; leds { diff --git a/arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts b/arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts index bcc420f85b56..ff98837bc0db 100644 --- a/arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts +++ b/arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts @@ -18,8 +18,8 @@ chosen { memory@0 { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x18000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x18000000>; }; leds { diff --git a/arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts b/arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts index 9ae815ddbb4b..2666195b6ffe 100644 --- a/arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts +++ b/arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts @@ -18,8 +18,8 @@ chosen { memory { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x18000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x18000000>; }; leds { diff --git a/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts b/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts index a21b2d185596..9f798025748b 100644 --- a/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts +++ b/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts @@ -18,8 +18,8 @@ chosen { memory@0 { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x08000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x08000000>; }; leds { diff --git a/arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts b/arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts index 4d5c5aa7dc42..c8dfa4c58d2f 100644 --- a/arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts +++ b/arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts @@ -18,8 +18,8 @@ chosen { memory@0 { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x18000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x18000000>; }; leds { diff --git a/arch/arm/boot/dts/bcm47094-netgear-r8500.dts b/arch/arm/boot/dts/bcm47094-netgear-r8500.dts index f42a1703f4ab..42097a4c2659 100644 --- a/arch/arm/boot/dts/bcm47094-netgear-r8500.dts +++ b/arch/arm/boot/dts/bcm47094-netgear-r8500.dts @@ -18,8 +18,8 @@ chosen { memory@0 { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x18000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x18000000>; }; leds { diff --git a/arch/arm/boot/dts/bcm47094-phicomm-k3.dts b/arch/arm/boot/dts/bcm47094-phicomm-k3.dts index ac3a4483dcb3..a2566ad4619c 100644 --- a/arch/arm/boot/dts/bcm47094-phicomm-k3.dts +++ b/arch/arm/boot/dts/bcm47094-phicomm-k3.dts @@ -15,8 +15,8 @@ / { memory@0 { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x18000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x18000000>; }; gpio-keys { diff --git a/arch/arm/boot/dts/dra7-l4.dtsi b/arch/arm/boot/dts/dra7-l4.dtsi index 3bf90d9e3335..a294a02f2d23 100644 --- a/arch/arm/boot/dts/dra7-l4.dtsi +++ b/arch/arm/boot/dts/dra7-l4.dtsi @@ -1168,7 +1168,7 @@ timer2: timer@0 { }; }; - target-module@34000 { /* 0x48034000, ap 7 46.0 */ + timer3_target: target-module@34000 { /* 0x48034000, ap 7 46.0 */ compatible = "ti,sysc-omap4-timer", "ti,sysc"; reg = <0x34000 0x4>, <0x34010 0x4>; @@ -1195,7 +1195,7 @@ timer3: timer@0 { }; }; - target-module@36000 { /* 0x48036000, ap 9 4e.0 */ + timer4_target: target-module@36000 { /* 0x48036000, ap 9 4e.0 */ compatible = "ti,sysc-omap4-timer", "ti,sysc"; reg = <0x36000 0x4>, <0x36010 0x4>; diff --git a/arch/arm/boot/dts/dra7.dtsi b/arch/arm/boot/dts/dra7.dtsi index 4e1bbc0198eb..7ecf8f86ac74 100644 --- a/arch/arm/boot/dts/dra7.dtsi +++ b/arch/arm/boot/dts/dra7.dtsi @@ -46,6 +46,7 @@ aliases { timer { compatible = "arm,armv7-timer"; + status = "disabled"; /* See ARM architected timer wrap erratum i940 */ interrupts = , , , @@ -1090,3 +1091,22 @@ timer@0 { assigned-clock-parents = <&sys_32k_ck>; }; }; + +/* Local timers, see ARM architected timer wrap erratum i940 */ +&timer3_target { + ti,no-reset-on-init; + ti,no-idle; + timer@0 { + assigned-clocks = <&l4per_clkctrl DRA7_L4PER_TIMER3_CLKCTRL 24>; + assigned-clock-parents = <&timer_sys_clk_div>; + }; +}; + +&timer4_target { + ti,no-reset-on-init; + ti,no-idle; + timer@0 { + assigned-clocks = <&l4per_clkctrl DRA7_L4PER_TIMER4_CLKCTRL 24>; + assigned-clock-parents = <&timer_sys_clk_div>; + }; +}; diff --git a/arch/arm/boot/dts/exynos4210-i9100.dts b/arch/arm/boot/dts/exynos4210-i9100.dts index 5370ee477186..7777bf51a6e6 100644 --- a/arch/arm/boot/dts/exynos4210-i9100.dts +++ b/arch/arm/boot/dts/exynos4210-i9100.dts @@ -136,7 +136,7 @@ battery@36 { compatible = "maxim,max17042"; interrupt-parent = <&gpx2>; - interrupts = <3 IRQ_TYPE_EDGE_FALLING>; + interrupts = <3 IRQ_TYPE_LEVEL_LOW>; pinctrl-0 = <&max17042_fuel_irq>; pinctrl-names = "default"; diff --git a/arch/arm/boot/dts/exynos4412-midas.dtsi b/arch/arm/boot/dts/exynos4412-midas.dtsi index 7e7c243ff196..06450066b178 100644 --- a/arch/arm/boot/dts/exynos4412-midas.dtsi +++ b/arch/arm/boot/dts/exynos4412-midas.dtsi @@ -174,7 +174,7 @@ i2c_max77693: i2c-gpio-1 { max77693@66 { compatible = "maxim,max77693"; interrupt-parent = <&gpx1>; - interrupts = <5 IRQ_TYPE_EDGE_FALLING>; + interrupts = <5 IRQ_TYPE_LEVEL_LOW>; pinctrl-names = "default"; pinctrl-0 = <&max77693_irq>; reg = <0x66>; @@ -223,7 +223,7 @@ i2c_max77693_fuel: i2c-gpio-3 { max77693-fuel-gauge@36 { compatible = "maxim,max17047"; interrupt-parent = <&gpx2>; - interrupts = <3 IRQ_TYPE_EDGE_FALLING>; + interrupts = <3 IRQ_TYPE_LEVEL_LOW>; pinctrl-names = "default"; pinctrl-0 = <&max77693_fuel_irq>; reg = <0x36>; @@ -668,7 +668,7 @@ &i2c_7 { max77686: max77686_pmic@9 { compatible = "maxim,max77686"; interrupt-parent = <&gpx0>; - interrupts = <7 IRQ_TYPE_NONE>; + interrupts = <7 IRQ_TYPE_LEVEL_LOW>; pinctrl-0 = <&max77686_irq>; pinctrl-names = "default"; reg = <0x09>; diff --git a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi index 2983e91bc7dd..869d80be1b36 100644 --- a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi +++ b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi @@ -279,7 +279,7 @@ usb3503: usb3503@8 { max77686: pmic@9 { compatible = "maxim,max77686"; interrupt-parent = <&gpx3>; - interrupts = <2 IRQ_TYPE_NONE>; + interrupts = <2 IRQ_TYPE_LEVEL_LOW>; pinctrl-names = "default"; pinctrl-0 = <&max77686_irq>; reg = <0x09>; diff --git a/arch/arm/boot/dts/exynos5250-smdk5250.dts b/arch/arm/boot/dts/exynos5250-smdk5250.dts index 186790f39e4d..d0e48c10aec2 100644 --- a/arch/arm/boot/dts/exynos5250-smdk5250.dts +++ b/arch/arm/boot/dts/exynos5250-smdk5250.dts @@ -134,7 +134,7 @@ max77686: pmic@9 { compatible = "maxim,max77686"; reg = <0x09>; interrupt-parent = <&gpx3>; - interrupts = <2 IRQ_TYPE_NONE>; + interrupts = <2 IRQ_TYPE_LEVEL_LOW>; pinctrl-names = "default"; pinctrl-0 = <&max77686_irq>; #clock-cells = <1>; diff --git a/arch/arm/boot/dts/exynos5250-snow-common.dtsi b/arch/arm/boot/dts/exynos5250-snow-common.dtsi index c952a615148e..737f0e20a452 100644 --- a/arch/arm/boot/dts/exynos5250-snow-common.dtsi +++ b/arch/arm/boot/dts/exynos5250-snow-common.dtsi @@ -292,7 +292,7 @@ &i2c_0 { max77686: max77686@9 { compatible = "maxim,max77686"; interrupt-parent = <&gpx3>; - interrupts = <2 IRQ_TYPE_NONE>; + interrupts = <2 IRQ_TYPE_LEVEL_LOW>; pinctrl-names = "default"; pinctrl-0 = <&max77686_irq>; wakeup-source; diff --git a/arch/arm/boot/dts/omap3.dtsi b/arch/arm/boot/dts/omap3.dtsi index 9dcae1f2bc99..c5b9da0d7e6c 100644 --- a/arch/arm/boot/dts/omap3.dtsi +++ b/arch/arm/boot/dts/omap3.dtsi @@ -24,6 +24,9 @@ aliases { i2c0 = &i2c1; i2c1 = &i2c2; i2c2 = &i2c3; + mmc0 = &mmc1; + mmc1 = &mmc2; + mmc2 = &mmc3; serial0 = &uart1; serial1 = &uart2; serial2 = &uart3; diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi index d6475cc6a91a..049174086756 100644 --- a/arch/arm/boot/dts/omap4.dtsi +++ b/arch/arm/boot/dts/omap4.dtsi @@ -22,6 +22,11 @@ aliases { i2c1 = &i2c2; i2c2 = &i2c3; i2c3 = &i2c4; + mmc0 = &mmc1; + mmc1 = &mmc2; + mmc2 = &mmc3; + mmc3 = &mmc4; + mmc4 = &mmc5; serial0 = &uart1; serial1 = &uart2; serial2 = &uart3; diff --git a/arch/arm/boot/dts/omap44xx-clocks.dtsi b/arch/arm/boot/dts/omap44xx-clocks.dtsi index 532868591107..1f1c04d8f472 100644 --- a/arch/arm/boot/dts/omap44xx-clocks.dtsi +++ b/arch/arm/boot/dts/omap44xx-clocks.dtsi @@ -770,14 +770,6 @@ per_abe_nc_fclk: per_abe_nc_fclk@108 { ti,max-div = <2>; }; - sha2md5_fck: sha2md5_fck@15c8 { - #clock-cells = <0>; - compatible = "ti,gate-clock"; - clocks = <&l3_div_ck>; - ti,bit-shift = <1>; - reg = <0x15c8>; - }; - usb_phy_cm_clk32k: usb_phy_cm_clk32k@640 { #clock-cells = <0>; compatible = "ti,gate-clock"; diff --git a/arch/arm/boot/dts/omap5.dtsi b/arch/arm/boot/dts/omap5.dtsi index 2bf2e5839a7f..530210db2719 100644 --- a/arch/arm/boot/dts/omap5.dtsi +++ b/arch/arm/boot/dts/omap5.dtsi @@ -25,6 +25,11 @@ aliases { i2c2 = &i2c3; i2c3 = &i2c4; i2c4 = &i2c5; + mmc0 = &mmc1; + mmc1 = &mmc2; + mmc2 = &mmc3; + mmc3 = &mmc4; + mmc4 = &mmc5; serial0 = &uart1; serial1 = &uart2; serial2 = &uart3; diff --git a/arch/arm/boot/dts/r8a7790-lager.dts b/arch/arm/boot/dts/r8a7790-lager.dts index 09a152b91557..1d6f0c5d02e9 100644 --- a/arch/arm/boot/dts/r8a7790-lager.dts +++ b/arch/arm/boot/dts/r8a7790-lager.dts @@ -53,6 +53,9 @@ aliases { i2c11 = &i2cexio1; i2c12 = &i2chdmi; i2c13 = &i2cpwr; + mmc0 = &mmcif1; + mmc1 = &sdhi0; + mmc2 = &sdhi2; }; chosen { diff --git a/arch/arm/boot/dts/r8a7791-koelsch.dts b/arch/arm/boot/dts/r8a7791-koelsch.dts index f603cba5441f..6af1727b8269 100644 --- a/arch/arm/boot/dts/r8a7791-koelsch.dts +++ b/arch/arm/boot/dts/r8a7791-koelsch.dts @@ -53,6 +53,9 @@ aliases { i2c12 = &i2cexio1; i2c13 = &i2chdmi; i2c14 = &i2cexio4; + mmc0 = &sdhi0; + mmc1 = &sdhi1; + mmc2 = &sdhi2; }; chosen { diff --git a/arch/arm/boot/dts/r8a7791-porter.dts b/arch/arm/boot/dts/r8a7791-porter.dts index c6d563fb7ec7..bf51e29c793a 100644 --- a/arch/arm/boot/dts/r8a7791-porter.dts +++ b/arch/arm/boot/dts/r8a7791-porter.dts @@ -28,6 +28,8 @@ aliases { serial0 = &scif0; i2c9 = &gpioi2c2; i2c10 = &i2chdmi; + mmc0 = &sdhi0; + mmc1 = &sdhi2; }; chosen { diff --git a/arch/arm/boot/dts/r8a7793-gose.dts b/arch/arm/boot/dts/r8a7793-gose.dts index abf487e8fe0f..2b59a0491350 100644 --- a/arch/arm/boot/dts/r8a7793-gose.dts +++ b/arch/arm/boot/dts/r8a7793-gose.dts @@ -49,6 +49,9 @@ aliases { i2c10 = &gpioi2c4; i2c11 = &i2chdmi; i2c12 = &i2cexio4; + mmc0 = &sdhi0; + mmc1 = &sdhi1; + mmc2 = &sdhi2; }; chosen { diff --git a/arch/arm/boot/dts/r8a7794-alt.dts b/arch/arm/boot/dts/r8a7794-alt.dts index 3f1cc5bbf329..32025986b3b9 100644 --- a/arch/arm/boot/dts/r8a7794-alt.dts +++ b/arch/arm/boot/dts/r8a7794-alt.dts @@ -19,6 +19,9 @@ aliases { i2c10 = &gpioi2c4; i2c11 = &i2chdmi; i2c12 = &i2cexio4; + mmc0 = &mmcif0; + mmc1 = &sdhi0; + mmc2 = &sdhi1; }; chosen { diff --git a/arch/arm/boot/dts/r8a7794-silk.dts b/arch/arm/boot/dts/r8a7794-silk.dts index 677596f6c9c9..af066ee5e275 100644 --- a/arch/arm/boot/dts/r8a7794-silk.dts +++ b/arch/arm/boot/dts/r8a7794-silk.dts @@ -31,6 +31,8 @@ aliases { serial0 = &scif2; i2c9 = &gpioi2c1; i2c10 = &i2chdmi; + mmc0 = &mmcif0; + mmc1 = &sdhi1; }; chosen { diff --git a/arch/arm/boot/dts/s5pv210-fascinate4g.dts b/arch/arm/boot/dts/s5pv210-fascinate4g.dts index ca064359dd30..b47d8300e536 100644 --- a/arch/arm/boot/dts/s5pv210-fascinate4g.dts +++ b/arch/arm/boot/dts/s5pv210-fascinate4g.dts @@ -115,7 +115,7 @@ &fg { compatible = "maxim,max77836-battery"; interrupt-parent = <&gph3>; - interrupts = <3 IRQ_TYPE_EDGE_FALLING>; + interrupts = <3 IRQ_TYPE_LEVEL_LOW>; pinctrl-names = "default"; pinctrl-0 = <&fg_irq>; diff --git a/arch/arm/boot/dts/ste-href-tvk1281618-r3.dtsi b/arch/arm/boot/dts/ste-href-tvk1281618-r3.dtsi index 9f285c7cf914..c0de1337bdaa 100644 --- a/arch/arm/boot/dts/ste-href-tvk1281618-r3.dtsi +++ b/arch/arm/boot/dts/ste-href-tvk1281618-r3.dtsi @@ -8,37 +8,43 @@ / { soc { i2c@80128000 { - /* Marked: - * 129 - * M35 - * L3GD20 - */ - l3gd20@6a { - /* Gyroscope */ - compatible = "st,l3gd20"; - status = "disabled"; + accelerometer@19 { + compatible = "st,lsm303dlhc-accel"; st,drdy-int-pin = <1>; - drive-open-drain; - reg = <0x6a>; // 0x6a or 0x6b + reg = <0x19>; + vdd-supply = <&ab8500_ldo_aux1_reg>; + vddio-supply = <&db8500_vsmps2_reg>; + interrupt-parent = <&gpio2>; + interrupts = <18 IRQ_TYPE_EDGE_RISING>, + <19 IRQ_TYPE_EDGE_RISING>; + pinctrl-names = "default"; + pinctrl-0 = <&accel_tvk_mode>; + }; + magnetometer@1e { + compatible = "st,lsm303dlm-magn"; + st,drdy-int-pin = <1>; + reg = <0x1e>; + vdd-supply = <&ab8500_ldo_aux1_reg>; + vddio-supply = <&db8500_vsmps2_reg>; + // This interrupt is not properly working with the driver + // interrupt-parent = <&gpio1>; + // interrupts = <0 IRQ_TYPE_EDGE_RISING>; + pinctrl-names = "default"; + pinctrl-0 = <&magn_tvk_mode>; + }; + gyroscope@68 { + /* Gyroscope */ + compatible = "st,l3g4200d-gyro"; + reg = <0x68>; vdd-supply = <&ab8500_ldo_aux1_reg>; vddio-supply = <&db8500_vsmps2_reg>; }; - /* - * Marked: - * 2122 - * C3H - * DQEEE - * LIS3DH? - */ - lis3dh@18 { - /* Accelerometer */ - compatible = "st,lis3dh-accel"; - st,drdy-int-pin = <1>; - reg = <0x18>; + pressure@5c { + /* Barometer/pressure sensor */ + compatible = "st,lps001wp-press"; + reg = <0x5c>; vdd-supply = <&ab8500_ldo_aux1_reg>; vddio-supply = <&db8500_vsmps2_reg>; - pinctrl-names = "default"; - pinctrl-0 = <&accel_tvk_mode>; }; }; @@ -54,5 +60,26 @@ panel { }; }; }; + + pinctrl { + accelerometer { + accel_tvk_mode: accel_tvk { + /* Accelerometer interrupt lines 1 & 2 */ + tvk_cfg { + pins = "GPIO82_C1", "GPIO83_D3"; + ste,config = <&gpio_in_pd>; + }; + }; + }; + magnetometer { + magn_tvk_mode: magn_tvk { + /* GPIO 32 used for DRDY, pull this down */ + tvk_cfg { + pins = "GPIO32_V2"; + ste,config = <&gpio_in_pd>; + }; + }; + }; + }; }; }; diff --git a/arch/arm/boot/dts/stm32mp15-pinctrl.dtsi b/arch/arm/boot/dts/stm32mp15-pinctrl.dtsi index d84686e00370..dee4d32ab32c 100644 --- a/arch/arm/boot/dts/stm32mp15-pinctrl.dtsi +++ b/arch/arm/boot/dts/stm32mp15-pinctrl.dtsi @@ -1806,10 +1806,15 @@ pins2 { usart2_idle_pins_c: usart2-idle-2 { pins1 { pinmux = , /* USART2_TX */ - , /* USART2_RTS */ ; /* USART2_CTS_NSS */ }; pins2 { + pinmux = ; /* USART2_RTS */ + bias-disable; + drive-push-pull; + slew-rate = <3>; + }; + pins3 { pinmux = ; /* USART2_RX */ bias-disable; }; @@ -1855,10 +1860,15 @@ pins2 { usart3_idle_pins_b: usart3-idle-1 { pins1 { pinmux = , /* USART3_TX */ - , /* USART3_RTS */ ; /* USART3_CTS_NSS */ }; pins2 { + pinmux = ; /* USART3_RTS */ + bias-disable; + drive-push-pull; + slew-rate = <0>; + }; + pins3 { pinmux = ; /* USART3_RX */ bias-disable; }; @@ -1891,10 +1901,15 @@ pins2 { usart3_idle_pins_c: usart3-idle-2 { pins1 { pinmux = , /* USART3_TX */ - , /* USART3_RTS */ ; /* USART3_CTS_NSS */ }; pins2 { + pinmux = ; /* USART3_RTS */ + bias-disable; + drive-push-pull; + slew-rate = <0>; + }; + pins3 { pinmux = ; /* USART3_RX */ bias-disable; }; diff --git a/arch/arm/boot/dts/tegra20-acer-a500-picasso.dts b/arch/arm/boot/dts/tegra20-acer-a500-picasso.dts index a0b829738e8f..068aabcffb13 100644 --- a/arch/arm/boot/dts/tegra20-acer-a500-picasso.dts +++ b/arch/arm/boot/dts/tegra20-acer-a500-picasso.dts @@ -448,7 +448,7 @@ touchscreen@4c { reset-gpios = <&gpio TEGRA_GPIO(Q, 7) GPIO_ACTIVE_HIGH>; - avdd-supply = <&vdd_3v3_sys>; + vdda-supply = <&vdd_3v3_sys>; vdd-supply = <&vdd_3v3_sys>; }; diff --git a/arch/arm/boot/dts/uniphier-pxs2.dtsi b/arch/arm/boot/dts/uniphier-pxs2.dtsi index b0b15c97306b..e81e5937a60a 100644 --- a/arch/arm/boot/dts/uniphier-pxs2.dtsi +++ b/arch/arm/boot/dts/uniphier-pxs2.dtsi @@ -583,7 +583,7 @@ eth: ethernet@65000000 { clocks = <&sys_clk 6>; reset-names = "ether"; resets = <&sys_rst 6>; - phy-mode = "rgmii"; + phy-mode = "rgmii-id"; local-mac-address = [00 00 00 00 00 00]; socionext,syscon-phy-mode = <&soc_glue 0>; diff --git a/arch/arm/crypto/aes-neonbs-glue.c b/arch/arm/crypto/aes-neonbs-glue.c index f70af1d0514b..5c6cd3c63cbc 100644 --- a/arch/arm/crypto/aes-neonbs-glue.c +++ b/arch/arm/crypto/aes-neonbs-glue.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -23,6 +24,8 @@ MODULE_ALIAS_CRYPTO("cbc(aes)-all"); MODULE_ALIAS_CRYPTO("ctr(aes)"); MODULE_ALIAS_CRYPTO("xts(aes)"); +MODULE_IMPORT_NS(CRYPTO_INTERNAL); + asmlinkage void aesbs_convert_key(u8 out[], u32 const rk[], int rounds); asmlinkage void aesbs_ecb_encrypt(u8 out[], u8 const in[], u8 const rk[], diff --git a/arch/arm/crypto/blake2b-neon-glue.c b/arch/arm/crypto/blake2b-neon-glue.c index 34d73200e7fa..4b59d027ba4a 100644 --- a/arch/arm/crypto/blake2b-neon-glue.c +++ b/arch/arm/crypto/blake2b-neon-glue.c @@ -85,8 +85,8 @@ static int __init blake2b_neon_mod_init(void) static void __exit blake2b_neon_mod_exit(void) { - return crypto_unregister_shashes(blake2b_neon_algs, - ARRAY_SIZE(blake2b_neon_algs)); + crypto_unregister_shashes(blake2b_neon_algs, + ARRAY_SIZE(blake2b_neon_algs)); } module_init(blake2b_neon_mod_init); diff --git a/arch/arm/crypto/blake2s-core.S b/arch/arm/crypto/blake2s-core.S index bed897e9a181..86345751bbf3 100644 --- a/arch/arm/crypto/blake2s-core.S +++ b/arch/arm/crypto/blake2s-core.S @@ -8,6 +8,7 @@ */ #include +#include // Registers used to hold message words temporarily. There aren't // enough ARM registers to hold the whole message block, so we have to @@ -38,6 +39,23 @@ #endif .endm +.macro _le32_bswap a, tmp +#ifdef __ARMEB__ + rev_l \a, \tmp +#endif +.endm + +.macro _le32_bswap_8x a, b, c, d, e, f, g, h, tmp + _le32_bswap \a, \tmp + _le32_bswap \b, \tmp + _le32_bswap \c, \tmp + _le32_bswap \d, \tmp + _le32_bswap \e, \tmp + _le32_bswap \f, \tmp + _le32_bswap \g, \tmp + _le32_bswap \h, \tmp +.endm + // Execute a quarter-round of BLAKE2s by mixing two columns or two diagonals. // (a0, b0, c0, d0) and (a1, b1, c1, d1) give the registers containing the two // columns/diagonals. s0-s1 are the word offsets to the message words the first @@ -180,8 +198,10 @@ ENTRY(blake2s_compress_arch) tst r1, #3 bne .Lcopy_block_misaligned ldmia r1!, {r2-r9} + _le32_bswap_8x r2, r3, r4, r5, r6, r7, r8, r9, r14 stmia r12!, {r2-r9} ldmia r1!, {r2-r9} + _le32_bswap_8x r2, r3, r4, r5, r6, r7, r8, r9, r14 stmia r12, {r2-r9} .Lcopy_block_done: str r1, [sp, #68] // Update message pointer @@ -268,6 +288,7 @@ ENTRY(blake2s_compress_arch) 1: #ifdef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS ldr r3, [r1], #4 + _le32_bswap r3, r4 #else ldrb r3, [r1, #0] ldrb r4, [r1, #1] diff --git a/arch/arm/crypto/curve25519-core.S b/arch/arm/crypto/curve25519-core.S index be18af52e7dc..b697fa5d059a 100644 --- a/arch/arm/crypto/curve25519-core.S +++ b/arch/arm/crypto/curve25519-core.S @@ -10,8 +10,8 @@ #include .text -.fpu neon .arch armv7-a +.fpu neon .align 4 ENTRY(curve25519_neon) diff --git a/arch/arm/crypto/poly1305-glue.c b/arch/arm/crypto/poly1305-glue.c index 3023c1acfa19..c31bd8f7c092 100644 --- a/arch/arm/crypto/poly1305-glue.c +++ b/arch/arm/crypto/poly1305-glue.c @@ -29,7 +29,7 @@ void __weak poly1305_blocks_neon(void *state, const u8 *src, u32 len, u32 hibit) static __ro_after_init DEFINE_STATIC_KEY_FALSE(have_neon); -void poly1305_init_arch(struct poly1305_desc_ctx *dctx, const u8 *key) +void poly1305_init_arch(struct poly1305_desc_ctx *dctx, const u8 key[POLY1305_KEY_SIZE]) { poly1305_init_arm(&dctx->h, key); dctx->s[0] = get_unaligned_le32(key + 16); diff --git a/arch/arm/include/asm/assembler.h b/arch/arm/include/asm/assembler.h index 72627c5fb3b2..761e88c73955 100644 --- a/arch/arm/include/asm/assembler.h +++ b/arch/arm/include/asm/assembler.h @@ -578,4 +578,21 @@ THUMB( orr \reg , \reg , #PSR_T_BIT ) __adldst_l str, \src, \sym, \tmp, \cond .endm + /* + * rev_l - byte-swap a 32-bit value + * + * @val: source/destination register + * @tmp: scratch register + */ + .macro rev_l, val:req, tmp:req + .if __LINUX_ARM_ARCH__ < 6 + eor \tmp, \val, \val, ror #16 + bic \tmp, \tmp, #0x00ff0000 + mov \val, \val, ror #8 + eor \val, \val, \tmp, lsr #8 + .else + rev \val, \val + .endif + .endm + #endif /* __ASM_ASSEMBLER_H__ */ diff --git a/arch/arm/include/asm/fixmap.h b/arch/arm/include/asm/fixmap.h index fc56fc3e1931..9575b404019c 100644 --- a/arch/arm/include/asm/fixmap.h +++ b/arch/arm/include/asm/fixmap.h @@ -2,7 +2,7 @@ #ifndef _ASM_FIXMAP_H #define _ASM_FIXMAP_H -#define FIXADDR_START 0xffc00000UL +#define FIXADDR_START 0xffc80000UL #define FIXADDR_END 0xfff00000UL #define FIXADDR_TOP (FIXADDR_END - PAGE_SIZE) diff --git a/arch/arm/include/asm/memory.h b/arch/arm/include/asm/memory.h index 99035b5891ef..f717d7122d9d 100644 --- a/arch/arm/include/asm/memory.h +++ b/arch/arm/include/asm/memory.h @@ -67,6 +67,10 @@ */ #define XIP_VIRT_ADDR(physaddr) (MODULES_VADDR + ((physaddr) & 0x000fffff)) +#define FDT_FIXED_BASE UL(0xff800000) +#define FDT_FIXED_SIZE (2 * SECTION_SIZE) +#define FDT_VIRT_BASE(physbase) ((void *)(FDT_FIXED_BASE | (physbase) % SECTION_SIZE)) + #if !defined(CONFIG_SMP) && !defined(CONFIG_ARM_LPAE) /* * Allow 16MB-aligned ioremap pages @@ -107,6 +111,7 @@ extern unsigned long vectors_base; #define MODULES_VADDR PAGE_OFFSET #define XIP_VIRT_ADDR(physaddr) (physaddr) +#define FDT_VIRT_BASE(physbase) ((void *)(physbase)) #endif /* !CONFIG_MMU */ diff --git a/arch/arm/include/asm/prom.h b/arch/arm/include/asm/prom.h index 1e36c40533c1..402e3f34c7ed 100644 --- a/arch/arm/include/asm/prom.h +++ b/arch/arm/include/asm/prom.h @@ -9,12 +9,12 @@ #ifdef CONFIG_OF -extern const struct machine_desc *setup_machine_fdt(unsigned int dt_phys); +extern const struct machine_desc *setup_machine_fdt(void *dt_virt); extern void __init arm_dt_init_cpu_maps(void); #else /* CONFIG_OF */ -static inline const struct machine_desc *setup_machine_fdt(unsigned int dt_phys) +static inline const struct machine_desc *setup_machine_fdt(void *dt_virt) { return NULL; } diff --git a/arch/arm/kernel/asm-offsets.c b/arch/arm/kernel/asm-offsets.c index be8050b0c3df..70993af22d80 100644 --- a/arch/arm/kernel/asm-offsets.c +++ b/arch/arm/kernel/asm-offsets.c @@ -24,6 +24,7 @@ #include #include #include +#include #include "signal.h" /* @@ -148,6 +149,8 @@ int main(void) DEFINE(SLEEP_SAVE_SP_PHYS, offsetof(struct sleep_save_sp, save_ptr_stash_phys)); DEFINE(SLEEP_SAVE_SP_VIRT, offsetof(struct sleep_save_sp, save_ptr_stash)); #endif + DEFINE(ARM_SMCCC_QUIRK_ID_OFFS, offsetof(struct arm_smccc_quirk, id)); + DEFINE(ARM_SMCCC_QUIRK_STATE_OFFS, offsetof(struct arm_smccc_quirk, state)); BLANK(); DEFINE(DMA_BIDIRECTIONAL, DMA_BIDIRECTIONAL); DEFINE(DMA_TO_DEVICE, DMA_TO_DEVICE); diff --git a/arch/arm/kernel/atags.h b/arch/arm/kernel/atags.h index 067e12edc341..f2819c25b602 100644 --- a/arch/arm/kernel/atags.h +++ b/arch/arm/kernel/atags.h @@ -2,11 +2,11 @@ void convert_to_tag_list(struct tag *tags); #ifdef CONFIG_ATAGS -const struct machine_desc *setup_machine_tags(phys_addr_t __atags_pointer, +const struct machine_desc *setup_machine_tags(void *__atags_vaddr, unsigned int machine_nr); #else static inline const struct machine_desc * __init __noreturn -setup_machine_tags(phys_addr_t __atags_pointer, unsigned int machine_nr) +setup_machine_tags(void *__atags_vaddr, unsigned int machine_nr) { early_print("no ATAGS support: can't continue\n"); while (true); diff --git a/arch/arm/kernel/atags_parse.c b/arch/arm/kernel/atags_parse.c index 6c12d9fe694e..373b61f9a4f0 100644 --- a/arch/arm/kernel/atags_parse.c +++ b/arch/arm/kernel/atags_parse.c @@ -174,7 +174,7 @@ static void __init squash_mem_tags(struct tag *tag) } const struct machine_desc * __init -setup_machine_tags(phys_addr_t __atags_pointer, unsigned int machine_nr) +setup_machine_tags(void *atags_vaddr, unsigned int machine_nr) { struct tag *tags = (struct tag *)&default_tags; const struct machine_desc *mdesc = NULL, *p; @@ -195,8 +195,8 @@ setup_machine_tags(phys_addr_t __atags_pointer, unsigned int machine_nr) if (!mdesc) return NULL; - if (__atags_pointer) - tags = phys_to_virt(__atags_pointer); + if (atags_vaddr) + tags = atags_vaddr; else if (mdesc->atag_offset) tags = (void *)(PAGE_OFFSET + mdesc->atag_offset); diff --git a/arch/arm/kernel/devtree.c b/arch/arm/kernel/devtree.c index 7f0745a97e20..28311dd0fee6 100644 --- a/arch/arm/kernel/devtree.c +++ b/arch/arm/kernel/devtree.c @@ -203,12 +203,12 @@ static const void * __init arch_get_next_mach(const char *const **match) /** * setup_machine_fdt - Machine setup when an dtb was passed to the kernel - * @dt_phys: physical address of dt blob + * @dt_virt: virtual address of dt blob * * If a dtb was passed to the kernel in r2, then use it to choose the * correct machine_desc and to setup the system. */ -const struct machine_desc * __init setup_machine_fdt(unsigned int dt_phys) +const struct machine_desc * __init setup_machine_fdt(void *dt_virt) { const struct machine_desc *mdesc, *mdesc_best = NULL; @@ -221,7 +221,7 @@ const struct machine_desc * __init setup_machine_fdt(unsigned int dt_phys) mdesc_best = &__mach_desc_GENERIC_DT; #endif - if (!dt_phys || !early_init_dt_verify(phys_to_virt(dt_phys))) + if (!dt_virt || !early_init_dt_verify(dt_virt)) return NULL; mdesc = of_flat_dt_match_machine(mdesc_best, arch_get_next_mach); diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S index 98c1e68bdfcb..4af5c7679624 100644 --- a/arch/arm/kernel/head.S +++ b/arch/arm/kernel/head.S @@ -274,11 +274,10 @@ __create_page_tables: * We map 2 sections in case the ATAGs/DTB crosses a section boundary. */ mov r0, r2, lsr #SECTION_SHIFT - movs r0, r0, lsl #SECTION_SHIFT - subne r3, r0, r8 - addne r3, r3, #PAGE_OFFSET - addne r3, r4, r3, lsr #(SECTION_SHIFT - PMD_ORDER) - orrne r6, r7, r0 + cmp r2, #0 + ldrne r3, =FDT_FIXED_BASE >> (SECTION_SHIFT - PMD_ORDER) + addne r3, r3, r4 + orrne r6, r7, r0, lsl #SECTION_SHIFT strne r6, [r3], #1 << PMD_ORDER addne r6, r6, #1 << SECTION_SHIFT strne r6, [r3] diff --git a/arch/arm/kernel/hw_breakpoint.c b/arch/arm/kernel/hw_breakpoint.c index 08660ae9dcbc..b1423fb130ea 100644 --- a/arch/arm/kernel/hw_breakpoint.c +++ b/arch/arm/kernel/hw_breakpoint.c @@ -886,7 +886,7 @@ static void breakpoint_handler(unsigned long unknown, struct pt_regs *regs) info->trigger = addr; pr_debug("breakpoint fired: address = 0x%x\n", addr); perf_bp_event(bp, regs); - if (!bp->overflow_handler) + if (is_default_overflow_handler(bp)) enable_single_step(bp, addr); goto unlock; } diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c index 50b1803dfdbf..4f17074f26b6 100644 --- a/arch/arm/kernel/setup.c +++ b/arch/arm/kernel/setup.c @@ -18,6 +18,7 @@ #include #include #include +#include #include #include #include @@ -1095,19 +1096,27 @@ static struct notifier_block arm_restart_nb = { void __init setup_arch(char **cmdline_p) { - const struct machine_desc *mdesc; + const struct machine_desc *mdesc = NULL; + void *atags_vaddr = NULL; + + if (__atags_pointer) + atags_vaddr = FDT_VIRT_BASE(__atags_pointer); setup_processor(); - mdesc = setup_machine_fdt(__atags_pointer); + if (atags_vaddr) { + mdesc = setup_machine_fdt(atags_vaddr); + if (mdesc) + memblock_reserve(__atags_pointer, + fdt_totalsize(atags_vaddr)); + } if (!mdesc) - mdesc = setup_machine_tags(__atags_pointer, __machine_arch_type); + mdesc = setup_machine_tags(atags_vaddr, __machine_arch_type); if (!mdesc) { early_print("\nError: invalid dtb and unrecognized/unsupported machine ID\n"); early_print(" r1=0x%08x, r2=0x%08x\n", __machine_arch_type, __atags_pointer); if (__atags_pointer) - early_print(" r2[]=%*ph\n", 16, - phys_to_virt(__atags_pointer)); + early_print(" r2[]=%*ph\n", 16, atags_vaddr); dump_machine_table(); } diff --git a/arch/arm/kernel/smccc-call.S b/arch/arm/kernel/smccc-call.S index 00664c78faca..931df62a7831 100644 --- a/arch/arm/kernel/smccc-call.S +++ b/arch/arm/kernel/smccc-call.S @@ -3,7 +3,9 @@ * Copyright (c) 2015, Linaro Limited */ #include +#include +#include #include #include #include @@ -27,7 +29,14 @@ UNWIND( .fnstart) UNWIND( .save {r4-r7}) ldm r12, {r4-r7} \instr - pop {r4-r7} + ldr r4, [sp, #36] + cmp r4, #0 + beq 1f // No quirk structure + ldr r5, [r4, #ARM_SMCCC_QUIRK_ID_OFFS] + cmp r5, #ARM_SMCCC_QUIRK_QCOM_A6 + bne 1f // No quirk present + str r6, [r4, #ARM_SMCCC_QUIRK_STATE_OFFS] +1: pop {r4-r7} ldr r12, [sp, #(4 * 4)] stm r12, {r0-r3} bx lr diff --git a/arch/arm/kernel/suspend.c b/arch/arm/kernel/suspend.c index 24bd20564be7..43f0a3ebf390 100644 --- a/arch/arm/kernel/suspend.c +++ b/arch/arm/kernel/suspend.c @@ -1,4 +1,5 @@ // SPDX-License-Identifier: GPL-2.0 +#include #include #include #include @@ -25,6 +26,13 @@ int cpu_suspend(unsigned long arg, int (*fn)(unsigned long)) if (!idmap_pgd) return -EINVAL; + /* + * Function graph tracer state gets incosistent when the kernel + * calls functions that never return (aka suspend finishers) hence + * disable graph tracing during their execution. + */ + pause_graph_tracing(); + /* * Provide a temporary page table with an identity mapping for * the MMU-enable code, required for resuming. On successful @@ -32,6 +40,9 @@ int cpu_suspend(unsigned long arg, int (*fn)(unsigned long)) * back to the correct page tables. */ ret = __cpu_suspend(arg, fn, __mpidr); + + unpause_graph_tracing(); + if (ret == 0) { cpu_switch_mm(mm->pgd, mm); local_flush_bp_all(); @@ -45,7 +56,13 @@ int cpu_suspend(unsigned long arg, int (*fn)(unsigned long)) int cpu_suspend(unsigned long arg, int (*fn)(unsigned long)) { u32 __mpidr = cpu_logical_map(smp_processor_id()); - return __cpu_suspend(arg, fn, __mpidr); + int ret; + + pause_graph_tracing(); + ret = __cpu_suspend(arg, fn, __mpidr); + unpause_graph_tracing(); + + return ret; } #define idmap_pgd NULL #endif diff --git a/arch/arm/mach-footbridge/cats-pci.c b/arch/arm/mach-footbridge/cats-pci.c index 0b2fd7e2e9b4..90b1e9be430e 100644 --- a/arch/arm/mach-footbridge/cats-pci.c +++ b/arch/arm/mach-footbridge/cats-pci.c @@ -15,14 +15,14 @@ #include /* cats host-specific stuff */ -static int irqmap_cats[] __initdata = { IRQ_PCI, IRQ_IN0, IRQ_IN1, IRQ_IN3 }; +static int irqmap_cats[] = { IRQ_PCI, IRQ_IN0, IRQ_IN1, IRQ_IN3 }; static u8 cats_no_swizzle(struct pci_dev *dev, u8 *pin) { return 0; } -static int __init cats_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) +static int cats_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) { if (dev->irq >= 255) return -1; /* not a valid interrupt. */ diff --git a/arch/arm/mach-footbridge/ebsa285-pci.c b/arch/arm/mach-footbridge/ebsa285-pci.c index 6f28aaa9ca79..c3f280d08fa7 100644 --- a/arch/arm/mach-footbridge/ebsa285-pci.c +++ b/arch/arm/mach-footbridge/ebsa285-pci.c @@ -14,9 +14,9 @@ #include #include -static int irqmap_ebsa285[] __initdata = { IRQ_IN3, IRQ_IN1, IRQ_IN0, IRQ_PCI }; +static int irqmap_ebsa285[] = { IRQ_IN3, IRQ_IN1, IRQ_IN0, IRQ_PCI }; -static int __init ebsa285_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) +static int ebsa285_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) { if (dev->vendor == PCI_VENDOR_ID_CONTAQ && dev->device == PCI_DEVICE_ID_CONTAQ_82C693) diff --git a/arch/arm/mach-footbridge/netwinder-pci.c b/arch/arm/mach-footbridge/netwinder-pci.c index 9473aa0305e5..e8304392074b 100644 --- a/arch/arm/mach-footbridge/netwinder-pci.c +++ b/arch/arm/mach-footbridge/netwinder-pci.c @@ -18,7 +18,7 @@ * We now use the slot ID instead of the device identifiers to select * which interrupt is routed where. */ -static int __init netwinder_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) +static int netwinder_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) { switch (slot) { case 0: /* host bridge */ diff --git a/arch/arm/mach-footbridge/personal-pci.c b/arch/arm/mach-footbridge/personal-pci.c index 4391e433a4b2..9d19aa98a663 100644 --- a/arch/arm/mach-footbridge/personal-pci.c +++ b/arch/arm/mach-footbridge/personal-pci.c @@ -14,13 +14,12 @@ #include #include -static int irqmap_personal_server[] __initdata = { +static int irqmap_personal_server[] = { IRQ_IN0, IRQ_IN1, IRQ_IN2, IRQ_IN3, 0, 0, 0, IRQ_DOORBELLHOST, IRQ_DMA1, IRQ_DMA2, IRQ_PCI }; -static int __init personal_server_map_irq(const struct pci_dev *dev, u8 slot, - u8 pin) +static int personal_server_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) { unsigned char line; diff --git a/arch/arm/mach-keystone/keystone.c b/arch/arm/mach-keystone/keystone.c index 09a65c2dfd73..b8fa01f9516e 100644 --- a/arch/arm/mach-keystone/keystone.c +++ b/arch/arm/mach-keystone/keystone.c @@ -65,7 +65,7 @@ static void __init keystone_init(void) static long long __init keystone_pv_fixup(void) { long long offset; - phys_addr_t mem_start, mem_end; + u64 mem_start, mem_end; mem_start = memblock_start_of_DRAM(); mem_end = memblock_end_of_DRAM(); @@ -78,7 +78,7 @@ static long long __init keystone_pv_fixup(void) if (mem_start < KEYSTONE_HIGH_PHYS_START || mem_end > KEYSTONE_HIGH_PHYS_END) { pr_crit("Invalid address space for memory (%08llx-%08llx)\n", - (u64)mem_start, (u64)mem_end); + mem_start, mem_end); return 0; } diff --git a/arch/arm/mach-omap1/ams-delta-fiq-handler.S b/arch/arm/mach-omap1/ams-delta-fiq-handler.S index 14a6c3eb3298..f745a65d3bd7 100644 --- a/arch/arm/mach-omap1/ams-delta-fiq-handler.S +++ b/arch/arm/mach-omap1/ams-delta-fiq-handler.S @@ -15,6 +15,7 @@ #include #include +#include #include "ams-delta-fiq.h" #include "board-ams-delta.h" diff --git a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-omap2/board-generic.c index 7290f033fd2d..1610c567a6a3 100644 --- a/arch/arm/mach-omap2/board-generic.c +++ b/arch/arm/mach-omap2/board-generic.c @@ -33,7 +33,7 @@ static void __init __maybe_unused omap_generic_init(void) } /* Clocks are needed early, see drivers/clocksource for the rest */ -void __init __maybe_unused omap_init_time_of(void) +static void __init __maybe_unused omap_init_time_of(void) { omap_clk_init(); timer_probe(); diff --git a/arch/arm/mach-omap2/sr_device.c b/arch/arm/mach-omap2/sr_device.c index 17b66f0d0dee..605925684b0a 100644 --- a/arch/arm/mach-omap2/sr_device.c +++ b/arch/arm/mach-omap2/sr_device.c @@ -188,7 +188,7 @@ static const char * const dra7_sr_instances[] = { int __init omap_devinit_smartreflex(void) { - const char * const *sr_inst; + const char * const *sr_inst = NULL; int i, nr_sr = 0; if (soc_is_omap44xx()) { diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c index c23dbf8bebee..d54d69cf1732 100644 --- a/arch/arm/mm/init.c +++ b/arch/arm/mm/init.c @@ -223,7 +223,6 @@ void __init arm_memblock_init(const struct machine_desc *mdesc) if (mdesc->reserve) mdesc->reserve(); - early_init_fdt_reserve_self(); early_init_fdt_scan_reserved_mem(); /* reserve memory for DMA contiguous allocations */ diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c index ab69250a86bc..fa259825310c 100644 --- a/arch/arm/mm/mmu.c +++ b/arch/arm/mm/mmu.c @@ -39,6 +39,8 @@ #include "mm.h" #include "tcm.h" +extern unsigned long __atags_pointer; + /* * empty_zero_page is a special page that is used for * zero-initialized data and COW. @@ -946,7 +948,7 @@ static void __init create_mapping(struct map_desc *md) return; } - if ((md->type == MT_DEVICE || md->type == MT_ROM) && + if (md->type == MT_DEVICE && md->virtual >= PAGE_OFFSET && md->virtual < FIXADDR_START && (md->virtual < VMALLOC_START || md->virtual >= VMALLOC_END)) { pr_warn("BUG: mapping for 0x%08llx at 0x%08lx out of vmalloc space\n", @@ -1333,6 +1335,15 @@ static void __init devicemaps_init(const struct machine_desc *mdesc) for (addr = VMALLOC_START; addr < (FIXADDR_TOP & PMD_MASK); addr += PMD_SIZE) pmd_clear(pmd_off_k(addr)); + if (__atags_pointer) { + /* create a read-only mapping of the device tree */ + map.pfn = __phys_to_pfn(__atags_pointer & SECTION_MASK); + map.virtual = FDT_FIXED_BASE; + map.length = FDT_FIXED_SIZE; + map.type = MT_ROM; + create_mapping(&map); + } + /* * Map the kernel if it is XIP. * It is always first in the modulearea. @@ -1489,8 +1500,7 @@ static void __init map_lowmem(void) } #ifdef CONFIG_ARM_PV_FIXUP -extern unsigned long __atags_pointer; -typedef void pgtables_remap(long long offset, unsigned long pgd, void *bdata); +typedef void pgtables_remap(long long offset, unsigned long pgd); pgtables_remap lpae_pgtables_remap_asm; /* @@ -1503,7 +1513,6 @@ static void __init early_paging_init(const struct machine_desc *mdesc) unsigned long pa_pgd; unsigned int cr, ttbcr; long long offset; - void *boot_data; if (!mdesc->pv_fixup) return; @@ -1520,7 +1529,6 @@ static void __init early_paging_init(const struct machine_desc *mdesc) */ lpae_pgtables_remap = (pgtables_remap *)(unsigned long)__pa(lpae_pgtables_remap_asm); pa_pgd = __pa(swapper_pg_dir); - boot_data = __va(__atags_pointer); barrier(); pr_info("Switching physical address space to 0x%08llx\n", @@ -1556,7 +1564,7 @@ static void __init early_paging_init(const struct machine_desc *mdesc) * needs to be assembly. It's fairly simple, as we're using the * temporary tables setup by the initial assembly code. */ - lpae_pgtables_remap(offset, pa_pgd, boot_data); + lpae_pgtables_remap(offset, pa_pgd); /* Re-enable the caches and cacheable TLB walks */ asm volatile("mcr p15, 0, %0, c2, c0, 2" : : "r" (ttbcr)); diff --git a/arch/arm/mm/pmsa-v7.c b/arch/arm/mm/pmsa-v7.c index 88950e41a3a9..59d916ccdf25 100644 --- a/arch/arm/mm/pmsa-v7.c +++ b/arch/arm/mm/pmsa-v7.c @@ -235,6 +235,7 @@ void __init pmsav7_adjust_lowmem_bounds(void) phys_addr_t mem_end; phys_addr_t reg_start, reg_end; unsigned int mem_max_regions; + bool first = true; int num; u64 i; @@ -263,7 +264,7 @@ void __init pmsav7_adjust_lowmem_bounds(void) #endif for_each_mem_range(i, ®_start, ®_end) { - if (i == 0) { + if (first) { phys_addr_t phys_offset = PHYS_OFFSET; /* @@ -275,6 +276,7 @@ void __init pmsav7_adjust_lowmem_bounds(void) mem_start = reg_start; mem_end = reg_end; specified_mem_size = mem_end - mem_start; + first = false; } else { /* * memblock auto merges contiguous blocks, remove diff --git a/arch/arm/mm/pmsa-v8.c b/arch/arm/mm/pmsa-v8.c index 2de019f7503e..8359748a19a1 100644 --- a/arch/arm/mm/pmsa-v8.c +++ b/arch/arm/mm/pmsa-v8.c @@ -95,10 +95,11 @@ void __init pmsav8_adjust_lowmem_bounds(void) { phys_addr_t mem_end; phys_addr_t reg_start, reg_end; + bool first = true; u64 i; for_each_mem_range(i, ®_start, ®_end) { - if (i == 0) { + if (first) { phys_addr_t phys_offset = PHYS_OFFSET; /* @@ -107,6 +108,7 @@ void __init pmsav8_adjust_lowmem_bounds(void) if (reg_start != phys_offset) panic("First memory bank must be contiguous from PHYS_OFFSET"); mem_end = reg_end; + first = false; } else { /* * memblock auto merges contiguous blocks, remove diff --git a/arch/arm/mm/pv-fixup-asm.S b/arch/arm/mm/pv-fixup-asm.S index 8eade0416739..5c5e1952000a 100644 --- a/arch/arm/mm/pv-fixup-asm.S +++ b/arch/arm/mm/pv-fixup-asm.S @@ -39,8 +39,8 @@ ENTRY(lpae_pgtables_remap_asm) /* Update level 2 entries for the boot data */ add r7, r2, #0x1000 - add r7, r7, r3, lsr #SECTION_SHIFT - L2_ORDER - bic r7, r7, #(1 << L2_ORDER) - 1 + movw r3, #FDT_FIXED_BASE >> (SECTION_SHIFT - L2_ORDER) + add r7, r7, r3 ldrd r4, r5, [r7] adds r4, r4, r0 adc r5, r5, r1 diff --git a/arch/arm/probes/uprobes/core.c b/arch/arm/probes/uprobes/core.c index c4b49b322e8a..f5f790c6e5f8 100644 --- a/arch/arm/probes/uprobes/core.c +++ b/arch/arm/probes/uprobes/core.c @@ -204,7 +204,7 @@ unsigned long uprobe_get_swbp_addr(struct pt_regs *regs) static struct undef_hook uprobes_arm_break_hook = { .instr_mask = 0x0fffffff, .instr_val = (UPROBE_SWBP_ARM_INSN & 0x0fffffff), - .cpsr_mask = MODE_MASK, + .cpsr_mask = (PSR_T_BIT | MODE_MASK), .cpsr_val = USR_MODE, .fn = uprobe_trap_handler, }; @@ -212,7 +212,7 @@ static struct undef_hook uprobes_arm_break_hook = { static struct undef_hook uprobes_arm_ss_hook = { .instr_mask = 0x0fffffff, .instr_val = (UPROBE_SS_ARM_INSN & 0x0fffffff), - .cpsr_mask = MODE_MASK, + .cpsr_mask = (PSR_T_BIT | MODE_MASK), .cpsr_val = USR_MODE, .fn = uprobe_trap_handler, }; diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index 23d204dddabd..a7c07ae524d9 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -1402,10 +1402,13 @@ config ARM64_PAN config AS_HAS_LDAPR def_bool $(as-instr,.arch_extension rcpc) +config AS_HAS_LSE_ATOMICS + def_bool $(as-instr,.arch_extension lse) + config ARM64_LSE_ATOMICS bool default ARM64_USE_LSE_ATOMICS - depends on $(as-instr,.arch_extension lse) + depends on AS_HAS_LSE_ATOMICS config ARM64_USE_LSE_ATOMICS bool "Atomic instructions" @@ -1687,6 +1690,7 @@ config ARM64_MTE depends on AS_HAS_ARMV8_5 # Required for tag checking in the uaccess routines depends on ARM64_PAN + depends on AS_HAS_LSE_ATOMICS select ARCH_USES_HIGH_VMA_FLAGS help Memory Tagging (part of the ARMv8.5 Extensions) provides diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile index 90309208bb28..07c5e0fc006f 100644 --- a/arch/arm64/Makefile +++ b/arch/arm64/Makefile @@ -157,7 +157,10 @@ libs-$(CONFIG_EFI_STUB) += $(objtree)/drivers/firmware/efi/libstub/lib.a boot := arch/arm64/boot KBUILD_IMAGE := $(boot)/Image.gz +# Don't compile Image in mixed build with "all" target +ifndef KBUILD_MIXED_TREE all: Image.gz +endif Image: vmlinux diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-lts.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-lts.dts index 302e24be0a31..358df6d926af 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-lts.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-lts.dts @@ -8,3 +8,7 @@ / { compatible = "pine64,pine64-lts", "allwinner,sun50i-r18", "allwinner,sun50i-a64"; }; + +&mmc0 { + broken-cd; /* card detect is broken on *some* boards */ +}; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine.dtsi index 3402cec87035..df62044ff7a7 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine.dtsi @@ -34,7 +34,7 @@ &mmc0 { vmmc-supply = <®_dcdc1>; disable-wp; bus-width = <4>; - cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ + cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; /* PF6 push-pull switch */ status = "okay"; }; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts index 7c9dbde645b5..e8163c572dab 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts @@ -289,10 +289,6 @@ &r_pio { vcc-pm-supply = <®_aldo1>; }; -&rtc { - clocks = <&ext_osc32k>; -}; - &spdif { status = "okay"; }; diff --git a/arch/arm64/boot/dts/freescale/imx8mq-librem5-r3.dts b/arch/arm64/boot/dts/freescale/imx8mq-librem5-r3.dts index 6704ea2c72a3..cc29223ca188 100644 --- a/arch/arm64/boot/dts/freescale/imx8mq-librem5-r3.dts +++ b/arch/arm64/boot/dts/freescale/imx8mq-librem5-r3.dts @@ -22,6 +22,10 @@ &bq25895 { ti,termination-current = <144000>; /* uA */ }; +&buck3_reg { + regulator-always-on; +}; + &proximity { proximity-near-level = <25>; }; diff --git a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi index d5b6c0a1c54a..a89e47d95eef 100644 --- a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi +++ b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi @@ -156,7 +156,8 @@ uart1: serial@12200 { }; nb_periph_clk: nb-periph-clk@13000 { - compatible = "marvell,armada-3700-periph-clock-nb"; + compatible = "marvell,armada-3700-periph-clock-nb", + "syscon"; reg = <0x13000 0x100>; clocks = <&tbg 0>, <&tbg 1>, <&tbg 2>, <&tbg 3>, <&xtalclk>; diff --git a/arch/arm64/boot/dts/mediatek/mt8173.dtsi b/arch/arm64/boot/dts/mediatek/mt8173.dtsi index 5e046f9d48ce..592c6bc10dd1 100644 --- a/arch/arm64/boot/dts/mediatek/mt8173.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt8173.dtsi @@ -1169,7 +1169,7 @@ dsi1: dsi@1401c000 { <&mmsys CLK_MM_DSI1_DIGITAL>, <&mipi_tx1>; clock-names = "engine", "digital", "hs"; - phy = <&mipi_tx1>; + phys = <&mipi_tx1>; phy-names = "dphy"; status = "disabled"; }; diff --git a/arch/arm64/boot/dts/mediatek/pumpkin-common.dtsi b/arch/arm64/boot/dts/mediatek/pumpkin-common.dtsi index 29d8cf6df46b..99c2d6fd6304 100644 --- a/arch/arm64/boot/dts/mediatek/pumpkin-common.dtsi +++ b/arch/arm64/boot/dts/mediatek/pumpkin-common.dtsi @@ -56,7 +56,7 @@ &i2c0 { tca6416: gpio@20 { compatible = "ti,tca6416"; reg = <0x20>; - reset-gpios = <&pio 65 GPIO_ACTIVE_HIGH>; + reset-gpios = <&pio 65 GPIO_ACTIVE_LOW>; pinctrl-names = "default"; pinctrl-0 = <&tca6416_pins>; diff --git a/arch/arm64/boot/dts/qcom/sdm845-db845c.dts b/arch/arm64/boot/dts/qcom/sdm845-db845c.dts index c4ac6f5dc008..96d36b38f269 100644 --- a/arch/arm64/boot/dts/qcom/sdm845-db845c.dts +++ b/arch/arm64/boot/dts/qcom/sdm845-db845c.dts @@ -1015,7 +1015,7 @@ swm: swm@c85 { left_spkr: wsa8810-left{ compatible = "sdw10217201000"; reg = <0 1>; - powerdown-gpios = <&wcdgpio 2 GPIO_ACTIVE_HIGH>; + powerdown-gpios = <&wcdgpio 1 GPIO_ACTIVE_HIGH>; #thermal-sensor-cells = <0>; sound-name-prefix = "SpkrLeft"; #sound-dai-cells = <0>; @@ -1023,7 +1023,7 @@ left_spkr: wsa8810-left{ right_spkr: wsa8810-right{ compatible = "sdw10217201000"; - powerdown-gpios = <&wcdgpio 2 GPIO_ACTIVE_HIGH>; + powerdown-gpios = <&wcdgpio 1 GPIO_ACTIVE_HIGH>; reg = <0 2>; #thermal-sensor-cells = <0>; sound-name-prefix = "SpkrRight"; diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi b/arch/arm64/boot/dts/qcom/sdm845.dtsi index f97f354af86f..ea6e3a11e641 100644 --- a/arch/arm64/boot/dts/qcom/sdm845.dtsi +++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi @@ -2192,7 +2192,7 @@ tlmm: pinctrl@3400000 { #gpio-cells = <2>; interrupt-controller; #interrupt-cells = <2>; - gpio-ranges = <&tlmm 0 0 150>; + gpio-ranges = <&tlmm 0 0 151>; wakeup-parent = <&pdc_intc>; cci0_default: cci0-default { diff --git a/arch/arm64/boot/dts/qcom/sm8150.dtsi b/arch/arm64/boot/dts/qcom/sm8150.dtsi index f0a872e02686..1aec54590a11 100644 --- a/arch/arm64/boot/dts/qcom/sm8150.dtsi +++ b/arch/arm64/boot/dts/qcom/sm8150.dtsi @@ -748,7 +748,7 @@ tlmm: pinctrl@3100000 { <0x0 0x03D00000 0x0 0x300000>; reg-names = "west", "east", "north", "south"; interrupts = ; - gpio-ranges = <&tlmm 0 0 175>; + gpio-ranges = <&tlmm 0 0 176>; gpio-controller; #gpio-cells = <2>; interrupt-controller; diff --git a/arch/arm64/boot/dts/qcom/sm8250.dtsi b/arch/arm64/boot/dts/qcom/sm8250.dtsi index d057d85a19fb..d4547a192748 100644 --- a/arch/arm64/boot/dts/qcom/sm8250.dtsi +++ b/arch/arm64/boot/dts/qcom/sm8250.dtsi @@ -216,7 +216,7 @@ memory@80000000 { pmu { compatible = "arm,armv8-pmuv3"; - interrupts = ; + interrupts = ; }; psci { @@ -1555,7 +1555,7 @@ tlmm: pinctrl@f100000 { #gpio-cells = <2>; interrupt-controller; #interrupt-cells = <2>; - gpio-ranges = <&tlmm 0 0 180>; + gpio-ranges = <&tlmm 0 0 181>; wakeup-parent = <&pdc>; qup_i2c0_default: qup-i2c0-default { @@ -2379,7 +2379,7 @@ timer { (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, , - ; }; diff --git a/arch/arm64/boot/dts/renesas/hihope-common.dtsi b/arch/arm64/boot/dts/renesas/hihope-common.dtsi index 2eda9f66ae81..e8bf6f0c4c40 100644 --- a/arch/arm64/boot/dts/renesas/hihope-common.dtsi +++ b/arch/arm64/boot/dts/renesas/hihope-common.dtsi @@ -12,6 +12,9 @@ / { aliases { serial0 = &scif2; serial1 = &hscif0; + mmc0 = &sdhi3; + mmc1 = &sdhi0; + mmc2 = &sdhi2; }; chosen { diff --git a/arch/arm64/boot/dts/renesas/r8a774a1-beacon-rzg2m-kit.dts b/arch/arm64/boot/dts/renesas/r8a774a1-beacon-rzg2m-kit.dts index 2c5b057c30c6..ad26f5bf0648 100644 --- a/arch/arm64/boot/dts/renesas/r8a774a1-beacon-rzg2m-kit.dts +++ b/arch/arm64/boot/dts/renesas/r8a774a1-beacon-rzg2m-kit.dts @@ -21,6 +21,9 @@ aliases { serial4 = &hscif2; serial5 = &scif5; ethernet0 = &avb; + mmc0 = &sdhi3; + mmc1 = &sdhi0; + mmc2 = &sdhi2; }; chosen { diff --git a/arch/arm64/boot/dts/renesas/r8a774c0-cat874.dts b/arch/arm64/boot/dts/renesas/r8a774c0-cat874.dts index 26aee004a44e..c4b50a5e3d92 100644 --- a/arch/arm64/boot/dts/renesas/r8a774c0-cat874.dts +++ b/arch/arm64/boot/dts/renesas/r8a774c0-cat874.dts @@ -17,6 +17,8 @@ / { aliases { serial0 = &scif2; serial1 = &hscif2; + mmc0 = &sdhi0; + mmc1 = &sdhi3; }; chosen { diff --git a/arch/arm64/boot/dts/renesas/r8a77980.dtsi b/arch/arm64/boot/dts/renesas/r8a77980.dtsi index d6cae90d7fd9..e6ef837c4a3b 100644 --- a/arch/arm64/boot/dts/renesas/r8a77980.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a77980.dtsi @@ -990,8 +990,8 @@ port@1 { reg = <1>; - vin4csi41: endpoint@2 { - reg = <2>; + vin4csi41: endpoint@3 { + reg = <3>; remote-endpoint = <&csi41vin4>; }; }; @@ -1018,8 +1018,8 @@ port@1 { reg = <1>; - vin5csi41: endpoint@2 { - reg = <2>; + vin5csi41: endpoint@3 { + reg = <3>; remote-endpoint = <&csi41vin5>; }; }; @@ -1046,8 +1046,8 @@ port@1 { reg = <1>; - vin6csi41: endpoint@2 { - reg = <2>; + vin6csi41: endpoint@3 { + reg = <3>; remote-endpoint = <&csi41vin6>; }; }; @@ -1074,8 +1074,8 @@ port@1 { reg = <1>; - vin7csi41: endpoint@2 { - reg = <2>; + vin7csi41: endpoint@3 { + reg = <3>; remote-endpoint = <&csi41vin7>; }; }; diff --git a/arch/arm64/boot/dts/renesas/r8a77990-ebisu.dts b/arch/arm64/boot/dts/renesas/r8a77990-ebisu.dts index e0ccca2222d2..b9e3b6762ff4 100644 --- a/arch/arm64/boot/dts/renesas/r8a77990-ebisu.dts +++ b/arch/arm64/boot/dts/renesas/r8a77990-ebisu.dts @@ -16,6 +16,9 @@ / { aliases { serial0 = &scif2; ethernet0 = &avb; + mmc0 = &sdhi3; + mmc1 = &sdhi0; + mmc2 = &sdhi1; }; chosen { diff --git a/arch/arm64/boot/dts/renesas/r8a779a0.dtsi b/arch/arm64/boot/dts/renesas/r8a779a0.dtsi index 6cf77ce9aa93..86ec32a919d2 100644 --- a/arch/arm64/boot/dts/renesas/r8a779a0.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a779a0.dtsi @@ -50,10 +50,7 @@ extalr_clk: extalr { pmu_a76 { compatible = "arm,cortex-a76-pmu"; - interrupts-extended = <&gic GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>, - <&gic GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>, - <&gic GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>, - <&gic GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>; + interrupts-extended = <&gic GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>; }; /* External SCIF clock - to be overridden by boards that provide it */ diff --git a/arch/arm64/boot/dts/renesas/salvator-common.dtsi b/arch/arm64/boot/dts/renesas/salvator-common.dtsi index 1bf77957d2c2..08b8525bb725 100644 --- a/arch/arm64/boot/dts/renesas/salvator-common.dtsi +++ b/arch/arm64/boot/dts/renesas/salvator-common.dtsi @@ -36,6 +36,9 @@ aliases { serial0 = &scif2; serial1 = &hscif1; ethernet0 = &avb; + mmc0 = &sdhi2; + mmc1 = &sdhi0; + mmc2 = &sdhi3; }; chosen { diff --git a/arch/arm64/boot/dts/renesas/ulcb-kf.dtsi b/arch/arm64/boot/dts/renesas/ulcb-kf.dtsi index 202177706cde..05e64bfad023 100644 --- a/arch/arm64/boot/dts/renesas/ulcb-kf.dtsi +++ b/arch/arm64/boot/dts/renesas/ulcb-kf.dtsi @@ -16,6 +16,7 @@ / { aliases { serial1 = &hscif0; serial2 = &scif1; + mmc2 = &sdhi3; }; clksndsel: clksndsel { diff --git a/arch/arm64/boot/dts/renesas/ulcb.dtsi b/arch/arm64/boot/dts/renesas/ulcb.dtsi index a2e085db87c5..e11521b4b9ca 100644 --- a/arch/arm64/boot/dts/renesas/ulcb.dtsi +++ b/arch/arm64/boot/dts/renesas/ulcb.dtsi @@ -23,6 +23,8 @@ / { aliases { serial0 = &scif2; ethernet0 = &avb; + mmc0 = &sdhi2; + mmc1 = &sdhi0; }; chosen { diff --git a/arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi b/arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi index a87b8a678719..8f2c1c1e2c64 100644 --- a/arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi +++ b/arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi @@ -734,7 +734,7 @@ eth: ethernet@65000000 { clocks = <&sys_clk 6>; reset-names = "ether"; resets = <&sys_rst 6>; - phy-mode = "rgmii"; + phy-mode = "rgmii-id"; local-mac-address = [00 00 00 00 00 00]; socionext,syscon-phy-mode = <&soc_glue 0>; diff --git a/arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi b/arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi index 0e52dadf54b3..be97da132258 100644 --- a/arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi +++ b/arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi @@ -564,7 +564,7 @@ eth0: ethernet@65000000 { clocks = <&sys_clk 6>; reset-names = "ether"; resets = <&sys_rst 6>; - phy-mode = "rgmii"; + phy-mode = "rgmii-id"; local-mac-address = [00 00 00 00 00 00]; socionext,syscon-phy-mode = <&soc_glue 0>; @@ -585,7 +585,7 @@ eth1: ethernet@65200000 { clocks = <&sys_clk 7>; reset-names = "ether"; resets = <&sys_rst 7>; - phy-mode = "rgmii"; + phy-mode = "rgmii-id"; local-mac-address = [00 00 00 00 00 00]; socionext,syscon-phy-mode = <&soc_glue 1>; diff --git a/arch/arm64/configs/db845c_gki.fragment b/arch/arm64/configs/db845c_gki.fragment index 5f6a7f17b770..d487757cfa3c 100644 --- a/arch/arm64/configs/db845c_gki.fragment +++ b/arch/arm64/configs/db845c_gki.fragment @@ -13,6 +13,7 @@ CONFIG_PINCTRL_QCOM_SPMI_PMIC=m CONFIG_PINCTRL_SDM845=m CONFIG_POWER_RESET_QCOM_PON=m CONFIG_SYSCON_REBOOT_MODE=m +CONFIG_QCOM_TSENS=m CONFIG_QCOM_WDT=m CONFIG_PM8916_WATCHDOG=m CONFIG_MFD_SPMI_PMIC=m diff --git a/arch/arm64/configs/gki_defconfig b/arch/arm64/configs/gki_defconfig index cc19d872b1bc..69a9e94cf848 100644 --- a/arch/arm64/configs/gki_defconfig +++ b/arch/arm64/configs/gki_defconfig @@ -13,6 +13,7 @@ CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y CONFIG_IKHEADERS=y CONFIG_UCLAMP_TASK=y +CONFIG_UCLAMP_BUCKETS_COUNT=20 CONFIG_CGROUPS=y CONFIG_BLK_CGROUP=y CONFIG_CGROUP_SCHED=y @@ -43,6 +44,7 @@ CONFIG_SLAB_FREELIST_RANDOM=y CONFIG_SLAB_FREELIST_HARDENED=y CONFIG_SHUFFLE_PAGE_ALLOCATOR=y CONFIG_PROFILING=y +# CONFIG_ZONE_DMA is not set CONFIG_ARCH_SUNXI=y CONFIG_ARCH_HISI=y CONFIG_ARCH_QCOM=y @@ -65,6 +67,8 @@ CONFIG_PM_WAKELOCKS_LIMIT=0 # CONFIG_PM_WAKELOCKS_GC is not set CONFIG_ENERGY_MODEL=y CONFIG_CPU_IDLE=y +CONFIG_CPU_IDLE_GOV_MENU=y +CONFIG_CPU_IDLE_GOV_TEO=y CONFIG_ARM_CPUIDLE=y CONFIG_ARM_PSCI_CPUIDLE=y CONFIG_CPU_FREQ=y @@ -223,20 +227,32 @@ CONFIG_MAC802154=y CONFIG_NET_SCHED=y CONFIG_NET_SCH_HTB=y CONFIG_NET_SCH_PRIO=y +CONFIG_NET_SCH_MULTIQ=y +CONFIG_NET_SCH_SFQ=y CONFIG_NET_SCH_TBF=y +CONFIG_NET_SCH_NETEM=y +CONFIG_NET_SCH_CODEL=y +CONFIG_NET_SCH_FQ_CODEL=y CONFIG_NET_SCH_INGRESS=y CONFIG_NET_CLS_BASIC=y CONFIG_NET_CLS_TCINDEX=y CONFIG_NET_CLS_FW=y CONFIG_NET_CLS_U32=y +CONFIG_CLS_U32_MARK=y +CONFIG_NET_CLS_FLOW=y CONFIG_NET_CLS_BPF=y CONFIG_NET_CLS_MATCHALL=y CONFIG_NET_EMATCH=y +CONFIG_NET_EMATCH_CMP=y +CONFIG_NET_EMATCH_NBYTE=y CONFIG_NET_EMATCH_U32=y +CONFIG_NET_EMATCH_META=y +CONFIG_NET_EMATCH_TEXT=y CONFIG_NET_CLS_ACT=y CONFIG_NET_ACT_POLICE=y CONFIG_NET_ACT_GACT=y CONFIG_NET_ACT_MIRRED=y +CONFIG_NET_ACT_SKBEDIT=y CONFIG_VSOCKETS=y CONFIG_BPF_JIT=y CONFIG_BT=y @@ -256,6 +272,7 @@ CONFIG_MAC80211=y CONFIG_RFKILL=y CONFIG_PCI=y CONFIG_PCIEPORTBUS=y +CONFIG_PCIEAER=y CONFIG_PCI_HOST_GENERIC=y CONFIG_PCIE_DW_PLAT_EP=y CONFIG_PCIE_QCOM=y @@ -304,10 +321,12 @@ CONFIG_PPP_DEFLATE=y CONFIG_PPP_MPPE=y CONFIG_PPTP=y CONFIG_PPPOL2TP=y +CONFIG_USB_RTL8150=y CONFIG_USB_RTL8152=y CONFIG_USB_USBNET=y # CONFIG_USB_NET_AX8817X is not set # CONFIG_USB_NET_AX88179_178A is not set +CONFIG_USB_NET_CDC_EEM=y # CONFIG_USB_NET_NET1080 is not set # CONFIG_USB_NET_CDC_SUBSET is not set # CONFIG_USB_NET_ZAURUS is not set @@ -333,6 +352,8 @@ CONFIG_KEYBOARD_GPIO=y # CONFIG_MOUSE_PS2 is not set CONFIG_INPUT_JOYSTICK=y CONFIG_JOYSTICK_XPAD=y +CONFIG_JOYSTICK_XPAD_FF=y +CONFIG_JOYSTICK_XPAD_LEDS=y CONFIG_INPUT_TOUCHSCREEN=y CONFIG_INPUT_MISC=y CONFIG_INPUT_UINPUT=y @@ -359,6 +380,7 @@ CONFIG_HW_RANDOM=y # CONFIG_DEVPORT is not set # CONFIG_I2C_COMPAT is not set # CONFIG_I2C_HELPER_AUTO is not set +CONFIG_I3C=y CONFIG_SPI=y CONFIG_SPMI=y # CONFIG_SPMI_MSM_PMIC_ARB is not set @@ -422,6 +444,7 @@ CONFIG_HID_BATTERY_STRENGTH=y CONFIG_HIDRAW=y CONFIG_UHID=y CONFIG_HID_APPLE=y +CONFIG_HID_BETOP_FF=y CONFIG_HID_PRODIKEYS=y CONFIG_HID_ELECOM=y CONFIG_HID_UCLOGIC=y @@ -458,11 +481,14 @@ CONFIG_USB_CONFIGFS_UEVENT=y CONFIG_USB_CONFIGFS_SERIAL=y CONFIG_USB_CONFIGFS_ACM=y CONFIG_USB_CONFIGFS_NCM=y +CONFIG_USB_CONFIGFS_ECM=y CONFIG_USB_CONFIGFS_RNDIS=y +CONFIG_USB_CONFIGFS_EEM=y CONFIG_USB_CONFIGFS_MASS_STORAGE=y CONFIG_USB_CONFIGFS_F_FS=y CONFIG_USB_CONFIGFS_F_ACC=y CONFIG_USB_CONFIGFS_F_AUDIO_SRC=y +CONFIG_USB_CONFIGFS_F_UAC2=y CONFIG_USB_CONFIGFS_F_MIDI=y CONFIG_USB_CONFIGFS_F_HID=y CONFIG_TYPEC=y @@ -497,8 +523,10 @@ CONFIG_COMMON_CLK_SCPI=y CONFIG_HWSPINLOCK=y CONFIG_SUN4I_TIMER=y # CONFIG_SUN50I_ERRATUM_UNKNOWN1 is not set +CONFIG_MTK_TIMER=y CONFIG_MAILBOX=y CONFIG_IOMMU_LIMIT_IOVA_ALIGNMENT=y +CONFIG_IOMMU_IO_PGTABLE_ARMV7S=y CONFIG_REMOTEPROC=y CONFIG_REMOTEPROC_CDEV=y CONFIG_RPMSG_CHAR=y @@ -514,7 +542,6 @@ CONFIG_PWM=y CONFIG_GENERIC_PHY=y CONFIG_POWERCAP=y CONFIG_DTPM=y -CONFIG_RAS=y CONFIG_ANDROID=y CONFIG_ANDROID_BINDER_IPC=y CONFIG_ANDROID_BINDERFS=y @@ -542,12 +569,14 @@ CONFIG_OVERLAY_FS=y CONFIG_INCREMENTAL_FS=y CONFIG_MSDOS_FS=y CONFIG_VFAT_FS=y +CONFIG_EXFAT_FS=y CONFIG_TMPFS=y # CONFIG_EFIVAR_FS is not set CONFIG_PSTORE=y CONFIG_PSTORE_CONSOLE=y CONFIG_PSTORE_PMSG=y CONFIG_PSTORE_RAM=y +CONFIG_EROFS_FS=y CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_CODEPAGE_737=y CONFIG_NLS_CODEPAGE_775=y @@ -635,6 +664,7 @@ CONFIG_UBSAN_TRAP=y CONFIG_UBSAN_LOCAL_BOUNDS=y # CONFIG_UBSAN_MISC is not set CONFIG_PAGE_OWNER=y +CONFIG_PAGE_PINNER=y CONFIG_DEBUG_STACK_USAGE=y CONFIG_DEBUG_MEMORY_INIT=y CONFIG_KASAN=y @@ -651,6 +681,5 @@ CONFIG_SCHEDSTATS=y CONFIG_BUG_ON_DATA_CORRUPTION=y CONFIG_TRACE_MMIO_ACCESS=y CONFIG_TRACEFS_DISABLE_AUTOMOUNT=y -CONFIG_KUNIT=y -CONFIG_KUNIT_DEBUGFS=y +CONFIG_HIST_TRIGGERS=y # CONFIG_RUNTIME_TESTING_MENU is not set diff --git a/arch/arm64/crypto/Kconfig b/arch/arm64/crypto/Kconfig index b8eb0453123d..454621a20eaa 100644 --- a/arch/arm64/crypto/Kconfig +++ b/arch/arm64/crypto/Kconfig @@ -88,16 +88,12 @@ config CRYPTO_AES_ARM64_CE_BLK depends on KERNEL_MODE_NEON select CRYPTO_SKCIPHER select CRYPTO_AES_ARM64_CE - select CRYPTO_AES_ARM64 - select CRYPTO_SIMD config CRYPTO_AES_ARM64_NEON_BLK tristate "AES in ECB/CBC/CTR/XTS modes using NEON instructions" depends on KERNEL_MODE_NEON select CRYPTO_SKCIPHER - select CRYPTO_AES_ARM64 select CRYPTO_LIB_AES - select CRYPTO_SIMD config CRYPTO_CHACHA20_NEON tristate "ChaCha20, XChaCha20, and XChaCha12 stream ciphers using NEON instructions" @@ -122,8 +118,6 @@ config CRYPTO_AES_ARM64_BS depends on KERNEL_MODE_NEON select CRYPTO_SKCIPHER select CRYPTO_AES_ARM64_NEON_BLK - select CRYPTO_AES_ARM64 select CRYPTO_LIB_AES - select CRYPTO_SIMD endif diff --git a/arch/arm64/crypto/aes-glue.c b/arch/arm64/crypto/aes-glue.c index 53c92e060c3d..326364c3ab5c 100644 --- a/arch/arm64/crypto/aes-glue.c +++ b/arch/arm64/crypto/aes-glue.c @@ -103,9 +103,9 @@ asmlinkage void aes_essiv_cbc_decrypt(u8 out[], u8 const in[], u32 const rk1[], int rounds, int blocks, u8 iv[], u32 const rk2[]); -asmlinkage void aes_mac_update(u8 const in[], u32 const rk[], int rounds, - int blocks, u8 dg[], int enc_before, - int enc_after); +asmlinkage int aes_mac_update(u8 const in[], u32 const rk[], int rounds, + int blocks, u8 dg[], int enc_before, + int enc_after); struct crypto_aes_xts_ctx { struct crypto_aes_ctx key1; @@ -442,7 +442,7 @@ static int __maybe_unused essiv_cbc_decrypt(struct skcipher_request *req) return err ?: cbc_decrypt_walk(req, &walk); } -static int ctr_encrypt(struct skcipher_request *req) +static int __maybe_unused ctr_encrypt(struct skcipher_request *req) { struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req); struct crypto_aes_ctx *ctx = crypto_skcipher_ctx(tfm); @@ -481,29 +481,6 @@ static int ctr_encrypt(struct skcipher_request *req) return err; } -static void ctr_encrypt_one(struct crypto_skcipher *tfm, const u8 *src, u8 *dst) -{ - const struct crypto_aes_ctx *ctx = crypto_skcipher_ctx(tfm); - unsigned long flags; - - /* - * Temporarily disable interrupts to avoid races where - * cachelines are evicted when the CPU is interrupted - * to do something else. - */ - local_irq_save(flags); - aes_encrypt(ctx, dst, src); - local_irq_restore(flags); -} - -static int __maybe_unused ctr_encrypt_sync(struct skcipher_request *req) -{ - if (!crypto_simd_usable()) - return crypto_ctr_encrypt_walk(req, ctr_encrypt_one); - - return ctr_encrypt(req); -} - static int __maybe_unused xts_encrypt(struct skcipher_request *req) { struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req); @@ -652,10 +629,9 @@ static int __maybe_unused xts_decrypt(struct skcipher_request *req) static struct skcipher_alg aes_algs[] = { { #if defined(USE_V8_CRYPTO_EXTENSIONS) || !IS_ENABLED(CONFIG_CRYPTO_AES_ARM64_BS) .base = { - .cra_name = "__ecb(aes)", - .cra_driver_name = "__ecb-aes-" MODE, + .cra_name = "ecb(aes)", + .cra_driver_name = "ecb-aes-" MODE, .cra_priority = PRIO, - .cra_flags = CRYPTO_ALG_INTERNAL, .cra_blocksize = AES_BLOCK_SIZE, .cra_ctxsize = sizeof(struct crypto_aes_ctx), .cra_module = THIS_MODULE, @@ -667,10 +643,9 @@ static struct skcipher_alg aes_algs[] = { { .decrypt = ecb_decrypt, }, { .base = { - .cra_name = "__cbc(aes)", - .cra_driver_name = "__cbc-aes-" MODE, + .cra_name = "cbc(aes)", + .cra_driver_name = "cbc-aes-" MODE, .cra_priority = PRIO, - .cra_flags = CRYPTO_ALG_INTERNAL, .cra_blocksize = AES_BLOCK_SIZE, .cra_ctxsize = sizeof(struct crypto_aes_ctx), .cra_module = THIS_MODULE, @@ -683,10 +658,9 @@ static struct skcipher_alg aes_algs[] = { { .decrypt = cbc_decrypt, }, { .base = { - .cra_name = "__ctr(aes)", - .cra_driver_name = "__ctr-aes-" MODE, + .cra_name = "ctr(aes)", + .cra_driver_name = "ctr-aes-" MODE, .cra_priority = PRIO, - .cra_flags = CRYPTO_ALG_INTERNAL, .cra_blocksize = 1, .cra_ctxsize = sizeof(struct crypto_aes_ctx), .cra_module = THIS_MODULE, @@ -700,26 +674,9 @@ static struct skcipher_alg aes_algs[] = { { .decrypt = ctr_encrypt, }, { .base = { - .cra_name = "ctr(aes)", - .cra_driver_name = "ctr-aes-" MODE, - .cra_priority = PRIO - 1, - .cra_blocksize = 1, - .cra_ctxsize = sizeof(struct crypto_aes_ctx), - .cra_module = THIS_MODULE, - }, - .min_keysize = AES_MIN_KEY_SIZE, - .max_keysize = AES_MAX_KEY_SIZE, - .ivsize = AES_BLOCK_SIZE, - .chunksize = AES_BLOCK_SIZE, - .setkey = skcipher_aes_setkey, - .encrypt = ctr_encrypt_sync, - .decrypt = ctr_encrypt_sync, -}, { - .base = { - .cra_name = "__xts(aes)", - .cra_driver_name = "__xts-aes-" MODE, + .cra_name = "xts(aes)", + .cra_driver_name = "xts-aes-" MODE, .cra_priority = PRIO, - .cra_flags = CRYPTO_ALG_INTERNAL, .cra_blocksize = AES_BLOCK_SIZE, .cra_ctxsize = sizeof(struct crypto_aes_xts_ctx), .cra_module = THIS_MODULE, @@ -734,10 +691,9 @@ static struct skcipher_alg aes_algs[] = { { }, { #endif .base = { - .cra_name = "__cts(cbc(aes))", - .cra_driver_name = "__cts-cbc-aes-" MODE, + .cra_name = "cts(cbc(aes))", + .cra_driver_name = "cts-cbc-aes-" MODE, .cra_priority = PRIO, - .cra_flags = CRYPTO_ALG_INTERNAL, .cra_blocksize = AES_BLOCK_SIZE, .cra_ctxsize = sizeof(struct crypto_aes_ctx), .cra_module = THIS_MODULE, @@ -751,10 +707,9 @@ static struct skcipher_alg aes_algs[] = { { .decrypt = cts_cbc_decrypt, }, { .base = { - .cra_name = "__essiv(cbc(aes),sha256)", - .cra_driver_name = "__essiv-cbc-aes-sha256-" MODE, + .cra_name = "essiv(cbc(aes),sha256)", + .cra_driver_name = "essiv-cbc-aes-sha256-" MODE, .cra_priority = PRIO + 1, - .cra_flags = CRYPTO_ALG_INTERNAL, .cra_blocksize = AES_BLOCK_SIZE, .cra_ctxsize = sizeof(struct crypto_aes_essiv_cbc_ctx), .cra_module = THIS_MODULE, @@ -852,10 +807,17 @@ static void mac_do_update(struct crypto_aes_ctx *ctx, u8 const in[], int blocks, int rounds = 6 + ctx->key_length / 4; if (crypto_simd_usable()) { - kernel_neon_begin(); - aes_mac_update(in, ctx->key_enc, rounds, blocks, dg, enc_before, - enc_after); - kernel_neon_end(); + int rem; + + do { + kernel_neon_begin(); + rem = aes_mac_update(in, ctx->key_enc, rounds, blocks, + dg, enc_before, enc_after); + kernel_neon_end(); + in += (blocks - rem) * AES_BLOCK_SIZE; + blocks = rem; + enc_before = 0; + } while (blocks); } else { if (enc_before) aes_encrypt(ctx, dg, dg); @@ -986,28 +948,15 @@ static struct shash_alg mac_algs[] = { { .descsize = sizeof(struct mac_desc_ctx), } }; -static struct simd_skcipher_alg *aes_simd_algs[ARRAY_SIZE(aes_algs)]; - static void aes_exit(void) { - int i; - - for (i = 0; i < ARRAY_SIZE(aes_simd_algs); i++) - if (aes_simd_algs[i]) - simd_skcipher_free(aes_simd_algs[i]); - crypto_unregister_shashes(mac_algs, ARRAY_SIZE(mac_algs)); crypto_unregister_skciphers(aes_algs, ARRAY_SIZE(aes_algs)); } static int __init aes_init(void) { - struct simd_skcipher_alg *simd; - const char *basename; - const char *algname; - const char *drvname; int err; - int i; err = crypto_register_skciphers(aes_algs, ARRAY_SIZE(aes_algs)); if (err) @@ -1017,26 +966,8 @@ static int __init aes_init(void) if (err) goto unregister_ciphers; - for (i = 0; i < ARRAY_SIZE(aes_algs); i++) { - if (!(aes_algs[i].base.cra_flags & CRYPTO_ALG_INTERNAL)) - continue; - - algname = aes_algs[i].base.cra_name + 2; - drvname = aes_algs[i].base.cra_driver_name + 2; - basename = aes_algs[i].base.cra_driver_name; - simd = simd_skcipher_create_compat(algname, drvname, basename); - err = PTR_ERR(simd); - if (IS_ERR(simd)) - goto unregister_simds; - - aes_simd_algs[i] = simd; - } - return 0; -unregister_simds: - aes_exit(); - return err; unregister_ciphers: crypto_unregister_skciphers(aes_algs, ARRAY_SIZE(aes_algs)); return err; diff --git a/arch/arm64/crypto/aes-modes.S b/arch/arm64/crypto/aes-modes.S index cf618d8f6cec..503d9b31795c 100644 --- a/arch/arm64/crypto/aes-modes.S +++ b/arch/arm64/crypto/aes-modes.S @@ -619,61 +619,47 @@ AES_FUNC_END(aes_xts_decrypt) * int blocks, u8 dg[], int enc_before, int enc_after) */ AES_FUNC_START(aes_mac_update) - frame_push 6 - - mov x19, x0 - mov x20, x1 - mov x21, x2 - mov x22, x3 - mov x23, x4 - mov x24, x6 - - ld1 {v0.16b}, [x23] /* get dg */ + ld1 {v0.16b}, [x4] /* get dg */ enc_prepare w2, x1, x7 cbz w5, .Lmacloop4x encrypt_block v0, w2, x1, x7, w8 .Lmacloop4x: - subs w22, w22, #4 + subs w3, w3, #4 bmi .Lmac1x - ld1 {v1.16b-v4.16b}, [x19], #64 /* get next pt block */ + ld1 {v1.16b-v4.16b}, [x0], #64 /* get next pt block */ eor v0.16b, v0.16b, v1.16b /* ..and xor with dg */ - encrypt_block v0, w21, x20, x7, w8 + encrypt_block v0, w2, x1, x7, w8 eor v0.16b, v0.16b, v2.16b - encrypt_block v0, w21, x20, x7, w8 + encrypt_block v0, w2, x1, x7, w8 eor v0.16b, v0.16b, v3.16b - encrypt_block v0, w21, x20, x7, w8 + encrypt_block v0, w2, x1, x7, w8 eor v0.16b, v0.16b, v4.16b - cmp w22, wzr - csinv x5, x24, xzr, eq + cmp w3, wzr + csinv x5, x6, xzr, eq cbz w5, .Lmacout - encrypt_block v0, w21, x20, x7, w8 - st1 {v0.16b}, [x23] /* return dg */ - cond_yield_neon .Lmacrestart + encrypt_block v0, w2, x1, x7, w8 + st1 {v0.16b}, [x4] /* return dg */ + cond_yield .Lmacout, x7, x8 b .Lmacloop4x .Lmac1x: - add w22, w22, #4 + add w3, w3, #4 .Lmacloop: - cbz w22, .Lmacout - ld1 {v1.16b}, [x19], #16 /* get next pt block */ + cbz w3, .Lmacout + ld1 {v1.16b}, [x0], #16 /* get next pt block */ eor v0.16b, v0.16b, v1.16b /* ..and xor with dg */ - subs w22, w22, #1 - csinv x5, x24, xzr, eq + subs w3, w3, #1 + csinv x5, x6, xzr, eq cbz w5, .Lmacout .Lmacenc: - encrypt_block v0, w21, x20, x7, w8 + encrypt_block v0, w2, x1, x7, w8 b .Lmacloop .Lmacout: - st1 {v0.16b}, [x23] /* return dg */ - frame_pop + st1 {v0.16b}, [x4] /* return dg */ + mov w0, w3 ret - -.Lmacrestart: - ld1 {v0.16b}, [x23] /* get dg */ - enc_prepare w21, x20, x0 - b .Lmacloop4x AES_FUNC_END(aes_mac_update) diff --git a/arch/arm64/crypto/aes-neonbs-core.S b/arch/arm64/crypto/aes-neonbs-core.S index 63a52ad9a75c..a3405b8c344b 100644 --- a/arch/arm64/crypto/aes-neonbs-core.S +++ b/arch/arm64/crypto/aes-neonbs-core.S @@ -613,7 +613,6 @@ SYM_FUNC_END(aesbs_decrypt8) st1 {\o7\().16b}, [x19], #16 cbz x23, 1f - cond_yield_neon b 99b 1: frame_pop @@ -715,7 +714,6 @@ SYM_FUNC_START(aesbs_cbc_decrypt) 1: st1 {v24.16b}, [x24] // store IV cbz x23, 2f - cond_yield_neon b 99b 2: frame_pop @@ -801,7 +799,7 @@ SYM_FUNC_END(__xts_crypt8) mov x23, x4 mov x24, x5 -0: movi v30.2s, #0x1 + movi v30.2s, #0x1 movi v25.2s, #0x87 uzp1 v30.4s, v30.4s, v25.4s ld1 {v25.16b}, [x24] @@ -846,7 +844,6 @@ SYM_FUNC_END(__xts_crypt8) cbz x23, 1f st1 {v25.16b}, [x24] - cond_yield_neon 0b b 99b 1: st1 {v25.16b}, [x24] @@ -889,7 +886,7 @@ SYM_FUNC_START(aesbs_ctr_encrypt) cset x26, ne add x23, x23, x26 // do one extra block if final -98: ldp x7, x8, [x24] + ldp x7, x8, [x24] ld1 {v0.16b}, [x24] CPU_LE( rev x7, x7 ) CPU_LE( rev x8, x8 ) @@ -967,7 +964,6 @@ CPU_LE( rev x8, x8 ) st1 {v0.16b}, [x24] cbz x23, .Lctr_done - cond_yield_neon 98b b 99b .Lctr_done: diff --git a/arch/arm64/crypto/aes-neonbs-glue.c b/arch/arm64/crypto/aes-neonbs-glue.c index fb507d569922..8df6ad8cb09d 100644 --- a/arch/arm64/crypto/aes-neonbs-glue.c +++ b/arch/arm64/crypto/aes-neonbs-glue.c @@ -63,11 +63,6 @@ struct aesbs_cbc_ctx { u32 enc[AES_MAX_KEYLENGTH_U32]; }; -struct aesbs_ctr_ctx { - struct aesbs_ctx key; /* must be first member */ - struct crypto_aes_ctx fallback; -}; - struct aesbs_xts_ctx { struct aesbs_ctx key; u32 twkey[AES_MAX_KEYLENGTH_U32]; @@ -207,25 +202,6 @@ static int cbc_decrypt(struct skcipher_request *req) return err; } -static int aesbs_ctr_setkey_sync(struct crypto_skcipher *tfm, const u8 *in_key, - unsigned int key_len) -{ - struct aesbs_ctr_ctx *ctx = crypto_skcipher_ctx(tfm); - int err; - - err = aes_expandkey(&ctx->fallback, in_key, key_len); - if (err) - return err; - - ctx->key.rounds = 6 + key_len / 4; - - kernel_neon_begin(); - aesbs_convert_key(ctx->key.rk, ctx->fallback.key_enc, ctx->key.rounds); - kernel_neon_end(); - - return 0; -} - static int ctr_encrypt(struct skcipher_request *req) { struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req); @@ -292,29 +268,6 @@ static int aesbs_xts_setkey(struct crypto_skcipher *tfm, const u8 *in_key, return aesbs_setkey(tfm, in_key, key_len); } -static void ctr_encrypt_one(struct crypto_skcipher *tfm, const u8 *src, u8 *dst) -{ - struct aesbs_ctr_ctx *ctx = crypto_skcipher_ctx(tfm); - unsigned long flags; - - /* - * Temporarily disable interrupts to avoid races where - * cachelines are evicted when the CPU is interrupted - * to do something else. - */ - local_irq_save(flags); - aes_encrypt(&ctx->fallback, dst, src); - local_irq_restore(flags); -} - -static int ctr_encrypt_sync(struct skcipher_request *req) -{ - if (!crypto_simd_usable()) - return crypto_ctr_encrypt_walk(req, ctr_encrypt_one); - - return ctr_encrypt(req); -} - static int __xts_crypt(struct skcipher_request *req, bool encrypt, void (*fn)(u8 out[], u8 const in[], u8 const rk[], int rounds, int blocks, u8 iv[])) @@ -431,13 +384,12 @@ static int xts_decrypt(struct skcipher_request *req) } static struct skcipher_alg aes_algs[] = { { - .base.cra_name = "__ecb(aes)", - .base.cra_driver_name = "__ecb-aes-neonbs", + .base.cra_name = "ecb(aes)", + .base.cra_driver_name = "ecb-aes-neonbs", .base.cra_priority = 250, .base.cra_blocksize = AES_BLOCK_SIZE, .base.cra_ctxsize = sizeof(struct aesbs_ctx), .base.cra_module = THIS_MODULE, - .base.cra_flags = CRYPTO_ALG_INTERNAL, .min_keysize = AES_MIN_KEY_SIZE, .max_keysize = AES_MAX_KEY_SIZE, @@ -446,13 +398,12 @@ static struct skcipher_alg aes_algs[] = { { .encrypt = ecb_encrypt, .decrypt = ecb_decrypt, }, { - .base.cra_name = "__cbc(aes)", - .base.cra_driver_name = "__cbc-aes-neonbs", + .base.cra_name = "cbc(aes)", + .base.cra_driver_name = "cbc-aes-neonbs", .base.cra_priority = 250, .base.cra_blocksize = AES_BLOCK_SIZE, .base.cra_ctxsize = sizeof(struct aesbs_cbc_ctx), .base.cra_module = THIS_MODULE, - .base.cra_flags = CRYPTO_ALG_INTERNAL, .min_keysize = AES_MIN_KEY_SIZE, .max_keysize = AES_MAX_KEY_SIZE, @@ -462,13 +413,12 @@ static struct skcipher_alg aes_algs[] = { { .encrypt = cbc_encrypt, .decrypt = cbc_decrypt, }, { - .base.cra_name = "__ctr(aes)", - .base.cra_driver_name = "__ctr-aes-neonbs", + .base.cra_name = "ctr(aes)", + .base.cra_driver_name = "ctr-aes-neonbs", .base.cra_priority = 250, .base.cra_blocksize = 1, .base.cra_ctxsize = sizeof(struct aesbs_ctx), .base.cra_module = THIS_MODULE, - .base.cra_flags = CRYPTO_ALG_INTERNAL, .min_keysize = AES_MIN_KEY_SIZE, .max_keysize = AES_MAX_KEY_SIZE, @@ -479,29 +429,12 @@ static struct skcipher_alg aes_algs[] = { { .encrypt = ctr_encrypt, .decrypt = ctr_encrypt, }, { - .base.cra_name = "ctr(aes)", - .base.cra_driver_name = "ctr-aes-neonbs", - .base.cra_priority = 250 - 1, - .base.cra_blocksize = 1, - .base.cra_ctxsize = sizeof(struct aesbs_ctr_ctx), - .base.cra_module = THIS_MODULE, - - .min_keysize = AES_MIN_KEY_SIZE, - .max_keysize = AES_MAX_KEY_SIZE, - .chunksize = AES_BLOCK_SIZE, - .walksize = 8 * AES_BLOCK_SIZE, - .ivsize = AES_BLOCK_SIZE, - .setkey = aesbs_ctr_setkey_sync, - .encrypt = ctr_encrypt_sync, - .decrypt = ctr_encrypt_sync, -}, { - .base.cra_name = "__xts(aes)", - .base.cra_driver_name = "__xts-aes-neonbs", + .base.cra_name = "xts(aes)", + .base.cra_driver_name = "xts-aes-neonbs", .base.cra_priority = 250, .base.cra_blocksize = AES_BLOCK_SIZE, .base.cra_ctxsize = sizeof(struct aesbs_xts_ctx), .base.cra_module = THIS_MODULE, - .base.cra_flags = CRYPTO_ALG_INTERNAL, .min_keysize = 2 * AES_MIN_KEY_SIZE, .max_keysize = 2 * AES_MAX_KEY_SIZE, @@ -512,54 +445,17 @@ static struct skcipher_alg aes_algs[] = { { .decrypt = xts_decrypt, } }; -static struct simd_skcipher_alg *aes_simd_algs[ARRAY_SIZE(aes_algs)]; - static void aes_exit(void) { - int i; - - for (i = 0; i < ARRAY_SIZE(aes_simd_algs); i++) - if (aes_simd_algs[i]) - simd_skcipher_free(aes_simd_algs[i]); - crypto_unregister_skciphers(aes_algs, ARRAY_SIZE(aes_algs)); } static int __init aes_init(void) { - struct simd_skcipher_alg *simd; - const char *basename; - const char *algname; - const char *drvname; - int err; - int i; - if (!cpu_have_named_feature(ASIMD)) return -ENODEV; - err = crypto_register_skciphers(aes_algs, ARRAY_SIZE(aes_algs)); - if (err) - return err; - - for (i = 0; i < ARRAY_SIZE(aes_algs); i++) { - if (!(aes_algs[i].base.cra_flags & CRYPTO_ALG_INTERNAL)) - continue; - - algname = aes_algs[i].base.cra_name + 2; - drvname = aes_algs[i].base.cra_driver_name + 2; - basename = aes_algs[i].base.cra_driver_name; - simd = simd_skcipher_create_compat(algname, drvname, basename); - err = PTR_ERR(simd); - if (IS_ERR(simd)) - goto unregister_simds; - - aes_simd_algs[i] = simd; - } - return 0; - -unregister_simds: - aes_exit(); - return err; + return crypto_register_skciphers(aes_algs, ARRAY_SIZE(aes_algs)); } module_init(aes_init); diff --git a/arch/arm64/crypto/crct10dif-ce-core.S b/arch/arm64/crypto/crct10dif-ce-core.S index 111d9c9abddd..dce6dcebfca1 100644 --- a/arch/arm64/crypto/crct10dif-ce-core.S +++ b/arch/arm64/crypto/crct10dif-ce-core.S @@ -68,10 +68,10 @@ .text .arch armv8-a+crypto - init_crc .req w19 - buf .req x20 - len .req x21 - fold_consts_ptr .req x22 + init_crc .req w0 + buf .req x1 + len .req x2 + fold_consts_ptr .req x3 fold_consts .req v10 @@ -257,12 +257,6 @@ CPU_LE( ext v12.16b, v12.16b, v12.16b, #8 ) .endm .macro crc_t10dif_pmull, p - frame_push 4, 128 - - mov init_crc, w0 - mov buf, x1 - mov len, x2 - __pmull_init_\p // For sizes less than 256 bytes, we can't fold 128 bytes at a time. @@ -317,26 +311,7 @@ CPU_LE( ext v7.16b, v7.16b, v7.16b, #8 ) fold_32_bytes \p, v6, v7 subs len, len, #128 - b.lt .Lfold_128_bytes_loop_done_\@ - - if_will_cond_yield_neon - stp q0, q1, [sp, #.Lframe_local_offset] - stp q2, q3, [sp, #.Lframe_local_offset + 32] - stp q4, q5, [sp, #.Lframe_local_offset + 64] - stp q6, q7, [sp, #.Lframe_local_offset + 96] - do_cond_yield_neon - ldp q0, q1, [sp, #.Lframe_local_offset] - ldp q2, q3, [sp, #.Lframe_local_offset + 32] - ldp q4, q5, [sp, #.Lframe_local_offset + 64] - ldp q6, q7, [sp, #.Lframe_local_offset + 96] - ld1 {fold_consts.2d}, [fold_consts_ptr] - __pmull_init_\p - __pmull_pre_\p fold_consts - endif_yield_neon - - b .Lfold_128_bytes_loop_\@ - -.Lfold_128_bytes_loop_done_\@: + b.ge .Lfold_128_bytes_loop_\@ // Now fold the 112 bytes in v0-v6 into the 16 bytes in v7. @@ -453,7 +428,9 @@ CPU_LE( ext v0.16b, v0.16b, v0.16b, #8 ) // Final CRC value (x^16 * M(x)) mod G(x) is in low 16 bits of v0. umov w0, v0.h[0] - frame_pop + .ifc \p, p8 + ldp x29, x30, [sp], #16 + .endif ret .Lless_than_256_bytes_\@: @@ -489,7 +466,9 @@ CPU_LE( ext v7.16b, v7.16b, v7.16b, #8 ) // Assumes len >= 16. // SYM_FUNC_START(crc_t10dif_pmull_p8) - crc_t10dif_pmull p8 + stp x29, x30, [sp, #-16]! + mov x29, sp + crc_t10dif_pmull p8 SYM_FUNC_END(crc_t10dif_pmull_p8) .align 5 diff --git a/arch/arm64/crypto/crct10dif-ce-glue.c b/arch/arm64/crypto/crct10dif-ce-glue.c index ccc3f6067742..09eb1456aed4 100644 --- a/arch/arm64/crypto/crct10dif-ce-glue.c +++ b/arch/arm64/crypto/crct10dif-ce-glue.c @@ -37,9 +37,18 @@ static int crct10dif_update_pmull_p8(struct shash_desc *desc, const u8 *data, u16 *crc = shash_desc_ctx(desc); if (length >= CRC_T10DIF_PMULL_CHUNK_SIZE && crypto_simd_usable()) { - kernel_neon_begin(); - *crc = crc_t10dif_pmull_p8(*crc, data, length); - kernel_neon_end(); + do { + unsigned int chunk = length; + + if (chunk > SZ_4K + CRC_T10DIF_PMULL_CHUNK_SIZE) + chunk = SZ_4K; + + kernel_neon_begin(); + *crc = crc_t10dif_pmull_p8(*crc, data, chunk); + kernel_neon_end(); + data += chunk; + length -= chunk; + } while (length); } else { *crc = crc_t10dif_generic(*crc, data, length); } @@ -53,9 +62,18 @@ static int crct10dif_update_pmull_p64(struct shash_desc *desc, const u8 *data, u16 *crc = shash_desc_ctx(desc); if (length >= CRC_T10DIF_PMULL_CHUNK_SIZE && crypto_simd_usable()) { - kernel_neon_begin(); - *crc = crc_t10dif_pmull_p64(*crc, data, length); - kernel_neon_end(); + do { + unsigned int chunk = length; + + if (chunk > SZ_4K + CRC_T10DIF_PMULL_CHUNK_SIZE) + chunk = SZ_4K; + + kernel_neon_begin(); + *crc = crc_t10dif_pmull_p64(*crc, data, chunk); + kernel_neon_end(); + data += chunk; + length -= chunk; + } while (length); } else { *crc = crc_t10dif_generic(*crc, data, length); } diff --git a/arch/arm64/crypto/ghash-ce-core.S b/arch/arm64/crypto/ghash-ce-core.S index 6b958dcdf136..7868330dd54e 100644 --- a/arch/arm64/crypto/ghash-ce-core.S +++ b/arch/arm64/crypto/ghash-ce-core.S @@ -544,7 +544,22 @@ CPU_LE( rev w8, w8 ) ext XL.16b, XL.16b, XL.16b, #8 rev64 XL.16b, XL.16b eor XL.16b, XL.16b, KS0.16b + + .if \enc == 1 st1 {XL.16b}, [x10] // store tag + .else + ldp x11, x12, [sp, #40] // load tag pointer and authsize + adr_l x17, .Lpermute_table + ld1 {KS0.16b}, [x11] // load supplied tag + add x17, x17, x12 + ld1 {KS1.16b}, [x17] // load permute vector + + cmeq XL.16b, XL.16b, KS0.16b // compare tags + mvn XL.16b, XL.16b // -1 for fail, 0 for pass + tbl XL.16b, {XL.16b}, KS1.16b // keep authsize bytes only + sminv b0, XL.16b // signed minimum across XL + smov w0, v0.b[0] // return b0 + .endif 4: ldp x29, x30, [sp], #32 ret diff --git a/arch/arm64/crypto/ghash-ce-glue.c b/arch/arm64/crypto/ghash-ce-glue.c index 8536008e3e35..184602a97454 100644 --- a/arch/arm64/crypto/ghash-ce-glue.c +++ b/arch/arm64/crypto/ghash-ce-glue.c @@ -55,10 +55,10 @@ asmlinkage void pmull_ghash_update_p8(int blocks, u64 dg[], const char *src, asmlinkage void pmull_gcm_encrypt(int bytes, u8 dst[], const u8 src[], u64 const h[][2], u64 dg[], u8 ctr[], u32 const rk[], int rounds, u8 tag[]); - -asmlinkage void pmull_gcm_decrypt(int bytes, u8 dst[], const u8 src[], - u64 const h[][2], u64 dg[], u8 ctr[], - u32 const rk[], int rounds, u8 tag[]); +asmlinkage int pmull_gcm_decrypt(int bytes, u8 dst[], const u8 src[], + u64 const h[][2], u64 dg[], u8 ctr[], + u32 const rk[], int rounds, const u8 l[], + const u8 tag[], u64 authsize); static int ghash_init(struct shash_desc *desc) { @@ -458,6 +458,7 @@ static int gcm_decrypt(struct aead_request *req) unsigned int authsize = crypto_aead_authsize(aead); int nrounds = num_rounds(&ctx->aes_key); struct skcipher_walk walk; + u8 otag[AES_BLOCK_SIZE]; u8 buf[AES_BLOCK_SIZE]; u8 iv[AES_BLOCK_SIZE]; u64 dg[2] = {}; @@ -474,9 +475,15 @@ static int gcm_decrypt(struct aead_request *req) memcpy(iv, req->iv, GCM_IV_SIZE); put_unaligned_be32(2, iv + GCM_IV_SIZE); + scatterwalk_map_and_copy(otag, req->src, + req->assoclen + req->cryptlen - authsize, + authsize, 0); + err = skcipher_walk_aead_decrypt(&walk, req, false); if (likely(crypto_simd_usable())) { + int ret; + do { const u8 *src = walk.src.virt.addr; u8 *dst = walk.dst.virt.addr; @@ -493,9 +500,10 @@ static int gcm_decrypt(struct aead_request *req) } kernel_neon_begin(); - pmull_gcm_decrypt(nbytes, dst, src, ctx->ghash_key.h, - dg, iv, ctx->aes_key.key_enc, nrounds, - tag); + ret = pmull_gcm_decrypt(nbytes, dst, src, + ctx->ghash_key.h, + dg, iv, ctx->aes_key.key_enc, + nrounds, tag, otag, authsize); kernel_neon_end(); if (unlikely(!nbytes)) @@ -507,6 +515,11 @@ static int gcm_decrypt(struct aead_request *req) err = skcipher_walk_done(&walk, walk.nbytes - nbytes); } while (walk.nbytes); + + if (err) + return err; + if (ret) + return -EBADMSG; } else { while (walk.nbytes >= AES_BLOCK_SIZE) { int blocks = walk.nbytes / AES_BLOCK_SIZE; @@ -548,23 +561,20 @@ static int gcm_decrypt(struct aead_request *req) err = skcipher_walk_done(&walk, 0); } + if (err) + return err; + put_unaligned_be64(dg[1], tag); put_unaligned_be64(dg[0], tag + 8); put_unaligned_be32(1, iv + GCM_IV_SIZE); aes_encrypt(&ctx->aes_key, iv, iv); crypto_xor(tag, iv, AES_BLOCK_SIZE); + + if (crypto_memneq(tag, otag, authsize)) { + memzero_explicit(tag, AES_BLOCK_SIZE); + return -EBADMSG; + } } - - if (err) - return err; - - /* compare calculated auth tag with the stored one */ - scatterwalk_map_and_copy(buf, req->src, - req->assoclen + req->cryptlen - authsize, - authsize, 0); - - if (crypto_memneq(tag, buf, authsize)) - return -EBADMSG; return 0; } diff --git a/arch/arm64/crypto/poly1305-glue.c b/arch/arm64/crypto/poly1305-glue.c index f33ada70c4ed..01e22fe40823 100644 --- a/arch/arm64/crypto/poly1305-glue.c +++ b/arch/arm64/crypto/poly1305-glue.c @@ -25,7 +25,7 @@ asmlinkage void poly1305_emit(void *state, u8 *digest, const u32 *nonce); static __ro_after_init DEFINE_STATIC_KEY_FALSE(have_neon); -void poly1305_init_arch(struct poly1305_desc_ctx *dctx, const u8 *key) +void poly1305_init_arch(struct poly1305_desc_ctx *dctx, const u8 key[POLY1305_KEY_SIZE]) { poly1305_init_arm64(&dctx->h, key); dctx->s[0] = get_unaligned_le32(key + 16); diff --git a/arch/arm64/crypto/sha1-ce-core.S b/arch/arm64/crypto/sha1-ce-core.S index 92d0d2753e81..889ca0f8972b 100644 --- a/arch/arm64/crypto/sha1-ce-core.S +++ b/arch/arm64/crypto/sha1-ce-core.S @@ -62,40 +62,34 @@ .endm /* - * void sha1_ce_transform(struct sha1_ce_state *sst, u8 const *src, - * int blocks) + * int sha1_ce_transform(struct sha1_ce_state *sst, u8 const *src, + * int blocks) */ SYM_FUNC_START(sha1_ce_transform) - frame_push 3 - - mov x19, x0 - mov x20, x1 - mov x21, x2 - /* load round constants */ -0: loadrc k0.4s, 0x5a827999, w6 + loadrc k0.4s, 0x5a827999, w6 loadrc k1.4s, 0x6ed9eba1, w6 loadrc k2.4s, 0x8f1bbcdc, w6 loadrc k3.4s, 0xca62c1d6, w6 /* load state */ - ld1 {dgav.4s}, [x19] - ldr dgb, [x19, #16] + ld1 {dgav.4s}, [x0] + ldr dgb, [x0, #16] /* load sha1_ce_state::finalize */ ldr_l w4, sha1_ce_offsetof_finalize, x4 - ldr w4, [x19, x4] + ldr w4, [x0, x4] /* load input */ -1: ld1 {v8.4s-v11.4s}, [x20], #64 - sub w21, w21, #1 +0: ld1 {v8.4s-v11.4s}, [x1], #64 + sub w2, w2, #1 CPU_LE( rev32 v8.16b, v8.16b ) CPU_LE( rev32 v9.16b, v9.16b ) CPU_LE( rev32 v10.16b, v10.16b ) CPU_LE( rev32 v11.16b, v11.16b ) -2: add t0.4s, v8.4s, k0.4s +1: add t0.4s, v8.4s, k0.4s mov dg0v.16b, dgav.16b add_update c, ev, k0, 8, 9, 10, 11, dgb @@ -126,25 +120,18 @@ CPU_LE( rev32 v11.16b, v11.16b ) add dgbv.2s, dgbv.2s, dg1v.2s add dgav.4s, dgav.4s, dg0v.4s - cbz w21, 3f - - if_will_cond_yield_neon - st1 {dgav.4s}, [x19] - str dgb, [x19, #16] - do_cond_yield_neon + cbz w2, 2f + cond_yield 3f, x5, x6 b 0b - endif_yield_neon - - b 1b /* * Final block: add padding and total bit count. * Skip if the input size was not a round multiple of the block size, * the padding is handled by the C code in that case. */ -3: cbz x4, 4f +2: cbz x4, 3f ldr_l w4, sha1_ce_offsetof_count, x4 - ldr x4, [x19, x4] + ldr x4, [x0, x4] movi v9.2d, #0 mov x8, #0x80000000 movi v10.2d, #0 @@ -153,11 +140,11 @@ CPU_LE( rev32 v11.16b, v11.16b ) mov x4, #0 mov v11.d[0], xzr mov v11.d[1], x7 - b 2b + b 1b /* store new state */ -4: st1 {dgav.4s}, [x19] - str dgb, [x19, #16] - frame_pop +3: st1 {dgav.4s}, [x0] + str dgb, [x0, #16] + mov w0, w2 ret SYM_FUNC_END(sha1_ce_transform) diff --git a/arch/arm64/crypto/sha1-ce-glue.c b/arch/arm64/crypto/sha1-ce-glue.c index 8baf8d1846b6..c1757659516f 100644 --- a/arch/arm64/crypto/sha1-ce-glue.c +++ b/arch/arm64/crypto/sha1-ce-glue.c @@ -29,14 +29,22 @@ struct sha1_ce_state { extern const u32 sha1_ce_offsetof_count; extern const u32 sha1_ce_offsetof_finalize; -asmlinkage void sha1_ce_transform(struct sha1_ce_state *sst, u8 const *src, - int blocks); +asmlinkage int sha1_ce_transform(struct sha1_ce_state *sst, u8 const *src, + int blocks); static void __sha1_ce_transform(struct sha1_state *sst, u8 const *src, int blocks) { - sha1_ce_transform(container_of(sst, struct sha1_ce_state, sst), src, - blocks); + while (blocks) { + int rem; + + kernel_neon_begin(); + rem = sha1_ce_transform(container_of(sst, struct sha1_ce_state, + sst), src, blocks); + kernel_neon_end(); + src += (blocks - rem) * SHA1_BLOCK_SIZE; + blocks = rem; + } } const u32 sha1_ce_offsetof_count = offsetof(struct sha1_ce_state, sst.count); @@ -51,9 +59,7 @@ static int sha1_ce_update(struct shash_desc *desc, const u8 *data, return crypto_sha1_update(desc, data, len); sctx->finalize = 0; - kernel_neon_begin(); sha1_base_do_update(desc, data, len, __sha1_ce_transform); - kernel_neon_end(); return 0; } @@ -73,11 +79,9 @@ static int sha1_ce_finup(struct shash_desc *desc, const u8 *data, */ sctx->finalize = finalize; - kernel_neon_begin(); sha1_base_do_update(desc, data, len, __sha1_ce_transform); if (!finalize) sha1_base_do_finalize(desc, __sha1_ce_transform); - kernel_neon_end(); return sha1_base_finish(desc, out); } @@ -89,9 +93,7 @@ static int sha1_ce_final(struct shash_desc *desc, u8 *out) return crypto_sha1_finup(desc, NULL, 0, out); sctx->finalize = 0; - kernel_neon_begin(); sha1_base_do_finalize(desc, __sha1_ce_transform); - kernel_neon_end(); return sha1_base_finish(desc, out); } diff --git a/arch/arm64/crypto/sha2-ce-core.S b/arch/arm64/crypto/sha2-ce-core.S index 3f9d0f326987..491179922f49 100644 --- a/arch/arm64/crypto/sha2-ce-core.S +++ b/arch/arm64/crypto/sha2-ce-core.S @@ -76,36 +76,30 @@ */ .text SYM_FUNC_START(sha2_ce_transform) - frame_push 3 - - mov x19, x0 - mov x20, x1 - mov x21, x2 - /* load round constants */ -0: adr_l x8, .Lsha2_rcon + adr_l x8, .Lsha2_rcon ld1 { v0.4s- v3.4s}, [x8], #64 ld1 { v4.4s- v7.4s}, [x8], #64 ld1 { v8.4s-v11.4s}, [x8], #64 ld1 {v12.4s-v15.4s}, [x8] /* load state */ - ld1 {dgav.4s, dgbv.4s}, [x19] + ld1 {dgav.4s, dgbv.4s}, [x0] /* load sha256_ce_state::finalize */ ldr_l w4, sha256_ce_offsetof_finalize, x4 - ldr w4, [x19, x4] + ldr w4, [x0, x4] /* load input */ -1: ld1 {v16.4s-v19.4s}, [x20], #64 - sub w21, w21, #1 +0: ld1 {v16.4s-v19.4s}, [x1], #64 + sub w2, w2, #1 CPU_LE( rev32 v16.16b, v16.16b ) CPU_LE( rev32 v17.16b, v17.16b ) CPU_LE( rev32 v18.16b, v18.16b ) CPU_LE( rev32 v19.16b, v19.16b ) -2: add t0.4s, v16.4s, v0.4s +1: add t0.4s, v16.4s, v0.4s mov dg0v.16b, dgav.16b mov dg1v.16b, dgbv.16b @@ -134,24 +128,18 @@ CPU_LE( rev32 v19.16b, v19.16b ) add dgbv.4s, dgbv.4s, dg1v.4s /* handled all input blocks? */ - cbz w21, 3f - - if_will_cond_yield_neon - st1 {dgav.4s, dgbv.4s}, [x19] - do_cond_yield_neon + cbz w2, 2f + cond_yield 3f, x5, x6 b 0b - endif_yield_neon - - b 1b /* * Final block: add padding and total bit count. * Skip if the input size was not a round multiple of the block size, * the padding is handled by the C code in that case. */ -3: cbz x4, 4f +2: cbz x4, 3f ldr_l w4, sha256_ce_offsetof_count, x4 - ldr x4, [x19, x4] + ldr x4, [x0, x4] movi v17.2d, #0 mov x8, #0x80000000 movi v18.2d, #0 @@ -160,10 +148,10 @@ CPU_LE( rev32 v19.16b, v19.16b ) mov x4, #0 mov v19.d[0], xzr mov v19.d[1], x7 - b 2b + b 1b /* store new state */ -4: st1 {dgav.4s, dgbv.4s}, [x19] - frame_pop +3: st1 {dgav.4s, dgbv.4s}, [x0] + mov w0, w2 ret SYM_FUNC_END(sha2_ce_transform) diff --git a/arch/arm64/crypto/sha2-ce-glue.c b/arch/arm64/crypto/sha2-ce-glue.c index d33d3ee92cc9..1cfc4f61c761 100644 --- a/arch/arm64/crypto/sha2-ce-glue.c +++ b/arch/arm64/crypto/sha2-ce-glue.c @@ -30,14 +30,22 @@ struct sha256_ce_state { extern const u32 sha256_ce_offsetof_count; extern const u32 sha256_ce_offsetof_finalize; -asmlinkage void sha2_ce_transform(struct sha256_ce_state *sst, u8 const *src, - int blocks); +asmlinkage int sha2_ce_transform(struct sha256_ce_state *sst, u8 const *src, + int blocks); static void __sha2_ce_transform(struct sha256_state *sst, u8 const *src, int blocks) { - sha2_ce_transform(container_of(sst, struct sha256_ce_state, sst), src, - blocks); + while (blocks) { + int rem; + + kernel_neon_begin(); + rem = sha2_ce_transform(container_of(sst, struct sha256_ce_state, + sst), src, blocks); + kernel_neon_end(); + src += (blocks - rem) * SHA256_BLOCK_SIZE; + blocks = rem; + } } const u32 sha256_ce_offsetof_count = offsetof(struct sha256_ce_state, @@ -63,9 +71,7 @@ static int sha256_ce_update(struct shash_desc *desc, const u8 *data, __sha256_block_data_order); sctx->finalize = 0; - kernel_neon_begin(); sha256_base_do_update(desc, data, len, __sha2_ce_transform); - kernel_neon_end(); return 0; } @@ -90,11 +96,9 @@ static int sha256_ce_finup(struct shash_desc *desc, const u8 *data, */ sctx->finalize = finalize; - kernel_neon_begin(); sha256_base_do_update(desc, data, len, __sha2_ce_transform); if (!finalize) sha256_base_do_finalize(desc, __sha2_ce_transform); - kernel_neon_end(); return sha256_base_finish(desc, out); } @@ -108,9 +112,7 @@ static int sha256_ce_final(struct shash_desc *desc, u8 *out) } sctx->finalize = 0; - kernel_neon_begin(); sha256_base_do_finalize(desc, __sha2_ce_transform); - kernel_neon_end(); return sha256_base_finish(desc, out); } diff --git a/arch/arm64/crypto/sha3-ce-core.S b/arch/arm64/crypto/sha3-ce-core.S index 1cfb768df350..9c77313f5a60 100644 --- a/arch/arm64/crypto/sha3-ce-core.S +++ b/arch/arm64/crypto/sha3-ce-core.S @@ -37,20 +37,13 @@ .endm /* - * sha3_ce_transform(u64 *st, const u8 *data, int blocks, int dg_size) + * int sha3_ce_transform(u64 *st, const u8 *data, int blocks, int dg_size) */ .text SYM_FUNC_START(sha3_ce_transform) - frame_push 4 - - mov x19, x0 - mov x20, x1 - mov x21, x2 - mov x22, x3 - -0: /* load state */ - add x8, x19, #32 - ld1 { v0.1d- v3.1d}, [x19] + /* load state */ + add x8, x0, #32 + ld1 { v0.1d- v3.1d}, [x0] ld1 { v4.1d- v7.1d}, [x8], #32 ld1 { v8.1d-v11.1d}, [x8], #32 ld1 {v12.1d-v15.1d}, [x8], #32 @@ -58,13 +51,13 @@ SYM_FUNC_START(sha3_ce_transform) ld1 {v20.1d-v23.1d}, [x8], #32 ld1 {v24.1d}, [x8] -1: sub w21, w21, #1 +0: sub w2, w2, #1 mov w8, #24 adr_l x9, .Lsha3_rcon /* load input */ - ld1 {v25.8b-v28.8b}, [x20], #32 - ld1 {v29.8b-v31.8b}, [x20], #24 + ld1 {v25.8b-v28.8b}, [x1], #32 + ld1 {v29.8b-v31.8b}, [x1], #24 eor v0.8b, v0.8b, v25.8b eor v1.8b, v1.8b, v26.8b eor v2.8b, v2.8b, v27.8b @@ -73,10 +66,10 @@ SYM_FUNC_START(sha3_ce_transform) eor v5.8b, v5.8b, v30.8b eor v6.8b, v6.8b, v31.8b - tbnz x22, #6, 3f // SHA3-512 + tbnz x3, #6, 2f // SHA3-512 - ld1 {v25.8b-v28.8b}, [x20], #32 - ld1 {v29.8b-v30.8b}, [x20], #16 + ld1 {v25.8b-v28.8b}, [x1], #32 + ld1 {v29.8b-v30.8b}, [x1], #16 eor v7.8b, v7.8b, v25.8b eor v8.8b, v8.8b, v26.8b eor v9.8b, v9.8b, v27.8b @@ -84,34 +77,34 @@ SYM_FUNC_START(sha3_ce_transform) eor v11.8b, v11.8b, v29.8b eor v12.8b, v12.8b, v30.8b - tbnz x22, #4, 2f // SHA3-384 or SHA3-224 + tbnz x3, #4, 1f // SHA3-384 or SHA3-224 // SHA3-256 - ld1 {v25.8b-v28.8b}, [x20], #32 + ld1 {v25.8b-v28.8b}, [x1], #32 eor v13.8b, v13.8b, v25.8b eor v14.8b, v14.8b, v26.8b eor v15.8b, v15.8b, v27.8b eor v16.8b, v16.8b, v28.8b - b 4f + b 3f -2: tbz x22, #2, 4f // bit 2 cleared? SHA-384 +1: tbz x3, #2, 3f // bit 2 cleared? SHA-384 // SHA3-224 - ld1 {v25.8b-v28.8b}, [x20], #32 - ld1 {v29.8b}, [x20], #8 + ld1 {v25.8b-v28.8b}, [x1], #32 + ld1 {v29.8b}, [x1], #8 eor v13.8b, v13.8b, v25.8b eor v14.8b, v14.8b, v26.8b eor v15.8b, v15.8b, v27.8b eor v16.8b, v16.8b, v28.8b eor v17.8b, v17.8b, v29.8b - b 4f + b 3f // SHA3-512 -3: ld1 {v25.8b-v26.8b}, [x20], #16 +2: ld1 {v25.8b-v26.8b}, [x1], #16 eor v7.8b, v7.8b, v25.8b eor v8.8b, v8.8b, v26.8b -4: sub w8, w8, #1 +3: sub w8, w8, #1 eor3 v29.16b, v4.16b, v9.16b, v14.16b eor3 v26.16b, v1.16b, v6.16b, v11.16b @@ -190,33 +183,19 @@ SYM_FUNC_START(sha3_ce_transform) eor v0.16b, v0.16b, v31.16b - cbnz w8, 4b - cbz w21, 5f - - if_will_cond_yield_neon - add x8, x19, #32 - st1 { v0.1d- v3.1d}, [x19] - st1 { v4.1d- v7.1d}, [x8], #32 - st1 { v8.1d-v11.1d}, [x8], #32 - st1 {v12.1d-v15.1d}, [x8], #32 - st1 {v16.1d-v19.1d}, [x8], #32 - st1 {v20.1d-v23.1d}, [x8], #32 - st1 {v24.1d}, [x8] - do_cond_yield_neon - b 0b - endif_yield_neon - - b 1b + cbnz w8, 3b + cond_yield 4f, x8, x9 + cbnz w2, 0b /* save state */ -5: st1 { v0.1d- v3.1d}, [x19], #32 - st1 { v4.1d- v7.1d}, [x19], #32 - st1 { v8.1d-v11.1d}, [x19], #32 - st1 {v12.1d-v15.1d}, [x19], #32 - st1 {v16.1d-v19.1d}, [x19], #32 - st1 {v20.1d-v23.1d}, [x19], #32 - st1 {v24.1d}, [x19] - frame_pop +4: st1 { v0.1d- v3.1d}, [x0], #32 + st1 { v4.1d- v7.1d}, [x0], #32 + st1 { v8.1d-v11.1d}, [x0], #32 + st1 {v12.1d-v15.1d}, [x0], #32 + st1 {v16.1d-v19.1d}, [x0], #32 + st1 {v20.1d-v23.1d}, [x0], #32 + st1 {v24.1d}, [x0] + mov w0, w2 ret SYM_FUNC_END(sha3_ce_transform) diff --git a/arch/arm64/crypto/sha3-ce-glue.c b/arch/arm64/crypto/sha3-ce-glue.c index ddf7aca9ff45..d6cfb792b66c 100644 --- a/arch/arm64/crypto/sha3-ce-glue.c +++ b/arch/arm64/crypto/sha3-ce-glue.c @@ -28,8 +28,8 @@ MODULE_ALIAS_CRYPTO("sha3-256"); MODULE_ALIAS_CRYPTO("sha3-384"); MODULE_ALIAS_CRYPTO("sha3-512"); -asmlinkage void sha3_ce_transform(u64 *st, const u8 *data, int blocks, - int md_len); +asmlinkage int sha3_ce_transform(u64 *st, const u8 *data, int blocks, + int md_len); static int sha3_update(struct shash_desc *desc, const u8 *data, unsigned int len) @@ -59,11 +59,15 @@ static int sha3_update(struct shash_desc *desc, const u8 *data, blocks = len / sctx->rsiz; len %= sctx->rsiz; - if (blocks) { + while (blocks) { + int rem; + kernel_neon_begin(); - sha3_ce_transform(sctx->st, data, blocks, digest_size); + rem = sha3_ce_transform(sctx->st, data, blocks, + digest_size); kernel_neon_end(); - data += blocks * sctx->rsiz; + data += (blocks - rem) * sctx->rsiz; + blocks = rem; } } diff --git a/arch/arm64/crypto/sha512-ce-core.S b/arch/arm64/crypto/sha512-ce-core.S index cde606c0323e..b6a3a36e15f5 100644 --- a/arch/arm64/crypto/sha512-ce-core.S +++ b/arch/arm64/crypto/sha512-ce-core.S @@ -107,23 +107,17 @@ */ .text SYM_FUNC_START(sha512_ce_transform) - frame_push 3 - - mov x19, x0 - mov x20, x1 - mov x21, x2 - /* load state */ -0: ld1 {v8.2d-v11.2d}, [x19] + ld1 {v8.2d-v11.2d}, [x0] /* load first 4 round constants */ adr_l x3, .Lsha512_rcon ld1 {v20.2d-v23.2d}, [x3], #64 /* load input */ -1: ld1 {v12.2d-v15.2d}, [x20], #64 - ld1 {v16.2d-v19.2d}, [x20], #64 - sub w21, w21, #1 +0: ld1 {v12.2d-v15.2d}, [x1], #64 + ld1 {v16.2d-v19.2d}, [x1], #64 + sub w2, w2, #1 CPU_LE( rev64 v12.16b, v12.16b ) CPU_LE( rev64 v13.16b, v13.16b ) @@ -201,19 +195,12 @@ CPU_LE( rev64 v19.16b, v19.16b ) add v10.2d, v10.2d, v2.2d add v11.2d, v11.2d, v3.2d + cond_yield 3f, x4, x5 /* handled all input blocks? */ - cbz w21, 3f - - if_will_cond_yield_neon - st1 {v8.2d-v11.2d}, [x19] - do_cond_yield_neon - b 0b - endif_yield_neon - - b 1b + cbnz w2, 0b /* store new state */ -3: st1 {v8.2d-v11.2d}, [x19] - frame_pop +3: st1 {v8.2d-v11.2d}, [x0] + mov w0, w2 ret SYM_FUNC_END(sha512_ce_transform) diff --git a/arch/arm64/crypto/sha512-ce-glue.c b/arch/arm64/crypto/sha512-ce-glue.c index 57c6f086dfb4..04adf2c0371e 100644 --- a/arch/arm64/crypto/sha512-ce-glue.c +++ b/arch/arm64/crypto/sha512-ce-glue.c @@ -26,11 +26,25 @@ MODULE_LICENSE("GPL v2"); MODULE_ALIAS_CRYPTO("sha384"); MODULE_ALIAS_CRYPTO("sha512"); -asmlinkage void sha512_ce_transform(struct sha512_state *sst, u8 const *src, - int blocks); +asmlinkage int sha512_ce_transform(struct sha512_state *sst, u8 const *src, + int blocks); asmlinkage void sha512_block_data_order(u64 *digest, u8 const *src, int blocks); +static void __sha512_ce_transform(struct sha512_state *sst, u8 const *src, + int blocks) +{ + while (blocks) { + int rem; + + kernel_neon_begin(); + rem = sha512_ce_transform(sst, src, blocks); + kernel_neon_end(); + src += (blocks - rem) * SHA512_BLOCK_SIZE; + blocks = rem; + } +} + static void __sha512_block_data_order(struct sha512_state *sst, u8 const *src, int blocks) { @@ -40,45 +54,30 @@ static void __sha512_block_data_order(struct sha512_state *sst, u8 const *src, static int sha512_ce_update(struct shash_desc *desc, const u8 *data, unsigned int len) { - if (!crypto_simd_usable()) - return sha512_base_do_update(desc, data, len, - __sha512_block_data_order); - - kernel_neon_begin(); - sha512_base_do_update(desc, data, len, sha512_ce_transform); - kernel_neon_end(); + sha512_block_fn *fn = crypto_simd_usable() ? __sha512_ce_transform + : __sha512_block_data_order; + sha512_base_do_update(desc, data, len, fn); return 0; } static int sha512_ce_finup(struct shash_desc *desc, const u8 *data, unsigned int len, u8 *out) { - if (!crypto_simd_usable()) { - if (len) - sha512_base_do_update(desc, data, len, - __sha512_block_data_order); - sha512_base_do_finalize(desc, __sha512_block_data_order); - return sha512_base_finish(desc, out); - } + sha512_block_fn *fn = crypto_simd_usable() ? __sha512_ce_transform + : __sha512_block_data_order; - kernel_neon_begin(); - sha512_base_do_update(desc, data, len, sha512_ce_transform); - sha512_base_do_finalize(desc, sha512_ce_transform); - kernel_neon_end(); + sha512_base_do_update(desc, data, len, fn); + sha512_base_do_finalize(desc, fn); return sha512_base_finish(desc, out); } static int sha512_ce_final(struct shash_desc *desc, u8 *out) { - if (!crypto_simd_usable()) { - sha512_base_do_finalize(desc, __sha512_block_data_order); - return sha512_base_finish(desc, out); - } + sha512_block_fn *fn = crypto_simd_usable() ? __sha512_ce_transform + : __sha512_block_data_order; - kernel_neon_begin(); - sha512_base_do_finalize(desc, sha512_ce_transform); - kernel_neon_end(); + sha512_base_do_finalize(desc, fn); return sha512_base_finish(desc, out); } diff --git a/arch/arm64/include/asm/alternative-macros.h b/arch/arm64/include/asm/alternative-macros.h index 5df500dcc627..8a078fc662ac 100644 --- a/arch/arm64/include/asm/alternative-macros.h +++ b/arch/arm64/include/asm/alternative-macros.h @@ -97,9 +97,9 @@ .popsection .subsection 1 663: \insn2 -664: .previous - .org . - (664b-663b) + (662b-661b) +664: .org . - (664b-663b) + (662b-661b) .org . - (662b-661b) + (664b-663b) + .previous .endif .endm @@ -169,11 +169,11 @@ */ .macro alternative_endif 664: + .org . - (664b-663b) + (662b-661b) + .org . - (662b-661b) + (664b-663b) .if .Lasm_alt_mode==0 .previous .endif - .org . - (664b-663b) + (662b-661b) - .org . - (662b-661b) + (664b-663b) .endm /* diff --git a/arch/arm64/include/asm/asm-uaccess.h b/arch/arm64/include/asm/asm-uaccess.h index 2c26ca5b7bb0..2b5454fa0f24 100644 --- a/arch/arm64/include/asm/asm-uaccess.h +++ b/arch/arm64/include/asm/asm-uaccess.h @@ -59,62 +59,32 @@ alternative_else_nop_endif #endif /* - * Generate the assembly for UAO alternatives with exception table entries. + * Generate the assembly for LDTR/STTR with exception table entries. * This is complicated as there is no post-increment or pair versions of the * unprivileged instructions, and USER() only works for single instructions. */ -#ifdef CONFIG_ARM64_UAO .macro uao_ldp l, reg1, reg2, addr, post_inc - alternative_if_not ARM64_HAS_UAO -8888: ldp \reg1, \reg2, [\addr], \post_inc; -8889: nop; - nop; - alternative_else - ldtr \reg1, [\addr]; - ldtr \reg2, [\addr, #8]; - add \addr, \addr, \post_inc; - alternative_endif +8888: ldtr \reg1, [\addr]; +8889: ldtr \reg2, [\addr, #8]; + add \addr, \addr, \post_inc; _asm_extable 8888b,\l; _asm_extable 8889b,\l; .endm .macro uao_stp l, reg1, reg2, addr, post_inc - alternative_if_not ARM64_HAS_UAO -8888: stp \reg1, \reg2, [\addr], \post_inc; -8889: nop; - nop; - alternative_else - sttr \reg1, [\addr]; - sttr \reg2, [\addr, #8]; - add \addr, \addr, \post_inc; - alternative_endif +8888: sttr \reg1, [\addr]; +8889: sttr \reg2, [\addr, #8]; + add \addr, \addr, \post_inc; _asm_extable 8888b,\l; _asm_extable 8889b,\l; .endm .macro uao_user_alternative l, inst, alt_inst, reg, addr, post_inc - alternative_if_not ARM64_HAS_UAO -8888: \inst \reg, [\addr], \post_inc; - nop; - alternative_else - \alt_inst \reg, [\addr]; - add \addr, \addr, \post_inc; - alternative_endif +8888: \alt_inst \reg, [\addr]; + add \addr, \addr, \post_inc; _asm_extable 8888b,\l; .endm -#else - .macro uao_ldp l, reg1, reg2, addr, post_inc - USER(\l, ldp \reg1, \reg2, [\addr], \post_inc) - .endm - .macro uao_stp l, reg1, reg2, addr, post_inc - USER(\l, stp \reg1, \reg2, [\addr], \post_inc) - .endm - .macro uao_user_alternative l, inst, alt_inst, reg, addr, post_inc - USER(\l, \inst \reg, [\addr], \post_inc) - .endm -#endif - #endif diff --git a/arch/arm64/include/asm/assembler.h b/arch/arm64/include/asm/assembler.h index 2bce4e17dc22..4eed9601d9d4 100644 --- a/arch/arm64/include/asm/assembler.h +++ b/arch/arm64/include/asm/assembler.h @@ -16,6 +16,7 @@ #include #include +#include #include #include #include @@ -24,6 +25,14 @@ #include #include + /* + * Provide a wxN alias for each wN register so what we can paste a xN + * reference after a 'w' to obtain the 32-bit version. + */ + .irp n,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 + wx\n .req w\n + .endr + .macro save_and_disable_daif, flags mrs \flags, daif msr daifset, #0xf @@ -713,74 +722,33 @@ USER(\label, ic ivau, \tmp2) // invalidate I line PoU set_sctlr sctlr_el2, \reg .endm -/* - * Check whether to yield to another runnable task from kernel mode NEON code - * (which runs with preemption disabled). - * - * if_will_cond_yield_neon - * // pre-yield patchup code - * do_cond_yield_neon - * // post-yield patchup code - * endif_yield_neon