diff --git a/.gitignore b/.gitignore index 44e34991875e1f148286b275ef9d4a4ff44aa4bc..372e57abbf4172b06a3372221b70cac1ee6fb1ee 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 0000000000000000000000000000000000000000..75edfd5b3a32561cd68159278ff59ed6fa7b6a4d --- /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 ddd4bd6116fcecc9dd004cc1c2c7df45e96e50b6..5088281e312ef0509f7868d5a8e50711360ea3fb 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 0000000000000000000000000000000000000000..690c687c67abfdd9d5b50983ea74f75964ccae99 --- /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 9b90efcc3a35e923b37fec54879e132adf8ae3ca..2400b1ed886c85ba04d8a4c653bca90314a511b6 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 72f2b974b6d1aa587a82376dbf8a859c77abdf54..ed42c3bad107ef4d4cc34ff51109e0d0aec855f8 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 3aa38e8b8361d821e26400a0d1c80c6a1174f61d..6528036093e1fb5a56cf3a7a8fdf0c43fa7e6fe2 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 0521b4ce5c961d5d67d7354a000e652848015e3d..34bb23c44a710170303c9143670e36551964fc3b 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 1aaf8985894bb34317882210d3f73302d6e85417..04d6cc5357c810b7c11cb3353f06af020b7d4b42 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 09e3d21c740c0038566e8d333400aaeedb1bbfb0..075ef8e17b64ca5f922cd7f63ec35cfffb2bb927 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 acc90ba891f01f070957383de0d05597bcef3f15..e4cf07ab57448fa3a37b4f9700905e272c53f95d 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 ad2fe660364bd7ab2faa3fcd817bd6afe00f543b..c69cf8d0cb15b48092fe9109cfd961ad5a32f8c9 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 c1d4c196f005bcdbd41aa14726acc84f8e9e989c..460cb546c54a90633e77a0d27bbb8d237149f2a1 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 06d5f251ec8805b0198226ed200ee37d5df0eb02..51f390e5c276c20e12b58dd7e2e1dfc868d083ce 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 e361fc95ca293d80434ee0cdfae309046c17d612..82e3eee7363b0301a6aaccea965d077130c09f4d 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 9dcbc6f18d75df1d21124cff5757782e68c7eab0..c1bc47b9000dce12cfd804de30a45f68ec3336bb 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 35ed01a5fbc9ddf56d7a96f47b3c05779aa0ec3b..992bf91eeec821c62f997f22008e9afbb2cdbf53 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 0000000000000000000000000000000000000000..03ae39ec72dc924f0601a24ba25a20bf2e515ea0 --- /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 cf9b2857c72aa3ffbcda31b726d177b6c11c2730..d8242049bdcb5c0fc6e533cc2295b411afe819e3 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 1910079f984fb54723c2a47d402e2965d6602983..b063f2f1cfb25ebaa83683079ac9eb2a12a99137 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 1548d842049966c8ab75b5f7a083f36084d630d9..54492aa813b9b75cffcdb7453316b93e49500100 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 0ab40e0db5809921a395e18ca23e0cfe2823a280..aa9cc7abd5c2bec913eca3e76d0ea2f7b0079519 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 0a120aae33ce5c9836dad948b18736ea183e6801..b9b7d80c2f9d2d5afc09e5b40d6ab44370c6e45c 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 995da15b16cab8a6d6fb051b65c8e113c3e7423e..2f4e39875fb39cc0d0bb812504e1f25f09c8a035 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 862f78b41b322398e2daf459ccc00ec34fb8309c..1e7265155715b23ba0bb6ee2c7d7dd4bd2d76277 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 c9b7bb3ca089da32073f425999a8784af1178e70..eff6727c69d3004c2c1b04289912b05c1fe97b46 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 672f82de2b6442df5102efe69e0cac9468166210..b1851102c703db37556850f907d1e09cc46e66eb 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 121e396a2779626f7c8ff6dba51cdf81855f9fe3..58880328d8c5d414e8a8e4524c6a81b88a8cc64c 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 bd9165241b6c8970754c5ab7b84087b4eb251ba5..6efb41cc807255a7ae1b61879062c55c16a32389 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 db2a3dfb063dfccf0c2eddd544fe058abe006e95..35483190747479879efcdb0cee67fa73959d5201 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 304ff6add2c7cfdb3f11be2ab6dc627b1e93da18..4063ee2d4031d320bc6d189c6ad868a7cbbb58e9 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 8abf1fe4098c9e62617327440fbcf60e964478c1..5765c9ea961ec09904d37de921b522fb12e0a216 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,13759 +44742,19474 @@ + + + - - - - - - - - - + + + + + + + + + + + + - - - - - + + + + + - - - + + + + + - - - - - - + + + + + - - - + + + + + - - - + + + - - - + + + + + - - - - - + + + - - - - - + + + - - - + + + + + - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - - - + + + + + + + + - - - + + + + - - - + + + + + + - - - - - + + + - - - + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - - + + + + - - - - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - - - - + + + - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - + + + + - - - - - + + + + - - - + + + + - - - - + + + + - - + + + - - - - - + + + + - - - - - + + + + + - - - - - - - - + + + + - - - - - + + + + + - - - - - + + + + - - - - - + + + + + - - - - - + + + + + + + + + + + + - - - - - - + + + + + + + + - - - - - - - - - + + + + + + + - - - - - + + + + + + - - - - - + + + + - - - + + + + + + + - - - + + + + + + + - - - - + + + + + + + - - - + + + + + - - - + + + + + + + - - - + + + + + + - - - - + + + + - - - - - - + + + + + - - - - - + + + + + + + + + - - - - + + + + + + - - - - + + + + + + + - - - - + + + + + + - - - - + + + + + + + - - + + + + + - - - + + + + + + + - - - + + + + + + + - - - + + + + + - - - - + + + + - - - + + + - - - + + + + + - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - + + + + + - - - - - + + + + - - + + + + - - + + + - - - - - - - - - - - - + + + + + - - - - - - + + + + - - - - - - - - - - - - - - - - - + + + + + + - - - - - + + + + + + - - - - + + + + + - - - - + + + + + + - - - - - - + + + + + - - - - - + + + - - - + + + + + - - - - - - + + + + - - - - - - + + + + - - - - - + + + + + + + + - - - - - + + + + - - - - - - + + + + - - - - + + + + - - - - - + + + + + + + + + - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + - - - + + + + + - - - - + + + + + - - - - - - + + + + - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - + + + + + - - - - + + + - - - - + + + + + + - - - + + + + + + - - - - + + + + - - - - - - - - - - - - + + + + + - - + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - + - + - + + + + - + - + - - + + - + + + + - + + + + - + + + + - + - + - - - - + - + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + + + + + + + + + + + + + + + + + + + + + + - - + - + + + + + + + + + + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + + - + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + - + - + - + - + - - - - - - - - - - - - - - - - + - + - + - - + + - - + + - - + + - - + + - - + + - + - + + + + - + - + - - - - + - - + + - + - + + + + - + + + + - + + + + + + + - + + + + + + + + + + + + + + + + + + + - + + + + - + + + + - + + + + - + + + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - - - - - - - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + - - - - + + - - + + - - - - + + - - + + - - - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + + + + + + + + + + - + - - - - + - - + + - + - - - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - + + - - + + - - - - + + - - + + - - + + - - - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + - - - - - - - - - - - + - + + + + - + - + - - - - + - + - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + - + + + + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - - - + + - - + + - - + + - - + + - - - - + + - - + + - - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + - - + + - - + + - - + + + + - - + + - - + + - + - + - + - - + + + + - - - - + - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + + + - - + + - - + + - - + + - - + + + + - - - - - - - - - - - - - + - - + + - - + + - - - - + + - + + + + - + - + + + + + + + - - - - - + + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + - + - - - - + - - + + - - + + - + - + - + - + - + - + - + - - - - + - - - - + - + - - - - + - + - - - - + - - - - + - - - - + - + - + - + - + - + - - - - + - - - - + - - - - + - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + + + + - + - + - + - - - - - - + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + + - + - + - + - - - - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - - - + - - - - + + - - + + - - + + - - - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - - + + - - + + - + - - - - - - - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - + - + + + + - + + + + - + - + - + - + - + - - - - - - - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - + + + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - - - - + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + + + - - + + - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - + - - - - + - - - - + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + - - - - - + - + + + + - + + + + + + - + - + - + - + - + - + - + - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + + - + - + - + - + - + - - - - + + - - + + - - + + - - - - - - + - + - + - - + + + + - - - - + - - + + - - + + - - + + - - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - - - + - + - - - - + - - - - + - - - - + - + - - + + + + - + - - + + - - + + - - + + - - + + - - + + - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - - - - - - - - - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + - + - + - - - - + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - + - + - + - - - - + - - - - + - + + + + - + - - + + - - + + - + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - - - - + + - - + + - - - - - - - - - - - + - - + + - - + + - - - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + + + + - + + + + - + - - + + - - - - + + - - + + - - - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - + - - + + - - - + - + - - + + - - + + - - - - + + - - + + - - - - + + - - + + - - - - - - + + - - + + - - + + + + + + + + + + - + - + - + - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - - - - + - + - + - + - - - - + - + - - + + - + - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + - + - + - - + + + + + + + + + + + + + + + + + + + + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + - - - - - - - - + - + - - + + + + + - + - + + + + + + + + + - + - + + + + - + - + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + - + + + + - + - + - - + + - - - - + - - + + - - + + + + - - + + - - + + - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + - - + + - - + + + + - - + + - - + + + + - - + + - - + + + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - - - + - - - - + - + - - + + + + - - + + - + - + - + - - + + + + + + + + + + + + + + + + + + - + - - + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + - + - + - + - + - + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - - - - + - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - - - - - - - - - - - + - - - - + - + - + + + + - + + + + - + - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - + - - - - - - - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - + + - - - - - - - - - - - - - - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - + - - + + - - + + - - + + - - - + - + - + - + - + - + - + - + - + - - - - + - + - + - + - + - + - + - - - - - - - - - - - - - + - - - - + - + - + - + - + - - + + - - - - - - - - - - - - - + - - + + + + - - + + - + - - - - + - - + + - + - + - + - + - - + + - - + + - - + + - - + + - + - + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - + - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + + + - - + + - - + + - + - + - + - + - + - + + + + + + + + + + - + - + - + - + - - - - + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - + - + - + - + - + - + - + - + - + + + + - - - - - - - - - - - - - - - - - - - - - - - + - + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + - + - + - - - - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + - - + + - - + + - - + + + + - - + + - - + + - - + + + + - - + + - - + + - - + + - - + + - - - - - - - - - - - + - - - - + - - + + - - + + + + - - + + - - + + - - + + - - + + - - - - - + + + + - - + + - - - + - + - - + + - - + + - - + + - - + + + + - - + + - - - - - - - - + - + - - + + - - + + - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + - + - + + + + - + - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - + + - - + + - - + + + + - + - + - + - + - + - - - - - - - + - - + + - - + + - + - + - + - - + + - - - - - - - - - - - - - + - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + + + + - - - - - - - - - - - - - - + - - - - - - - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + + + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + - - + + - + - + - + - + - + - + - + - + - + + + + - + - + - - - - - - - + - - - - - - - - - - - - - - + + - + - + - + - + - + - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - - + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + - + + + + - + + + + - + - - + + - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + - + - - + + - - - - - - - + - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - - - - - - + - - + + - - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - + - - - - + - - + + - - - - - - - + - + - - + + - + + + + + + - - - - + - - + + - - + + - + - + - + - + + + + - + - - - - + - + - - + + - - - + - - + + - - - - + + - - + + - - + + - - + + - - - - + + - - - - - - - - - - - - - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - + + + + - + + + + - + - + - + - - + + - - + + - - - - - - - - - - - + + - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - + - + - + - - - - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - + - - + + - - + + - - + + - - - - + - - + + - - + + - + - + - + - + - + + + + - + - + - + + + + - + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + + + + - + + + + - + + + + - + + + + - + + + + - + + + + - + + + + - + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + + + - - + + - - + + - - + + - - + + - - + + - + - + - + - - - - - - - + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - - - - - + - - - - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - + + - - + + + + + - + + + + - - - - + + - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + - - - - + + - + - - + + - - - - - - - - - - - - - - + - + - + - - - - - - - - - - - - - + - + - + - + - - - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - + - + - - - - - - - - - - - - + - - - - + + - - + + - - - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + - - + + + + + - - + + - - - - - - - - + + + + + + - - - + + + - - - - - - - - + + + + - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - - - - + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - + + - + - + - + - - - - - - - + - - - - - - - - + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - - + + + - - - + + - - - - + + + + + + - - - + + - + + + + + + + + + + + + + - + - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - + - + + + + - + - - - - + - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - - - - - - - - - - - - + - - + + - - + + - - + + - + - + - - + + - - - - + + - - + + - + - - - - - - - + - + - - - - - - - - - - + - - + + - - - - - - - - - + + + + + + + + + + + + + + - - - - - - + + + - - - - - - + + + + + + - - + + + - - - + + + + - - - - - - - - - - - + + + + - - + + + - - - - + + + + + + + - - - - - + + + + + - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - + + + - + - - - - - - - - - - - - - - - - - - - - - - + - - + + - - + + - - + + + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - + + + + + - - - - + + + + + + + + - - - - + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + + + + + + + + + + + + - - - - - + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + - + - + - - + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + - - - - + + + - - + + - - + + + - + + + + + + + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - + - - + - + - - - - + - + - + + + + - - - - - - + + + + + + + + + + + + - - + + - - + + + + - - + + - - + + - - + + - - + + + + + + + - + - - + + - - + + - - + + - - - - - + + - - + + - - + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + - - - - - - - - - - + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - - + + - - - - - - - + + - - + + - - + + - - - - + - - - - + - - - - + - - - - + - - - - + - + - - + + + + + + + + - + - - - - + - + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - + + - - + + - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - + + - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - - - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + - + - + - - + + + + + + + + + + + + - + - + - + - + - + - + - + + + + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + - - - - - - + + + - - - - - + + + + + - - - - - + + + + - - - - - - + + + - - - - - + + + + + + + - - - - + + + - - - + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - + + - - - - - - + + + + + + + - - - + + - - - - + + + - - - + + + - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - + + + - - - + + + - - - - - - + + + + - - + + + + + + + - - - + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + - - - + + + - - - + + - - - + + - - - + + - - - + + + + + + - - - + + + - - + + + + + + + + + + + - - + + - - + + - - + + + + + - - - - - + + + - - - + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + - - - + + - - - - - + + + - - - - + + + - - - + + + - - - - + + + - - - + - - - - - + + + - - - - - - - + + + - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - + + + + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + + + + + + + + + + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + - - - - - + + - - - - + - + - + - + - + - + - - - - + + - - + + - - + + - - + + - - + + - + - - - - + - - + + - - + + - - + + - - + + - - + + - - + + - + - + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + + + + + - - - - + - - + + - - + + - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - + - - - - + - - - - - - - + - - + + - - + + - - + + - - + + - - + + - - + + - + + + + + + - - - - - - - + - - + + - - + + - - + + - - + + - - + + - - + + + + - - + + - - + + - - + + - - + + - - + + + + - - + + - - + + - - + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + - - + + - + - - - - + - + - + + + + + + + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - + - - - - + - + - + - - - - + - + + + + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + - - - + - - + + - - + + - - + + - - - - + - + - + - + - + - - + + - - + + - + - - - - + - - - - - - - + - + - - - - + - - - - + + - - - - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + + - + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - - - - - - - - - - - - - + - - + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + - - + + - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + - - + + - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - - - + + - - + + - - - - + + - - - - + + - - + + - - + + - - + + - + - + - + - + - + + + + + + - - - - - - - - - - + - - + + - - + + - + - + - - - - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - + + - + - - - - + - - - - + - - - - - - - + - + - + - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - - - - - - - - - + - - + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + - - - - + - + - - - - - - - - - - + - - - + + + - - + + - - + + - - - - + - - + + - + + + - + - - + + - - + + - - - - + - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - - - - - - - + - - + + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - + - - + + - - + + - - + + - - + + - + + + + - - - - + - - + + - - + + - + + + + + + + + + + + + + + - + - + - - - - - - - + - - + + - - + + + + - - + + - + - + - + - - - - + - + - - - - + - + - + + + + + + + - + + + + + + + + - + - + - - + + + + + + + - + - - + + + + - - + + - - + + - - - - + - - - - + - - - - + - - - - - - - - - - + - - - - - - - - - - + - - - - - - - - - - + - - - - - - - - - - - - - + - + - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - + - - + + - - + + - - + + - - + + - - - - + + - - + + - + - + - + + + + - + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - - + + - - + + - - - - - - - - - - + - - - - - - - - - - - - - + - - + + - - + + - + - - - - - - - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -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,232 +67320,454 @@ - + - + - + + + + + + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + - - + + - - + + - - + + + + - - + + - - + + @@ -60037,812 +67931,1064 @@ - + - + + + + + + + + + + + + + + + + + + + + + + - + - + - + - - - - + - + - - - - - - - + - - - - - - - - - - - - + - - - - - - - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + + + - - + + - - + + - + - + - + - + + + + - + - - + + - - + + - - + + + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - - - + + + + + - + + + + + + + + + + - + + + + + + + + + + - + + + + - + + + + + + + + + + - + + + + + + + + + + - + - - - - - + + - - + + - - - - - + + - - + + - - + + - - + + - - + + - - + + + + + - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - - - + + - - + + - - - - + + - - + + - - - - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + - - - + + + - - + + - - + + - - - - + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + - + - - - - + - - + + - - + + - - - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + + + + - + - + - + - - + + + + - - + + - - + + - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - - - + + + + - + - + - + - + + + + + + + + + + + + - + - + - - + + - + - + + + + - + + + + - + + + + + + + + + + + + + - + - + - + - - + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - - + + + + + + + + + + + + + - + - + - + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -60858,1216 +69004,1378 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - + - + + + + + + + + + + - + - + - + - + - + - + - - - - + - + - + - + + + + + + + + + + - + - - + + - - + + - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - - - - + - + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + + + + + + + + + + + + - - + + - - + + + + + - + - - + + + + - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - + + - - + + + + - - + + - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + - - + + - - + + - - + + - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + + + - - + + - - + + - - + + - - + + + + - - + + - - + + - - + + - - - - + + - + + + + - + - + - - + + - - + + + + - - + + - - + + - - + + - + - + - + + + + - + - - + + - - + + + + - - + + - - + + - - + + - + - + - - - - + - - + + - - + + - + - - + + - - + + - - + + - - + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + - + + + + + + + + + + + + + + + + + - + - + - + + + + + + + + + + + + - + - + - + - + - - - - + - + + - + + + + - + - - + + - - + + - - + + - - + + - - + + - - + + + + + - + - + - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - - + + - - + + - - + + - - + + - - - - - - - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + - + - - + + - - + + + + + + + + - + - + - + - + - - + + - + - - - - + - - - - + - - - - - - - - - - - - - + - + - + - - - - - - - - - - + - - + + - + - + - + - + - + - + - + - + - + + + + - + - + - + + + + + + + - + - - + + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + + + + - - + + - - + + + + - - + + - - + + @@ -62188,7 +70496,6 @@ - @@ -62202,26 +70509,6 @@ - - - - - - - - - - - - - - - - - - - - @@ -62236,1284 +70523,1784 @@ - + + + + + + + - + - + - + + + + + + + + + + - + - - + + + + - - + + - - + + - - + + + + + + + + + + + - + - + - - + + - - + + - - + + + + + - + - + - + - + - + - - + + + + - - + + - - + + + + + - + - + - - + + + + + + + - - - + + + - - + + + + + + + + + + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - - + + - - + + - - + + + + + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - - - - - - - - - + - - - - - - - + + + + + + + + + + + + - + - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - - - + + - - + + - + - + - - + + - - - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - - - - - - - - - - - - - - - - - - - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - - - + + - - + + - - - - + + - - - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + + + + - + - - - - + - - + + - - + + - + - + + + + - + - + - - + + - - - - - - - - + + + + + + + + + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + - - + + - - + + - - + + - - + + + + - - + + - - + + - - + + + + + + + + + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - + + + - - + + - - + + + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - - - + + - + - - - - + - - + + - + - + - - + + - - + + - - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + @@ -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 @@ + + + + + + @@ -67516,1163 +75641,2646 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - + + + + - - + + + + + - + - - + + + + + + + + + + + + + - + - + + + + + + + - + + - + - + + + + + + + + + + + + + + + - + - - + + + + - - + + - - + + - - + + + + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - + + + + + + - - + + - - - - + + + + + + - - - - + + + + + + - - - - + + + + + - - - - + + + + + + + + - - - + + + + - - - - - - - + + + - - - + + + + + - - - - - - - - - - - - - - + + + + - - + + + - - - - - - + + + + + + + + + + + + - - - - - - - + + + + - - - + + + + - - + + + - - - - - - - + + + + + + + - - - + + + + - - - + + + + + + - - - + + + - - + + + - - + + + + + - + - + - + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + - - + + + - - + + + + - - - - - + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - - - + + + + - - - - + + + - - - - + + + + - - - - + + + + + - - - - + + + + - - - - + + + + + + + + + + + + + + - - + + + + + + + + + + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + - - + + - - + + + + + + + + - - + + + - + - + - + + + + + + + + + - + - + + + + - + - + - - + + + + + + + + - + - + + + + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + - + - + + + + + + + - + + + + + + + + + + + + + + + + + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - - + + + + + + + - + - - + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + - - + + + + - - - + + + - - - - - + + + + + - - - - + + + - - - + + + + + + + - - - - - + + + + - - - - - + + - - - + + + - - - - - - - - - - + + + - - - + + + + + + + - - - + + + - - - - - - - - + + - - - - - - - - - - - - - - - - - - + + - - - + + + + - - - - + + + + + - - - - + + + - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -68754,6 +78362,12 @@ + + + + + + @@ -69066,12 +78680,18 @@ - - + + + + + + + + - - + + @@ -69096,6 +78716,19 @@ + + + + + + + + + + + + + @@ -69112,6 +78745,13 @@ + + + + + + + @@ -69122,13 +78762,523 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -69144,79 +79294,79 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -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,1086 +85449,2073 @@ - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - + - + - - - - + - + - + - + + + + + + + - + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - + - - - - - - - - - - - - - - - - - - - - + - - + + - - - - + + - - + + - - - - - - - - + + - - + + - - - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + - + - - + + - - - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - - - + + - - + + - - - - + + - - - - + + - - + + - - - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - + + - - + + - - + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + + + + + + - + - + + + + - + + + + - + - + - + - + - - - - + - + - + - - + + - - + + + + + + + - + - + + + + - + - + - + - + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + - + - - + + - - + + - + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -76306,6 +87524,8 @@ + + @@ -76349,214 +87569,242 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -76815,31 +88063,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - @@ -76908,44 +88131,109 @@ - + - + - + + + - - - - - + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - - - - + + + @@ -76966,32 +88254,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -77027,47 +88289,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -77217,92 +88438,9 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + @@ -77315,9 +88453,6 @@ - - - @@ -77342,52 +88477,77 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -77407,49 +88567,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -77463,687 +88581,230 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - + - - - - - + + - - + + - - + + - - - - + + - - + + - - + + - - - - - - - - - - - - - + - - + + - - + + - - + + - - + + - - + + - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - + - - - - + - + - + - + - - - - - - - + - - - - - - - - - - - - - - - - + - - - - + - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -78168,23 +88829,262 @@ - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -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,147 +104207,62 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -93237,11 +104289,8 @@ - - - @@ -93266,6 +104315,14 @@ + + + + + + + + @@ -93277,6 +104334,11 @@ + + + + + @@ -93308,13 +104370,94 @@ - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -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,30 +164862,166 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - - - + + + + + + + + - - + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -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,155 +191567,118 @@ - + - + - + - + - - - - + - + - + - + - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - + @@ -178212,19 +191700,19 @@ - + - + - + - + - + @@ -178239,136 +191727,207 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + - + - + - + - - - - + - - - - - - - - - - - - - + - - - - - - - - - - + - + - + - + - + - + + + + - + - - + + + + + + + + + + + - + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -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 23ade640267a1c1bc989108205731c2dd0e630f9..ef65c2cad42b157b0f36ada1477ca3c13cbbcfb6 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 0000000000000000000000000000000000000000..2240832a275f308a3754fdd196557e1030ec9733 --- /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 79cf6eb8e2deaf6a771ac6c34ec81c8d290f90f6..3013aaac6b71597e8f4f492212a09df7ecd20622 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 9bb6a5dbcae21c0e1f54b98e18da97ab5c50ab2a..2515273bd123e319228d9585ad9e66d1f96b775c 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 0000000000000000000000000000000000000000..1150db28bc95cef4157e7371caa040dea5127aae --- /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 6084b5a6b336f630c43cbbb9081cd5ca7c58b880..329a7fc9e4425fae699214903adff931a524c868 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 0000000000000000000000000000000000000000..c1c6e5e983bcdfa91588511eb6ef0670fdceb81e --- /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 9db879798b02dcd1fc7d52833ae4fb77a1d52f7f..db3c296e079134a6f8f9b9f9b4a4dc8c462681a9 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 0000000000000000000000000000000000000000..867cd07395396c070851c77fc8ca0a3c905bc183 --- /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 e241bd88880fdf9e0113ec72dae9855d5d6db758..fe80d19deba9b3f0c0a58b716b1006717f9c2716 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 d9c264dc25fcb32cffbeb89d9c80fd8277fe4dee..9926cd5a17b00683470c8b810468eee023b32dd1 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 163641726a2b928cba14aefd1289322202ec4a64..5878846f00cfe5913bac2398f187806cebd782b9 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 2a97e2718a219c72b1bfca8ab0ac5bd83ca7ed36..2a4ad619abfba65fab6d73a5df120a3f615cf890 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 ea00c8a17f079c6ddbd1b08e3642f603023626a9..ae656bfc31c3d38adc31bfa92b3630bcb6b02bff 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 2be55fb96d870ad9f3e3a21048f53d71b20e1b52..98e575dbcce51d58c72d45b4997a0857c3bacf48 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 3a35b82a718e3e292ee68ede738a2fc501706442..da543fd422fede82ef93130d3c68716e22ea9007 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 fac4adc902044d6c794c5ded462038aa679bcec6..95c649fbc95aff99f99a2f481b2f72d898d2f639 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 9bb3c24f3677098a6e8b7d410fab51ed723f69d7..9c7c6824728963bb5ecee80d2c24da89de691787 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 e1567418a2b149583f130faa13eb15183b1e6324..0d6ee56f5831ee0630785a3c4afd15ee9304db97 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 247ce90559901012f2e336bd8729787a4253cac0..df7e4f8c828735bae523f5e9c628123f8161bd9b 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 21ae880c7530f755bac01530897030841047d8e4..c76b0046b40283a02147799ad29d81938e4ed72f 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 @@ 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 775ceb3acb6c01074b8277f8ce1fcb2cdecbe65f..edca66c232c154e0c3f1275fdf2c73faa797d04a 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 @@ 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 0e159f879c15e662c346d327b7c25fa0df534399..d3cd2443ba2528f7c3c12aff2c52f3882c0d3cc1 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 @@ 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 6b38fa3f5568fbb76185da6cfb37ce7c7f4ee1a5..4883b84b4eded44f0524354a6af6ac1a281c6c70 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 @@ 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 6783cf16ff818ca8ea4c5e879c0b8840cb651e9f..19bb50f50c1fc7c11f2f811cf6b1ada5051545a8 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 @@ 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 c894c7c788a93ed0688d2b3ce9e61fd27a68a121..1c6361ba1aca4d20988bb0b80a87c52cd1ebece6 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 @@ 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 058fae1b4a76ea49c91f06df489fb15edd89974b..d767968ae217573e41852b9f37c1ddf4a995b0fe 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 @@ 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 5179258f92470aebb2fa31e7ff45b81c9cf44f97..9c55a921263bdd062a29f29b49ed12525bdcf570 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 @@ 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 d3446e42b5983a515eabaef01ebcac4ba257f557..ce96345d28a396e6fb2a76ed1a39e6b5d1e03387 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 @@ 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 6e6e672c0b86df1d91e57d92a41b8e59caa13146..87bb39060e8becd02c140e5d5effde8fef8295f0 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 @@ 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 6a96655d86260920093d6489ecb02f93064fa1c1..8ed403767540e2fa6b859aca0d9dfcb9498e9d27 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 @@ 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 3b0029e61b4c65b2ff95584df8554ffe7b7ef3be..667b118ba4ee1a35b2170414c689433cd200f243 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 @@ 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 90f57bad6b24395fd59f89ae274beea11318155a..ff31ce45831a7b8bb8d224fae444559de9f0ff14 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 @@ 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 fed75e6ab58ca8b2df9cec515784330f064a2726..61c7b137607e5d31d73c6eef76b7960636038585 100644 --- a/arch/arm/boot/dts/bcm4708-netgear-r6250.dts +++ b/arch/arm/boot/dts/bcm4708-netgear-r6250.dts @@ -22,8 +22,8 @@ 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 79542e18915c5d964520e6e0b2212d6cb15129ed..4c60eda296d9737f7a0269da39952c401bf60d92 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 @@ 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 abd35a518046dc58104d4437f6cd29e15a8c9677..7d46561fca3cdde381dd0d5e38761a816ba0f142 100644 --- a/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts +++ b/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts @@ -21,8 +21,8 @@ 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 c29950b43a95392b957271ab571bcd87982a6f58..0e273c598732f288915379e2c5e043c544a8e6a6 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 @@ 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 4dcec6865469ac2ebed680a532600a6ba183cc1c..083ec4036bd72b278e3f22caf34c70a2d621147b 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 @@ 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 0e349e39f6081e01430688aff0db5f2715ebf06b..8b1a05a0f1a115fcebe10fd9171c6f6cf0f7543b 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 @@ 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 8f1e565c3db45b709ba1a4be968d99aa174098ef..6c6bb7b17d27ab0ded09f7dbdca4ba8b5fc719c8 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 @@ 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 ce888b1835d1f7e9a177067d8cd72372bd2eacc3..d29e7f80ea6aa144e9dfee27fbdfe867a6befd06 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 @@ 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 ed8619b54d692e7d52026d44a03aebdd6e7b6fb3..38fbefdf2e4e410d2a0c105569843d1f1f2ec3fd 100644 --- a/arch/arm/boot/dts/bcm4709-linksys-ea9200.dts +++ b/arch/arm/boot/dts/bcm4709-linksys-ea9200.dts @@ -18,8 +18,8 @@ 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 1f87993eae1d1a8407dd3e07256888806c1b882e..7989a53597d4fdd73f495b1d21d2aaa6377e16e2 100644 --- a/arch/arm/boot/dts/bcm4709-netgear-r7000.dts +++ b/arch/arm/boot/dts/bcm4709-netgear-r7000.dts @@ -21,8 +21,8 @@ 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 6c6199a53d0918d707c362aae413dd7fde837545..87b655be674c540d9d288082eef71c072568c8e4 100644 --- a/arch/arm/boot/dts/bcm4709-netgear-r8000.dts +++ b/arch/arm/boot/dts/bcm4709-netgear-r8000.dts @@ -32,8 +32,8 @@ 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 911c65fbf2510cddb06d1c5dc227f044d1ed6658..e635a15041dd8c133ec773f9c5b99f2f135c4b35 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 @@ 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 0faae8950375337e236c9a501d47eeefa32fd6d1..36d63beba8cd84889c8dd8b290c2087f6f111797 100644 --- a/arch/arm/boot/dts/bcm47094-linksys-panamera.dts +++ b/arch/arm/boot/dts/bcm47094-linksys-panamera.dts @@ -18,8 +18,8 @@ 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 50f7cd08cfbbc41e6d76211f0510cb977e2dbc7f..a6dc99955e191832645d3684e8ffc8dfc890d0d0 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 @@ 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 bcc420f85b566fe73e93e62a09f1f6f31702cc62..ff98837bc0db0dfccd9f778e65d50da2136dd58f 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 @@ 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 9ae815ddbb4bd5f682864a6de9bc032ebd3c4898..2666195b6ffebdac68905f37312d7b3e346a01f1 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 @@ 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 a21b2d1855968b915142ab0837d4f95523170ca9..9f798025748bd715afe8f3bc7ed7bf2d33fabd0f 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 @@ 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 4d5c5aa7dc4234aa15431ca970810943deed9e88..c8dfa4c58d2f181db8cb769801b12e7e52163b36 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 @@ 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 f42a1703f4ab1a90cc728c45f2e1a544ef1b71df..42097a4c2659f926afa4089fb30cda7e657ef389 100644 --- a/arch/arm/boot/dts/bcm47094-netgear-r8500.dts +++ b/arch/arm/boot/dts/bcm47094-netgear-r8500.dts @@ -18,8 +18,8 @@ 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 ac3a4483dcb3f870c77751bfc0c5a4d536a374ca..a2566ad4619c48bc0c61fe45de68d99333e85120 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 3bf90d9e33353b366d826b876d0b40101ad01e36..a294a02f2d232e0994d037d536c3a3df32e30def 100644 --- a/arch/arm/boot/dts/dra7-l4.dtsi +++ b/arch/arm/boot/dts/dra7-l4.dtsi @@ -1168,7 +1168,7 @@ }; }; - 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 @@ }; }; - 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 4e1bbc0198eb7f6e1a0db7de486b3c753b09ebfd..7ecf8f86ac747ce2c4af9cd1d17d82937509a19a 100644 --- a/arch/arm/boot/dts/dra7.dtsi +++ b/arch/arm/boot/dts/dra7.dtsi @@ -46,6 +46,7 @@ timer { compatible = "arm,armv7-timer"; + status = "disabled"; /* See ARM architected timer wrap erratum i940 */ interrupts = , , , @@ -1090,3 +1091,22 @@ 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 5370ee477186c1877025a190624a95d04d4eac2d..7777bf51a6e642c64775b175bfcc5426dd045235 100644 --- a/arch/arm/boot/dts/exynos4210-i9100.dts +++ b/arch/arm/boot/dts/exynos4210-i9100.dts @@ -136,7 +136,7 @@ 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 7e7c243ff196a622a471862533cfe361c1c615e5..06450066b1787fbfc757eaf0cde6b3020a36afbf 100644 --- a/arch/arm/boot/dts/exynos4412-midas.dtsi +++ b/arch/arm/boot/dts/exynos4412-midas.dtsi @@ -174,7 +174,7 @@ 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 @@ 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 @@ 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 2983e91bc7ddee6be97465167e737187ccd75263..869d80be1b36e292e5afe56b4d55ad8cfe5a50ae 100644 --- a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi +++ b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi @@ -279,7 +279,7 @@ 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 186790f39e4d3b7154d1f0a5b9060df6036e51f3..d0e48c10aec2bfc0624baf8417b3a2d7b242a551 100644 --- a/arch/arm/boot/dts/exynos5250-smdk5250.dts +++ b/arch/arm/boot/dts/exynos5250-smdk5250.dts @@ -134,7 +134,7 @@ 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 c952a615148e55b24285f19a8ff7abdf4087a950..737f0e20a4525e082e550033dd024088550c4175 100644 --- a/arch/arm/boot/dts/exynos5250-snow-common.dtsi +++ b/arch/arm/boot/dts/exynos5250-snow-common.dtsi @@ -292,7 +292,7 @@ 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 9dcae1f2bc99f4093ac1266440c13cfbba2de1d4..c5b9da0d7e6cea368d61123b1c7cca14745e2614 100644 --- a/arch/arm/boot/dts/omap3.dtsi +++ b/arch/arm/boot/dts/omap3.dtsi @@ -24,6 +24,9 @@ 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 d6475cc6a91a7e63c20859f7d9282a726b81919e..049174086756dbab7f7fc5e015aace10d49105d5 100644 --- a/arch/arm/boot/dts/omap4.dtsi +++ b/arch/arm/boot/dts/omap4.dtsi @@ -22,6 +22,11 @@ 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 532868591107b5eb65b98cda509da388b3eebd21..1f1c04d8f4721225870c18fddb5f969bdfa26a59 100644 --- a/arch/arm/boot/dts/omap44xx-clocks.dtsi +++ b/arch/arm/boot/dts/omap44xx-clocks.dtsi @@ -770,14 +770,6 @@ 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 2bf2e5839a7f1ed61f2a1226d1e221d297e0b603..530210db2719844585f9bb7fe2aaa2b1d9e91444 100644 --- a/arch/arm/boot/dts/omap5.dtsi +++ b/arch/arm/boot/dts/omap5.dtsi @@ -25,6 +25,11 @@ 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 09a152b9155754ac5ab7bbc95429a88582e62cf3..1d6f0c5d02e9a282ff3aaca38cfdf7999c022881 100644 --- a/arch/arm/boot/dts/r8a7790-lager.dts +++ b/arch/arm/boot/dts/r8a7790-lager.dts @@ -53,6 +53,9 @@ 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 f603cba5441fcb9e03e0fc6984ee9d1ca44c5d2e..6af1727b826908d3338d66b40baaae13ea752952 100644 --- a/arch/arm/boot/dts/r8a7791-koelsch.dts +++ b/arch/arm/boot/dts/r8a7791-koelsch.dts @@ -53,6 +53,9 @@ 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 c6d563fb7ec7c17ff41afcfde07b963c16ebddd7..bf51e29c793a3bff7539b8fcdefc401f5b9da87b 100644 --- a/arch/arm/boot/dts/r8a7791-porter.dts +++ b/arch/arm/boot/dts/r8a7791-porter.dts @@ -28,6 +28,8 @@ 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 abf487e8fe0f366fed09b3b4778a3afed6ebf19d..2b59a0491350042314e02538434505f54280528d 100644 --- a/arch/arm/boot/dts/r8a7793-gose.dts +++ b/arch/arm/boot/dts/r8a7793-gose.dts @@ -49,6 +49,9 @@ 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 3f1cc5bbf32979e84dc4d5b2f8df8b258478c789..32025986b3b9b586bd28cdbbf1e9e1b51a7ff3fa 100644 --- a/arch/arm/boot/dts/r8a7794-alt.dts +++ b/arch/arm/boot/dts/r8a7794-alt.dts @@ -19,6 +19,9 @@ 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 677596f6c9c9a7d9da31eb75254aed51e0baba04..af066ee5e27540a39fdf9946e45a25ce771d593a 100644 --- a/arch/arm/boot/dts/r8a7794-silk.dts +++ b/arch/arm/boot/dts/r8a7794-silk.dts @@ -31,6 +31,8 @@ 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 ca064359dd308d778c522c98c68c9b22b68bb8b4..b47d8300e536ed047551ff972b52ee4e64eae5bb 100644 --- a/arch/arm/boot/dts/s5pv210-fascinate4g.dts +++ b/arch/arm/boot/dts/s5pv210-fascinate4g.dts @@ -115,7 +115,7 @@ 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 9f285c7cf9141713fc2ff3275fbbe831f1e00020..c0de1337bdaad86c3195be076c42faa2cb3b0f6a 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>; }; - /* - * Marked: - * 2122 - * C3H - * DQEEE - * LIS3DH? - */ - lis3dh@18 { - /* Accelerometer */ - compatible = "st,lis3dh-accel"; + magnetometer@1e { + compatible = "st,lsm303dlm-magn"; st,drdy-int-pin = <1>; - reg = <0x18>; + 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 = <&accel_tvk_mode>; + 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>; + }; + pressure@5c { + /* Barometer/pressure sensor */ + compatible = "st,lps001wp-press"; + reg = <0x5c>; + vdd-supply = <&ab8500_ldo_aux1_reg>; + vddio-supply = <&db8500_vsmps2_reg>; }; }; @@ -54,5 +60,26 @@ }; }; }; + + 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 d84686e0037091b18d9a93893e1fff0ec7e401ff..dee4d32ab32c4423468d730b493dd3aef01443ed 100644 --- a/arch/arm/boot/dts/stm32mp15-pinctrl.dtsi +++ b/arch/arm/boot/dts/stm32mp15-pinctrl.dtsi @@ -1806,10 +1806,15 @@ 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 @@ 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 @@ 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 a0b829738e8f2143dccdb9dbd207b7a4c60ba598..068aabcffb13b3a71f6a0d9efe26f9b7931567f2 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 @@ 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 b0b15c97306b87bead1304d9fabb714985eb62eb..e81e5937a60aea38ff355ae30161324d86e5c914 100644 --- a/arch/arm/boot/dts/uniphier-pxs2.dtsi +++ b/arch/arm/boot/dts/uniphier-pxs2.dtsi @@ -583,7 +583,7 @@ 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 f70af1d0514b9ad81c3498f41a72ca21bc78092c..5c6cd3c63cbc1527bed79a4309db507c2743b289 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 34d73200e7fa6eff750bb2ae5fe9a9017c24af0f..4b59d027ba4acde262603caecda9d11bd2a952f1 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 bed897e9a181a1ae0c7104fdd7b73e34e4f74975..86345751bbf3a3d8a7e3af72684985833cf6734b 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 be18af52e7dc9a5657af1a9a3acb50f56f66d8d3..b697fa5d059a2389b32b58ee1e7abff876da99c7 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 3023c1acfa19475e2972ff47342ba958cb8b7ef3..c31bd8f7c0927e5226984b6573c3d4d76a1d445c 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 72627c5fb3b2cef225d989009f0efe9b9e7c0ff9..761e88c739558be26a70be09a2ae2cec5792d044 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 fc56fc3e19316d423155be0e40632b3282656da6..9575b404019c963a834dd71ba7a2076f847560ca 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 99035b5891ef44273832b6b722bb6bf4ca6c737f..f717d7122d9d16bd21b692cc06290a758fb083cd 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 1e36c40533c161aa759a61b6d23b2f09475d7b60..402e3f34c7ed886dda7f8b2fc7d398ef755f0a2d 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 be8050b0c3dfbfb3e2d9e70705e014a0ec7ff915..70993af22d80cf9a2afc305cbe76d47bce2e8c9e 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 067e12edc34199edbb77617654b5ef5bb0b49e48..f2819c25b602994b1f104bd8798625902189a6c4 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 6c12d9fe694e3eaa1da4008dcf6cd9db2f4d0f24..373b61f9a4f01c17fba7a5d4398034129a43f3d1 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 7f0745a97e20f21f67483d91484939bc1bd6c198..28311dd0fee686fde3d78cdbaecc628667059047 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 98c1e68bdfcbb96daa3f955ed87297c75d96c363..4af5c767962423735f9e871a7b8ad3ac1de78b04 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 08660ae9dcbce1c3e38c2d48d4b558db76547333..b1423fb130ea4a04d5192ec61beb8453b29b04af 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 50b1803dfdbff427de9b19bd092ab69d2623283d..4f17074f26b698e6be35bba3860bd9bcf0c544e1 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 00664c78facab321049bf7e7dfcdb380d15986d9..931df62a7831261926611157ee8fff55e5e2701e 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 24bd20564be7764771bc2aa9643af952fa74ba4c..43f0a3ebf3909d6c85daa059cdd7e1acbb2a50bc 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 0b2fd7e2e9b429fd40ecef879a76f8f7cbb3bacb..90b1e9be430e97e779e63a506174de7c26ad4bd5 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 6f28aaa9ca79b2c849b892535c192cb3fc290f5f..c3f280d08fa7fde7fa55c35a8b71908744adc95b 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 9473aa0305e5f77883bb65e1f343ce7a8b9452e1..e8304392074b845d8ddfbbab20aac596ca7ba067 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 4391e433a4b2fc3f9bd0843fe1a4a68077818809..9d19aa98a663e490e4853406effbd4aa9c86a326 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 09a65c2dfd732766a20637ec635d00fd0e3a57f8..b8fa01f9516ebe46ab9937feaff5f4bef90cd08e 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 14a6c3eb329850dab50f29908cade0e8ab68dca6..f745a65d3bd7a3239eaabc25a6771c5d91323cf5 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 7290f033fd2dad44ec16dfc9c11590f1be433ab6..1610c567a6a3a10302d17898ee6cacf7ba0bfb1a 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 17b66f0d0deef07dc6f48c60c1baf874664a8360..605925684b0aa4d1015c9d0d3eb4a17d76f28f75 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 c23dbf8bebeeb7f4387b90e7827c6a570d940566..d54d69cf17322d333b90c6b1e5116d947117d7d1 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 ab69250a86bc34a5976d9622cf6d25091f203f2d..fa259825310c5aced95ac256171d907e3c0f3549 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 88950e41a3a9e7eb50b043560d89536d2dbde2c7..59d916ccdf25fe7ffbf6724051145bd657a8cd1b 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 2de019f7503e87d9f5229b5672c901a0dae63958..8359748a19a11a6a206c59facacc0378704c6cc4 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 8eade04167399ce701dbe761e1dc2acef9f76379..5c5e1952000ab49aeeb03fecafe9a5e032ee0935 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 c4b49b322e8a88238c1b4192ee112c22a7c00ec9..f5f790c6e5f896590b8394c7d6e0fa54c85d3879 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 23d204dddabdd3cdef6c4c2b0b1b15ad8c34f15e..a7c07ae524d9e96df8bbce4e1dfa465075d2b239 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 90309208bb28dd39a7923eca0fd353ce93b14bf6..07c5e0fc006f7f48dbb572cbcf5542ce7b15ea22 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 302e24be0a31821ec18d76d5a85a918aafef4755..358df6d926affc45d1e91addeb12fe42a1f42921 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 3402cec87035bbea4ee851482323d99b4191c94c..df62044ff7a7a9d404eaded80e1ebf7d4d8a1d25 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 @@ 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 7c9dbde645b52686b327572dc7c7d9fb1c51c535..e8163c572daba6a1398b90d53f6320dc6f4bb3e4 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 @@ 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 6704ea2c72a3556e144f5e2e546035d840d22383..cc29223ca188c2672675ddfa09d749cd8dca9a40 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 @@ 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 d5b6c0a1c54a542d8fa5973deae4f5579b92c93f..a89e47d95eef22fb51f841cbdd47e2684f7c6ed1 100644 --- a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi +++ b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi @@ -156,7 +156,8 @@ }; 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 5e046f9d48ce91ebb8806e2bb0172d8e3af16e6a..592c6bc10dd1d848a20dd68719feebeb5c93eccc 100644 --- a/arch/arm64/boot/dts/mediatek/mt8173.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt8173.dtsi @@ -1169,7 +1169,7 @@ <&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 29d8cf6df46bff227f1b29a5d00654624a6ae2d0..99c2d6fd6304aa5422f4dc773d2ca47c80f059c6 100644 --- a/arch/arm64/boot/dts/mediatek/pumpkin-common.dtsi +++ b/arch/arm64/boot/dts/mediatek/pumpkin-common.dtsi @@ -56,7 +56,7 @@ 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 c4ac6f5dc008d4f439259ec21f8a649fcf50f133..96d36b38f269602c53b32c9334473fe5759229a1 100644 --- a/arch/arm64/boot/dts/qcom/sdm845-db845c.dts +++ b/arch/arm64/boot/dts/qcom/sdm845-db845c.dts @@ -1015,7 +1015,7 @@ 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 @@ 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 f97f354af86f4ef9365a31a1220b7213f63a338f..ea6e3a11e641b0f4df11600f6ea56ba5a9672995 100644 --- a/arch/arm64/boot/dts/qcom/sdm845.dtsi +++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi @@ -2192,7 +2192,7 @@ #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 f0a872e02686d7dcb331d6c4eda43b1d25490d50..1aec54590a11aba8170d7293680f374521a837b7 100644 --- a/arch/arm64/boot/dts/qcom/sm8150.dtsi +++ b/arch/arm64/boot/dts/qcom/sm8150.dtsi @@ -748,7 +748,7 @@ <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 d057d85a19fb26864b5e143c640549c047707edf..d4547a192748b839b6ad785494942f4a63057add 100644 --- a/arch/arm64/boot/dts/qcom/sm8250.dtsi +++ b/arch/arm64/boot/dts/qcom/sm8250.dtsi @@ -216,7 +216,7 @@ pmu { compatible = "arm,armv8-pmuv3"; - interrupts = ; + interrupts = ; }; psci { @@ -1555,7 +1555,7 @@ #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 @@ (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 2eda9f66ae81d8ff6b1bc4b8fbff68dd9bc0f912..e8bf6f0c4c4009c37fb40e8fe52590343508e0c6 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 2c5b057c30c62ee5c101b8ac56d174046a2584f4..ad26f5bf0648de8d7bfaaa5dfffab427eb44199d 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 @@ 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 26aee004a44e2d03d57dd8a120a167b3e36e349b..c4b50a5e3d92c8e7e1cc83020eb2ce408502e865 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 d6cae90d7fd9e647221d4ba159cdb5b347a7de51..e6ef837c4a3b3a9ac8a4e261ec5f3851423f160e 100644 --- a/arch/arm64/boot/dts/renesas/r8a77980.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a77980.dtsi @@ -990,8 +990,8 @@ reg = <1>; - vin4csi41: endpoint@2 { - reg = <2>; + vin4csi41: endpoint@3 { + reg = <3>; remote-endpoint = <&csi41vin4>; }; }; @@ -1018,8 +1018,8 @@ reg = <1>; - vin5csi41: endpoint@2 { - reg = <2>; + vin5csi41: endpoint@3 { + reg = <3>; remote-endpoint = <&csi41vin5>; }; }; @@ -1046,8 +1046,8 @@ reg = <1>; - vin6csi41: endpoint@2 { - reg = <2>; + vin6csi41: endpoint@3 { + reg = <3>; remote-endpoint = <&csi41vin6>; }; }; @@ -1074,8 +1074,8 @@ 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 e0ccca2222d2d00c23bc354d3f1ae37dc70fadcf..b9e3b6762ff42dde8f41c0d97fe22daa6ae4fef0 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 6cf77ce9aa9372ceea92eaeb013d8ea2594b78fb..86ec32a919d296a983b7091940ff9489579c76d2 100644 --- a/arch/arm64/boot/dts/renesas/r8a779a0.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a779a0.dtsi @@ -50,10 +50,7 @@ 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 1bf77957d2c21db99bd339f40d0fee6888d94e9d..08b8525bb7257bbee4901d4c4c69e1288d20dff6 100644 --- a/arch/arm64/boot/dts/renesas/salvator-common.dtsi +++ b/arch/arm64/boot/dts/renesas/salvator-common.dtsi @@ -36,6 +36,9 @@ 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 202177706cdeb959e0591fac9d60047557a1d444..05e64bfad0235eace3bd4c924be05256d267298c 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 a2e085db87c53917021c42c70a847a88d332a19f..e11521b4b9ca453401ecdc1fdb8920040f3117f3 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 a87b8a678719635f86946ddf0dff9671bdc8f11c..8f2c1c1e2c64e0b96de408caa129849bab4cc445 100644 --- a/arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi +++ b/arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi @@ -734,7 +734,7 @@ 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 0e52dadf54b3a7de3c030da4097b17b9d755290b..be97da1322580c330c6609f626dcf255c944aa09 100644 --- a/arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi +++ b/arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi @@ -564,7 +564,7 @@ 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 @@ 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 5f6a7f17b7706ff5535b5fd7769d337cc5504fa0..d487757cfa3c93d78ef828e50c98e2e5eb6500d6 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 cc19d872b1bc75ef2933a23bfafb226f73bd01b8..69a9e94cf84848f350c581d1dfae2a789892ed82 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 b8eb0453123d1a34c293b67ede4bf931baa454e6..454621a20eaa6e7d72570432702468d2cf7ccd41 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 53c92e060c3dd6676968ae4761a209eeed843681..326364c3ab5c83b46e409e083933a69dc4e5ef8b 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 cf618d8f6cec420753cc0a0160e38516f04b3103..503d9b31795c0965902805a08bb7fee21fb718c5 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 63a52ad9a75c03deab976e09e5a709135f71102f..a3405b8c344b5b24c71c831931cb69921f39990a 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 fb507d56992292bd7ce2eac116063b932527dbe9..8df6ad8cb09d6d144d07622395716b22abadacca 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 111d9c9abddd1885785c135cfb4a4f07ff8ab807..dce6dcebfca189ee4f99d8c7ee03c00cc879f878 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 ccc3f6067742433d3fe684833c4193293e360ba9..09eb1456aed4a9450b433ef7e6b10358c6a84557 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 6b958dcdf136f4fc9782b0e0129cbef511af17ed..7868330dd54ec2f22faf815b1568abfd339787ce 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 8536008e3e356511460acbb818dead4bf1d62340..184602a974542771d508fad71a24f3c5af8d64e7 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 (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; + if (crypto_memneq(tag, otag, authsize)) { + memzero_explicit(tag, AES_BLOCK_SIZE); + return -EBADMSG; + } + } return 0; } diff --git a/arch/arm64/crypto/poly1305-glue.c b/arch/arm64/crypto/poly1305-glue.c index f33ada70c4ed8f84171b202e3f447880e0e7696f..01e22fe408235b4986c1f627ca46c7a2ddc10f07 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 92d0d2753e812fef09862c2a1b231f8113c7b555..889ca0f8972b3736c044a1f80bdccf5ddc41e4df 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 8baf8d1846b641da88ad9c9ed8b3c040000bc75f..c1757659516fcb5c36196b5ea33218a55550e339 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 3f9d0f32698757893bd0440fca0ca5ee12e0c72e..491179922f49808f1144a7a313b3eb647067d17e 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 d33d3ee92cc98c46af6ffcf6886d6b10a88231e1..1cfc4f61c76143ae84b55ffff5acef86c16bb2c2 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 1cfb768df350b43151e6b5f9d0224b2db96c4051..9c77313f5a60885231e9374b8853a0a3252d3504 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 ddf7aca9ff45912fd0fa6ac7525bda109e806f75..d6cfb792b66ca420a26b6ef1a26daf4e03e9c2e8 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 cde606c0323ee93262e0b2d2993894f7efcde511..b6a3a36e15f58cf98c7829bc2ad746349d23a74e 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 57c6f086dfb4c4daf480f00bd3eee3993e3671f0..04adf2c0371e8e4006c022b1f68bef27b24c0205 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 5df500dcc627a61a81667ff94cdee9c3c90abd73..8a078fc662ac5df176785caa5f04746b55f50063 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 2c26ca5b7bb04f07d2d48c5dc19a22e18ce2bbeb..2b5454fa0f24d08f0dee9cd39742e99fc8a39c19 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 2bce4e17dc2222b35b0b9cde71127afe6ec93140..4eed9601d9d41980c28a3c93bdc26ec05d24c268 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