diff --git a/patch.sh b/patch.sh index 11179a50825a38d60a499acb875ba8fdb2956277..05dd05d1b86883bf6aa18dc430baa0d465fcae6d 100644 --- a/patch.sh +++ b/patch.sh @@ -189,20 +189,17 @@ dts () { ${git} "${DIR}/patches/dts/0001-ARM-dts-omap3-beagle-add-i2c2.patch" ${git} "${DIR}/patches/dts/0002-ARM-dts-omap3-beagle-xm-spidev.patch" - ${git} "${DIR}/patches/dts/0003-ARM-dts-beagle-xm-make-sure-dvi-is-enabled.patch" - ${git} "${DIR}/patches/dts/0004-ARM-DTS-omap3-beagle-xm-disable-powerdown-gpios.patch" - ${git} "${DIR}/patches/dts/0005-ARM-DTS-omap3-beagle.dts-enable-twl4030-power-reset.patch" - ${git} "${DIR}/patches/dts/0006-arm-dts-omap4-move-emif-so-panda-es-b3-now-boots.patch" - ${git} "${DIR}/patches/dts/0007-omap3-beagle-xm-ehci-works-again.patch" - ${git} "${DIR}/patches/dts/0008-ARM-dts-omap3-beagle-ddc-i2c-bus-is-not-responding-d.patch" - ${git} "${DIR}/patches/dts/0009-first-pass-imx6q-ccimx6sbc.patch" - ${git} "${DIR}/patches/dts/0010-imx6-wl1835-base-boards.patch" - ${git} "${DIR}/patches/dts/0011-imx6q-sabresd-add-support-for-wilink8-wlan-and-bluet.patch" - ${git} "${DIR}/patches/dts/0012-imx6sl-evk-add-support-for-wilink8-wlan-and-bluetoot.patch" - ${git} "${DIR}/patches/dts/0013-ARM-dts-imx53-qsb-select-open-drain-mode-for-i2c1-pa.patch" - - if [ "x${regenerate}" = "xenable" ] ; then - number=13 + ${git} "${DIR}/patches/dts/0003-ARM-DTS-omap3-beagle.dts-enable-twl4030-power-reset.patch" + ${git} "${DIR}/patches/dts/0004-arm-dts-omap4-move-emif-so-panda-es-b3-now-boots.patch" + ${git} "${DIR}/patches/dts/0005-ARM-dts-omap3-beagle-ddc-i2c-bus-is-not-responding-d.patch" + ${git} "${DIR}/patches/dts/0006-first-pass-imx6q-ccimx6sbc.patch" + ${git} "${DIR}/patches/dts/0007-imx6-wl1835-base-boards.patch" + ${git} "${DIR}/patches/dts/0008-imx6q-sabresd-add-support-for-wilink8-wlan-and-bluet.patch" + ${git} "${DIR}/patches/dts/0009-imx6sl-evk-add-support-for-wilink8-wlan-and-bluetoot.patch" + ${git} "${DIR}/patches/dts/0001-arm-obvious.patch" + + if [ "x${regenerate}" = "xenable" ] ; then + number=9 cleanup fi } @@ -235,13 +232,8 @@ fixes () { start_cleanup fi - ${git} "${DIR}/patches/fixes/0001-ARM-move-heavy-barrier-support-out-of-line.patch" - ${git} "${DIR}/patches/fixes/0002-ARM-add-soc-memory-barrier-extension.patch" -# ${git} "${DIR}/patches/fixes/0003-Revert-ARM-OMAP4-remove-dead-kconfig-option-OMAP4_ER.patch" -# ${git} "${DIR}/patches/fixes/0004-ARM-omap2-restore-OMAP4-barrier-behaviour.patch" - if [ "x${regenerate}" = "xenable" ] ; then - number=4 + number=1 cleanup fi } @@ -263,7 +255,7 @@ pru () { } mainline () { - git format-patch -1 ${SHA} --start-number ${num} -o ../patches/bbb_overlays/mainline/ + git format-patch -1 ${SHA} --start-number ${num} -o ../patches/${directory}/ } bbb_overlays () { @@ -303,27 +295,33 @@ bbb_overlays () { echo "dir: bbb_overlays/mainline" #regenerate="enable" if [ "x${regenerate}" = "xenable" ] ; then + directory="bbb_overlays/mainline" SHA="668abc729fcb9d034eccadf63166d2c76cd645d1" ; num="1" ; mainline - SHA="a2f776cbb8271d7149784207da0b0c51e8b1847c" ; num="2" ;mainline - SHA="5d1a2961adf906f965b00eb8059fd2e0585e0e09" ; num="3" ;mainline - SHA="4f001fd30145a6a8f72f9544c982cfd3dcb7c6df" ; num="4" ;mainline + SHA="a2f776cbb8271d7149784207da0b0c51e8b1847c" ; num="2" ; mainline + SHA="5d1a2961adf906f965b00eb8059fd2e0585e0e09" ; num="3" ; mainline + SHA="4f001fd30145a6a8f72f9544c982cfd3dcb7c6df" ; num="4" ; mainline exit 2 fi echo "dir: bbb_overlays/nvmem" #regenerate="enable" if [ "x${regenerate}" = "xenable" ] ; then - start_cleanup + directory="bbb_overlays/nvmem" + SHA="eace75cfdcf7d9937d8c1fb226780123c64d72c4" ; num="1" ; mainline + SHA="69aba7948cbe53f2f1827e84e9dd0ae470a5072e" ; num="2" ; mainline + SHA="e2a5402ec7c6d0442cca370a0097e75750f81398" ; num="3" ; mainline + SHA="2af38ab572b031a4111f01153cc020b1038b427b" ; num="4" ; mainline + SHA="354ebb541dfa37a83395e5a9b7d68c34f80fffc0" ; num="5" ; mainline + SHA="4ab11996b489ad65092216315484824ed32018f8" ; num="6" ; mainline + SHA="b470d6d7a5dfe41112d55c39eac67ddc5afac80d" ; num="7" ; mainline + SHA="3d0b16a66c8a9d10294572c6f79df4f15a27825d" ; num="8" ; mainline + exit 2 fi - ${git} "${DIR}/patches/bbb_overlays/nvmem/0001-nvmem-Add-a-simple-NVMEM-framework-for-nvmem-provide.patch" - ${git} "${DIR}/patches/bbb_overlays/nvmem/0002-nvmem-Add-a-simple-NVMEM-framework-for-consumers.patch" - ${git} "${DIR}/patches/bbb_overlays/nvmem/0003-nvmem-Add-nvmem_device-based-consumer-apis.patch" - ${git} "${DIR}/patches/bbb_overlays/nvmem/0004-nvmem-Add-bindings-for-simple-nvmem-framework.patch" - ${git} "${DIR}/patches/bbb_overlays/nvmem/0005-Documentation-nvmem-add-nvmem-api-level-and-how-to-d.patch" - ${git} "${DIR}/patches/bbb_overlays/nvmem/0006-nvmem-qfprom-Add-Qualcomm-QFPROM-support.patch" - ${git} "${DIR}/patches/bbb_overlays/nvmem/0007-nvmem-qfprom-Add-bindings-for-qfprom.patch" - ${git} "${DIR}/patches/bbb_overlays/nvmem/0008-nvmem-sunxi-Move-the-SID-driver-to-the-nvmem-framewo.patch" + #regenerate="enable" + if [ "x${regenerate}" = "xenable" ] ; then + start_cleanup + fi ${git} "${DIR}/patches/bbb_overlays/nvmem/0009-nvmem-make-default-user-binary-file-root-access-only.patch" ${git} "${DIR}/patches/bbb_overlays/nvmem/0010-nvmem-set-the-size-for-the-nvmem-binary-file.patch" @@ -513,12 +511,10 @@ beaglebone () { start_cleanup fi - ${git} "${DIR}/patches/beaglebone/phy/0001-cpsw-Add-support-for-byte-queue-limits.patch" - ${git} "${DIR}/patches/beaglebone/phy/0002-cpsw-napi-polling-of-64-is-good-for-gigE-less-good-f.patch" - ${git} "${DIR}/patches/beaglebone/phy/0003-cpsw-search-for-phy.patch" + ${git} "${DIR}/patches/beaglebone/phy/0001-cpsw-search-for-phy.patch" if [ "x${regenerate}" = "xenable" ] ; then - number=3 + number=1 cleanup fi @@ -528,11 +524,12 @@ beaglebone () { start_cleanup fi + #http://git.ti.com/gitweb/?p=ti-cm3-pm-firmware/amx3-cm3.git;a=summary #git clone git://git.ti.com/ti-cm3-pm-firmware/amx3-cm3.git #cd amx3-cm3/ - #git checkout origin/next-upstream -b tmp + #git checkout origin/ti-v4.1.y -b tmp - #commit 277eef8611e260a5d73a9e3773fff8f767fe2b01 + #commit 730f0695ca2dda65abcff5763e8f108517bc0d43 #Author: Dave Gerlach <d-gerlach@ti.com> #Date: Wed Mar 4 21:34:54 2015 -0600 # @@ -541,10 +538,11 @@ beaglebone () { # This version, 0x191, includes the following changes: # - Add trace output on boot for kernel remoteproc driver # - Fix resouce table as RSC_INTMEM is no longer used in kernel + # - Add header dependency checking # # Signed-off-by: Dave Gerlach <d-gerlach@ti.com> - #cp -v bin/am* /opt/github/bb-kernel/KERNEL/firmware/ + #cp -v bin/am* /opt/github/linux-dev/KERNEL/firmware/ #git add -f ./firmware/am* @@ -556,6 +554,159 @@ beaglebone () { fi } +etnaviv () { + echo "dir: etnaviv" + #regenerate="enable" + if [ "x${regenerate}" = "xenable" ] ; then + start_cleanup + fi + + ${git} "${DIR}/patches/etnaviv/0001-of-Add-vendor-prefix-for-Vivante-Corporation.patch" + ${git} "${DIR}/patches/etnaviv/0002-staging-etnaviv-add-devicetree-bindings.patch" + ${git} "${DIR}/patches/etnaviv/0003-staging-etnaviv-add-drm-driver.patch" + ${git} "${DIR}/patches/etnaviv/0004-staging-etnaviv-respect-the-submission-command-offse.patch" + ${git} "${DIR}/patches/etnaviv/0005-staging-etnaviv-add-an-offset-for-buffer-dumping.patch" + ${git} "${DIR}/patches/etnaviv/0006-staging-etnaviv-quieten-down-submission-debugging.patch" + ${git} "${DIR}/patches/etnaviv/0007-staging-etnaviv-fix-multiple-command-buffer-submissi.patch" + ${git} "${DIR}/patches/etnaviv/0008-staging-etnaviv-package-up-events-into-etnaviv_event.patch" + ${git} "${DIR}/patches/etnaviv/0009-staging-etnaviv-track-the-last-known-GPU-position.patch" + ${git} "${DIR}/patches/etnaviv/0010-staging-etnaviv-ensure-that-ring-buffer-wraps.patch" + ${git} "${DIR}/patches/etnaviv/0011-staging-etnaviv-fix-checkpatch-errors.patch" + ${git} "${DIR}/patches/etnaviv/0012-staging-etnaviv-fix-checkpatch-warnings.patch" + ${git} "${DIR}/patches/etnaviv/0013-staging-etnaviv-fix-get_pages-failure-path.patch" + ${git} "${DIR}/patches/etnaviv/0014-staging-etnaviv-add-gem-operations-structure-to-etna.patch" + ${git} "${DIR}/patches/etnaviv/0015-staging-etnaviv-convert-prime-import-to-use-etnaviv_.patch" + ${git} "${DIR}/patches/etnaviv/0016-staging-etnaviv-convert-shmem-release-to-use-etnaviv.patch" + ${git} "${DIR}/patches/etnaviv/0017-staging-etnaviv-convert-cmdbuf-release-to-use-etnavi.patch" + ${git} "${DIR}/patches/etnaviv/0018-staging-etnaviv-move-drm_gem_object_release.patch" + ${git} "${DIR}/patches/etnaviv/0019-staging-etnaviv-ensure-cleanup-of-reservation-object.patch" + ${git} "${DIR}/patches/etnaviv/0020-staging-etnaviv-clean-up-etnaviv_gem_free_object.patch" + ${git} "${DIR}/patches/etnaviv/0021-staging-etnaviv-provide-etnaviv_gem_new_private.patch" + ${git} "${DIR}/patches/etnaviv/0022-staging-etnaviv-move-msm_gem_import-etc-to-etnaviv_g.patch" + ${git} "${DIR}/patches/etnaviv/0023-staging-etnaviv-clean-up-prime-import.patch" + ${git} "${DIR}/patches/etnaviv/0024-staging-etnaviv-convert-get_pages-put_pages-to-take-.patch" + ${git} "${DIR}/patches/etnaviv/0025-staging-etnaviv-clean-up-etnaviv_gem_-get-put-_pages.patch" + ${git} "${DIR}/patches/etnaviv/0026-staging-etnaviv-add-gem-get_pages-method.patch" + ${git} "${DIR}/patches/etnaviv/0027-staging-etnaviv-fix-DMA-API-usage.patch" + ${git} "${DIR}/patches/etnaviv/0028-staging-etnaviv-add-support-to-insert-a-MMU-flush-in.patch" + ${git} "${DIR}/patches/etnaviv/0029-staging-etnaviv-move-GPU-memory-management-into-MMU.patch" + ${git} "${DIR}/patches/etnaviv/0030-staging-etnaviv-publish-and-use-mmu-geometry.patch" + ${git} "${DIR}/patches/etnaviv/0031-staging-etnaviv-mmuv1-ensure-we-unmap-all-entries.patch" + ${git} "${DIR}/patches/etnaviv/0032-staging-etnaviv-move-MMU-setup-and-teardown-code-to-.patch" + ${git} "${DIR}/patches/etnaviv/0033-staging-etnaviv-hack-bypass-iommu-with-contiguous-bu.patch" + ${git} "${DIR}/patches/etnaviv/0034-staging-etnaviv-implement-round-robin-GPU-MMU-alloca.patch" + ${git} "${DIR}/patches/etnaviv/0035-staging-etnaviv-fix-etnaviv_iommu_map_gem-return-pat.patch" + ${git} "${DIR}/patches/etnaviv/0036-staging-etnaviv-implement-MMU-reaping.patch" + ${git} "${DIR}/patches/etnaviv/0037-staging-etnaviv-move-scatterlist-creation-to-etnaviv.patch" + ${git} "${DIR}/patches/etnaviv/0038-staging-etnaviv-add-userptr-mapping-support.patch" + ${git} "${DIR}/patches/etnaviv/0039-staging-etnaviv-call-the-DRM-device-drm.patch" + ${git} "${DIR}/patches/etnaviv/0040-staging-etnaviv-clean-up-printk-s-etc.patch" + ${git} "${DIR}/patches/etnaviv/0041-staging-etnaviv-safely-take-down-hangcheck.patch" + ${git} "${DIR}/patches/etnaviv/0042-staging-etnaviv-move-hangcheck-disable-to-separate-f.patch" + ${git} "${DIR}/patches/etnaviv/0043-staging-etnaviv-stop-the-hangcheck-timer-mis-firing.patch" + ${git} "${DIR}/patches/etnaviv/0044-staging-etnaviv-ensure-that-we-retire-all-pending-ev.patch" + ${git} "${DIR}/patches/etnaviv/0045-staging-etnaviv-ensure-GPU-reset-times-out.patch" + ${git} "${DIR}/patches/etnaviv/0046-staging-etnaviv-add-workarounds-for-GC320-on-iMX6.patch" + ${git} "${DIR}/patches/etnaviv/0047-staging-etnaviv-increase-iommu-page-table-size-to-51.patch" + ${git} "${DIR}/patches/etnaviv/0048-staging-etnaviv-allow-non-DT-use.patch" + ${git} "${DIR}/patches/etnaviv/0049-staging-etnaviv-dump-mmu-allocations.patch" + ${git} "${DIR}/patches/etnaviv/0050-staging-etnaviv-use-definitions-for-constants.patch" + ${git} "${DIR}/patches/etnaviv/0051-staging-etnaviv-fix-fence-wrapping-for-gem-objects.patch" + ${git} "${DIR}/patches/etnaviv/0052-staging-etnaviv-move-scatterlist-map-unmap.patch" + ${git} "${DIR}/patches/etnaviv/0053-staging-etnaviv-remove-presumption-of-BO-addresses.patch" + ${git} "${DIR}/patches/etnaviv/0054-staging-etnaviv-remove-shifting-and-bitwise-or-ing-o.patch" + ${git} "${DIR}/patches/etnaviv/0055-staging-etnaviv-clean-up-etnaviv-mmu-scatterlist-cod.patch" + ${git} "${DIR}/patches/etnaviv/0056-staging-etnaviv-better-DMA-API-usage.patch" + ${git} "${DIR}/patches/etnaviv/0057-staging-etnaviv-iommu-add-a-poisoned-bad-page.patch" + ${git} "${DIR}/patches/etnaviv/0058-staging-etnaviv-validate-user-supplied-command-strea.patch" + ${git} "${DIR}/patches/etnaviv/0059-staging-etnaviv-allow-get_param-without-auth.patch" + ${git} "${DIR}/patches/etnaviv/0060-staging-etnaviv-fix-busy-reporting.patch" + ${git} "${DIR}/patches/etnaviv/0061-staging-etnaviv-fix-event-allocation-failure-path.patch" + ${git} "${DIR}/patches/etnaviv/0062-staging-etnaviv-remove-powerrail-support.patch" + ${git} "${DIR}/patches/etnaviv/0063-staging-etnaviv-NULL-out-stale-pointers-at-unbind-ti.patch" + ${git} "${DIR}/patches/etnaviv/0064-staging-etnaviv-move-mutex-around-component_-un-bind.patch" + ${git} "${DIR}/patches/etnaviv/0065-staging-etnaviv-move-PM-calls-into-bind-unbind-callb.patch" + ${git} "${DIR}/patches/etnaviv/0066-staging-etnaviv-separate-out-etnaviv-gpu-hardware-in.patch" + ${git} "${DIR}/patches/etnaviv/0067-staging-etnaviv-add-support-to-shutdown-and-restore-.patch" + ${git} "${DIR}/patches/etnaviv/0068-staging-etnaviv-runtime-PM-add-initial-support.patch" + ${git} "${DIR}/patches/etnaviv/0069-staging-etnaviv-add-support-for-offset-physical-memo.patch" + ${git} "${DIR}/patches/etnaviv/0070-staging-etnaviv-remove-add-child-kernel-message.patch" + ${git} "${DIR}/patches/etnaviv/0071-staging-etnaviv-quiten-down-some-further-debugging-m.patch" + ${git} "${DIR}/patches/etnaviv/0072-staging-etnaviv-avoid-holding-struct_mutex-over-dma_.patch" + ${git} "${DIR}/patches/etnaviv/0073-staging-etnaviv-restructure-iommu-handling.patch" + ${git} "${DIR}/patches/etnaviv/0074-staging-etnaviv-import-new-headers.patch" + ${git} "${DIR}/patches/etnaviv/0075-staging-etnaviv-allow-to-draw-up-to-256-rectangles-i.patch" + ${git} "${DIR}/patches/etnaviv/0076-staging-etnaviv-correct-instruction-count-for-GC2000.patch" + ${git} "${DIR}/patches/etnaviv/0077-staging-etnaviv-reconfigure-bus-mapping-on-GC2000.patch" + ${git} "${DIR}/patches/etnaviv/0078-staging-etnaviv-properly-flush-all-TLBs-on-MMUv1.patch" + ${git} "${DIR}/patches/etnaviv/0079-staging-etnaviv-convert-to_etnaviv_bo-to-real-functi.patch" + ${git} "${DIR}/patches/etnaviv/0080-staging-etnaviv-plug-in-fence-waiting-in-cpu_prepare.patch" + ${git} "${DIR}/patches/etnaviv/0081-staging-etnaviv-allow-to-map-buffer-object-into-mult.patch" + ${git} "${DIR}/patches/etnaviv/0082-staging-etnaviv-don-t-pretend-to-have-a-single-MMU.patch" + ${git} "${DIR}/patches/etnaviv/0083-staging-etnaviv-use-GPU-device-to-construct-MMU.patch" + ${git} "${DIR}/patches/etnaviv/0084-staging-etnaviv-flush-MMU-when-switching-context.patch" + ${git} "${DIR}/patches/etnaviv/0085-staging-etnaviv-add-flag-to-force-buffer-through-MMU.patch" + ${git} "${DIR}/patches/etnaviv/0086-staging-etnaviv-use-more-natural-devicetree-abstract.patch" + ${git} "${DIR}/patches/etnaviv/0087-staging-etnaviv-don-t-override-platform-provided-IRQ.patch" + ${git} "${DIR}/patches/etnaviv/0088-staging-etnaviv-separate-GPU-pipes-from-execution-st.patch" + ${git} "${DIR}/patches/etnaviv/0089-staging-etnaviv-clean-up-public-API.patch" + ${git} "${DIR}/patches/etnaviv/0090-staging-etnaviv-clean-up-public-API-part-2.patch" + ${git} "${DIR}/patches/etnaviv/0091-staging-etnaviv-rename-last-remaining-msm_-symbols.patch" + ${git} "${DIR}/patches/etnaviv/0092-staging-etnaviv-rename-last-remaining-bits-from-msm-.patch" + ${git} "${DIR}/patches/etnaviv/0093-staging-etnaviv-quiten-down-kernel-log-output.patch" + ${git} "${DIR}/patches/etnaviv/0094-staging-etnaviv-add-proper-license-header-to-all-fil.patch" + ${git} "${DIR}/patches/etnaviv/0095-staging-etnaviv-add-Dove-GPU-subsystem-compatible.patch" + ${git} "${DIR}/patches/etnaviv/0096-staging-etnaviv-fix-missing-error-cleanups-in-etnavi.patch" + ${git} "${DIR}/patches/etnaviv/0097-staging-etnaviv-fix-off-by-one-for-iommu-aperture-en.patch" + ${git} "${DIR}/patches/etnaviv/0098-staging-etnaviv-avoid-lockdep-circular-dependency-wa.patch" + ${git} "${DIR}/patches/etnaviv/0099-staging-etnaviv-fix-gpu-debugfs-show-implementation.patch" + ${git} "${DIR}/patches/etnaviv/0100-staging-etnaviv-use-vm_insert_page-rather-than-vm_in.patch" + ${git} "${DIR}/patches/etnaviv/0101-staging-etnaviv-etnaviv_gem_fault-reduce-struct_mute.patch" + ${git} "${DIR}/patches/etnaviv/0102-staging-etnaviv-give-etnaviv_gem_mmap_offset-a-sane-.patch" + ${git} "${DIR}/patches/etnaviv/0103-staging-etnaviv-allow-etnaviv_ioctl_gem_info-locking.patch" + ${git} "${DIR}/patches/etnaviv/0104-staging-etnaviv-make-context-a-per-GPU-thing.patch" + ${git} "${DIR}/patches/etnaviv/0105-staging-etnaviv-switch-to-per-GPU-fence-completion-i.patch" + ${git} "${DIR}/patches/etnaviv/0106-staging-etnaviv-provide-etnaviv_queue_work.patch" + ${git} "${DIR}/patches/etnaviv/0107-staging-etnaviv-use-standard-kernel-types-rather-tha.patch" + ${git} "${DIR}/patches/etnaviv/0108-staging-etnaviv-no-need-to-initialise-a-list_head.patch" + ${git} "${DIR}/patches/etnaviv/0109-staging-etnaviv-fix-oops-caused-by-scanning-for-free.patch" + ${git} "${DIR}/patches/etnaviv/0110-staging-etnaviv-clean-up-etnaviv_iommu_unmap_gem-sig.patch" + ${git} "${DIR}/patches/etnaviv/0111-staging-etnaviv-increase-page-table-size-to-maximum.patch" + ${git} "${DIR}/patches/etnaviv/0112-staging-etnaviv-fix-BUG_ON-when-removing-module.patch" + ${git} "${DIR}/patches/etnaviv/0113-staging-etnaviv-fix-oops-on-removing-module.patch" + ${git} "${DIR}/patches/etnaviv/0114-staging-etnaviv-provide-a-helper-to-load-the-GPU-clo.patch" + ${git} "${DIR}/patches/etnaviv/0115-staging-etnaviv-rename-GPU-clock-functions.patch" + ${git} "${DIR}/patches/etnaviv/0116-staging-etnaviv-fix-runtime-resume.patch" + ${git} "${DIR}/patches/etnaviv/0117-staging-etnaviv-drop-event-ring-buffer-tracking.patch" + ${git} "${DIR}/patches/etnaviv/0118-staging-etnaviv-improve-efficiency-of-command-parser.patch" + ${git} "${DIR}/patches/etnaviv/0119-staging-etnaviv-no-point-looking-up-the-mapping-for-.patch" + ${git} "${DIR}/patches/etnaviv/0120-staging-etnaviv-copy-submit-command-and-bos-in-one-g.patch" + ${git} "${DIR}/patches/etnaviv/0121-staging-etnaviv-remove-cmd-buffer-offset-validation-.patch" + ${git} "${DIR}/patches/etnaviv/0122-staging-etnaviv-move-mapping-teardown-into-etnaviv_g.patch" + ${git} "${DIR}/patches/etnaviv/0123-staging-etnaviv-add-support-for-GEM_WAIT-ioctl.patch" + ${git} "${DIR}/patches/etnaviv/0124-staging-etnaviv-avoid-pinning-pages-in-CMA.patch" + ${git} "${DIR}/patches/etnaviv/0125-staging-etnaviv-fix-ret-may-be-used-uninitialized-in.patch" + ${git} "${DIR}/patches/etnaviv/0126-staging-etnaviv-fix-error-etnaviv_gpu_hw_resume-defi.patch" + ${git} "${DIR}/patches/etnaviv/0127-staging-etnaviv-debugfs-add-possibility-to-dump-kern.patch" + ${git} "${DIR}/patches/etnaviv/0128-staging-etnaviv-change-etnaviv_buffer_init-to-return.patch" + ${git} "${DIR}/patches/etnaviv/0129-staging-etnaviv-prune-dumb-buffer-support.patch" + ${git} "${DIR}/patches/etnaviv/0130-staging-etnaviv-implement-simple-hang-recovery.patch" + ${git} "${DIR}/patches/etnaviv/0131-staging-etnaviv-map-all-buffers-to-the-GPU.patch" + ${git} "${DIR}/patches/etnaviv/0132-staging-etnaviv-implement-cache-maintenance-on-cpu_-.patch" + ${git} "${DIR}/patches/etnaviv/0133-staging-etnaviv-remove-submit-type.patch" + ${git} "${DIR}/patches/etnaviv/0134-staging-etnaviv-rewrite-submit-interface-to-use-copy.patch" + ${git} "${DIR}/patches/etnaviv/0135-staging-etnaviv-don-t-use-GEM-buffer-for-internal-ri.patch" + ${git} "${DIR}/patches/etnaviv/0136-staging-etnaviv-remove-CMDSTREAM-GEM-allocation-from.patch" + ${git} "${DIR}/patches/etnaviv/0137-staging-etnaviv-some-final-trivial-changes-to-the-mo.patch" + ${git} "${DIR}/patches/etnaviv/0138-staging-etnaviv-remove-compat-MMU-code.patch" + ${git} "${DIR}/patches/etnaviv/0139-ARM-imx6-add-Vivante-GPU-nodes.patch" + + if [ "x${regenerate}" = "xenable" ] ; then + number=139 + cleanup + fi +} + quieter () { echo "dir: quieter" #regenerate="enable" @@ -591,6 +742,7 @@ sgx () { fi } +### reverts ti #dts @@ -601,7 +753,7 @@ pru bbb_overlays beaglebone quieter -sgx +#sgx packaging () { echo "dir: packaging" diff --git a/patches/bbb_overlays/0022-gcl-Fix-resource-linking.patch b/patches/bbb_overlays/0022-gcl-Fix-resource-linking.patch index 435f5e1985bc2b0f55b83461eaa5a24b93826ae4..5c8fefd891ba80a73ae7a0ebbebfdeb144bda78a 100644 --- a/patches/bbb_overlays/0022-gcl-Fix-resource-linking.patch +++ b/patches/bbb_overlays/0022-gcl-Fix-resource-linking.patch @@ -4,32 +4,9 @@ Date: Fri, 12 Jun 2015 19:38:36 +0300 Subject: [PATCH 22/32] gcl: Fix resource linking --- - drivers/base/platform.c | 4 ++-- - drivers/of/unittest.c | 6 ++++++ - 2 files changed, 8 insertions(+), 2 deletions(-) + drivers/of/unittest.c | 6 ++++++ + 1 file changed, 6 insertions(+) -diff --git a/drivers/base/platform.c b/drivers/base/platform.c -index 063f0ab..45c8d06 100644 ---- a/drivers/base/platform.c -+++ b/drivers/base/platform.c -@@ -377,7 +377,7 @@ int platform_device_add(struct platform_device *pdev) - struct resource *r = &pdev->resource[i]; - unsigned long type = resource_type(r); - -- if (type == IORESOURCE_MEM || type == IORESOURCE_IO) -+ if (r->parent) - release_resource(r); - } - -@@ -410,7 +410,7 @@ void platform_device_del(struct platform_device *pdev) - struct resource *r = &pdev->resource[i]; - unsigned long type = resource_type(r); - -- if (type == IORESOURCE_MEM || type == IORESOURCE_IO) -+ if (r->parent) - release_resource(r); - } - } diff --git a/drivers/of/unittest.c b/drivers/of/unittest.c index 9f71770b6..b12dd6b 100644 --- a/drivers/of/unittest.c diff --git a/patches/bbb_overlays/nvmem/0001-nvmem-Add-a-simple-NVMEM-framework-for-nvmem-provide.patch b/patches/bbb_overlays/nvmem/0001-nvmem-Add-a-simple-NVMEM-framework-for-nvmem-provide.patch index 7f81818a5cbfb0a8f8c1f00caf161fc1f4003022..79838f2aab4ccf57fe40507d48a321c0f8e6c9dc 100644 --- a/patches/bbb_overlays/nvmem/0001-nvmem-Add-a-simple-NVMEM-framework-for-nvmem-provide.patch +++ b/patches/bbb_overlays/nvmem/0001-nvmem-Add-a-simple-NVMEM-framework-for-nvmem-provide.patch @@ -1,7 +1,7 @@ -From 7dfc904e1c955b1b1c0f2a580dee93a62c7f638a Mon Sep 17 00:00:00 2001 +From eace75cfdcf7d9937d8c1fb226780123c64d72c4 Mon Sep 17 00:00:00 2001 From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Date: Mon, 27 Jul 2015 12:13:19 +0100 -Subject: [PATCH 01/11] nvmem: Add a simple NVMEM framework for nvmem providers +Subject: [PATCH] nvmem: Add a simple NVMEM framework for nvmem providers This patch adds just providers part of the framework just to enable easy review. @@ -27,6 +27,9 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com> [Maxime Ripard: intial version of eeprom framework] Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Tested-by: Stefan Wahren <stefan.wahren@i2se.com> +Tested-by: Philipp Zabel <p.zabel@pengutronix.de> +Tested-by: Rajendra Nayak <rnayak@codeaurora.org> +Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> --- drivers/Kconfig | 2 + drivers/Makefile | 1 + diff --git a/patches/bbb_overlays/nvmem/0002-nvmem-Add-a-simple-NVMEM-framework-for-consumers.patch b/patches/bbb_overlays/nvmem/0002-nvmem-Add-a-simple-NVMEM-framework-for-consumers.patch index 49450057e4945dd4ac47026e3e5cd270de6ec14e..2a5de03d24d82a7f50fdef220682fdd028350917 100644 --- a/patches/bbb_overlays/nvmem/0002-nvmem-Add-a-simple-NVMEM-framework-for-consumers.patch +++ b/patches/bbb_overlays/nvmem/0002-nvmem-Add-a-simple-NVMEM-framework-for-consumers.patch @@ -1,7 +1,7 @@ -From a9da2da672ac935cd6845aff6fa7661657676427 Mon Sep 17 00:00:00 2001 +From 69aba7948cbe53f2f1827e84e9dd0ae470a5072e Mon Sep 17 00:00:00 2001 From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Date: Mon, 27 Jul 2015 12:13:34 +0100 -Subject: [PATCH 02/11] nvmem: Add a simple NVMEM framework for consumers +Subject: [PATCH] nvmem: Add a simple NVMEM framework for consumers This patch adds just consumers part of the framework just to enable easy review. @@ -27,6 +27,9 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com> [Maxime Ripard: intial version of the framework] Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Tested-by: Stefan Wahren <stefan.wahren@i2se.com> +Tested-by: Philipp Zabel <p.zabel@pengutronix.de> +Tested-by: Rajendra Nayak <rnayak@codeaurora.org> +Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> --- drivers/nvmem/core.c | 421 ++++++++++++++++++++++++++++++++++++++++- include/linux/nvmem-consumer.h | 61 ++++++ diff --git a/patches/bbb_overlays/nvmem/0003-nvmem-Add-nvmem_device-based-consumer-apis.patch b/patches/bbb_overlays/nvmem/0003-nvmem-Add-nvmem_device-based-consumer-apis.patch index ec4de2f5c5841bdf49d4e60879d0b66727102e79..2b9e2bc523ce967c4fd5527c913c7b4b0e1f9fb3 100644 --- a/patches/bbb_overlays/nvmem/0003-nvmem-Add-nvmem_device-based-consumer-apis.patch +++ b/patches/bbb_overlays/nvmem/0003-nvmem-Add-nvmem_device-based-consumer-apis.patch @@ -1,7 +1,7 @@ -From 7fc012cc3546f2d89c2aaf01ced727319e187d2a Mon Sep 17 00:00:00 2001 +From e2a5402ec7c6d0442cca370a0097e75750f81398 Mon Sep 17 00:00:00 2001 From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Date: Mon, 27 Jul 2015 12:13:45 +0100 -Subject: [PATCH 03/11] nvmem: Add nvmem_device based consumer apis. +Subject: [PATCH] nvmem: Add nvmem_device based consumer apis. This patch adds read/write apis which are based on nvmem_device. It is common that the drivers like omap cape manager or qcom cpr driver to @@ -15,6 +15,9 @@ it internally in there driver. Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Tested-by: Stefan Wahren <stefan.wahren@i2se.com> +Tested-by: Philipp Zabel <p.zabel@pengutronix.de> +Tested-by: Rajendra Nayak <rnayak@codeaurora.org> +Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> --- drivers/nvmem/core.c | 258 +++++++++++++++++++++++++++++++++++++++++ include/linux/nvmem-consumer.h | 73 ++++++++++++ diff --git a/patches/bbb_overlays/nvmem/0004-nvmem-Add-bindings-for-simple-nvmem-framework.patch b/patches/bbb_overlays/nvmem/0004-nvmem-Add-bindings-for-simple-nvmem-framework.patch index 7493546f9945e49341a709167a06e2773f77c21a..1c60d013d3027feb21ac724fce29d60c8139c99e 100644 --- a/patches/bbb_overlays/nvmem/0004-nvmem-Add-bindings-for-simple-nvmem-framework.patch +++ b/patches/bbb_overlays/nvmem/0004-nvmem-Add-bindings-for-simple-nvmem-framework.patch @@ -1,7 +1,7 @@ -From 35c525f6194c86b5fbd8e7da3e34abcdeda7c819 Mon Sep 17 00:00:00 2001 +From 2af38ab572b031a4111f01153cc020b1038b427b Mon Sep 17 00:00:00 2001 From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Date: Mon, 27 Jul 2015 12:13:58 +0100 -Subject: [PATCH 04/11] nvmem: Add bindings for simple nvmem framework +Subject: [PATCH] nvmem: Add bindings for simple nvmem framework This patch adds bindings for simple nvmem framework which allows nvmem consumers to talk to nvmem providers to get access to nvmem cell data. @@ -9,6 +9,9 @@ consumers to talk to nvmem providers to get access to nvmem cell data. Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com> [Maxime Ripard: intial version of eeprom framework] Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> +Tested-by: Philipp Zabel <p.zabel@pengutronix.de> +Tested-by: Rajendra Nayak <rnayak@codeaurora.org> +Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> --- Documentation/devicetree/bindings/nvmem/nvmem.txt | 80 +++++++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/patches/bbb_overlays/nvmem/0005-Documentation-nvmem-add-nvmem-api-level-and-how-to-d.patch b/patches/bbb_overlays/nvmem/0005-Documentation-nvmem-add-nvmem-api-level-and-how-to-d.patch index efd56272d330d1e027228b38b3af79baaa0bcb0c..4addd4cb81a805706b6bc4aceca658a3d0e4cd73 100644 --- a/patches/bbb_overlays/nvmem/0005-Documentation-nvmem-add-nvmem-api-level-and-how-to-d.patch +++ b/patches/bbb_overlays/nvmem/0005-Documentation-nvmem-add-nvmem-api-level-and-how-to-d.patch @@ -1,13 +1,15 @@ -From ed16698ff2fbdb3e6783f41b6f080d70edd03aab Mon Sep 17 00:00:00 2001 +From 354ebb541dfa37a83395e5a9b7d68c34f80fffc0 Mon Sep 17 00:00:00 2001 From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Date: Mon, 27 Jul 2015 12:14:14 +0100 -Subject: [PATCH 05/11] Documentation: nvmem: add nvmem api level and how-to - doc +Subject: [PATCH] Documentation: nvmem: add nvmem api level and how-to doc This patch add basic how-to and api summary documentation for simple NVMEM framework. Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> +Tested-by: Philipp Zabel <p.zabel@pengutronix.de> +Tested-by: Rajendra Nayak <rnayak@codeaurora.org> +Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> --- Documentation/nvmem/nvmem.txt | 152 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 152 insertions(+) diff --git a/patches/bbb_overlays/nvmem/0006-nvmem-qfprom-Add-Qualcomm-QFPROM-support.patch b/patches/bbb_overlays/nvmem/0006-nvmem-qfprom-Add-Qualcomm-QFPROM-support.patch index 329a92085c9f6304c2a3243548b731046a664883..ec8797f5f1f32af925a65972335aff86a1475931 100644 --- a/patches/bbb_overlays/nvmem/0006-nvmem-qfprom-Add-Qualcomm-QFPROM-support.patch +++ b/patches/bbb_overlays/nvmem/0006-nvmem-qfprom-Add-Qualcomm-QFPROM-support.patch @@ -1,7 +1,7 @@ -From 4c7313d79cc02a529d5352531def02223b24c819 Mon Sep 17 00:00:00 2001 +From 4ab11996b489ad65092216315484824ed32018f8 Mon Sep 17 00:00:00 2001 From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Date: Mon, 27 Jul 2015 12:15:00 +0100 -Subject: [PATCH 06/11] nvmem: qfprom: Add Qualcomm QFPROM support. +Subject: [PATCH] nvmem: qfprom: Add Qualcomm QFPROM support. This patch adds QFPROM support driver which is used by other drivers like thermal sensor and cpufreq. @@ -12,6 +12,9 @@ thermal sensors would read out this data for configuring the driver. Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Reviewed-by: Stephen Boyd <sboyd@codeaurora.org> +Tested-by: Philipp Zabel <p.zabel@pengutronix.de> +Tested-by: Rajendra Nayak <rnayak@codeaurora.org> +Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> --- drivers/nvmem/Kconfig | 15 +++++++++ drivers/nvmem/Makefile | 4 +++ diff --git a/patches/bbb_overlays/nvmem/0007-nvmem-qfprom-Add-bindings-for-qfprom.patch b/patches/bbb_overlays/nvmem/0007-nvmem-qfprom-Add-bindings-for-qfprom.patch index 1bbc27f79d7f319af003d7d787f45f796e64fc56..4449c234ec9b5126b67d2fcfafaf777ae2fb1cb6 100644 --- a/patches/bbb_overlays/nvmem/0007-nvmem-qfprom-Add-bindings-for-qfprom.patch +++ b/patches/bbb_overlays/nvmem/0007-nvmem-qfprom-Add-bindings-for-qfprom.patch @@ -1,13 +1,16 @@ -From 5018a374350a8f8c101cfd5ccbb66c0f9e767b65 Mon Sep 17 00:00:00 2001 +From b470d6d7a5dfe41112d55c39eac67ddc5afac80d Mon Sep 17 00:00:00 2001 From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Date: Mon, 27 Jul 2015 12:16:59 +0100 -Subject: [PATCH 07/11] nvmem: qfprom: Add bindings for qfprom +Subject: [PATCH] nvmem: qfprom: Add bindings for qfprom This patch adds bindings for qfprom found in QCOM SOCs. QFPROM driver is based on simple nvmem framework. Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Reviewed-by: Stephen Boyd <sboyd@codeaurora.org> +Tested-by: Philipp Zabel <p.zabel@pengutronix.de> +Tested-by: Rajendra Nayak <rnayak@codeaurora.org> +Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> --- Documentation/devicetree/bindings/nvmem/qfprom.txt | 35 ++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/patches/bbb_overlays/nvmem/0008-nvmem-sunxi-Move-the-SID-driver-to-the-nvmem-framewo.patch b/patches/bbb_overlays/nvmem/0008-nvmem-sunxi-Move-the-SID-driver-to-the-nvmem-framewo.patch index 3f3fce71f55cf985da472980517a3bda740bdc14..8bd8449a4d5a028190bc4f14dc82570bbe4a56e0 100644 --- a/patches/bbb_overlays/nvmem/0008-nvmem-sunxi-Move-the-SID-driver-to-the-nvmem-framewo.patch +++ b/patches/bbb_overlays/nvmem/0008-nvmem-sunxi-Move-the-SID-driver-to-the-nvmem-framewo.patch @@ -1,8 +1,7 @@ -From def8ff4d10a48d52d62f907302b1e867af6bac78 Mon Sep 17 00:00:00 2001 +From 3d0b16a66c8a9d10294572c6f79df4f15a27825d Mon Sep 17 00:00:00 2001 From: Maxime Ripard <maxime.ripard@free-electrons.com> Date: Mon, 27 Jul 2015 12:17:09 +0100 -Subject: [PATCH 08/11] nvmem: sunxi: Move the SID driver to the nvmem - framework +Subject: [PATCH] nvmem: sunxi: Move the SID driver to the nvmem framework Now that we have the nvmem framework, we can consolidate the common driver code. Move the driver to the framework, and hopefully, it will @@ -11,6 +10,9 @@ fix the sysfs file creation race. Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com> [srinivas.kandagatla: Moved to regmap based EEPROM framework] Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> +Tested-by: Philipp Zabel <p.zabel@pengutronix.de> +Tested-by: Rajendra Nayak <rnayak@codeaurora.org> +Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> --- Documentation/ABI/testing/sysfs-driver-sunxi-sid | 22 --- .../bindings/misc/allwinner,sunxi-sid.txt | 17 -- diff --git a/patches/beaglebone/firmware/0001-add-am33x-firmware.patch b/patches/beaglebone/firmware/0001-add-am33x-firmware.patch index f4ea7d41c7c5c9196a434f0254cfdda9b24abd4c..38bcaea48b8453191f5b499c9dac60fcf455f780 100644 --- a/patches/beaglebone/firmware/0001-add-am33x-firmware.patch +++ b/patches/beaglebone/firmware/0001-add-am33x-firmware.patch @@ -1,14 +1,14 @@ -From 9081a29f8c120b480b3a0165ac4cc0e8f00d0efb Mon Sep 17 00:00:00 2001 +From e0e2bcfe661edbb293b9c13205f8c36777ab0c8f Mon Sep 17 00:00:00 2001 From: Robert Nelson <robertcnelson@gmail.com> -Date: Wed, 1 Jul 2015 12:18:24 -0500 +Date: Wed, 9 Sep 2015 16:14:15 -0500 Subject: [PATCH] add am33x firmware Signed-off-by: Robert Nelson <robertcnelson@gmail.com> --- firmware/am335x-bone-scale-data.bin | Bin 0 -> 72 bytes firmware/am335x-evm-scale-data.bin | Bin 0 -> 16 bytes - firmware/am335x-pm-firmware.bin | Bin 0 -> 11412 bytes - firmware/am335x-pm-firmware.elf | Bin 0 -> 219663 bytes + firmware/am335x-pm-firmware.bin | Bin 0 -> 11420 bytes + firmware/am335x-pm-firmware.elf | Bin 0 -> 219735 bytes firmware/am43x-evm-scale-data.bin | Bin 0 -> 40 bytes 5 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 firmware/am335x-bone-scale-data.bin @@ -39,1016 +39,1014 @@ HcmV?d00001 diff --git a/firmware/am335x-pm-firmware.bin b/firmware/am335x-pm-firmware.bin new file mode 100755 -index 0000000000000000000000000000000000000000..6e8a069a46e4b76138ad2777d58f803fd2464e9e +index 0000000000000000000000000000000000000000..205ae1e4cdc4d96f2e63128c6051c2b83dad12a5 GIT binary patch -literal 11412 -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 +literal 11420 +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 +EUo=g~{{R30 literal 0 HcmV?d00001 diff --git a/firmware/am335x-pm-firmware.elf b/firmware/am335x-pm-firmware.elf new file mode 100755 -index 0000000000000000000000000000000000000000..a9d3f70ac8e9b8332ac61214293e03c6f386836b +index 0000000000000000000000000000000000000000..f73688b49776cd8027d3a8b2ed913d35a4882592 GIT binary patch -literal 219663 -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 -VuF|;{Hns<!DKoxpK)5*hzX9HbuA=|| +literal 219735 +zcmeFZ3wTw<)i*w~FXx<`+)k2{kQ;DvB{wiYkZ@50!~-NK7f}(>20=Y2N<>6dl;EYM +zYE>>(l+@Cy)q00Y6%|3TwAyMDtF4L_ydVfw4?-mgmwdn9?0pW=+V6S$KL7vweb4ty +zVD?$FX00`AeskF~vuE!mr%nh<DMjqh5M?43s{wOvfhmL~>>3dgHqwG3%}tL<39+ie +z3AQpK-E;#npGxzAT#Ml8nH~Tm;Bx}`F!!zWG^D2?oq>O;$I~b8S}@yTe)~%Oz_(dC +zrV-ExXaqC@8Uc-fMnEH=5zq)|1T+E~0gZr0KqH_L&<JP*Gy)m{jetf#BcKt`2xtT} +z0vZ90fJQ(gpb^jrXaqC@8Uc-fMnEH=5zq)|1T+E~0gZr0KqH_L&<JP*Gy)m{jetf# +zBcKt`2xtT}0vZ90fJQ(gpb^jrXaqC@8Uc-fMnEH=5zq)|1T+E~0gZr0KqH_L&<JP* +zGy)m{jetf#BcKt`2xtT}0vZ90fJQ(gpb^jrXaqC@8Uc-fMnEH=5zq)|1T+E~0gZr0 +zKqH_L&<JP*Gy)m{jetf#BcKt`2xtT}0vZ90fJQ(gpb^jrXaqC@8Uc-fMnEH=5zq)| +z1T+E~0gZr0KqH_L&<JP*Gy)m{jetf#BcKt`2xtT}0vZ90fJQ(gpb^jrXaqC@8Uc-f +zMnEH=5zq)|1T+E~0gZr0KqH_L&<JP*Gy)m{jetf#BcKt`2xtT}0vZ90fJQ(gpb^jr +zXaqC@8Uc-fMnEH=5zq)|1T+E~0gZr0KqH_L&<JP*Gy)m{jetf#BcKt`2xtT}0vZ90 +zfJQ(gpb^jrXaqC@8Uc-fMnEH=5zq)|1T+E~0gZr0KqH_L&<JP*Gy)m{jetf#BcKt` +z2xtT}0{>M60zPqGk`PZItV7s<un}Ps!gv2(2Jd$+|26!c^Z!A3DEYr{=Ve#7AVr8F +z2-hI|1fi#2zd(Eg!fOa0BJ4-7Q-#Pu=#MZ8;Y@@%2-hPlM|cRqYRHJ>CFNOT4*ucF +zF;Qt|G&PT{&iJTaM2BxQ8qNAOB0JJNR&0K~zBbKhOk^AqvAEfg7g@8OI#tkVF?_<; +zm=~GeC$%EsU2lWA?<UhgSRE17*_&kudJLN>CxlNFH550dMe-ui4Mh`nbUd<i>j68n +zV4NBCCT%^i#rtN5*s}FNOHoOa**v8qX+r+E{D$7A+mXbiru;LO4sA|bnh{BE%NdtD +zzGY9fnAEgdnDr95t%;<M+q5TImpyh){#Wf8;}argxvy=t2#kL<TkgBrnjOhsH??Wc +z?xgXn#jDwqJBsT>)i>=scZ<y<QHENC+u`40gc`R@*Rx!%&#Uo!7sAA7_u#-Y_BeZj +zXS}DOsL5<Pufu9gY$6uaBZjm^oBs}D6WFg=KW49}3qVV3CWhn{MZ3-HF%GYe`i(Yl +zj-i>oxF?3+PMh|vw7>=tJ@u$47SV>Ip|GqG(UhY#Rh{jP-`t*&){q{#Z**>3_o4f` +zMRb0Lj5c)1=viHTLn8Xgks-M5JkovWm)!zXua3H}m#2Hio1iy#h)`ftC@i9Tju5j} +zVDVfrYI8&Pq2G5`Z$1hh>E+#Zn|+%c`Zmyo(A|Ax(;i<Psr4^XW=S{c58~X1Ulg0+ +zb1|)NJmPr##*rG-4n0m$9;da5Xdb*h&`D44P@dj)Br#+}li*qRp)-+}<KJpn5YZ=& +ze72iD60`4yLF>%$YwL}AvqR>s9DTT*>2lGS{DO5kxfva@QdD%c`@+p*J2oUv@PrE@ +z{?jI}Ys`OabWxMH!MEAhn9}UqoY5pg9h>Zld-H0;-G~0#JuLji?jZ6LA%rxasNG<N +z#iH7EB}m=g9qf>)qO7yMDX$jTG;gqx*1T@!x}@-cu-qv}+Nh5|bZ085L+y{`HE%-x +zn^K<1YOLOn7rF82n?~F3i;(g3rajel=F`n%zd8`OW&Uqd8v_kFktrRa(1iSyarsRm +z`ru*DV>#jae0#NANxZCjKd@QTeanHsvQYTAzSulf`b0MT-HAFph#(uC{!M=W&!ZDX +zKTr6_;giD4pB^0EoM-J6W%J?V!tOJ|_l0viWa0-oC1nTOMgN2Cp~8OQ$HI?<r!6v8 +zh@Y<AUu5|AOV8OA;_Jp6ckD@zej>*k|3q;9b;{2{e<e$BeNWC1-~AVp`|tc##&hYZ +zJy?!#`BOnPflh`m7s;#T_3|#n?v}roe^C<GiSfo8G89e&&e1#X>yUx9`>Ty#?5`FH +zWve$Q9u$|0ulFonA2#;gXvlq|4dBqXdbpE*@I7DnrTrpRMAt68D}3GViP1nxWB84Z +zz|OpAAhq&f%iOx?7fbV^Xa`aI#)SP|vnc8{&HcWFyvT<gVy#@6f3Rhq*(TSB$}L~} +zZWM({2V2ga7M5#%(vcrZ-rrlAtA2C%*w-nC(+58{VOjW-8PnE1uzzOa3;T0YS8bjc +z4JA&Dio`$eGtKSmWrrM*5f&AnwR<1iy3c2tttPEsX|GIx{SoV|HNHv_ExOTK6HveT +z2gP+FdfQTSO@6c`$=okZb7fuh=Sz(>)kt5nRKO<@eR!#P-z)n}|MMti!iWC--9zOm +zA+)Z!$F9lmZ1?Z8ye}Z7F1mE7z2?$&a?QDJK80>RXDoHn^On*=pv_#fb)R2Z^MCkZ +zhwo`vtdS$9p}&kdb^$D&UB9|RV7wKHqO2}zE`9zp)QD(2C@x(e{^Mr~Um!$;8^aTJ +zzX#ci^Scj~981`5B|P{UQEybJU*@9zo23(@{*-ScPi?u9_@A;nFX}_xEL>U{^(8h& +ztwiRwK76;6Yc!C!K75z5S{FUpwfM`Wp)m5T{-_u8-1@nY5%}eE>)qHb?rRLMKt0q& +zFIfs-uA|R+5w-=&%azRC+^tF#m9XFR8LX`x8)hmo6492WlYqy%qj?9#JlWQAs{D&L +z+!7XR@}e!N5A5@L`|aI*bzQV#>BZ~BPfrT}CR`deT0_wI<xzQ3S9?wP{IK}hs4#8( +z?r6VyZ+*5~nh<g;cj-FNMey72`u(fVklW>T(GOdy3+bD&VtqKn#lGdb_2J|ged+qJ +z*R|0C8}hU6Ll+&rIRCR<^tLYgw-%Hp#IlGAv10Q#XFoM%H0|9MZAlcc`T4HAsDUy* +z+fo@d6xxjng%5X$729_emtY>V=96$9T9T+-a`3$;*%~IT>poO-G`mA4%b}vIqn$14 +zl!H$`L9|Xe_~;X=P5GWfY{{Vqo<OTw>r<_Y2xK3fg;q7T{_b7-bF&d2c~qA4%f53L +z`?W8;UiIFW+d`i$8P|O%bkti<+po4i@)`TY#&-6FB?qs4(uOyu9K8QY$E!P@q}00h +zpMI7Xaq5(9DF<kZr2e5dFq7#%^uZDEw%BXr&`-jm@?+)m>h{H-QSw5xs8H(8b|Ud1 +zu63#J<LXOQs73E+$y-J#xiY%z+|d&bip6r}*Spx_n4aG>a2IQhaYu^ni7D^x0?u1F +zc0I1fu9@K_-#qw46Uum3cmUHxBM@I7E^}!g=t4!qR?B+T{&IIY?dI1<topI*o(mI8 +zqIlJj=k`lqXM4Z;uRldgzHZfL<{CNJT=~H+bB%%DcTuaM)b*-FPpJ|;u1Z8t2efVM +z6xB|jqo4HpCe;d7DaqwZvaBs$!j>(cdO|xon%Ca&S#?Mb?LKtk5#qh%VCRz`K+j4I +zZq8d28$ZuioQ$@6fycM=n5<GxIe5WSam&psKP62Mj?1333-?8|y9o%X&xj2-J#9U9 +zMu(M{6P7Ex4=p%iK8?BFJ`49>vH93;u{ot7weh~u$#1odNg1DApBN5BO<`60>Y<Z& +z)9BH-cDDP*C5%UFFqVyeZgX9SRoS(@`_P3ih|Qb_zlwY9stQoJ53fa_&Hr8SZAb~p +zsOS<KAr<m%lKXER^^1Rgl;-0sa{sM$YybICKw#GHZ#3&fWzu$8D9WDO+_$<e?Y_F3 +zgt@<IjQP)*V{#!aN6d=$HRa$hcJ~#cB|*vimAuhq9-xlhP?t8kBUF7{_A4dZ@{!p2 +zAIX0#b{d%5j)_`ojS=`F7B}K?--ZD0BQJIbFthvQu+f+s$!+2sGD+;H4{Yd*v?sf} +z553yiedte}k6;A2vdapO+t_{R`mU#OeYbPdo<JR?ZrW_%`bt+UejU~x-G|1-<5zCx +z*!WUBe(7e;Qwtz-LpNur1<3ya)QvM2MLyk}i*_ISQFm-EnxN*QW*c+BylNxuH9-pf +z0v5<yzR{T*`!*E8?i6LW2zIZAUEhXc@Wv@#F?g3LUKw~ND_$9RvlOo!yc)$T2k#uk +zs{pS;@hZTZsCbp&g%qz6yi*mg3cM`Es{(I?;`IkFN%8uFH&F2gfM+P)0Py-L-U;A! +z93vJdfY)2`s=@nG@v6bgP`rWQeX4i^!AnrQLEycwc!R*}exBtW3|^b!4F>O@idO^P +zHpQy}Z=d1~0q@0Q-G|=lfQ^o2sN<!b)u`LO9rT5%KYfXH`!?#@iT~s!*6s9o{Fax* +zW)o}B+(<@byM5$s_R)OwsUEy{Vmu3SXJFRM6_>N}b!3n8V=H2Z-}p^^I@h-=NBi2a +zB1vC4TC_EfwXr&5Uosml_3P9-^Nf}Yv8NPE-9oD|w`qFQeNFE-<<6Wwllg~`PJ2np +zUQ!Qx35^Nk{Nw!%t7pD9Gxq}8=h%@Dk306MzXkS}AuK|u<M@Hl0ovct{7mo?xo?zd +z?R(k2EHbrYU|@|%iS&=Wo!vI+qNazMFjBneti@?3r!o4>_BppK3tuzs(tGFp?!e2L +z@6XwGpw7Cbu4J#YtuEv1Q}-IywgWA4<({SD!$|R7VaYD<*FTTc?=|GM16xG?oPxbx +zDZ1>hN9{GlwgV!oYTfiXp}m%Qciou19ua*pR_64E=rgP4nAd!Ci5WHRpVVQ6FIVlc +zMZY;Edxd?`9O>jHu>&9;ia1t1Uw;~*-K_^iMrf}s9;nM6LyPp?ZWR0KWbP&AzNO}r +zj_T045w5@;d{K|!ZxLf6*%5&;ImY*cpBp(Rk{(HjG}Nu|$~NvzydSwYk{Ag@rqu-? +z>+V;mdJ1f)kBA?O=uE7LM;#3<T3ujzvp0)qsx|RoOSNyaQQUp#q@yiphjm9=3PSa` +zKOOZo=0{|eXbWtT(S%MBJrkpYh@Oak7N|=_dmo4~rv?7kZW!D+7^{0b99!S7S&ZB& +zr?i(L$Fd_kmu)%l6M^xtD-@}~_+0dxEe9qd{z4Z=o5F58%-^ZqqM-Yb*)0po5bHiB +zqc32MjCn_N$x(^ix{irxu)Ao{c5lKvoA%Ty527!Hzqtx&cXz$F8**K2jTx#n_HtX} +z=k4rUGrDEjr|roN0{vu6l%sX`q05h{wf3=hq1kfy*So#Y6P3H$+jg@|yr&)OmV)c< +z5cV%tsd9!IL;q6Fl`pWA8xGU6@^@loy$of|LRq(ObUZv&mG$vsPFeqcjAi}FF{i9Q +zM#+*@8JA%!aY}a6OAbcmT_3~0^scvX?SJ^SZ~0ccp>Jc~fAQx!<<DixpVGKLCGaN` +z{%m#qIoe6gXS@E~t^7IlSXo%YuTk*lci7QzJUQ9*<kQYw@ZpWlcW~X)^(Wlld*W2P +zp;u$CfAQt;Mq<<Na151?J42CFcyXoc#q-LGvsLaMRd&|2?dJGc=U2#Ueb)!y$;-E4 +zOypg+O>I=8Cbjl%s>NP}8JdfJa_|WA-PaY%_g5;PFOE9s_f`45dDJQG>qm>OK|eOl +zN~6t&of&A~wRN=kGWR#o51Ti5!p9CBJSxh@ww0e&F`-iJV_Ddz+m04<QrqgW)kwej +z*rky?v;q0Hh}L&TkpF94m66`3u}?tOdSG$hgfTDBZcaD%hq@2_`ml3P-gG#2PY$Yk +zvfa+q`;gjw=&8fU4%yh<`mlquf<=dU|G4V#rajGdiLi9=CCr|pry?IW7jw;GQTgZg +zKgQchY~P4IBfBwx9hjA)3*5d@fL)O7N3Ae>$fl$04bLBCzdqxrh+c@`J%W8R<So(f +zj~()(Rot)UCoIFLO&-->K5V1ji${2U=*VByJ{9{)0DEIkxVG<9wr^LqOJH~VVG;e? +zG1}aT*n+stUcj4r%U!)Im0q*bOMv8NAad-`wxe~MIRc63*_fYD{u;<L|8pVpnCeTE +zTaQ>cZu@iW%lWXEcv8H*?0k{B=el{Fr1BaLojoY^GUeTJ#7a6@+Skz=0(IOw{0Q>{ +z+zG=ukx|i>D{`8!`zd*cF0R{wJx=lqj`MMsCSMf#HaK@r<fnED9Xsql$&D%F@**kY +z0~=BrwjM~W$xF4Gumc-OL`)W8XD*r#fBt&3`%nXZ+fehIndQGIJRjAwZi#iB_^6(H +zx~4O}9TbC|`$x0Iy;zQUMc?5$`{l9yS;|d3D6Zh$pCw8h<LIk7E9R}7^TNWF<OUG0 +z-7vn<+`nu=cGGNGgdR}UJ`2|q+KVm`m4n)g=7`E6?Xz&LZGQmQ5$z8k_2l+Xa2?hD +z2{`p?FLc;x71+HU+x7soX15nzDk{%w{{-}DDwS!I+G;m(MtiiA_W#_*+2x^5=JKaD +z&c^n4GOyR#I3wKG$sD(}aVEH{llg9K;|y>|Cv)G@#u?{(o%CT-8)ub&>7*ymw{fQT +zMkn`XGnGHjw$Fkm&$MwC|8gf$32<l9Mdgv*oI!3-^7Qb@c8(RC1wOWs^WjH2f3}-* +z<p(?O#+X%)I$<5fa1@2L8wwi>Lb*+l?__Bn>E!JAp-y`D%TCUKf8I&&T02>$dplX0 +zyE|Eqm7UD_u1?NYf6_^>Z|x)oKk8(DH+M4krOL0w)2bq^nAO#8N@xf;b&s0sJ~Y3x +zGV;La196Wp*%<SWb;`c+6z=gq!~J%7XL4iSqD0JGZ$)ovLJ#OZ^tUbxt$$pXf$OPV +z>=UEAxUYT+Rv<prGloCE7-jWsU@tjcr8O$Km=5(vgM;#RVLq<<)he{<y3PdTHfAH{ +z105KpGQ94(#J8#Y&{@Y0?52GYork_o`^2+$!^Cg8uUtJk*k*-k^`0ZP`n~Lk^-ubg +zao7qcuM351H!*bq_Rz6YjS-jo)!)^<#?_tZ>i!e!vE#aDeM{GXpXR#mUA!mI7bk9h +z7K_vS(D>*EKUzjk8}7{$LgPZ}xk`G(s>p3KD@0p#)5NHl&6#)JIIAfkvK*uFyr{S! +z8?)=^rffB)e$?JetukBA$Y|QWTa@BCO-;u59UW75`XlKRlTRCcuw}l#3D1_QM>Gv+ +zs_Uqo5Z#nKKB<9EZZMls&ofL^O<nM#`g#OD>+#_?34!B<mGV)26X*#D;}Ga~U(9LK +zBKMBYZ|egetjdx$vr@LHId8$uMesL}Gco7%+|zO=3~L(LRM}M2lpeWp^q1|?7kiEG +zrE+c_o29(}dwb^iM65<y&PZ%ZRJPu07lmn!DHD@UPdqJQf^VE>{D`K(%7)PtebKMx +zx~y0FNgwHJ%y;@nKVyEcGEl=IPeB64+U%yBCXT~(lD{%4#i*#1<YH9z98qheB$SnF +zA)_*5vnVth%?7N=k)z5BX}zRGn`H|$H~KcQ?KT{iMSLEHXKta}>N1*~_BR>hKA)lS +zx!S5LcA~%Z)T#bnouNH+?t%{eFe|NgJ|7zs6>5~FAFPj_X+_^j3!!d;5m7a~ttfI% +z{?N8bk*)i-nv*&PPZImK$^nsv$e=M5O^i3p84#nJ{v5eAG9)s5OvRW%D$Rd9ZPFcc +zDk6n@J%-W>y)g&l`(E43Xu9>1#!C_|$sLmz$ryd4eQJkw%Jlp{ppKizj)R{?4bcr* +z5iy{yZ7}>esqMGnGwF$SW=BoP-uJ3Vi)@|4dxyN_#!HliHm2M(Cr#Z^<Rznza|7Nv +z{>b^TU%1z6_?sZtd}Cx=WEi|J*lQTW$q9^wOgueM7hz05dV2oW_9*%?eM)THvTuu= +z9tk{S?0eaG8*8N&GZYC$y>e94mIY1em##)@5S2&T`E1iEhu_tq?3xJm+OU%IN^iN@ +z#MN;6rAh;olZQolaW3XqSchGj9oe$pvBUNhTMyrd6*2wcJj+=R`@g*&#%lPSCbqnU +z2D>p~e0t=ZCQ-4!&D&$WP5s6FgqVxK_TE+^#1@3WhQ!93pHAK%NJ;%;%IB%VH^F+e +z2xWR^^VS2SuH1TH=^1=NeMUzh$$B~fTxLL@a{~Ip9=LLJVh>+@?ppk&Jzmi~)<VpO +zmAMmh#*W#@`_(cbS`k(u)M7oJgkT}~8f95t1Y?*uqoaU#7tEZKHgk``SyvG=>ep^a +z3S(uOpV)@ygF9<Ca!vP9H(FHR#{5I=wVN;&hYn+`;w%#T7ov8ZQ0v>Z`wj7QS4*@m +zp?NIr*iO2e)A7BG?@M!b;hg+sqYRxBd0{u@WTOFkL!7=h@|2?aY!D^!*<nxk!iI|) +z-|7%|?dW*squ*eUd)9>6<7SV4sYC26k4kUxvL8JymL)9f)zr7^_OBnn&azz5x9g6t +zjTOIKpVeWEn77DWapQVx#jSV}?(Ju<z_XifD_qAi9}`v2Z8mGf3Bk=H!m{YWz^cOs +z4w(D?a>e*SLtnA~hb`R|bq9Xb(p}gvKC#|A;<~rHE9(y2*wS4D&r&e|sKdSPin<AP +z6CZ>xBU(l^7A_5(vTS5+OHNBc%Oi_KS-9<`@JWq3I>b7JUyK+(@!+-d@f>z|Wn1rM +zUszplLx1t0@VKwd2rO(#?~qG2<UiJds_*l|_1)_q?GQ~*qC8*bxT&e@NBdg3+T~E# +zY5p?D+&RUY`nIgK+H#kzSf3s>Q@?40#re1=RTnhows_U^MRE#T_M9imHn)q=rjDfM +z^u~<Svs*Gw8``p|BhZvSVE}%Eld{H_;Mc12H{|2jSDo1M3NUwUh@x9|i^6$POJ2Ks +z{OA?yuim|8{o>t$r+3yri10MRGYHQi968qAU5(#jgjR$ygeru`5mqB4MyBW2wnaCj +zghk1Yj=4Mkj?y-5JiDWaSk4bM5giL-DQ4JX%*u}TvoH=_l0PF~wq=I*?w0#*v7phE +z+}GG?jeLA`TANYU)m|8Z?v-bC6b5|MAF;m;_u_+fr*yVc<_nY>BT}e&Y%|*1f4ARJ +zH-x_HLx^I}?Pm1-W`t=7Mxl2+JxGX5?g$0^$_F#<gOjf)@=<2KBa`TsGcjIH_D$yD +z_PJ_jN2zCzbJ8(~YZT})*ptNB3Ew8_kjGxseQ46Rcp`K!c;RpH48<E6=Z&5>Z^4DL +zLklmQf90Hcmxrnsl`IO)yC^i~w85cCr-j0E=3jR8%=s4%5CY}25Rwpr2>A%-mQ>d+ +zI<Mr);UOGH5D2GEnSvh?I(yWV)A>98^f304M5zAM(PxeoqI%$<!8Jop99lbU<^{86 +zUwF~QkvW%KI`^{6=QUq3|H=hdExdZsHP=$V?DDJT&c%3Ey$E}ah$kR$*T;+CLFmRG +zeuRx+An+&^c@reso7h?3hTyZ%9uYnTy%XUBgxLro$TZ>C@}OPf7pm%ycBD(wRyOvP +zL<<-pga85^un=6qBpc~2eLM1LMrcJ)djA_mrROTHhWt2$sd2r3ujuGGimM=BgHVS6 +zkN(Sl%OD>@sQM4}?t=Ubga|?~b!UA(!oRDRSe+!pE7nU20`aV^*ij$4b4PtOLZos> +zeH}vCt>7&KjqnJ<T7=N;2siDhp9H!VvY}O2qc;k%<vbxCnJL6w7sjhVmHR)ftDXIK +z)PIWb4}|}uu0jKL)E6UEAvk*fwYpl1d>%x296>q!U%WIyem26~|4=Uk`C^1B1U6aX +z!#c4LSRd>^CIagx5h2#EC@0F{Bd`Zsh?V$Vfq*&?w;`ZD1nNtr@q&879l2hxe)xy_ +zjO9n$v3!^(y9x99Zkthgf-le)C!t@~BQVOpI?ze%rwBfTe3gd&g5N3x%LiGuV-tHj +z2*QV71ZKwZf(2%NEFkk{=ca$`%1DZLWn!WJ-1NAfYv<p|2eEgQk04Uu3qn#7{6v7Q +zP;bYgFVFc^*A`qke*HUpNRrvO2+<;Xsoy%0h2MWC&oTrN=>OQ$&lD$3+cu~B*LQ4x +zb?iM|cjs4CCBD6ME0Xk|MnEH=5zq)|1T+E~0gZr0KqH_L&<JP*Gy)m{jetf#BcKt` +z2xtT}0vZ90fJQ(gpb^jrXaqC@8Uc-fMnEH=5zq)|1T+E~0gZr0KqH_L&<JP*Gy)m{ +zjetf#BcKt`2xtT}0vZ90fJQ(gpb^jrXaqC@8Uc-fMnEH=5zq)|1T+E~0gZr0KqH_L +z&<JP*Gy)m{jetf#BcKt`2xtT}0vZ90fJQ(gpb^jrXaqC@8Uc-fMnEH=5zq)|1T+E~ +z0gZr0KqH_L&<JP*Gy)m{jetf#BcKt`2xtT}0vZ90fJQ(gpb^jrXaqC@8Uc-fMnEH= +z5zq)|1T+E~0gZr0KqH_L&<JP*Gy)m{jetf#BcKt`2xtT}0vZ90fJQ(gpb^jrXaqC@ +z8Uc-fMnEH=5zq)|1T+E~0gZr0KqH_L&<JP*Gy)m{jetf#BcKt`2xtT}0vZ90fJQ(g +zpb^jrXaqC@8Uc-fMnEH=5zq)|1T+E~0gZr0KqH_L&<JP*Gy)m{jetf#Bk=zy0?$dG +zD%nZtLJZ3iLL&BkyvHH87U5pVo#e{>D^H45kXeSXG((6dT)BVcNwF9*{7VZ8vCEbF +zS024_{;tY&evflvDb8=RYwu^Um)XlH$G`HVnC8kAz}{rYsRFyE27Zt6oF2T{u5JQ! +zN4dI|YobMp5Y15hCYRp#HaSPSdEE>8CV6B>jJ~A@-O_`;#dln$#ib1@xqr0Z!zF>@ +z3YDG)JX0N^x$`dm!39@c<ZAruPYp!rH?DFs2-ye=yAjQX<qurz#)%;8^lGq8X)G}z +zY}pwT5VdzPL;G5=r0_fp+A@Z2CTpQeI3HJO=izGDuR_SQUj}X2e+F&a7BckM?}PT* +zbx`uzKgBh{UJsc>`*hGrHZCIBo&!#b{WRQ2wciCNU_S!gG~pdhb4KHK@O%|8WK1Aw +zS^3Dz@-}&3`f_L`854Kl$2XB8laz?;D}1-2_Ke9Y8b}qs)eteJswm*|O+^;QSt@Gu +zv3z+jY@Ds4vbW_cr0_H+ns51@V(K|gG|%#Fpzd@PHF7N9VYq3`aH72|-wo6~&k@eD +ze7Df6^POm><@+;*f8a!emam4Unw)5c<$IpdnJQ|hSiaP3L}#gJim-gYrf$R$?&}i? +zKI3w>3BQk7%p+g;x6;*SB_k4l26IWqr2`<8G?S+1evIVg`3q(V<1*G{^8A@s3*!pH +zC%owKkX~>pP2NY7SFsfc|Bt~i7LslGSChW_3S52ueWVwW_KOsYo|uOBVkmlRKnIQM +z-eb~I)UvUd+QMHzAFg*Sbufn;_JZ&8N6@;BCHp}q`IB)qT1p@u@Q<d<QqpPuO{8xm +zoi0*8g;0POWX#f~Sj;Oe#fsu5{VRyd9})wZ0WxF$g%=}E5>4DU8SN&xiz0W*lkk&S +zkJ8IKDeg$#sU(9bWWOWNgh-YW`I|zx*XQK-VHZN}2-*4;1hR>d>_d;_q#Rm}r-yQ5 +zWZro2`ImnPa^wOIA>UgMc5g2(hRDgqPZ?4;Xvz<I4<xrwDX#JiYW8X(zo<H<+e#CC +zRpv#^ybqE?HAt<dfdb~kSb$osy&+r3d`>}B6fi56%Sk*1iB3k7`Y=~HSrl<hkgKLb +zhNF*cy%aLVv`H5K<UPu7#7Y`)k@vHDBA}|6*jjWhnUAc(^+m-PYYS02XSR@!l4=4k +zi)~jvMr5<LQs!|*zE1K9MYfZCl4L(-O=Al8r$2``Dtp^Wxf?0U;|(T^s}#$D`X!`5 +zSjZQ8$5ISO=M|)kW6Fy|V=1O6I|y#MoMf9V24SqQ>^YY&5Jl;*A>Wt;C!FH#gi1f6 +zNLCZA{P`wYQI%H7N?YQjpM~@mrnfy1OE-I_Pe=M{rnhg6rCV-#G40Pl`qNB*OWC&F +zG*Q5Ywit;{L##o=R&DGjkX3DrX{zAwWg)F+8@nAT-`mED-a+Bzj#Wr^D*fls>^nj+ +zS!s{Kc9rT5AF)pU6w8VVDyvVH#<G%5bG{!beu&A>l=sqYWkM9qC7_=_63@!-MOHte +z=;zF8FDNIgeatEmKB!VrL1p#DKVn&VoUC|nQCUS*R-SlPB{ouIM+wZl2nsh4G|!UZ +zfKMJJ^W8YJ|J`&dpQD*=`cVG^jv!xiC_Omg2`Xf9z;W6}^&*g0!0Um$1bA1vfpS;S +ze%Va$Y-sqz35_(`i-oeyyI}N$ax$`+wQXKc#&nv_aU^ahBbAI?M`AJk$Opqpr(*+t +z3`16iB5y(53M%qJIBI1oauEfx6!{CP^-^RdWwRA|2gw{o{ur)Uxg-Z|h6PWCIG-xw +zC5kxnhIHV(8@~PlfqzpVXE>7u!?_U~&d6^_PXlBP!)8l2osMJp>~8w=E-ps(Oz0cZ +zHx6RfWt1Jv-emZ^XCY#@;}S6YJPVd*;f3>s**5}GcrL%{GGT^DTVCD<%>s(}ya!1a +zz6m-Yd`$j5LIN*Rz%|x}Vt)w2Pqwgs#+=O(17+~C)Mly5!pl+A>_@gGd}l#24Wz5H +z1v*t`#cAMpX3rF6rQ_Ay3ojRDRS&QFllFO&A#M(!bdqE0Jdnz(zQTS3iS_2d`@r(P +zK*2%R(l4hdHDm|8732@0(?Rb}(kIfHY^N-b#*Cp)ya7yQ);I_fiMjZdt;<0r%|Y`b +zyBxyFUEs7KBn#B+-$0~r*!??*Z;+fSCm9Qth-5afuP7A)@ePS$5JyRrfv^x#2H=v2 +z&>vjr$%!JR#$}CiScY$iNUjBs=2A|^r3m3XSH4=LG$2Zy7MC?RRZh0e=Za}?is@f2 +zMPMqD>7DWng-CpY#T?7>G$BcK@z!S`kbDuM#6zSl1WeWtwx#q#kT!=AbK86sbNP&A +zNV6+5IAGgV!S(zpXGt?@QDksn_uQFrJ*2#WjP*1$EaMUW3=h^)wTxwPg*h$o+!5qR +z?F+CR4nON|FcSPU$a$z@W|Hb9vMtUba@fPs@HzbugwYa7?0HTP>+(81Y%UV+hQM#& +z-S_q|b1(h!q(1>6>r7|~s{vPOeT1uFU5Kk`t;E%`QhadTY60!BM&RnTs&VyMkK>wP +zJ&UW~`Z2DF*8R99SwUQrtzuj;^~5#R`WvoGgw3+bO!+%x=23ToOp>st?u$OULcg7A +z=|U`FBQ8GxQ2zPgzlE|S%1Pz{ISJVufd4Xo5%|ts>k5b^E35gm+Ja~bEnW)=LM8i7 +z083e9n*WCHT1@>RIG-SoCL|*t!&fK*cY((q;l@SMD=3OAB^!%Sbdo<q*vYn(+5Q62 +z)Vp2NY)~<WQ(Il@oJ7Q||LVKeIdIAo9szrrvi@6SorW$rkhVF=P(}I_=?bLNdm~*H +z$pYcu3%(1I#0(~t6GGlN2D$}U0N(S6vyi98cuPe3o8V<3q;m?|8zJ>wTv+T&94U0q +z)W5r|8(c+n&r~|XzRi&WWs)OA>On-A=R>X-^7MBh&OBLc#6`we1aS&lF2_xP7-Xlj +zRj143yurAa;#sP7Wb&41R?r)l!LDSMF%y@;j%b#%1P-GYd!QBQ#U5x6%g)7Z+EbP_ +z99ao*5rQQaK*Q}Zz0taNlL>E9@VgLZ3>uIDvK$AE^C2ZOea9K&$jD>Qb0r3mQ4okT +z1eflXSbIFD`EE`-k-)!A%;{1v4U6+l-1N^ywz%0@__1!KJ@Yms1YwhFD%r}IeWlBm +zlRUFPa*~z}A3T>MQi8}ZM7*;gWv@c)9J=ST5}ZEfx9&sKUA$N~F^fd%lp%{Cer4<5 +zaP>erk;K(BHUGi|LMBt{m$c=#csog?9kB#;Wr?A5*BO2ua*H?;_F5p2gWrE&#O2IC +zf%jI*kHoKRWz0so6q}9N6G7SxWaLHbxf<6g_Eq9)PQ83inXG4MCX<SbAeyVpY@?Yg +z7tBWjNe`e-c$sp&80E~`|3e6$j0nap&OVd4K!_ppCPjPG<SIy&;a9eDIpvt_O&bx| +zNdCQ&BR0Q{=g^m_eyI5$kL8f^Hs!p-Xu%9(5|(J40vfq-`jWblsfv?&FG-t;0XBeZ +zKrp1K3;jvE4pEVAxl=^J@y8Ms=p$|w9EKX(^NYxQ5q?+T7c&?(EyHPACT}q^@P#Yn +z-0T^%<}RG;CY%f{`=ZNG^MQj%F_tgzcz4jZbQYF4`&7Hgpx$kWCd_OWGU$Of#`4+z +zC^)zQi&v0}UT>QRi%Cqz{2)<INx}#|sMy>IUZF?$k3slh2&;C5@qPIW4@H+Zi6jp^ +zeHlp{T+n}$of=QEx?nf88yELR7}y2hFtO+j*|eGjjA9@NQ${f&vb+p-lE9Fyqmf{% +za+cF|+)9F9v0OG|wmB8I`Cu+}JPsopwUtQ-7C<qJ7wk|t6T)C3<$Sl(qAE=4Y>>TL +zk(c46HVc(aU61IM4p~FlWO)=fn`ns~_5w?#WK&59PI)b{lx(M0Er2eov<3-<sOenh +z@b3l=wGU^ekB5AGAI{9U5Ycb%!%e00Q|<v@^5SitiS_i9`$76vVaLl!N>G(Nl>%te +z>Nf3m5zjE{k7gZ6UVQW7aW5y?a<q-o`8Y9^qp9y(t^|_E9Zhl!J6{4?&8gH+K%YOA +zxpNwUtGh9mXi+zb=*j6MiGc+SWGfqXvTCB!N&cEqHp1!Lt*U}pigKyxw}_g{pIMTM +zw3(D_Kw97-T2xW?hSXURAupi)HSCZWN>$_}2&Jmh%wlPNj%YxYXf{O`;~t#4;4+w1 +z(UL@@-bS-3`ZA-pGI}9}>(TrIw=jAUi+2s9GZ?*?Fswl|Rbd^W@CQs)-E9u<4Cmv% +zl=cLLuSp-rAHU?HJ7Xs4LpQ?X^xu-qlaGQ9J_MELKt%B?L-Jk>qM09oJ_q}inSTZG +z0*OC@C<=hs0^%AH8$fIakwwK`|G;HZ8i;>_*a8Br_Cj2y0elDvStYmAatr9cAUWqM +z5V^6`Jl?AEXG3-};O))XR0tep;aA|Qo6RuE$%e9!fE%1+A(rY`_-zjh*TI13Lmxgv +z>DAi%Q!X);fm7lJVu_A{4v5BFSU>~Hg(HAVxiCtujaj%ZZXuTHSV%%O$1Ge+3(AFh +zRIjqI`=gkFb#Vi+M907sh<?jJ-$}rPoW5VX#S3kNn-_uOMf)UL$SCB8lh=XA-A;$s +z8^a>T^uEnVQTlJkh<rFn*-$NrpMp5UQNoB;0+&NKyM?&ewdLzCLZjgqb(VhDetugI +zkA2nblB*$8z=m6>Mp}<}28<$(v?MSKv`Uz|4Utk_LhQgdfYXn|p`5J7m|8UJKH$mL +zN-)b*-<>Sg4QhFFc?CP~8Irvhw~z{F<WYKZQvL*}rlSi22Xpx(4}n-d72Ac(bOem4 +zOp8Uz-S9|`m;jD#7MH+h=2YnnvFusIxQc|R<m|`xLPmj5MK?qxZ~T^z0t8Vpt0*G+ +zbCzLwnc|3wJs>UdI)HVD=|3Xx-C$0GuM_YafQGyFGB?q$KQIM-1^`&I`19}#Fvcmy +zLR{@nDfMfTU!W~{{uz&Y?}p%e;A7IW7+2hZn$W`&vXHw>B`0AYg#(H_N-|B61r$gp +z>EDLSW`smuPNfOfPm-0KK$#hQHo-YH*BB_e%=#2$sx#(`M?qWSVKfW3td-DVSs#aA +ztkStG>sA^{A<HSGv6PJ9)5jU}$jE)>IOBXWLeCv%JWWRFi^mxcl2NtgIAbLlgI+z( +zm`FzLAL0x#2@S;(e>v{$N|5ySPmn3Y@0awJ&#R1YJ+FF%8fN;_kg)#@qr#p8j<f}? +zhFyxQX-}q%9l+JLm*MKMU&GaF?}fb2&I6rb55(1PufsLbz7p3Y`x9J~?Hh1SvBS8g +z+6N&Yut$PkB0O*5N2arW>7g23TN(4djVNa<KFohkhH0ld{O3|Wk9P_DM{8owNL)A* +zleavQa#E6dRFOv;*?6!TyPJAGBvc{F?1?MWz9S!^{ArX=ei1pC1K9FYhT?)w1}U@v +zXt^ywf+VH~@k_)mMx!&hG{cM$EQ}g(EP|`~HN6dxybHFiK1h}6jK0Wd7NZ&S5d9}} +zww)q+oCa=iX(#iFlVb)qLc}qcM+-g-!H&V+jMgx!4ECYH%Q!$ATtCXvsc{oWz;sNM +zQl}+uqKwhU<0i^!VwW<(eIGgSW|(m5rZ2$ocCuK5DTHS#KJE$05v$@NPVz}^viKAh +zEK!YQ7rrWxgzrK8hS6PKCwy#@o}Nw8odvni!>l|A%N(lYGuzf%akZPs%p)nMcpgXO +zROH1Q6&6ggPWaY?#XV6c8f!yVBXRGy1&QY?TXUHAA6#|9O!<kz|0l36hPuBE#N{OZ +z3gQ|Pe+O|hiBCb?2_o@J5O;&<jO%+2g7q+1ocPh?Adz^?l~OROTs#)0IGnQ#a-{}} +z#1yb->r|IDQFwx2y$04f4vU)!Nqt-~$6f3Nvs`0B;9>{`Mh`&NQ-&yES>Y=B3PjQ% +z@LXIB#D#SOH5+Qcu2-66sFq}GzDyvt9cT!ilU+0K9naqr2Jd~C{vyU(B2qYEBOadF +zu7V$?;2<6LT;eM9InGO&?<xrEPC9YkBE%i{FMyP%#Wge8Rq+*xq+7v@yI%zN*HUx# +z?QzXkYOZoMZ;NRbi=_K|Y8FHDR@8^QbZuPouhe|R)%;ydvrHtd@2Ob^%{A1V|4dvn +zfE$SCMOU*srdckMw)NC3hb9}Uyyg#aP44D;+FZ?Hh!8Gcg-Ck8r)C8-%URBr58|3P +zQ}a_-^U9cJrAYd+r)DKIhg0)M(YWSI)a-CI`AkOTS%rt!sXef*f+p|N@(v4Zr&jpT +z*^`7Q8`bWZW`B{C)l;)SG_PSff0`ZF9E53xC**2!W~cHTAd)J2Y7T&Agqp2YaZNtu +z^3=GR=f*To5J@NZ)I0&26RG(?U0m~5)Ewt({xqgpEt016)WnEwb+Vj~PK|5sq~;7) +z^UpEOfg<Umo|*%pxs96ZB5_TwQ9aGBW&$FroP$KtwLLWlLGy3ad~R`Eb1F4&b~VSu +zGzW{MJ9=skh9>V}a`Rnr%{!>M+SR;1rdcDBe%VvA2AX~%wCzE#!>X$fXJ>uf)qFOl +zIYjuM22YKC&wx;)-}4~U=(h!g8uVTV!GY?l<9ePp@Hpxj2q-y6z4u+QEQiJC8=jru +zao8(&#enQyS4`nG1XG2DOdG<xaDaD1qny1yjboAstOEjO9vyTT>fT|k%4on~Wc{=R +zA{jP%p>?++hohld_mE6KmjbH;yk8q-bksG-U3EK+F1ZYD$6EJt&~+Ky0JqaQ;yH{U +z@2^IM6A^q?Wr^wNQ|^84Fp%bb?jI=DUHJ9ju4znVx*e!T+#C#Am?LqOW*V-Bu(q>y +z@~DA97k%I&Tx~w?&!g|yvaw#LL;>%{j>NK<L_thq6D9fuA>lk8cs3@{&ynz`=~6k_ +zxP5z_>4ud@HwIS4wZ4dH4eY5k*wyk?P<%u^#A|7%HKCD=oK%2doB7x|@>`jp6Dgm> +zdNhWROy-4WFH%HOJv7V!XIF_OxFqd^-&UY878gNKmgoyCTtHi)KtLZNkj}GH=UI-C +zeh=9HQ_pgqL|zXgsPkMYvDJjTF7aMT9MZNS-8OFqbZSLq7bDK+-_98@;XRj91^-Y| +z&6N5hNlHnST1nZ$yOdJpoU_{IG)nD<fVd0uB};JBaB&HOBrc0l8(SdE>DjlRe3|Ny +zmpM_Ldf_8Ab5a!)EFAK(c*x6~tfGNb^b8m<r>ZD(n2M3lJWEA!$ji!umU*_L+uO1V +zDLl=I=3CZNOg+bm=2;dGd70B4-5kr}Aun@=6YXVLJmh7b=Llz6)-Ckvd?%V|Sv=%r +z{=kU_Evts6nw)5cW$}=gIa5V($jjm(FLRcP;*gi6o^D4RVI1;uAFSIK0UpZ=aEau3 +z9mopLx-{S`%vVs*YO7F9W1a)cDx$9N`l(Q??07@C`&lKVecm?-OeyIk@0XPCM>^pB +z7)Gr!(n0To<d>7q_7;+^Af4~sK%14ML*6iLR*^3Dawxa@lP>cH$sa(vN|?D&sI><2 +z0fcu44Gm&~@Q$K_dhl;~e?Wc>`9AO2R31V)$vcny6G;cWH<3S-bkIAI{94l4-gY`Y +zjC8)^^l;K4$LSHIiyfy&k}h+cK8bXd<Mhd-s~x9LAzdTPjWFu7M*p5pbIZ*d!vx`7 +zMJMV>Tf$rcFOp=h4hnI8A+sH!4@u`JA@8H4b4mMz?__8jnT(hfXe|i~XU=!y{>Nd< +zN%BtsU`CcQ<=YQG<O0%?tsWX!D5`kELYELeA9UrpN@zh`NX03n2;ut*R;6lj^4_?R +zic?4t!gm#gE>@N}!E&-waSAB{=MPW{d6^RWBrc@l6jFrnEul}>Dj`03b1bPig%lxt +zR}-A^N~nKaNX03n2;n<IOB0pQl(>+JQ%DiQ_j?MRsf4bM3#mAT6d`<*ncahrAYJm3 +z(2U#CgG14q5;rmBS5!~DhoyU%B=%R-u6goQqEg1e$+;gTa|R^`tpZ~jYo;~jAxfyW +z^AAwfis`dC0bqTpgi|p}r837;nB#23L`o^uT9{Wp{GY4TR^V0>;5ii8Lh=>}rlANo +zQtDTTq_gEv+y^uA<{8K(<5aLjkW&Pa&Sp}EWR8^bmWPlWyacSwAK>yl^t0GpDZpVw +zo|oANd>hZhGkN0iVh}-|3xOdvr7+~0Dfh!KY3NR{GC61e3FMTa2@tr80<)B%cVmWz +z_d0Hf&8-1)k5KMMeBu~<hK7EP%lVK~hNeQ`4-}ZA3_Sq8@+b$8yB=k+NuCe6J(OFP +z`5x^exfh>-2k=~~$j0gO?%ag#;=v_9S5_B5nj2cOSy{aw(#q;bBv{UaAn=!MVNNPi +zzF@ungh(%g;w1da)}7v1ef)&=;mvXC<4#JIA(GBMKyg0EmCK`$$v6g<$UK1SNJxlu +z_JCH1)KO%`C|Jxa0_##FW@dwU8HDopmk?^AP^0p<g95CV>A4{2FI8ZWy=5(A7g2WQ +z3K|>-)(sRp2}BWYbIKrv)>3G)GI$pF%HW?!&>&SH%bxWNWVcXuRpw=g9;L_yAjbE0 +zjZt7H1<qE+ZUkQ$v#^V(j8O%DIn@x9_r8m(v)6&yl*nb<zn5(vlfaZwl(?T59t6co +zkgXMvQa$8;N)6%GWXhfFA?w*&lh7}nj<o@Di6#@CVL~1|JX6v3g#7KzNX_^WSRy~h +z?7bY(vtX}xD~LHXEc#HZ5L);z<nu~H=EoR)sUgo$@{5(c2>p(Yqc=DEZL=07%C`Ol +zx`5p%)SKS)`B<fmRB3yd#v5{I81?!dQ)zW7&BFYrfcL{f-d}PME8-=7S}nAT<_Z$P +zv&|4xiaGyu&R7(WM4BhStc!m~GL1PE(%N~DFA>Fqke??#f=Iy>T#Da;l-E%hfWmr} +zLh%|%dDHKRNr{W$swJ*LWw>*)ChX{OPWB-twXwPCv*1}W{amoEQJ`@@##LHgTn%eC +zuBP=4^02HOxZ2hO;Na}gHvH7e-T`Fc`5Fnb4@u$41z+|hZFv@x4w3eGUZ6|?=_F5p +z{6f+J&tCG2NC!Pr$uB0I?P(xgLOS2mM!FyAkmq5_mys^^Y$aVzy3A8anM%@Co>ua! +zNLPCvC%-@G8cvG2OYdb_`+?)*CI0w0VKYRHbUy31&9)M3qxAymEr#&an6N1lmQiZr +zg-U7*rFdvoT!vt&cJD$Rg&3he0XKVReI)}U5&ypR)fwPVK(KkiD;ds{0C&sP%N2={ +zb}7@%J*DuPX2d|0(Grt+bskEmVsvGOBf;Vm)g@Hp24+&v4NU7{h~RaPNAdGN^ty*< +zG}<v<_t=Iky}Z#G6G--a-NWO)?(sU@_3~zCOj06P33#2?JyaAc0WVhq##9w$Yv)S9 +zI7>yb67X`YGR}5%ds|+v1dM4;G~e<*#nf}0XrASDUiWZxb1bj(x`z|(g({%#d5&<F +z<>gAiINyn8T3+XM4<{P5yj%$wO-?k!@;a}3s3=wfUgvcW6~#(GopUuJjxbgNKD_R+ +z51A!!=r-n&FA}!W)n+9l{Cot5*FAE8W8zHaH1`c8CpoWsuqKn7*F6Xyh6yr^1w5Rd +za34)xH543?!1;%<kZdbqHR-Eo;Oa}*M|u%yKMr)z6L)*tQv)7e_jnaQ2}{wWjK$Oz +z3EU<#u6HbP=gqj`9q@e#&g&i@fKE#2@w!JskJmjC)FG=I(QhzFrx3+dUXU?MmuxYw +zK(fUr*_QkG=Un9QKl=E`Qb#c@bqvo|M=@=66w_8mF>Q4e(^f|@ZFLmWR!1>ybrjQ9 +zM=@=66w_8mF>Q4e(^f|@ZFLmWR!1>ybrjQfj$&GB8E6N%b!n?*pzSOJEj2uQ()$2% +zTMf^)8lG)6Jlkq`w$<=#tKr#phG$Fd=y(I1H`r=N$5uN!wzH#?CNOD~1sp170DRf% +zNA0Go32FhW<4)WjGi(efvWO{9GdhGS#cYvV5e;&g_!N3zumQxYATloi@n;Y`WtD}; +z!gV8yv+!8hw_0R!b+HRcTbv}r*CH~TUGcXS4{|LccmsG{G<qWl8~3=(WgwD3bh(<? +zu<y0P<slP!3L6c(K-xRld6JV>BW;f=(yg9YktVT7`{PBL!j$QKQKSc{at4dEh|!B# +zLN&BJ&gfyLo_QC9HzOK+4whAcUjf0nLGUdQ1L)+tAWi}Cb6^Fh_*5ZtCwN?A{H6!* +zGw|ksw@vXT%W9GNrOVpkid_W*ljT4W<URE!$OgXwp)lzJaR)e=0=E`o!qe!)0MdAA +zK;e}gbkn$j>EM%@4;I}#*<qRft1c12LNI?yV<SPV1u;EtEOQcA+!46UWx>s}z}f~@ +zOPm#)0oLEZ0{$G0a-4Nl+DQcQo)#qDrK;gcZ>$>bVKsb2WL3+$m(?&J6sv~&wn2OX +zqpBL#FnS51!TVuK;r=8D;-2{u2o@+6rcp*!pv+gnWE~VaOjQSe0*`etv<L4k@K^`z +z(S#a>d*5Zva>e3x@OLCA#6JZ=#Fsb{Ks@_Pm&JLy19b2ku;^Ft2nd23G|+?;MroH5 +zmfr^uza0gWt?Mztb2{Ab3Cr~?xPs+1!ty$!s&&3j9QH7(VEH4Xo&uO208<K<lR+q0 +zP6xs4OJO<=%TzE4%W#LOV3`3PVL81A?*i}$%S^>nuw3G@u64!Yuw0G=!jioR1Yx<` +zkw9k*^69O@;D;a-2DgK7Ft`JgdHGc<;&V|7JdDOf)xqE^VvvJkIT-9G1{X1^3jH+; +zeKQOFJako|Uj?BG{Wb{Zmj_$%Lcb3t3wVOVbowKBEFh1%IrW~s7c9DerX!|$oog=0 +z$BWAA+`gb>g7l#Roh8k)5YJO%WrC#N_rSA!Rd<P!jz33Fvmj0fdxbzS6Sk3oSTQ}t +zhLA4Fo}y6rwLfMqU76b+Hy2dqyoE5Y+Cruz5V?#iT(VTW7V*p~nEN|&3Bee18Z3f? +zz*1O^1fj4R4T5bU><B4X8o(n|(|hnHfk&t=Q#{ocrn#&ix?-`mkQqS&ccJce666rk +zYd%;#OT3u?4v-7L23n~1HzC_w0XRUF7;DEqd~hOb<RS=dQ9^sMU7U9lRcj>2;6@a) +zFCPA$sA4xF7HomAz~UxzEr>)AeW8QW8w-*6IC$Jq39bjxk5aFL7zu)h!JOL2d<(48 +zz?$YNE`Zqk;BiA@Zj84?WJX=NmKYCm-?(zCj`M<D;Bk91cnris5Se&cOI#0Pqa%d} +z_?do}^@gj6=T6x{@aWr4S8N0hy@GWISRynQlx&u@_;CQtJp%LcIyn-YW`)*vz?ZL< +z&(|w_UL`(fA^E3t;(QQmL7WUJx8$>3)?}B3Vek^LIO&+}ve26^2kRBEg7ZPVMq(j| +zHWJr@*bXAI1;l3{S{*gEs^HDw9Re?#U7j|1pvcX+6|7@m{V|?%!7sr|#odh()o9_5 +zBQAd-`E#Nw-i^tz;ys{>_c4pN9?7bB&x2s`dPB<1WQ)t<0T0J&<~FeC${3f0;=K-* +zD%G1HRAJr*!NSaOgj8X;|HZ=e`WOT)IC+TNM7GXN@>8$}C^tE|a%y3-a#Iw+&Amug +zZhj4dZoYcl%?_9Kx8rUe1B;pLJ?^G~i5T6?^nsvvUgQHO=v`qtc=S%>4x&4MlR+>l +zlshZp?!2em=|gvNk*wS)1VMMsaEt-?U@2IHAy@$-gbK;52EiP!Ii6#%20Vqw$sl^- +zF_EqEAF>W?j0ouHFGDLBj)_nDjyUT`c1W^MRN{PC?ZDTi{2fVu&qA`(h(XX_6H;z1 +z&vsdS$nVs0Fanlpv2#JFDxD94MHuM_sVZFv9*dB<7zB$jEpD{e55el^Hpao2Pkg~r +z^|=xPJijPPxNYMb!jZUSJ4)a?QIR~YVBEqrOzA9K_$0fZD7gYs#t-jBr0hPJ@r5~( +zak8As<(4StIkSYZWLEG9S;BZul2d6gl}u5_^I-|&$lw&vVU`DwtyM*V%HP4NSy}NX +z>>!%u9OP3!rs0YPv;|)sZ;Xyk1;<L?DIEP>%iN~6Pp4%L|Eauji8Ah$+7rp-`0p~g +z4{kS*$@!?`9d~C%`MGqYzjEY5*!NVIFCZc#$tmM*pgn<VoJ*!EjS4=`_2zOWnaUN7 +zsNjQRZ#M6=4x{n_Js(r?3mEbY=A9*#Ya&sRn2)^51&pS0K`6@kNZnA6)GK%r!?=&5 +zy^GK%bmJuD#!T8%5OaKWaIfGSNLCp~e#ck^ALRSXIqbW5@gcguf@8VEsN@?+iGj-X +z`0)*^;B$I^8HZ;#nRgOjeL1%_?a9ozg8QX*BO8}n_6pWj1skVRNtL_dnpstO6@EMe +z%c}@xB~{DQA!!XzR-Cu5*jC+)ma{ygD)>0vo5MlV1(MI`y}j6JT_7K$_5M{y2xN@| +zqPPP>mf)Pp-83q}lx8>3T!u!^P3tZ2|9du#tfY(ykoxuu3wz-zPG@dr!vD-F**$&d +zQEOr={U~$(udj(c?kR_SG@S2Q6FU#VJwxwg@<R3^`+Qvg|Njt*r|~glsXm0_nLsqv +z&Y1HB6wgGy6tBL3;+dq<uqCFxfZ~~~qSz8sUqJCpRZ;X`^#v5qSt=U)0*dEsN7wxV +zif5V=b-#e(Imd~*UqJCpcXZt^pm=6DQTGcdp7R`G_X{YV^PQ;s1r*N@oT&Q+6i<^A +zb-#e(nW>_&FQ9m4sc7sAD4vKTj4iPQpXc(|P;m7H6wf^JoiCtxnw5<E1r*Pv{Bnf) +z0*YrYK~!Hr@m$6#R9`^xTtWEUFQ9l9)L`IHUqJC(#YW(K0mZYBZ08Foo~!x1&G`a~ +zXAx<B0fnBpTVkos(_T7Z@@QMYdD_c(n)9?*krUXBvPg>bU!ZHrtK@Bv&QM1~uO^8l +zyLt|pJ{~<#E|rhQlW$VVnY_2jQBuB&ge<icF-F-Cnb$I9qLhD+r%ZNIdeMmL$*?b5 +z4<nZSEH2ZF5bs4pYuU|JB0GC_J6Ja`F^9vN9Pu2IF)~884#~OO5S@ovTHc!=7J?8t +ze0f^dzl}J@1LvKed}1KOEbW6ZmfL~U>mi+c1jNlGnCERI@R0(s0z_UCh<ibZ-n?VT +zvsmU3co>;r^;6`YkLRPRnZ5#>eMTX@6zNF73q^e|MidB(zB61RG#LaXVUdHsoJor{ +zaf^d7zSE*=aqmD*SsWg-cwvFE_-%6(Ly>vslyk?$P4Q4$VLqaAF7wy}DO$dq<xePf +zEl)r?pu)60M9cZ$7tz=5ZsjTEP$g_ZGa%_;{um5r^E*u^F}2qUP>Ya=rUXd-z{LB( +zn#9B$-rwc&Wk{|?Lzb=maJwqxHnUt#rxrk{nAYcGVt`wMkiW@*J0-EG%4U;tqO=QI +zYf%;bAkdFzJPSmr2WsSvi1ErqX}Zgs7~>5VrF~r9tQfDqD6MdLSI2k*MCpkx@3t84 +z1W`KL<?%ZtD&GoGdb-Q|O^jD1N~gQL-^X}^L@CQb|9I*Ry0T7`-s-ZxjEPl?vin`0 +z0d!OrHKO!EmzNde6^ru6U7nID0=&G*$~U)w-Kx-k3L6|1tdMFvS>>~K`S}l^UrAEc +zN}Ge_o6z7&_R5%XVEMMo`%#PsEZ=u|Yht`|QM%LRJr&~tkI!7*))=o+l>WozapPDy +z42-^ZdHZ5K)B~S0)0gfT5A|@&<z=8eN*DEjPlPDBelcFPDD}I%5i#CCQ5tZ06JtEo +zLzc^%72}~z<h#79W4t0!TIlj_i}8v@X`Rcv-{GMSt0uWDx2{AECxi0946w(kdbkN& +zFU1_?E&&TuV<8Vmp<WV;_UCYyy8wwC96??H@)dxPdl87&NKmwm#3B$p>RQUD<$nj! +z55|$RL|JbJ>npH^yDYSuTV2*^E(@i<%VjkkSG?P0UFou_Mb%oDMblVM4B$*r`s9OP +z&sK$+i-MfM(fM7lcwk%R$XB3WNxDDB=-h)y;cyOb9|tKgjeEz<0f?`6S$pD{mOkgQ +z4!bOr=_Qwyg6!xE3h=7S;!8<np_s3Ol?L-QE^DC3eG{xguu9(sQ4V6#@ie+T9IV`r +zL5u>CcMQZh5TcqZ9$BDnP5cboaPVYnHkLU9`Sb}XyuThq#~HL7HwsxKnTETs7_443 +zD^{9(<)yL=f;GGe$$k=XF%Os0T-fBn>c1a%z7Q-rxc@k-0<76!d0`txv=+3qghY8Q +zxHp6A6dFeotUgG0U;nP=l0gns+1EqRalD<5^HCX6=r|u?IgSthj^i~-^F=yd7k7N9 +za-82JD&=_%I)0Di5>Y=NEIR(^an?m((eW(~%XNGKxIG<LxBM0`ox8*V2&+Djw+uYh +z2h@H4uDC=dTD59Zd8@%wZE8p&?;AC|f7xa|P9~hlC9XWtVYHILg|2iy5ooR=gWpb) +zwT{GUFotsd>$!!~v7xCXZ%0W*Eti(wv9))j>a5z@F8uh)YCpq|*{_!8t-RxEA7k3E +zTAtjs^M-L<l~BfEYdG&?Vi*@@3FYj<4x_da^8T#a4g3kzj)Lp{oZ9yp%NWMhrJbuf +zF4qQP7*~-v1q2v}Z&M7ehO8PkaF@Y#l%2!oJzS~Oo<mc?VO$}aWo+8RCs4C?Kl!<} +z{rQttJAyyGMtlSe%?cKkRpm&Icok`h0lLq34TkfA2DSu0BiYJM;!4&mcZ9JHgF|96 +zis7!v=7HP|jc0M&jvdiZE3N;VjuYR`7ULc#4)sH=-UE-neViBvh3}(O(Lb1E`Y82B +zklv}}Rv9R_ZAMF7t~wxPi6@cf;;<ehaaaq8r=eLT;+cwCnOfgE&R|*pZe?o!A6S{j +zzLUt-DU0d)b0~sr{Tf%FnkJXB&je6x;bl{j6Q`jyJgtOy+Qbo3OS=I|h|N)6<-@70 +zY9%x>E_5|5okpPqHh+0XErdc!$jinm@16!mjbhvaEq?^jQ-S1Fi17Ojc!T2xu=p6? +ziQ@P!>*klY$MrT*uhrFi;<(=W@942p%BQw~i_)OHA4AkB$~t;^sVWNljC|>XxR4ha +zJ3?D1bOVKwIrJDq7*FP)W2jLmnV(rRf6Vv4QrzR4{LY$rD|=q@bo4ayHYTRB*V<() +zQ9$+DH1;*S+=&R@O3}tJ2Xfok2_V_VI^a_+lty6SkM%jV$6%z-Lh^rnEXwGe4FJ@! +zC_{Zv(m57o^d;Ll7G;D;JIA7o0@BX0D5H?Hb1cdzBJCWDGKxt%$D)i9($29cqaSJK +zSd>vl+Bp_wl#_OjMH!W(onui(6=~;Kl+mB`@ncbcW$hQp(O~+*fJPQnq4erNvsA7K +zKezehLgKXyN%$lgWE1gJW)X?ysKF$@L+Hn|_KTQ)U2-L&4}qT&<E8RQ(sSV8FW^+B +z_YcgtLB4<#C*y|W8Bd^(!p}`IxugY#S0O4}J*X~byp$P_#o&^*8pJB3PeU!so0A_z +z^jz@M8Bcu*vC9#oDc%(1kAi(;or7P`%TVS05wqP+F+Xn<a``w2IsJ~Gf^>wIQ|JhV +zf}hdv`{*Fg4<G`^mc<3{qhRkc_^A#Iw^Ht8M1`OCL;28M&_Su7^O#$hhgq1jD3ZzB +zqI}{(h)h)?!O5(U=V_w@%v!}f0KKeYCcNlJDUIckUX6@xqMcvSPBtkMX*s-@vDZR! +zl_rny$-EE}Y;yu`;(1mn=-gS*%Ua2_{E;ecoJ!*%o?I3wn@*gKn6hb!tOJCh&sZgk +z^&^(U9^^HIV)^XE=7}V;XF>PJ5b7=RdD70xScORL4Y;Ty_76HqJYHu7pJEcv80Q~> +zaSY{*Q#3yr1++8%97}i4IF7(j>vrl3A+Q@+or$LUt<J2^IHEHX&e$2p#c0Ief5wp@ +z$Idv;rIb43SdHdpiQgWFdZ`Qb!-U#7TNy)Ko%xfEV^I-S1u9EUz?dPNGk@x^pPWdW +z)<mXFQfaZ*e&l2ojlK3Gr>ZDsi|Vx>d6tUCUi*<}JG$;`Ka%%6v;_CHA9;=wbzl3D +z(;Z#+wI4adiMp@-$nzXw_q88+z7us{`;k9zqV8)yvdM|Mul>lGDjIw3N6u2w*lRzM +zw_bRKolV;(FX!1&4-fmvdE^VvR$OGWk`Z2Y*iT-%5<)&6_LFl7Vge8Q$;&DgiElg0 +zD^!)ZZxQ+PVa-T)4yE$z?|yzs)KEFuCO@O@zXg?NWIGc4?z^7@q|x7DtR;ir7B%V| +z2EX|3=NCqe$qs{`g!gl#G-f&se(T-OuZ<du9R@$H?&mj0jawXs`ck_Eqn2pIZ8&z% +z#rkkJN>LrcZ3`~&QTD&SXKz`a@0r)B1A*T3-$DI<^gy83+4Vhyd`(`|ti{MAnc(dD +zD$?2YB`Mq|75+b>hv36J1*}Z<35Y6^xFKN2bbyj{-$(J!0xoihY>Z0|IW9R=NhWvE +z*vVweD{x7e$|j`ZKE8~3@&x9b!c~^cCA`j^Bb6p^MwIsh*?JnPEWo!-w<Df*5sghw +zZ-ymK$1<28gXCr&gZLd#!x9b~(Lq0WS+RI8zD0Qi2Gj>5S3wFZZmf(m_VFiUC$47T +z9b75Hzsxcy+#f<)M?{VZ*3eokp3NiI@(g8*JhUMphX-jZxRV!J;$IH;!{j(3@OTI- +zX|QDLI{2Ndpil{^<=BLnGaFyb8^@F%AeyiC6B?*?H=~#~G&1rDBE4UMAtKZVTc20K +zU|;K5sD+4S0YADSCzpVH8&dd>?0Dydeefw_R=}RB%`;d>#fXYRK8=;<9}FQ0QM@h- +zbc?8RK2_u-1#JhCF%}Ei6d<%`Kr<`GQ}8x}qaZm3NgpNu6<*5luaM6c<*YzKEK9yd +zqq3akW=Z^mNLE>17$E*PG0PaQ7wcecEX!O-sw{`A8Z~;<C}mWZeDo|MRgg?VT(%xV +zmc=!QvV{Rn?4yZ7KH`*@)y9SRhD>o?51~O2;*&}_zdkNBjzSZ@EmTs*{*iSKl5BG} +zCK-LLAAk-K^%8C`%3iE)+l(Ns<Pp|Dw!@eUMyWF+p>RK5_{s>jVUwX}r9VtNd^e;Y +zv3k}?%41T-D@@{f*3w_Vq7{5A9)A~cJN;wEsapCh;~8Ja(@%rG9W*fdDSeSE*{-j` +z{L~!>uYdr@!Mt7=|J>Jx)%a$l{|szPeecFn-@CEY_iilpy&Fq?@5WN!yRp>wZY=e^ +z8%urf#!}zAvDEi&EcLw`OMUOgQs29=)c0;I^}QQQeecF{zIS6kgB+hg@bHovn<d6x +zmta|C`k#=5&+ei_`{<xr?SB;0Nf2HlAPczCwar#awa28qD7&&Og_pR<6F48V%~h0Q +zb-3ufbsU{lE;`r!-;WL(kxX;Ysl|x$J?Qv_m+dKrP7<ZQ7ag`TS?!>M!wxPw{8))4 +zPUstNJI}i4Y$rPE<hTr+2pCOua@^#Z11T)^0<kRo3#)-I5X&Nx!sZLavY51G^Spp8 +zA?>sI0<kP5on(JW`F^AWHeVo?Wu${PUm%v{q_gcp(iNohZ65KEm83&9Pln4X(#1Ak +zAeQ|}m)U%QSPmdv#aCRKa4WFXd&F{}dgjjeh~*%r<EcLN29vgIzDF!;Nc(KQM=Xbs +zPO^D8L!L-FVDmj<Ih1tJ=6l4lmUOnw_lV^%()o_>!%2r6-$#)CU+ukpd>zGgH@;UZ +z3t1LIwrt}!?5h_W8?38Whz+v*CKFqhjcm(CehEU>izSdHp?hTuLM(?GLJ}u6iAhN6 +zASZPwA(T=cN}ZIX4j~CmDJ7Jogwm9U(v+sO52Yj@(va}`e$UL=on6UpNc($!{o}Xx +z+?g}y%$YN1&YYQ@-5r$~+3T2IY-C@-^im^xJ=2v&_LWT6dfD<FabnFQG-7^7oLEbQ +zH;La7CmNW}_Rjl0G?G>HEiv>n>`HdfdHh%_tMqRq_YUU1fZWM!{_6;N{0YAQIgg)n +zW!2`2TN@$qOF(-+rQW>zLu=sXF+E9hF&-g+;z};@tw;IIb}{V0pY#fic4^{cU~Z0Q +zSSm@gkU5TA{fb>rj6MWW5>+Hh{4om&WtC7){t9uICvx8)(-q81yn>%RnVeS=&cnpK +zN{Dl7NxWHzW}-=ks9A}&Ffk>+nM5tD4a&cdz+Su*i5;P<Bu%1xZkQ)JC0W2^mn7#i +z*)7TKOzvYcFWrIfdV3`Iv&`+4B=^n}*E8uAaBDa5+f1vn6DPij{<z>$68$!l{|obD +zA<vIb-1#)XMOd*<6?r~EK^p*0dx0AG<oAJ1?93ly$>YT3XEAw~Bxf-BDM{YN<fkS1 +zQ6}$ZvgmsJw4lR}Vb)FDyAU=q{e#FlHT?j7f&U%+Tnqet#GhD6{Fjk+%3wNyd4`zJ +z?NrQCgXsh2bz<&GE9N1C=?8{y4J5`srkF<zW)PTV#GL#+#hmtv*l+g(a~&~Xz7srW +z@N=xa(7;UQU04q2D4<!(knk>Ci{JYJUbq>FuQ9<>rT&JAP9%QL!~hZ%OKtQ2wHSY0 +zgUmm|8_XFW1QUM1JA)cHg@jSk+n_p4s*g4+)oG>r3sTLdDsxI;%ZL+4dEB({dQGVk +z<v`4N5PV)lm(6_?iGM_59u|xvz?f>@K<+cF=0QG!6b92#PJ~%P2GV0c0~L?rP5j~C +zD%DD*Y7r_9n>+|ph?PU);UdspMEQcO<-)pG3msx1!+RD=@mSr&ndK-YWS>;BKN8-5 +z3R1p3zMfQ%J_4$lOkVhx$p0ZIE~GR1ITB($r0gN(+Qa1cW#Cq&@N*GGyd22GL~aoA +z0?>%J9dy$2gDikc8b1$Z?q-><zMukrMhX9fghG`B)kCEEnulL$#tTaIc0g4IswYYH +zokdDDr@~fRhlDqqQeF!xROKbU$uH{XQ;|WIk#wIH`Y;Q5MX%uJ07|_?-hcKoerGay +z;hV_+GDt3b2Z^VUSin1(2Z2gXPJlIs+aaxOyC|!y5_v{jcK|bs!~I&(Rsb3qt^%QG +zYqylJdbk&5_%tl>bS{2H4}(g08wo{Q_kpUFRNqS})n}CI!GP*vP>qo4*%qaGT&ey# +zp!zDP?k3e=-K<pqtW;i=*7!K6PLt~UCzWbCkjBtSB~AP`sGcF!b0YZ)rPxXe9H9DV +zz?INH+P@fr8D}@3QtonQUD*MeGH$MBUC!h}4pV%NfROEd1VhL!p}z%p$cb-|h2-VF +z-}Dn(9`ch_bOU(dnG|Q*IwZYZ*iN?hk70#x*a{byngbH}f{5&0ME}g1Jg&=`c0bwu +z-+3`ICl7a;iRFnuN0m4q9)A^UIg`1VP_JY{4;jpvO}dK2zXx;`N>?Rxc`u=fiM0!X +zPh0@QHq6!vZpy_hyq;+);4o=UJOrYAbN5X|H~RN{bN5ZmNq_|qqLH{i2XFzEQjgM@ +z0x`kk5AAt{k0Lp{8q=iaPx}UPs*wXDe-=N7lzwaBj{x3ATFsmGPskY)TD(&CDEQ5I +z4{~PmA#-BxeJI%iFmd8SJ{n3~^ENWdBx7b4#w2gbuOU7DxEE_8`c<0kPO0e)@SQ_g +zYPp~W6mS82rj*!|1RLDHfc16CX^-W^HWJMbJQLSS`}U&j9KzDJQNw92A0H>$sqFP2 +zPYSosgBvu6d~$mhlturJL=y<|NYGK}qmlnE9Om)`?8FUJZV&L&i9hjOFqp>|z}SB{ +zo;QIpJeO}2C(<OmB_QNZ#=JWmLbP@+-z`tPpM=K(LT)b3JK+$LBVSie+)Bbz0U?hp +znfH)G2#)jn3P5<_4xq3TiF@(s*?bXhMmv7&F4_FOB$-8nndE0cGXD-{%r+S#$XH+= +z3$jd-KPM52y#+kg%AfXS05k3)iW>V9gW^$Ee$lsydI&!YcxaVB{RaWeC)nB3eoUA} +z7w}nicG1rQJfBi$PtVD=<vnu`_VrTan$PX8gcZ>Fd=r-Z|KEfC&%6iYu^M_0w(1fL +z$ji}T=Y5O0_8treTAuqJj0bOIRhxUTw}N}H#MH#Xf}$yY!Q6tWiD@~77lLS}=NDWt +z<;p1=iePDF-jpfzz{6a!6H}%zKY{#7i$OFGlTA)`!Y>H(&nt?6x%hidme-Ui=TFI> +zvTO=mc#*>>FQg!D%7u~g`5_k01VF9|R&W6Xql6dCNL)OdB4MFPc<K!AV$5dKQi+wb +zP2CsI-cXbjsf#8#9HzSz20sJ%py@Ml&{hCkn1Woa`{LQu)2dmYUL%#x3QJ^Rpv}Gr +zdz&O^ow5_HnKK3Yod&l%x7MpF;@3~}Tmnjc(IjBzfp$I<<gvhEi4w^V-<t5IChl4@ +zy9(sRDO*7xL5Y+DVX51mh>&HhbZcV!g+{7{DbH0+K#F@jG}&sH!d~o_qp*u13t9wO +z@Rrv{AXnC`JJ&$uORSaT;!QDW4-8{zs6O&4cR-X#h2YBBJcg*k&7c}86NwE)thA~a +z{aOJHRl9P_(M68+ZohD9LaaA5ShZb9g^w4*zMK@b(VWn%Xo2U2CPy$=#h9#O<S_wD +zb=AE=Iz8x<d^E<<<N2lw*?$E_gH_V93mg>|DgqYls)FsD=4MbgMR83;Y`IP>6Shn- +zXGX;|xC_C<!^yE`1kGL~l-T<l?+YAlMhAMfI)F)T1!frKgcb~ahPIJA&UkTrs~H!0 +zVe_XrTFG~r2Zl<kI6tg|=2Z|MR~INl5?kfkF+}}3y)zAz7+~z3h+c#0upV(cfITw9 +zmCNXKrqTC>@vfN_C57TA(z9F2so13rEZntawQ>4qx1yLqPJ*_y$>@7_kb+R&c~OPr +z(lFqr!;Z^SQ<-uOQ~5871vzrG&mfXx1i7Iglf#Z+uhVL5*G*9o^Nomc`)~?E0T+az +zaX*Ddd7LV0;g4uEQ%#3XGum)_f*ln1HRn)1o*cW{j`sz}B74BjHEdTdK&OA$Y6U?Z +zj1@{587-my&JT4K&Xh(og;Dp1S4jPW4MoeQ)Y8+K#umA)3CxkzIU|9NXoh;nnd%)e +zQM!|hQ6*+c`l8u!+*t<0*(_<|1xPqE>ok8}sBq{KKroFvnuH!h9fj5t6*1Cwnv`|} +zI;p_vGiy=~w$Q<Xcxs-N0y?(INmFr~P^9?;raSZPBx)Nz+_=Y?Q!snuj!l;lvmAFP +zl(R`0UvOZ#5n9AW&WM`t6qkk3f^Z;ly#WtpW~gFgG9^)yDRoVz%$UqVwS+}#2^R;d +zoWx-jQRQN*%1Ik!$+LuG;1X-)Ht*7)IM!Snii{!Qk1x@X%Hz1R7?SN^-Z7oU!A6{B +zM8rwa4$KKb3|FHrJD-TZq*#u3GF~N5l`=(@l5ezie#mX*Y!0LXS3b5DJ}NZN37wBy +zB9Qznia7g-au@I6qCTqMfIDrHZ5R8%&~i-5oh{tbk+M^q5rjtPJ0Pt4e7Bs@L4oP- +ziQDfunn*1^*gDQMJJdCOD<1dC9Sv56IiY>H4j7VQr4o9vfcd*r?u0z3Lf5oVSupL1 +zdL5nShN^beYmAS>eTpFvJ7nQ}2Zlb;aK|HY=^5TgoNWd)_c+lR(6uyLW@MRUIx4mR +zJ&UHIOGsarkmneLj)hQDPKyBQ(h}o4*Ok%fFlR_|n8g<|T&P=9F(dYT9kB()XoG8a +z@d-cLmT)<&3~;uQxovSw%Z&Bhb1b4li}a&DH#@v73GbvQMTN*wg~sn;#!r!0c&lwd +zE8&2FO@%6fL4||m{Ih7dz%}!jo4+8eg+mW_=&Egk@pZT}`{~`fxiy|{Cbw`lbSW__ +z$}EZA4ew}NnF4Fz2*DqZ(00=v=Ef(&d3wiwkxsRdxe|Bhl8>UvP*3EfGo^Nasdj%^ +zNM}rJ;cseLQG?)Zt2JG@ZPkkL)vK{P$MlWe<&C#HG3uxhg`-kAPEw8&`^*2_sNe1E +z6K$wt%%SDyx_d~IqpHB0!0xOzCB(v@0a%|12g%8p6L*2`A;Dk?7n(h!sb@8#X;Diq +z3j3IbJw5c$GmJ+ztErieZ@)0&s%JS6&2)A+?&btSU>Oy$<+)Y}E|^g3JS&6+v9Tof +zVV6_$$FupA*}{TFi%M*{WH8R%`e5MN5<KrhGMq_D!^Y#0gt4)OVV*JiMQThJ)A|<& +z!Z>TYB|*hD6H7vu&df=dx>THumPTo!PMi7?8$Y`VhI^Oc@+UeX{y*5$9PhB{I|IYT +zt*MUv*iNV2=M2>kYYc5E+_pg98dBZmMDN3sj@zJ_rEV~C?-nt`ImQ~e9+?|43>u`f +z{<z5PsMtgice3>8^RRE46xR;pE|whZN?^NFn@*!Im3%zCmOW0&#XU|Ap@r(n7pdVg +z_hM%VhP#<&crH;w7@j-Bu-v8Q25hMzu?v6fX|mO+pkeNaVW|p-johYHx}-53R5=3{ +zEvvSDh>oEqYOFHtD6I{#RKsN!gg4`4ba@CG@BAJ&gQI3yd>AbcB*W-4L+uLV46k%C +zdLve6#`y{tN522}S4{t<k?o2fG3xjZjH|AI@IT**v4#@4-J_Zc!ZCS)D}zzIKFNq; +zqROQZzwVMWI-kZD4xz6x9^o7tCayq%7HH^PG&(~)-(6P8Uai^2D9|y9yAP977%F0_ +zGgvUtr<oDQM>fvQT;x6@Hh^ZFrIXaf*};KL6qn;Hotb9qGG~sl?YX)-(1{i0&181b +z|FjjHRU-E}qJ2H_U4y%Jid#c;?c_Ya!}f-|cFGI2Xk3gt@&n`iFAh%APvP@Bnr1Kw +z@)pKg1_ol>iXDrL-Nra~_PSvh*?kEN8(T2r=0glkW4M@tk$|riJLMRFrABX8qJsci +zc;xJE;_0mf=GL&KLG|Rx+ZD(9x#Dw%S$u*G=dbzBG>5<NWmdUKW7l|u818MvhER!% +zi%5crHmDk{E{jZr&T@|`;bTNAwHYuM>lj=7n~of1@UHHve_j9hn=_9t6vJDm=qQ{N +z-huE|?bo=Cnyezp!$v;*oN#zK<31`$xE&FiR`_f#7(%*%g1s>8c!f4-NGGRkH*&3r +zAr|_0IQ%II46Cr8#mQ@@b360wHpWc>$ELYa?%1^R@RJK0=g}uEtH_-rI6!1;fRE3^ +z&4Kt<IY${OBG2Y!aKVP{(<3fi?WX2DXXsqyR)<IQ(Gk6XHIWgv0=Nz=)`3=H23n~* +zADL~kvZ!9T6j(TZi}QcxU3q9A#yp}=S;Ah7J~<3ask6m{^U%^FK8E|jj%7^nyu~q; +z3*63NFNCgHJuQsKIBPK*R%Kp*z#sH89&v{0sF`j@1ro{aQ0OUxeAdO+K2#Q%rI=Ru +zf(2gt;M1D9(aw%AINO7na75AEd21eVq)GJ)#S=Qxs1x{q)g8fQn9t?BZFmdGe2wRA +zLrN~l?%|a{FX8di2Kjn0+r!_$8WXI|!RvJ-V8r)gqXb_^&eKA$jnUsAK<9_Ea=jOk +z<cs!+u)02ggC;A3=$0s!;O&yt%;*?Gv@W;-OR!A|AQ!5Ui}asGKo%o@Z5%CrcR;XB +z37p~{-o(pBNO&!b&XZ&_BYrsTdzsNOCa#lwzTz2NxT|HQjQGN2w9<U!Of>|IsKh7% +zbMTrMIWW3n96=p&Rv~10m1B$>5g;U^O_FS8v>8E!Wa7Bw2SSbjycK~Q5Xm(?8><$C +zgtvv!A_U5{B|<==gtwK^JOtkx8jawY3Aq`SNis03#Q>KYETdY3WyJ3`d@mg`B54YN +z(lM??I1i_cC(~ZZ7y*`mm?}AAY84eTDv{(4MvF}@BPuQ7?ZB^G1lJ&-3?u3YDr7_@ +ziQW*)wF<uu=~Vzh%7~;1Z#yG0j&@@!a;_DEW=1`d+|H;E!S{wo$C${Nd`7ouJ`;x# +zz#G4Ek=u0$Xf`9V@x2>I$C$WYfXtyWCI$^KI>rS18ErW<MvjLBKpDhx?ZNNF5|SLs +znm`T~q}zbr81Wry(`=?v2Em9;i|QkZ9BRpF6iwS?wJ>5C@WpR%6(EHyM$;v^qYhDn +zBzG~|Y;tojl9LD!n$c28?qakG!S`++9cw`1F&V2n81XRZgtwc~VKJv2cOc5<`_iG6 +zfVuUCTjnFlS{%FMIV*CGoY%^O8DA8RyFLXr{J1yawK6(|;CmyZV@y13@^f%AF$*E# +z?P3kQ@S3u1%Qn`+lcnJ%$^BsjBp*TaHIw8YD0;~xe}<@1>fKg{hzF#Ac0Hmdlk7*t +z51)`r`ToNs(KX(cBFnZ_h}d!vyoBf<P4Zt6{mLZofgAe*0toI$#M97_d>j#*fh7N^ +z%e5xikLZX=9z}HAB>Anz<0knmq92*$j}h@R1#l1z;D=poC!a+~E<-@)Gh(mjdTCGo +z5aU<_AYh1OM1_S&LInoN$e6;G6q2hXcMGGVl5D1aPlzU)8J$9aODi2?;<U+UM7>Ks +zHP2&iXp)GgnIxk*2tvZdQj^b!y(0Nc44HgJH)}o<A2<1o*jGZ&-g?R8GkR6?nRw0Q +zGkR0=nJADRYo>ReWs;1N2*Q#H<CU8k(G5#J6LhO+m3mjnr<*la(o8G4){yid8Zk*m +zhY^ID31djjFCqB~0vIx)O$iCD>TSv2!pIm{b1h71jaXH4AEKvClF_pWC|Ehh#E&F@ +z3!|4M+05uC2*R6*e>M4xex~_M{D;YBM4J`*#YpgjCCEqv{<ujpqSXq?y+{~`5cniD +zE>2Cft}?Nst+X!s7fg*O(GT|{B)n@vjcg6a(^ih0?;?-|W7Dp!G-+OW2y}Nu9{@|5 +zsPEl*V)S(+INUK_dcdCp8%b)M>J}0zl-d-a4hf^yZH%Z|$^QfrpF%)kMkh3%366E- +zpGHJ6k)(>KA1T_2L_Y%ZsU+%0@*hP)KFIR6J&7a-IY{0_WYiZ7@XcX^?i=M`VuP~0 +zE5@2^i?X~`W3*%sEn&XXy!%GkJW7Z<?;E|}%1A2hOO|#7zHgM0Q(zKNVhSmxnV^_N +z&=FBirctw8&q2`Vr9-zd%7&OIcWRUgeushPF|wU=YSfYQl*nnj;nb+3`%|M7t`<Rf +zF>yHpcrmKed?qM(RLiGERW@1&{UI%c(;sb;>G=?7y~wt!&&q}g=0Rxld9jsi_CkL> +z2(VJeG{gC7*BKybOqjYTcDI<oE)JPRBF{A{0%t1~VHK*kw*LYOSabdrk}L>TT1e&g +zz1(CVxByDw+CHgIi`?7k3V$MEZGR0B$5NJ8HOAQ3SFlQQ8E`V0hk&)(B1By4Bgts7 +zDCwGIfxfP}9ZAmSIo?6<W-Kz<ua6_303%u|mQjf@CcZ90wJ>^0k~<g~6}K>=xETG6 +z>P6}nMyn)w4I>&0I5VR1L3<L>y$HT{Ffqo2StwldB9cEspj;!6i)qtA*D#_sz(|z> +zMxmc+!K=bJSwPr_9=3)3${Q2VvU}+jkYr@KxP=kN6LNJ}p$Z*U$fap=EFt$^M5YH? +zpkcXO%b<nOK(WlCjqZ>h*v;rylH5ZzKZO7SM#j7CVYF9txSNr2bbA<m)#OsMMu)qp +zg<pvlb{C)x)1*0j!uIZA%Zyjs!-!r3wW;$+czfvQ*gE7g>X+mmMy8Rw*+}Ej_AvUf +z5bS1Tn!d+0-19zyM$x<`dGGfsQ)6mrldvQQsJ(4LO3U7{p!S6YDGBv#!AK3zPLB7+ +zTzpL@N}vW5rY6{Sh1K^ctZWr#3)wt{<MoKEq~NSX0Ifj)WiNp87C;#b5a9~_AoIj1 +zwQ~{yPVU=?zH5?<=7>RTReix(sjiSzJt3(TBI(xf6j)??cRn&Y#?&*0FC!Y8L1>E% +zq)jrAw#h(Rhk>+J268K9YfLUv_aey6852(+;GTgIC4fI<^}I7cQtP%3*NnzitrfXi +zC6ZbnnSNcE2GeR87#pXyi_s-g&ozvAUY<A=CYG6eWi$lvX35&c=oU$~FuD~%{2deY +zix}%#>R}8%`aW<S9b<yWhRfY76a3l{z@afFo>q*OeG;vH#<ZN#vyyCK^gM#p$ONs; +zsj(0iItxK+WMaMmxTRvE!~loJm?%?>*2oDUi2yTWv<LxP4Y!Oju^0jQ_?3&dvz#-~ +zS&U{Ooafzm`0(N9-#<oxteA1;bz~qdSIECPiHtG?>{OUS1XvF<q>xq`y)OoZdq-UY +z&=4?HiGUR<euIm0=D?@qCg+YZO|tX2MaK*+qXb%tEh5etEM(mvS<Q^-s7<|0U5DV* +ztF+2i3k3CQ86`k*xmMxVOaXzOuR~S_0qhxZSHjfG)G>p=uUyyRmqf}|3k3CQ86}WX +z_!&eX&goyWK90bp661RW-NNYel5A%51q2x4=ok}^N`A{%5q;Mr@hcbk-;IDqFgl5l +z<=u#1a}j+60k*{GBm&zQ?xiv30R)t1l#lUjlmI}kllZ+CfznEbg@xK1oOC=<T~@Ow +z_nkRo%y|<b&pY609%1slfOb*p5F=kMvSz_TmsNURPMNTK8<?V4Q9%+xzO!RUpMRV_ +zr<CPEAs1^Pd6t)+rNweROUUsgm&%bZa#T&wB+VPwBt^tonI>6mI(wofxk!~QXp%)* +zNm<^l!8S>nMor|{Cb=|JY@ReI+C#bMA(NwxIbZc?vg1q&LMG{ary)}##RNsUvLR1l +z1U2lHjWL&!UKqjH=8>ygt8HGcvcq~$%Lkp8s|DDKEO3SqGa_MNHL%Q@g{b~UuQ-rk +zj!GcNPy*5@&z~W|%BMTDliw+;S(u&<QANC1HG&;NLtPd|td{Xv&6-7(lp#QPMtcyV +zBaj5s5Zn={g>t>YY_k=mWv7U|HdE_haT36~4JNY`jbKg#f*G6+f|-<KhQrHWCL@dG +zCg!TcfLvKP;HrptF^mt?X|WmFw+duBFNRd1%=ieARxo#bu(>49g3s1s7$4GtxD>^% +zN-|zfa!yRD;y|p69d%HFLQTIG3d3d;%MLG9@E)f?s6UfJMbV;RJ3=GWe#0O}9cFA& +zNn~z@Y>*vq7ly3jGPGD0qb|&lji8v#n;|n~6?FiX%v{!GhOA<&q~z+>N;c4Vp|Zn} +z)$$m!#(WCh0%a&r`=6>mQ)v4{n$Na`J+i`4@VR<Kcvy8iY*f;%4jU^dy4R%6)lb@} +zkVcq8bH#z`cK-MBwpEH2;<`LvbV)ZP^D))S&I`IVz{CqqjTFq}JLY2CA9`L33sw~u +z4AcPY7>)6=PEjj6*}D>u8SExknc}(3IJ*g4{RoH;BfwiS;*-^=x8(EFdxRjk8#@8; +ze#r`+)IA9BA;}8-Fh$Bi0B1&f5Tcy3k;8{e&K&{4r6!9}B?1?K89p9Fx<*hz4P<%1 +zWHB=9zU_>jM=+H!^)dpKz-S(1Gzg~n_XHpwqY_DOXGFb4B^^S^XN5@%`H{d8niZZD +zY%?Q67}SP}m8tW9>=X#UWXj-It~_w%&hsQZ4XG}cP3R)2C|F>#UK$`oX7mwBZfEo` +zf)Sai#|?rJ&xiy$Bkp`U66^x_fMm6>jKK!;Dw!S?Y%?Q680^N;O71dPm7e8aGg*wx +zz5aGabqGc_rkW5S1*5Aa+05uVldH^r0uGl;Rtw7*Y#<w%&J%1iBSRR-mP8hhEJUl7 +z9m|iHEJpW9ayz335sYk1oi+$Ye<I0dMrI!?;C}#FhC>U>7;GThJ;?f91gCaVJZrKT +zy@C+6E+xo<*C53Y5hfWgr!8QipCEuOqg>p7Ly3$oM~Jd}4Fu-NVIUO=?b9tr1{<`f +z09i!{j?8rc*P1Lw&q{I!BkqHm`j~p#AXLnc13ZSnl@;U93c7{S=Oo$8=pF>Q6Jx@# +z4kVoir!XG@vM_3rWPs&kshbU!(a9+GA%JFkwV4rjADmJ862O-wtC<lWQ#sgq*j$^B +zz<LoiNHVCG{);=%*d_2*HDEF#z*`;XnelvpB?yy2GxeQ!-Z?lYxMz2$=tHlSg4;R~ +zU2l^3m5ZL_3kc55?ZW`g-D=<l&LGR&wKg+)4k2m*Pax;p2o4)&owLkKAb2@i=1qWa +zA)E(?H07ON&KV;BrY>KCvm~pTQ6GYlg{gjnV00q_UKZkC0Aq3)Y&0tK&yf2Tf+I7B +z*TV=w{RI9P!J#<}6Qb3j-xxiDVE8h1+8`KlgE?9uOP)fYtulT90bCfdENp|(qX?v6 +zY&NL_qd1N%Lm7;u$B^}11n^<>I)bT`sW%OR5sw0kO2d*bA+RpSuOfg8BbJ3UjNU*X +z1!MAX4EPy<hBA<b+cP_)$Hdldkt7XJu6!tax=}czISB4X#{s}M3wp~TM7Nuy7G8>8 +zsE+o;dVrgwS)`tZK#{d1;h6|dA0`2oN!AWVX8zxrLXvYnUfN)Eg(SB!szb=~h9zDl +z+1nYdm*iGPjR;v-8Zd5>>>Z4*ljK%LdlAT^6LCL+BhDQFPY61cn(zZrviku(C|O$= +zJz}trBjQ-YkY{9u+%_&6UX|Rfj9x>at{J}}*;^R#<^<b#jMyV?Z*Z|vE$C)O%?MHZ +zVNRzZV03sK0dq_z${Tlgk0aom{s{!xaKr8s1d@xCT>r5X8K0DN)fnS1NV<BA@hM5y +zj4|d;c9vH=#`pnAUl#D22^--9O^)jIjb(G>>1K&$tVITaMF>uxaL^gIDX(17l%wru +zKlUIvWk~c9$!ccwSxIhZ#NIT;nWEFhWXkBIB%2w10U=ri`Q3_uu4QCcw=iN+(ry`J +ziY1+asbWxnBt9zWW=5YtU^ZhTUUMi=v+{CBkIQT#{3&pH0D+DS5lt}Kh=-6vQ|0rg +znmJ=ko<;yYqsI_@Z!jz9EHa?+P62s!na{tCkW&I!uBY+)EP|u+mjJ$rFd_X<fcRGg +zhaQlZlq}h0-zCZIj2@Td4o3fh;ClxWV@z;#ptl&!M8NADSz}BrGC*RCBVmUCDDiP5 +zo=0%r{9=;~ljg0K6s<?5T&&uR>TANX!P9ZYo`<KldGBD5C{2)I*@&yz3jnMc^+}Re +zELS&vV_Cd`F+JC!OdTV-8CY5gRQCx8eNvhfEC`4>j(`UsH#s}t+sKH+8l_l*qtwy; +zVU)O4O5OPWF(y8a0RO}2nC7##<5F%bBRT^-0DJ$Kb62QNA;+8iiyOUpf$h*fDFI#t +zcxYUvYt#>igpUM-%(UwsMzqc>Xk9NFu4R5YD8tMjAUMxLSkBU&3g|R58+Lj)$o+aq +z8an<kbMiX@<(ZIj@dTL;WiHyk%;@0MSR)d~GIK*&lmfE&w+AE!LN#*z7{BB~r706v +zfo$`O2+U*rBZTw3ynphC&>aL`G8wN*27%X1hM_=OE*7=&g&PW5H+pe#P`LoMlowK< +z;VPc*Ia=VjwOV+<p~!t8P#!7JZTNo;BPt~e58L(10&E%F?J~GKU_goj1PpXWc7SVn +zItW|-gj@bZP@WVeQofmy(e{n<wk92lI~Q}|WSN~sBO%4vG{W*!m8eN|=5}crkaTIx +zW4shWx^xg-N+4x2UiFzlfGh(FvZQwlGE@`fWrZ(uH4%0=vDOMg;|?>OZY9;n5nv6W +zJ!_`hn7tuk=m|74%e%8lrRxp}Lr<WYAPn4ee@GY(f6WA8;Ay#bwK6UZI$JYAxL&J1 +z5E6!s(M%9FC?Vqm2=MHTMi9&t%M|@I5R48ZMCV>)*f;vOG$KiQJW<acW8yG^bDIcA +z9$8b1(~-Vh(Ayc+OL8kC3Xi#v5gB4G91WPc`kx785`jyu>av4!n+nh@#FL0g%(z6- +zRdVB6hV*&fs=6{d5dw=O1JfQe2voWhNXtddUx$#3O}m`xvIAjdieY7>;JnDUy%={Q +zNM&j8CeSSzsEio|GA;$uay^INR}k!SgC{_T%M(SiJ`(*Hf%P$d6(OjP0M{lMET%pJ +zZ@3gl%k>t1>6<33Pm!#TM0p6Tk1;($piBY<l3|reV3tc^tCJVsF98B3#b^~m)TENg +zAtoY_lIC*{39GiKTIPXymQ;`}zpVI01ii|T$nuuuvMOG0f|zTS>u`gaCpqTF@cAsh +z;xlx8z<+8S{;2}RXM+qtaGCO#;|OF^p6@m<4zT8}j4W?<q2lX+KRgb9VyfaF1D+#E +zFT;PJNb!7qsst~C>SgdV@wp!g;%dz|_li+`)*Qt@0Q`JKA~xk83h++>KVJT9kQx4O +z0{_ss@@w&j84dmv4(Pqgbc|3L{+E_1{xxXom{Wc_(plau3l*;@Q||a8&A$a2Jmd7Q +zDYv*%@mkL0f3hl`Z}??bYku7{cpK<aFN0s+p!hp3gfW{Y35ntR=UWsXE%#SjHUA{O +z4`?0N{`X)v!!Xmoqpal(-~645kLDlT70)+vetD1PS0+6fU(s^^t6lNY{O|3ZIRF22 +z#Pdx(zwFZd=3;XT66N=^KE-RkDYtLG=Ih^qP`qhx`bNcTejO5=3|1kmLD1_KBn}}Q +zMz|G0FE{UqW+J{H;Q<8N=)(wlaq6!_pz~RSa23LO1ik8!CXRWHPCjWH5H=%l38feF +z$b)%YqUc3GLm$I%J%V2J3mp4;9YLAf5so4}=afGQf-fMPLbw+}+jAP}uOjHhHa>{J +zHa>zt+_w?*Qatm&j_^2wi~la*rxBh(cpl*egdZX3#r)?G;`#A1uYl%tEreKkF`qNi +zYX~m>Wx&L}iIC;A`z^q4Bm63sud_@cXt^BbmeNcFZuD_GNv|Z*y4vK-u@s@!!7oCZ +z`IWK!c$q7J*FJacL+Oa8tu!FGc-og+wh6Fn7m8=TYe#$rb3eiZ2>gUfuV&cJ4ul?r +ze#efEB7HBy{Rj^^`A;JKG6Mfx!)s3d2{2@zyof*@>eYh84un>OT?p4A^dsn%jRYo7 +z`NpYEGZ7ac6e7$*n1@h{und7T^$2=RM}jmZ2yo(pYe1|Q%g#r*1Ys!xaaSQUA#6s_ +zi!@1u6hb8ead5W5l|+hl5Lb;r9NVVtLQ*cau@51G@C5{pt49zXML3P{1B4e5xXOOs +z(bGN1Q~C#xeh`6UPA@l){Pbd(dlAU{s|b%Fd>uhA;#?VsJEKU%T84R#JNZu{&9VC$ +z0>@P@WaYw3FXEm;U|W8IK$<rZ^iupw$aq;Z5&sxrB6{+A2H`&teubbH^PWS<M%|P_ +zFXmB~vyjIzsu#zf`d^M6`dD`y==e+_pJPQYrq5N5H)^d2dl0TgxDH`2f?jc4Cve>k +zp0t{GJ<@#${SMyE8$x~tf%j8-X&!IJjyU<Gxf$UW1mg5k{XCBh_R)_J-cqDZQ`c`Z +z59R11lTP`~%#%B}ti&%0&i4|y3}qrc)KQVXDc#mJ($(P+=<V<58}7suzCXP$g+GmL +z5<MvI4GwkeZ|fKs>Pi`Ke_J}!p6P1qY|pfttaPTcv#Z;tZ|d(bDQvlB%>pBTe!~AJ +zFX2Dyr7HYKM;rZ5jy4wgFMFw?ja!Ot_tOdgf~0?A62G?;?Kx3;z2BDbiyHyXudKMJ +zqP(iS*uOgIFR5GPZ%O)>B>nS~emc3(zd7mWCrcJpR8;LO_p)&4z;LpHaZY2-!3}<X +z?pOV_34cY(Uz_wF_qzSBkERf(KIuO^>WK1}UZZ~>GG6pj#r^{z`Jvb9--C=FQ`j$z +zCjD2v)}rBqMZ;O=L4WTPjq=oyb8EDsXJCI<MSErSdul5$tL_`<Xz#1Y3=H&j^tAW( +zrz`e#bd>k?_O}lWl(!G<XL5L?d|&@?SNq=Hp6>G6)bjG`%BtE_<?=ScRZKut(bv1T +zqhdHc6m(sr8`-(N{k<8}m*}A0{*39Cp>#)ErhRW8yAus@dlz#-$Nn1RBSAZmL}sYH +zgS5y?o4!S=vup3L#j~5alJRFI{JdoKMd$;+nm-HpQ_P?8>gy{jE2~!2*VNzOccro> +zLzO7Sb&vlYFL5zw64hB*$o*5;XO{eFvU4jq)>fEY)MiaHAeBl#-i~_??jPtxyMSR6 +zcr)kENEBDBhGkWtCH3X2imU3&H<z&mCHz^zA8B7HQ<q+L1KPCKZ>(G4m!($tGrKVW +z6N$CbgiHB*&QWJY6S*k>?-u>SL``k2uxS-G^=D&)-j9ykbY`fx-wxf(O@m$OuxVUR +z&X~TjysB#YZKCC2;a&G@^Bx?|q>X}OoViN%Cnt&*6qn2|D_&5!w4~C%Ipt4&GFh^s +ze0NonYD?sF=Twv*ltvwqin*4UP&eZmWz0-eG>GP9tdFVNJKWosDevv4dOVRX=ttfZ +zLyZgP;$MYd2w%~<a;$iM$%5kgm6gRmEXvA3AH9K2&yqFFuP2ACTm*4c;QGB#3fmJR +zQB+cPGjGcM7vK)hPr;4(Ga6S^UMgD3<Sg|k!wVfi$V>V^NMyAq{J%KVSYGMxxz#U8 +zZY(d^Q0DLK_J8ixT~=OExzSJFBL(Yn{09y-`p+kl{(Xn)dUh@-{)c-1uM(|-Y|N=> +z+O)A`X+5AU^u$L0{zKg>uJr#pk*e6danmM4L?qaJ?ojv6EB#jzsS^Lpp?j8=`fuVd +zw=adyPE{;u^8emT`k#l3{5vmIxzGRHXa+ec<TP%q@Ygr`D;oW^DZf7HPfj*%M44m$ +zU*n7MFOAmuf8*7ys3~7i;on?$Sv?A-{8zkWiT_z7e(WVtclMnkMjgdS;U_nTo;;V< +zle?5ZP5v8)Qv0s-k0n|+6kqNCHcGw$Y4Ym)BS`)d$&uuh75?vyCO7&WjaM&ORPT?# +z43qW#aEh};MRCc-jSGq^L34f5KjWn~Zj=e(bfVkO%d9A`oL_@#Fm>QJt1-vF>re)Y +zcrB5t+T!1oT<m}EP@TUg>0g}mKb2@~@`oDVZ^(1D_>GPJ(qp@?sJzTym#MF>uPFED +zX3*3>fL!14ZuLJs+KS09<=-({S6+E#vA?Ize*#m?V?bZg=wFrcXE*x$@SF7i3fg-8 +zQ0vAk{ZAz7{K1s}lvmf}U*8C(JN>&r|Ic9a;AnS!JzP!3f6l8bUQpw2YTe{t(CQyY +zHU9zz50AEP^#2mm-JO_c{|^c*J65-PL2-4~Bv`$1Dfnxf6OX>`f#H74>AeH}@bsDX +zq0I208T2$;?iKk@!fiuM)BX3QW<R#H1on#A_*fQK7Kg}HURjuMM7g}XMmo9%Sxs9{ +zdw*wN*O2ustcF`oKGvwLg_Fpy_ba}|IJK5vqjizVV<=<i4tFqjV9LIsb6`Ja>(GsI +zyUU-J;Ea~oTwGOjebG*-xJ{aVR)_C4ozqg_@VPw(Pc?J<rjnue&)i;mY0cb)SA051 +z%&4f`jF6QL?Q&(C<$dhkwykR<gGE4QD5mIOava<rV#HmUNgvM9&h$(<Ydd$XV5d#) +z;rX)@B`a1}ysx;va_y$o)#d(yI)6%Cxu34{3lQB@*HC_SaeevKXP-%H`pPd^v8o&# +z4CQYY*REWH%2}O1T<7Q4m1p_T-S0^E^qoz2&_TLu=s<5rS2{YO_H_=JzKXRP`E4~d +zmyH<1AXHm35<;Q9aQo7qE4Ey}LL4oknL8`?FckIdTrUHsS;T96*W$_Y#Rwu6<t}Gl +z5_9?7yXHAKaIkC0n!PaX9Wc!a?82oGi-{@6!8=NFb3<iuymPD8Uz{jfQH*O((e*nk +zisu&>V+~>A$+@Yb1tkkADi)L%7tgOKE-v-2==O&b{*)w^`+h;P7&i{tSzM^&2H-W! +z13OdxV%$xng3NE>_@ylWPexN9_*Xc@_oZq9|A7?vbHV+Q;QkN1XAeogB&hER3SJz= +zUPrNgsbb*n6WsHHGwFZ#QoH^Bgg-6m_hU9s`Zt*0ls_}+e+9*}{7vMsybjAs1%4q6 +zZWHFq>nP7^%Kx@xV@5-IWeU?&a(B@SMf?0|-Tr~Z3aqhqET|}fw-=Yd&5bO19yX!F +z)%!X6I@iR#&cVJubSf-_DK#LD<|g5I)!D4(tQ<K|gkdl;Iv|<nt-w!~_l>jhbES%S +zWY;T+6$aKf&MiAe@7S2JS=&$uVFW}XW~_AmV#I+%bnX^hzeh{uLjb=xQCzyRauK?+ +zc=e@KmGw=#s;d0Sb^c8$zpxwGb&Iwwtg7F=ar4I2D>qewpvo_T2W+YH=eAa2-te&k +zYuZ&duehS5!f)nkBjI0M=g-caw(va*TgpmTuH3z;Y2!+iU45zF50hyHPydo*F>KAH +z{-7dD?kQVVw!O5p9wk?<EcXxA`6I3VjC)FZ%U2~A&MT{|-vx$EJ6D!pU7O(IjFoQW +z&j+hZ>Ni%_&oA*OXGD^AF2H=hj3nk}XFgMM@3XXa--?yE-C4zZ?JTw^KY5uy{}q2q +zYQ}Q89m=W8X|7*UUynOIwA<X0@2hKC;U{k`HTlT(^BN7Xva}qEE5(9|#9NAiBDey@ +z>nm3p&;9S>#<=S?p^2Z}fPxK+h!b;+Wdhp>jBK1CjkCJITsk|4i~;plTT6;t4Id5p +zXR;ErrO#K?+t~l#AE+x@04u00-&0gFzjWTBiz+a_i<>GcDk{tWwCG~2I-%uN^a@XS +zsnSiF^GD)<{!+3)aKHG97reSXGgn?zT73J=ib{WSV{z%FrJGjT3x<i5zo{F#js8PN +z^4@HPzrK!z{qK5p^}EVpaPRfce{vRVd{OB|r4=jOs~&qJ8Lr;_6QjxEO8<X*$*NVC +zeyX^#606mee|ogFvL5vH<$H=*tiHag-mgocg36QSBV{``uGqQol2u%jPf4zffiwIm +zx6Z)R>_p<fHY3XXGHym(DyFpWU7HenSeV6JM_?^(hdTyFk8u)@_x!R1hR529l8cH< +zup+6iTw2*cz5Ca;Zmg*Ar{Z4kU~1u#MJ4F)iqeXb;x)LJ#^%*MGnbV$peuQoIGidi +z#f%8^n1@iZdLBqP;u8Me<i?81vMqBlF_vJ`Okxhj{E+mAI5p;u%q+c#H^76*($eCU +zB^BkeaxGo4xoG9m%HzeG>YL_Qm1}(0EZE)+{E-`EJ~qL}8Sh?SoLxj=;Sh_dE}VA6 +z_X-$Y6!5vH|1&Q!<DydR$z_J2m<7efrD%YrFm#w#u^Vde{mbi`Hj}pL*5Qhkt4PaV +z+%o%ZDbSS{uMlGS@uwzlDB4iGuZs#?xMFwF$tz@&qJCt?hc?apLeUL7QGUq+GWRFv +zCZX!xi*a*VT(YvVLiVlxo910>rkp47oEW;^cs5<1b>1~Lh>oHo40mMB<coDDn4UZv +z)3f?c*V#q9XRH?;I%lEh=7xRhjuD5#xK54~KA86BBxL#L-`rSH>?d;@r!Od8=wHtT +zR8Jjjy)*--u_<Y$8t!dm;}mZEUb$&W!;Ia<l{;4!`ON|KoJPO8wa9N_Mw=9G^i!?4 +zWxL*N0PUe-<e}EPn_3+4&9Yx~<mB2${de$}n~dL#|5<G&I=Rty!X>{ph&EXz=CkHq +zn-3?#*zjiu^Nj%iw-X6WA1Utq`?I)*@82!^>x@%aWFPa7A^uxTF29R>F1nA6CYRLs +zKgE8@N3o6cQ|#4$6ckrrTPMHHudKrgs-$8?{Vq&I_hGx^_C#*d|Bpj;3+MXJ%N9!= +z?gQumZ%Fw^6Dj}ALrKJqi0k~j0Uu2I|8^+le<qPB_g@9>?nKi6#Ax>t|GJc4n(|xg +z{1c#h1teca{C$+V9UC*Kz`u_*J&z*yB^s;zFOSwO$tuOf_2069b{xYyVx))Pbtjm4 +zNV*|5Y6atrR|8KxQe(3jU(WEKgi~H#bB#Zc?5ViYFGziA2PU!W04(t5HP-m=?RJLn +zvfM_07nZlUC&SKJ3cpPtThh(PJ8;d{CjF8Wew)Ckth>nHoAMX5-d(bL6aE+Tzue{g +zC*$ZhvvWJJXy<D;HMDJLXj|L7eM3Xjy0#tFcmUEVPqw_l&bIx7!)-(D``d=PGRDL5 +zsYn|shPv82+j={-e8aYCmbKirwXELUux2N7+LwVejpBBzOW5nSmzVCnxr^J$-of@8 +zx`qea(gVXo9bFMNtDCOgyiQ8>cBWOPzG_FL!FGsP?MYN)qFQBP+vQF4JZfKWrhKSt +za3EdLzJH{q9E)0Se@$C=@6i5(?L%E{2e2>4tw5`WzAC56y?B%*GI82zJJ8-Y+!bi1 +zH_Z&FMpf0>n;vY>bo6u$;i*v<8rjERK0GAv!LFgU-i~y-ZGV@m=L4Na`(WjDrYnWK +zttYMR+OclywhdQr_V|RW4N{xwZ-0A7Pj7!Hibyv+h^o5S5w=A^SEL8<AdK2qN&CCH +zI@4`<j<RnbgteWywPkJFRjaqPK#Xc5wW&-y6gQDJ+j*o~!MVA^VG$(PZClr(z=q8` +zRyS>E2pZ`1VmH(<gCDhu8tCqZ{dlyZp#xok#aSCuRt?)KX>L}b10DN2obKvw?@M=i +zWJx<~vm7n0w8ofCmDfAa)|(#aGn>F{86J^Yi3nwS_je5pOOFRi>uyhH0-fz2z{5qu +z@jxciwr>y&2YdUybkD$0COO=n?%mhl)tSVeB%Xf3Xxi4$lB^_A3*ab&6?LYog3f2w +zzP^FI?R`c`*m}eI+)+W8tO}FWBI?1RURVKpnnTweh9PAYRS0X6p#(bWy(ewzVskPB +z`}Xy9skl_KI}Rznm=l^q$6?eEntY%!JJ=yd8hhZ@KBemqSPSbIPG<((MV-pH_Ui4M +zTWAYa{HgZdyLo$ZZ4%FmQ`Jd6F|J%*S({uuIMg-N)d%)nOOoaLI|heW;OTv)YovUC +z4d6`A@czAsyZZ*(Gv#>VyrQRlsFN8WJkULOpr*XD>T(kHrOP{e+xxmYGAr<KI$6Fi +zS$=hOvb?*0pu7|OGhOBV!+m|_g9GT#uAy=a@s1nP2G3_;9hve0j5*YE&}0T1|LLGx +zy?xddKwJHtdvCHG%csk2=AoOl9hwZc<Gp@t)waQ>@CkNX@6e4L+5H2V-tL>c_Wkhe +z^3>ZK2K}<OjF;{hYU}D3TJbvr{aquy7)|CGxYsw(zb`32<lo=Ezf1Oj_00%*MZ!Ks +zhkt~b<57594{T1Pu#720VA^=XKjg3t^2wh<)l^d|cplicVMqSs<fPen-3Qw!DC>hM +z%KXs5#lEr3z35*h5l%4b8scOUF^~8q%OK5Ek6NKG(4kY>WbN0+t$uI)HJh%+G$`g} +z(pR@!wYqKHrVUqF+|_HFuW7dFrrN8n(PT~AhRxerwp!3Bu(oMq!-gF-)f+A9z0Di0 +zt~844fN{d@LvN<8rW%{r)V$rMHdL>zw8^X2Zd$u_^(LjQUB4|zHf<Z%9Qq@RU$?nI +zQ)ovUWTpcfGA-toqtnmw27!@g!@70rF2g2P)D%RE@ad-0IHh+C4-IwoXQ0Nk&D}R) +zt{vf=?AiCI7tgsXg6H)}^mX-na3AzHc#JG2gbv!bceoqI+ZhzGkKq}4ipRJa;>Z{w +z4`TXZeNvKQb@#RJ11)A`yhsAQ$n*5JzODmZeF0Z}#xA*O?|>b4hP1bH#1>+UO~JOd +z_CfE4w9xf?!-JT@Ju@4&(Z5p)xKN0l85mSV|A3(S(WIc_;GsH*JG{<=y`7mJ56wWK +zu952YbVqNmaR;cN1B#~0JJ<{Lc>VBTTuuz{-+xm$okOwVvo`2gpI{CS_d)3%RoMnF +zNFDcec0n6-(L)*Q-{Iv3hU};jQXo5SFr{R%!j5zJ2hL0d;8V;&)R8`*Io{skba(r3 +zU%2{1C+~0XZ{G(eVjg`$KSP~S8d3cI@ad?RJ^&wJ$%oS@9HsBy-y5Jg<~Fr8)og2P +z*|yf>ls(jCXS@LAnUoppHr=$bt-5y8`dt<$qu3VUP`6ag+ceq4L1=P0$V}>*joX`T +zvSHh{pmsC!8WN6glWJPqu+}EA!m_CiYf&zyXEXwe?dZFqbH6OOO$%!=@=acQN2d1x +z*37o$Qmu8&G9g)vxG!kNgV(`)Ar2S1iPy%h-43B4lFGBICD;wTcWq6eYMW6T%c!Y} +zWz=34%czO-s2Rs&T#?HI9{albyD+tym7H3Ik>#?=fXZgXWx1?6Mp3&wmT_5JxT>(~ +zSjV7_aSxZRQkDf=sX?ycE#f@^!e)frZAQEewedF8hHc>UCNqZ(5Aq=ol!DuVZVY4G +zuthU)Bh$X0_qlDPgH+~Wud@wS!KXwWUQ@%>b{Y)1cMcqcS4BCQstv`~bwWymmSu;- +zSST^iay2s2)|F1fcVQXTCNpqa^P>=K3r=pJzaMT$38`;aKr@5en^$+=Mw-*y&_-e8 +zUJA{}qCDNx+YL3yjavZneoM+C2NO*{HbT>x4opF9SQ(j>eY{?$Dk#V{3yWN-mi*l6 +zu;9Z|tPN;PlvwY}>m&{bqr-7G)+)>3!668?zdd~eDw6&RDk26rEN%~oNg1)Z8Yj2C +zy_giueR0rM+pwSnr)NuUQ8Z1=Dsa)Bz0VH{gOF_#zP2D?r=ZnDP&-IPFt@d4spjTj +z1tzy=k-Hsj{zTf7yM9bYc;nV~7$*4M4x@CdDY3LbT&uZ2Ff>KVgA-aXVa4Nb!Gp>M +z(d3?e)|!+R`W(~yklYN(UWioSTAxS;rK<TUEVoSB#}rYNgACg^S67B<pOrv3z|5Q1 +zZFPD}a>>Wt6bYCG)+uDcSO^O_+ZsV3u|Yd}BI2q^s$CqwDi(LhTybfKm|{-5O@_Hy +zoKW@Ly@?DV83S0J@RksI!7%d%_YDkm^3IzY8BWtGVYeBH2M79Nn1<%2CO9#;D4XI< +zBkt>kT%Na}injE@HW~NiFLVtJ(5q}#k-egYo*9^KWj7$C->|LOlw^-UjNX1D5QVkr +zxGxDG{$Q3(W4EB)lu@s;uiAQa`rI}=OiG&?xXOS4>8?J}hp^$jjPbDoiaU~&ZJpIs +zATQlxTps#r>rruEB-<n0=h2B3dANO+dvhmC$iQ80ST!HcySsPaFm}!iTJFN&?U%I$ +z8!t-AW`z@1WIF(j<gHPJg>gG(xs#>^NWCN>cY)h+4;!v2k=uvcYHXWnjj~iq3tQZJ +zx24;$V#;*wA0z{ia-pcC@%hT$KAY+d2fGbq3v-7?3xl1A9#<O2CoEb83l$t{jd#3e +zYp?_FAqs7{3Fh!u*4Qi2T-!P+&E^HZDb%w};XUnGieq67{4nnHRajS16U@W9*?`T) +zadWgPM_HXyk#^I<)6EMwAuw#iAn5JGmfOG(CDQKIw(%XEy*CZEr^S>+x#v>2qZMv4 +zV6OD+Vt9OQWX<;+;lA*F0=Kot4G%0otRTF*!Dd?<HuS9ejHNP9oCdcjxE*Jq1DQcp +zjy!|Vy^>&eQF2uk;ih9Je583Z$#B(j113{eU{;RwaGLj9W@A&f_YSt>ix%1K>GUXo +zYTWL9aHEC$cs;%QdSK7NE1qUe!rjHlxPv7bQ;a)}@S#eF@WWn8(5bxxx^S7mT*m3w +z2xcGo*x4mm7|QY|J{-rffHK%M>`a+Dv7zWfV)%mPBBrzVfJaI?a+Nc5o;tnpkziZs +zfJZX0j_#qZ8^^DiS=QE$;nCSO;;|NMYEtfoo}0&uOc89O$LZGH_6(PsIxNgkSJAD% +z;JqPsIRs~R&6U8CtAlVCQI^`xva^XTWT8kMacLbR5?Q6oVzOGfXj<r+b8tADN}Nh` +zu8MPU7fn{N19*&qovt+IS#11c5^OU!;$}9o_ep#AdP2vWV(cIFWB(ZzB3Xkd$(aY* +z!14kQn9^N04tMqA@l=EZwl8k-Fb=yq+oY?ZPa)_=xp9p}NvJ8Xr$92<k~ac(^!1qf +z(;a<%CWSddC<liI_HmU?Q<Mzs&$P9JDy|Jq>Q)QpUJ4I20>2O^mf;4eETy^(3mR|Y +znK4P{9InFSjNCr3ON#fdU3*1xamUa=8jIzDzVglQP1?`Cs!~-osVetNuVi_$Nj?cn +zq7=9E^%Jlq=i1-*RxiU-%yxb_<|R@{PFicW`Zv{hIeF)8nw*uFJuQ2BVn*UZe^z34 +zVougve_mpKRtcW(%ikHrv7PTEysTRa^3N9-+44Q+EQ=@1@1XHjO@QaO(s*w-fE!|P +z3*hMvz6bD9z-0)$jst!S@w$TPM<(5teY^jmtdA$I&wKhi-~QGU1>Wi@teaOep3t(~ +z+JfvOiS<C?%I6QRTYz(AJPz2cliy0a@MD1Ip`4a~-ho{muuL}O;}>mxNUtu)Jp$>3 +z7xVeeTAs=OE#{M7ygc>6&&gam%F6r^<TDMvEWiHgZx#ql+%e#0hPd|<M|p_554cu? +z6M0xK^Vu;Fb(|c;KLtF$DpNe++!&l6g9{zlZ5R3R=wW_KhBslQKEjIutDaqY>bePd +zej!$e^y-3Hzm*gAwzQdeo^Lxx@P)sXeZ;?wI;DPyI}Y4pgFBLan}7R6`fdQ8-@@~= +zuRfv8|Db<s)^8=&6wEr3bK9hkXRj$pHslq|TJtoFD}VJjAO8kTY!5P?_}0_N_{QVV +zvS|<bES_Z2Y_Hp%rGV$55BT{O|5nzTg0dr%Z_B;?ybtBvG3mqEAMrm5>DCqWWZj%s +zP_|}@d}B`fWneU4<SIOzZ6sS=F#Y3`Ru?4K7ffICbU`6SIuqEoTPJ0pP4L?rh$cEG +zya(`l3&-it0MCzTl%DWIG5C=fd^!d{7K6{k;3s16lMd|4L%V23zwpBu`U`9G(hlao +zh<yAH;8z{k<wKggLC+6nDlI+XGJJdD!YwiQ2w?S7q(AP!E`Q4T7V!L*g?6iQk~j0u +zApcsE&#|{H?`im=wNuvRJ@IrTCP>?5nIw9Y<HYh>$FZEWxLV*E437M^3coc|*1P3L +zCMd7GkDdc}@*KEF&VhUK9Jm+HfqVTNxNLj?6W4*ZVb(ctOV5E@bq-w1IdDDaz}<2V +z+_4F8^hshb!0~el+s9Yuv6E>R-!yi?h_>t68sSd(4}Kh^ev>c_)rF@6rmmEJX$)=v +zyv*X`{GR|nepsXB2_FaC3VPZ%;nx6HBE6;{pI-O@%+#YTyrH`VylH3fyn_kJib +zXy#|ww&igLXqtsbK+~Z#l$(5>2My~~_)WmBT=_5%%0ax_4$>UW#oPh>9;BgTj+K2J +zdSw=OH*l{CE|@!R&V!qmUO>Lm9ma`R$D(xUiRcQ^0Y{^BgA>u609{{{uEV8M*>h)% +zpX-w-$95%w+ZyH3Wkff+AWa4|^yAu&5x{3m8J!Qa8uOl(j$4aU$*4n?TZTmh%Te#5 +zL%@SbHy9o6wf;-`f%pf2zZ`h0<7=p6ZNn?Tr9xbbi<^#*8!icPTU^{K;0g_n>zoE% +z=diwJ;Ntbg`(N6E1(ckv1wIO&L|Muv@&SJuFx$Dttfyqnq`2pRYXWYaY4>)@r+kti +z((!f_d}?Fx`WU<iu-Y-{M*y>Z(l?Y7Fu&4VT@ct})`uLUNP?E-&fxU56G&rR>3Sz? +zt?hWQ5Sl$$5Uoer`ju+~-J$#`;5tLx^)4<K9~@jExPW({r-lh|s*A(Gu`LQ8b6|H& +zvi(UA@xzAGNH@6acfhq4-wMKq1RwZ?#ynlzH|IU^t#5y)z*{$Ew@H|K$u}48{a2zK +z<siHaa1v?ig>Wli)?xM1tZgUm=ma?Ba|Sr=JJP=Bz;63k7yc%a$L|mBK+^Gjqw3el +zhct(=s5>q+&OHoZ%1Zq71xD6&ym#3O!^1^+h+7Ywwv+G(V3t$-F~Dk@#GeA(0=(A! +z7T{%o?RdpXcUu95m6UheLw?Vod}Y#<SNI6v#lW#n;vWFK2x-T5g%@$p0f+wq{3Za^ +zCGmyDQFtj})}wVTi@^;J?8?f1y#-p*v*RXQUvDp1m336s*Vma<_V_k)JW|_yUHLH5 +z5gWy#iZ=H&@+lwb?gJfltMJ=^$wT2J0P0HN^?;Lr**`4b1DI)RlR^G1XURWymi$w( +zd@q&0X+Mr>L7W*fagV0tC6<)Dl#;?Osr$ZHYA-g5Q|-ee=B<{Lc^Ak_*|&N6y9YGg +zzIQKohb;!1p_;_&#CR$UE~ZQr!uCa%Vjzx}>KNF+pYP_RR&U*uYR}-czrDkmuyi*z +zY`UPHU;Bb<@e&9*L5YNS{E`5WeF#D@Bca3X4K7-Lmi&2I0r8V<6Bi>UKhiys$VJGK +zwYNnFbnih1xsWawpP}XApp?6n2(j|3BOXEOEkvpiGc7BymnOL`4CtmJH5GJN^Xa8@ +zn~|Yu;#lto(@GWMcE#vEJe=h%ht24vJbGeukAEi1Tg1U-FQsD@nkMSizsT~QG0GH5 +z#oZdCJN>;ZZ!y+&dMVwp7~M<QU@2v1+Dqw90A`y0kC%^)mTSea8JIYR-?OpOwHNwc +zhar()rF#ev#2!@C6QEnJ0AkYdI)k8T!roNhJK^+)_Ai#Frf-D^b9K`9{=%jiDG$b6 +zW9fCY%=ca@#a|Ud2G1%Zze0q`2##94zV*KM&#c5=%1_~mVn3*r7DaxhX4<oXO%1eL +z1KZZnK5_XTHZ6G34srR;=rXX=p@KJb#PPzB-6mmw{m7}f#AEU4T)ueAFvI60=3Kr9 +z$LU<YJ1~&%LvyZPvb}$Mhc$2?#9RsC@L>z%;3%2P?so8;+rrD>PsQ*jgN`Zm98*Q# +znfiEmnYj|;Z)O7~U#*WHl`5X{ai3IS4mo~A#hy_5RSur?vVSK9jC|o4cL~ub_fgGd +z@Ygvo%X44V#UFKG;<?Z2;>!YqHT=21>f-wxnB}?0>f(<%u<&<a>gALJ6VE+Za~b(h +zJ23IwlXdaWI56?tqjmAG#bD!MNs%S}qV`X%uR|_jc6kCY<>PoXS0N7F4=?R+?)jR_ +z$lDs&htbz{4orSJ{%Em;PnX%^)*hz^`Y)8DzZI+XagW$sroOiwnC%zi5dwn`?V-@? +zH3j8Y`Ejq;T!#Kdr~Vrig;?pimuoIVzcgrnp&aY3Sf%G)u1nwNz?65yfvJz_)*rFP +z4_cTc+8=wI`i>%BFRhPzy5=(S&9ZKc99SRsYF&I~41TFB#2-hJFxP50rA_*)#rjX$ +z&+j0gu#wN$)0<9twr7^p9?nmM4ZX3iC!F^DA@F)>d$@OOE>r)l4$Ssc2a6tqKOMMT +z)85A%nDSIQ{*2|9IWX~M3-KdYLe2;!%q(qxlY=My(!l--y+1Pr<yYnBzOuQDeBpYb +zFmfKS(sSR}rN55KlB-b8^;JmexxZ^J!#^2J8>ao-?{)D_4$Ss*|JTLe;=sgnKiI_| +zb711RKkVX9#^C!L`G2CMh*f^>ADhd_|Cj@l{}~6SzB9ozXxhg;UvruAxswzwjGU*c +z^>Gi;rGMLjSzqYz48Ov_0h;=_$7n8tU+lmv&pk&MzsiA$=N_bs?~B3nobi$kUqsj) +zFPUK3QRtl?_$s4M>ZjGQPxpLSZ9n%o-TIF?Fy-T(r;C5efr;lHsEeN!tjmmkxCiRu +zk2o;PbN|!DKj*;2bMMo|zwW@qb1&4z=VCuoVdA+rsxbAjECweX{Vs<72$PQfwHh%0 +zUb5=@O2GWX_6l?DvC4s2?m4GFnt<1f`X>I2(;ux9;9p&&B@$jo4A1s(FV|eg-i|vk +z@!ZdK@jYBj%Vqk5`?v~Io@_dExeT8Bw+a(~%z??D`?lsX^}p@F#B;ya#V^I)r^3W@ +zUsYl9Kjpy0b05`QhX09R8C@uU0#dPRzuenY`VT-~9|lamx?Vit;K`qRpXN$<p9THr +zWAu+Wc+zukRO!k083!hw`=jPE^5&CBE~C$+12b9az%0)_Q*)W}4Gv5^_fTDYs{<3y +zJyjP!=)lBtkJZH=abV)P=j!4g!rrRF#B;AzVUjju?^I!_-+_rg>A=Kuuhm?pec?@l +z(GT}qUHnl8W_j+Ty7&_@n1347T-n}f^e15*pOohW_Iu5R`8YP7h=1J~Z$F6PSwHt_ +z&1K|Y9NcFc`MFQ);$L)Nmgjz~i?4NH;<-QT;+q_pc<$G__`?oNJoju}{38xbJojx~ +z{BsUWJoj;3{Od6|Tptxi{@#m@KkoCo<!|AGdbx~#xW}t7^<9X4SA|(W_jna1zQKWs +z=RU8wjQ%qYOg#5}UHnl8CZ7AiF8-tg6VH8N7yqII6VH8O7r!_eh4)+>h1Waw`1i0U +z!fKB^i>t|je+jr5FkPsw=L>`NO`(?)tcAn*yw9m`+64GkXFXmL!?Qh=$*8=Y4ov(J +z2WEfV=fK22;J}sO|NDSBgw)@@?%+w!y>4@v{>v{8VdA;>Z7w^$9GH0Sg}eA#2PU3- +z<1T)c0~61^au?qegZZ~9&6N$`f#*U_|7--@<G`(e`y811dCBRoeZcFb^ZoI~nv?Ku +zo&cY{B*cGg0{n=BKN-WbecbCem(kywB~h5~Ihd=^yEj&z^1trz|HBxb{P_&PTnX<h +zz%K!O7#Z5%ryM-#`7FR(MxGZPn0P)LaPjlXLYR0yD=?QS-{8Q+^Vxxm?{r||`7FW3 +zk2o;#e5T;yk2)~%e74}?PdYI1e8%A7ABn;It6ApC_OKm{zls`;|K|W_9QYpqk2o;< +z<2k3leh$1|YEN%D{iQg@#OM1sFf!Y`D>e-tWjbKaZ{#}_a0TF-0C34p{1t$Qv0h^} +zgqr~`hd)nRcn{$7v7W57@DSjgxW6QQ3FvPHoIrhA{$qf1@tk29@T`x2wf!?F|Eewj +z2Y}y)^6M@9HNdoQ%0v360DlGRDNdo3=lg)ai1kCKg<k^vVXXI?EzG}Vy&U{F#gP7& +zfNz0+<enq>6+kxHH+zII|1|t@_(v20oaJ2%*t7e)h1lPH4`EPqkBImNz|^<Ow+%4Y +z?+W(={y>@84`Kbc1O6b^*T=wx@ZErK!u&z~6aFG#SAUNJK5qMeDthqifY)I>Q$Eu3 +zPtku2_P`}Q;lBq=|E}`C4%p?FnB;l?0^uqx{ZzmkP`|=+0AB`v4HkbX;MKU_RsMB= +zx1j##(SFu<72uyj-zt9#;1Akow#4rRY_v<AWO@C7|HzSd6!4u`KS3nn_bI?rA+y@c +z1AtxmA0s{bkhcKj|2@FHj(ji2=-&Xm4E?hT^z2_RC(5r7@K>NLt*;nxF&e}9mi(^- +z{H0R!>{8kbSob5@o@T&HP>1%%b$};1^4tjc8}?lUmOldcb70<Q`F|R)+rHled=uKw +zB{AtAh~XatJOlkzYw_O!%=w=BWBYyt_ztK4e**aPj=p~Z*sU-BJoGozqWYf!*u^gb +zd=vDo{d*<gEl}1{TYn?qNlt%l2R!K1zZdWyIr`;Zgv<Xnz#jlV<^LJLlO2Bd0$zd6 +z9<=p+HCFz+fP2fr{`z~stKlECJ-+~a3&szc2>oPxxftl*z<hkI<u@DfLco<4z69{k +zq2FZ|t_R$U!rI=e0q=zWQ~kFRw(X<8>jhku4DID+z+VJ^^;aJStQViYd>ZgK9R2(* +z;B^=eSAdB9|Hmv3d%DWPPXgYL{@^VO@y`Nw>wg*W*Pu_W?=8T~i$nX&o*bp00r(qe +zkJ6U{*5|;KuN?5-I`|cU%N_gP4EV$7yk*c4<>>-^r_&!F1nkQ92?r+qNx*lZvs!I? +z{t)m<$9}#B_)e$3rvX2+5cY!lXzzaq_-@BPz6zL^;(rSGGK|k`*a7SNCE%TC>_ea- +zJOzq$<(mumjwRvzbSdD|jy%g_^o@Z31@fuC*cHRy0QfHSKbk1@-3quIfZF?=fRCU( +zb-=SdV}Q3i_V^&+spvoLpRWLR<^669{u{ttFQVIp-@gH#jQLyZ%f<rbHb<V>fL(r< +z0KOCUukE=E@Si#U<0`;kf_*8zBUU~GSf795?!>zl@J*=y46>>3PXoRS<9o4%KL_|@ +z&UpGFU{{_;0ds$n@>4(G103?7<ozAs8IC?*1H9@IGoDHRHei?E`50^8a>m<yq{I3B +z-`-gQ_-_%IO?lsg#P7rZTyEiwfVVsL$alnZFAn9)0G<K=0}-VBQNXhu`p*%M_UnAg +zXQd|``~5QDUt+$&5R&qIXT04R?_UG_eeiFx`0oJzGX!*r(EkAGzjgZS9|8Xbg4*9( +zNN>m3(f-SYEqn?5b^Of--09f+V!*EcmIK}Z;gYt#M!+9%{3~tui@+=YLBNNBN44m` +zZ0|7O+fZ2h|C4~(CYAqQz;1ny0-g-}sI>LbcYhz{@n72eG+-}DYiApCycYmJ;K={? +zfIr~q|4qO@O@`x%54hd>rpDkB!0*FkydL~%50?Pu{wr&weO&?gr;uOeYXtlO#~$|p +z{yhBoX<PmVz(2%#Nyjta#ri24-)He30?hkC<^MUrPXJzJ>-#d`qmI3t2F&NLybAGr +z^eMp0VXvysmjIui9l}2YT#WI!74&RRK6G;zh_%0xfD@2k;VQr<1OD0G6@dTH>8~ch +z>p;KE^5fVD<;nK01AG(eRC~V>@DEX+w*Pj(gBahekNUg^u-hMh0C*kj6;+75Ujh94 +zPW|5kyaLSkSo~iDE-wzp?<;_R4*R*o;@<>Z?8q|-jNSTX0{)=09_6!{sSxg{Eng4# +z7RSEc3wW|KU+)2&5C6Lq^lZ-{;0<tIs?U!A=K8Tg@V@s6z*{h$)xZ2c;4>&+Y0G~N +z@Ym3PeYXDZ0$u`G`F#)YKcK%;7XJ@`FM@q3{VxFjQ+}wAT;SaH&W^#C01nr;zPAeS +zzd8Ea0{DGskM`egz?V7g%K&!y^I6Ub*f0KzKJEsbgukq_@V$VG%R+zf2;jTW-;de$ +zd<XCsF(0*9_<MklIrjeoV7ET!FY1(Kyqmj*2Jr3mz@S$q2W8^>Lwx%kKcEs>@)5Lt +zgYAt!7tr}LZ}KNw?D=Hihqv?0-vhI!hM6}3@r^JJ-;+Py)`7FOa1NLS?b%-TJwcrM +z6`al$JB(|>bFb_nO>%e=kCDN*&qFFTzZ}OGndX-tqNdH~l=>~J^W7w9^nj7H7am`N +zuTXISg`9&D9`ay6v2+e_h<>c@exyC&7w9P*^O#9hnm-CL?n88gt&)QxBVUC_KG_aG +zzNYB0@20~KtAkIjCCh%A%A<Ycds4p0iQ>*@z5?;1=I9rv_QT}p7s>WG2#a%==qIpl +zmQ|Xga-}k#<~m=_>UXgdefnzhym8;APxQ&VTbEXE&$zSSn@?0K=ns5OKj9e{?&tjz +zpPFM1lnRfca?bwK(?-;=P(|#(jOe)2599UBBRzuAIcs9#vxV$gdbWIM5H^GAHWqD9 +zIrZA~)m`>H4))`r1bPAkK5C}|d4!P^QgGk+GgIO{qen4lL&Fn0L?%5Nz^JS`Jf%y| +zkTBLonZmP23~^0(f>-1SQ_CvE>c9?8+0oM{ET8xxXtiO_$p`0hz=Jd$Cojvu;YkM0 +zIVwhD=Dlab(>XirET>IOe3+vxt%|1wMo!F>BPI>exHH$nGgoZ)*nw%tL(Psm8c;2M +z{5c)Q<H*Su=tp}xwQ<zpp^R4M@Z`7&4wBK4gkx6qco9=9JOxh9mc*oz>BYD8N<{ai +zXOP%Kx#F(QIi=T15-P%E)P!vhPT@6}s_-P2xTfW7Qs~}2k=OK@IW^VVqr3`_gF|9x +zE82=fNx*5``PPPAcuKTAVkInOxP*!wH@5W100=LI^@JK#U*u3_D^oZC$DL<8(Fq!Q +zLUnMsc5sY|RbkkJuDcf{S&DEZ+JPcp5x8edLVk0!1I~z6*=^&)QvpF_PusP815%YS +zdWyF798`=w1h6VpW%S4xF>aA6ezc6Ksy4Ks@YtZp+&sZd5}W~J#SOhm^z=}7nlgvX +zIH!(VEjV@>KX)oPOZ<R)j%aX}YUJP?!!7I&on3S`;vqu&gLAhHb#>SSoHT-i4skSw +zB?t}nEN33GT)0Hh$;3|OVueQSJeF5_O|03nuL<>L>l>#GogA#ggQ3I+LR>I8<k+yQ +z2@TlJlCTXuH8QM9ZH&E+^N^!QXj{R;p%pzNci%)OXPOgpIhuHgkCi2?&-(BQ?8=#` +zc?MCaT%7S@O9cy9D_E#Pao+9`uVVU8AP!?<?_+wmr?se0anF1*?3|-JtpUXy6Xz{6 +zJgl3H4(i&_0^vHTZhI`XnQ!dLCvxUCkb3%b^nhC{N@$#v-X7UxPG8j?lS2Y=VjIWS +z_!IkO=^$R*>MHaRcJ>PoaB)szpP*lC?Xqxk&x$t|E$aqdflP3guBkn2j&q8YVPH?2 +zRm)=6>z^mE)^k~Cf3{Bky#tG^j<0g6!eOiDvRUg1)`sz;#$8Wk&d7?LhZU@}fR!^E +zg`+v-%9=`iteRQfj$A4@IJsXe6O7!C%+#*f*=kc}8s*&O9*gZb0q0~gwF&lyo_`<l +zYB<`^9K6i0*~XucOj_~Lb|xd0?YYoyw35i*C$PF5H&RULs<3xh+MJi<9<Pk%#7@gI +zDzk@9IqOk5cFW2Xnv<<2%$V@Tl;c)zM?yao{Ot*#I7gdXK-Il%Rph=foFU@}>*?9| +zU?tu`y|mLo)=B~gW)_?FW(FGzJZoHwyT>Kkn;>&wp&TwL2dr9;CZ{|Z6;y}r-s&VA +zHMUb@HfP9c!yd9;2IsBW)cA$7tt+rmHGcU6B-Yq%o}C7bv(W{enh@aNFPLyGEVjq9 +OJmt?l*an1)lm7=$>1V?L literal 0 HcmV?d00001 @@ -1064,5 +1062,5 @@ literal 0 HcmV?d00001 -- -2.1.4 +2.5.1 diff --git a/patches/beaglebone/phy/0001-cpsw-Add-support-for-byte-queue-limits.patch b/patches/beaglebone/phy/0001-cpsw-Add-support-for-byte-queue-limits.patch deleted file mode 100644 index e6578db10b46a9f1a401cf0810bf710a3f4098fe..0000000000000000000000000000000000000000 --- a/patches/beaglebone/phy/0001-cpsw-Add-support-for-byte-queue-limits.patch +++ /dev/null @@ -1,68 +0,0 @@ -From c5e2033ec71c95ddb373e710c56310c79c90f0fe Mon Sep 17 00:00:00 2001 -From: Dave Taht <dave.taht@bufferbloat.net> -Date: Wed, 11 Jun 2014 12:47:07 -0700 -Subject: [PATCH 1/3] cpsw: Add support for byte queue limits - -IoT devices such as the beaglebone black come with a default PHY -that can only do 100Mbit, and a fairly large tx ring. BQL moderates -the effect of that considerably when saturating the network at that -speed. - -Tested on a beaglebone black. ---- - drivers/net/ethernet/ti/cpsw.c | 9 ++++++++- - 1 file changed, 8 insertions(+), 1 deletion(-) - -diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c -index b536b4c..262cf47 100644 ---- a/drivers/net/ethernet/ti/cpsw.c -+++ b/drivers/net/ethernet/ti/cpsw.c -@@ -698,6 +698,7 @@ static void cpsw_tx_handler(void *token, int len, int status) - cpts_tx_timestamp(priv->cpts, skb); - ndev->stats.tx_packets++; - ndev->stats.tx_bytes += len; -+ netdev_completed_queue(ndev,1,len); - dev_kfree_skb_any(skb); - } - -@@ -1325,6 +1326,8 @@ static int cpsw_ndo_open(struct net_device *ndev) - cpsw_set_coalesce(ndev, &coal); - } - -+ netdev_reset_queue(ndev); -+ dev_info(priv->dev, "BQL enabled\n"); - napi_enable(&priv->napi); - cpdma_ctlr_start(priv->dma); - cpsw_intr_enable(priv); -@@ -1357,6 +1360,7 @@ static int cpsw_ndo_stop(struct net_device *ndev) - netif_stop_queue(priv->ndev); - napi_disable(&priv->napi); - netif_carrier_off(priv->ndev); -+ netdev_reset_queue(priv->ndev); - - if (cpsw_common_res_usage_state(priv) <= 1) { - cpts_unregister(priv->cpts); -@@ -1377,6 +1381,7 @@ static netdev_tx_t cpsw_ndo_start_xmit(struct sk_buff *skb, - { - struct cpsw_priv *priv = netdev_priv(ndev); - int ret; -+ int len; - - ndev->trans_start = jiffies; - -@@ -1391,9 +1396,11 @@ static netdev_tx_t cpsw_ndo_start_xmit(struct sk_buff *skb, - skb_shinfo(skb)->tx_flags |= SKBTX_IN_PROGRESS; - - skb_tx_timestamp(skb); -- -+ len = max(skb->len, CPSW_MIN_PACKET_SIZE); -+ netdev_sent_queue(ndev,len); - ret = cpsw_tx_packet_submit(ndev, priv, skb); - if (unlikely(ret != 0)) { -+ netdev_completed_queue(ndev,1,len); - cpsw_err(priv, tx_err, "desc submit failed\n"); - goto fail; - } --- -2.1.4 - diff --git a/patches/beaglebone/phy/0003-cpsw-search-for-phy.patch b/patches/beaglebone/phy/0001-cpsw-search-for-phy.patch similarity index 97% rename from patches/beaglebone/phy/0003-cpsw-search-for-phy.patch rename to patches/beaglebone/phy/0001-cpsw-search-for-phy.patch index ef26f70fa8e6713ee0d0bfe9e9e3636e3c01114f..d2270fe6680094b0fe5cb57ba8cf38e1b66a452a 100644 --- a/patches/beaglebone/phy/0003-cpsw-search-for-phy.patch +++ b/patches/beaglebone/phy/0001-cpsw-search-for-phy.patch @@ -1,7 +1,7 @@ -From 2a7ba83fd0ffe75c527674dd59980703b093ca13 Mon Sep 17 00:00:00 2001 +From ce074aa52354e9edab8fb4ee6af208c42d5701fc Mon Sep 17 00:00:00 2001 From: Jay at Control Module Industries <cmidroid@gmail.com> Date: Tue, 19 May 2015 13:35:14 -0500 -Subject: [PATCH 3/3] cpsw: search for phy +Subject: [PATCH] cpsw: search for phy I have encountered the same issue(s) on A6A boards. @@ -143,5 +143,5 @@ index c00084d..cfbe9a5 100644 static int davinci_mdio_probe(struct platform_device *pdev) -- -2.1.4 +2.5.1 diff --git a/patches/beaglebone/phy/0002-cpsw-napi-polling-of-64-is-good-for-gigE-less-good-f.patch b/patches/beaglebone/phy/0002-cpsw-napi-polling-of-64-is-good-for-gigE-less-good-f.patch deleted file mode 100644 index 8d455391105443b226221502b6c20110bc2531d4..0000000000000000000000000000000000000000 --- a/patches/beaglebone/phy/0002-cpsw-napi-polling-of-64-is-good-for-gigE-less-good-f.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 14b206c2a108e836f421f6dde3c45cb591977513 Mon Sep 17 00:00:00 2001 -From: Dave Taht <dave.taht@bufferbloat.net> -Date: Wed, 11 Jun 2014 21:27:00 -0700 -Subject: [PATCH 2/3] cpsw: napi polling of 64 is good for gigE - less good for - 100mbit - -The cpsw device runs at 100/10mbits. Deferring a read for 96k -wipes out the dcache thrice over. It is better to take more interrupts -as they come, at 100mbit. ---- - drivers/net/ethernet/ti/cpsw.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c -index 262cf47..349c5e7 100644 ---- a/drivers/net/ethernet/ti/cpsw.c -+++ b/drivers/net/ethernet/ti/cpsw.c -@@ -116,7 +116,7 @@ do { \ - #define CPDMA_TXCP 0x40 - #define CPDMA_RXCP 0x60 - --#define CPSW_POLL_WEIGHT 64 -+#define CPSW_POLL_WEIGHT 16 - #define CPSW_MIN_PACKET_SIZE 60 - #define CPSW_MAX_PACKET_SIZE (1500 + 14 + 4 + 4) - --- -2.1.4 - diff --git a/patches/defconfig b/patches/defconfig index 54b5c7b0306faa509a3987f43698fa1fdad99bf6..ba26080e067072a2f7c5fce67d52e3b0709ed055 100644 --- a/patches/defconfig +++ b/patches/defconfig @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm 4.2.0-rc7 Kernel Configuration +# Linux/arm 4.3.0-rc1 Kernel Configuration # CONFIG_ARM=y CONFIG_ARM_HAS_SG_CHAIN=y @@ -16,6 +16,7 @@ CONFIG_LOCKDEP_SUPPORT=y CONFIG_TRACE_IRQFLAGS_SUPPORT=y CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_ARCH_HAS_BANDGAP=y +CONFIG_FIX_EARLYCON_MEM=y CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_NEED_DMA_MAP_STATE=y @@ -119,6 +120,7 @@ CONFIG_GENERIC_SCHED_CLOCK=y CONFIG_CGROUPS=y # CONFIG_CGROUP_DEBUG is not set CONFIG_CGROUP_FREEZER=y +CONFIG_CGROUP_PIDS=y CONFIG_CGROUP_DEVICE=y CONFIG_CPUSETS=y CONFIG_PROC_PID_CPUSET=y @@ -180,6 +182,8 @@ CONFIG_BPF_SYSCALL=y CONFIG_SHMEM=y CONFIG_AIO=y CONFIG_ADVISE_SYSCALLS=y +# CONFIG_USERFAULTFD is not set +CONFIG_MEMBARRIER=y CONFIG_EMBEDDED=y CONFIG_HAVE_PERF_EVENTS=y CONFIG_PERF_USE_VMALLOC=y @@ -194,13 +198,15 @@ CONFIG_VM_EVENT_COUNTERS=y CONFIG_SLAB=y # CONFIG_SLUB is not set # CONFIG_SLOB is not set -# CONFIG_SYSTEM_TRUSTED_KEYRING is not set +# CONFIG_SYSTEM_DATA_VERIFICATION is not set CONFIG_PROFILING=y CONFIG_TRACEPOINTS=y +CONFIG_KEXEC_CORE=y CONFIG_OPROFILE=y CONFIG_HAVE_OPROFILE=y CONFIG_KPROBES=y CONFIG_JUMP_LABEL=y +# CONFIG_STATIC_KEYS_SELFTEST is not set CONFIG_UPROBES=y # CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y @@ -513,6 +519,7 @@ CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y CONFIG_HAVE_ARCH_PFN_VALID=y CONFIG_HIGHMEM=y CONFIG_HIGHPTE=y +CONFIG_CPU_SW_DOMAIN_PAN=y CONFIG_HW_PERF_EVENTS=y CONFIG_ARCH_WANT_GENERAL_HUGETLB=y # CONFIG_ARM_MODULE_PLTS is not set @@ -546,6 +553,8 @@ CONFIG_ZBUD=m CONFIG_ZSMALLOC=m # CONFIG_PGTABLE_MAPPING is not set # CONFIG_ZSMALLOC_STAT is not set +# CONFIG_IDLE_PAGE_TRACKING is not set +CONFIG_FRAME_VECTOR=y CONFIG_FORCE_MAX_ZONEORDER=12 CONFIG_ALIGNMENT_TRAP=y # CONFIG_UACCESS_WITH_MEMCPY is not set @@ -633,6 +642,7 @@ CONFIG_COREDUMP=y # CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y +# CONFIG_SUSPEND_SKIP_SYNC is not set CONFIG_HIBERNATE_CALLBACKS=y CONFIG_HIBERNATION=y CONFIG_PM_STD_PARTITION="" @@ -699,7 +709,6 @@ CONFIG_NET_IPVTI=m CONFIG_NET_UDP_TUNNEL=m CONFIG_NET_FOU=m CONFIG_NET_FOU_IP_TUNNELS=y -# CONFIG_GENEVE_CORE is not set CONFIG_INET_AH=m CONFIG_INET_ESP=m CONFIG_INET_IPCOMP=m @@ -739,6 +748,7 @@ CONFIG_INET6_AH=m CONFIG_INET6_ESP=m CONFIG_INET6_IPCOMP=m CONFIG_IPV6_MIP6=y +CONFIG_IPV6_ILA=m CONFIG_INET6_XFRM_TUNNEL=m CONFIG_INET6_TUNNEL=m CONFIG_INET6_XFRM_MODE_TRANSPORT=m @@ -960,6 +970,7 @@ CONFIG_IP_VS_WRR=m CONFIG_IP_VS_LC=m CONFIG_IP_VS_WLC=m CONFIG_IP_VS_FO=m +CONFIG_IP_VS_OVF=m CONFIG_IP_VS_LBLC=m CONFIG_IP_VS_LBLCR=m CONFIG_IP_VS_DH=m @@ -988,7 +999,9 @@ CONFIG_NF_CONNTRACK_PROC_COMPAT=y CONFIG_NF_TABLES_IPV4=m CONFIG_NFT_CHAIN_ROUTE_IPV4=m CONFIG_NFT_REJECT_IPV4=m +CONFIG_NFT_DUP_IPV4=m CONFIG_NF_TABLES_ARP=m +CONFIG_NF_DUP_IPV4=m CONFIG_NF_LOG_ARP=m CONFIG_NF_LOG_IPV4=m CONFIG_NF_REJECT_IPV4=m @@ -1031,6 +1044,8 @@ CONFIG_NF_CONNTRACK_IPV6=m CONFIG_NF_TABLES_IPV6=m CONFIG_NFT_CHAIN_ROUTE_IPV6=m CONFIG_NFT_REJECT_IPV6=m +CONFIG_NFT_DUP_IPV6=m +CONFIG_NF_DUP_IPV6=m CONFIG_NF_REJECT_IPV6=m CONFIG_NF_LOG_IPV6=m CONFIG_NF_NAT_IPV6=m @@ -1242,12 +1257,14 @@ CONFIG_BATMAN_ADV_MCAST=y CONFIG_OPENVSWITCH=m CONFIG_OPENVSWITCH_GRE=m CONFIG_OPENVSWITCH_VXLAN=m +CONFIG_OPENVSWITCH_GENEVE=m # CONFIG_VSOCKETS is not set CONFIG_NETLINK_MMAP=y CONFIG_NETLINK_DIAG=m CONFIG_MPLS=y CONFIG_NET_MPLS_GSO=y CONFIG_MPLS_ROUTING=m +CONFIG_MPLS_IPTUNNEL=m CONFIG_HSR=m # CONFIG_NET_SWITCHDEV is not set CONFIG_CGROUP_NET_PRIO=y @@ -1313,6 +1330,7 @@ CONFIG_BT_BNEP=m CONFIG_BT_BNEP_MC_FILTER=y CONFIG_BT_BNEP_PROTO_FILTER=y CONFIG_BT_HIDP=m +CONFIG_BT_HS=y CONFIG_BT_LE=y CONFIG_BT_6LOWPAN=m # CONFIG_BT_SELFTEST is not set @@ -1324,6 +1342,7 @@ CONFIG_BT_DEBUGFS=y CONFIG_BT_INTEL=m CONFIG_BT_BCM=m CONFIG_BT_RTL=m +CONFIG_BT_QCA=m CONFIG_BT_HCIBTUSB=m CONFIG_BT_HCIBTUSB_BCM=y CONFIG_BT_HCIBTUSB_RTL=y @@ -1336,6 +1355,7 @@ CONFIG_BT_HCIUART_LL=y CONFIG_BT_HCIUART_3WIRE=y # CONFIG_BT_HCIUART_INTEL is not set CONFIG_BT_HCIUART_BCM=y +CONFIG_BT_HCIUART_QCA=y CONFIG_BT_HCIBCM203X=m CONFIG_BT_HCIBPA10X=m CONFIG_BT_HCIBFUSB=m @@ -1419,6 +1439,8 @@ CONFIG_NFC_MICROREAD_I2C=m # CONFIG_NFC_ST21NFCA is not set # CONFIG_NFC_ST_NCI is not set # CONFIG_NFC_NXP_NCI is not set +# CONFIG_NFC_S3FWRN5_I2C is not set +CONFIG_LWTUNNEL=y CONFIG_HAVE_BPF_JIT=y # @@ -1556,7 +1578,7 @@ CONFIG_MTD_NAND=y CONFIG_MTD_NAND_BCH=y CONFIG_MTD_NAND_ECC_BCH=y # CONFIG_MTD_SM_COMMON is not set -# CONFIG_MTD_NAND_DENALI is not set +# CONFIG_MTD_NAND_DENALI_DT is not set # CONFIG_MTD_NAND_GPIO is not set CONFIG_MTD_NAND_OMAP2=m # CONFIG_MTD_NAND_OMAP_BCH is not set @@ -1707,6 +1729,7 @@ CONFIG_BEAGLEBONE_PINMUX_HELPER=y # CONFIG_ECHO is not set # CONFIG_CXL_BASE is not set # CONFIG_CXL_KERNEL_API is not set +# CONFIG_CXL_EEH is not set # # SCSI device support @@ -1754,11 +1777,7 @@ CONFIG_LIBFC=m CONFIG_LIBFCOE=m # CONFIG_SCSI_DEBUG is not set CONFIG_SCSI_VIRTIO=m -CONFIG_SCSI_DH=m -CONFIG_SCSI_DH_RDAC=m -CONFIG_SCSI_DH_HP_SW=m -CONFIG_SCSI_DH_EMC=m -CONFIG_SCSI_DH_ALUA=m +# CONFIG_SCSI_DH is not set CONFIG_SCSI_OSD_INITIATOR=m CONFIG_SCSI_OSD_ULD=m CONFIG_SCSI_OSD_DPRINT_SENSE=1 @@ -1864,6 +1883,7 @@ CONFIG_MACVLAN=m CONFIG_MACVTAP=m CONFIG_IPVLAN=m CONFIG_VXLAN=m +CONFIG_GENEVE=m CONFIG_NETCONSOLE=m CONFIG_NETCONSOLE_DYNAMIC=y CONFIG_NETPOLL=y @@ -1873,6 +1893,7 @@ CONFIG_TUN=m CONFIG_VETH=m CONFIG_VIRTIO_NET=m CONFIG_NLMON=m +CONFIG_NET_VRF=m CONFIG_ATM_DRIVERS=y CONFIG_ATM_DUMMY=m # CONFIG_ATM_TCP is not set @@ -1936,6 +1957,8 @@ CONFIG_SMSC911X=m # CONFIG_SMSC911X_ARCH_HOOKS is not set CONFIG_NET_VENDOR_STMICRO=y # CONFIG_STMMAC_ETH is not set +CONFIG_NET_VENDOR_SYNOPSYS=y +# CONFIG_SYNOPSYS_DWC_ETH_QOS is not set CONFIG_NET_VENDOR_TI=y CONFIG_TI_DAVINCI_MDIO=y CONFIG_TI_DAVINCI_CPDMA=y @@ -1954,6 +1977,7 @@ CONFIG_PHYLIB=y # # MII PHY device drivers # +# CONFIG_AQUANTIA_PHY is not set CONFIG_AT803X_PHY=m CONFIG_AMD_PHY=m CONFIG_MARVELL_PHY=m @@ -1962,6 +1986,7 @@ CONFIG_QSEMI_PHY=m CONFIG_LXT_PHY=m CONFIG_CICADA_PHY=m CONFIG_VITESSE_PHY=m +# CONFIG_TERANETICS_PHY is not set CONFIG_SMSC_PHY=y CONFIG_BROADCOM_PHY=m # CONFIG_BCM7XXX_PHY is not set @@ -1973,6 +1998,7 @@ CONFIG_STE10XP=m CONFIG_LSI_ET1011C_PHY=m CONFIG_MICREL_PHY=y # CONFIG_DP83867_PHY is not set +# CONFIG_MICROCHIP_PHY is not set # CONFIG_FIXED_PHY is not set # CONFIG_MDIO_BITBANG is not set # CONFIG_MDIO_BUS_MUX_GPIO is not set @@ -2002,6 +2028,7 @@ CONFIG_USB_KAWETH=m CONFIG_USB_PEGASUS=m CONFIG_USB_RTL8150=m CONFIG_USB_RTL8152=m +CONFIG_USB_LAN78XX=m CONFIG_USB_USBNET=m CONFIG_USB_NET_AX8817X=m CONFIG_USB_NET_AX88179_178A=m @@ -2295,7 +2322,7 @@ CONFIG_TABLET_USB_HANWANG=m CONFIG_TABLET_USB_KBTAB=m CONFIG_TABLET_SERIAL_WACOM4=m CONFIG_INPUT_TOUCHSCREEN=y -CONFIG_OF_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_PROPERTIES=y CONFIG_TOUCHSCREEN_ADS7846=m CONFIG_TOUCHSCREEN_AD7877=m CONFIG_TOUCHSCREEN_AD7879=m @@ -2330,6 +2357,7 @@ CONFIG_TOUCHSCREEN_MAX11801=m CONFIG_TOUCHSCREEN_MCS5000=m CONFIG_TOUCHSCREEN_MMS114=m CONFIG_TOUCHSCREEN_MTOUCH=m +# CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set CONFIG_TOUCHSCREEN_INEXIO=m CONFIG_TOUCHSCREEN_MK712=m CONFIG_TOUCHSCREEN_PENMOUNT=m @@ -2372,6 +2400,7 @@ CONFIG_TOUCHSCREEN_SUR40=m CONFIG_TOUCHSCREEN_SX8654=m CONFIG_TOUCHSCREEN_TPS6507X=m CONFIG_TOUCHSCREEN_ZFORCE=m +# CONFIG_TOUCHSCREEN_COLIBRI_VF50 is not set CONFIG_INPUT_MISC=y CONFIG_INPUT_AD714X=m CONFIG_INPUT_AD714X_I2C=m @@ -2474,6 +2503,7 @@ CONFIG_SERIAL_8250_OMAP_TTYO_FIXUP=y # CONFIG_SERIAL_KGDB_NMI is not set # CONFIG_SERIAL_MAX3100 is not set # CONFIG_SERIAL_MAX310X is not set +# CONFIG_SERIAL_UARTLITE is not set CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y CONFIG_CONSOLE_POLL=y @@ -2529,6 +2559,7 @@ CONFIG_I2C_ARB_GPIO_CHALLENGE=m # CONFIG_I2C_MUX_PCA9541 is not set CONFIG_I2C_MUX_PCA954x=y # CONFIG_I2C_MUX_PINCTRL is not set +# CONFIG_I2C_MUX_REG is not set CONFIG_I2C_HELPER_AUTO=y CONFIG_I2C_ALGOBIT=y CONFIG_I2C_ALGOPCA=m @@ -2542,6 +2573,7 @@ CONFIG_I2C_ALGOPCA=m # # CONFIG_I2C_CBUS_GPIO is not set # CONFIG_I2C_DESIGNWARE_PLATFORM is not set +# CONFIG_I2C_EMEV2 is not set CONFIG_I2C_GPIO=y CONFIG_I2C_OCORES=m CONFIG_I2C_OMAP=y @@ -2708,6 +2740,7 @@ CONFIG_GPIO_74X164=m CONFIG_GPIO_MAX7301=m CONFIG_GPIO_MCP23S08=m CONFIG_GPIO_MC33880=m +# CONFIG_GPIO_ZX is not set # # USB GPIO expanders @@ -2889,6 +2922,7 @@ CONFIG_SENSORS_LM25066=m CONFIG_SENSORS_LTC2978=m CONFIG_SENSORS_LTC2978_REGULATOR=y CONFIG_SENSORS_MAX16064=m +CONFIG_SENSORS_MAX20751=m CONFIG_SENSORS_MAX34440=m CONFIG_SENSORS_MAX8688=m CONFIG_SENSORS_TPS40422=m @@ -3025,6 +3059,7 @@ CONFIG_PMIC_DA9052=y CONFIG_MFD_DA9052_SPI=y CONFIG_MFD_DA9052_I2C=y CONFIG_MFD_DA9055=y +# CONFIG_MFD_DA9062 is not set CONFIG_MFD_DA9063=y # CONFIG_MFD_DA9150 is not set CONFIG_MFD_DLN2=y @@ -3137,6 +3172,7 @@ CONFIG_REGULATOR_GPIO=y CONFIG_REGULATOR_MC13XXX_CORE=m CONFIG_REGULATOR_MC13783=m CONFIG_REGULATOR_MC13892=m +CONFIG_REGULATOR_MT6311=m CONFIG_REGULATOR_PALMAS=y CONFIG_REGULATOR_PBIAS=y CONFIG_REGULATOR_PFUZE100=y @@ -3382,6 +3418,8 @@ CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m CONFIG_V4L_TEST_DRIVERS=y CONFIG_VIDEO_VIVID=m # CONFIG_VIDEO_VIM2M is not set +CONFIG_DVB_PLATFORM_DRIVERS=y +CONFIG_DVB_C8SECTPFE=m # # Supported MMC/SDIO adapters @@ -3588,6 +3626,7 @@ CONFIG_DVB_DIB7000P=m CONFIG_DVB_TDA10048=m CONFIG_DVB_AF9013=m CONFIG_DVB_EC100=m +CONFIG_DVB_STV0367=m CONFIG_DVB_CXD2820R=m CONFIG_DVB_RTL2830=m CONFIG_DVB_RTL2832=m @@ -3658,13 +3697,10 @@ CONFIG_DVB_AF9033=m # # Graphics support # - -# -# Direct Rendering Manager -# CONFIG_DRM=y -CONFIG_DRM_KMS_HELPER=m +CONFIG_DRM_KMS_HELPER=y CONFIG_DRM_KMS_FB_HELPER=y +CONFIG_DRM_FBDEV_EMULATION=y CONFIG_DRM_LOAD_EDID_FIRMWARE=y CONFIG_DRM_GEM_CMA_HELPER=y CONFIG_DRM_KMS_CMA_HELPER=y @@ -3676,8 +3712,6 @@ CONFIG_DRM_KMS_CMA_HELPER=y # CONFIG_DRM_I2C_CH7006 is not set # CONFIG_DRM_I2C_SIL164 is not set CONFIG_DRM_I2C_NXP_TDA998X=m -# CONFIG_DRM_PTN3460 is not set -# CONFIG_DRM_PS8622 is not set # CONFIG_DRM_VGEM is not set # CONFIG_DRM_EXYNOS is not set CONFIG_DRM_UDL=m @@ -3685,6 +3719,14 @@ CONFIG_DRM_UDL=m CONFIG_DRM_TILCDC=m CONFIG_DRM_TILCDC_SLAVE_COMPAT=y # CONFIG_DRM_VIRTIO_GPU is not set +# CONFIG_DRM_FSL_DCU is not set +CONFIG_DRM_BRIDGE=y + +# +# Display Interface Bridges +# +# CONFIG_DRM_NXP_PTN3460 is not set +# CONFIG_DRM_PARADE_PS8622 is not set # CONFIG_DRM_STI is not set # @@ -3733,6 +3775,7 @@ CONFIG_BACKLIGHT_CLASS_DEVICE=y # CONFIG_BACKLIGHT_GENERIC is not set CONFIG_BACKLIGHT_PWM=m # CONFIG_BACKLIGHT_DA9052 is not set +# CONFIG_BACKLIGHT_PM8941_WLED is not set # CONFIG_BACKLIGHT_ADP8860 is not set # CONFIG_BACKLIGHT_ADP8870 is not set # CONFIG_BACKLIGHT_LM3630A is not set @@ -3848,7 +3891,6 @@ CONFIG_SND_OMAP_SOC_MCBSP=m CONFIG_SND_OMAP_SOC_HDMI_AUDIO=m CONFIG_SND_OMAP_SOC_RX51=m CONFIG_SND_OMAP_SOC_OMAP_TWL4030=m -# CONFIG_SND_SOC_QCOM is not set # CONFIG_SND_SOC_XTFPGA_I2S is not set CONFIG_SND_SOC_I2C_AND_SPI=m @@ -3872,8 +3914,10 @@ CONFIG_SND_SOC_I2C_AND_SPI=m # CONFIG_SND_SOC_CS4271_I2C is not set # CONFIG_SND_SOC_CS4271_SPI is not set # CONFIG_SND_SOC_CS42XX8_I2C is not set +# CONFIG_SND_SOC_CS4349 is not set CONFIG_SND_SOC_HDMI_CODEC=m # CONFIG_SND_SOC_ES8328 is not set +# CONFIG_SND_SOC_GTM601 is not set # CONFIG_SND_SOC_PCM1681 is not set # CONFIG_SND_SOC_PCM1792A is not set # CONFIG_SND_SOC_PCM512x_I2C is not set @@ -3888,6 +3932,7 @@ CONFIG_SND_SOC_SGTL5000=m # CONFIG_SND_SOC_SSM4567 is not set # CONFIG_SND_SOC_STA32X is not set # CONFIG_SND_SOC_STA350 is not set +# CONFIG_SND_SOC_STI_SAS is not set # CONFIG_SND_SOC_TAS2552 is not set # CONFIG_SND_SOC_TAS5086 is not set # CONFIG_SND_SOC_TAS571X is not set @@ -3952,6 +3997,7 @@ CONFIG_HID_EMS_FF=m CONFIG_HID_ELECOM=m CONFIG_HID_ELO=m CONFIG_HID_EZKEY=y +CONFIG_HID_GEMBIRD=m CONFIG_HID_HOLTEK=m CONFIG_HOLTEK_FF=y CONFIG_HID_GT683R=m @@ -4130,7 +4176,10 @@ CONFIG_USB_MUSB_DUAL_ROLE=y # CONFIG_USB_MUSB_AM35X is not set CONFIG_USB_MUSB_DSPS=y CONFIG_USB_MUSB_AM335X_CHILD=y -# CONFIG_USB_TI_CPPI41_DMA is not set + +# +# MUSB DMA mode +# CONFIG_MUSB_PIO_ONLY=y CONFIG_USB_DWC3=y # CONFIG_USB_DWC3_HOST is not set @@ -4141,11 +4190,6 @@ CONFIG_USB_DWC3_DUAL_ROLE=y # Platform Glue Driver Support # CONFIG_USB_DWC3_OMAP=m - -# -# Debugging features -# -# CONFIG_USB_DWC3_DEBUG is not set # CONFIG_USB_DWC2 is not set CONFIG_USB_CHIPIDEA=y CONFIG_USB_CHIPIDEA_OF=y @@ -4375,6 +4419,7 @@ CONFIG_SDIO_UART=m CONFIG_MMC_SDHCI=y CONFIG_MMC_SDHCI_PLTFM=y # CONFIG_MMC_SDHCI_OF_ARASAN is not set +# CONFIG_MMC_SDHCI_OF_AT91 is not set # CONFIG_MMC_SDHCI_F_SDH30 is not set CONFIG_MMC_OMAP=y CONFIG_MMC_OMAP_HS=y @@ -4428,7 +4473,6 @@ CONFIG_LEDS_LM355x=m # # CONFIG_LEDS_BLINKM is not set # CONFIG_LEDS_SYSCON is not set -# CONFIG_LEDS_PM8941_WLED is not set # # LED Triggers @@ -4551,6 +4595,7 @@ CONFIG_RTC_DRV_MSM6242=m CONFIG_RTC_DRV_BQ4802=m CONFIG_RTC_DRV_RP5C01=m CONFIG_RTC_DRV_V3020=m +# CONFIG_RTC_DRV_ZYNQMP is not set # # on-CPU RTC drivers @@ -4569,16 +4614,17 @@ CONFIG_DMADEVICES=y # # DMA Devices # -CONFIG_DW_DMAC_CORE=y -CONFIG_DW_DMAC=y -CONFIG_TI_EDMA=y -CONFIG_DMA_OMAP=y -CONFIG_TI_CPPI41=y -CONFIG_FSL_EDMA=y -# CONFIG_NBPFAXI_DMA is not set CONFIG_DMA_ENGINE=y CONFIG_DMA_VIRTUAL_CHANNELS=y CONFIG_DMA_OF=y +CONFIG_DMA_OMAP=y +CONFIG_FSL_EDMA=y +# CONFIG_IDMA64 is not set +# CONFIG_NBPFAXI_DMA is not set +CONFIG_TI_CPPI41=y +CONFIG_TI_EDMA=y +CONFIG_DW_DMAC_CORE=y +CONFIG_DW_DMAC=y # # DMA Clients @@ -4746,7 +4792,6 @@ CONFIG_ION=y # CONFIG_ION_TEST is not set # CONFIG_ION_DUMMY is not set # CONFIG_STAGING_BOARD is not set -# CONFIG_USB_WPAN_HCD is not set # CONFIG_WIMAX_GDM72XX is not set # CONFIG_LTE_GDM724X is not set # CONFIG_MTD_SPINAND_MT29F is not set @@ -4754,7 +4799,38 @@ CONFIG_ION=y # CONFIG_DGAP is not set # CONFIG_GS_FPGABOOT is not set # CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set -# CONFIG_FB_TFT is not set +CONFIG_FB_TFT=m +CONFIG_FB_TFT_AGM1264K_FL=m +CONFIG_FB_TFT_BD663474=m +CONFIG_FB_TFT_HX8340BN=m +CONFIG_FB_TFT_HX8347D=m +CONFIG_FB_TFT_HX8353D=m +CONFIG_FB_TFT_HX8357D=m +CONFIG_FB_TFT_ILI9163=m +CONFIG_FB_TFT_ILI9320=m +CONFIG_FB_TFT_ILI9325=m +CONFIG_FB_TFT_ILI9340=m +CONFIG_FB_TFT_ILI9341=m +CONFIG_FB_TFT_ILI9481=m +CONFIG_FB_TFT_ILI9486=m +CONFIG_FB_TFT_PCD8544=m +CONFIG_FB_TFT_RA8875=m +CONFIG_FB_TFT_S6D02A1=m +CONFIG_FB_TFT_S6D1121=m +CONFIG_FB_TFT_SSD1289=m +CONFIG_FB_TFT_SSD1306=m +CONFIG_FB_TFT_SSD1331=m +CONFIG_FB_TFT_SSD1351=m +CONFIG_FB_TFT_ST7735R=m +CONFIG_FB_TFT_TINYLCD=m +CONFIG_FB_TFT_TLS8204=m +CONFIG_FB_TFT_UC1611=m +CONFIG_FB_TFT_UC1701=m +CONFIG_FB_TFT_UPD161704=m +CONFIG_FB_TFT_WATTEROTT=m +CONFIG_FB_FLEX=m +CONFIG_FB_TFT_FBTFT_DEVICE=m +# CONFIG_MOST is not set # CONFIG_CHROME_PLATFORMS is not set CONFIG_CLKDEV_LOOKUP=y CONFIG_HAVE_CLK_PREPARE=y @@ -4874,8 +4950,8 @@ CONFIG_IIO_ST_ACCEL_3AXIS=m CONFIG_IIO_ST_ACCEL_I2C_3AXIS=m CONFIG_IIO_ST_ACCEL_SPI_3AXIS=m CONFIG_KXSD9=m -CONFIG_MMA8452=m CONFIG_KXCJK1013=m +CONFIG_MMA8452=m CONFIG_MMA9551_CORE=m CONFIG_MMA9551=m CONFIG_MMA9553=m @@ -5014,7 +5090,10 @@ CONFIG_ISL29125=m CONFIG_HID_SENSOR_ALS=m CONFIG_HID_SENSOR_PROX=m CONFIG_JSA1212=m +CONFIG_RPR0521=m CONFIG_LTR501=m +CONFIG_OPT3001=m +CONFIG_PA12203001=m # CONFIG_STK3310 is not set CONFIG_TCS3414=m CONFIG_TCS3472=m @@ -5106,6 +5185,12 @@ CONFIG_TI_PIPE3=y # CONFIG_POWERCAP is not set # CONFIG_MCB is not set +# +# Performance monitor support +# +CONFIG_ARM_PMU=y +# CONFIG_RAS is not set + # # Android # @@ -5117,6 +5202,7 @@ CONFIG_NVMEM=y # # Firmware Drivers # +CONFIG_ARM_PSCI_FW=y # CONFIG_FIRMWARE_MEMMAP is not set # @@ -5126,7 +5212,7 @@ CONFIG_DCACHE_WORD_ACCESS=y # CONFIG_EXT2_FS is not set # CONFIG_EXT3_FS is not set CONFIG_EXT4_FS=y -CONFIG_EXT4_USE_FOR_EXT23=y +CONFIG_EXT4_USE_FOR_EXT2=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y CONFIG_EXT4_ENCRYPTION=y @@ -5603,6 +5689,7 @@ CONFIG_FTRACE_MCOUNT_RECORD=y # CONFIG_TEST_FIRMWARE is not set # CONFIG_TEST_UDELAY is not set # CONFIG_MEMTEST is not set +# CONFIG_TEST_STATIC_KEYS is not set # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y CONFIG_KGDB=y @@ -5659,7 +5746,6 @@ CONFIG_SECURITY_APPARMOR=y CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1 CONFIG_SECURITY_APPARMOR_HASH=y CONFIG_SECURITY_YAMA=y -CONFIG_SECURITY_YAMA_STACKED=y CONFIG_INTEGRITY=y # CONFIG_INTEGRITY_SIGNATURE is not set CONFIG_INTEGRITY_AUDIT=y @@ -5668,7 +5754,6 @@ CONFIG_INTEGRITY_AUDIT=y # CONFIG_DEFAULT_SECURITY_SELINUX is not set # CONFIG_DEFAULT_SECURITY_TOMOYO is not set # CONFIG_DEFAULT_SECURITY_APPARMOR is not set -# CONFIG_DEFAULT_SECURITY_YAMA is not set CONFIG_DEFAULT_SECURITY_DAC=y CONFIG_DEFAULT_SECURITY="" CONFIG_XOR_BLOCKS=y @@ -5703,6 +5788,7 @@ CONFIG_CRYPTO_MANAGER2=y CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y CONFIG_CRYPTO_GF128MUL=y CONFIG_CRYPTO_NULL=y +CONFIG_CRYPTO_NULL2=y CONFIG_CRYPTO_WORKQUEUE=y CONFIG_CRYPTO_CRYPTD=m # CONFIG_CRYPTO_MCRYPTD is not set @@ -5812,6 +5898,11 @@ CONFIG_CRYPTO_DEV_OMAP_SHAM=m CONFIG_CRYPTO_DEV_OMAP_AES=m # CONFIG_CRYPTO_DEV_OMAP_DES is not set # CONFIG_ASYMMETRIC_KEY_TYPE is not set + +# +# Certificates for signature checking +# +# CONFIG_SYSTEM_TRUSTED_KEYRING is not set CONFIG_ARM_CRYPTO=y CONFIG_CRYPTO_SHA1_ARM=m CONFIG_CRYPTO_SHA1_ARM_NEON=m @@ -5836,7 +5927,6 @@ CONFIG_GENERIC_STRNLEN_USER=y CONFIG_GENERIC_NET_UTILS=y CONFIG_GENERIC_PCI_IOMAP=y CONFIG_GENERIC_IO=y -CONFIG_PERCPU_RWSEM=y CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y CONFIG_CRC_CCITT=m CONFIG_CRC16=y @@ -5893,7 +5983,6 @@ CONFIG_GLOB=y CONFIG_NLATTR=y CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y CONFIG_LRU_CACHE=m -CONFIG_AVERAGE=y CONFIG_CORDIC=m CONFIG_DDR=y CONFIG_LIBFDT=y @@ -5902,5 +5991,6 @@ CONFIG_FONT_SUPPORT=y # CONFIG_FONTS is not set CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y +# CONFIG_SG_SPLIT is not set CONFIG_ARCH_HAS_SG_CHAIN=y CONFIG_VIRTUALIZATION=y diff --git a/patches/defconfig-bone b/patches/defconfig-bone index 54b5c7b0306faa509a3987f43698fa1fdad99bf6..4a4a59b20cd980dd9d215576669b2b3b5b4ea5d0 100644 --- a/patches/defconfig-bone +++ b/patches/defconfig-bone @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm 4.2.0-rc7 Kernel Configuration +# Linux/arm 4.3.0-rc1 Kernel Configuration # CONFIG_ARM=y CONFIG_ARM_HAS_SG_CHAIN=y @@ -16,6 +16,7 @@ CONFIG_LOCKDEP_SUPPORT=y CONFIG_TRACE_IRQFLAGS_SUPPORT=y CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_ARCH_HAS_BANDGAP=y +CONFIG_FIX_EARLYCON_MEM=y CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_NEED_DMA_MAP_STATE=y @@ -119,6 +120,7 @@ CONFIG_GENERIC_SCHED_CLOCK=y CONFIG_CGROUPS=y # CONFIG_CGROUP_DEBUG is not set CONFIG_CGROUP_FREEZER=y +CONFIG_CGROUP_PIDS=y CONFIG_CGROUP_DEVICE=y CONFIG_CPUSETS=y CONFIG_PROC_PID_CPUSET=y @@ -180,6 +182,8 @@ CONFIG_BPF_SYSCALL=y CONFIG_SHMEM=y CONFIG_AIO=y CONFIG_ADVISE_SYSCALLS=y +# CONFIG_USERFAULTFD is not set +CONFIG_MEMBARRIER=y CONFIG_EMBEDDED=y CONFIG_HAVE_PERF_EVENTS=y CONFIG_PERF_USE_VMALLOC=y @@ -194,13 +198,15 @@ CONFIG_VM_EVENT_COUNTERS=y CONFIG_SLAB=y # CONFIG_SLUB is not set # CONFIG_SLOB is not set -# CONFIG_SYSTEM_TRUSTED_KEYRING is not set +# CONFIG_SYSTEM_DATA_VERIFICATION is not set CONFIG_PROFILING=y CONFIG_TRACEPOINTS=y +CONFIG_KEXEC_CORE=y CONFIG_OPROFILE=y CONFIG_HAVE_OPROFILE=y CONFIG_KPROBES=y CONFIG_JUMP_LABEL=y +# CONFIG_STATIC_KEYS_SELFTEST is not set CONFIG_UPROBES=y # CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y @@ -513,6 +519,7 @@ CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y CONFIG_HAVE_ARCH_PFN_VALID=y CONFIG_HIGHMEM=y CONFIG_HIGHPTE=y +CONFIG_CPU_SW_DOMAIN_PAN=y CONFIG_HW_PERF_EVENTS=y CONFIG_ARCH_WANT_GENERAL_HUGETLB=y # CONFIG_ARM_MODULE_PLTS is not set @@ -546,6 +553,8 @@ CONFIG_ZBUD=m CONFIG_ZSMALLOC=m # CONFIG_PGTABLE_MAPPING is not set # CONFIG_ZSMALLOC_STAT is not set +# CONFIG_IDLE_PAGE_TRACKING is not set +CONFIG_FRAME_VECTOR=y CONFIG_FORCE_MAX_ZONEORDER=12 CONFIG_ALIGNMENT_TRAP=y # CONFIG_UACCESS_WITH_MEMCPY is not set @@ -633,6 +642,7 @@ CONFIG_COREDUMP=y # CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y +# CONFIG_SUSPEND_SKIP_SYNC is not set CONFIG_HIBERNATE_CALLBACKS=y CONFIG_HIBERNATION=y CONFIG_PM_STD_PARTITION="" @@ -699,7 +709,6 @@ CONFIG_NET_IPVTI=m CONFIG_NET_UDP_TUNNEL=m CONFIG_NET_FOU=m CONFIG_NET_FOU_IP_TUNNELS=y -# CONFIG_GENEVE_CORE is not set CONFIG_INET_AH=m CONFIG_INET_ESP=m CONFIG_INET_IPCOMP=m @@ -739,6 +748,7 @@ CONFIG_INET6_AH=m CONFIG_INET6_ESP=m CONFIG_INET6_IPCOMP=m CONFIG_IPV6_MIP6=y +CONFIG_IPV6_ILA=m CONFIG_INET6_XFRM_TUNNEL=m CONFIG_INET6_TUNNEL=m CONFIG_INET6_XFRM_MODE_TRANSPORT=m @@ -960,6 +970,7 @@ CONFIG_IP_VS_WRR=m CONFIG_IP_VS_LC=m CONFIG_IP_VS_WLC=m CONFIG_IP_VS_FO=m +CONFIG_IP_VS_OVF=m CONFIG_IP_VS_LBLC=m CONFIG_IP_VS_LBLCR=m CONFIG_IP_VS_DH=m @@ -988,7 +999,9 @@ CONFIG_NF_CONNTRACK_PROC_COMPAT=y CONFIG_NF_TABLES_IPV4=m CONFIG_NFT_CHAIN_ROUTE_IPV4=m CONFIG_NFT_REJECT_IPV4=m +CONFIG_NFT_DUP_IPV4=m CONFIG_NF_TABLES_ARP=m +CONFIG_NF_DUP_IPV4=m CONFIG_NF_LOG_ARP=m CONFIG_NF_LOG_IPV4=m CONFIG_NF_REJECT_IPV4=m @@ -1031,6 +1044,8 @@ CONFIG_NF_CONNTRACK_IPV6=m CONFIG_NF_TABLES_IPV6=m CONFIG_NFT_CHAIN_ROUTE_IPV6=m CONFIG_NFT_REJECT_IPV6=m +CONFIG_NFT_DUP_IPV6=m +CONFIG_NF_DUP_IPV6=m CONFIG_NF_REJECT_IPV6=m CONFIG_NF_LOG_IPV6=m CONFIG_NF_NAT_IPV6=m @@ -1242,12 +1257,14 @@ CONFIG_BATMAN_ADV_MCAST=y CONFIG_OPENVSWITCH=m CONFIG_OPENVSWITCH_GRE=m CONFIG_OPENVSWITCH_VXLAN=m +CONFIG_OPENVSWITCH_GENEVE=m # CONFIG_VSOCKETS is not set CONFIG_NETLINK_MMAP=y CONFIG_NETLINK_DIAG=m CONFIG_MPLS=y CONFIG_NET_MPLS_GSO=y CONFIG_MPLS_ROUTING=m +CONFIG_MPLS_IPTUNNEL=m CONFIG_HSR=m # CONFIG_NET_SWITCHDEV is not set CONFIG_CGROUP_NET_PRIO=y @@ -1313,6 +1330,7 @@ CONFIG_BT_BNEP=m CONFIG_BT_BNEP_MC_FILTER=y CONFIG_BT_BNEP_PROTO_FILTER=y CONFIG_BT_HIDP=m +CONFIG_BT_HS=y CONFIG_BT_LE=y CONFIG_BT_6LOWPAN=m # CONFIG_BT_SELFTEST is not set @@ -1324,6 +1342,7 @@ CONFIG_BT_DEBUGFS=y CONFIG_BT_INTEL=m CONFIG_BT_BCM=m CONFIG_BT_RTL=m +CONFIG_BT_QCA=m CONFIG_BT_HCIBTUSB=m CONFIG_BT_HCIBTUSB_BCM=y CONFIG_BT_HCIBTUSB_RTL=y @@ -1336,6 +1355,7 @@ CONFIG_BT_HCIUART_LL=y CONFIG_BT_HCIUART_3WIRE=y # CONFIG_BT_HCIUART_INTEL is not set CONFIG_BT_HCIUART_BCM=y +CONFIG_BT_HCIUART_QCA=y CONFIG_BT_HCIBCM203X=m CONFIG_BT_HCIBPA10X=m CONFIG_BT_HCIBFUSB=m @@ -1419,6 +1439,8 @@ CONFIG_NFC_MICROREAD_I2C=m # CONFIG_NFC_ST21NFCA is not set # CONFIG_NFC_ST_NCI is not set # CONFIG_NFC_NXP_NCI is not set +# CONFIG_NFC_S3FWRN5_I2C is not set +CONFIG_LWTUNNEL=y CONFIG_HAVE_BPF_JIT=y # @@ -1556,7 +1578,7 @@ CONFIG_MTD_NAND=y CONFIG_MTD_NAND_BCH=y CONFIG_MTD_NAND_ECC_BCH=y # CONFIG_MTD_SM_COMMON is not set -# CONFIG_MTD_NAND_DENALI is not set +# CONFIG_MTD_NAND_DENALI_DT is not set # CONFIG_MTD_NAND_GPIO is not set CONFIG_MTD_NAND_OMAP2=m # CONFIG_MTD_NAND_OMAP_BCH is not set @@ -1707,6 +1729,7 @@ CONFIG_BEAGLEBONE_PINMUX_HELPER=y # CONFIG_ECHO is not set # CONFIG_CXL_BASE is not set # CONFIG_CXL_KERNEL_API is not set +# CONFIG_CXL_EEH is not set # # SCSI device support @@ -1754,11 +1777,7 @@ CONFIG_LIBFC=m CONFIG_LIBFCOE=m # CONFIG_SCSI_DEBUG is not set CONFIG_SCSI_VIRTIO=m -CONFIG_SCSI_DH=m -CONFIG_SCSI_DH_RDAC=m -CONFIG_SCSI_DH_HP_SW=m -CONFIG_SCSI_DH_EMC=m -CONFIG_SCSI_DH_ALUA=m +# CONFIG_SCSI_DH is not set CONFIG_SCSI_OSD_INITIATOR=m CONFIG_SCSI_OSD_ULD=m CONFIG_SCSI_OSD_DPRINT_SENSE=1 @@ -1864,6 +1883,7 @@ CONFIG_MACVLAN=m CONFIG_MACVTAP=m CONFIG_IPVLAN=m CONFIG_VXLAN=m +CONFIG_GENEVE=m CONFIG_NETCONSOLE=m CONFIG_NETCONSOLE_DYNAMIC=y CONFIG_NETPOLL=y @@ -1873,6 +1893,7 @@ CONFIG_TUN=m CONFIG_VETH=m CONFIG_VIRTIO_NET=m CONFIG_NLMON=m +CONFIG_NET_VRF=m CONFIG_ATM_DRIVERS=y CONFIG_ATM_DUMMY=m # CONFIG_ATM_TCP is not set @@ -1936,6 +1957,8 @@ CONFIG_SMSC911X=m # CONFIG_SMSC911X_ARCH_HOOKS is not set CONFIG_NET_VENDOR_STMICRO=y # CONFIG_STMMAC_ETH is not set +CONFIG_NET_VENDOR_SYNOPSYS=y +# CONFIG_SYNOPSYS_DWC_ETH_QOS is not set CONFIG_NET_VENDOR_TI=y CONFIG_TI_DAVINCI_MDIO=y CONFIG_TI_DAVINCI_CPDMA=y @@ -1954,6 +1977,7 @@ CONFIG_PHYLIB=y # # MII PHY device drivers # +# CONFIG_AQUANTIA_PHY is not set CONFIG_AT803X_PHY=m CONFIG_AMD_PHY=m CONFIG_MARVELL_PHY=m @@ -1962,6 +1986,7 @@ CONFIG_QSEMI_PHY=m CONFIG_LXT_PHY=m CONFIG_CICADA_PHY=m CONFIG_VITESSE_PHY=m +# CONFIG_TERANETICS_PHY is not set CONFIG_SMSC_PHY=y CONFIG_BROADCOM_PHY=m # CONFIG_BCM7XXX_PHY is not set @@ -1973,6 +1998,7 @@ CONFIG_STE10XP=m CONFIG_LSI_ET1011C_PHY=m CONFIG_MICREL_PHY=y # CONFIG_DP83867_PHY is not set +# CONFIG_MICROCHIP_PHY is not set # CONFIG_FIXED_PHY is not set # CONFIG_MDIO_BITBANG is not set # CONFIG_MDIO_BUS_MUX_GPIO is not set @@ -2002,6 +2028,7 @@ CONFIG_USB_KAWETH=m CONFIG_USB_PEGASUS=m CONFIG_USB_RTL8150=m CONFIG_USB_RTL8152=m +CONFIG_USB_LAN78XX=m CONFIG_USB_USBNET=m CONFIG_USB_NET_AX8817X=m CONFIG_USB_NET_AX88179_178A=m @@ -2295,7 +2322,7 @@ CONFIG_TABLET_USB_HANWANG=m CONFIG_TABLET_USB_KBTAB=m CONFIG_TABLET_SERIAL_WACOM4=m CONFIG_INPUT_TOUCHSCREEN=y -CONFIG_OF_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_PROPERTIES=y CONFIG_TOUCHSCREEN_ADS7846=m CONFIG_TOUCHSCREEN_AD7877=m CONFIG_TOUCHSCREEN_AD7879=m @@ -2330,6 +2357,7 @@ CONFIG_TOUCHSCREEN_MAX11801=m CONFIG_TOUCHSCREEN_MCS5000=m CONFIG_TOUCHSCREEN_MMS114=m CONFIG_TOUCHSCREEN_MTOUCH=m +# CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set CONFIG_TOUCHSCREEN_INEXIO=m CONFIG_TOUCHSCREEN_MK712=m CONFIG_TOUCHSCREEN_PENMOUNT=m @@ -2372,6 +2400,7 @@ CONFIG_TOUCHSCREEN_SUR40=m CONFIG_TOUCHSCREEN_SX8654=m CONFIG_TOUCHSCREEN_TPS6507X=m CONFIG_TOUCHSCREEN_ZFORCE=m +# CONFIG_TOUCHSCREEN_COLIBRI_VF50 is not set CONFIG_INPUT_MISC=y CONFIG_INPUT_AD714X=m CONFIG_INPUT_AD714X_I2C=m @@ -2474,6 +2503,7 @@ CONFIG_SERIAL_8250_OMAP_TTYO_FIXUP=y # CONFIG_SERIAL_KGDB_NMI is not set # CONFIG_SERIAL_MAX3100 is not set # CONFIG_SERIAL_MAX310X is not set +# CONFIG_SERIAL_UARTLITE is not set CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y CONFIG_CONSOLE_POLL=y @@ -2529,6 +2559,7 @@ CONFIG_I2C_ARB_GPIO_CHALLENGE=m # CONFIG_I2C_MUX_PCA9541 is not set CONFIG_I2C_MUX_PCA954x=y # CONFIG_I2C_MUX_PINCTRL is not set +# CONFIG_I2C_MUX_REG is not set CONFIG_I2C_HELPER_AUTO=y CONFIG_I2C_ALGOBIT=y CONFIG_I2C_ALGOPCA=m @@ -2542,6 +2573,7 @@ CONFIG_I2C_ALGOPCA=m # # CONFIG_I2C_CBUS_GPIO is not set # CONFIG_I2C_DESIGNWARE_PLATFORM is not set +# CONFIG_I2C_EMEV2 is not set CONFIG_I2C_GPIO=y CONFIG_I2C_OCORES=m CONFIG_I2C_OMAP=y @@ -2708,6 +2740,7 @@ CONFIG_GPIO_74X164=m CONFIG_GPIO_MAX7301=m CONFIG_GPIO_MCP23S08=m CONFIG_GPIO_MC33880=m +# CONFIG_GPIO_ZX is not set # # USB GPIO expanders @@ -2889,6 +2922,7 @@ CONFIG_SENSORS_LM25066=m CONFIG_SENSORS_LTC2978=m CONFIG_SENSORS_LTC2978_REGULATOR=y CONFIG_SENSORS_MAX16064=m +CONFIG_SENSORS_MAX20751=m CONFIG_SENSORS_MAX34440=m CONFIG_SENSORS_MAX8688=m CONFIG_SENSORS_TPS40422=m @@ -3025,6 +3059,7 @@ CONFIG_PMIC_DA9052=y CONFIG_MFD_DA9052_SPI=y CONFIG_MFD_DA9052_I2C=y CONFIG_MFD_DA9055=y +# CONFIG_MFD_DA9062 is not set CONFIG_MFD_DA9063=y # CONFIG_MFD_DA9150 is not set CONFIG_MFD_DLN2=y @@ -3137,6 +3172,7 @@ CONFIG_REGULATOR_GPIO=y CONFIG_REGULATOR_MC13XXX_CORE=m CONFIG_REGULATOR_MC13783=m CONFIG_REGULATOR_MC13892=m +CONFIG_REGULATOR_MT6311=m CONFIG_REGULATOR_PALMAS=y CONFIG_REGULATOR_PBIAS=y CONFIG_REGULATOR_PFUZE100=y @@ -3382,6 +3418,8 @@ CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m CONFIG_V4L_TEST_DRIVERS=y CONFIG_VIDEO_VIVID=m # CONFIG_VIDEO_VIM2M is not set +CONFIG_DVB_PLATFORM_DRIVERS=y +CONFIG_DVB_C8SECTPFE=m # # Supported MMC/SDIO adapters @@ -3588,6 +3626,7 @@ CONFIG_DVB_DIB7000P=m CONFIG_DVB_TDA10048=m CONFIG_DVB_AF9013=m CONFIG_DVB_EC100=m +CONFIG_DVB_STV0367=m CONFIG_DVB_CXD2820R=m CONFIG_DVB_RTL2830=m CONFIG_DVB_RTL2832=m @@ -3658,13 +3697,10 @@ CONFIG_DVB_AF9033=m # # Graphics support # - -# -# Direct Rendering Manager -# CONFIG_DRM=y -CONFIG_DRM_KMS_HELPER=m +CONFIG_DRM_KMS_HELPER=y CONFIG_DRM_KMS_FB_HELPER=y +CONFIG_DRM_FBDEV_EMULATION=y CONFIG_DRM_LOAD_EDID_FIRMWARE=y CONFIG_DRM_GEM_CMA_HELPER=y CONFIG_DRM_KMS_CMA_HELPER=y @@ -3676,8 +3712,6 @@ CONFIG_DRM_KMS_CMA_HELPER=y # CONFIG_DRM_I2C_CH7006 is not set # CONFIG_DRM_I2C_SIL164 is not set CONFIG_DRM_I2C_NXP_TDA998X=m -# CONFIG_DRM_PTN3460 is not set -# CONFIG_DRM_PS8622 is not set # CONFIG_DRM_VGEM is not set # CONFIG_DRM_EXYNOS is not set CONFIG_DRM_UDL=m @@ -3685,6 +3719,14 @@ CONFIG_DRM_UDL=m CONFIG_DRM_TILCDC=m CONFIG_DRM_TILCDC_SLAVE_COMPAT=y # CONFIG_DRM_VIRTIO_GPU is not set +# CONFIG_DRM_FSL_DCU is not set +CONFIG_DRM_BRIDGE=y + +# +# Display Interface Bridges +# +# CONFIG_DRM_NXP_PTN3460 is not set +# CONFIG_DRM_PARADE_PS8622 is not set # CONFIG_DRM_STI is not set # @@ -3733,6 +3775,7 @@ CONFIG_BACKLIGHT_CLASS_DEVICE=y # CONFIG_BACKLIGHT_GENERIC is not set CONFIG_BACKLIGHT_PWM=m # CONFIG_BACKLIGHT_DA9052 is not set +# CONFIG_BACKLIGHT_PM8941_WLED is not set # CONFIG_BACKLIGHT_ADP8860 is not set # CONFIG_BACKLIGHT_ADP8870 is not set # CONFIG_BACKLIGHT_LM3630A is not set @@ -3848,7 +3891,6 @@ CONFIG_SND_OMAP_SOC_MCBSP=m CONFIG_SND_OMAP_SOC_HDMI_AUDIO=m CONFIG_SND_OMAP_SOC_RX51=m CONFIG_SND_OMAP_SOC_OMAP_TWL4030=m -# CONFIG_SND_SOC_QCOM is not set # CONFIG_SND_SOC_XTFPGA_I2S is not set CONFIG_SND_SOC_I2C_AND_SPI=m @@ -3872,8 +3914,10 @@ CONFIG_SND_SOC_I2C_AND_SPI=m # CONFIG_SND_SOC_CS4271_I2C is not set # CONFIG_SND_SOC_CS4271_SPI is not set # CONFIG_SND_SOC_CS42XX8_I2C is not set +# CONFIG_SND_SOC_CS4349 is not set CONFIG_SND_SOC_HDMI_CODEC=m # CONFIG_SND_SOC_ES8328 is not set +# CONFIG_SND_SOC_GTM601 is not set # CONFIG_SND_SOC_PCM1681 is not set # CONFIG_SND_SOC_PCM1792A is not set # CONFIG_SND_SOC_PCM512x_I2C is not set @@ -3888,6 +3932,7 @@ CONFIG_SND_SOC_SGTL5000=m # CONFIG_SND_SOC_SSM4567 is not set # CONFIG_SND_SOC_STA32X is not set # CONFIG_SND_SOC_STA350 is not set +# CONFIG_SND_SOC_STI_SAS is not set # CONFIG_SND_SOC_TAS2552 is not set # CONFIG_SND_SOC_TAS5086 is not set # CONFIG_SND_SOC_TAS571X is not set @@ -3952,6 +3997,7 @@ CONFIG_HID_EMS_FF=m CONFIG_HID_ELECOM=m CONFIG_HID_ELO=m CONFIG_HID_EZKEY=y +CONFIG_HID_GEMBIRD=m CONFIG_HID_HOLTEK=m CONFIG_HOLTEK_FF=y CONFIG_HID_GT683R=m @@ -4130,7 +4176,10 @@ CONFIG_USB_MUSB_DUAL_ROLE=y # CONFIG_USB_MUSB_AM35X is not set CONFIG_USB_MUSB_DSPS=y CONFIG_USB_MUSB_AM335X_CHILD=y -# CONFIG_USB_TI_CPPI41_DMA is not set + +# +# MUSB DMA mode +# CONFIG_MUSB_PIO_ONLY=y CONFIG_USB_DWC3=y # CONFIG_USB_DWC3_HOST is not set @@ -4141,11 +4190,6 @@ CONFIG_USB_DWC3_DUAL_ROLE=y # Platform Glue Driver Support # CONFIG_USB_DWC3_OMAP=m - -# -# Debugging features -# -# CONFIG_USB_DWC3_DEBUG is not set # CONFIG_USB_DWC2 is not set CONFIG_USB_CHIPIDEA=y CONFIG_USB_CHIPIDEA_OF=y @@ -4375,6 +4419,7 @@ CONFIG_SDIO_UART=m CONFIG_MMC_SDHCI=y CONFIG_MMC_SDHCI_PLTFM=y # CONFIG_MMC_SDHCI_OF_ARASAN is not set +# CONFIG_MMC_SDHCI_OF_AT91 is not set # CONFIG_MMC_SDHCI_F_SDH30 is not set CONFIG_MMC_OMAP=y CONFIG_MMC_OMAP_HS=y @@ -4428,7 +4473,6 @@ CONFIG_LEDS_LM355x=m # # CONFIG_LEDS_BLINKM is not set # CONFIG_LEDS_SYSCON is not set -# CONFIG_LEDS_PM8941_WLED is not set # # LED Triggers @@ -4551,6 +4595,7 @@ CONFIG_RTC_DRV_MSM6242=m CONFIG_RTC_DRV_BQ4802=m CONFIG_RTC_DRV_RP5C01=m CONFIG_RTC_DRV_V3020=m +# CONFIG_RTC_DRV_ZYNQMP is not set # # on-CPU RTC drivers @@ -4569,16 +4614,17 @@ CONFIG_DMADEVICES=y # # DMA Devices # -CONFIG_DW_DMAC_CORE=y -CONFIG_DW_DMAC=y -CONFIG_TI_EDMA=y -CONFIG_DMA_OMAP=y -CONFIG_TI_CPPI41=y -CONFIG_FSL_EDMA=y -# CONFIG_NBPFAXI_DMA is not set CONFIG_DMA_ENGINE=y CONFIG_DMA_VIRTUAL_CHANNELS=y CONFIG_DMA_OF=y +CONFIG_DMA_OMAP=y +CONFIG_FSL_EDMA=y +# CONFIG_IDMA64 is not set +# CONFIG_NBPFAXI_DMA is not set +CONFIG_TI_CPPI41=y +CONFIG_TI_EDMA=y +CONFIG_DW_DMAC_CORE=y +CONFIG_DW_DMAC=y # # DMA Clients @@ -4746,7 +4792,6 @@ CONFIG_ION=y # CONFIG_ION_TEST is not set # CONFIG_ION_DUMMY is not set # CONFIG_STAGING_BOARD is not set -# CONFIG_USB_WPAN_HCD is not set # CONFIG_WIMAX_GDM72XX is not set # CONFIG_LTE_GDM724X is not set # CONFIG_MTD_SPINAND_MT29F is not set @@ -4754,7 +4799,39 @@ CONFIG_ION=y # CONFIG_DGAP is not set # CONFIG_GS_FPGABOOT is not set # CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set -# CONFIG_FB_TFT is not set +CONFIG_FB_TFT=m +CONFIG_FB_TFT_AGM1264K_FL=m +CONFIG_FB_TFT_BD663474=m +CONFIG_FB_TFT_HX8340BN=m +CONFIG_FB_TFT_HX8347D=m +CONFIG_FB_TFT_HX8353D=m +CONFIG_FB_TFT_HX8357D=m +CONFIG_FB_TFT_ILI9163=m +CONFIG_FB_TFT_ILI9320=m +CONFIG_FB_TFT_ILI9325=m +CONFIG_FB_TFT_ILI9340=m +CONFIG_FB_TFT_ILI9341=m +CONFIG_FB_TFT_ILI9481=m +CONFIG_FB_TFT_ILI9486=m +CONFIG_FB_TFT_PCD8544=m +CONFIG_FB_TFT_RA8875=m +CONFIG_FB_TFT_S6D02A1=m +CONFIG_FB_TFT_S6D1121=m +CONFIG_FB_TFT_SSD1289=m +CONFIG_FB_TFT_SSD1306=m +CONFIG_FB_TFT_SSD1331=m +CONFIG_FB_TFT_SSD1351=m +CONFIG_FB_TFT_ST7735R=m +CONFIG_FB_TFT_TINYLCD=m +CONFIG_FB_TFT_TLS8204=m +CONFIG_FB_TFT_UC1611=m +CONFIG_FB_TFT_UC1701=m +CONFIG_FB_TFT_UPD161704=m +CONFIG_FB_TFT_WATTEROTT=m +CONFIG_FB_FLEX=m +CONFIG_FB_TFT_FBTFT_DEVICE=m +# CONFIG_MOST is not set +# CONFIG_DRM_ETNAVIV is not set # CONFIG_CHROME_PLATFORMS is not set CONFIG_CLKDEV_LOOKUP=y CONFIG_HAVE_CLK_PREPARE=y @@ -4874,8 +4951,8 @@ CONFIG_IIO_ST_ACCEL_3AXIS=m CONFIG_IIO_ST_ACCEL_I2C_3AXIS=m CONFIG_IIO_ST_ACCEL_SPI_3AXIS=m CONFIG_KXSD9=m -CONFIG_MMA8452=m CONFIG_KXCJK1013=m +CONFIG_MMA8452=m CONFIG_MMA9551_CORE=m CONFIG_MMA9551=m CONFIG_MMA9553=m @@ -5014,7 +5091,10 @@ CONFIG_ISL29125=m CONFIG_HID_SENSOR_ALS=m CONFIG_HID_SENSOR_PROX=m CONFIG_JSA1212=m +CONFIG_RPR0521=m CONFIG_LTR501=m +CONFIG_OPT3001=m +CONFIG_PA12203001=m # CONFIG_STK3310 is not set CONFIG_TCS3414=m CONFIG_TCS3472=m @@ -5106,6 +5186,12 @@ CONFIG_TI_PIPE3=y # CONFIG_POWERCAP is not set # CONFIG_MCB is not set +# +# Performance monitor support +# +CONFIG_ARM_PMU=y +# CONFIG_RAS is not set + # # Android # @@ -5117,6 +5203,7 @@ CONFIG_NVMEM=y # # Firmware Drivers # +CONFIG_ARM_PSCI_FW=y # CONFIG_FIRMWARE_MEMMAP is not set # @@ -5126,7 +5213,7 @@ CONFIG_DCACHE_WORD_ACCESS=y # CONFIG_EXT2_FS is not set # CONFIG_EXT3_FS is not set CONFIG_EXT4_FS=y -CONFIG_EXT4_USE_FOR_EXT23=y +CONFIG_EXT4_USE_FOR_EXT2=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y CONFIG_EXT4_ENCRYPTION=y @@ -5603,6 +5690,7 @@ CONFIG_FTRACE_MCOUNT_RECORD=y # CONFIG_TEST_FIRMWARE is not set # CONFIG_TEST_UDELAY is not set # CONFIG_MEMTEST is not set +# CONFIG_TEST_STATIC_KEYS is not set # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y CONFIG_KGDB=y @@ -5659,7 +5747,6 @@ CONFIG_SECURITY_APPARMOR=y CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1 CONFIG_SECURITY_APPARMOR_HASH=y CONFIG_SECURITY_YAMA=y -CONFIG_SECURITY_YAMA_STACKED=y CONFIG_INTEGRITY=y # CONFIG_INTEGRITY_SIGNATURE is not set CONFIG_INTEGRITY_AUDIT=y @@ -5668,7 +5755,6 @@ CONFIG_INTEGRITY_AUDIT=y # CONFIG_DEFAULT_SECURITY_SELINUX is not set # CONFIG_DEFAULT_SECURITY_TOMOYO is not set # CONFIG_DEFAULT_SECURITY_APPARMOR is not set -# CONFIG_DEFAULT_SECURITY_YAMA is not set CONFIG_DEFAULT_SECURITY_DAC=y CONFIG_DEFAULT_SECURITY="" CONFIG_XOR_BLOCKS=y @@ -5703,6 +5789,7 @@ CONFIG_CRYPTO_MANAGER2=y CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y CONFIG_CRYPTO_GF128MUL=y CONFIG_CRYPTO_NULL=y +CONFIG_CRYPTO_NULL2=y CONFIG_CRYPTO_WORKQUEUE=y CONFIG_CRYPTO_CRYPTD=m # CONFIG_CRYPTO_MCRYPTD is not set @@ -5812,6 +5899,11 @@ CONFIG_CRYPTO_DEV_OMAP_SHAM=m CONFIG_CRYPTO_DEV_OMAP_AES=m # CONFIG_CRYPTO_DEV_OMAP_DES is not set # CONFIG_ASYMMETRIC_KEY_TYPE is not set + +# +# Certificates for signature checking +# +# CONFIG_SYSTEM_TRUSTED_KEYRING is not set CONFIG_ARM_CRYPTO=y CONFIG_CRYPTO_SHA1_ARM=m CONFIG_CRYPTO_SHA1_ARM_NEON=m @@ -5836,7 +5928,6 @@ CONFIG_GENERIC_STRNLEN_USER=y CONFIG_GENERIC_NET_UTILS=y CONFIG_GENERIC_PCI_IOMAP=y CONFIG_GENERIC_IO=y -CONFIG_PERCPU_RWSEM=y CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y CONFIG_CRC_CCITT=m CONFIG_CRC16=y @@ -5893,7 +5984,6 @@ CONFIG_GLOB=y CONFIG_NLATTR=y CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y CONFIG_LRU_CACHE=m -CONFIG_AVERAGE=y CONFIG_CORDIC=m CONFIG_DDR=y CONFIG_LIBFDT=y @@ -5902,5 +5992,6 @@ CONFIG_FONT_SUPPORT=y # CONFIG_FONTS is not set CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y +# CONFIG_SG_SPLIT is not set CONFIG_ARCH_HAS_SG_CHAIN=y CONFIG_VIRTUALIZATION=y diff --git a/patches/fixes/0001-ARM-move-heavy-barrier-support-out-of-line.patch b/patches/fixes/0001-ARM-move-heavy-barrier-support-out-of-line.patch deleted file mode 100644 index d2e4fc9a6845afbe089b1624d63acbb00bf8baf4..0000000000000000000000000000000000000000 --- a/patches/fixes/0001-ARM-move-heavy-barrier-support-out-of-line.patch +++ /dev/null @@ -1,201 +0,0 @@ -From 3c08b51b86e75cbe5b1de05ca0c875b3f885b7ea Mon Sep 17 00:00:00 2001 -From: Russell King <rmk+kernel@arm.linux.org.uk> -Date: Wed, 15 Jul 2015 18:47:18 +0100 -Subject: [PATCH 1/4] ARM: move heavy barrier support out of line - -The existing memory barrier macro causes a significant amount of code -to be inserted inline at every call site. For example, in -gpio_set_irq_type(), we have this for mb(): - -c0344c08: f57ff04e dsb st -c0344c0c: e59f8190 ldr r8, [pc, #400] ; c0344da4 <gpio_set_irq_type+0x230> -c0344c10: e3590004 cmp r9, #4 -c0344c14: e5983014 ldr r3, [r8, #20] -c0344c18: 0a000054 beq c0344d70 <gpio_set_irq_type+0x1fc> -c0344c1c: e3530000 cmp r3, #0 -c0344c20: 0a000004 beq c0344c38 <gpio_set_irq_type+0xc4> -c0344c24: e50b2030 str r2, [fp, #-48] ; 0xffffffd0 -c0344c28: e50bc034 str ip, [fp, #-52] ; 0xffffffcc -c0344c2c: e12fff33 blx r3 -c0344c30: e51bc034 ldr ip, [fp, #-52] ; 0xffffffcc -c0344c34: e51b2030 ldr r2, [fp, #-48] ; 0xffffffd0 -c0344c38: e5963004 ldr r3, [r6, #4] - -Moving the outer_cache_sync() call out of line reduces the impact of -the barrier: - -c0344968: f57ff04e dsb st -c034496c: e35a0004 cmp sl, #4 -c0344970: e50b2030 str r2, [fp, #-48] ; 0xffffffd0 -c0344974: 0a000044 beq c0344a8c <gpio_set_irq_type+0x1b8> -c0344978: ebf363dd bl c001d8f4 <arm_heavy_mb> -c034497c: e5953004 ldr r3, [r5, #4] - -This should reduce the cache footprint of this code. Overall, this -results in a reduction of around 20K in the kernel size: - - text data bss dec hex filename -10773970 667392 10369656 21811018 14ccf4a ../build/imx6/vmlinux-old -10754219 667392 10369656 21791267 14c8223 ../build/imx6/vmlinux-new - -Another advantage to this approach is that we can finally resolve the -issue of SoCs which have their own memory barrier requirements within -multiplatform kernels (such as OMAP.) Here, the bus interconnects -need additional handling to ensure that writes become visible in the -correct order (eg, between dma_map() operations, writes to DMA -coherent memory, and MMIO accesses.) - -Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> ---- - arch/arm/include/asm/barrier.h | 12 +++++++++--- - arch/arm/include/asm/outercache.h | 17 ----------------- - arch/arm/kernel/irq.c | 1 + - arch/arm/mach-prima2/pm.c | 1 + - arch/arm/mach-ux500/cache-l2x0.c | 1 + - arch/arm/mm/Kconfig | 4 ++++ - arch/arm/mm/flush.c | 11 +++++++++++ - 7 files changed, 27 insertions(+), 20 deletions(-) - -diff --git a/arch/arm/include/asm/barrier.h b/arch/arm/include/asm/barrier.h -index 6c2327e..fea99b0 100644 ---- a/arch/arm/include/asm/barrier.h -+++ b/arch/arm/include/asm/barrier.h -@@ -2,7 +2,6 @@ - #define __ASM_BARRIER_H - - #ifndef __ASSEMBLY__ --#include <asm/outercache.h> - - #define nop() __asm__ __volatile__("mov\tr0,r0\t@ nop\n\t"); - -@@ -37,12 +36,19 @@ - #define dmb(x) __asm__ __volatile__ ("" : : : "memory") - #endif - -+#ifdef CONFIG_ARM_HEAVY_MB -+extern void arm_heavy_mb(void); -+#define __arm_heavy_mb(x...) do { dsb(x); arm_heavy_mb(); } while (0) -+#else -+#define __arm_heavy_mb(x...) dsb(x) -+#endif -+ - #ifdef CONFIG_ARCH_HAS_BARRIERS - #include <mach/barriers.h> - #elif defined(CONFIG_ARM_DMA_MEM_BUFFERABLE) || defined(CONFIG_SMP) --#define mb() do { dsb(); outer_sync(); } while (0) -+#define mb() __arm_heavy_mb() - #define rmb() dsb() --#define wmb() do { dsb(st); outer_sync(); } while (0) -+#define wmb() __arm_heavy_mb(st) - #define dma_rmb() dmb(osh) - #define dma_wmb() dmb(oshst) - #else -diff --git a/arch/arm/include/asm/outercache.h b/arch/arm/include/asm/outercache.h -index 563b92f..c2bf24f 100644 ---- a/arch/arm/include/asm/outercache.h -+++ b/arch/arm/include/asm/outercache.h -@@ -129,21 +129,4 @@ static inline void outer_resume(void) { } - - #endif - --#ifdef CONFIG_OUTER_CACHE_SYNC --/** -- * outer_sync - perform a sync point for outer cache -- * -- * Ensure that all outer cache operations are complete and any store -- * buffers are drained. -- */ --static inline void outer_sync(void) --{ -- if (outer_cache.sync) -- outer_cache.sync(); --} --#else --static inline void outer_sync(void) --{ } --#endif -- - #endif /* __ASM_OUTERCACHE_H */ -diff --git a/arch/arm/kernel/irq.c b/arch/arm/kernel/irq.c -index 350f188..b96c8ed 100644 ---- a/arch/arm/kernel/irq.c -+++ b/arch/arm/kernel/irq.c -@@ -39,6 +39,7 @@ - #include <linux/export.h> - - #include <asm/hardware/cache-l2x0.h> -+#include <asm/outercache.h> - #include <asm/exception.h> - #include <asm/mach/arch.h> - #include <asm/mach/irq.h> -diff --git a/arch/arm/mach-prima2/pm.c b/arch/arm/mach-prima2/pm.c -index d99d08e..83e94c9 100644 ---- a/arch/arm/mach-prima2/pm.c -+++ b/arch/arm/mach-prima2/pm.c -@@ -16,6 +16,7 @@ - #include <linux/of_platform.h> - #include <linux/io.h> - #include <linux/rtc/sirfsoc_rtciobrg.h> -+#include <asm/outercache.h> - #include <asm/suspend.h> - #include <asm/hardware/cache-l2x0.h> - -diff --git a/arch/arm/mach-ux500/cache-l2x0.c b/arch/arm/mach-ux500/cache-l2x0.c -index 7557bed..780bd13 100644 ---- a/arch/arm/mach-ux500/cache-l2x0.c -+++ b/arch/arm/mach-ux500/cache-l2x0.c -@@ -8,6 +8,7 @@ - #include <linux/of.h> - #include <linux/of_address.h> - -+#include <asm/outercache.h> - #include <asm/hardware/cache-l2x0.h> - - #include "db8500-regs.h" -diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig -index 7c6b976..df7537f 100644 ---- a/arch/arm/mm/Kconfig -+++ b/arch/arm/mm/Kconfig -@@ -883,6 +883,7 @@ config OUTER_CACHE - - config OUTER_CACHE_SYNC - bool -+ select ARM_HEAVY_MB - help - The outer cache has a outer_cache_fns.sync function pointer - that can be used to drain the write buffer of the outer cache. -@@ -1031,6 +1032,9 @@ config ARCH_HAS_BARRIERS - This option allows the use of custom mandatory barriers - included via the mach/barriers.h file. - -+config ARM_HEAVY_MB -+ bool -+ - config ARCH_SUPPORTS_BIG_ENDIAN - bool - help -diff --git a/arch/arm/mm/flush.c b/arch/arm/mm/flush.c -index 34b66af..ce6c296 100644 ---- a/arch/arm/mm/flush.c -+++ b/arch/arm/mm/flush.c -@@ -21,6 +21,17 @@ - - #include "mm.h" - -+#ifdef CONFIG_ARM_HEAVY_MB -+void arm_heavy_mb(void) -+{ -+#ifdef CONFIG_OUTER_CACHE_SYNC -+ if (outer_cache.sync) -+ outer_cache.sync(); -+#endif -+} -+EXPORT_SYMBOL(arm_heavy_mb); -+#endif -+ - #ifdef CONFIG_CPU_CACHE_VIPT - - static void flush_pfn_alias(unsigned long pfn, unsigned long vaddr) --- -2.5.0 - diff --git a/patches/fixes/0002-ARM-add-soc-memory-barrier-extension.patch b/patches/fixes/0002-ARM-add-soc-memory-barrier-extension.patch deleted file mode 100644 index 36a8b89d4758ef9e8796f38f4cff0c7ef9711979..0000000000000000000000000000000000000000 --- a/patches/fixes/0002-ARM-add-soc-memory-barrier-extension.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 99bb95f29b825aa884ffceea493c13e60437cec0 Mon Sep 17 00:00:00 2001 -From: Russell King <rmk+kernel@arm.linux.org.uk> -Date: Wed, 15 Jul 2015 18:47:23 +0100 -Subject: [PATCH 2/4] ARM: add soc memory barrier extension - -Add an extension to the heavy barrier code to allow a SoC specific -memory barrier function to be provided. This is needed for platforms -where the interconnect has weak ordering, and thus needs assistance -to ensure that memory writes are properly visible in the correct order -to other parts of the system. - -Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> ---- - arch/arm/include/asm/barrier.h | 1 + - arch/arm/mm/flush.c | 4 ++++ - 2 files changed, 5 insertions(+) - -diff --git a/arch/arm/include/asm/barrier.h b/arch/arm/include/asm/barrier.h -index fea99b0..3d8f1d3 100644 ---- a/arch/arm/include/asm/barrier.h -+++ b/arch/arm/include/asm/barrier.h -@@ -37,6 +37,7 @@ - #endif - - #ifdef CONFIG_ARM_HEAVY_MB -+extern void (*soc_mb)(void); - extern void arm_heavy_mb(void); - #define __arm_heavy_mb(x...) do { dsb(x); arm_heavy_mb(); } while (0) - #else -diff --git a/arch/arm/mm/flush.c b/arch/arm/mm/flush.c -index ce6c296..1ec8e75 100644 ---- a/arch/arm/mm/flush.c -+++ b/arch/arm/mm/flush.c -@@ -22,12 +22,16 @@ - #include "mm.h" - - #ifdef CONFIG_ARM_HEAVY_MB -+void (*soc_mb)(void); -+ - void arm_heavy_mb(void) - { - #ifdef CONFIG_OUTER_CACHE_SYNC - if (outer_cache.sync) - outer_cache.sync(); - #endif -+ if (soc_mb) -+ soc_mb(); - } - EXPORT_SYMBOL(arm_heavy_mb); - #endif --- -2.5.0 - diff --git a/patches/fixes/0003-Revert-ARM-OMAP4-remove-dead-kconfig-option-OMAP4_ER.patch b/patches/fixes/0003-Revert-ARM-OMAP4-remove-dead-kconfig-option-OMAP4_ER.patch deleted file mode 100644 index 8c52e653b96d1e1f526b22b80932088903ccbfd6..0000000000000000000000000000000000000000 --- a/patches/fixes/0003-Revert-ARM-OMAP4-remove-dead-kconfig-option-OMAP4_ER.patch +++ /dev/null @@ -1,217 +0,0 @@ -From 7964e4a3f703fd8080615b670bbdc37fdf514096 Mon Sep 17 00:00:00 2001 -From: Russell King <rmk+kernel@arm.linux.org.uk> -Date: Wed, 15 Jul 2015 18:47:29 +0100 -Subject: [PATCH 3/4] Revert "ARM: OMAP4: remove dead kconfig option - OMAP4_ERRATA_I688" - -This reverts commit 606da4826b89b044b51e3a84958b802204cfe4c7. - -We actually need this code for proper behaviour of OMAP4, and it needs -fixing a different way other than just removing the code. Disabling -code which is necessary in the hopes of persuing multiplatform kernels -is a stupid approach. - -Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> ---- - arch/arm/mach-omap2/Kconfig | 21 ++++++++++++ - arch/arm/mach-omap2/common.c | 1 + - arch/arm/mach-omap2/common.h | 3 ++ - arch/arm/mach-omap2/io.c | 2 ++ - arch/arm/mach-omap2/omap-secure.h | 7 ++++ - arch/arm/mach-omap2/omap4-common.c | 69 ++++++++++++++++++++++++++++++++++++++ - arch/arm/mach-omap2/sleep44xx.S | 2 ++ - 7 files changed, 105 insertions(+) - -diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig -index 4a023e8..0a58e20 100644 ---- a/arch/arm/mach-omap2/Kconfig -+++ b/arch/arm/mach-omap2/Kconfig -@@ -241,6 +241,27 @@ config OMAP3_SDRC_AC_TIMING - wish to say no. Selecting yes without understanding what is - going on could result in system crashes; - -+config OMAP4_ERRATA_I688 -+ bool "OMAP4 errata: Async Bridge Corruption" -+ depends on (ARCH_OMAP4 || SOC_OMAP5) && !ARCH_MULTIPLATFORM -+ select ARCH_HAS_BARRIERS -+ help -+ If a data is stalled inside asynchronous bridge because of back -+ pressure, it may be accepted multiple times, creating pointer -+ misalignment that will corrupt next transfers on that data path -+ until next reset of the system (No recovery procedure once the -+ issue is hit, the path remains consistently broken). Async bridge -+ can be found on path between MPU to EMIF and MPU to L3 interconnect. -+ This situation can happen only when the idle is initiated by a -+ Master Request Disconnection (which is trigged by software when -+ executing WFI on CPU). -+ The work-around for this errata needs all the initiators connected -+ through async bridge must ensure that data path is properly drained -+ before issuing WFI. This condition will be met if one Strongly ordered -+ access is performed to the target right before executing the WFI. -+ In MPU case, L3 T2ASYNC FIFO and DDR T2ASYNC FIFO needs to be drained. -+ IO barrier ensure that there is no synchronisation loss on initiators -+ operating on both interconnect port simultaneously. - endmenu - - endif -diff --git a/arch/arm/mach-omap2/common.c b/arch/arm/mach-omap2/common.c -index eae6a0e..484cdad 100644 ---- a/arch/arm/mach-omap2/common.c -+++ b/arch/arm/mach-omap2/common.c -@@ -30,4 +30,5 @@ int __weak omap_secure_ram_reserve_memblock(void) - void __init omap_reserve(void) - { - omap_secure_ram_reserve_memblock(); -+ omap_barrier_reserve_memblock(); - } -diff --git a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h -index cf3cf22..46e2458 100644 ---- a/arch/arm/mach-omap2/common.h -+++ b/arch/arm/mach-omap2/common.h -@@ -200,6 +200,9 @@ void __init omap4_map_io(void); - void __init omap5_map_io(void); - void __init ti81xx_map_io(void); - -+/* omap_barriers_init() is OMAP4 only */ -+void omap_barriers_init(void); -+ - /** - * omap_test_timeout - busy-loop, testing a condition - * @cond: condition to test until it evaluates to true -diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c -index 9f13e95..1a89999 100644 ---- a/arch/arm/mach-omap2/io.c -+++ b/arch/arm/mach-omap2/io.c -@@ -307,6 +307,7 @@ void __init am33xx_map_io(void) - void __init omap4_map_io(void) - { - iotable_init(omap44xx_io_desc, ARRAY_SIZE(omap44xx_io_desc)); -+ omap_barriers_init(); - } - #endif - -@@ -314,6 +315,7 @@ void __init omap4_map_io(void) - void __init omap5_map_io(void) - { - iotable_init(omap54xx_io_desc, ARRAY_SIZE(omap54xx_io_desc)); -+ omap_barriers_init(); - } - #endif - /* -diff --git a/arch/arm/mach-omap2/omap-secure.h b/arch/arm/mach-omap2/omap-secure.h -index af2851f..dec2b05 100644 ---- a/arch/arm/mach-omap2/omap-secure.h -+++ b/arch/arm/mach-omap2/omap-secure.h -@@ -70,6 +70,13 @@ extern u32 rx51_secure_dispatcher(u32 idx, u32 process, u32 flag, u32 nargs, - extern u32 rx51_secure_update_aux_cr(u32 set_bits, u32 clear_bits); - extern u32 rx51_secure_rng_call(u32 ptr, u32 count, u32 flag); - -+#ifdef CONFIG_OMAP4_ERRATA_I688 -+extern int omap_barrier_reserve_memblock(void); -+#else -+static inline void omap_barrier_reserve_memblock(void) -+{ } -+#endif -+ - #ifdef CONFIG_SOC_HAS_REALTIME_COUNTER - void set_cntfreq(void); - #else -diff --git a/arch/arm/mach-omap2/omap4-common.c b/arch/arm/mach-omap2/omap4-common.c -index 16350ee..7bb116a 100644 ---- a/arch/arm/mach-omap2/omap4-common.c -+++ b/arch/arm/mach-omap2/omap4-common.c -@@ -51,6 +51,75 @@ static void __iomem *twd_base; - - #define IRQ_LOCALTIMER 29 - -+#ifdef CONFIG_OMAP4_ERRATA_I688 -+/* Used to implement memory barrier on DRAM path */ -+#define OMAP4_DRAM_BARRIER_VA 0xfe600000 -+ -+void __iomem *dram_sync, *sram_sync; -+ -+static phys_addr_t paddr; -+static u32 size; -+ -+void omap_bus_sync(void) -+{ -+ if (dram_sync && sram_sync) { -+ writel_relaxed(readl_relaxed(dram_sync), dram_sync); -+ writel_relaxed(readl_relaxed(sram_sync), sram_sync); -+ isb(); -+ } -+} -+EXPORT_SYMBOL(omap_bus_sync); -+ -+static int __init omap4_sram_init(void) -+{ -+ struct device_node *np; -+ struct gen_pool *sram_pool; -+ -+ np = of_find_compatible_node(NULL, NULL, "ti,omap4-mpu"); -+ if (!np) -+ pr_warn("%s:Unable to allocate sram needed to handle errata I688\n", -+ __func__); -+ sram_pool = of_get_named_gen_pool(np, "sram", 0); -+ if (!sram_pool) -+ pr_warn("%s:Unable to get sram pool needed to handle errata I688\n", -+ __func__); -+ else -+ sram_sync = (void *)gen_pool_alloc(sram_pool, PAGE_SIZE); -+ -+ return 0; -+} -+omap_arch_initcall(omap4_sram_init); -+ -+/* Steal one page physical memory for barrier implementation */ -+int __init omap_barrier_reserve_memblock(void) -+{ -+ -+ size = ALIGN(PAGE_SIZE, SZ_1M); -+ paddr = arm_memblock_steal(size, SZ_1M); -+ -+ return 0; -+} -+ -+void __init omap_barriers_init(void) -+{ -+ struct map_desc dram_io_desc[1]; -+ -+ dram_io_desc[0].virtual = OMAP4_DRAM_BARRIER_VA; -+ dram_io_desc[0].pfn = __phys_to_pfn(paddr); -+ dram_io_desc[0].length = size; -+ dram_io_desc[0].type = MT_MEMORY_RW_SO; -+ iotable_init(dram_io_desc, ARRAY_SIZE(dram_io_desc)); -+ dram_sync = (void __iomem *) dram_io_desc[0].virtual; -+ -+ pr_info("OMAP4: Map 0x%08llx to 0x%08lx for dram barrier\n", -+ (long long) paddr, dram_io_desc[0].virtual); -+ -+} -+#else -+void __init omap_barriers_init(void) -+{} -+#endif -+ - void gic_dist_disable(void) - { - if (gic_dist_base_addr) -diff --git a/arch/arm/mach-omap2/sleep44xx.S b/arch/arm/mach-omap2/sleep44xx.S -index ad1bb94..b84a012 100644 ---- a/arch/arm/mach-omap2/sleep44xx.S -+++ b/arch/arm/mach-omap2/sleep44xx.S -@@ -333,9 +333,11 @@ ENDPROC(omap4_cpu_resume) - - #endif /* defined(CONFIG_SMP) && defined(CONFIG_PM) */ - -+#ifndef CONFIG_OMAP4_ERRATA_I688 - ENTRY(omap_bus_sync) - ret lr - ENDPROC(omap_bus_sync) -+#endif - - ENTRY(omap_do_wfi) - stmfd sp!, {lr} --- -2.5.0 - diff --git a/patches/fixes/0004-ARM-omap2-restore-OMAP4-barrier-behaviour.patch b/patches/fixes/0004-ARM-omap2-restore-OMAP4-barrier-behaviour.patch deleted file mode 100644 index b7c9b3d1f95f24827ab8692ff0276fdc48c21f38..0000000000000000000000000000000000000000 --- a/patches/fixes/0004-ARM-omap2-restore-OMAP4-barrier-behaviour.patch +++ /dev/null @@ -1,335 +0,0 @@ -From f2749d7a59fbf51266e914c61b577a0b13f054be Mon Sep 17 00:00:00 2001 -From: Russell King <rmk+kernel@arm.linux.org.uk> -Date: Wed, 15 Jul 2015 18:47:34 +0100 -Subject: [PATCH 4/4] ARM: omap2: restore OMAP4 barrier behaviour - -Restore the OMAP4 barrier behaviour using the new implementation which -allows multiplatform systems to hook into the mb() and wmb() ARM -implementations to perform any necessary additional barrier maintanence. - -Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> ---- - arch/arm/mach-omap2/Kconfig | 28 +++------ - arch/arm/mach-omap2/common.h | 12 +++- - arch/arm/mach-omap2/include/mach/barriers.h | 33 ----------- - arch/arm/mach-omap2/omap-secure.h | 7 --- - arch/arm/mach-omap2/omap4-common.c | 90 +++++++++++++++++++++++------ - arch/arm/mach-omap2/sleep44xx.S | 10 +--- - 6 files changed, 90 insertions(+), 90 deletions(-) - delete mode 100644 arch/arm/mach-omap2/include/mach/barriers.h - -diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig -index 0a58e20..d2918cb 100644 ---- a/arch/arm/mach-omap2/Kconfig -+++ b/arch/arm/mach-omap2/Kconfig -@@ -29,6 +29,7 @@ config ARCH_OMAP4 - select HAVE_ARM_SCU if SMP - select HAVE_ARM_TWD if SMP - select OMAP_INTERCONNECT -+ select OMAP_INTERCONNECT_BARRIER - select PL310_ERRATA_588369 if CACHE_L2X0 - select PL310_ERRATA_727915 if CACHE_L2X0 - select PM_OPP if PM -@@ -46,6 +47,7 @@ config SOC_OMAP5 - select HAVE_ARM_TWD if SMP - select HAVE_ARM_ARCH_TIMER - select ARM_ERRATA_798181 if SMP -+ select OMAP_INTERCONNECT_BARRIER - - config SOC_AM33XX - bool "TI AM33XX" -@@ -71,6 +73,7 @@ config SOC_DRA7XX - select HAVE_ARM_ARCH_TIMER - select IRQ_CROSSBAR - select ARM_ERRATA_798181 if SMP -+ select OMAP_INTERCONNECT_BARRIER - - config ARCH_OMAP2PLUS - bool -@@ -92,6 +95,10 @@ config ARCH_OMAP2PLUS - help - Systems based on OMAP2, OMAP3, OMAP4 or OMAP5 - -+config OMAP_INTERCONNECT_BARRIER -+ bool -+ select ARM_HEAVY_MB -+ - - if ARCH_OMAP2PLUS - -@@ -241,27 +248,6 @@ config OMAP3_SDRC_AC_TIMING - wish to say no. Selecting yes without understanding what is - going on could result in system crashes; - --config OMAP4_ERRATA_I688 -- bool "OMAP4 errata: Async Bridge Corruption" -- depends on (ARCH_OMAP4 || SOC_OMAP5) && !ARCH_MULTIPLATFORM -- select ARCH_HAS_BARRIERS -- help -- If a data is stalled inside asynchronous bridge because of back -- pressure, it may be accepted multiple times, creating pointer -- misalignment that will corrupt next transfers on that data path -- until next reset of the system (No recovery procedure once the -- issue is hit, the path remains consistently broken). Async bridge -- can be found on path between MPU to EMIF and MPU to L3 interconnect. -- This situation can happen only when the idle is initiated by a -- Master Request Disconnection (which is trigged by software when -- executing WFI on CPU). -- The work-around for this errata needs all the initiators connected -- through async bridge must ensure that data path is properly drained -- before issuing WFI. This condition will be met if one Strongly ordered -- access is performed to the target right before executing the WFI. -- In MPU case, L3 T2ASYNC FIFO and DDR T2ASYNC FIFO needs to be drained. -- IO barrier ensure that there is no synchronisation loss on initiators -- operating on both interconnect port simultaneously. - endmenu - - endif -diff --git a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h -index 46e2458..82f88b4 100644 ---- a/arch/arm/mach-omap2/common.h -+++ b/arch/arm/mach-omap2/common.h -@@ -189,6 +189,15 @@ static inline void omap44xx_restart(enum reboot_mode mode, const char *cmd) - } - #endif - -+#ifdef CONFIG_OMAP_INTERCONNECT_BARRIER -+void omap_barrier_reserve_memblock(void); -+void omap_barriers_init(void); -+#else -+static inline void omap_barrier_reserve_memblock(void) -+{ -+} -+#endif -+ - /* This gets called from mach-omap2/io.c, do not call this */ - void __init omap2_set_globals_tap(u32 class, void __iomem *tap); - -@@ -200,9 +209,6 @@ void __init omap4_map_io(void); - void __init omap5_map_io(void); - void __init ti81xx_map_io(void); - --/* omap_barriers_init() is OMAP4 only */ --void omap_barriers_init(void); -- - /** - * omap_test_timeout - busy-loop, testing a condition - * @cond: condition to test until it evaluates to true -diff --git a/arch/arm/mach-omap2/include/mach/barriers.h b/arch/arm/mach-omap2/include/mach/barriers.h -deleted file mode 100644 -index 1c582a8..0000000 ---- a/arch/arm/mach-omap2/include/mach/barriers.h -+++ /dev/null -@@ -1,33 +0,0 @@ --/* -- * OMAP memory barrier header. -- * -- * Copyright (C) 2011 Texas Instruments, Inc. -- * Santosh Shilimkar <santosh.shilimkar@ti.com> -- * Richard Woodruff <r-woodruff2@ti.com> -- * -- * This program is free software; you can redistribute it and/or modify -- * it under the terms of the GNU General Public License version 2 as -- * published by the Free Software Foundation. -- * -- * This program is distributed in the hope that it will be useful, -- * but WITHOUT ANY WARRANTY; without even the implied warranty of -- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- * GNU General Public License for more details. -- * -- * You should have received a copy of the GNU General Public License -- * along with this program; if not, write to the Free Software -- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -- */ -- --#ifndef __MACH_BARRIERS_H --#define __MACH_BARRIERS_H -- --#include <asm/outercache.h> -- --extern void omap_bus_sync(void); -- --#define rmb() dsb() --#define wmb() do { dsb(); outer_sync(); omap_bus_sync(); } while (0) --#define mb() wmb() -- --#endif /* __MACH_BARRIERS_H */ -diff --git a/arch/arm/mach-omap2/omap-secure.h b/arch/arm/mach-omap2/omap-secure.h -index dec2b05..af2851f 100644 ---- a/arch/arm/mach-omap2/omap-secure.h -+++ b/arch/arm/mach-omap2/omap-secure.h -@@ -70,13 +70,6 @@ extern u32 rx51_secure_dispatcher(u32 idx, u32 process, u32 flag, u32 nargs, - extern u32 rx51_secure_update_aux_cr(u32 set_bits, u32 clear_bits); - extern u32 rx51_secure_rng_call(u32 ptr, u32 count, u32 flag); - --#ifdef CONFIG_OMAP4_ERRATA_I688 --extern int omap_barrier_reserve_memblock(void); --#else --static inline void omap_barrier_reserve_memblock(void) --{ } --#endif -- - #ifdef CONFIG_SOC_HAS_REALTIME_COUNTER - void set_cntfreq(void); - #else -diff --git a/arch/arm/mach-omap2/omap4-common.c b/arch/arm/mach-omap2/omap4-common.c -index 7bb116a..9c7aac6 100644 ---- a/arch/arm/mach-omap2/omap4-common.c -+++ b/arch/arm/mach-omap2/omap4-common.c -@@ -51,16 +51,73 @@ static void __iomem *twd_base; - - #define IRQ_LOCALTIMER 29 - --#ifdef CONFIG_OMAP4_ERRATA_I688 -+#ifdef CONFIG_OMAP_INTERCONNECT_BARRIER -+ - /* Used to implement memory barrier on DRAM path */ - #define OMAP4_DRAM_BARRIER_VA 0xfe600000 - --void __iomem *dram_sync, *sram_sync; -+static void __iomem *dram_sync, *sram_sync; -+static phys_addr_t dram_sync_paddr; -+static u32 dram_sync_size; -+ -+/* -+ * The OMAP4 bus structure contains asynchrnous bridges which can buffer -+ * data writes from the MPU. These asynchronous bridges can be found on -+ * paths between the MPU to EMIF, and the MPU to L3 interconnects. -+ * -+ * We need to be careful about re-ordering which can happen as a result -+ * of different accesses being performed via different paths, and -+ * therefore different asynchronous bridges. -+ */ - --static phys_addr_t paddr; --static u32 size; -+/* -+ * OMAP4 interconnect barrier which is called for each mb() and wmb(). -+ * This is to ensure that normal paths to DRAM (normal memory, cacheable -+ * accesses) are properly synchronised with writes to DMA coherent memory -+ * (normal memory, uncacheable) and device writes. -+ * -+ * The mb() and wmb() barriers only operate only on the MPU->MA->EMIF -+ * path, as we need to ensure that data is visible to other system -+ * masters prior to writes to those system masters being seen. -+ * -+ * Note: the SRAM path is not synchronised via mb() and wmb(). -+ */ -+static void omap4_mb(void) -+{ -+ if (dram_sync) -+ writel_relaxed(0, dram_sync); -+} - --void omap_bus_sync(void) -+/* -+ * OMAP4 Errata i688 - asynchronous bridge corruption when entering WFI. -+ * -+ * If a data is stalled inside asynchronous bridge because of back -+ * pressure, it may be accepted multiple times, creating pointer -+ * misalignment that will corrupt next transfers on that data path until -+ * next reset of the system. No recovery procedure once the issue is hit, -+ * the path remains consistently broken. -+ * -+ * Async bridges can be found on paths between MPU to EMIF and MPU to L3 -+ * interconnects. -+ * -+ * This situation can happen only when the idle is initiated by a Master -+ * Request Disconnection (which is trigged by software when executing WFI -+ * on the CPU). -+ * -+ * The work-around for this errata needs all the initiators connected -+ * through an async bridge to ensure that data path is properly drained -+ * before issuing WFI. This condition will be met if one Strongly ordered -+ * access is performed to the target right before executing the WFI. -+ * -+ * In MPU case, L3 T2ASYNC FIFO and DDR T2ASYNC FIFO needs to be drained. -+ * IO barrier ensure that there is no synchronisation loss on initiators -+ * operating on both interconnect port simultaneously. -+ * -+ * This is a stronger version of the OMAP4 memory barrier below, and -+ * operates on both the MPU->MA->EMIF path but also the MPU->OCP path -+ * as well, and is necessary prior to executing a WFI. -+ */ -+void omap_interconnect_sync(void) - { - if (dram_sync && sram_sync) { - writel_relaxed(readl_relaxed(dram_sync), dram_sync); -@@ -68,7 +125,6 @@ void omap_bus_sync(void) - isb(); - } - } --EXPORT_SYMBOL(omap_bus_sync); - - static int __init omap4_sram_init(void) - { -@@ -91,13 +147,10 @@ static int __init omap4_sram_init(void) - omap_arch_initcall(omap4_sram_init); - - /* Steal one page physical memory for barrier implementation */ --int __init omap_barrier_reserve_memblock(void) -+void __init omap_barrier_reserve_memblock(void) - { -- -- size = ALIGN(PAGE_SIZE, SZ_1M); -- paddr = arm_memblock_steal(size, SZ_1M); -- -- return 0; -+ dram_sync_size = ALIGN(PAGE_SIZE, SZ_1M); -+ dram_sync_paddr = arm_memblock_steal(dram_sync_size, SZ_1M); - } - - void __init omap_barriers_init(void) -@@ -105,19 +158,18 @@ void __init omap_barriers_init(void) - struct map_desc dram_io_desc[1]; - - dram_io_desc[0].virtual = OMAP4_DRAM_BARRIER_VA; -- dram_io_desc[0].pfn = __phys_to_pfn(paddr); -- dram_io_desc[0].length = size; -+ dram_io_desc[0].pfn = __phys_to_pfn(dram_sync_paddr); -+ dram_io_desc[0].length = dram_sync_size; - dram_io_desc[0].type = MT_MEMORY_RW_SO; - iotable_init(dram_io_desc, ARRAY_SIZE(dram_io_desc)); - dram_sync = (void __iomem *) dram_io_desc[0].virtual; - -- pr_info("OMAP4: Map 0x%08llx to 0x%08lx for dram barrier\n", -- (long long) paddr, dram_io_desc[0].virtual); -+ pr_info("OMAP4: Map %pa to %p for dram barrier\n", -+ &dram_sync_paddr, dram_sync); - -+ soc_mb = omap4_mb; - } --#else --void __init omap_barriers_init(void) --{} -+ - #endif - - void gic_dist_disable(void) -diff --git a/arch/arm/mach-omap2/sleep44xx.S b/arch/arm/mach-omap2/sleep44xx.S -index b84a012..9b09d85 100644 ---- a/arch/arm/mach-omap2/sleep44xx.S -+++ b/arch/arm/mach-omap2/sleep44xx.S -@@ -333,16 +333,12 @@ ENDPROC(omap4_cpu_resume) - - #endif /* defined(CONFIG_SMP) && defined(CONFIG_PM) */ - --#ifndef CONFIG_OMAP4_ERRATA_I688 --ENTRY(omap_bus_sync) -- ret lr --ENDPROC(omap_bus_sync) --#endif -- - ENTRY(omap_do_wfi) - stmfd sp!, {lr} -+#ifdef CONFIG_OMAP_INTERCONNECT_BARRIER - /* Drain interconnect write buffers. */ -- bl omap_bus_sync -+ bl omap_interconnect_sync -+#endif - - /* - * Execute an ISB instruction to ensure that all of the --- -2.5.0 - diff --git a/patches/packaging/0001-packaging-sync-builddeb-changes.patch b/patches/packaging/0001-packaging-sync-builddeb-changes.patch index 928c6c3cd821eecc4ec7270731e42496a7c44a8a..cea87ea07f3799d0dc3ba30b3a9e72ed5fd674d8 100644 --- a/patches/packaging/0001-packaging-sync-builddeb-changes.patch +++ b/patches/packaging/0001-packaging-sync-builddeb-changes.patch @@ -1,121 +1,34 @@ -From e116123a23d1e25a2425da0814058d4dbc794539 Mon Sep 17 00:00:00 2001 +From 0a717fefdb59f84604485fcb3cd863284e142ee4 Mon Sep 17 00:00:00 2001 From: Robert Nelson <robertcnelson@gmail.com> -Date: Sun, 13 Sep 2015 17:55:32 -0500 +Date: Wed, 9 Sep 2015 12:42:20 -0500 Subject: [PATCH] packaging: sync builddeb changes Signed-off-by: Robert Nelson <robertcnelson@gmail.com> --- - scripts/package/builddeb | 101 +++++++++++++++++++++++++++++++++++------------ - 1 file changed, 76 insertions(+), 25 deletions(-) + scripts/package/builddeb | 13 +++++++++++-- + 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/scripts/package/builddeb b/scripts/package/builddeb -index 88dbf23..69d8ff0d 100755 +index 0cd46e1..69d8ff0d 100755 --- a/scripts/package/builddeb +++ b/scripts/package/builddeb -@@ -15,6 +15,8 @@ set -e - create_package() { - local pname="$1" pdir="$2" - -+ mkdir -m 755 -p "$pdir/DEBIAN" -+ mkdir -p "$pdir/usr/share/doc/$pname" - cp debian/copyright "$pdir/usr/share/doc/$pname/" - cp debian/changelog "$pdir/usr/share/doc/$pname/changelog.Debian" - gzip -9 "$pdir/usr/share/doc/$pname/changelog.Debian" -@@ -25,8 +27,13 @@ create_package() { - chown -R root:root "$pdir" - chmod -R go-w "$pdir" - -+ # Create the package -+ dpkg-gencontrol $forcearch -Vkernel:debarch="${debarch}" -p$pname -P"$pdir" -+ dpkg --build "$pdir" .. -+} -+ -+set_debarch() { - # Attempt to find the correct Debian architecture -- local forcearch="" debarch="" - case "$UTS_MACHINE" in - i386|ia64|alpha) - debarch="$UTS_MACHINE" ;; -@@ -45,8 +52,9 @@ create_package() { +@@ -52,7 +52,7 @@ set_debarch() { arm64) debarch=arm64 ;; arm*) - debarch=arm$(grep -q CONFIG_AEABI=y $KCONFIG_CONFIG && echo el || true) ;; + debarch=arm$(grep -q CONFIG_AEABI=y $KCONFIG_CONFIG && echo hf || true) ;; *) -+ debarch=$(dpkg --print-architecture) - echo "" >&2 - echo "** ** ** WARNING ** ** **" >&2 + debarch=$(dpkg --print-architecture) echo "" >&2 -@@ -59,13 +67,8 @@ create_package() { - if [ -n "$KBUILD_DEBARCH" ] ; then - debarch="$KBUILD_DEBARCH" - fi -- if [ -n "$debarch" ] ; then -- forcearch="-DArchitecture=$debarch" -- fi -+ forcearch="-DArchitecture=$debarch" - -- # Create the package -- dpkg-gencontrol $forcearch -Vkernel:debarch="${debarch:-$(dpkg --print-architecture)}" -p$pname -P"$pdir" -- dpkg --build "$pdir" .. - } - - # Some variables and settings used throughout the script -@@ -76,6 +79,7 @@ if [ -n "$KDEB_PKGVERSION" ]; then - else - packageversion=$version-$revision +@@ -140,9 +140,18 @@ else fi -+sourcename=$KDEB_SOURCENAME - tmpdir="$objtree/debian/tmp" - fwdir="$objtree/debian/fwtmp" - kernel_headers_dir="$objtree/debian/hdrtmp" -@@ -86,6 +90,9 @@ fwpackagename=linux-firmware-image-$version - kernel_headers_packagename=linux-headers-$version - libc_headers_packagename=linux-libc-dev - dbg_packagename=$packagename-dbg -+debarch= -+forcearch= -+set_debarch - if [ "$ARCH" = "um" ] ; then - packagename=user-mode-linux-$version -@@ -110,24 +117,13 @@ BUILD_DEBUG="$(grep -s '^CONFIG_DEBUG_INFO=y' $KCONFIG_CONFIG || true)" - # Setup the directory structure - rm -rf "$tmpdir" "$fwdir" "$kernel_headers_dir" "$libc_headers_dir" "$dbg_dir" - mkdir -m 755 -p "$tmpdir/DEBIAN" --mkdir -p "$tmpdir/lib" "$tmpdir/boot" "$tmpdir/usr/share/doc/$packagename" --mkdir -m 755 -p "$fwdir/DEBIAN" --mkdir -p "$fwdir/lib/firmware/$version/" "$fwdir/usr/share/doc/$fwpackagename" --mkdir -m 755 -p "$libc_headers_dir/DEBIAN" --mkdir -p "$libc_headers_dir/usr/share/doc/$libc_headers_packagename" --mkdir -m 755 -p "$kernel_headers_dir/DEBIAN" --mkdir -p "$kernel_headers_dir/usr/share/doc/$kernel_headers_packagename" -+mkdir -p "$tmpdir/lib" "$tmpdir/boot" -+mkdir -p "$fwdir/lib/firmware/$version/" - mkdir -p "$kernel_headers_dir/lib/modules/$version/" --if [ "$ARCH" = "um" ] ; then -- mkdir -p "$tmpdir/usr/lib/uml/modules/$version" "$tmpdir/usr/bin" --fi --if [ -n "$BUILD_DEBUG" ] ; then -- mkdir -p "$dbg_dir/usr/share/doc/$dbg_packagename" -- mkdir -m 755 -p "$dbg_dir/DEBIAN" --fi - - # Build and install the kernel - if [ "$ARCH" = "um" ] ; then -+ mkdir -p "$tmpdir/usr/lib/uml/modules/$version" "$tmpdir/usr/bin" "$tmpdir/usr/share/doc/$packagename" - $MAKE linux - cp System.map "$tmpdir/usr/lib/uml/modules/$version/System.map" - cp $KCONFIG_CONFIG "$tmpdir/usr/share/doc/$packagename/config" -@@ -143,6 +139,22 @@ else - cp arch/$ARCH/boot/$KBUILD_IMAGE "$tmpdir/$installed_image_path" - fi - -+if grep -q "^CONFIG_OF=y" $KCONFIG_CONFIG ; then + if grep -q "^CONFIG_OF=y" $KCONFIG_CONFIG ; then + mkdir -p "$tmpdir/boot/dtbs/$version" -+ # Only some architectures with OF support have this target -+ if grep -q dtbs_install "${srctree}/arch/$SRCARCH/Makefile"; then + # Only some architectures with OF support have this target + if grep -q dtbs_install "${srctree}/arch/$SRCARCH/Makefile"; then +- $MAKE KBUILD_SRC= INSTALL_DTBS_PATH="$tmpdir/usr/lib/$packagename" dtbs_install + $MAKE KBUILD_SRC= INSTALL_DTBS_PATH="$tmpdir/boot/dtbs/$version" dtbs_install + else + $MAKE KBUILD_SRC= dtbs @@ -125,95 +38,9 @@ index 88dbf23..69d8ff0d 100755 + #make dtbs_install seems to add an .old directory + if [ -d "$tmpdir/boot/dtbs/$version.old" ] ; then + rm -rf "$tmpdir/boot/dtbs/$version.old" -+ fi -+fi -+ - if grep -q '^CONFIG_MODULES=y' $KCONFIG_CONFIG ; then - INSTALL_MOD_PATH="$tmpdir" $MAKE KBUILD_SRC= modules_install - rm -f "$tmpdir/lib/modules/$version/build" -@@ -162,6 +174,12 @@ if grep -q '^CONFIG_MODULES=y' $KCONFIG_CONFIG ; then - # then add a link to those - $OBJCOPY --add-gnu-debuglink=$dbg_dir/usr/lib/debug/$module $tmpdir/$module - done -+ -+ # resign stripped modules -+ MODULE_SIG_ALL="$(grep -s '^CONFIG_MODULE_SIG_ALL=y' $KCONFIG_CONFIG || true)" -+ if [ -n "$MODULE_SIG_ALL" ]; then -+ INSTALL_MOD_PATH="$tmpdir" $MAKE KBUILD_SRC= modules_sign -+ fi fi fi -@@ -206,7 +224,7 @@ if [ -n "$DEBEMAIL" ]; then - elif [ -n "$EMAIL" ]; then - email=$EMAIL - else -- email=$(id -nu)@$(hostname -f) -+ email=$(id -nu)@$(hostname -f 2>/dev/null || hostname) - fi - if [ -n "$DEBFULLNAME" ]; then - name=$DEBFULLNAME -@@ -230,7 +248,7 @@ fi - - # Generate a simple changelog template - cat <<EOF > debian/changelog --linux-upstream ($packageversion) $distribution; urgency=low -+$sourcename ($packageversion) $distribution; urgency=low - - * Custom built Linux kernel. - -@@ -257,12 +275,16 @@ On Debian GNU/Linux systems, the complete text of the GNU General Public - License version 2 can be found in \`/usr/share/common-licenses/GPL-2'. - EOF - -+ -+build_depends="bc, kmod, cpio " -+ - # Generate a control file - cat <<EOF > debian/control --Source: linux-upstream -+Source: $sourcename - Section: kernel - Priority: optional - Maintainer: $maintainer -+Build-Depends: $build_depends - Standards-Version: 3.8.4 - Homepage: http://www.kernel.org/ - EOF -@@ -383,4 +405,33 @@ EOF - create_package "$dbg_packagename" "$dbg_dir" - fi - -+if [ "x$1" = "xdeb-pkg" ] -+then -+ cat <<EOF > debian/rules -+#!/usr/bin/make -f -+ -+build: -+ \$(MAKE) -+ -+binary-arch: -+ \$(MAKE) KDEB_SOURCENAME=${sourcename} KDEB_PKGVERSION=${packageversion} bindeb-pkg -+ -+clean: -+ rm -rf debian/*tmp -+ mv debian/ debian.backup # debian/ might be cleaned away -+ \$(MAKE) clean -+ mv debian.backup debian -+ -+binary: binary-arch -+EOF -+ mv ${sourcename}.tar.gz ../${sourcename}_${version}.orig.tar.gz -+ tar caf ../${sourcename}_${packageversion}.debian.tar.gz debian/{copyright,rules,changelog,control} -+ dpkg-source -cdebian/control -ldebian/changelog --format="3.0 (custom)" --target-format="3.0 (quilt)" \ -+ -b / ../${sourcename}_${version}.orig.tar.gz ../${sourcename}_${packageversion}.debian.tar.gz -+ mv ${sourcename}_${packageversion}*dsc .. -+ dpkg-genchanges > ../${sourcename}_${packageversion}_${debarch}.changes -+else -+ dpkg-genchanges -b > ../${sourcename}_${packageversion}_${debarch}.changes -+fi -+ - exit 0 -- 2.5.1 diff --git a/patches/packaging/0002-deb-pkg-no-dtbs_install.patch b/patches/packaging/0002-deb-pkg-no-dtbs_install.patch deleted file mode 100644 index 63dfcc7a19285d1ca0aefdcd5b172c704e3bfd5d..0000000000000000000000000000000000000000 --- a/patches/packaging/0002-deb-pkg-no-dtbs_install.patch +++ /dev/null @@ -1,27 +0,0 @@ -From bd1cae64f158dbb6cb0f7ec1fef8649906e49915 Mon Sep 17 00:00:00 2001 -From: Robert Nelson <robertcnelson@gmail.com> -Date: Wed, 2 Jul 2014 15:31:55 -0500 -Subject: [PATCH 2/2] deb-pkg: no dtbs_install - -Signed-off-by: Robert Nelson <robertcnelson@gmail.com> ---- - scripts/package/builddeb | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/scripts/package/builddeb b/scripts/package/builddeb -index 9678058..148b90c 100644 ---- a/scripts/package/builddeb -+++ b/scripts/package/builddeb -@@ -167,7 +167,8 @@ fi - - if grep -q '^CONFIG_OF=y' $KCONFIG_CONFIG ; then - mkdir -p "$tmpdir/boot/dtbs/$version" -- INSTALL_DTBS_PATH="$tmpdir/boot/dtbs/$version" $MAKE KBUILD_SRC= dtbs_install -+ $MAKE KBUILD_SRC= dtbs -+ find arch/arm/boot/ -iname "*.dtb" -exec cp -v '{}' "$tmpdir/boot/dtbs/$version" \; - - #make dtbs_install seems to add an .old directory - if [ -d "$tmpdir/boot/dtbs/$version.old" ] ; then --- -2.1.4 - diff --git a/patches/pru/0001-Making-the-uio-pruss-driver-work.patch b/patches/pru/0001-Making-the-uio-pruss-driver-work.patch index f200f59ecd6347776d4507b7ec54683de807b559..05b317266cde21cf38ee0d6d46bd9b94231505c7 100644 --- a/patches/pru/0001-Making-the-uio-pruss-driver-work.patch +++ b/patches/pru/0001-Making-the-uio-pruss-driver-work.patch @@ -25,10 +25,10 @@ index 4f6a82c..619f13a 100644 Example: diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi -index 21fcc44..ebc3168 100644 +index 09664df..f2d5b68 100644 --- a/arch/arm/boot/dts/am33xx.dtsi +++ b/arch/arm/boot/dts/am33xx.dtsi -@@ -441,6 +441,17 @@ +@@ -429,6 +429,17 @@ ti,timer-pwm; }; @@ -89,12 +89,12 @@ index 4cb8fd9..f14cd26 100644 odbfd_exit1: kfree(hwmods); diff --git a/drivers/uio/Kconfig b/drivers/uio/Kconfig -index 48fb1d9..f423d62 100644 +index 52c98ce..05400bc0 100644 --- a/drivers/uio/Kconfig +++ b/drivers/uio/Kconfig @@ -129,7 +129,7 @@ config UIO_PRUSS select GENERIC_ALLOCATOR - depends on HAS_IOMEM + depends on HAS_IOMEM && HAS_DMA help - PRUSS driver for OMAPL138/DA850/AM18XX devices + PRUSS driver for OMAPL138/DA850/AM18XX and AM33XX devices @@ -301,5 +301,5 @@ index ca9e2fa..025e8e4 100644 }; -- -2.1.4 +2.5.0 diff --git a/patches/ref_omap2plus_defconfig b/patches/ref_omap2plus_defconfig index 24d1917a1c0f6d60a50186348e321f1fa1282f4f..52ce291ecbda5242a40bdf64bb89622b1981155e 100644 --- a/patches/ref_omap2plus_defconfig +++ b/patches/ref_omap2plus_defconfig @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm 4.2.0 Kernel Configuration +# Linux/arm 4.3.0-rc1 Kernel Configuration # CONFIG_ARM=y CONFIG_ARM_HAS_SG_CHAIN=y @@ -12,6 +12,7 @@ CONFIG_LOCKDEP_SUPPORT=y CONFIG_TRACE_IRQFLAGS_SUPPORT=y CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_ARCH_HAS_BANDGAP=y +CONFIG_FIX_EARLYCON_MEM=y CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_NEED_DMA_MAP_STATE=y @@ -104,7 +105,6 @@ CONFIG_SRCU=y # CONFIG_TASKS_RCU is not set CONFIG_RCU_STALL_COMMON=y # CONFIG_TREE_RCU_TRACE is not set -# CONFIG_RCU_NOCB_CPU is not set # CONFIG_RCU_EXPEDITE_BOOT is not set CONFIG_BUILD_BIN2C=y CONFIG_IKCONFIG=y @@ -115,6 +115,7 @@ CONFIG_GENERIC_SCHED_CLOCK=y CONFIG_CGROUPS=y # CONFIG_CGROUP_DEBUG is not set CONFIG_CGROUP_FREEZER=y +# CONFIG_CGROUP_PIDS is not set CONFIG_CGROUP_DEVICE=y CONFIG_CPUSETS=y CONFIG_PROC_PID_CPUSET=y @@ -176,6 +177,8 @@ CONFIG_EVENTFD=y CONFIG_SHMEM=y CONFIG_AIO=y CONFIG_ADVISE_SYSCALLS=y +# CONFIG_USERFAULTFD is not set +CONFIG_MEMBARRIER=y # CONFIG_EMBEDDED is not set CONFIG_HAVE_PERF_EVENTS=y CONFIG_PERF_USE_VMALLOC=y @@ -190,9 +193,10 @@ CONFIG_COMPAT_BRK=y CONFIG_SLAB=y # CONFIG_SLUB is not set # CONFIG_SLOB is not set -# CONFIG_SYSTEM_TRUSTED_KEYRING is not set +# CONFIG_SYSTEM_DATA_VERIFICATION is not set CONFIG_PROFILING=y CONFIG_TRACEPOINTS=y +CONFIG_KEXEC_CORE=y CONFIG_OPROFILE=y CONFIG_HAVE_OPROFILE=y CONFIG_KPROBES=y @@ -395,6 +399,7 @@ CONFIG_SOC_AM33XX=y CONFIG_SOC_AM43XX=y CONFIG_SOC_DRA7XX=y CONFIG_ARCH_OMAP2PLUS=y +CONFIG_OMAP_INTERCONNECT_BARRIER=y # # TI OMAP2/3/4 Specific Features @@ -417,8 +422,6 @@ CONFIG_OMAP_PACKAGE_CBB=y # CONFIG_MACH_OMAP2_TUSB6010=y CONFIG_MACH_OMAP_LDP=y -CONFIG_MACH_OMAP3530_LV_SOM=y -CONFIG_MACH_OMAP3_TORPEDO=y CONFIG_MACH_OMAP3517EVM=y CONFIG_MACH_OMAP3_PANDORA=y CONFIG_MACH_NOKIA_N810=y @@ -560,6 +563,7 @@ CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y CONFIG_HAVE_ARCH_PFN_VALID=y CONFIG_HIGHMEM=y # CONFIG_HIGHPTE is not set +CONFIG_CPU_SW_DOMAIN_PAN=y CONFIG_HW_PERF_EVENTS=y CONFIG_ARCH_WANT_GENERAL_HUGETLB=y # CONFIG_ARM_MODULE_PLTS is not set @@ -587,6 +591,7 @@ CONFIG_CMA_AREAS=7 # CONFIG_ZPOOL is not set # CONFIG_ZBUD is not set # CONFIG_ZSMALLOC is not set +# CONFIG_IDLE_PAGE_TRACKING is not set CONFIG_FORCE_MAX_ZONEORDER=12 CONFIG_ALIGNMENT_TRAP=y # CONFIG_UACCESS_WITH_MEMCPY is not set @@ -687,6 +692,7 @@ CONFIG_COREDUMP=y # CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y +# CONFIG_SUSPEND_SKIP_SYNC is not set # CONFIG_HIBERNATION is not set CONFIG_PM_SLEEP=y CONFIG_PM_SLEEP_SMP=y @@ -732,19 +738,18 @@ CONFIG_IP_PNP_BOOTP=y CONFIG_IP_PNP_RARP=y # CONFIG_NET_IPIP is not set # CONFIG_NET_IPGRE_DEMUX is not set -CONFIG_NET_IP_TUNNEL=m +CONFIG_NET_IP_TUNNEL=y # CONFIG_IP_MROUTE is not set # CONFIG_SYN_COOKIES is not set # CONFIG_NET_IPVTI is not set # CONFIG_NET_UDP_TUNNEL is not set # CONFIG_NET_FOU is not set # CONFIG_NET_FOU_IP_TUNNELS is not set -# CONFIG_GENEVE_CORE is not set # CONFIG_INET_AH is not set # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set # CONFIG_INET_XFRM_TUNNEL is not set -CONFIG_INET_TUNNEL=m +CONFIG_INET_TUNNEL=y CONFIG_INET_XFRM_MODE_TRANSPORT=y CONFIG_INET_XFRM_MODE_TUNNEL=y CONFIG_INET_XFRM_MODE_BEET=y @@ -756,21 +761,22 @@ CONFIG_INET_TCP_DIAG=y CONFIG_TCP_CONG_CUBIC=y CONFIG_DEFAULT_TCP_CONG="cubic" # CONFIG_TCP_MD5SIG is not set -CONFIG_IPV6=m +CONFIG_IPV6=y # CONFIG_IPV6_ROUTER_PREF is not set # CONFIG_IPV6_OPTIMISTIC_DAD is not set # CONFIG_INET6_AH is not set # CONFIG_INET6_ESP is not set # CONFIG_INET6_IPCOMP is not set # CONFIG_IPV6_MIP6 is not set +# CONFIG_IPV6_ILA is not set # CONFIG_INET6_XFRM_TUNNEL is not set # CONFIG_INET6_TUNNEL is not set -CONFIG_INET6_XFRM_MODE_TRANSPORT=m -CONFIG_INET6_XFRM_MODE_TUNNEL=m -CONFIG_INET6_XFRM_MODE_BEET=m +CONFIG_INET6_XFRM_MODE_TRANSPORT=y +CONFIG_INET6_XFRM_MODE_TUNNEL=y +CONFIG_INET6_XFRM_MODE_BEET=y # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set # CONFIG_IPV6_VTI is not set -CONFIG_IPV6_SIT=m +CONFIG_IPV6_SIT=y # CONFIG_IPV6_SIT_6RD is not set CONFIG_IPV6_NDISC_NODETYPE=y # CONFIG_IPV6_TUNNEL is not set @@ -779,7 +785,7 @@ CONFIG_IPV6_NDISC_NODETYPE=y # CONFIG_IPV6_MROUTE is not set # CONFIG_NETLABEL is not set # CONFIG_NETWORK_SECMARK is not set -# CONFIG_NET_PTP_CLASSIFY is not set +CONFIG_NET_PTP_CLASSIFY=y # CONFIG_NETWORK_PHY_TIMESTAMPING is not set CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set @@ -802,6 +808,7 @@ CONFIG_NETFILTER_INGRESS=y # IP: Netfilter Configuration # # CONFIG_NF_DEFRAG_IPV4 is not set +# CONFIG_NF_DUP_IPV4 is not set # CONFIG_NF_LOG_ARP is not set # CONFIG_NF_LOG_IPV4 is not set # CONFIG_NF_REJECT_IPV4 is not set @@ -812,6 +819,7 @@ CONFIG_NETFILTER_INGRESS=y # IPv6: Netfilter Configuration # # CONFIG_NF_DEFRAG_IPV6 is not set +# CONFIG_NF_DUP_IPV6 is not set # CONFIG_NF_REJECT_IPV6 is not set # CONFIG_NF_LOG_IPV6 is not set # CONFIG_IP6_NF_IPTABLES is not set @@ -909,6 +917,7 @@ CONFIG_BT_BNEP=m CONFIG_BT_BNEP_MC_FILTER=y CONFIG_BT_BNEP_PROTO_FILTER=y CONFIG_BT_HIDP=m +CONFIG_BT_HS=y CONFIG_BT_LE=y # CONFIG_BT_SELFTEST is not set CONFIG_BT_DEBUGFS=y @@ -931,6 +940,7 @@ CONFIG_BT_HCIUART_LL=y CONFIG_BT_HCIUART_3WIRE=y # CONFIG_BT_HCIUART_INTEL is not set # CONFIG_BT_HCIUART_BCM is not set +# CONFIG_BT_HCIUART_QCA is not set CONFIG_BT_HCIBCM203X=m CONFIG_BT_HCIBPA10X=m CONFIG_BT_HCIBFUSB=m @@ -977,6 +987,7 @@ CONFIG_MAC80211_STA_HASH_MAX_SIZE=0 # CONFIG_CAIF is not set # CONFIG_CEPH_LIB is not set # CONFIG_NFC is not set +# CONFIG_LWTUNNEL is not set CONFIG_HAVE_BPF_JIT=y # @@ -1096,6 +1107,7 @@ CONFIG_MTD_PHYSMAP_OF=y # Self-contained MTD device drivers # # CONFIG_MTD_DATAFLASH is not set +CONFIG_MTD_M25P80=m # CONFIG_MTD_SST25L is not set # CONFIG_MTD_SLRAM is not set # CONFIG_MTD_PHRAM is not set @@ -1112,7 +1124,7 @@ CONFIG_MTD_NAND=y CONFIG_MTD_NAND_BCH=y CONFIG_MTD_NAND_ECC_BCH=y # CONFIG_MTD_SM_COMMON is not set -# CONFIG_MTD_NAND_DENALI is not set +# CONFIG_MTD_NAND_DENALI_DT is not set # CONFIG_MTD_NAND_GPIO is not set CONFIG_MTD_NAND_OMAP2=y CONFIG_MTD_NAND_OMAP_BCH=y @@ -1136,7 +1148,8 @@ CONFIG_MTD_ONENAND_OMAP2=y # # CONFIG_MTD_LPDDR is not set # CONFIG_MTD_LPDDR2_NVM is not set -# CONFIG_MTD_SPI_NOR is not set +CONFIG_MTD_SPI_NOR=m +CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y CONFIG_MTD_UBI=y CONFIG_MTD_UBI_WL_THRESHOLD=4096 CONFIG_MTD_UBI_BEB_LIMIT=20 @@ -1253,6 +1266,7 @@ CONFIG_SENSORS_LIS3_I2C=m # CONFIG_ECHO is not set # CONFIG_CXL_BASE is not set # CONFIG_CXL_KERNEL_API is not set +# CONFIG_CXL_EEH is not set # # SCSI device support @@ -1389,6 +1403,8 @@ CONFIG_SMC91X=y CONFIG_SMSC911X=y # CONFIG_SMSC911X_ARCH_HOOKS is not set # CONFIG_NET_VENDOR_STMICRO is not set +CONFIG_NET_VENDOR_SYNOPSYS=y +# CONFIG_SYNOPSYS_DWC_ETH_QOS is not set CONFIG_NET_VENDOR_TI=y CONFIG_TI_DAVINCI_EMAC=y CONFIG_TI_DAVINCI_MDIO=y @@ -1396,7 +1412,7 @@ CONFIG_TI_DAVINCI_CPDMA=y CONFIG_TI_CPSW_PHY_SEL=y CONFIG_TI_CPSW_ALE=y CONFIG_TI_CPSW=y -# CONFIG_TI_CPTS is not set +CONFIG_TI_CPTS=y # CONFIG_NET_VENDOR_VIA is not set # CONFIG_NET_VENDOR_WIZNET is not set CONFIG_PHYLIB=y @@ -1404,6 +1420,7 @@ CONFIG_PHYLIB=y # # MII PHY device drivers # +# CONFIG_AQUANTIA_PHY is not set CONFIG_AT803X_PHY=y # CONFIG_AMD_PHY is not set # CONFIG_MARVELL_PHY is not set @@ -1412,6 +1429,7 @@ CONFIG_AT803X_PHY=y # CONFIG_LXT_PHY is not set # CONFIG_CICADA_PHY is not set # CONFIG_VITESSE_PHY is not set +# CONFIG_TERANETICS_PHY is not set CONFIG_SMSC_PHY=y # CONFIG_BROADCOM_PHY is not set # CONFIG_BCM7XXX_PHY is not set @@ -1423,6 +1441,7 @@ CONFIG_SMSC_PHY=y # CONFIG_LSI_ET1011C_PHY is not set # CONFIG_MICREL_PHY is not set # CONFIG_DP83867_PHY is not set +# CONFIG_MICROCHIP_PHY is not set # CONFIG_FIXED_PHY is not set # CONFIG_MDIO_BITBANG is not set # CONFIG_MDIO_BUS_MUX_GPIO is not set @@ -1441,6 +1460,7 @@ CONFIG_USB_NET_DRIVERS=m # CONFIG_USB_PEGASUS is not set # CONFIG_USB_RTL8150 is not set # CONFIG_USB_RTL8152 is not set +# CONFIG_USB_LAN78XX is not set CONFIG_USB_USBNET=m CONFIG_USB_NET_AX8817X=m CONFIG_USB_NET_AX88179_178A=m @@ -1575,7 +1595,7 @@ CONFIG_KEYBOARD_TWL4030=m # CONFIG_INPUT_JOYSTICK is not set # CONFIG_INPUT_TABLET is not set CONFIG_INPUT_TOUCHSCREEN=y -CONFIG_OF_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_PROPERTIES=y CONFIG_TOUCHSCREEN_ADS7846=m # CONFIG_TOUCHSCREEN_AD7877 is not set # CONFIG_TOUCHSCREEN_AD7879 is not set @@ -1603,12 +1623,14 @@ CONFIG_TOUCHSCREEN_ADS7846=m # CONFIG_TOUCHSCREEN_MCS5000 is not set # CONFIG_TOUCHSCREEN_MMS114 is not set # CONFIG_TOUCHSCREEN_MTOUCH is not set +# CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set # CONFIG_TOUCHSCREEN_INEXIO is not set # CONFIG_TOUCHSCREEN_MK712 is not set # CONFIG_TOUCHSCREEN_PENMOUNT is not set CONFIG_TOUCHSCREEN_EDT_FT5X06=m # CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set # CONFIG_TOUCHSCREEN_TOUCHWIN is not set +CONFIG_TOUCHSCREEN_TI_AM335X_TSC=m CONFIG_TOUCHSCREEN_PIXCIR=m # CONFIG_TOUCHSCREEN_WDT87XX_I2C is not set # CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set @@ -1711,6 +1733,7 @@ CONFIG_SERIAL_8250_RSA=y # CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST is not set # CONFIG_SERIAL_MAX3100 is not set # CONFIG_SERIAL_MAX310X is not set +# CONFIG_SERIAL_UARTLITE is not set CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y CONFIG_SERIAL_OF_PLATFORM=y @@ -1759,6 +1782,7 @@ CONFIG_I2C_HELPER_AUTO=y # # CONFIG_I2C_CBUS_GPIO is not set # CONFIG_I2C_DESIGNWARE_PLATFORM is not set +# CONFIG_I2C_EMEV2 is not set # CONFIG_I2C_GPIO is not set # CONFIG_I2C_OCORES is not set CONFIG_I2C_OMAP=y @@ -1833,7 +1857,15 @@ CONFIG_SSI_PROTOCOL=m # # PPS support # -# CONFIG_PPS is not set +CONFIG_PPS=y +# CONFIG_PPS_DEBUG is not set + +# +# PPS clients support +# +# CONFIG_PPS_CLIENT_KTIMER is not set +# CONFIG_PPS_CLIENT_LDISC is not set +# CONFIG_PPS_CLIENT_GPIO is not set # # PPS generators support @@ -1842,7 +1874,7 @@ CONFIG_SSI_PROTOCOL=m # # PTP clock support # -# CONFIG_PTP_1588_CLOCK is not set +CONFIG_PTP_1588_CLOCK=y # # Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. @@ -1911,6 +1943,7 @@ CONFIG_GPIO_TWL4030=y # CONFIG_GPIO_MAX7301 is not set # CONFIG_GPIO_MCP23S08 is not set # CONFIG_GPIO_MC33880 is not set +# CONFIG_GPIO_ZX is not set # # USB GPIO expanders @@ -1946,6 +1979,7 @@ CONFIG_HDQ_MASTER_OMAP=m CONFIG_POWER_SUPPLY=y # CONFIG_POWER_SUPPLY_DEBUG is not set # CONFIG_PDA_POWER is not set +# CONFIG_GENERIC_ADC_BATTERY is not set # CONFIG_TEST_POWER is not set # CONFIG_BATTERY_DS2780 is not set # CONFIG_BATTERY_DS2781 is not set @@ -2021,6 +2055,7 @@ CONFIG_HWMON=m # CONFIG_SENSORS_G762 is not set CONFIG_SENSORS_GPIO_FAN=m # CONFIG_SENSORS_HIH6130 is not set +# CONFIG_SENSORS_IIO_HWMON is not set # CONFIG_SENSORS_IT87 is not set # CONFIG_SENSORS_JC42 is not set # CONFIG_SENSORS_POWR1220 is not set @@ -2184,6 +2219,7 @@ CONFIG_MFD_CORE=y # CONFIG_MFD_DA9052_SPI is not set # CONFIG_MFD_DA9052_I2C is not set # CONFIG_MFD_DA9055 is not set +# CONFIG_MFD_DA9062 is not set # CONFIG_MFD_DA9063 is not set # CONFIG_MFD_DA9150 is not set # CONFIG_MFD_DLN2 is not set @@ -2226,7 +2262,7 @@ CONFIG_MFD_CORE=y # CONFIG_ABX500_CORE is not set # CONFIG_MFD_STMPE is not set CONFIG_MFD_SYSCON=y -# CONFIG_MFD_TI_AM335X_TSCADC is not set +CONFIG_MFD_TI_AM335X_TSCADC=m # CONFIG_MFD_LP3943 is not set # CONFIG_MFD_LP8788 is not set CONFIG_MFD_OMAP_USB_HOST=y @@ -2286,6 +2322,7 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=y # CONFIG_REGULATOR_MAX8660 is not set # CONFIG_REGULATOR_MAX8952 is not set # CONFIG_REGULATOR_MAX8973 is not set +# CONFIG_REGULATOR_MT6311 is not set CONFIG_REGULATOR_PALMAS=y CONFIG_REGULATOR_PBIAS=y # CONFIG_REGULATOR_PFUZE100 is not set @@ -2305,10 +2342,6 @@ CONFIG_REGULATOR_TWL4030=y # # Graphics support # - -# -# Direct Rendering Manager -# # CONFIG_DRM is not set # @@ -2402,6 +2435,7 @@ CONFIG_LCD_PLATFORM=y CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_BACKLIGHT_GENERIC=m CONFIG_BACKLIGHT_PWM=m +# CONFIG_BACKLIGHT_PM8941_WLED is not set # CONFIG_BACKLIGHT_ADP8860 is not set # CONFIG_BACKLIGHT_ADP8870 is not set # CONFIG_BACKLIGHT_LM3630A is not set @@ -2514,7 +2548,6 @@ CONFIG_SND_OMAP_SOC_MCPDM=m CONFIG_SND_OMAP_SOC_OMAP_TWL4030=m CONFIG_SND_OMAP_SOC_OMAP_ABE_TWL6040=m CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=m -# CONFIG_SND_SOC_QCOM is not set # CONFIG_SND_SOC_XTFPGA_I2S is not set CONFIG_SND_SOC_I2C_AND_SPI=m @@ -2538,9 +2571,11 @@ CONFIG_SND_SOC_I2C_AND_SPI=m # CONFIG_SND_SOC_CS4271_I2C is not set # CONFIG_SND_SOC_CS4271_SPI is not set # CONFIG_SND_SOC_CS42XX8_I2C is not set +# CONFIG_SND_SOC_CS4349 is not set CONFIG_SND_SOC_DMIC=m # CONFIG_SND_SOC_HDMI_CODEC is not set # CONFIG_SND_SOC_ES8328 is not set +# CONFIG_SND_SOC_GTM601 is not set # CONFIG_SND_SOC_PCM1681 is not set # CONFIG_SND_SOC_PCM1792A is not set # CONFIG_SND_SOC_PCM512x_I2C is not set @@ -2555,6 +2590,7 @@ CONFIG_SND_SOC_DMIC=m # CONFIG_SND_SOC_SSM4567 is not set # CONFIG_SND_SOC_STA32X is not set # CONFIG_SND_SOC_STA350 is not set +# CONFIG_SND_SOC_STI_SAS is not set # CONFIG_SND_SOC_TAS2552 is not set # CONFIG_SND_SOC_TAS5086 is not set # CONFIG_SND_SOC_TAS571X is not set @@ -2584,7 +2620,7 @@ CONFIG_SND_SOC_TWL6040=m # CONFIG_SND_SOC_WM8962 is not set # CONFIG_SND_SOC_WM8978 is not set # CONFIG_SND_SOC_TPA6130A2 is not set -# CONFIG_SND_SIMPLE_CARD is not set +CONFIG_SND_SIMPLE_CARD=m # CONFIG_SOUND_PRIME is not set # @@ -2616,6 +2652,7 @@ CONFIG_HID_GENERIC=m # CONFIG_HID_ELECOM is not set # CONFIG_HID_ELO is not set # CONFIG_HID_EZKEY is not set +# CONFIG_HID_GEMBIRD is not set # CONFIG_HID_HOLTEK is not set # CONFIG_HID_GT683R is not set # CONFIG_HID_KEYTOUCH is not set @@ -2773,9 +2810,13 @@ CONFIG_USB_MUSB_OMAP2PLUS=m CONFIG_USB_MUSB_AM35X=m CONFIG_USB_MUSB_DSPS=m CONFIG_USB_MUSB_AM335X_CHILD=m + +# +# MUSB DMA mode +# +# CONFIG_MUSB_PIO_ONLY is not set # CONFIG_USB_INVENTRA_DMA is not set # CONFIG_USB_TI_CPPI41_DMA is not set -CONFIG_MUSB_PIO_ONLY=y CONFIG_USB_DWC3=m # CONFIG_USB_DWC3_HOST is not set # CONFIG_USB_DWC3_GADGET is not set @@ -2785,11 +2826,6 @@ CONFIG_USB_DWC3_DUAL_ROLE=y # Platform Glue Driver Support # CONFIG_USB_DWC3_OMAP=m - -# -# Debugging features -# -# CONFIG_USB_DWC3_DEBUG is not set # CONFIG_USB_DWC2 is not set # CONFIG_USB_CHIPIDEA is not set # CONFIG_USB_ISP1760 is not set @@ -2976,7 +3012,6 @@ CONFIG_LEDS_PWM=m # LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM) # # CONFIG_LEDS_BLINKM is not set -# CONFIG_LEDS_PM8941_WLED is not set # # LED Triggers @@ -3085,6 +3120,7 @@ CONFIG_RTC_DRV_TWL4030=m # CONFIG_RTC_DRV_BQ4802 is not set # CONFIG_RTC_DRV_RP5C01 is not set # CONFIG_RTC_DRV_V3020 is not set +# CONFIG_RTC_DRV_ZYNQMP is not set # # on-CPU RTC drivers @@ -3102,16 +3138,17 @@ CONFIG_DMADEVICES=y # # DMA Devices # -# CONFIG_DW_DMAC is not set -CONFIG_TI_EDMA=y -CONFIG_TI_DMA_CROSSBAR=y -CONFIG_DMA_OMAP=y -# CONFIG_TI_CPPI41 is not set -# CONFIG_FSL_EDMA is not set -# CONFIG_NBPFAXI_DMA is not set CONFIG_DMA_ENGINE=y CONFIG_DMA_VIRTUAL_CHANNELS=y CONFIG_DMA_OF=y +CONFIG_DMA_OMAP=y +# CONFIG_FSL_EDMA is not set +# CONFIG_IDMA64 is not set +# CONFIG_NBPFAXI_DMA is not set +# CONFIG_TI_CPPI41 is not set +CONFIG_TI_DMA_CROSSBAR=y +CONFIG_TI_EDMA=y +# CONFIG_DW_DMAC is not set # # DMA Clients @@ -3191,6 +3228,7 @@ CONFIG_EXTCON=m # # Extcon Device Drivers # +# CONFIG_EXTCON_ADC_JACK is not set # CONFIG_EXTCON_GPIO is not set CONFIG_EXTCON_PALMAS=m # CONFIG_EXTCON_RT8973A is not set @@ -3199,7 +3237,192 @@ CONFIG_EXTCON_USB_GPIO=m CONFIG_MEMORY=y CONFIG_TI_EMIF=m CONFIG_OMAP_GPMC=y -# CONFIG_IIO is not set +CONFIG_IIO=m +CONFIG_IIO_BUFFER=y +# CONFIG_IIO_BUFFER_CB is not set +CONFIG_IIO_KFIFO_BUF=m +# CONFIG_IIO_TRIGGER is not set + +# +# Accelerometers +# +# CONFIG_BMA180 is not set +# CONFIG_BMC150_ACCEL is not set +# CONFIG_IIO_ST_ACCEL_3AXIS is not set +# CONFIG_KXSD9 is not set +# CONFIG_KXCJK1013 is not set +# CONFIG_MMA8452 is not set +# CONFIG_MMA9551 is not set +# CONFIG_MMA9553 is not set +# CONFIG_STK8312 is not set +# CONFIG_STK8BA50 is not set + +# +# Analog to digital converters +# +# CONFIG_AD7266 is not set +# CONFIG_AD7291 is not set +# CONFIG_AD7298 is not set +# CONFIG_AD7476 is not set +# CONFIG_AD7791 is not set +# CONFIG_AD7793 is not set +# CONFIG_AD7887 is not set +# CONFIG_AD7923 is not set +# CONFIG_AD799X is not set +# CONFIG_CC10001_ADC is not set +# CONFIG_MAX1027 is not set +# CONFIG_MAX1363 is not set +# CONFIG_MCP320X is not set +# CONFIG_MCP3422 is not set +# CONFIG_NAU7802 is not set +# CONFIG_TI_ADC081C is not set +# CONFIG_TI_ADC128S052 is not set +CONFIG_TI_AM335X_ADC=m +# CONFIG_TWL4030_MADC is not set +# CONFIG_TWL6030_GPADC is not set +# CONFIG_VF610_ADC is not set + +# +# Amplifiers +# +# CONFIG_AD8366 is not set + +# +# Hid Sensor IIO Common +# + +# +# SSP Sensor Common +# +# CONFIG_IIO_SSP_SENSORHUB is not set + +# +# Digital to analog converters +# +# CONFIG_AD5064 is not set +# CONFIG_AD5360 is not set +# CONFIG_AD5380 is not set +# CONFIG_AD5421 is not set +# CONFIG_AD5446 is not set +# CONFIG_AD5449 is not set +# CONFIG_AD5504 is not set +# CONFIG_AD5624R_SPI is not set +# CONFIG_AD5686 is not set +# CONFIG_AD5755 is not set +# CONFIG_AD5764 is not set +# CONFIG_AD5791 is not set +# CONFIG_AD7303 is not set +# CONFIG_M62332 is not set +# CONFIG_MAX517 is not set +# CONFIG_MAX5821 is not set +# CONFIG_MCP4725 is not set +# CONFIG_MCP4922 is not set + +# +# Frequency Synthesizers DDS/PLL +# + +# +# Clock Generator/Distribution +# +# CONFIG_AD9523 is not set + +# +# Phase-Locked Loop (PLL) frequency synthesizers +# +# CONFIG_ADF4350 is not set + +# +# Digital gyroscope sensors +# +# CONFIG_ADIS16080 is not set +# CONFIG_ADIS16130 is not set +# CONFIG_ADIS16136 is not set +# CONFIG_ADIS16260 is not set +# CONFIG_ADXRS450 is not set +# CONFIG_BMG160 is not set +# CONFIG_IIO_ST_GYRO_3AXIS is not set +# CONFIG_ITG3200 is not set + +# +# Humidity sensors +# +# CONFIG_DHT11 is not set +# CONFIG_SI7005 is not set +# CONFIG_SI7020 is not set + +# +# Inertial measurement units +# +# CONFIG_ADIS16400 is not set +# CONFIG_ADIS16480 is not set +# CONFIG_KMX61 is not set +# CONFIG_INV_MPU6050_IIO is not set + +# +# Light sensors +# +# CONFIG_ADJD_S311 is not set +# CONFIG_AL3320A is not set +# CONFIG_APDS9300 is not set +# CONFIG_BH1750 is not set +# CONFIG_CM32181 is not set +# CONFIG_CM3232 is not set +# CONFIG_CM3323 is not set +# CONFIG_CM36651 is not set +# CONFIG_GP2AP020A00F is not set +# CONFIG_ISL29125 is not set +# CONFIG_JSA1212 is not set +# CONFIG_RPR0521 is not set +# CONFIG_LTR501 is not set +# CONFIG_OPT3001 is not set +# CONFIG_PA12203001 is not set +# CONFIG_STK3310 is not set +# CONFIG_TCS3414 is not set +# CONFIG_TCS3472 is not set +# CONFIG_SENSORS_TSL2563 is not set +# CONFIG_TSL4531 is not set +# CONFIG_VCNL4000 is not set + +# +# Magnetometer sensors +# +# CONFIG_AK8975 is not set +# CONFIG_AK09911 is not set +# CONFIG_MAG3110 is not set +# CONFIG_MMC35240 is not set +# CONFIG_IIO_ST_MAGN_3AXIS is not set +# CONFIG_BMC150_MAGN is not set + +# +# Inclinometer sensors +# + +# +# Pressure sensors +# +# CONFIG_BMP280 is not set +# CONFIG_MPL115 is not set +# CONFIG_MPL3115 is not set +# CONFIG_MS5611 is not set +# CONFIG_IIO_ST_PRESS is not set +# CONFIG_T5403 is not set + +# +# Lightning sensors +# +# CONFIG_AS3935 is not set + +# +# Proximity sensors +# +# CONFIG_SX9500 is not set + +# +# Temperature sensors +# +# CONFIG_MLX90614 is not set +# CONFIG_TMP006 is not set CONFIG_PWM=y CONFIG_PWM_SYSFS=y # CONFIG_PWM_FSL_FTM is not set @@ -3232,6 +3455,12 @@ CONFIG_TWL4030_USB=m # CONFIG_POWERCAP is not set # CONFIG_MCB is not set +# +# Performance monitor support +# +CONFIG_ARM_PMU=y +# CONFIG_RAS is not set + # # Android # @@ -3250,15 +3479,13 @@ CONFIG_DCACHE_WORD_ACCESS=y CONFIG_EXT2_FS=y # CONFIG_EXT2_FS_XATTR is not set CONFIG_EXT3_FS=y -CONFIG_EXT3_DEFAULTS_TO_ORDERED=y -# CONFIG_EXT3_FS_XATTR is not set +# CONFIG_EXT3_FS_POSIX_ACL is not set +# CONFIG_EXT3_FS_SECURITY is not set CONFIG_EXT4_FS=y # CONFIG_EXT4_FS_POSIX_ACL is not set # CONFIG_EXT4_FS_SECURITY is not set # CONFIG_EXT4_ENCRYPTION is not set # CONFIG_EXT4_DEBUG is not set -CONFIG_JBD=y -# CONFIG_JBD_DEBUG is not set CONFIG_JBD2=y # CONFIG_JBD2_DEBUG is not set CONFIG_FS_MBCACHE=y @@ -3546,7 +3773,6 @@ CONFIG_PROVE_RCU=y # CONFIG_TORTURE_TEST is not set # CONFIG_RCU_TORTURE_TEST is not set CONFIG_RCU_CPU_STALL_TIMEOUT=21 -CONFIG_RCU_CPU_STALL_INFO=y # CONFIG_RCU_TRACE is not set # CONFIG_RCU_EQS_DEBUG is not set # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set @@ -3608,6 +3834,7 @@ CONFIG_PROBE_EVENTS=y # CONFIG_TEST_FIRMWARE is not set # CONFIG_TEST_UDELAY is not set # CONFIG_MEMTEST is not set +# CONFIG_TEST_STATIC_KEYS is not set # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y # CONFIG_KGDB is not set @@ -3673,6 +3900,7 @@ CONFIG_CRYPTO_MANAGER2=y CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y CONFIG_CRYPTO_GF128MUL=m CONFIG_CRYPTO_NULL=m +CONFIG_CRYPTO_NULL2=y # CONFIG_CRYPTO_PCRYPT is not set CONFIG_CRYPTO_WORKQUEUE=y # CONFIG_CRYPTO_CRYPTD is not set @@ -3778,6 +4006,11 @@ CONFIG_CRYPTO_HW=y # CONFIG_CRYPTO_DEV_OMAP_AES is not set # CONFIG_CRYPTO_DEV_OMAP_DES is not set # CONFIG_ASYMMETRIC_KEY_TYPE is not set + +# +# Certificates for signature checking +# +# CONFIG_SYSTEM_TRUSTED_KEYRING is not set # CONFIG_ARM_CRYPTO is not set CONFIG_BINARY_PRINTF=y @@ -3791,7 +4024,6 @@ CONFIG_GENERIC_STRNLEN_USER=y CONFIG_GENERIC_NET_UTILS=y CONFIG_GENERIC_PCI_IOMAP=y CONFIG_GENERIC_IO=y -CONFIG_PERCPU_RWSEM=y CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y CONFIG_CRC_CCITT=y CONFIG_CRC16=y @@ -3842,7 +4074,6 @@ CONFIG_GLOB=y CONFIG_NLATTR=y CONFIG_GENERIC_ATOMIC64=y CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y -CONFIG_AVERAGE=y # CONFIG_CORDIC is not set CONFIG_DDR=y CONFIG_LIBFDT=y @@ -3860,5 +4091,6 @@ CONFIG_FONT_8x16=y # CONFIG_FONT_SUN8x16 is not set # CONFIG_FONT_SUN12x22 is not set # CONFIG_FONT_10x18 is not set +# CONFIG_SG_SPLIT is not set CONFIG_ARCH_HAS_SG_CHAIN=y # CONFIG_VIRTUALIZATION is not set diff --git a/patches/reverts/0002-Revert-spi-spidev-Warn-loudly-if-instantiated-from-D.patch b/patches/reverts/0002-Revert-spi-spidev-Warn-loudly-if-instantiated-from-D.patch index 8b76b220cb7f31ba3c9141e4b0fd0390eaacbe52..1fa3de86b578d81bce0e746e371123fc2bcf5fa0 100644 --- a/patches/reverts/0002-Revert-spi-spidev-Warn-loudly-if-instantiated-from-D.patch +++ b/patches/reverts/0002-Revert-spi-spidev-Warn-loudly-if-instantiated-from-D.patch @@ -10,7 +10,7 @@ This reverts commit 956b200a846e324322f6211034c734c65a38e550. 1 file changed, 7 insertions(+), 19 deletions(-) diff --git a/drivers/spi/spidev.c b/drivers/spi/spidev.c -index dd616ff..13aedf4 100644 +index 029463a..48d6b8c5 100644 --- a/drivers/spi/spidev.c +++ b/drivers/spi/spidev.c @@ -690,14 +690,6 @@ static const struct file_operations spidev_fops = { @@ -34,7 +34,7 @@ index dd616ff..13aedf4 100644 - /* - * spidev should never be referenced in DT without a specific -- * compatbile string, it is a Linux implementation thing +- * compatible string, it is a Linux implementation thing - * rather than a description of the hardware. - */ - if (spi->dev.of_node && !of_match_device(spidev_dt_ids, &spi->dev)) { diff --git a/patches/ti/cpu_freq/0008-ARM-dts-am43x-epos-evm-Hook-dcdc2-as-the-cpu0-supply.patch b/patches/ti/cpu_freq/0008-ARM-dts-am43x-epos-evm-Hook-dcdc2-as-the-cpu0-supply.patch index 03d61b05be9be9674a8764185cb9ae51f9506da9..a5cb9cb47e62b9f518acc1147f94383496bfcba1 100644 --- a/patches/ti/cpu_freq/0008-ARM-dts-am43x-epos-evm-Hook-dcdc2-as-the-cpu0-supply.patch +++ b/patches/ti/cpu_freq/0008-ARM-dts-am43x-epos-evm-Hook-dcdc2-as-the-cpu0-supply.patch @@ -11,17 +11,17 @@ Signed-off-by: Dave Gerlach <d-gerlach@ti.com> 1 file changed, 4 insertions(+) diff --git a/arch/arm/boot/dts/am43x-epos-evm.dts b/arch/arm/boot/dts/am43x-epos-evm.dts -index 795d68a..bd88e61 100644 +index 86c2dfb..b3e3f80 100644 --- a/arch/arm/boot/dts/am43x-epos-evm.dts +++ b/arch/arm/boot/dts/am43x-epos-evm.dts -@@ -686,3 +686,7 @@ - }; - }; +@@ -792,3 +792,7 @@ + tx-num-evt = <32>; + rx-num-evt = <32>; }; + +&cpu { + cpu0-supply = <&dcdc2>; +}; -- -2.1.4 +2.5.0 diff --git a/patches/ti/cpu_freq/0009-ARM-dts-am437x-gp-evm-Hook-dcdc2-as-the-cpu0-supply.patch b/patches/ti/cpu_freq/0009-ARM-dts-am437x-gp-evm-Hook-dcdc2-as-the-cpu0-supply.patch index 3c2c2f3abdba66dad27ebc4a8fe778bd4971c2b5..4c298957e74a9cd2967b6c0ef8733a7e479a604c 100644 --- a/patches/ti/cpu_freq/0009-ARM-dts-am437x-gp-evm-Hook-dcdc2-as-the-cpu0-supply.patch +++ b/patches/ti/cpu_freq/0009-ARM-dts-am437x-gp-evm-Hook-dcdc2-as-the-cpu0-supply.patch @@ -11,17 +11,17 @@ Signed-off-by: Dave Gerlach <d-gerlach@ti.com> 1 file changed, 4 insertions(+) diff --git a/arch/arm/boot/dts/am437x-gp-evm.dts b/arch/arm/boot/dts/am437x-gp-evm.dts -index 84aa30c..c24deb3 100644 +index 22038f2..33efc2e 100644 --- a/arch/arm/boot/dts/am437x-gp-evm.dts +++ b/arch/arm/boot/dts/am437x-gp-evm.dts -@@ -790,3 +790,7 @@ - }; - }; +@@ -954,3 +954,7 @@ + clock-names = "ext-clk", "int-clk"; + status = "okay"; }; + +&cpu { + cpu0-supply = <&dcdc2>; +}; -- -2.1.4 +2.5.1 diff --git a/patches/ti/iodelay/0003-pinctrl-Introduce-TI-IOdelay-configuration-driver.patch b/patches/ti/iodelay/0003-pinctrl-Introduce-TI-IOdelay-configuration-driver.patch index 2c25919f9515cfd743fac246ebe51e6b5f361527..85a235b8e2da120aaee48e8b5769cc4be57013d9 100644 --- a/patches/ti/iodelay/0003-pinctrl-Introduce-TI-IOdelay-configuration-driver.patch +++ b/patches/ti/iodelay/0003-pinctrl-Introduce-TI-IOdelay-configuration-driver.patch @@ -1049,19 +1049,19 @@ index 0000000..e4c6e25 +MODULE_DESCRIPTION("Pinconf driver for TI's IO Delay module"); +MODULE_LICENSE("GPL v2"); diff --git a/include/dt-bindings/pinctrl/dra.h b/include/dt-bindings/pinctrl/dra.h -index 7448edf..0a26495 100644 +index 4379e29..a7e4ae3 100644 --- a/include/dt-bindings/pinctrl/dra.h +++ b/include/dt-bindings/pinctrl/dra.h -@@ -30,6 +30,8 @@ - #define MUX_MODE14 0xe - #define MUX_MODE15 0xf +@@ -50,6 +50,8 @@ + + #define MODE_SELECT (1 << 8) +#define MANUAL_MODE MODE_SELECT + #define PULL_ENA (0 << 16) #define PULL_DIS (1 << 16) #define PULL_UP (1 << 17) -@@ -47,5 +49,9 @@ +@@ -67,5 +69,9 @@ #define PIN_INPUT_PULLUP (PULL_ENA | INPUT_EN | PULL_UP) #define PIN_INPUT_PULLDOWN (PULL_ENA | INPUT_EN) @@ -1072,5 +1072,5 @@ index 7448edf..0a26495 100644 #endif -- -2.1.4 +2.5.0 diff --git a/version.sh b/version.sh index 5abd9d11083ff11f5f3fc8b1f66d5ad12c29a2bb..eb23f956c4b0d23c1fa0dba387d1dd877bb40abc 100644 --- a/version.sh +++ b/version.sh @@ -12,9 +12,9 @@ config="omap2plus_defconfig" toolchain="gcc_linaro_gnueabihf_4_9" #Kernel/Build -KERNEL_REL=4.2 -KERNEL_TAG=${KERNEL_REL} -BUILD=bone2 +KERNEL_REL=4.3 +KERNEL_TAG=${KERNEL_REL}-rc1 +BUILD=bone0 kernel_rt=".X-rtY" #v3.X-rcX + upto SHA @@ -22,7 +22,7 @@ kernel_rt=".X-rtY" #KERNEL_SHA="" #git branch -BRANCH="am33x-v4.2" +BRANCH="am33x-v4.3" DISTRO=cross DEBARCH=armhf