summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBertrand Jacquin <bertrand@jacquin.bzh>2019-07-13 13:33:45 +0100
committerBertrand Jacquin <bertrand@jacquin.bzh>2019-07-13 13:33:45 +0100
commit5679875a726eb2810a2e0568ef6a32ad85330290 (patch)
tree1232fe4d239ed1d5dce296f6b25515f0ed0e3d73
parentsys-kernel/longterm-sources: Bump 4.14 (diff)
downloadetc-portage-patches-5679875a726eb2810a2e0568ef6a32ad85330290.tar.gz
sys-kernel/longterm-sources: Bump 4.19
-rw-r--r--sys-kernel/boest-v4.19.50/0001-patch-4.19-ja1.diff.patch2127
-rw-r--r--sys-kernel/boest-v4.19.50/0002-pool-2.6.25-tcp-timewait-20s.diff.patch27
-rw-r--r--sys-kernel/boest-v4.19.50/0003-pool-2.6.25-disable-tcp-debug.diff.patch25
-rw-r--r--sys-kernel/boest-v4.19.50/0004-TCP-add-a-sysctl-to-disable-simultaneous-connection-.patch142
-rw-r--r--sys-kernel/boest-v4.19.50/0005-pool-2.6.25-disable-kbdrate-at-boot.diff.patch34
-rw-r--r--sys-kernel/boest-v4.19.50/0006-Disable-CONFIG_PROCESSOR_SELECT-printk-s.patch45
-rw-r--r--sys-kernel/boest-v4.19.50/0007-This-patch-adds-support-for-a-restricted-user-contro.patch75
-rw-r--r--sys-kernel/boest-v4.19.50/0008-fs-Enable-link-security-restrictions-by-default.patch26
-rw-r--r--sys-kernel/boest-v4.19.50/0009-The-encryption-is-only-mandatory-to-be-enforced-when.patch38
-rw-r--r--sys-kernel/boest-v4.19.50/0010-usb-storage-Disable-UAS-on-JMicron-SATA-enclosure.patch37
-rw-r--r--sys-kernel/boest-v4.19.50/0011-4.19-2600_enable-key-swapping-for-apple-mac.patch.patch125
-rw-r--r--sys-kernel/boest-v4.19.50/0012-4.19-4200_fbcondecor.patch.patch2121
-rw-r--r--sys-kernel/boest-v4.19.50/0013-4.19-4400_alpha-sysctl-uac.patch.patch153
-rw-r--r--sys-kernel/boest-v4.19.50/0014-4.19-4567_distro-Gentoo-Kconfig.patch.patch173
-rw-r--r--sys-kernel/boest-v4.19.50/0015-WARNING.patch565
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0001-arm-partially-revert-702b94bff3c50542a6e4ab9a4f4cef0.patch107
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0002-smsx95xx-fix-crimes-against-truesize.patch49
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0003-smsc95xx-Experimental-Enable-turbo_mode-and-packetsi.patch45
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0004-Allow-mac-address-to-be-set-in-smsc95xx.patch98
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0005-Protect-__release_resource-against-resources-without.patch30
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0006-irq-bcm2836-Prevent-spurious-interrupts-and-trap-the.patch29
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0007-irq-bcm2836-Avoid-Invalid-trigger-warning.patch26
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0008-irqchip-bcm2835-Add-FIQ-support.patch131
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0009-irqchip-irq-bcm2835-Add-2836-FIQ-support.patch101
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0010-spidev-Add-spidev-compatible-string-to-silence-warni.patch23
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0011-spi-bcm2835-Support-pin-groups-other-than-7-11.patch82
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0012-spi-bcm2835-Disable-forced-software-CS.patch36
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0013-spi-bcm2835-Remove-unused-code.patch90
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0014-dmaengine-bcm2835-Load-driver-early-and-support-lega.patch105
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0015-firmware-Updated-mailbox-header.patch38
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0016-rtc-Add-SPI-alias-for-pcf2123-driver.patch22
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0017-watchdog-bcm2835-Support-setting-reboot-partition.patch104
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0018-reboot-Use-power-off-rather-than-busy-spinning-when-.patch25
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0019-bcm-Make-RASPBERRYPI_POWER-depend-on-PM.patch21
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0020-Register-the-clocks-early-during-the-boot-process-so.patch47
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0021-bcm2835-rng-Avoid-initialising-if-already-enabled.patch27
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0022-kbuild-Ignore-dtco-targets-when-filtering-symbols.patch22
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0023-clk-bcm2835-Mark-used-PLLs-and-dividers-CRITICAL.patch30
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0024-clk-bcm2835-Add-claim-clocks-property.patch104
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0025-clk-bcm2835-Read-max-core-clock-from-firmware.patch117
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0026-clk-bcm2835-Mark-GPIO-clocks-enabled-at-boot-as-crit.patch40
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0027-sound-Demote-deferral-errors-to-INFO-level.patch39
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0028-Update-vfpmodule.c.patch139
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0029-i2c-bcm2835-Add-debug-support.patch191
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0030-mm-Remove-the-PFN-busy-warning.patch27
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0031-ASoC-Add-prompt-for-ICS43432-codec.patch27
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0032-irqchip-irq-bcm2836-Remove-regmap-and-syscon-use.patch116
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0033-lan78xx-Enable-LEDs-and-auto-negotiation.patch50
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0034-amba_pl011-Don-t-use-DT-aliases-for-numbering.patch31
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0035-amba_pl011-Round-input-clock-up.patch88
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0036-amba_pl011-Insert-mb-for-correct-FIFO-handling.patch29
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0037-amba_pl011-Add-cts-event-workaround-DT-property.patch51
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0038-pinctrl-bcm2835-Set-base-to-0-give-expected-gpio-num.patch24
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0039-Main-bcm2708-bcm2709-linux-port.patch158
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0040-Add-dwc_otg-driver.patch61338
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0041-bcm2708-framebuffer-driver.patch3489
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0042-Speed-up-console-framebuffer-imageblit-function.patch211
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0043-dmaengine-Add-support-for-BCM2708.patch648
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0044-MMC-added-alternative-MMC-driver.patch1893
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0045-Adding-bcm2835-sdhost-driver-and-an-overlay-to-enabl.patch2432
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0046-vc_mem-Add-vc_mem-driver-for-querying-firmware-memor.patch523
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0047-vcsm-VideoCore-shared-memory-service-for-BCM2835.patch4987
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0048-Add-dev-gpiomem-device-for-rootless-user-GPIO-access.patch307
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0049-Add-SMI-driver.patch1945
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0050-MISC-bcm2835-smi-use-clock-manager-and-fix-reload-is.patch171
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0051-Add-SMI-NAND-driver.patch356
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0052-Add-cpufreq-driver.patch265
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0053-Add-Chris-Boot-s-i2c-driver.patch666
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0054-char-broadcom-Add-vcio-module.patch226
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0055-firmware-bcm2835-Support-ARCH_BCM270x.patch85
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0056-scripts-Add-mkknlimg-and-knlinfo-scripts-from-tools-.patch537
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0057-BCM2708-Add-core-Device-Tree-support.patch16222
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0058-BCM270x_DT-Add-pwr_led-and-the-required-input-trigge.patch178
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0059-fbdev-add-FBIOCOPYAREA-ioctl.patch271
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0060-Added-Device-IDs-for-August-DVB-T-205.patch24
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0061-rpi-ft5406-Add-touchscreen-driver-for-pi-LCD-display.patch346
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0062-Improve-__copy_to_user-and-__copy_from_user-performa.patch1575
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0063-gpio-poweroff-Allow-it-to-work-on-Raspberry-Pi.patch37
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0064-mfd-Add-Raspberry-Pi-Sense-HAT-core-driver.patch860
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0065-ASoC-pcm512x-implement-set_tdm_slot-interface.patch82
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0066-ASoC-Add-support-for-Rpi-DAC.patch129
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0067-Add-IQaudIO-Sound-Card-support-for-Raspberry-Pi.patch294
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0068-Added-support-for-HiFiBerry-DAC.patch601
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0069-Added-driver-for-HiFiBerry-Amp-amplifier-add-on-boar.patch655
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0070-Add-driver-for-rpi-proto.patch170
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0071-Add-Support-for-JustBoom-Audio-boards.patch175
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0072-New-AudioInjector.net-Pi-soundcard-with-low-jitter-a.patch208
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0073-New-driver-for-RRA-DigiDAC1-soundcard-using-WM8741-W.patch432
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0074-Add-support-for-Dion-Audio-LOCO-DAC-AMP-HAT.patch133
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0075-Allo-Piano-DAC-boards-Initial-2-channel-stereo-suppo.patch159
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0076-Add-support-for-Allo-Piano-DAC-2.1-plus-add-on-board.patch1059
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0077-Add-support-for-Allo-Boss-DAC-add-on-board-for-Raspb.patch673
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0078-Support-for-Blokas-Labs-pisound-board.patch1273
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0079-ASoC-Add-driver-for-Cirrus-Logic-Audio-Card.patch1050
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0080-sound-Support-for-Dion-Audio-LOCO-V2-DAC-AMP-HAT.patch140
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0081-Add-support-for-Fe-Pi-audio-sound-card.-1867.patch172
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0082-Add-support-for-the-AudioInjector.net-Octo-sound-car.patch376
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0083-Driver-support-for-Google-voiceHAT-soundcard.patch256
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0084-Driver-and-overlay-for-Allo-Katana-DAC.patch378
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0085-ASoC-wm8804-MCLK-configuration-options-32-bit.patch34
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0086-ASoC-Add-generic-RPI-driver-for-simple-soundcards.patch302
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0087-ASoC-Add-Kconfig-and-Makefile-for-sound-soc-bcm.patch268
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0088-ASoC-Create-a-generic-Pi-Hat-WM8804-driver.patch461
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0089-rpi_display-add-backlight-driver-and-overlay.patch178
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0090-bcm2835-virtgpio-Virtual-GPIO-driver.patch262
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0091-net-Add-non-mainline-source-for-rtl8192cu-wlan.patch172818
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0092-OF-DT-Overlay-configfs-interface.patch435
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0093-brcm-adds-support-for-BCM43341-wifi.patch134
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0094-brcmfmac-Mute-expected-startup-errors.patch26
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0095-hci_h5-Don-t-send-conf_req-when-ACTIVE.patch25
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0096-config-Add-default-configs.patch2735
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0097-Add-arm64-configuration-and-device-tree-differences..patch1415
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0098-ARM64-DWC_OTG-Port-dwc_otg-driver-to-ARM64.patch345
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0099-ARM64-Round-Robin-dispatch-IRQs-between-CPUs.patch76
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0100-ARM64-Force-hardware-emulation-of-deprecated-instruc.patch30
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0101-build-arm64-Add-rules-for-.dtbo-files-for-dts-overla.patch27
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0102-cache-export-clean-and-invalidate.patch54
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0103-AXI-performance-monitor-driver-2222.patch686
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0104-mcp2515-Use-DT-supplied-interrupt-flags.patch38
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0105-Tidy-up-of-the-ft5406-driver-to-use-DT-2189.patch336
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0106-cgroup-Disable-cgroup-memory-by-default.patch72
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0107-ARM-bcm2835-Set-Serial-number-and-Revision.patch65
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0108-ARM-Activate-FIQs-to-avoid-__irq_startup-warnings.patch38
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0109-serial-8250-bcm2835aux-suppress-EPROBE_DEFER.patch24
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0110-raspberrypi-firmware-Export-the-general-transaction-.patch34
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0111-drm-vc4-Add-a-mode-for-using-the-closed-firmware-for.patch772
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0112-drm-vc4-Name-the-primary-and-cursor-planes-in-fkms.patch26
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0113-drm-vc4-Add-DRM_DEBUG_ATOMIC-for-the-insides-of-fkms.patch72
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0114-drm-vc4-Fix-sending-of-page-flip-completion-events-i.patch44
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0115-drm-vc4-Add-support-for-setting-DPMS-in-firmwarekms.patch105
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0116-drm-vc4-Add-FB-modifier-support-to-firmwarekms.patch34
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0117-drm-vc4-Add-missing-enable-disable-vblank-handlers-i.patch83
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0118-vc4_fkms-Apply-firmware-overscan-offset-to-hardware-.patch59
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0119-drm-vc4-Fix-warning-about-vblank-interrupts-before-D.patch52
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0120-drm-vc4-Skip-SET_CURSOR_INFO-when-the-cursor-content.patch59
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0121-drm-vc4-Remove-duplicate-primary-cursor-fields-from-.patch73
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0122-vc4_firmware_kms-fix-build.patch40
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0123-hack-cache-Fix-linker-error.patch29
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0124-i2c-gpio-Also-set-bus-numbers-from-reg-property.patch37
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0125-sound-bcm-Fix-memset-dereference-warning.patch38
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0126-added-capture_clear-option-to-pps-gpio-via-dtoverlay.patch24
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0127-lan78xx-Read-initial-EEE-status-from-DT.patch42
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0128-hid-Reduce-default-mouse-polling-interval-to-60Hz.patch34
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0129-gpiolib-Don-t-prevent-IRQ-usage-of-output-GPIOs.patch48
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0130-Add-ability-to-export-gpio-used-by-gpio-poweroff.patch61
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0131-firmware-raspberrypi-Notify-firmware-of-a-reboot.patch86
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0132-irqchip-irq-bcm2835-Calc.-FIQ_START-at-boot-time.patch68
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0133-of-configfs-Use-of_overlay_fdt_apply-API-call.patch116
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0134-net-lan78xx-Disable-TCP-Segmentation-Offload-TSO.patch58
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0135-brcmfmac-Re-enable-firmware-roaming-support.patch31
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0136-lan78xx-Move-enabling-of-EEE-into-PHY-init-code.patch66
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0137-staging-vc04_services-Derive-g_cache_line_size.patch66
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0138-Add-rpi-poe-fan-driver.patch726
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0139-cxd2880-CXD2880_SPI_DRV-should-select-DVB_CXD2880-wi.patch22
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0140-bcm2835-interpolate-audio-delay.patch93
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0141-vchiq_2835_arm-Implement-a-DMA-pool-for-small-bulk-t.patch128
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0142-BCM2708_DT-Use-upstreamed-GPIO-expander-driver.patch56
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0143-overlays-Fix-a-few-dtc-warnings.patch193
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0144-bcm2708-rpi-Disable-txp-interrupt-unless-using-vc4-k.patch45
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0145-config-Enable-Raspberry-Pi-voltage-monitor.patch38
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0146-hwmon-raspberrypi-Prevent-voltage-low-warnings-from-.patch77
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0147-firmware-raspberrypi-Add-backward-compatible-get_thr.patch81
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0148-Increase-firmware-call-buffer-size-to-48-bytes.patch30
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0149-sc16is7xx-Don-t-spin-if-no-data-received.patch25
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0150-configs-Rebuild-bcmrpi3_defconfig-to-fix-warnings.patch328
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0151-brcmfmac-Disable-ARP-offloading-when-promiscuous.patch72
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0152-config-enable-Audio-Graph-Card-module.patch35
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0153-config-Add-IPVLAN-module.patch34
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0154-config-Add-I2C_TINY_USB-m.patch39
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0155-Add-device-tree-overlay-for-HD44780.patch111
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0156-Add-hd44780-module-to-defconfig.patch36
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0157-overlays-Add-addr-parameter-to-i2c-rtc-gpio.patch117
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0158-ARM-BCM270X-Add-the-18-bit-DPI-pinmux-to-the-RPI-DTs.patch32
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0159-overlays-Add-an-overlay-for-the-Adafruit-Kippah-with.patch92
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0160-overlays-Remove-stale-notes-about-vc4-s-CMA-alignmen.patch53
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0161-spi-Make-GPIO-CSs-honour-the-SPI_NO_CS-flag.patch34
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0162-devicetree-add-RPi-CM3-dts-to-arm64-mimic-the-RPi-3B.patch34
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0163-Add-support-for-audioinjector.net-ultra-soundcard.-2.patch151
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0164-ASoC-cs4265-Add-a-S-PDIF-enable-switch.patch28
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0165-ASoC-cs4265-Add-native-32bit-I2S-transport.patch31
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0166-configs-Add-SENSOR_GPIO_FAN-m.patch59
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0167-BCM270X_DT-Add-gpio-fan-overlay.patch120
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0168-HID-hid-bigbenff-driver-for-BigBen-Interactive-PS3OF.patch492
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0169-configs-Add-CONFIG_HID_BIGBEN_FF-m.patch37
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0170-ASoC-cs4265-Add-a-MIC-pre.-route-2696.patch36
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0171-Update-gpio-fan-overlay.dts-2711.patch74
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0172-drivers-thermal-step_wise-add-support-for-hysteresis.patch98
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0173-drivers-thermal-step_wise-avoid-throttling-at-hyster.patch24
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0174-hwmon-adjust-rpi-poe-fan-overlay-trip-points.patch69
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0175-overlays-add-overrides-for-PoE-HAT-fan-control.patch54
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0176-overlays-Add-gpio-no-bank0-irq-overlay.patch66
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0177-Add-hy28b-2017-model-device-tree-overlay-2721.patch215
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0178-config-Add-CONFIG_USBIP_VUDC.patch35
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0179-mmc-bcm2835-sdhost-Recover-from-MMC_SEND_EXT_CSD.patch52
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0180-overlays-pi3-disable-bt-Clear-out-bt_pins-node.patch35
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0181-Revert-rtc-pcf8523-properly-handle-oscillator-stop-b.patch58
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0182-Update-issue-templates-2736.patch49
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0183-overlays-uart0-return-GPIOs-14-and-15-to-inputs.patch44
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0184-mmc-bcm2835-sdhost-Fix-warnings-on-arm64.patch254
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0185-Fix-warning-in-bcm2835-smi-nand.patch25
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0186-media-ov5647-Add-set_fmt-and-get_fmt-calls.patch49
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0187-media-Documentation-DT-add-device-tree-for-PWDN-cont.patch35
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0188-media-ov5647-Add-support-for-PWDN-GPIO.patch94
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0189-media-ov5647-Add-support-for-non-continuous-clock-mo.patch81
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0190-media-tc358743-Increase-FIFO-level-to-374.patch33
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0191-media-tc358743-fix-connected-active-CSI-2-lane-repor.patch99
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0192-media-tc358743-Add-support-for-972Mbit-s-link-freq.patch81
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0193-media-tc358743-Check-I2C-succeeded-during-probe.patch100
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0194-media-adv7180-Default-to-the-first-valid-input.patch47
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0195-media-adv7180-Add-YPrPb-support-for-ADV7282M.patch26
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0196-media-videodev2-Add-helper-defines-for-printing-FOUR.patch30
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0197-dt-bindings-Document-BCM283x-CSI2-CCP2-receiver.patch105
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0198-media-bcm2835-unicam-Driver-for-CCP2-CSI2-camera-int.patch2449
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0199-MAINTAINERS-Add-entry-for-BCM2835-Unicam-driver.patch30
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0200-defconfig-Enable-Unicam-driver-and-various-sources-o.patch88
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0201-media-adv7180-Nasty-hack-to-allow-input-selection.patch91
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0202-BCM283x-DT-Add-CSI-nodes-to-the-device-tree.patch224
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0203-BCM270X_DT-Add-CSI-defines-for-all-the-downstream-Pi.patch135
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0204-arm-dt-Add-DT-overlays-for-ADV7282M-OV5647-and-TC358.patch493
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0205-dtoverlays-Add-support-for-ADV7280-M-ADV7281-M-and-A.patch143
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0206-Mailbox-firmware-calls-now-use-kmalloc-2749.patch91
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0207-vcsm-Fix-an-NULL-dereference-in-the-import_dmabuf-er.patch27
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0208-Update-README-2750.patch28
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0209-overlays-Remove-superfluous-address-size-cells.patch69
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0210-Revert-ASoC-wm8804-MCLK-configuration-options-32-bit.patch31
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0211-rpi-wm8804-soundcard-drop-PWRDN-register-writes.patch130
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0212-rpi-wm8804-soundcard-configure-wm8804-clocks-only-on.patch48
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0213-dtoverlays-Add-i2c-on-0-1-option-to-TC358743-ADV7282.patch150
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0214-overlays-Update-upstream-overlay.patch60
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0215-BCM2708_DT-update-firmware-node-binding.patch29
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0216-BCM2710_DT-fix-gpio-expander-bindings.patch73
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0217-ARM-dts-bcm283x-The-lan7515-PHY-node-has-moved.patch66
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0218-net-lan78xx-Support-auto-downshift-to-100Mb-s.patch87
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0219-dt-bindings-Document-microchip-downshift-after.patch26
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0220-ARM-dts-bcm283x-Set-downshift-after-for-Pi-3B.patch26
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0221-BCM270X_DT-Add-new-Ethernet-DT-parameters.patch59
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0222-BCM270X_DT-Mark-eth_downshift_after-as-an-integer.patch23
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0223-dwc-otg-FIQ-Fix-bad-mode-in-data-abort-handler.patch132
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0224-lirc-rpi-Remove-in-favour-of-gpio-ir.patch85
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0225-media-bcm2835-unicam-Pass-through-the-colorspace-on-.patch32
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0226-media-tc358743-Return-an-appropriate-colorspace-from.patch100
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0227-staging-bcm2835-camera-fix-module-autoloading.patch26
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0228-staging-bcm2835-camera-Move-module-info-to-the-end.patch40
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0229-staging-vchiq_arm-Fix-platform-device-unregistration.patch29
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0230-staging-vchiq_arm-Fix-camera-device-registration.patch58
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0231-staging-vchiq_arm-Register-a-platform-device-for-the.patch40
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0232-staging-bcm2835-audio-Enable-compile-test.patch24
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0233-staging-bcm2835-audio-use-module_platform_driver-mac.patch45
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0234-staging-bcm2835-audio-Drop-DT-dependency.patch118
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0235-staging-bcm2835-camera-Provide-more-specific-probe-e.patch168
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0236-staging-bcm2835-camera-Add-hint-about-possible-fault.patch33
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0237-staging-bcm2835-Don-t-probe-if-no-camera-is-detected.patch43
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0238-staging-vchiq_arm-Improve-error-handling-on-loading-.patch47
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0239-staging-bcm2835-camera-Do-not-bulk-receive-from-serv.patch199
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0240-staging-bcm2835-camera-Ensure-H264-header-bytes-get-.patch91
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0241-staging-bcm2835-camera-Correctly-denote-key-frames-i.patch27
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0242-staging-bcm2835-camera-Return-early-on-errors.patch199
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0243-staging-bcm2835-camera-Remove-dead-email-addresses.patch265
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0244-staging-bcm2835-camera-Fix-comment-style-violations.patch622
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0245-staging-bcm2835-camera-Fix-spacing-around-operators.patch108
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0246-staging-bcm2835-camera-Reduce-length-of-enum-names.patch780
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0247-staging-bcm2835-camera-Fix-multiple-line-dereference.patch135
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0248-staging-bcm2835-camera-Fix-brace-style-issues.patch62
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0249-staging-bcm2835-camera-Fix-missing-lines-between-ite.patch39
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0250-staging-bcm2835-camera-Fix-logical-continuation-spli.patch51
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0251-staging-bcm2835-camera-Fix-open-parenthesis-alignmen.patch145
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0252-staging-bcm2835_camera-Ensure-all-buffers-are-return.patch101
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0253-staging-bcm2835-camera-Remove-check-of-the-number-of.patch41
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0254-staging-bcm2835-camera-Handle-empty-EOS-buffers-whil.patch88
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0255-staging-bcm2835-camera-Set-sequence-number-correctly.patch50
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0256-staging-bcm2835-camera-Ensure-timestamps-never-go-ba.patch40
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0257-staging-bcm2835-camera-Avoid-unneeded-internal-decla.patch43
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0258-staging-bcm2835-camera-Add-multiple-inclusion-protec.patch52
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0259-staging-bcm2835-camera-Unify-header-inclusion-define.patch32
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0260-ARM-bcm2835_defconfig-Enable-bcm2835-camera.patch35
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0261-staging-bcm2835-camera-Fix-alignment-should-match-op.patch53
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0262-staging-bcm2835-camera-Fix-multiple-assignments-shou.patch32
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0263-staging-bcm2835-camera-Fix-up-all-formatting-in-mmal.patch338
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0264-staging-bcm2835-camera-Use-enums-for-max-value-in-co.patch114
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0265-staging-bcm2835-camera-Correct-V4L2_CID_COLORFX_CBCR.patch36
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0266-staging-bcm2835-camera-Remove-amend-some-obsolete-co.patch51
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0267-staging-vc04_services-Split-vchiq-mmal-into-a-module.patch298
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0268-staging-mmal-vchiq-Allocate-and-free-components-as-r.patch111
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0269-staging-mmal-vchiq-Avoid-use-of-bool-in-structures.patch97
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0270-staging-mmal-vchiq-Make-timeout-a-defined-parameter.patch40
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0271-staging-mmal-vchiq-Make-a-mmal_buf-struct-for-passin.patch288
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0272-staging-mmal-vchiq-Add-support-for-event-callbacks.patch364
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0273-staging-vc04_services-Support-sending-data-to-MMAL-p.patch44
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0274-staging-vc04_services-Fixup-vchiq-mmal-include-order.patch40
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0275-staging-vc04_services-Add-new-vc-sm-cma-driver.patch1902
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0276-staging-vc-sm-cma-Fixup-driver-for-older-VCHI-APIs.patch46
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0277-staging-vc04_services-Use-vc-sm-cma-to-support-zero-.patch171
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0278-media-videobuf2-Allow-exporting-of-a-struct-dmabuf.patch87
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0279-staging-vc04_services-Add-a-V4L2-M2M-codec-driver.patch2479
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0280-staging-vchiq_arm-Register-bcm2835-codec-as-a-platfo.patch36
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0281-staging-vchiq_arm-Register-vcsm-cma-as-a-platform-dr.patch36
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0282-ARM-bcm2835_defconfig-Enable-bcm2835-codec.patch24
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0283-config-Add-bcm2835-codec-to-Pi-defconfigs.patch37
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0284-staging-bcm2835-camera-Fix-stride-on-RGB3-BGR3-forma.patch55
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0285-media-vb2-Allow-reqbufs-0-with-in-use-MMAP-buffers.patch78
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0286-tpm-Make-SECURITYFS-a-weak-dependency.patch37
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0287-Enable-TPM-TIS-SPI-support-for-TPM1.2-and-TPM2.0-chi.patch110
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0288-Add-overlay-for-SLB9760-Iridium-LetsTrust-TPM.patch98
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0289-Revert-staging-vchiq_arm-Register-a-platform-device-.patch50
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0290-Revert-staging-bcm2835-audio-Drop-DT-dependency.patch116
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0291-ASoC-add-driver-for-3Dlab-Nano-soundcard-2758.patch521
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0292-overlays-Update-README-with-removal-of-lirc-rpi.patch89
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0293-staging-bcm2835-camera-Check-the-error-for-REPEAT_SE.patch33
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0294-gpio-ir-change-default-pull-configuration-to-up.patch51
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0295-firmware-raspberrypi-Report-the-fw-variant-during-pr.patch83
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0296-firmware-raspberrypi-Report-the-fw-git-hash-during-p.patch62
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0297-arm64-dts-broadcom-Enable-fixups-for-overlays.patch25
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0298-sc16is7xx-Fix-for-Unexpected-interrupt-8.patch112
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0299-dtoverlays-fe-pi-audio-fix-sgtl5000-compatible-strin.patch29
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0300-bcm2835_smi-re-add-dereference-to-fix-DMA-transfers.patch22
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0301-lan78xx-Debounce-link-events-to-minimize-poll-storm.patch46
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0302-ASoC-Add-support-for-AudioSense-Pi-add-on-soundcard.patch325
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0303-BCM270X-Adding-device-tree-support-for-AudioSense-Pi.patch141
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0304-configs-Add-CONFIG_SND_AUDIOSENSE_PI-m.patch50
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0305-configs-Add-CONFIG_USB_TMC-m.patch76
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0306-overlays-sdio-Add-enhanced-1-bit-support.patch111
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0307-dwc_otg-fix-bug-with-port_addr-assignment-for-single.patch30
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0308-configs-Add-CONFIG_USB_UAS-m.patch52
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0309-Added-driver-for-the-HiFiBerry-DAC-ADC-2694.patch614
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0310-Revert-pwm-Set-class-for-exported-channels-in-sysfs.patch65
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0311-pwm-Send-a-uevent-on-the-pwmchip-device-upon-channel.patch88
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0312-usb-dwc2-Disable-all-EP-s-on-disconnect.patch109
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0313-usb-dwc2-Fix-disable-all-EP-s-on-disconnect.patch154
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0314-overlays-Add-ssd1306-overlay-for-OLED-display.patch110
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0315-overlays-mcp23017-Support-the-MCP23008.patch51
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0316-overlays-Add-mcp342x-overlay.patch153
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0317-char-vcio-Add-compat-ioctl-handling.patch60
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0318-char-vcio-Fail-probe-if-rpi_firmware-is-not-found.patch30
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0319-staging-mmal-vchiq-Fix-client_component-for-64-bit-k.patch72
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0320-staging-bcm2835-camera-Add-sanity-checks-for-queue_s.patch46
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0321-staging-bcm2835-camera-Set-the-field-value-within-ea.patch29
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0322-char-vc_mem-Fix-up-compat-ioctls-for-64bit-kernel.patch115
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0323-char-vc_mem-Fix-all-coding-style-issues.patch432
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0324-clk-clk-bcm2835-Use-zd-when-printing-size_t.patch26
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0325-mfd-Add-rpi_sense_core-of-compatible-string.patch28
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0326-gpu-vc4_firmware_kms-Fix-up-64-bit-compile-warnings.patch68
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0327-input-rpi-ft5406-Clear-build-warning-on-64-bit-build.patch28
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0328-dtoverlays-Correct-DT-handling-camera-GPIOs.patch91
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0329-media-ov5647-Use-gpiod_set_value_cansleep.patch56
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0330-media-bcm2835-unicam-Power-on-subdev-on-open-release.patch123
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0331-audioinjector-octo-revert-to-dummy-supplies.patch25
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0332-staging-bcm2835-camera-Correct-ctrl-min-max-step-def.patch60
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0333-staging-bcm2835-codec-variable-vb2-may-be-used-unini.patch39
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0334-staging-bcm2835-codec-Fix-potentially-uninitialised-.patch27
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0335-video-bcm2708_fb-Add-compat_ioctl-support.patch156
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0336-video-bcm2708_fb-Fix-warnings-on-64-bit-builds.patch48
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0337-video-bcm2708_fb-Clean-up-coding-style-issues.patch277
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0338-bcm2835-dma-Add-support-for-per-channel-flags.patch50
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0339-bcm283x-Set-the-DISDEBUG-flag-for-SD-transfers.patch23
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0340-ASoC-pcm512x-Implement-the-digital_mute-interface.patch200
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0341-ASoC-pcm512x-Fix-a-double-unlock-in-pcm512x_digital_.patch64
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0342-usb-dwc_otg-Clean-up-build-warnings-on-64bit-kernels.patch118
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0343-usb-dwc_otg-Use-dma-allocation-for-mphi-dummy_send-b.patch80
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0344-staging-vchiq_arm-Set-up-dma-ranges-on-child-devices.patch49
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0345-staging-vc-sm-cma-Correct-DMA-configuration.patch46
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0346-staging-vc-sm-cma-Use-a-void-pointer-as-the-handle-w.patch119
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0347-staging-vc-sm-cma-Fix-up-for-64bit-builds.patch203
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0348-configs-Add-Unicam-and-subdevices-to-bcmrpi3_defconf.patch49
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0349-configs-Add-VIDEO_BCM2835-to-bcmrpi3_defconfig.patch25
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0350-configs-Add-V4L2-codec-driver-to-bcmrpi3_defconfig.patch25
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0351-config-Add-IPVLAN-module-to-bcmrpi3_defconfig.patch24
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0352-configs-Enable-the-AD193x-codecs.patch72
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0353-overlays-balenaFin-v1.1.0-carrier-board-update.patch113
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0354-configs-Add-CONFIG_LEDS_PCA963X-m.patch53
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0355-Revert-brcmfmac-Mute-expected-startup-errors.patch28
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0356-gpu-vc4-fkms-Update-driver-to-not-use-plane-crtc.patch38
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0357-drm-vc4-Programming-the-CTM-is-conditional-on-runnin.patch28
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0358-staging-mmal_vchiq-Add-in-the-Bayer-encoding-formats.patch53
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0359-staging-mmal-vchiq-Always-return-the-param-size-from.patch40
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0360-staging-mmal-vchiq-If-the-VPU-returns-an-error-don-t.patch31
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0361-staging-bcm2835_codec-Query-supported-formats-from-t.patch729
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0362-staging-bcm2835_codec-Add-support-for-the-ISP-as-an-.patch386
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0363-staging-bcm2835_codec-Add-an-option-for-ignoring-Bay.patch181
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0364-staging-bcm2835_codec-Fix-handling-of-VB2_MEMORY_DMA.patch192
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0365-staging-mmal-vchiq-Update-mmal_parameters.h-with-rec.patch58
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0366-staging-bcm2835_codec-Include-timing-info-in-SPS-hea.patch46
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0367-drm-vc4-Don-t-wait-for-vblank-on-fkms-cursor-updates.patch30
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0368-Fix-for-Pisound-kernel-module-in-Real-Time-kernel-co.patch40
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0369-config-Add-CONFIG_FB_TFT_SH1106-m.patch70
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0370-Added-mute-stream-func.patch148
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0371-lan78xx-EEE-support-is-now-a-PHY-property.patch28
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0372-video-bcm2708_fb-Try-allocating-on-the-ARM-and-passi.patch166
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0373-staging-vc_sm_cma-Remove-erroneous-misc_deregister.patch46
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0374-vcsm-Fix-makefile-include-on-out-of-tree-builds.patch29
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0375-vcsm-Remove-set-but-unused-variable.patch30
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0376-vcsm-Reduce-scope-of-local-functions.patch73
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0377-staging-bcm2835-codec-NULL-component-handle-on-queue.patch61
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0378-staging-vc-sm-cma-Remove-the-debugfs-directory-on-re.patch26
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0379-staging-vc-sm-cma-Use-devm_-allocs-for-sm_state.patch71
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0380-staging-vc-sm-cma-Don-t-fail-if-debugfs-calls-fail.patch39
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0381-staging-vc-sm-cma-Ensure-mutex-and-idr-are-destroyed.patch29
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0382-staging-bcm2835_codec-Clean-up-logging-on-unloading-.patch51
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0383-configs-Enable-MT76-USB-wifi.patch51
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0384-bcm2835-sdhost-Allow-for-sg-entries-that-cross-pages.patch34
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0385-overlays-sdio-Added-4-bit-support-on-GPIOs-34-39.-29.patch51
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0386-overlays-Fix-multiple-instantiation-of-sc16is7xx.patch63
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0387-configs-Re-enable-CONFIG_NETFILTER_XT_MATCH_SOCKET.patch53
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0388-bcm2835-mmc-Fix-DMA-channel-leak.patch44
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0389-bcm2835-mmc-Fix-struct-mmc_host-leak-on-probe.patch31
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0390-bcm2835-mmc-Fix-duplicate-free_irq-on-remove.patch40
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0391-bcm2835-mmc-Handle-mmc_add_host-errors.patch37
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0392-bcm2835-mmc-Deduplicate-reset-of-driver-data-on-remo.patch28
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0393-configs-Add-CONFIG_BATTERY_MAX17040.patch50
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0394-overlays-Add-max17040-support-to-i2c-sensor.patch60
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0395-defconfigs-disable-memory-and-IO-cgroups-2908.patch87
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0396-media-bcm2835-unicam-Add-support-for-enum-framesizes.patch135
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0397-staging-bcm2835-codec-Refactor-default-resolution-co.patch154
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0398-nvmem-add-type-attribute.patch135
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0399-rtc-rv3028-add-new-driver.patch868
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0400-configs-Add-RTC_DRV_RV3028-m.patch50
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0401-overlays-Add-rv3028-to-i2c-rtc.patch79
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0402-ASoC-tlv320aic32x4-SND_SOC_DAPM_MICBIAS-is-deprecate.patch82
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0403-ASoC-tlv320aic32x4-Break-out-clock-setting-into-sepa.patch66
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0404-ASoC-tlv320aic32x4-Properly-Set-Processing-Blocks.patch113
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0405-ASoC-tlv320aic32x4-Model-PLL-in-CCF.patch887
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0406-ASoC-tlv320aic32x4-Model-CODEC_CLKIN-in-CCF.patch124
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0407-ASoC-tlv320aic32x4-Model-DAC-ADC-dividers-in-CCF.patch312
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0408-ASoC-tlv320aic32x4-Model-BDIV-divider-in-CCF.patch214
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0409-ASoC-tlv320aic32x4-Control-clock-gating-with-CCF.patch111
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0410-ASoC-tlv320aic32x4-Move-aosr-and-dosr-setting-to-sep.patch61
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0411-ASoC-tlv320aic32x4-Dynamically-Determine-Clocking.patch289
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0412-ASoC-tlv320aic32x4-Restructure-set_dai_sysclk.patch53
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0413-ASoC-tlv320aic32x4-Remove-mclk-references.patch41
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0414-ASoC-tlv320aic32x4-Allow-192000-Sample-Rate.patch29
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0415-ASoC-tlv320aic32x4-Only-enable-with-common-clock.patch45
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0416-Audiophonics-I-Sabre-9038Q2M-DAC-driver.patch820
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0417-ASoC-tlv320aic32x4-Change-author-s-name.patch58
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0418-ASoC-tlv320aic32x4-Update-copyright-and-use-SPDX-ide.patch74
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0419-ASoC-tlv320aic32x4-Add-Switch-for-Setting-Common-Mod.patch42
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0420-ASoC-tlv320aic32x4-Add-Playback-PowerTune-Controls.patch56
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0421-dtoverlays-Add-Support-for-the-UDRC-DRAWS.patch453
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0422-dwc_otg-only-do_split-when-we-actually-need-to-do-a-.patch57
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0423-Input-ili210x-fetch-touchscreen-geometry-from-DT.patch493
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0424-Input-ili210x-add-DT-binding-document.patch48
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0425-configs-Add-TOUCHSCREEN_ILI210X-m.patch48
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0426-BCM2708-Add-core-Device-Tree-support-ilitek251x.patch97
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0427-dwc_otg-fix-locking-around-dequeueing-and-killing-UR.patch67
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0428-rtc-rv3028-Add-backup-switchover-mode-support.patch52
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0429-dt-bindings-rv3028-backup-switchover-support.patch22
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0430-overlays-Add-rv3028-backup-switchover-support-to-i2c.patch38
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0431-Maxim-MAX98357A-I2S-DAC-overlay-2935.patch136
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0432-sound-Fixes-for-audioinjector-octo-under-4.19.patch116
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0433-Revert-cgroup-Disable-cgroup-memory-by-default.patch65
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0434-Revert-defconfigs-disable-memory-and-IO-cgroups-2908.patch85
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0435-overlays-Add-PiGlow-overlay.patch153
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0436-configs-enable-LED-driver-for-PiGlow.patch58
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0437-Revert-bcm2835-interpolate-audio-delay.patch75
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0438-Revert-staging-bcm2835-audio-Enable-compile-test.patch24
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0439-Revert-staging-bcm2835-audio-use-module_platform_dri.patch44
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0440-staging-bcm2835-audio-Clean-up-mutex-locks.patch309
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0441-staging-bcm2835-audio-Remove-redundant-spdif-stream-.patch91
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0442-staging-bcm2835-audio-Clean-up-include-files-in-bcm2.patch45
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0443-staging-bcm2835-audio-Remove-redundant-substream-mas.patch121
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0444-staging-bcm2835-audio-Fix-mute-controls-volume-handl.patch281
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0445-staging-bcm2835-audio-Remove-redundant-function-call.patch101
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0446-staging-bcm2835-audio-Remove-superfluous-open-flag.patch65
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0447-staging-bcm2835-audio-Drop-useless-running-flag-and-.patch110
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0448-staging-bcm2835-audio-Fix-incorrect-draining-handlin.patch71
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0449-staging-bcm2835-audio-Kill-unused-spinlock.patch43
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0450-staging-bcm2835-audio-Use-PCM-runtime-values-instead.patch78
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0451-staging-bcm2835-audio-Drop-unnecessary-pcm-indirect-.patch31
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0452-staging-bcm2835-audio-Drop-useless-NULL-check.patch30
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0453-staging-bcm2835-audio-Propagate-parameter-setup-erro.patch42
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0454-staging-bcm2835-audio-Drop-debug-messages-in-bcm2835.patch152
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0455-staging-bcm2835-audio-Drop-superfluous-mutex-lock-du.patch51
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0456-staging-bcm2835-audio-Add-10ms-period-constraint.patch35
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0457-staging-bcm2835-audio-Make-single-vchi-handle.patch414
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0458-staging-bcm2835-audio-Code-refactoring-of-vchiq-acce.patch578
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0459-staging-bcm2835-audio-Operate-non-atomic-PCM-ops.patch601
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0460-staging-bcm2835-audio-Use-card-private_data.patch140
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0461-staging-bcm2835-audio-Use-standard-error-print-helpe.patch245
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0462-staging-bcm2835-audio-Remove-unnecessary-header-file.patch77
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0463-staging-bcm2835-audio-Move-module-parameter-descript.patch38
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0464-staging-bcm2835-audio-Use-coherent-device-buffers.patch63
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0465-staging-bcm2835-audio-Set-SNDRV_PCM_INFO_SYNC_APPLPT.patch42
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0466-staging-bcm2835-audio-Simplify-PCM-creation-helpers.patch202
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0467-staging-bcm2835-audio-Simplify-kctl-creation-helpers.patch164
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0468-staging-bcm2835-audio-Simplify-card-object-managemen.patch216
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0469-staging-bcm2835-audio-unify-FOURCC-command-definitio.patch75
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0470-staging-bcm2835-audio-don-t-initialize-memory-twice.patch32
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0471-staging-bcm2835-audio-reorder-variable-declarations-.patch124
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0472-staging-bcm2835-audio-use-anonymous-union-in-struct-.patch109
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0473-staging-bcm2835-audio-more-generic-probe-function-na.patch41
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0474-staging-bcm2835-audio-rename-platform_driver-structu.patch49
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0475-staging-bcm2835-audio-update-TODO.patch58
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0476-staging-bcm2835-audio-interpolate-audio-delay.patch86
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0477-staging-bcm2835-audio-Enable-compile-test.patch29
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0478-staging-bcm2835-audio-use-module_platform_driver-mac.patch50
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0479-staging-bcm2835-audio-Drop-DT-dependency.patch107
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0480-staging-bcm2835-audio-double-free-in-init-error-path.patch32
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0481-dts-Increase-default-coherent-pool-size.patch29
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0482-Revert-staging-bcm2835-audio-Drop-DT-dependency.patch98
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0483-configs-Enable-netdev-LED-trigger.patch48
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0484-smsc95xx-dynamically-fix-up-TX-buffer-alignment-with.patch66
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0485-lan78xx-use-default-alignment-for-rx-buffers.patch25
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0486-staging-bcm2835-codec-Correct-port-width-calc-for-tr.patch31
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0487-staging-bcm2835-codec-Remove-height-padding-for-ISP-.patch63
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0488-staging-mmal-vchiq-Free-the-event-context-for-contro.patch30
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0489-staging-mmal-vchiq-Replace-spinlock-protecting-conte.patch69
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0490-BCM270X_DT-Also-set-coherent_pool-1M-for-BT-Pis.patch53
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0491-configs-Enable-ICS-43432-I2S-microphone-module.patch48
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0492-arm-dts-overlays-rpi-sense-add-upstream-humidity-com.patch28
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0493-staging-mmal-vchiq-Fix-memory-leak-in-error-path.patch69
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0494-staging-vchiq-mmal-Fix-memory-leak-of-vchiq-instance.patch64
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0495-Revert-video-bcm2708_fb-Try-allocating-on-the-ARM-an.patch168
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0496-Added-IQaudIO-Pi-Codec-board-support-2969.patch427
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0497-Revert-smsc95xx-dynamically-fix-up-TX-buffer-alignme.patch64
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0498-configs-Enable-PIDs-cgroup.patch28
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0499-w1-ds2408-reset-on-output_write-retry-with-readback.patch142
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0500-w1-ds2482-cosmetic-fixes-after-54865314f5a1.patch93
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0501-sound-pcm512x-codec-Adding-352.8kHz-samplerate-suppo.patch23
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0502-ASoC-decommissioning-driver-for-3Dlab-Nano-soundcard.patch538
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0503-.gitignore-Add-.dtbo-explicitly.patch24
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0504-usb-dwc_otg-Clean-up-interrupt-claiming-code.patch165
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0505-overlays-Delete-the-deprecated-sdio-1bit-overlay.patch94
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0506-overlays-Remove-upstream-aux-interrupt-overlay.patch104
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0507-overlays-Standardise-on-compatible-brcm-bcm2835.patch2059
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0508-vc4-Remove-interrupt-and-DMA-trampling.patch125
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0509-BCM270X_DT-Add-non-removable-clone-of-mmc-node.patch220
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0510-BCM270X_DT-usb-Refactor-DTS-and-overlays.patch66
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0511-overlays-Update-upstream-overlay.patch128
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0512-w1-ds2408-Fix-typo-after-49695ac46861-reset-on-outpu.patch33
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0513-BCM270X_DT-Rename-Pi-Zero-W-DT-files.patch56
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0514-BCM270X_DT-Create-bcm2708-rpi-zero.dts.patch152
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0515-overlays-Fix-mmc-related-overlays-after-refactor.patch79
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0516-config-Add-NF_TABLES-support.patch170
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0517-Fixed-48k-timing-issue.patch97
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0518-staging-bcm2835-codec-Convert-V4L2-nsec-timestamps-t.patch48
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0519-staging-bcm2835-codec-Add-support-for-setting-S_PARM.patch120
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0520-w1-w1-gpio-Make-GPIO-an-output-for-strong-pullup.patch29
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0521-overlays-Update-w1-gpio-and-w1-gpio-pullup.patch84
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0522-bcm2835-sdhost-Fix-DMA-channel-leak-on-error-remove.patch33
-rw-r--r--sys-kernel/boest-v4.19.50/raspberrypi/0523-i2c-bcm2835-Model-Divider-in-CCF.patch272
-rw-r--r--sys-kernel/boest-v4.19.52/0001-patch-4.19-ja1.diff.patch2127
-rw-r--r--sys-kernel/boest-v4.19.52/0002-pool-2.6.25-tcp-timewait-20s.diff.patch27
-rw-r--r--sys-kernel/boest-v4.19.52/0003-pool-2.6.25-disable-tcp-debug.diff.patch25
-rw-r--r--sys-kernel/boest-v4.19.52/0004-TCP-add-a-sysctl-to-disable-simultaneous-connection-.patch142
-rw-r--r--sys-kernel/boest-v4.19.52/0005-pool-2.6.25-disable-kbdrate-at-boot.diff.patch34
-rw-r--r--sys-kernel/boest-v4.19.52/0006-Disable-CONFIG_PROCESSOR_SELECT-printk-s.patch45
-rw-r--r--sys-kernel/boest-v4.19.52/0007-This-patch-adds-support-for-a-restricted-user-contro.patch75
-rw-r--r--sys-kernel/boest-v4.19.52/0008-fs-Enable-link-security-restrictions-by-default.patch26
-rw-r--r--sys-kernel/boest-v4.19.52/0009-The-encryption-is-only-mandatory-to-be-enforced-when.patch38
-rw-r--r--sys-kernel/boest-v4.19.52/0010-usb-storage-Disable-UAS-on-JMicron-SATA-enclosure.patch37
-rw-r--r--sys-kernel/boest-v4.19.52/0011-4.19-2600_enable-key-swapping-for-apple-mac.patch.patch125
-rw-r--r--sys-kernel/boest-v4.19.52/0012-4.19-4200_fbcondecor.patch.patch2121
-rw-r--r--sys-kernel/boest-v4.19.52/0013-4.19-4400_alpha-sysctl-uac.patch.patch153
-rw-r--r--sys-kernel/boest-v4.19.52/0014-4.19-4567_distro-Gentoo-Kconfig.patch.patch173
-rw-r--r--sys-kernel/boest-v4.19.52/0015-WARNING.patch565
-rw-r--r--sys-kernel/boest-v4.19.58/0001-patch-4.19-ja1.diff.patch2127
-rw-r--r--sys-kernel/boest-v4.19.58/0002-pool-2.6.25-tcp-timewait-20s.diff.patch27
-rw-r--r--sys-kernel/boest-v4.19.58/0003-pool-2.6.25-disable-tcp-debug.diff.patch25
-rw-r--r--sys-kernel/boest-v4.19.58/0004-TCP-add-a-sysctl-to-disable-simultaneous-connection-.patch142
-rw-r--r--sys-kernel/boest-v4.19.58/0005-pool-2.6.25-disable-kbdrate-at-boot.diff.patch34
-rw-r--r--sys-kernel/boest-v4.19.58/0006-Disable-CONFIG_PROCESSOR_SELECT-printk-s.patch45
-rw-r--r--sys-kernel/boest-v4.19.58/0007-This-patch-adds-support-for-a-restricted-user-contro.patch75
-rw-r--r--sys-kernel/boest-v4.19.58/0008-fs-Enable-link-security-restrictions-by-default.patch26
-rw-r--r--sys-kernel/boest-v4.19.58/0009-The-encryption-is-only-mandatory-to-be-enforced-when.patch38
-rw-r--r--sys-kernel/boest-v4.19.58/0010-usb-storage-Disable-UAS-on-JMicron-SATA-enclosure.patch37
-rw-r--r--sys-kernel/boest-v4.19.58/0011-4.19-2600_enable-key-swapping-for-apple-mac.patch.patch125
-rw-r--r--sys-kernel/boest-v4.19.58/0012-4.19-4200_fbcondecor.patch.patch2121
-rw-r--r--sys-kernel/boest-v4.19.58/0013-4.19-4400_alpha-sysctl-uac.patch.patch153
-rw-r--r--sys-kernel/boest-v4.19.58/0014-4.19-4567_distro-Gentoo-Kconfig.patch.patch173
-rw-r--r--sys-kernel/boest-v4.19.58/0015-WARNING.patch565
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0001-arm-partially-revert-702b94bff3c50542a6e4ab9a4f4cef0.patch107
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0002-smsx95xx-fix-crimes-against-truesize.patch49
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0003-smsc95xx-Experimental-Enable-turbo_mode-and-packetsi.patch45
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0004-Allow-mac-address-to-be-set-in-smsc95xx.patch98
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0005-Protect-__release_resource-against-resources-without.patch30
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0006-irq-bcm2836-Prevent-spurious-interrupts-and-trap-the.patch29
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0007-irq-bcm2836-Avoid-Invalid-trigger-warning.patch26
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0008-irqchip-bcm2835-Add-FIQ-support.patch131
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0009-irqchip-irq-bcm2835-Add-2836-FIQ-support.patch101
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0010-spidev-Add-spidev-compatible-string-to-silence-warni.patch23
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0011-spi-bcm2835-Support-pin-groups-other-than-7-11.patch82
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0012-spi-bcm2835-Disable-forced-software-CS.patch36
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0013-spi-bcm2835-Remove-unused-code.patch90
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0014-dmaengine-bcm2835-Load-driver-early-and-support-lega.patch105
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0015-firmware-Updated-mailbox-header.patch38
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0016-rtc-Add-SPI-alias-for-pcf2123-driver.patch22
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0017-watchdog-bcm2835-Support-setting-reboot-partition.patch104
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0018-reboot-Use-power-off-rather-than-busy-spinning-when-.patch25
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0019-bcm-Make-RASPBERRYPI_POWER-depend-on-PM.patch21
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0020-Register-the-clocks-early-during-the-boot-process-so.patch47
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0021-bcm2835-rng-Avoid-initialising-if-already-enabled.patch27
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0022-kbuild-Ignore-dtco-targets-when-filtering-symbols.patch22
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0023-clk-bcm2835-Mark-used-PLLs-and-dividers-CRITICAL.patch30
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0024-clk-bcm2835-Add-claim-clocks-property.patch104
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0025-clk-bcm2835-Read-max-core-clock-from-firmware.patch117
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0026-clk-bcm2835-Mark-GPIO-clocks-enabled-at-boot-as-crit.patch40
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0027-sound-Demote-deferral-errors-to-INFO-level.patch39
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0028-Update-vfpmodule.c.patch139
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0029-i2c-bcm2835-Add-debug-support.patch191
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0030-mm-Remove-the-PFN-busy-warning.patch27
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0031-ASoC-Add-prompt-for-ICS43432-codec.patch27
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0032-irqchip-irq-bcm2836-Remove-regmap-and-syscon-use.patch116
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0033-lan78xx-Enable-LEDs-and-auto-negotiation.patch50
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0034-amba_pl011-Don-t-use-DT-aliases-for-numbering.patch31
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0035-amba_pl011-Round-input-clock-up.patch88
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0036-amba_pl011-Insert-mb-for-correct-FIFO-handling.patch29
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0037-amba_pl011-Add-cts-event-workaround-DT-property.patch51
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0038-pinctrl-bcm2835-Set-base-to-0-give-expected-gpio-num.patch24
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0039-Main-bcm2708-bcm2709-linux-port.patch158
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0040-Add-dwc_otg-driver.patch61338
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0041-bcm2708-framebuffer-driver.patch3489
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0042-Speed-up-console-framebuffer-imageblit-function.patch211
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0043-dmaengine-Add-support-for-BCM2708.patch648
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0044-MMC-added-alternative-MMC-driver.patch1893
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0045-Adding-bcm2835-sdhost-driver-and-an-overlay-to-enabl.patch2432
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0046-vc_mem-Add-vc_mem-driver-for-querying-firmware-memor.patch523
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0047-vcsm-VideoCore-shared-memory-service-for-BCM2835.patch4987
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0048-Add-dev-gpiomem-device-for-rootless-user-GPIO-access.patch307
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0049-Add-SMI-driver.patch1945
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0050-MISC-bcm2835-smi-use-clock-manager-and-fix-reload-is.patch171
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0051-Add-SMI-NAND-driver.patch356
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0052-Add-cpufreq-driver.patch265
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0053-Add-Chris-Boot-s-i2c-driver.patch666
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0054-char-broadcom-Add-vcio-module.patch226
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0055-firmware-bcm2835-Support-ARCH_BCM270x.patch85
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0056-scripts-Add-mkknlimg-and-knlinfo-scripts-from-tools-.patch537
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0057-BCM2708-Add-core-Device-Tree-support.patch16222
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0058-BCM270x_DT-Add-pwr_led-and-the-required-input-trigge.patch178
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0059-fbdev-add-FBIOCOPYAREA-ioctl.patch271
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0060-Added-Device-IDs-for-August-DVB-T-205.patch24
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0061-rpi-ft5406-Add-touchscreen-driver-for-pi-LCD-display.patch346
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0062-Improve-__copy_to_user-and-__copy_from_user-performa.patch1575
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0063-gpio-poweroff-Allow-it-to-work-on-Raspberry-Pi.patch37
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0064-mfd-Add-Raspberry-Pi-Sense-HAT-core-driver.patch860
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0065-ASoC-pcm512x-implement-set_tdm_slot-interface.patch82
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0066-ASoC-Add-support-for-Rpi-DAC.patch129
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0067-Add-IQaudIO-Sound-Card-support-for-Raspberry-Pi.patch294
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0068-Added-support-for-HiFiBerry-DAC.patch601
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0069-Added-driver-for-HiFiBerry-Amp-amplifier-add-on-boar.patch655
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0070-Add-driver-for-rpi-proto.patch170
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0071-Add-Support-for-JustBoom-Audio-boards.patch175
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0072-New-AudioInjector.net-Pi-soundcard-with-low-jitter-a.patch208
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0073-New-driver-for-RRA-DigiDAC1-soundcard-using-WM8741-W.patch432
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0074-Add-support-for-Dion-Audio-LOCO-DAC-AMP-HAT.patch133
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0075-Allo-Piano-DAC-boards-Initial-2-channel-stereo-suppo.patch159
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0076-Add-support-for-Allo-Piano-DAC-2.1-plus-add-on-board.patch1059
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0077-Add-support-for-Allo-Boss-DAC-add-on-board-for-Raspb.patch673
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0078-Support-for-Blokas-Labs-pisound-board.patch1273
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0079-ASoC-Add-driver-for-Cirrus-Logic-Audio-Card.patch1050
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0080-sound-Support-for-Dion-Audio-LOCO-V2-DAC-AMP-HAT.patch140
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0081-Add-support-for-Fe-Pi-audio-sound-card.-1867.patch172
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0082-Add-support-for-the-AudioInjector.net-Octo-sound-car.patch376
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0083-Driver-support-for-Google-voiceHAT-soundcard.patch256
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0084-Driver-and-overlay-for-Allo-Katana-DAC.patch378
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0085-ASoC-wm8804-MCLK-configuration-options-32-bit.patch34
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0086-ASoC-Add-generic-RPI-driver-for-simple-soundcards.patch302
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0087-ASoC-Add-Kconfig-and-Makefile-for-sound-soc-bcm.patch268
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0088-ASoC-Create-a-generic-Pi-Hat-WM8804-driver.patch461
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0089-rpi_display-add-backlight-driver-and-overlay.patch178
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0090-bcm2835-virtgpio-Virtual-GPIO-driver.patch262
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0091-net-Add-non-mainline-source-for-rtl8192cu-wlan.patch172818
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0092-OF-DT-Overlay-configfs-interface.patch435
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0093-brcm-adds-support-for-BCM43341-wifi.patch134
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0094-brcmfmac-Mute-expected-startup-errors.patch26
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0095-hci_h5-Don-t-send-conf_req-when-ACTIVE.patch25
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0096-config-Add-default-configs.patch2735
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0097-Add-arm64-configuration-and-device-tree-differences..patch1415
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0098-ARM64-DWC_OTG-Port-dwc_otg-driver-to-ARM64.patch345
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0099-ARM64-Round-Robin-dispatch-IRQs-between-CPUs.patch76
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0100-ARM64-Force-hardware-emulation-of-deprecated-instruc.patch30
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0101-build-arm64-Add-rules-for-.dtbo-files-for-dts-overla.patch27
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0102-cache-export-clean-and-invalidate.patch54
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0103-AXI-performance-monitor-driver-2222.patch686
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0104-mcp2515-Use-DT-supplied-interrupt-flags.patch38
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0105-Tidy-up-of-the-ft5406-driver-to-use-DT-2189.patch336
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0106-cgroup-Disable-cgroup-memory-by-default.patch72
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0107-ARM-bcm2835-Set-Serial-number-and-Revision.patch65
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0108-ARM-Activate-FIQs-to-avoid-__irq_startup-warnings.patch38
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0109-serial-8250-bcm2835aux-suppress-EPROBE_DEFER.patch24
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0110-raspberrypi-firmware-Export-the-general-transaction-.patch34
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0111-drm-vc4-Add-a-mode-for-using-the-closed-firmware-for.patch772
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0112-drm-vc4-Name-the-primary-and-cursor-planes-in-fkms.patch26
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0113-drm-vc4-Add-DRM_DEBUG_ATOMIC-for-the-insides-of-fkms.patch72
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0114-drm-vc4-Fix-sending-of-page-flip-completion-events-i.patch44
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0115-drm-vc4-Add-support-for-setting-DPMS-in-firmwarekms.patch105
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0116-drm-vc4-Add-FB-modifier-support-to-firmwarekms.patch34
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0117-drm-vc4-Add-missing-enable-disable-vblank-handlers-i.patch83
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0118-vc4_fkms-Apply-firmware-overscan-offset-to-hardware-.patch59
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0119-drm-vc4-Fix-warning-about-vblank-interrupts-before-D.patch52
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0120-drm-vc4-Skip-SET_CURSOR_INFO-when-the-cursor-content.patch59
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0121-drm-vc4-Remove-duplicate-primary-cursor-fields-from-.patch73
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0122-vc4_firmware_kms-fix-build.patch40
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0123-hack-cache-Fix-linker-error.patch29
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0124-i2c-gpio-Also-set-bus-numbers-from-reg-property.patch37
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0125-sound-bcm-Fix-memset-dereference-warning.patch38
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0126-added-capture_clear-option-to-pps-gpio-via-dtoverlay.patch24
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0127-lan78xx-Read-initial-EEE-status-from-DT.patch42
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0128-hid-Reduce-default-mouse-polling-interval-to-60Hz.patch34
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0129-gpiolib-Don-t-prevent-IRQ-usage-of-output-GPIOs.patch48
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0130-Add-ability-to-export-gpio-used-by-gpio-poweroff.patch61
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0131-firmware-raspberrypi-Notify-firmware-of-a-reboot.patch86
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0132-irqchip-irq-bcm2835-Calc.-FIQ_START-at-boot-time.patch68
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0133-of-configfs-Use-of_overlay_fdt_apply-API-call.patch116
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0134-net-lan78xx-Disable-TCP-Segmentation-Offload-TSO.patch58
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0135-brcmfmac-Re-enable-firmware-roaming-support.patch31
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0136-lan78xx-Move-enabling-of-EEE-into-PHY-init-code.patch66
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0137-staging-vc04_services-Derive-g_cache_line_size.patch66
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0138-Add-rpi-poe-fan-driver.patch726
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0139-cxd2880-CXD2880_SPI_DRV-should-select-DVB_CXD2880-wi.patch22
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0140-bcm2835-interpolate-audio-delay.patch93
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0141-vchiq_2835_arm-Implement-a-DMA-pool-for-small-bulk-t.patch128
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0142-BCM2708_DT-Use-upstreamed-GPIO-expander-driver.patch56
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0143-overlays-Fix-a-few-dtc-warnings.patch193
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0144-bcm2708-rpi-Disable-txp-interrupt-unless-using-vc4-k.patch45
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0145-config-Enable-Raspberry-Pi-voltage-monitor.patch38
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0146-hwmon-raspberrypi-Prevent-voltage-low-warnings-from-.patch77
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0147-firmware-raspberrypi-Add-backward-compatible-get_thr.patch81
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0148-Increase-firmware-call-buffer-size-to-48-bytes.patch30
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0149-sc16is7xx-Don-t-spin-if-no-data-received.patch25
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0150-configs-Rebuild-bcmrpi3_defconfig-to-fix-warnings.patch328
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0151-brcmfmac-Disable-ARP-offloading-when-promiscuous.patch72
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0152-config-enable-Audio-Graph-Card-module.patch35
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0153-config-Add-IPVLAN-module.patch34
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0154-config-Add-I2C_TINY_USB-m.patch39
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0155-Add-device-tree-overlay-for-HD44780.patch111
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0156-Add-hd44780-module-to-defconfig.patch36
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0157-overlays-Add-addr-parameter-to-i2c-rtc-gpio.patch117
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0158-ARM-BCM270X-Add-the-18-bit-DPI-pinmux-to-the-RPI-DTs.patch32
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0159-overlays-Add-an-overlay-for-the-Adafruit-Kippah-with.patch92
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0160-overlays-Remove-stale-notes-about-vc4-s-CMA-alignmen.patch53
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0161-spi-Make-GPIO-CSs-honour-the-SPI_NO_CS-flag.patch34
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0162-devicetree-add-RPi-CM3-dts-to-arm64-mimic-the-RPi-3B.patch34
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0163-Add-support-for-audioinjector.net-ultra-soundcard.-2.patch151
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0164-ASoC-cs4265-Add-a-S-PDIF-enable-switch.patch28
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0165-ASoC-cs4265-Add-native-32bit-I2S-transport.patch31
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0166-configs-Add-SENSOR_GPIO_FAN-m.patch59
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0167-BCM270X_DT-Add-gpio-fan-overlay.patch120
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0168-HID-hid-bigbenff-driver-for-BigBen-Interactive-PS3OF.patch492
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0169-configs-Add-CONFIG_HID_BIGBEN_FF-m.patch37
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0170-ASoC-cs4265-Add-a-MIC-pre.-route-2696.patch36
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0171-Update-gpio-fan-overlay.dts-2711.patch74
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0172-drivers-thermal-step_wise-add-support-for-hysteresis.patch98
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0173-drivers-thermal-step_wise-avoid-throttling-at-hyster.patch24
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0174-hwmon-adjust-rpi-poe-fan-overlay-trip-points.patch69
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0175-overlays-add-overrides-for-PoE-HAT-fan-control.patch54
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0176-overlays-Add-gpio-no-bank0-irq-overlay.patch66
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0177-Add-hy28b-2017-model-device-tree-overlay-2721.patch215
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0178-config-Add-CONFIG_USBIP_VUDC.patch35
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0179-mmc-bcm2835-sdhost-Recover-from-MMC_SEND_EXT_CSD.patch52
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0180-overlays-pi3-disable-bt-Clear-out-bt_pins-node.patch35
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0181-Revert-rtc-pcf8523-properly-handle-oscillator-stop-b.patch58
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0182-Update-issue-templates-2736.patch49
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0183-overlays-uart0-return-GPIOs-14-and-15-to-inputs.patch44
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0184-mmc-bcm2835-sdhost-Fix-warnings-on-arm64.patch254
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0185-Fix-warning-in-bcm2835-smi-nand.patch25
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0186-media-ov5647-Add-set_fmt-and-get_fmt-calls.patch49
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0187-media-Documentation-DT-add-device-tree-for-PWDN-cont.patch35
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0188-media-ov5647-Add-support-for-PWDN-GPIO.patch94
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0189-media-ov5647-Add-support-for-non-continuous-clock-mo.patch81
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0190-media-tc358743-Increase-FIFO-level-to-374.patch33
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0191-media-tc358743-fix-connected-active-CSI-2-lane-repor.patch99
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0192-media-tc358743-Add-support-for-972Mbit-s-link-freq.patch81
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0193-media-tc358743-Check-I2C-succeeded-during-probe.patch100
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0194-media-adv7180-Default-to-the-first-valid-input.patch47
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0195-media-adv7180-Add-YPrPb-support-for-ADV7282M.patch26
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0196-media-videodev2-Add-helper-defines-for-printing-FOUR.patch30
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0197-dt-bindings-Document-BCM283x-CSI2-CCP2-receiver.patch105
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0198-media-bcm2835-unicam-Driver-for-CCP2-CSI2-camera-int.patch2449
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0199-MAINTAINERS-Add-entry-for-BCM2835-Unicam-driver.patch30
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0200-defconfig-Enable-Unicam-driver-and-various-sources-o.patch88
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0201-media-adv7180-Nasty-hack-to-allow-input-selection.patch91
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0202-BCM283x-DT-Add-CSI-nodes-to-the-device-tree.patch224
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0203-BCM270X_DT-Add-CSI-defines-for-all-the-downstream-Pi.patch135
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0204-arm-dt-Add-DT-overlays-for-ADV7282M-OV5647-and-TC358.patch493
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0205-dtoverlays-Add-support-for-ADV7280-M-ADV7281-M-and-A.patch143
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0206-Mailbox-firmware-calls-now-use-kmalloc-2749.patch91
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0207-vcsm-Fix-an-NULL-dereference-in-the-import_dmabuf-er.patch27
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0208-Update-README-2750.patch28
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0209-overlays-Remove-superfluous-address-size-cells.patch69
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0210-Revert-ASoC-wm8804-MCLK-configuration-options-32-bit.patch31
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0211-rpi-wm8804-soundcard-drop-PWRDN-register-writes.patch130
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0212-rpi-wm8804-soundcard-configure-wm8804-clocks-only-on.patch48
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0213-dtoverlays-Add-i2c-on-0-1-option-to-TC358743-ADV7282.patch150
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0214-overlays-Update-upstream-overlay.patch60
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0215-BCM2708_DT-update-firmware-node-binding.patch29
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0216-BCM2710_DT-fix-gpio-expander-bindings.patch73
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0217-ARM-dts-bcm283x-The-lan7515-PHY-node-has-moved.patch66
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0218-net-lan78xx-Support-auto-downshift-to-100Mb-s.patch87
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0219-dt-bindings-Document-microchip-downshift-after.patch26
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0220-ARM-dts-bcm283x-Set-downshift-after-for-Pi-3B.patch26
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0221-BCM270X_DT-Add-new-Ethernet-DT-parameters.patch59
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0222-BCM270X_DT-Mark-eth_downshift_after-as-an-integer.patch23
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0223-dwc-otg-FIQ-Fix-bad-mode-in-data-abort-handler.patch132
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0224-lirc-rpi-Remove-in-favour-of-gpio-ir.patch85
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0225-media-bcm2835-unicam-Pass-through-the-colorspace-on-.patch32
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0226-media-tc358743-Return-an-appropriate-colorspace-from.patch100
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0227-staging-bcm2835-camera-fix-module-autoloading.patch26
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0228-staging-bcm2835-camera-Move-module-info-to-the-end.patch40
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0229-staging-vchiq_arm-Fix-platform-device-unregistration.patch29
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0230-staging-vchiq_arm-Fix-camera-device-registration.patch58
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0231-staging-vchiq_arm-Register-a-platform-device-for-the.patch40
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0232-staging-bcm2835-audio-Enable-compile-test.patch24
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0233-staging-bcm2835-audio-use-module_platform_driver-mac.patch45
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0234-staging-bcm2835-audio-Drop-DT-dependency.patch118
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0235-staging-bcm2835-camera-Provide-more-specific-probe-e.patch168
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0236-staging-bcm2835-camera-Add-hint-about-possible-fault.patch33
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0237-staging-bcm2835-Don-t-probe-if-no-camera-is-detected.patch43
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0238-staging-vchiq_arm-Improve-error-handling-on-loading-.patch47
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0239-staging-bcm2835-camera-Do-not-bulk-receive-from-serv.patch199
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0240-staging-bcm2835-camera-Ensure-H264-header-bytes-get-.patch91
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0241-staging-bcm2835-camera-Correctly-denote-key-frames-i.patch27
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0242-staging-bcm2835-camera-Return-early-on-errors.patch199
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0243-staging-bcm2835-camera-Remove-dead-email-addresses.patch265
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0244-staging-bcm2835-camera-Fix-comment-style-violations.patch622
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0245-staging-bcm2835-camera-Fix-spacing-around-operators.patch108
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0246-staging-bcm2835-camera-Reduce-length-of-enum-names.patch780
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0247-staging-bcm2835-camera-Fix-multiple-line-dereference.patch135
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0248-staging-bcm2835-camera-Fix-brace-style-issues.patch62
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0249-staging-bcm2835-camera-Fix-missing-lines-between-ite.patch39
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0250-staging-bcm2835-camera-Fix-logical-continuation-spli.patch51
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0251-staging-bcm2835-camera-Fix-open-parenthesis-alignmen.patch145
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0252-staging-bcm2835_camera-Ensure-all-buffers-are-return.patch101
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0253-staging-bcm2835-camera-Remove-check-of-the-number-of.patch41
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0254-staging-bcm2835-camera-Handle-empty-EOS-buffers-whil.patch88
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0255-staging-bcm2835-camera-Set-sequence-number-correctly.patch50
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0256-staging-bcm2835-camera-Ensure-timestamps-never-go-ba.patch40
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0257-staging-bcm2835-camera-Avoid-unneeded-internal-decla.patch43
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0258-staging-bcm2835-camera-Add-multiple-inclusion-protec.patch52
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0259-staging-bcm2835-camera-Unify-header-inclusion-define.patch32
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0260-ARM-bcm2835_defconfig-Enable-bcm2835-camera.patch35
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0261-staging-bcm2835-camera-Fix-alignment-should-match-op.patch53
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0262-staging-bcm2835-camera-Fix-multiple-assignments-shou.patch32
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0263-staging-bcm2835-camera-Fix-up-all-formatting-in-mmal.patch338
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0264-staging-bcm2835-camera-Use-enums-for-max-value-in-co.patch114
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0265-staging-bcm2835-camera-Correct-V4L2_CID_COLORFX_CBCR.patch36
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0266-staging-bcm2835-camera-Remove-amend-some-obsolete-co.patch51
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0267-staging-vc04_services-Split-vchiq-mmal-into-a-module.patch298
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0268-staging-mmal-vchiq-Allocate-and-free-components-as-r.patch111
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0269-staging-mmal-vchiq-Avoid-use-of-bool-in-structures.patch97
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0270-staging-mmal-vchiq-Make-timeout-a-defined-parameter.patch40
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0271-staging-mmal-vchiq-Make-a-mmal_buf-struct-for-passin.patch288
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0272-staging-mmal-vchiq-Add-support-for-event-callbacks.patch364
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0273-staging-vc04_services-Support-sending-data-to-MMAL-p.patch44
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0274-staging-vc04_services-Fixup-vchiq-mmal-include-order.patch40
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0275-staging-vc04_services-Add-new-vc-sm-cma-driver.patch1902
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0276-staging-vc-sm-cma-Fixup-driver-for-older-VCHI-APIs.patch46
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0277-staging-vc04_services-Use-vc-sm-cma-to-support-zero-.patch171
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0278-media-videobuf2-Allow-exporting-of-a-struct-dmabuf.patch87
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0279-staging-vc04_services-Add-a-V4L2-M2M-codec-driver.patch2479
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0280-staging-vchiq_arm-Register-bcm2835-codec-as-a-platfo.patch36
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0281-staging-vchiq_arm-Register-vcsm-cma-as-a-platform-dr.patch36
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0282-ARM-bcm2835_defconfig-Enable-bcm2835-codec.patch24
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0283-config-Add-bcm2835-codec-to-Pi-defconfigs.patch37
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0284-staging-bcm2835-camera-Fix-stride-on-RGB3-BGR3-forma.patch55
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0285-media-vb2-Allow-reqbufs-0-with-in-use-MMAP-buffers.patch78
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0286-tpm-Make-SECURITYFS-a-weak-dependency.patch37
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0287-Enable-TPM-TIS-SPI-support-for-TPM1.2-and-TPM2.0-chi.patch110
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0288-Add-overlay-for-SLB9760-Iridium-LetsTrust-TPM.patch98
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0289-Revert-staging-vchiq_arm-Register-a-platform-device-.patch50
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0290-Revert-staging-bcm2835-audio-Drop-DT-dependency.patch116
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0291-ASoC-add-driver-for-3Dlab-Nano-soundcard-2758.patch521
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0292-overlays-Update-README-with-removal-of-lirc-rpi.patch89
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0293-staging-bcm2835-camera-Check-the-error-for-REPEAT_SE.patch33
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0294-gpio-ir-change-default-pull-configuration-to-up.patch51
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0295-firmware-raspberrypi-Report-the-fw-variant-during-pr.patch83
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0296-firmware-raspberrypi-Report-the-fw-git-hash-during-p.patch62
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0297-arm64-dts-broadcom-Enable-fixups-for-overlays.patch25
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0298-sc16is7xx-Fix-for-Unexpected-interrupt-8.patch112
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0299-dtoverlays-fe-pi-audio-fix-sgtl5000-compatible-strin.patch29
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0300-bcm2835_smi-re-add-dereference-to-fix-DMA-transfers.patch22
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0301-lan78xx-Debounce-link-events-to-minimize-poll-storm.patch46
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0302-ASoC-Add-support-for-AudioSense-Pi-add-on-soundcard.patch325
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0303-BCM270X-Adding-device-tree-support-for-AudioSense-Pi.patch141
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0304-configs-Add-CONFIG_SND_AUDIOSENSE_PI-m.patch50
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0305-configs-Add-CONFIG_USB_TMC-m.patch76
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0306-overlays-sdio-Add-enhanced-1-bit-support.patch111
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0307-dwc_otg-fix-bug-with-port_addr-assignment-for-single.patch30
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0308-configs-Add-CONFIG_USB_UAS-m.patch52
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0309-Added-driver-for-the-HiFiBerry-DAC-ADC-2694.patch614
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0310-Revert-pwm-Set-class-for-exported-channels-in-sysfs.patch65
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0311-pwm-Send-a-uevent-on-the-pwmchip-device-upon-channel.patch88
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0312-usb-dwc2-Disable-all-EP-s-on-disconnect.patch109
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0313-usb-dwc2-Fix-disable-all-EP-s-on-disconnect.patch154
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0314-overlays-Add-ssd1306-overlay-for-OLED-display.patch110
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0315-overlays-mcp23017-Support-the-MCP23008.patch51
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0316-overlays-Add-mcp342x-overlay.patch153
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0317-char-vcio-Add-compat-ioctl-handling.patch60
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0318-char-vcio-Fail-probe-if-rpi_firmware-is-not-found.patch30
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0319-staging-mmal-vchiq-Fix-client_component-for-64-bit-k.patch72
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0320-staging-bcm2835-camera-Add-sanity-checks-for-queue_s.patch46
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0321-staging-bcm2835-camera-Set-the-field-value-within-ea.patch29
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0322-char-vc_mem-Fix-up-compat-ioctls-for-64bit-kernel.patch115
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0323-char-vc_mem-Fix-all-coding-style-issues.patch432
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0324-clk-clk-bcm2835-Use-zd-when-printing-size_t.patch26
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0325-mfd-Add-rpi_sense_core-of-compatible-string.patch28
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0326-gpu-vc4_firmware_kms-Fix-up-64-bit-compile-warnings.patch68
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0327-input-rpi-ft5406-Clear-build-warning-on-64-bit-build.patch28
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0328-dtoverlays-Correct-DT-handling-camera-GPIOs.patch91
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0329-media-ov5647-Use-gpiod_set_value_cansleep.patch56
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0330-media-bcm2835-unicam-Power-on-subdev-on-open-release.patch123
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0331-audioinjector-octo-revert-to-dummy-supplies.patch25
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0332-staging-bcm2835-camera-Correct-ctrl-min-max-step-def.patch60
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0333-staging-bcm2835-codec-variable-vb2-may-be-used-unini.patch39
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0334-staging-bcm2835-codec-Fix-potentially-uninitialised-.patch27
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0335-video-bcm2708_fb-Add-compat_ioctl-support.patch156
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0336-video-bcm2708_fb-Fix-warnings-on-64-bit-builds.patch48
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0337-video-bcm2708_fb-Clean-up-coding-style-issues.patch277
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0338-bcm2835-dma-Add-support-for-per-channel-flags.patch50
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0339-bcm283x-Set-the-DISDEBUG-flag-for-SD-transfers.patch23
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0340-ASoC-pcm512x-Implement-the-digital_mute-interface.patch200
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0341-ASoC-pcm512x-Fix-a-double-unlock-in-pcm512x_digital_.patch64
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0342-usb-dwc_otg-Clean-up-build-warnings-on-64bit-kernels.patch118
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0343-usb-dwc_otg-Use-dma-allocation-for-mphi-dummy_send-b.patch80
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0344-staging-vchiq_arm-Set-up-dma-ranges-on-child-devices.patch49
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0345-staging-vc-sm-cma-Correct-DMA-configuration.patch46
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0346-staging-vc-sm-cma-Use-a-void-pointer-as-the-handle-w.patch119
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0347-staging-vc-sm-cma-Fix-up-for-64bit-builds.patch203
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0348-configs-Add-Unicam-and-subdevices-to-bcmrpi3_defconf.patch49
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0349-configs-Add-VIDEO_BCM2835-to-bcmrpi3_defconfig.patch25
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0350-configs-Add-V4L2-codec-driver-to-bcmrpi3_defconfig.patch25
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0351-config-Add-IPVLAN-module-to-bcmrpi3_defconfig.patch24
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0352-configs-Enable-the-AD193x-codecs.patch72
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0353-overlays-balenaFin-v1.1.0-carrier-board-update.patch113
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0354-configs-Add-CONFIG_LEDS_PCA963X-m.patch53
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0355-Revert-brcmfmac-Mute-expected-startup-errors.patch28
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0356-gpu-vc4-fkms-Update-driver-to-not-use-plane-crtc.patch38
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0357-drm-vc4-Programming-the-CTM-is-conditional-on-runnin.patch28
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0358-staging-mmal_vchiq-Add-in-the-Bayer-encoding-formats.patch53
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0359-staging-mmal-vchiq-Always-return-the-param-size-from.patch40
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0360-staging-mmal-vchiq-If-the-VPU-returns-an-error-don-t.patch31
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0361-staging-bcm2835_codec-Query-supported-formats-from-t.patch729
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0362-staging-bcm2835_codec-Add-support-for-the-ISP-as-an-.patch386
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0363-staging-bcm2835_codec-Add-an-option-for-ignoring-Bay.patch181
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0364-staging-bcm2835_codec-Fix-handling-of-VB2_MEMORY_DMA.patch192
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0365-staging-mmal-vchiq-Update-mmal_parameters.h-with-rec.patch58
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0366-staging-bcm2835_codec-Include-timing-info-in-SPS-hea.patch46
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0367-drm-vc4-Don-t-wait-for-vblank-on-fkms-cursor-updates.patch30
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0368-Fix-for-Pisound-kernel-module-in-Real-Time-kernel-co.patch40
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0369-config-Add-CONFIG_FB_TFT_SH1106-m.patch70
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0370-Added-mute-stream-func.patch148
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0371-lan78xx-EEE-support-is-now-a-PHY-property.patch28
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0372-video-bcm2708_fb-Try-allocating-on-the-ARM-and-passi.patch166
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0373-staging-vc_sm_cma-Remove-erroneous-misc_deregister.patch46
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0374-vcsm-Fix-makefile-include-on-out-of-tree-builds.patch29
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0375-vcsm-Remove-set-but-unused-variable.patch30
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0376-vcsm-Reduce-scope-of-local-functions.patch73
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0377-staging-bcm2835-codec-NULL-component-handle-on-queue.patch61
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0378-staging-vc-sm-cma-Remove-the-debugfs-directory-on-re.patch26
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0379-staging-vc-sm-cma-Use-devm_-allocs-for-sm_state.patch71
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0380-staging-vc-sm-cma-Don-t-fail-if-debugfs-calls-fail.patch39
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0381-staging-vc-sm-cma-Ensure-mutex-and-idr-are-destroyed.patch29
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0382-staging-bcm2835_codec-Clean-up-logging-on-unloading-.patch51
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0383-configs-Enable-MT76-USB-wifi.patch51
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0384-bcm2835-sdhost-Allow-for-sg-entries-that-cross-pages.patch34
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0385-overlays-sdio-Added-4-bit-support-on-GPIOs-34-39.-29.patch51
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0386-overlays-Fix-multiple-instantiation-of-sc16is7xx.patch63
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0387-configs-Re-enable-CONFIG_NETFILTER_XT_MATCH_SOCKET.patch53
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0388-bcm2835-mmc-Fix-DMA-channel-leak.patch44
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0389-bcm2835-mmc-Fix-struct-mmc_host-leak-on-probe.patch31
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0390-bcm2835-mmc-Fix-duplicate-free_irq-on-remove.patch40
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0391-bcm2835-mmc-Handle-mmc_add_host-errors.patch37
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0392-bcm2835-mmc-Deduplicate-reset-of-driver-data-on-remo.patch28
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0393-configs-Add-CONFIG_BATTERY_MAX17040.patch50
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0394-overlays-Add-max17040-support-to-i2c-sensor.patch60
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0395-defconfigs-disable-memory-and-IO-cgroups-2908.patch87
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0396-media-bcm2835-unicam-Add-support-for-enum-framesizes.patch135
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0397-staging-bcm2835-codec-Refactor-default-resolution-co.patch154
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0398-nvmem-add-type-attribute.patch135
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0399-rtc-rv3028-add-new-driver.patch868
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0400-configs-Add-RTC_DRV_RV3028-m.patch50
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0401-overlays-Add-rv3028-to-i2c-rtc.patch79
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0402-ASoC-tlv320aic32x4-SND_SOC_DAPM_MICBIAS-is-deprecate.patch82
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0403-ASoC-tlv320aic32x4-Break-out-clock-setting-into-sepa.patch66
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0404-ASoC-tlv320aic32x4-Properly-Set-Processing-Blocks.patch113
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0405-ASoC-tlv320aic32x4-Model-PLL-in-CCF.patch887
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0406-ASoC-tlv320aic32x4-Model-CODEC_CLKIN-in-CCF.patch124
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0407-ASoC-tlv320aic32x4-Model-DAC-ADC-dividers-in-CCF.patch312
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0408-ASoC-tlv320aic32x4-Model-BDIV-divider-in-CCF.patch214
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0409-ASoC-tlv320aic32x4-Control-clock-gating-with-CCF.patch111
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0410-ASoC-tlv320aic32x4-Move-aosr-and-dosr-setting-to-sep.patch61
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0411-ASoC-tlv320aic32x4-Dynamically-Determine-Clocking.patch289
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0412-ASoC-tlv320aic32x4-Restructure-set_dai_sysclk.patch53
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0413-ASoC-tlv320aic32x4-Remove-mclk-references.patch41
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0414-ASoC-tlv320aic32x4-Allow-192000-Sample-Rate.patch29
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0415-ASoC-tlv320aic32x4-Only-enable-with-common-clock.patch45
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0416-Audiophonics-I-Sabre-9038Q2M-DAC-driver.patch820
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0417-ASoC-tlv320aic32x4-Change-author-s-name.patch58
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0418-ASoC-tlv320aic32x4-Update-copyright-and-use-SPDX-ide.patch74
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0419-ASoC-tlv320aic32x4-Add-Switch-for-Setting-Common-Mod.patch42
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0420-ASoC-tlv320aic32x4-Add-Playback-PowerTune-Controls.patch56
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0421-dtoverlays-Add-Support-for-the-UDRC-DRAWS.patch453
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0422-dwc_otg-only-do_split-when-we-actually-need-to-do-a-.patch57
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0423-Input-ili210x-fetch-touchscreen-geometry-from-DT.patch493
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0424-Input-ili210x-add-DT-binding-document.patch48
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0425-configs-Add-TOUCHSCREEN_ILI210X-m.patch48
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0426-BCM2708-Add-core-Device-Tree-support-ilitek251x.patch97
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0427-dwc_otg-fix-locking-around-dequeueing-and-killing-UR.patch67
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0428-rtc-rv3028-Add-backup-switchover-mode-support.patch52
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0429-dt-bindings-rv3028-backup-switchover-support.patch22
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0430-overlays-Add-rv3028-backup-switchover-support-to-i2c.patch38
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0431-Maxim-MAX98357A-I2S-DAC-overlay-2935.patch136
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0432-sound-Fixes-for-audioinjector-octo-under-4.19.patch116
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0433-Revert-cgroup-Disable-cgroup-memory-by-default.patch65
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0434-Revert-defconfigs-disable-memory-and-IO-cgroups-2908.patch85
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0435-overlays-Add-PiGlow-overlay.patch153
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0436-configs-enable-LED-driver-for-PiGlow.patch58
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0437-Revert-bcm2835-interpolate-audio-delay.patch75
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0438-Revert-staging-bcm2835-audio-Enable-compile-test.patch24
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0439-Revert-staging-bcm2835-audio-use-module_platform_dri.patch44
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0440-staging-bcm2835-audio-Clean-up-mutex-locks.patch309
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0441-staging-bcm2835-audio-Remove-redundant-spdif-stream-.patch91
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0442-staging-bcm2835-audio-Clean-up-include-files-in-bcm2.patch45
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0443-staging-bcm2835-audio-Remove-redundant-substream-mas.patch121
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0444-staging-bcm2835-audio-Fix-mute-controls-volume-handl.patch281
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0445-staging-bcm2835-audio-Remove-redundant-function-call.patch101
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0446-staging-bcm2835-audio-Remove-superfluous-open-flag.patch65
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0447-staging-bcm2835-audio-Drop-useless-running-flag-and-.patch110
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0448-staging-bcm2835-audio-Fix-incorrect-draining-handlin.patch71
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0449-staging-bcm2835-audio-Kill-unused-spinlock.patch43
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0450-staging-bcm2835-audio-Use-PCM-runtime-values-instead.patch78
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0451-staging-bcm2835-audio-Drop-unnecessary-pcm-indirect-.patch31
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0452-staging-bcm2835-audio-Drop-useless-NULL-check.patch30
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0453-staging-bcm2835-audio-Propagate-parameter-setup-erro.patch42
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0454-staging-bcm2835-audio-Drop-debug-messages-in-bcm2835.patch152
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0455-staging-bcm2835-audio-Drop-superfluous-mutex-lock-du.patch51
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0456-staging-bcm2835-audio-Add-10ms-period-constraint.patch35
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0457-staging-bcm2835-audio-Make-single-vchi-handle.patch414
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0458-staging-bcm2835-audio-Code-refactoring-of-vchiq-acce.patch578
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0459-staging-bcm2835-audio-Operate-non-atomic-PCM-ops.patch601
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0460-staging-bcm2835-audio-Use-card-private_data.patch140
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0461-staging-bcm2835-audio-Use-standard-error-print-helpe.patch245
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0462-staging-bcm2835-audio-Remove-unnecessary-header-file.patch77
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0463-staging-bcm2835-audio-Move-module-parameter-descript.patch38
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0464-staging-bcm2835-audio-Use-coherent-device-buffers.patch63
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0465-staging-bcm2835-audio-Set-SNDRV_PCM_INFO_SYNC_APPLPT.patch42
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0466-staging-bcm2835-audio-Simplify-PCM-creation-helpers.patch202
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0467-staging-bcm2835-audio-Simplify-kctl-creation-helpers.patch164
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0468-staging-bcm2835-audio-Simplify-card-object-managemen.patch216
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0469-staging-bcm2835-audio-unify-FOURCC-command-definitio.patch75
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0470-staging-bcm2835-audio-don-t-initialize-memory-twice.patch32
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0471-staging-bcm2835-audio-reorder-variable-declarations-.patch124
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0472-staging-bcm2835-audio-use-anonymous-union-in-struct-.patch109
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0473-staging-bcm2835-audio-more-generic-probe-function-na.patch41
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0474-staging-bcm2835-audio-rename-platform_driver-structu.patch49
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0475-staging-bcm2835-audio-update-TODO.patch58
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0476-staging-bcm2835-audio-interpolate-audio-delay.patch86
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0477-staging-bcm2835-audio-Enable-compile-test.patch29
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0478-staging-bcm2835-audio-use-module_platform_driver-mac.patch50
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0479-staging-bcm2835-audio-Drop-DT-dependency.patch107
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0480-staging-bcm2835-audio-double-free-in-init-error-path.patch32
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0481-dts-Increase-default-coherent-pool-size.patch29
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0482-Revert-staging-bcm2835-audio-Drop-DT-dependency.patch98
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0483-configs-Enable-netdev-LED-trigger.patch48
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0484-smsc95xx-dynamically-fix-up-TX-buffer-alignment-with.patch66
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0485-lan78xx-use-default-alignment-for-rx-buffers.patch25
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0486-staging-bcm2835-codec-Correct-port-width-calc-for-tr.patch31
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0487-staging-bcm2835-codec-Remove-height-padding-for-ISP-.patch63
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0488-staging-mmal-vchiq-Free-the-event-context-for-contro.patch30
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0489-staging-mmal-vchiq-Replace-spinlock-protecting-conte.patch69
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0490-BCM270X_DT-Also-set-coherent_pool-1M-for-BT-Pis.patch53
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0491-configs-Enable-ICS-43432-I2S-microphone-module.patch48
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0492-arm-dts-overlays-rpi-sense-add-upstream-humidity-com.patch28
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0493-staging-mmal-vchiq-Fix-memory-leak-in-error-path.patch69
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0494-staging-vchiq-mmal-Fix-memory-leak-of-vchiq-instance.patch64
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0495-Revert-video-bcm2708_fb-Try-allocating-on-the-ARM-an.patch168
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0496-Added-IQaudIO-Pi-Codec-board-support-2969.patch427
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0497-Revert-smsc95xx-dynamically-fix-up-TX-buffer-alignme.patch64
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0498-configs-Enable-PIDs-cgroup.patch28
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0499-w1-ds2408-reset-on-output_write-retry-with-readback.patch142
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0500-w1-ds2482-cosmetic-fixes-after-54865314f5a1.patch93
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0501-sound-pcm512x-codec-Adding-352.8kHz-samplerate-suppo.patch23
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0502-ASoC-decommissioning-driver-for-3Dlab-Nano-soundcard.patch538
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0503-.gitignore-Add-.dtbo-explicitly.patch24
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0504-usb-dwc_otg-Clean-up-interrupt-claiming-code.patch165
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0505-overlays-Delete-the-deprecated-sdio-1bit-overlay.patch94
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0506-overlays-Remove-upstream-aux-interrupt-overlay.patch104
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0507-overlays-Standardise-on-compatible-brcm-bcm2835.patch2059
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0508-vc4-Remove-interrupt-and-DMA-trampling.patch125
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0509-BCM270X_DT-Add-non-removable-clone-of-mmc-node.patch220
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0510-BCM270X_DT-usb-Refactor-DTS-and-overlays.patch66
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0511-overlays-Update-upstream-overlay.patch128
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0512-w1-ds2408-Fix-typo-after-49695ac46861-reset-on-outpu.patch33
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0513-BCM270X_DT-Rename-Pi-Zero-W-DT-files.patch56
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0514-BCM270X_DT-Create-bcm2708-rpi-zero.dts.patch152
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0515-overlays-Fix-mmc-related-overlays-after-refactor.patch79
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0516-config-Add-NF_TABLES-support.patch170
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0517-Fixed-48k-timing-issue.patch97
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0518-staging-bcm2835-codec-Convert-V4L2-nsec-timestamps-t.patch48
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0519-staging-bcm2835-codec-Add-support-for-setting-S_PARM.patch120
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0520-w1-w1-gpio-Make-GPIO-an-output-for-strong-pullup.patch29
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0521-overlays-Update-w1-gpio-and-w1-gpio-pullup.patch84
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0522-bcm2835-sdhost-Fix-DMA-channel-leak-on-error-remove.patch33
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0523-i2c-bcm2835-Model-Divider-in-CCF.patch272
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0524-staging-vc04_services-Use-correct-cache-line-size.patch141
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0525-tty-amba-pl011-allow-shared-interrupt.patch30
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0526-ARM-bcm283x-Reduce-register-ranges-for-UART-SPI-and-.patch46
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0527-ARM-bcm283x-Extend-the-WDT-DT-node-out-to-cover-the-.patch47
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0528-ARM-dts-Add-label-to-bcm2835-RNG.patch22
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0529-dts-Use-fb-rather-than-leds-for-dpi-overlay.patch36
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0530-BCM270X_DT-Minor-tidy-up.patch99
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0531-arm-bcm2835-Fix-FIQ-early-ioremap.patch75
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0532-Fix-copy_from_user-if-BCM2835_FAST_MEMCPY-n.patch41
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0533-PCI-brcmstb-Add-Broadcom-STB-PCIe-host-controller-dr.patch1195
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0534-PCI-brcmstb-Add-dma-range-mapping-for-inbound-traffi.patch571
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0535-PCI-brcmstb-Add-MSI-capability.patch545
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0536-dt-bindings-pci-Add-DT-docs-for-Brcmstb-PCIe-device.patch79
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0537-pcie-brcmstb-Changes-for-BCM2711.patch1422
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0538-arm-bcm2835-DMA-can-only-address-1GB.patch27
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0539-mmc-bcm2835-sdhost-Support-64-bit-physical-addresses.patch58
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0540-mmc-sdhci-Mask-spurious-interrupts.patch31
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0541-mmc-sdhci-iproc-Add-support-for-emmc2-of-the-BCM2838.patch38
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0542-hwrng-iproc-rng200-Add-BCM2838-support.patch162
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0543-thermal-brcmstb_thermal-Add-BCM2838-support.patch166
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0544-vchiq-Add-36-bit-address-support.patch201
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0545-bcm2835-pcm.c-Support-multichannel-audio.patch48
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0546-bcmgenet-constrain-max-DMA-burst-length.patch22
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0547-bcmgenet-Better-coalescing-parameter-defaults.patch45
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0548-net-genet-enable-link-energy-detect-powerdown-for-ex.patch36
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0549-phy-broadcom-split-out-the-BCM54213PE-from-the-BCM54.patch76
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0550-phy-bcm54213pe-configure-the-LED-outputs-to-be-more-.patch68
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0551-dwc_otg-Choose-appropriate-IRQ-handover-strategy.patch193
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0552-usb-xhci-Disable-the-XHCI-5-second-timeout.patch31
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0553-usb-xhci-Show-that-the-VIA-VL805-supports-LPM.patch25
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0554-usb-xhci-hack-xhci_urb_enqueue-to-support-hid.mousep.patch124
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0555-pinctrl-bcm2835-Add-support-for-BCM2838.patch91
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0556-spi-bcm2835-enable-shared-interrupt-support.patch37
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0557-drivers-char-add-chardev-for-mmap-ing-Argon-control-.patch326
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0558-clk-bcm2835-Don-t-wait-for-pllh-lock.patch40
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0559-bcm2835-pm-Move-bcm2835-watchdog-s-DT-probe-to-an-MF.patch208
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0560-soc-bcm-bcm2835-pm-Add-support-for-power-domains-und.patch837
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0561-soc-bcm-bcm2835-pm-Fix-PM_IMAGE_PERI-power-domain-su.patch47
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0562-soc-bcm-bcm2835-pm-Fix-error-paths-of-initialization.patch105
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0563-soc-bcm-bcm2835-pm-Add-support-for-2711.patch108
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0564-drm-expand-drm_syncobj_find_fence-to-support-timelin.patch114
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0565-drm-v3d-Fix-a-use-after-free-race-accessing-the-sche.patch77
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0566-drm-v3d-Add-a-little-debugfs-entry-for-measuring-the.patch110
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0567-drm-v3d-Update-a-comment-about-what-uses-v3d_job_dep.patch29
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0568-drm-v3d-Clean-up-the-reservation-object-setup.patch104
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0569-drm-v3d-Add-support-for-submitting-jobs-to-the-TFU.patch829
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0570-drm-v3d-Drop-the-dev-argument-to-lock-unlock-of-BO-r.patch104
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0571-drm-v3d-Add-missing-fence-timeline-name-for-TFU.patch39
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0572-drm-v3d-Add-more-tracepoints-for-V3D-GPU-rendering.patch211
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0573-drm-v3d-Drop-unused-v3d_flush_caches.patch68
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0574-drm-v3d-Don-t-bother-flushing-L1TD-at-job-start.patch45
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0575-drm-v3d-Drop-the-wait-for-L2T-flush-to-complete.patch43
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0576-drm-v3d-Stop-trying-to-flush-L2C-on-V3D-3.3.patch47
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0577-drm-v3d-Invalidate-the-caches-from-the-outside-in.patch38
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0578-drm-v3d-Fix-BO-stats-accounting-for-dma-buf-imported.patch42
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0579-drm-v3d-Update-top-level-kerneldoc-for-the-addition-.patch32
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0580-drm-vc4-Fix-oops-at-boot-with-firmwarekms-on-4.19.patch24
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0581-drm-vc4-Disable-V3D-interactions-if-the-v3d-componen.patch175
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0582-drm-v3d-Add-support-for-V3D-v4.2.patch216
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0583-drm-v3d-Don-t-try-to-set-OVRTMUOUT-on-V3D-4.x.patch46
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0584-drm-v3d-Make-sure-the-GPU-is-on-when-measuring-clock.patch40
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0585-drm-v3d-Add-support-for-2711.patch22
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0586-drm-v3d-Skip-MMU-flush-if-the-device-is-currently-of.patch54
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0587-drm-v3d-Hook-up-the-runtime-PM-ops.patch36
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0588-drm-v3d-HACK-gut-runtime-pm-for-now.patch178
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0589-drm-v3d-Update-to-upstream-IRQ-code.patch61
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0590-drm-v3d-Rename-the-fence-signaled-from-IRQs-to-irq_f.patch125
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0591-drm-v3d-Refactor-job-management.patch1134
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0592-drm-v3d-Add-missing-implicit-synchronization.patch285
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0593-drm-vc4-Fix-synchronization-firmwarekms-against-GL-r.patch46
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0594-drm-vc4-Make-sure-that-vblank-waits-work-without-v3d.patch29
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0595-drm-vc4-Expose-the-format-modifiers-for-firmware-kms.patch82
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0596-drm-vc4-Fix-vblank-timestamping-for-firmwarekms.patch49
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0597-gpu-vc4-fkms-Switch-to-the-newer-mailbox-frame-buffe.patch220
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0598-drm-vc4-Add-an-overlay-plane-to-vc4-firmware-kms.patch865
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0599-drm-vc4-Increase-max-screen-size-to-4096x4096.patch28
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0600-drm-vc4-Add-support-for-multiple-displays-to-fkms.patch282
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0601-drm-vc4-Fix-build-warning.patch23
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0602-drm-vc4-Select-display-to-blank-during-initialisatio.patch56
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0603-drm-vc4-Remove-now-unused-structure.patch43
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0604-drm-vc4-Query-the-display-ID-for-each-display-in-FKM.patch62
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0605-drm-vc4-Set-the-display-number-when-querying-the-dis.patch105
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0606-drm-vc4-Need-to-call-drm_crtc_vblank_-on-off-from-vc.patch48
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0607-drm-vc4-Add-support-for-H-V-flips-on-each-plane-for-.patch88
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0608-drm-vc4-Remove-unused-vc4_fkms_cancel_page_flip-func.patch60
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0609-drm-vc4-Iterate-over-all-planes-in-vc4_crtc_-dis-en-.patch59
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0610-drm-vc4-Bring-fkms-into-line-with-kms-in-blocking-do.patch49
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0611-drm-vc4-Increase-max_width-height-to-7680.patch29
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0612-drm-vc4-FKMS-reads-the-EDID-from-fw-and-supports-mod.patch560
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0613-clk-bcm2835-Add-support-for-setting-leaf-clock-rates.patch55
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0614-clk-bcm2835-Allow-reparenting-leaf-clocks-while-they.patch73
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0615-drm-v3d-Add-support-for-compute-shader-dispatch.patch917
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0616-drm-v3d-Clock-V3D-down-when-not-in-use.patch163
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0617-HACK-clk-bcm2835-Add-BCM2838_CLOCK_EMMC2-support.patch76
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0618-drm-vc4-firmware-kms-Remove-incorrect-overscan-suppo.patch57
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0619-drm-vc4-Log-flags-in-fkms-mode-set.patch33
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0620-drm-vc4-firmware-kms-Fix-DSI-display-support.patch27
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0621-drm-vc4-Probe-DPI-DSI-timings-from-the-firmware.patch124
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0622-drm-vc4-handle-the-case-where-there-are-no-available.patch68
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0623-drm-vc4-Support-the-VEC-in-FKMS.patch64
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0624-drm-vc4-Fixup-typo-when-setting-HDMI-aspect-ratio.patch41
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0625-drm-vc4-Correct-SAND-support-for-FKMS.patch42
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0626-drm-vc4-fkms-to-query-the-VPU-for-HDMI-clock-limits.patch140
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0627-drm-vc4-Max-resolution-of-7680-is-conditional-on-bei.patch40
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0628-staging-vc-sm-cma-Remove-obsolete-comment-and-make-f.patch30
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0629-staging-vc-sm-cma-Add-in-allocation-for-VPU-requests.patch1224
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0630-staging-vc-sm-cma-Update-TODO.patch21
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0631-staging-vc-sm-cma-Add-in-userspace-allocation-API.patch683
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0632-staging-vcsm-cma-Add-cache-control-ioctls.patch249
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0633-staging-vcsm-cma-Alter-dev-node-permissions-to-0666.patch26
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0634-staging-vcsm-cma-Drop-logging-level-on-messages-in-v.patch35
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0635-staging-vcsm-cma-Fixup-the-alloc-code-handling-of-ke.patch37
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0636-Pulled-in-the-multi-frame-buffer-support-from-the-Pi.patch927
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0637-ARM-dts-bcm283x-Move-BCM2835-6-7-specific-to-bcm2835.patch199
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0638-ARM-dts-Add-bcm2711-rpi-4-b.dts-and-components.patch1137
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0639-overlays-Add-i2c3-6-and-uart2-5-overlays.patch379
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0640-spi-devicetree-add-overlays-for-spi-3-to-6.patch601
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0641-overlays-Add-the-spi-gpio40-45-overlay.patch86
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0642-config-Permit-LPAE-and-PCIE_BRCMSTB-on-BCM2835.patch48
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0643-configs-Add-bcm2711_defconfig.patch1345
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0644-2711-Add-basic-64-bit-support.patch1335
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0645-config-Add-NF_TABLES-support.patch89
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0646-bcm2711_defconfig-add-xhci-platform-support.patch22
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0647-ARM-dts-bcm283x-Correct-vchiq-compatible-string-2840.patch86
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0648-arm-dts-Change-downstream-vchiq-compatible-string.patch67
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0649-bcm2835-dma-Add-proper-40-bit-DMA-support.patch1026
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0650-BCM270X_DT-Leave-bulk-channel-in-dma-channel-mask.patch29
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0651-SQUASH-bcm2835-dma-Remove-debugging.patch47
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0652-defconfig-Update-bcm2711-to-match-bcm2709-on-extra-m.patch302
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0653-dts-Include-CSI-lane-config-for-csi1.patch25
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0654-drm-vc4-Fix-T-format-modifiers-in-FKMS.patch30
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0655-defconfigs-Add-FB_SIMPLE-to-both-bcmrpi-and-bcm2709-.patch40
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0656-bcm2711-dts-Disable-the-v3d-node-by-default.patch25
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0657-drm-vc4-Remove-340MHz-clock-limit-from-FKMS-now-scra.patch31
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0658-Revert-usb-xhci-hack-xhci_urb_enqueue-to-support-hid.patch115
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0659-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch112
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0660-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch131
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0661-usbhid-call-usb_fixup_endpoint-after-mangling-interv.patch25
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0662-drm-vc4-Add-status-of-which-display-is-updated-throu.patch87
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0663-drm-vc4-In-FKMS-look-at-the-modifiers-correctly-for-.patch38
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0664-arm-dts-Fix-Pi4-PWR-LED-configuration.patch31
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0665-bcm2838.dtsi-Correct-gic400-memory-address-ranges.patch25
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0666-staging-vchiq-Use-the-old-dma-controller-for-OF-conf.patch53
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0667-drm-vc4-Limit-fkms-to-modes-85Hz.patch28
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0668-arm-bcm2835-Add-bcm2838-compatible-string.patch22
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0669-arm-dts-Improve-the-bcm27xx-inclusion-hierarchy.patch530
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0670-arm-dts-First-draft-of-upstream-Pi4-DTS.patch182
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0671-overlays-Fix-compatible-string-for-ds1307-RTC.patch30
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0672-overlays-Fix-further-maxim-ds1307-references.patch53
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0673-overlays-Cosmetic-change-to-upstream-overlay.patch27
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0674-w1-ds2805-rename-w1_family-struct-fixing-c-p-typo.patch46
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0675-w1-ds2413-output_write-cosmetic-fixes-simplify.patch66
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0676-w1-ds2413-add-retry-support-to-state_read.patch76
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0677-w1-ds2413-when-the-slave-is-not-responding-during-re.patch58
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0678-w1-ds2413-fix-state-byte-comparision.patch50
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0679-drm-vc4_dsi-Fix-DMA-channel-and-memory-leak-in-vc4-3.patch137
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0680-video-bcm2708_fb-Revert-cma-allocation-attempt.patch163
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0681-drm-vc4-Add-support-for-color-encoding-on-YUV-planes.patch114
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0682-configs-Drop-V4L2-camera-and-codec-drivers-from-bcmr.patch27
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0683-configs-arm64-bcm2711-Remove-CONFIG_VIDEO_BCM2835.patch53
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0684-arm-dts-Add-coherent_pool-1M-to-Pi-4-bootargs.patch30
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0685-configs-Enable-USB_CONFIGFS-m-in-bcmrpi_defconfig.patch24
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0686-configs-And-all-the-other-USB_CONFIGFS-options.patch42
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0687-configs-arm64-bcm2711-Add-MMC_SDHCI_IPROC.patch26
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0688-overlays-Correct-gpio-fan-gpio-flags-for-4.19.patch32
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0689-staging-vcsm-cma-Remove-cache-manipulation-ioctl-fro.patch79
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0690-staging-vcsm-cma-Rework-to-use-dma-APIs-not-CMA.patch772
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0691-Revert-configs-Drop-V4L2-camera-and-codec-drivers-fr.patch28
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0692-Revert-configs-arm64-bcm2711-Remove-CONFIG_VIDEO_BCM.patch53
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0693-staging-vc-sm-cma-Fix-the-few-remaining-coding-style.patch192
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0694-configs-Drop-MMC_SDHCI_BCM2711-from-arm64-bcm2711_de.patch25
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0695-Revert-media-vb2-Allow-reqbufs-0-with-in-use-MMAP-bu.patch57
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0696-media-videodev2.h-add-new-capabilities-for-buffer-ty.patch142
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0697-media-vb2-set-reqbufs-create_bufs-capabilities.patch202
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0698-media-vb2-Allow-reqbufs-0-with-in-use-MMAP-buffers.patch138
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0699-overlays-Add-real-parameters-to-the-rpi-poe-overlay.patch35
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0700-overlays-Rename-pi3-overlays-to-be-less-model-specif.patch423
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0701-i2c-bcm2835-Move-IRQ-request-after-clock-code-in-pro.patch68
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0702-i2c-bcm2835-Ensure-clock-exists-when-probing.patch74
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0703-overlays-i2c-gpio-Fix-the-bus-parameter.patch37
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0704-tty-amba-pl011-Make-TX-optimisation-conditional.patch87
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0705-xhci-add-quirk-for-host-controllers-that-don-t-updat.patch96
-rw-r--r--sys-kernel/boest-v4.19.58/raspberrypi/0706-i2c-bcm2835-Set-clock-stretch-timeout-to-35ms.patch49
l---------sys-kernel/longterm-sources-4.19.501
l---------sys-kernel/longterm-sources-4.19.521
l---------sys-kernel/longterm-sources-4.19.581
1277 files changed, 381014 insertions, 355027 deletions
diff --git a/sys-kernel/boest-v4.19.50/0001-patch-4.19-ja1.diff.patch b/sys-kernel/boest-v4.19.50/0001-patch-4.19-ja1.diff.patch
deleted file mode 100644
index 75b61392..00000000
--- a/sys-kernel/boest-v4.19.50/0001-patch-4.19-ja1.diff.patch
+++ /dev/null
@@ -1,2127 +0,0 @@
-From 597dbf63d28e314e9e12b2c1f4dcd82934718fde Mon Sep 17 00:00:00 2001
-From: Julian Anastasov <ja@ssi.bg>
-Date: Sun, 28 Oct 2018 09:28:02 +0000
-Subject: [PATCH 01/15] patch-4.19-ja1.diff
-
-Jumbo patch containing the following parts:
- - routes-2.X.*.diff (static_routes, alt_routes, nf_reroute but without arp_prefsrc functionality, it is replaced by arprules and rp_filter_mask)
- - hidden-2.X.*.diff (conf/*/hidden)
- - arprules-2.X.*.diff (iparp/arprules support)
- - rp_filter_mask-2.X.*.diff (conf/*/rp_filter_mask)
- - forward_shared-2.X.*.diff (conf/*/forward_shared)
- - send-to-self-2.X.*.diff (conf/*/loop, included March 3, 2004, up to Linux 3.5)
-
-URL: http://ja.ssi.bg/patch-4.19-ja1.diff
----
- Documentation/networking/ip-sysctl.txt | 30 +
- include/linux/inetdevice.h | 3 +
- include/net/flow.h | 2 +
- include/net/ip_fib.h | 7 +-
- include/net/netfilter/nf_nat.h | 5 +
- include/net/route.h | 5 +
- include/uapi/linux/ip.h | 3 +
- include/uapi/linux/rtnetlink.h | 64 +-
- net/bridge/br_netfilter_hooks.c | 3 +
- net/ipv4/arp.c | 695 +++++++++++++++++++-
- net/ipv4/devinet.c | 14 +-
- net/ipv4/fib_frontend.c | 56 +-
- net/ipv4/fib_rules.c | 5 +
- net/ipv4/fib_semantics.c | 257 ++++++--
- net/ipv4/fib_trie.c | 3 +
- net/ipv4/netfilter/iptable_nat.c | 7 +
- net/ipv4/netfilter/nf_nat_masquerade_ipv4.c | 27 +-
- net/ipv4/route.c | 69 +-
- net/netfilter/nf_nat_core.c | 43 ++
- security/selinux/nlmsgtab.c | 5 +-
- 20 files changed, 1175 insertions(+), 128 deletions(-)
-
-diff --git a/Documentation/networking/ip-sysctl.txt b/Documentation/networking/ip-sysctl.txt
-index 2c31208528d5..e6bf502880b4 100644
---- a/Documentation/networking/ip-sysctl.txt
-+++ b/Documentation/networking/ip-sysctl.txt
-@@ -1054,6 +1054,19 @@ forwarding - BOOLEAN
- Enable IP forwarding on this interface. This controls whether packets
- received _on_ this interface can be forwarded.
-
-+forward_shared - BOOLEAN
-+ Integer value determines if a source validation should allow
-+ forwarding of packets with local source address. 1 means yes,
-+ 0 means no. By default the flag is disabled and such packets
-+ are not forwarded.
-+
-+ If you enable this flag on internal network, the router will forward
-+ packets from internal hosts with shared IP addresses no matter how
-+ the rp_filter is set. This flag is activated only if it is
-+ enabled both in specific device section and in "all" section.
-+
-+ The forward_shared value could be ignored when rp_filter is set to 0.
-+
- mc_forwarding - BOOLEAN
- Do multicast routing. The kernel needs to be compiled with CONFIG_MROUTE
- and a multicast routing daemon is required.
-@@ -1169,6 +1182,15 @@ rp_filter - INTEGER
- Default value is 0. Note that some distributions enable it
- in startup scripts.
-
-+rp_filter_mask - INTEGER
-+ Integer value representing bitmask of the mediums for which the
-+ reverse path protection is disabled. If the source validation
-+ results in reverse path to interface with medium_id value in
-+ the 1..31 range the access is allowed if the corresponding bit
-+ is set in the bitmask. The bitmask value is considered only when
-+ rp_filter is enabled. By default the bitmask is empty preserving
-+ the original rp_filter semantic.
-+
- arp_filter - BOOLEAN
- 1 - Allows you to have multiple network interfaces on the same
- subnet, and have the ARPs for each interface be answered
-@@ -1309,6 +1331,14 @@ drop_gratuitous_arp - BOOLEAN
- Default: off (0)
-
-
-+hidden - BOOLEAN
-+ Hide addresses attached to this device from other devices.
-+ Such addresses will never be selected by source address autoselection
-+ mechanism, host does not answer broadcast ARP requests for them,
-+ does not announce them as source address of ARP requests, but they
-+ are still reachable via IP. This flag is activated only if it is
-+ enabled both in specific device section and in "all" section.
-+
- tag - INTEGER
- Allows you to write a number, which can be used as required.
- Default value is 0.
-diff --git a/include/linux/inetdevice.h b/include/linux/inetdevice.h
-index c759d1cbcedd..46e2a7ec281b 100644
---- a/include/linux/inetdevice.h
-+++ b/include/linux/inetdevice.h
-@@ -95,9 +95,11 @@ static inline void ipv4_devconf_setall(struct in_device *in_dev)
- #define IN_DEV_MFORWARD(in_dev) IN_DEV_ANDCONF((in_dev), MC_FORWARDING)
- #define IN_DEV_BFORWARD(in_dev) IN_DEV_ANDCONF((in_dev), BC_FORWARDING)
- #define IN_DEV_RPFILTER(in_dev) IN_DEV_MAXCONF((in_dev), RP_FILTER)
-+#define IN_DEV_RPFILTER_MASK(in_dev) IN_DEV_CONF_GET(in_dev, RP_FILTER_MASK)
- #define IN_DEV_SRC_VMARK(in_dev) IN_DEV_ORCONF((in_dev), SRC_VMARK)
- #define IN_DEV_SOURCE_ROUTE(in_dev) IN_DEV_ANDCONF((in_dev), \
- ACCEPT_SOURCE_ROUTE)
-+#define IN_DEV_FORWARD_SHARED(in_dev) IN_DEV_ANDCONF((in_dev), FORWARD_SHARED)
- #define IN_DEV_ACCEPT_LOCAL(in_dev) IN_DEV_ORCONF((in_dev), ACCEPT_LOCAL)
- #define IN_DEV_BOOTP_RELAY(in_dev) IN_DEV_ANDCONF((in_dev), BOOTP_RELAY)
-
-@@ -110,6 +112,7 @@ static inline void ipv4_devconf_setall(struct in_device *in_dev)
- SECURE_REDIRECTS)
- #define IN_DEV_IDTAG(in_dev) IN_DEV_CONF_GET(in_dev, TAG)
- #define IN_DEV_MEDIUM_ID(in_dev) IN_DEV_CONF_GET(in_dev, MEDIUM_ID)
-+#define IN_DEV_HIDDEN(in_dev) IN_DEV_ANDCONF((in_dev), HIDDEN)
- #define IN_DEV_PROMOTE_SECONDARIES(in_dev) \
- IN_DEV_ORCONF((in_dev), \
- PROMOTE_SECONDARIES)
-diff --git a/include/net/flow.h b/include/net/flow.h
-index 8ce21793094e..8278eb051131 100644
---- a/include/net/flow.h
-+++ b/include/net/flow.h
-@@ -91,6 +91,7 @@ struct flowi4 {
- #define fl4_ipsec_spi uli.spi
- #define fl4_mh_type uli.mht.type
- #define fl4_gre_key uli.gre_key
-+ __be32 fl4_gw;
- } __attribute__((__aligned__(BITS_PER_LONG/8)));
-
- static inline void flowi4_init_output(struct flowi4 *fl4, int oif,
-@@ -114,6 +115,7 @@ static inline void flowi4_init_output(struct flowi4 *fl4, int oif,
- fl4->saddr = saddr;
- fl4->fl4_dport = dport;
- fl4->fl4_sport = sport;
-+ fl4->fl4_gw = 0;
- }
-
- /* Reset some input parameters after previous lookup */
-diff --git a/include/net/ip_fib.h b/include/net/ip_fib.h
-index 95eed32d8c6b..6ec06dcdf7ba 100644
---- a/include/net/ip_fib.h
-+++ b/include/net/ip_fib.h
-@@ -367,6 +367,8 @@ static inline bool fib4_rules_early_flow_dissect(struct net *net,
- return true;
- }
-
-+u32 fib_result_table(struct fib_result *res);
-+
- #endif /* CONFIG_IP_MULTIPLE_TABLES */
-
- /* Exported by fib_frontend.c */
-@@ -375,7 +377,8 @@ void ip_fib_init(void);
- __be32 fib_compute_spec_dst(struct sk_buff *skb);
- int fib_validate_source(struct sk_buff *skb, __be32 src, __be32 dst,
- u8 tos, int oif, struct net_device *dev,
-- struct in_device *idev, u32 *itag);
-+ struct in_device *idev, u32 *itag, int our);
-+void fib_select_default(const struct flowi4 *flp, struct fib_result *res);
- #ifdef CONFIG_IP_ROUTE_CLASSID
- static inline int fib_num_tclassid_users(struct net *net)
- {
-@@ -452,4 +455,6 @@ static inline void fib_proc_exit(struct net *net)
-
- u32 ip_mtu_from_fib_result(struct fib_result *res, __be32 daddr);
-
-+extern rwlock_t fib_nhflags_lock;
-+
- #endif /* _NET_FIB_H */
-diff --git a/include/net/netfilter/nf_nat.h b/include/net/netfilter/nf_nat.h
-index a17eb2f8d40e..749d505486d3 100644
---- a/include/net/netfilter/nf_nat.h
-+++ b/include/net/netfilter/nf_nat.h
-@@ -37,6 +37,11 @@ struct nf_conn_nat {
- #endif
- };
-
-+/* Call input routing for SNAT-ed traffic */
-+unsigned int ip_nat_route_input(void *priv,
-+ struct sk_buff *skb,
-+ const struct nf_hook_state *state);
-+
- /* Set up the info structure to map into this range. */
- unsigned int nf_nat_setup_info(struct nf_conn *ct,
- const struct nf_nat_range2 *range,
-diff --git a/include/net/route.h b/include/net/route.h
-index bb53cdba38dc..646b987c4001 100644
---- a/include/net/route.h
-+++ b/include/net/route.h
-@@ -182,6 +182,9 @@ int ip_route_input_noref(struct sk_buff *skb, __be32 dst, __be32 src,
- int ip_route_input_rcu(struct sk_buff *skb, __be32 dst, __be32 src,
- u8 tos, struct net_device *devin,
- struct fib_result *res);
-+int ip_route_input_common_rcu(struct sk_buff *skb, __be32 dst, __be32 src,
-+ u8 tos, struct net_device *devin, __be32 lsrc,
-+ struct fib_result *res);
-
- static inline int ip_route_input(struct sk_buff *skb, __be32 dst, __be32 src,
- u8 tos, struct net_device *devin)
-@@ -218,6 +221,8 @@ unsigned int inet_addr_type_dev_table(struct net *net,
- void ip_rt_multicast_event(struct in_device *);
- int ip_rt_ioctl(struct net *, unsigned int cmd, struct rtentry *rt);
- void ip_rt_get_source(u8 *src, struct sk_buff *skb, struct rtable *rt);
-+int ip_route_input_lookup(struct sk_buff*, __be32 dst, __be32 src, u8 tos,
-+ struct net_device *devin, __be32 lsrc);
- struct rtable *rt_dst_alloc(struct net_device *dev,
- unsigned int flags, u16 type,
- bool nopolicy, bool noxfrm, bool will_cache);
-diff --git a/include/uapi/linux/ip.h b/include/uapi/linux/ip.h
-index e42d13b55cf3..d03711046f2e 100644
---- a/include/uapi/linux/ip.h
-+++ b/include/uapi/linux/ip.h
-@@ -169,6 +169,9 @@ enum
- IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST,
- IPV4_DEVCONF_DROP_GRATUITOUS_ARP,
- IPV4_DEVCONF_BC_FORWARDING,
-+ IPV4_DEVCONF_HIDDEN,
-+ IPV4_DEVCONF_RP_FILTER_MASK,
-+ IPV4_DEVCONF_FORWARD_SHARED,
- __IPV4_DEVCONF_MAX
- };
-
-diff --git a/include/uapi/linux/rtnetlink.h b/include/uapi/linux/rtnetlink.h
-index 46399367627f..92593fd1a055 100644
---- a/include/uapi/linux/rtnetlink.h
-+++ b/include/uapi/linux/rtnetlink.h
-@@ -157,6 +157,13 @@ enum {
- RTM_GETCHAIN,
- #define RTM_GETCHAIN RTM_GETCHAIN
-
-+ RTM_NEWARPRULE = 104,
-+#define RTM_NEWARPRULE RTM_NEWARPRULE
-+ RTM_DELARPRULE,
-+#define RTM_DELARPRULE RTM_DELARPRULE
-+ RTM_GETARPRULE,
-+#define RTM_GETARPRULE RTM_GETARPRULE
-+
- __RTM_MAX,
- #define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1)
- };
-@@ -374,8 +381,11 @@ struct rtnexthop {
- #define RTNH_F_OFFLOAD 8 /* offloaded route */
- #define RTNH_F_LINKDOWN 16 /* carrier-down on nexthop */
- #define RTNH_F_UNRESOLVED 32 /* The entry is unresolved (ipmr) */
-+#define RTNH_F_SUSPECT 64 /* We don't know the real state */
-+#define RTNH_F_BADSTATE (RTNH_F_DEAD | RTNH_F_SUSPECT)
-
--#define RTNH_COMPARE_MASK (RTNH_F_DEAD | RTNH_F_LINKDOWN | RTNH_F_OFFLOAD)
-+#define RTNH_COMPARE_MASK (RTNH_F_DEAD | RTNH_F_LINKDOWN | \
-+ RTNH_F_OFFLOAD | RTNH_F_SUSPECT)
-
- /* Macros to handle hexthops */
-
-@@ -617,6 +627,54 @@ enum {
-
- #define NDUSEROPT_MAX (__NDUSEROPT_MAX - 1)
-
-+/******************************************************************************
-+ * Definitions used in ARP tables administration
-+ ****/
-+
-+#define ARPA_TABLE_INPUT 0
-+#define ARPA_TABLE_OUTPUT 1
-+#define ARPA_TABLE_FORWARD 2
-+#define ARPA_TABLE_ALL -1
-+
-+#define ARPM_F_PREFSRC 0x0001
-+#define ARPM_F_WILDIIF 0x0002
-+#define ARPM_F_WILDOIF 0x0004
-+#define ARPM_F_BROADCAST 0x0008
-+#define ARPM_F_UNICAST 0x0010
-+
-+struct arpmsg
-+{
-+ unsigned char arpm_family;
-+ unsigned char arpm_table;
-+ unsigned char arpm_action;
-+ unsigned char arpm_from_len;
-+ unsigned char arpm_to_len;
-+ unsigned char arpm__pad1;
-+ unsigned short arpm__pad2;
-+ unsigned arpm_pref;
-+ unsigned arpm_flags;
-+};
-+
-+enum
-+{
-+ ARPA_UNSPEC,
-+ ARPA_FROM, /* FROM IP prefix */
-+ ARPA_TO, /* TO IP prefix */
-+ ARPA_LLFROM, /* FROM LL prefix */
-+ ARPA_LLTO, /* TO LL prefix */
-+ ARPA_LLSRC, /* New SRC lladdr */
-+ ARPA_LLDST, /* New DST lladdr */
-+ ARPA_IIF, /* In interface prefix */
-+ ARPA_OIF, /* Out interface prefix */
-+ ARPA_SRC, /* New IP SRC */
-+ ARPA_DST, /* New IP DST, not used */
-+ ARPA_PACKETS, /* Packets */
-+};
-+
-+#define ARPA_MAX ARPA_PACKETS
-+
-+#define ARPA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct arpmsg))))
-+
- #ifndef __KERNEL__
- /* RTnetlink multicast groups - backwards compatibility for userspace */
- #define RTMGRP_LINK 1
-@@ -637,6 +695,8 @@ enum {
- #define RTMGRP_DECnet_IFADDR 0x1000
- #define RTMGRP_DECnet_ROUTE 0x4000
-
-+#define RTMGRP_ARP 0x00010000
-+
- #define RTMGRP_IPV6_PREFIX 0x20000
- #endif
-
-@@ -704,6 +764,8 @@ enum rtnetlink_groups {
- #define RTNLGRP_IPV4_MROUTE_R RTNLGRP_IPV4_MROUTE_R
- RTNLGRP_IPV6_MROUTE_R,
- #define RTNLGRP_IPV6_MROUTE_R RTNLGRP_IPV6_MROUTE_R
-+ RTNLGRP_ARP,
-+#define RTNLGRP_ARP RTNLGRP_ARP
- __RTNLGRP_MAX
- };
- #define RTNLGRP_MAX (__RTNLGRP_MAX - 1)
-diff --git a/net/bridge/br_netfilter_hooks.c b/net/bridge/br_netfilter_hooks.c
-index 212c184c1eee..200f61e869f5 100644
---- a/net/bridge/br_netfilter_hooks.c
-+++ b/net/bridge/br_netfilter_hooks.c
-@@ -360,6 +360,9 @@ static int br_nf_pre_routing_finish(struct net *net, struct sock *sk, struct sk_
-
- nf_bridge->frag_max_size = IPCB(skb)->frag_max_size;
-
-+ /* Old skb->dst is not expected, it is lost in all cases */
-+ skb_dst_drop(skb);
-+
- if (nf_bridge->pkt_otherhost) {
- skb->pkt_type = PACKET_OTHERHOST;
- nf_bridge->pkt_otherhost = false;
-diff --git a/net/ipv4/arp.c b/net/ipv4/arp.c
-index e90c89ef8c08..8873e5ca3c3f 100644
---- a/net/ipv4/arp.c
-+++ b/net/ipv4/arp.c
-@@ -71,6 +71,9 @@
- * sending (e.g. insert 8021q tag).
- * Harald Welte : convert to make use of jenkins hash
- * Jesper D. Brouer: Proxy ARP PVLAN RFC 3069 support.
-+ * Julian Anastasov: "hidden" flag: hide the
-+ * interface and don't reply for it
-+ * Julian Anastasov: ARP filtering via netlink
- */
-
- #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
-@@ -95,6 +98,7 @@
- #include <linux/proc_fs.h>
- #include <linux/seq_file.h>
- #include <linux/stat.h>
-+#include <net/netlink.h>
- #include <linux/init.h>
- #include <linux/net.h>
- #include <linux/rcupdate.h>
-@@ -185,6 +189,48 @@ struct neigh_table arp_tbl = {
- };
- EXPORT_SYMBOL(arp_tbl);
-
-+struct arpf_node {
-+ struct arpf_node * at_next;
-+ u32 at_pref;
-+ u32 at_from;
-+ u32 at_from_mask;
-+ u32 at_to;
-+ u32 at_to_mask;
-+ u32 at_src;
-+ atomic_t at_packets;
-+ atomic_t at_refcnt;
-+ unsigned at_flags;
-+ unsigned char at_from_len;
-+ unsigned char at_to_len;
-+ unsigned char at_action;
-+ char at_dead;
-+ unsigned char at_llfrom_len;
-+ unsigned char at_llto_len;
-+ unsigned char at_llsrc_len;
-+ unsigned char at_lldst_len;
-+ unsigned char at_iif_len;
-+ unsigned char at_oif_len;
-+ unsigned short at__pad1;
-+ unsigned char at_llfrom[MAX_ADDR_LEN];
-+ unsigned char at_llto[MAX_ADDR_LEN];
-+ unsigned char at_llsrc[MAX_ADDR_LEN];
-+ unsigned char at_lldst[MAX_ADDR_LEN];
-+ char at_iif[IFNAMSIZ];
-+ char at_oif[IFNAMSIZ];
-+};
-+
-+static struct arpf_node *arp_tabs[3];
-+
-+static struct kmem_cache *arpf_cachep;
-+
-+static DEFINE_RWLOCK(arpf_lock);
-+
-+static void
-+arpf_send(int table, struct net *net, struct sk_buff *skb, u32 sip, u32 tip,
-+ unsigned char *from_hw, unsigned char *to_hw,
-+ struct net_device *idev, struct net_device *odev,
-+ struct dst_entry *dst);
-+
- int arp_mc_map(__be32 addr, u8 *haddr, struct net_device *dev, int dir)
- {
- switch (dev->type) {
-@@ -338,7 +384,9 @@ static void arp_solicit(struct neighbour *neigh, struct sk_buff *skb)
- struct net_device *dev = neigh->dev;
- __be32 target = *(__be32 *)neigh->primary_key;
- int probes = atomic_read(&neigh->probes);
-- struct in_device *in_dev;
-+ struct in_device *in_dev, *in_dev2;
-+ struct net_device *dev2;
-+ int mode;
- struct dst_entry *dst = NULL;
-
- rcu_read_lock();
-@@ -347,9 +395,22 @@ static void arp_solicit(struct neighbour *neigh, struct sk_buff *skb)
- rcu_read_unlock();
- return;
- }
-- switch (IN_DEV_ARP_ANNOUNCE(in_dev)) {
-+ mode = IN_DEV_ARP_ANNOUNCE(in_dev);
-+ if (mode != 2 && skb &&
-+ (dev2 = __ip_dev_find(dev_net(dev), ip_hdr(skb)->saddr,
-+ false)) != NULL &&
-+ (saddr = ip_hdr(skb)->saddr,
-+ in_dev2 = __in_dev_get_rcu(dev2)) != NULL &&
-+ IN_DEV_HIDDEN(in_dev2)) {
-+ saddr = 0;
-+ goto get;
-+ }
-+
-+ switch (mode) {
- default:
- case 0: /* By default announce any local IP */
-+ if (saddr)
-+ break;
- if (skb && inet_addr_type_dev_table(dev_net(dev), dev,
- ip_hdr(skb)->saddr) == RTN_LOCAL)
- saddr = ip_hdr(skb)->saddr;
-@@ -357,9 +418,10 @@ static void arp_solicit(struct neighbour *neigh, struct sk_buff *skb)
- case 1: /* Restrict announcements of saddr in same subnet */
- if (!skb)
- break;
-- saddr = ip_hdr(skb)->saddr;
-- if (inet_addr_type_dev_table(dev_net(dev), dev,
-- saddr) == RTN_LOCAL) {
-+ if (saddr ||
-+ (saddr = ip_hdr(skb)->saddr,
-+ inet_addr_type_dev_table(dev_net(dev), dev,
-+ saddr) == RTN_LOCAL)) {
- /* saddr should be known to target */
- if (inet_addr_onlink(in_dev, target, saddr))
- break;
-@@ -369,6 +431,8 @@ static void arp_solicit(struct neighbour *neigh, struct sk_buff *skb)
- case 2: /* Avoid secondary IPs, get a primary/preferred one */
- break;
- }
-+
-+get:
- rcu_read_unlock();
-
- if (!saddr)
-@@ -390,8 +454,8 @@ static void arp_solicit(struct neighbour *neigh, struct sk_buff *skb)
-
- if (skb && !(dev->priv_flags & IFF_XMIT_DST_RELEASE))
- dst = skb_dst(skb);
-- arp_send_dst(ARPOP_REQUEST, ETH_P_ARP, target, dev, saddr,
-- dst_hw, dev->dev_addr, NULL, dst);
-+ arpf_send(ARPA_TABLE_OUTPUT, dev_net(dev), skb, saddr, target, NULL,
-+ dst_hw, NULL, dev, dst);
- }
-
- static int arp_ignore(struct in_device *in_dev, __be32 sip, __be32 tip)
-@@ -448,6 +512,21 @@ static int arp_filter(__be32 sip, __be32 tip, struct net_device *dev)
- return flag;
- }
-
-+static int arp_hidden(u32 tip, struct net_device *dev)
-+{
-+ struct net_device *dev2;
-+ struct in_device *in_dev2;
-+ int ret = 0;
-+
-+ if (!IPV4_DEVCONF_ALL(dev_net(dev), HIDDEN))
-+ return 0;
-+
-+ if ((dev2 = __ip_dev_find(dev_net(dev), tip, false)) && dev2 != dev &&
-+ (in_dev2 = __in_dev_get_rcu(dev2)) && IN_DEV_HIDDEN(in_dev2))
-+ ret = 1;
-+ return ret;
-+}
-+
- /*
- * Check if we can use proxy ARP for this path
- */
-@@ -808,9 +887,10 @@ static int arp_process(struct net *net, struct sock *sk, struct sk_buff *skb)
- if (sip == 0) {
- if (arp->ar_op == htons(ARPOP_REQUEST) &&
- inet_addr_type_dev_table(net, dev, tip) == RTN_LOCAL &&
-+ !arp_hidden(tip, dev) &&
- !arp_ignore(in_dev, sip, tip))
-- arp_send_dst(ARPOP_REPLY, ETH_P_ARP, sip, dev, tip,
-- sha, dev->dev_addr, sha, reply_dst);
-+ arpf_send(ARPA_TABLE_INPUT, net, skb, sip, tip, sha,
-+ tha, dev, NULL, reply_dst);
- goto out_consume_skb;
- }
-
-@@ -826,13 +906,14 @@ static int arp_process(struct net *net, struct sock *sk, struct sk_buff *skb)
- dont_send = arp_ignore(in_dev, sip, tip);
- if (!dont_send && IN_DEV_ARPFILTER(in_dev))
- dont_send = arp_filter(sip, tip, dev);
-+ if (!dont_send && skb->pkt_type != PACKET_HOST)
-+ dont_send = arp_hidden(tip,dev);
- if (!dont_send) {
- n = neigh_event_ns(&arp_tbl, sha, &sip, dev);
- if (n) {
-- arp_send_dst(ARPOP_REPLY, ETH_P_ARP,
-- sip, dev, tip, sha,
-- dev->dev_addr, sha,
-- reply_dst);
-+ arpf_send(ARPA_TABLE_INPUT, net, skb,
-+ sip, tip, sha, tha, dev,
-+ NULL, reply_dst);
- neigh_release(n);
- }
- }
-@@ -850,10 +931,9 @@ static int arp_process(struct net *net, struct sock *sk, struct sk_buff *skb)
- if (NEIGH_CB(skb)->flags & LOCALLY_ENQUEUED ||
- skb->pkt_type == PACKET_HOST ||
- NEIGH_VAR(in_dev->arp_parms, PROXY_DELAY) == 0) {
-- arp_send_dst(ARPOP_REPLY, ETH_P_ARP,
-- sip, dev, tip, sha,
-- dev->dev_addr, sha,
-- reply_dst);
-+ arpf_send(ARPA_TABLE_FORWARD, net,
-+ skb, sip, tip, sha, tha, dev,
-+ rt->dst.dev, reply_dst);
- } else {
- pneigh_enqueue(&arp_tbl,
- in_dev->arp_parms, skb);
-@@ -1277,6 +1357,577 @@ void arp_ifdown(struct net_device *dev)
- }
-
-
-+static void arpf_destroy(struct arpf_node *afp)
-+{
-+ if (!afp->at_dead) {
-+ printk(KERN_ERR "Destroying alive arp table node %p from %08lx\n", afp,
-+ *(((unsigned long*)&afp)-1));
-+ return;
-+ }
-+ kmem_cache_free(arpf_cachep, afp);
-+}
-+
-+static inline void arpf_put(struct arpf_node *afp)
-+{
-+ if (atomic_dec_and_test(&afp->at_refcnt))
-+ arpf_destroy(afp);
-+}
-+
-+static inline struct arpf_node *
-+arpf_lookup(int table, struct sk_buff *skb, u32 sip, u32 tip,
-+ unsigned char *from_hw, unsigned char *to_hw,
-+ struct net_device *idev, struct net_device *odev)
-+{
-+ int sz_iif = idev? strlen(idev->name) : 0;
-+ int sz_oif = odev? strlen(odev->name) : 0;
-+ int alen;
-+ struct arpf_node *afp;
-+
-+ if (ARPA_TABLE_OUTPUT != table) {
-+ alen = idev->addr_len;
-+ } else {
-+ if (!from_hw) from_hw = odev->dev_addr;
-+ if (!to_hw) to_hw = odev->broadcast;
-+ alen = odev->addr_len;
-+ }
-+
-+ read_lock_bh(&arpf_lock);
-+ for (afp = arp_tabs[table]; afp; afp = afp->at_next) {
-+ if ((tip ^ afp->at_to) & afp->at_to_mask)
-+ continue;
-+ if ((sip ^ afp->at_from) & afp->at_from_mask)
-+ continue;
-+ if (afp->at_llfrom_len &&
-+ (afp->at_llfrom_len > alen ||
-+ memcmp(from_hw, afp->at_llfrom, afp->at_llfrom_len)))
-+ continue;
-+ if (afp->at_llto_len &&
-+ (afp->at_llto_len > alen ||
-+ memcmp(to_hw, afp->at_llto, afp->at_llto_len)))
-+ continue;
-+ if (afp->at_iif_len &&
-+ (afp->at_iif_len > sz_iif ||
-+ memcmp(afp->at_iif, idev->name, afp->at_iif_len) ||
-+ (sz_iif != afp->at_iif_len &&
-+ !(afp->at_flags & ARPM_F_WILDIIF))))
-+ continue;
-+ if (afp->at_oif_len &&
-+ (afp->at_oif_len > sz_oif ||
-+ memcmp(afp->at_oif, odev->name, afp->at_oif_len) ||
-+ (sz_oif != afp->at_oif_len &&
-+ !(afp->at_flags & ARPM_F_WILDOIF))))
-+ continue;
-+ if (afp->at_flags & ARPM_F_BROADCAST &&
-+ skb->pkt_type == PACKET_HOST)
-+ continue;
-+ if (afp->at_flags & ARPM_F_UNICAST &&
-+ skb->pkt_type != PACKET_HOST)
-+ continue;
-+ if (afp->at_llsrc_len && afp->at_llsrc_len != alen)
-+ continue;
-+ if (afp->at_lldst_len && afp->at_lldst_len != alen)
-+ continue;
-+ atomic_inc(&afp->at_refcnt);
-+ atomic_inc(&afp->at_packets);
-+ break;
-+ }
-+ read_unlock_bh(&arpf_lock);
-+ return afp;
-+}
-+
-+static void
-+arpf_send(int table, struct net *net, struct sk_buff *skb, u32 sip, u32 tip,
-+ unsigned char *from_hw, unsigned char *to_hw,
-+ struct net_device *idev, struct net_device *odev,
-+ struct dst_entry *dst)
-+{
-+ struct arpf_node *afp = NULL;
-+
-+ if (!arp_tabs[table] ||
-+ !net_eq(net, &init_net) ||
-+ !(afp = arpf_lookup(table, skb, sip, tip,
-+ from_hw, to_hw, idev, odev))) {
-+ switch (table) {
-+ case ARPA_TABLE_INPUT:
-+ case ARPA_TABLE_FORWARD:
-+ arp_send_dst(ARPOP_REPLY, ETH_P_ARP, sip, idev, tip,
-+ from_hw, idev->dev_addr, from_hw, dst);
-+ break;
-+ case ARPA_TABLE_OUTPUT:
-+ arp_send_dst(ARPOP_REQUEST, ETH_P_ARP, tip, odev, sip,
-+ to_hw, odev->dev_addr, NULL, dst);
-+ break;
-+ }
-+ return;
-+ }
-+
-+ /* deny? */
-+ if (!afp->at_action) goto out;
-+
-+ switch (table) {
-+ case ARPA_TABLE_INPUT:
-+ case ARPA_TABLE_FORWARD:
-+ arp_send_dst(ARPOP_REPLY, ETH_P_ARP, sip, idev, tip,
-+ afp->at_lldst_len?afp->at_lldst:from_hw,
-+ afp->at_llsrc_len?afp->at_llsrc:idev->dev_addr,
-+ afp->at_lldst_len?afp->at_lldst:from_hw, dst);
-+ break;
-+ case ARPA_TABLE_OUTPUT:
-+ if (afp->at_flags & ARPM_F_PREFSRC && afp->at_src == 0) {
-+ struct rtable *rt;
-+ struct flowi4 fl4 = { .daddr = tip,
-+ .flowi4_oif = odev->ifindex };
-+
-+ rt = ip_route_output_key(net, &fl4);
-+ if (IS_ERR(rt))
-+ break;
-+ sip = fl4.saddr;
-+ ip_rt_put(rt);
-+ if (!sip)
-+ break;
-+ }
-+ arp_send_dst(ARPOP_REQUEST, ETH_P_ARP, tip, odev,
-+ afp->at_src?:sip,
-+ afp->at_lldst_len?afp->at_lldst:to_hw,
-+ afp->at_llsrc_len?afp->at_llsrc:odev->dev_addr,
-+ NULL, dst);
-+ break;
-+ }
-+
-+out:
-+ arpf_put(afp);
-+}
-+
-+static int
-+arpf_fill_node(struct sk_buff *skb, u32 portid, u32 seq, unsigned flags,
-+ int event, int table, struct arpf_node *afp)
-+{
-+ struct arpmsg *am;
-+ struct nlmsghdr *nlh;
-+ u32 packets = atomic_read(&afp->at_packets);
-+
-+ nlh = nlmsg_put(skb, portid, seq, event, sizeof(*am), 0);
-+ if (nlh == NULL)
-+ return -ENOBUFS;
-+ nlh->nlmsg_flags = flags;
-+ am = nlmsg_data(nlh);
-+ am->arpm_family = AF_UNSPEC;
-+ am->arpm_table = table;
-+ am->arpm_action = afp->at_action;
-+ am->arpm_from_len = afp->at_from_len;
-+ am->arpm_to_len = afp->at_to_len;
-+ am->arpm_pref = afp->at_pref;
-+ am->arpm_flags = afp->at_flags;
-+ if (afp->at_from_len &&
-+ nla_put(skb, ARPA_FROM, 4, &afp->at_from))
-+ goto nla_put_failure;
-+ if (afp->at_to_len &&
-+ nla_put(skb, ARPA_TO, 4, &afp->at_to))
-+ goto nla_put_failure;
-+ if ((afp->at_src || afp->at_flags & ARPM_F_PREFSRC) &&
-+ nla_put(skb, ARPA_SRC, 4, &afp->at_src))
-+ goto nla_put_failure;
-+ if (afp->at_iif[0] &&
-+ nla_put(skb, ARPA_IIF, sizeof(afp->at_iif), afp->at_iif))
-+ goto nla_put_failure;
-+ if (afp->at_oif[0] &&
-+ nla_put(skb, ARPA_OIF, sizeof(afp->at_oif), afp->at_oif))
-+ goto nla_put_failure;
-+ if (afp->at_llfrom_len &&
-+ nla_put(skb, ARPA_LLFROM, afp->at_llfrom_len, afp->at_llfrom))
-+ goto nla_put_failure;
-+ if (afp->at_llto_len &&
-+ nla_put(skb, ARPA_LLTO, afp->at_llto_len, afp->at_llto))
-+ goto nla_put_failure;
-+ if (afp->at_llsrc_len &&
-+ nla_put(skb, ARPA_LLSRC, afp->at_llsrc_len, afp->at_llsrc))
-+ goto nla_put_failure;
-+ if (afp->at_lldst_len &&
-+ nla_put(skb, ARPA_LLDST, afp->at_lldst_len, afp->at_lldst))
-+ goto nla_put_failure;
-+ if (nla_put(skb, ARPA_PACKETS, 4, &packets))
-+ goto nla_put_failure;
-+ nlmsg_end(skb, nlh);
-+ return 0;
-+
-+nla_put_failure:
-+ nlmsg_cancel(skb, nlh);
-+ return -EMSGSIZE;
-+}
-+
-+static void
-+arpmsg_notify(struct sk_buff *oskb, struct nlmsghdr *nlh, int table,
-+ struct arpf_node *afp, int event)
-+{
-+ struct sk_buff *skb;
-+ u32 portid = oskb ? NETLINK_CB(oskb).portid : 0;
-+ int payload = sizeof(struct arpmsg) + 256;
-+ int err = -ENOBUFS;
-+
-+ skb = nlmsg_new(nlmsg_total_size(payload), GFP_KERNEL);
-+ if (!skb)
-+ goto errout;
-+
-+ err = arpf_fill_node(skb, portid, nlh->nlmsg_seq, 0, event, table, afp);
-+ if (err < 0) {
-+ kfree_skb(skb);
-+ goto errout;
-+ }
-+
-+ rtnl_notify(skb, &init_net, portid, RTNLGRP_ARP, nlh, GFP_KERNEL);
-+ return;
-+errout:
-+ if (err < 0)
-+ rtnl_set_sk_err(&init_net, RTNLGRP_ARP, err);
-+}
-+
-+static inline int
-+arpf_str_size(int a, struct nlattr **rta, int maxlen)
-+{
-+ int size = 0;
-+
-+ if (rta[a] && (size = nla_len(rta[a]))) {
-+ if (size > maxlen)
-+ size = maxlen;
-+ }
-+ return size;
-+}
-+
-+static inline int
-+arpf_get_str(int a, struct nlattr **rta, unsigned char *p,
-+ int maxlen, unsigned char *l)
-+{
-+ int size = arpf_str_size(a, rta, maxlen);
-+
-+ if (size) {
-+ memcpy(p, nla_data(rta[a]), size);
-+ *l = size;
-+ }
-+ return size;
-+}
-+
-+#define ARPF_MATCH_U32(ind, field) ( \
-+ (!rta[ind] && r->at_ ## field == 0) || \
-+ (rta[ind] && \
-+ *(u32*) nla_data(rta[ind]) == r->at_ ## field))
-+
-+#define ARPF_MATCH_STR(ind, field) ( \
-+ (!rta[ind] && r->at_ ## field ## _len == 0) || \
-+ (rta[ind] && r->at_ ## field ## _len && \
-+ r->at_ ## field ## _len < nla_len(rta[ind]) && \
-+ strcmp(nla_data(rta[ind]), r->at_ ## field) == 0))
-+
-+#define ARPF_MATCH_DATA(ind, field) ( \
-+ (!rta[ind] && r->at_ ## field ## _len == 0) || \
-+ (rta[ind] && r->at_ ## field ## _len && \
-+ r->at_ ## field ## _len == nla_len(rta[ind]) && \
-+ memcmp(nla_data(rta[ind]), &r->at_ ## field, \
-+ r->at_ ## field ## _len) == 0))
-+
-+/* RTM_NEWARPRULE/RTM_DELARPRULE/RTM_GETARPRULE */
-+
-+int arpf_rule_ctl(struct sk_buff *skb, struct nlmsghdr *n,
-+ struct netlink_ext_ack *extack)
-+{
-+ struct net *net = sock_net(skb->sk);
-+ struct nlattr *rta[ARPA_MAX + 1];
-+ struct arpmsg *am;
-+ struct arpf_node *r, **rp, **prevp = 0, **delp = 0, *newp = 0;
-+ unsigned pref = 1;
-+ int size, ret;
-+
-+ if (!capable(CAP_NET_ADMIN))
-+ return -EPERM;
-+
-+ if (!net_eq(net, &init_net))
-+ return -EINVAL;
-+
-+ ret = nlmsg_parse(n, sizeof(struct arpmsg), rta, ARPA_MAX, NULL,
-+ extack);
-+ if (ret < 0)
-+ return ret;
-+
-+ am = nlmsg_data(n);
-+ ret = -EINVAL;
-+ if (am->arpm_table >= sizeof(arp_tabs)/sizeof(arp_tabs[0]))
-+ goto out;
-+ if (!((~am->arpm_flags) & (ARPM_F_BROADCAST|ARPM_F_UNICAST)))
-+ goto out;
-+ if (am->arpm_action > 1)
-+ goto out;
-+ if (am->arpm_to_len > 32 || am->arpm_from_len > 32)
-+ goto out;
-+ if (am->arpm_flags & ARPM_F_WILDIIF &&
-+ (!rta[ARPA_IIF] || !nla_len(rta[ARPA_IIF]) ||
-+ !*(char*) nla_data(rta[ARPA_IIF])))
-+ am->arpm_flags &= ~ARPM_F_WILDIIF;
-+ if (am->arpm_flags & ARPM_F_WILDOIF &&
-+ (!rta[ARPA_OIF] || !nla_len(rta[ARPA_OIF]) ||
-+ !*(char*) nla_data(rta[ARPA_OIF])))
-+ am->arpm_flags &= ~ARPM_F_WILDOIF;
-+ switch (am->arpm_table) {
-+ case ARPA_TABLE_INPUT:
-+ if (rta[ARPA_SRC] || rta[ARPA_OIF])
-+ goto out;
-+ break;
-+ case ARPA_TABLE_OUTPUT:
-+ if (rta[ARPA_IIF])
-+ goto out;
-+ if (am->arpm_flags & (ARPM_F_BROADCAST|ARPM_F_UNICAST))
-+ goto out;
-+ break;
-+ case ARPA_TABLE_FORWARD:
-+ if (rta[ARPA_SRC])
-+ goto out;
-+ break;
-+ }
-+ if (rta[ARPA_SRC] && !*(u32*) nla_data(rta[ARPA_SRC]))
-+ am->arpm_flags |= ARPM_F_PREFSRC;
-+ else
-+ am->arpm_flags &= ~ARPM_F_PREFSRC;
-+
-+ for (rp = &arp_tabs[am->arpm_table]; (r=*rp) != NULL; rp=&r->at_next) {
-+ if (pref < r->at_pref)
-+ prevp = rp;
-+ if (am->arpm_pref == r->at_pref ||
-+ (!am->arpm_pref &&
-+ am->arpm_to_len == r->at_to_len &&
-+ am->arpm_from_len == r->at_from_len &&
-+ !((am->arpm_flags ^ r->at_flags) &
-+ (ARPM_F_BROADCAST | ARPM_F_UNICAST |
-+ ARPM_F_WILDIIF | ARPM_F_WILDOIF)) &&
-+ ARPF_MATCH_U32(ARPA_TO, to) &&
-+ ARPF_MATCH_U32(ARPA_FROM, from) &&
-+ ARPF_MATCH_DATA(ARPA_LLFROM, llfrom) &&
-+ ARPF_MATCH_DATA(ARPA_LLTO, llto) &&
-+ ARPF_MATCH_STR(ARPA_IIF, iif) &&
-+ ARPF_MATCH_STR(ARPA_OIF, oif) &&
-+ (n->nlmsg_type != RTM_DELARPRULE ||
-+ /* DEL matches more keys */
-+ (am->arpm_flags == r->at_flags &&
-+ am->arpm_action == r->at_action &&
-+ ARPF_MATCH_U32(ARPA_SRC, src) &&
-+ ARPF_MATCH_DATA(ARPA_LLSRC, llsrc) &&
-+ ARPF_MATCH_DATA(ARPA_LLDST, lldst)
-+ )
-+ )
-+ )
-+ )
-+ break;
-+ if (am->arpm_pref && r->at_pref > am->arpm_pref) {
-+ r = NULL;
-+ break;
-+ }
-+ pref = r->at_pref+1;
-+ }
-+
-+ /*
-+ * r=NULL: *rp != NULL (stopped before next pref), pref: not valid
-+ * *rp == NULL (not found), pref: ready to use
-+ * r!=NULL: found, pref: not valid
-+ *
-+ * prevp=NULL: no free slot
-+ * prevp!=NULL: free slot for rule
-+ */
-+
-+ if (n->nlmsg_type == RTM_DELARPRULE) {
-+ if (!r)
-+ return -ESRCH;
-+ delp = rp;
-+ goto dequeue;
-+ }
-+
-+ if (r) {
-+ /* Existing rule */
-+ ret = -EEXIST;
-+ if (n->nlmsg_flags&NLM_F_EXCL)
-+ goto out;
-+
-+ if (n->nlmsg_flags&NLM_F_REPLACE) {
-+ pref = r->at_pref;
-+ prevp = delp = rp;
-+ goto replace;
-+ }
-+ }
-+
-+ if (n->nlmsg_flags&NLM_F_APPEND) {
-+ if (r) {
-+ pref = r->at_pref+1;
-+ for (rp=&r->at_next; (r=*rp) != NULL; rp=&r->at_next) {
-+ if (pref != r->at_pref)
-+ break;
-+ pref ++;
-+ }
-+ ret = -EBUSY;
-+ if (!pref)
-+ goto out;
-+ } else if (am->arpm_pref)
-+ pref = am->arpm_pref;
-+ prevp = rp;
-+ }
-+
-+ if (!(n->nlmsg_flags&NLM_F_CREATE)) {
-+ ret = -ENOENT;
-+ if (n->nlmsg_flags&NLM_F_EXCL || r)
-+ ret = 0;
-+ goto out;
-+ }
-+
-+ if (!(n->nlmsg_flags&NLM_F_APPEND)) {
-+ if (!prevp) {
-+ ret = -EBUSY;
-+ if (r || *rp ||
-+ (!am->arpm_pref && arp_tabs[am->arpm_table]))
-+ goto out;
-+ prevp = rp;
-+ pref = am->arpm_pref? : 99;
-+ } else {
-+ if (r || !am->arpm_pref) {
-+ pref = (*prevp)->at_pref - 1;
-+ if (am->arpm_pref && am->arpm_pref < pref)
-+ pref = am->arpm_pref;
-+ } else {
-+ prevp = rp;
-+ pref = am->arpm_pref;
-+ }
-+ }
-+ }
-+
-+replace:
-+
-+ ret = -ENOMEM;
-+ r = kmem_cache_alloc(arpf_cachep, GFP_KERNEL);
-+ if (!r)
-+ return ret;
-+ memset(r, 0, sizeof(*r));
-+
-+ arpf_get_str(ARPA_LLFROM, rta, r->at_llfrom, MAX_ADDR_LEN,
-+ &r->at_llfrom_len);
-+ arpf_get_str(ARPA_LLTO, rta, r->at_llto, MAX_ADDR_LEN,
-+ &r->at_llto_len);
-+ arpf_get_str(ARPA_LLSRC, rta, r->at_llsrc, MAX_ADDR_LEN,
-+ &r->at_llsrc_len);
-+ arpf_get_str(ARPA_LLDST, rta, r->at_lldst, MAX_ADDR_LEN,
-+ &r->at_lldst_len);
-+
-+ if (delp)
-+ r->at_next = (*delp)->at_next;
-+ else if (*prevp)
-+ r->at_next = *prevp;
-+
-+ r->at_pref = pref;
-+ r->at_from_len = am->arpm_from_len;
-+ r->at_from_mask = inet_make_mask(r->at_from_len);
-+ if (rta[ARPA_FROM])
-+ r->at_from = *(u32*) nla_data(rta[ARPA_FROM]);
-+ r->at_from &= r->at_from_mask;
-+ r->at_to_len = am->arpm_to_len;
-+ r->at_to_mask = inet_make_mask(r->at_to_len);
-+ if (rta[ARPA_TO])
-+ r->at_to = *(u32*) nla_data(rta[ARPA_TO]);
-+ r->at_to &= r->at_to_mask;
-+ if (rta[ARPA_SRC])
-+ r->at_src = *(u32*) nla_data(rta[ARPA_SRC]);
-+ if (rta[ARPA_PACKETS]) {
-+ u32 packets = *(u32*) nla_data(rta[ARPA_PACKETS]);
-+ atomic_set(&r->at_packets, packets);
-+ }
-+ atomic_set(&r->at_refcnt, 1);
-+ r->at_flags = am->arpm_flags;
-+ r->at_action = am->arpm_action;
-+
-+ if (rta[ARPA_IIF] && (size = nla_len(rta[ARPA_IIF]))) {
-+ if (size >= sizeof(r->at_iif))
-+ size = sizeof(r->at_iif)-1;
-+ memcpy(r->at_iif, nla_data(rta[ARPA_IIF]), size);
-+ r->at_iif_len = strlen(r->at_iif);
-+ }
-+ if (rta[ARPA_OIF] && (size = nla_len(rta[ARPA_OIF]))) {
-+ if (size >= sizeof(r->at_oif))
-+ size = sizeof(r->at_oif)-1;
-+ memcpy(r->at_oif, nla_data(rta[ARPA_OIF]), size);
-+ r->at_oif_len = strlen(r->at_oif);
-+ }
-+
-+ newp = r;
-+
-+dequeue:
-+
-+ if (delp) {
-+ r = *delp;
-+ write_lock_bh(&arpf_lock);
-+ if (newp) {
-+ if (!rta[ARPA_PACKETS])
-+ atomic_set(&newp->at_packets,
-+ atomic_read(&r->at_packets));
-+ *delp = newp;
-+ } else {
-+ *delp = r->at_next;
-+ }
-+ r->at_dead = 1;
-+ write_unlock_bh(&arpf_lock);
-+ arpmsg_notify(skb, n, am->arpm_table, r, RTM_DELARPRULE);
-+ arpf_put(r);
-+ prevp = 0;
-+ }
-+
-+ if (newp) {
-+ if (prevp) {
-+ write_lock_bh(&arpf_lock);
-+ *prevp = newp;
-+ write_unlock_bh(&arpf_lock);
-+ }
-+ arpmsg_notify(skb, n, am->arpm_table, newp, RTM_NEWARPRULE);
-+ }
-+
-+ ret = 0;
-+
-+out:
-+ return ret;
-+}
-+
-+int arpf_dump_table(int t, struct sk_buff *skb, struct netlink_callback *cb)
-+{
-+ int idx, ret = -1;
-+ struct arpf_node *afp;
-+ int s_idx = cb->args[1];
-+
-+ for (idx=0, afp = arp_tabs[t]; afp; afp = afp->at_next, idx++) {
-+ if (idx < s_idx)
-+ continue;
-+ if (arpf_fill_node(skb, NETLINK_CB(cb->skb).portid,
-+ cb->nlh->nlmsg_seq, NLM_F_MULTI, RTM_NEWARPRULE, t, afp) < 0)
-+ goto out;
-+ }
-+
-+ ret = skb->len;
-+
-+out:
-+ cb->args[1] = idx;
-+
-+ return ret;
-+}
-+
-+int arpf_dump_rules(struct sk_buff *skb, struct netlink_callback *cb)
-+{
-+ int idx;
-+ int s_idx = cb->args[0];
-+
-+ read_lock_bh(&arpf_lock);
-+ for (idx = 0; idx < sizeof(arp_tabs)/sizeof(arp_tabs[0]); idx++) {
-+ if (idx < s_idx)
-+ continue;
-+ if (idx > s_idx)
-+ memset(&cb->args[1], 0, sizeof(cb->args)-1*sizeof(cb->args[0]));
-+ if (arpf_dump_table(idx, skb, cb) < 0)
-+ break;
-+ }
-+ read_unlock_bh(&arpf_lock);
-+ cb->args[0] = idx;
-+
-+ return skb->len;
-+}
-+
- /*
- * Called once on startup.
- */
-@@ -1290,6 +1941,16 @@ static int arp_proc_init(void);
-
- void __init arp_init(void)
- {
-+ arpf_cachep = kmem_cache_create("ip_arpf_cache",
-+ sizeof(struct arpf_node), 0,
-+ SLAB_HWCACHE_ALIGN, NULL);
-+ if (!arpf_cachep)
-+ panic("IP: failed to allocate ip_arpf_cache\n");
-+
-+ rtnl_register(PF_UNSPEC, RTM_NEWARPRULE, arpf_rule_ctl, NULL, 0);
-+ rtnl_register(PF_UNSPEC, RTM_DELARPRULE, arpf_rule_ctl, NULL, 0);
-+ rtnl_register(PF_UNSPEC, RTM_GETARPRULE, NULL, arpf_dump_rules, 0);
-+
- neigh_table_init(NEIGH_ARP_TABLE, &arp_tbl);
-
- dev_add_pack(&arp_packet_type);
-diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c
-index ea4bd8a52422..825cd4101000 100644
---- a/net/ipv4/devinet.c
-+++ b/net/ipv4/devinet.c
-@@ -1296,9 +1296,14 @@ __be32 inet_select_addr(const struct net_device *dev, __be32 dst, int scope)
- if (!in_dev)
- continue;
-
-- addr = in_dev_select_addr(in_dev, scope);
-- if (addr)
-- goto out_unlock;
-+ for_primary_ifa(in_dev) {
-+ if (!IN_DEV_HIDDEN(in_dev) &&
-+ ifa->ifa_scope != RT_SCOPE_LINK &&
-+ ifa->ifa_scope <= scope) {
-+ addr = ifa->ifa_local;
-+ goto out_unlock;
-+ }
-+ } endfor_ifa(in_dev);
- }
- out_unlock:
- rcu_read_unlock();
-@@ -2278,13 +2283,16 @@ static struct devinet_sysctl_table {
- DEVINET_SYSCTL_RW_ENTRY(SEND_REDIRECTS, "send_redirects"),
- DEVINET_SYSCTL_RW_ENTRY(ACCEPT_SOURCE_ROUTE,
- "accept_source_route"),
-+ DEVINET_SYSCTL_RW_ENTRY(FORWARD_SHARED, "forward_shared"),
- DEVINET_SYSCTL_RW_ENTRY(ACCEPT_LOCAL, "accept_local"),
- DEVINET_SYSCTL_RW_ENTRY(SRC_VMARK, "src_valid_mark"),
- DEVINET_SYSCTL_RW_ENTRY(PROXY_ARP, "proxy_arp"),
- DEVINET_SYSCTL_RW_ENTRY(MEDIUM_ID, "medium_id"),
-+ DEVINET_SYSCTL_RW_ENTRY(RP_FILTER_MASK, "rp_filter_mask"),
- DEVINET_SYSCTL_RW_ENTRY(BOOTP_RELAY, "bootp_relay"),
- DEVINET_SYSCTL_RW_ENTRY(LOG_MARTIANS, "log_martians"),
- DEVINET_SYSCTL_RW_ENTRY(TAG, "tag"),
-+ DEVINET_SYSCTL_RW_ENTRY(HIDDEN, "hidden"),
- DEVINET_SYSCTL_RW_ENTRY(ARPFILTER, "arp_filter"),
- DEVINET_SYSCTL_RW_ENTRY(ARP_ANNOUNCE, "arp_announce"),
- DEVINET_SYSCTL_RW_ENTRY(ARP_IGNORE, "arp_ignore"),
-diff --git a/net/ipv4/fib_frontend.c b/net/ipv4/fib_frontend.c
-index dae743b649c1..7ff52bf6560d 100644
---- a/net/ipv4/fib_frontend.c
-+++ b/net/ipv4/fib_frontend.c
-@@ -51,6 +51,8 @@
-
- #ifndef CONFIG_IP_MULTIPLE_TABLES
-
-+#define FIB_RES_TABLE(r) (RT_TABLE_MAIN)
-+
- static int __net_init fib4_rules_init(struct net *net)
- {
- struct fib_table *local_table, *main_table;
-@@ -80,6 +82,8 @@ static bool fib4_has_custom_rules(struct net *net)
- }
- #else
-
-+#define FIB_RES_TABLE(r) (fib_result_table(r))
-+
- struct fib_table *fib_new_table(struct net *net, u32 id)
- {
- struct fib_table *tb, *alias = NULL;
-@@ -325,13 +329,19 @@ __be32 fib_compute_spec_dst(struct sk_buff *skb)
- */
- static int __fib_validate_source(struct sk_buff *skb, __be32 src, __be32 dst,
- u8 tos, int oif, struct net_device *dev,
-- int rpf, struct in_device *idev, u32 *itag)
-+ int rpf, struct in_device *idev, u32 *itag,
-+ int our)
- {
- struct net *net = dev_net(dev);
- struct flow_keys flkeys;
-+ u32 table;
-+ unsigned char prefixlen;
-+ unsigned char scope;
- int ret, no_addr;
- struct fib_result res;
- struct flowi4 fl4;
-+ int fwdsh;
-+ unsigned int rpf_mask;
- bool dev_match;
-
- fl4.flowi4_oif = 0;
-@@ -345,10 +355,13 @@ static int __fib_validate_source(struct sk_buff *skb, __be32 src, __be32 dst,
- fl4.flowi4_tun_key.tun_id = 0;
- fl4.flowi4_flags = 0;
- fl4.flowi4_uid = sock_net_uid(net, NULL);
-+ fl4.fl4_gw = 0;
-
- no_addr = idev->ifa_list == NULL;
-
-+ fwdsh = IN_DEV_FORWARD_SHARED(idev);
- fl4.flowi4_mark = IN_DEV_SRC_VMARK(idev) ? skb->mark : 0;
-+ rpf_mask = IN_DEV_RPFILTER_MASK(idev);
- if (!fib4_rules_early_flow_dissect(net, skb, &fl4, &flkeys)) {
- fl4.flowi4_proto = 0;
- fl4.fl4_sport = 0;
-@@ -357,7 +370,12 @@ static int __fib_validate_source(struct sk_buff *skb, __be32 src, __be32 dst,
-
- if (fib_lookup(net, &fl4, &res, 0))
- goto last_resort;
-- if (res.type != RTN_UNICAST &&
-+ if (fwdsh) {
-+ fwdsh = (res.type == RTN_LOCAL && !our);
-+ if (fwdsh)
-+ rpf = 0;
-+ }
-+ if (res.type != RTN_UNICAST && !fwdsh &&
- (res.type != RTN_LOCAL || !IN_DEV_ACCEPT_LOCAL(idev)))
- goto e_inval;
- fib_combine_itag(itag, &res);
-@@ -383,17 +401,36 @@ static int __fib_validate_source(struct sk_buff *skb, __be32 src, __be32 dst,
- ret = FIB_RES_NH(res).nh_scope >= RT_SCOPE_HOST;
- return ret;
- }
-+ if (rpf_mask && rpf) {
-+ int omi = 0;
-+
-+ idev = __in_dev_get_rcu(FIB_RES_DEV(res));
-+ if (idev)
-+ omi = IN_DEV_MEDIUM_ID(idev);
-+ if (omi >= 1 && omi <= 31 && ((1 << omi) & rpf_mask))
-+ rpf = 0;
-+ }
- if (no_addr)
- goto last_resort;
-- if (rpf == 1)
-- goto e_rpf;
-+ table = FIB_RES_TABLE(&res);
-+ prefixlen = res.prefixlen;
-+ scope = res.scope;
- fl4.flowi4_oif = dev->ifindex;
-+ if (fwdsh)
-+ fl4.flowi4_iif = LOOPBACK_IFINDEX;
-
- ret = 0;
- if (fib_lookup(net, &fl4, &res, FIB_LOOKUP_IGNORE_LINKSTATE) == 0) {
-- if (res.type == RTN_UNICAST)
-+ if (res.type == RTN_UNICAST &&
-+ ((table == FIB_RES_TABLE(&res) &&
-+ res.prefixlen >= prefixlen && res.scope >= scope) ||
-+ !rpf)) {
- ret = FIB_RES_NH(res).nh_scope >= RT_SCOPE_HOST;
-+ return ret;
-+ }
- }
-+ if (rpf == 1)
-+ goto e_rpf;
- return ret;
-
- last_resort:
-@@ -411,7 +448,7 @@ static int __fib_validate_source(struct sk_buff *skb, __be32 src, __be32 dst,
- /* Ignore rp_filter for packets protected by IPsec. */
- int fib_validate_source(struct sk_buff *skb, __be32 src, __be32 dst,
- u8 tos, int oif, struct net_device *dev,
-- struct in_device *idev, u32 *itag)
-+ struct in_device *idev, u32 *itag, int our)
- {
- int r = secpath_exists(skb) ? 0 : IN_DEV_RPFILTER(idev);
- struct net *net = dev_net(dev);
-@@ -436,7 +473,8 @@ int fib_validate_source(struct sk_buff *skb, __be32 src, __be32 dst,
- }
-
- full_check:
-- return __fib_validate_source(skb, src, dst, tos, oif, dev, r, idev, itag);
-+ return __fib_validate_source(skb, src, dst, tos, oif, dev, r, idev,
-+ itag, our);
- }
-
- static inline __be32 sk_extract_addr(struct sockaddr *addr)
-@@ -1222,9 +1260,7 @@ static int fib_inetaddr_event(struct notifier_block *this, unsigned long event,
- switch (event) {
- case NETDEV_UP:
- fib_add_ifaddr(ifa);
--#ifdef CONFIG_IP_ROUTE_MULTIPATH
- fib_sync_up(dev, RTNH_F_DEAD);
--#endif
- atomic_inc(&net->ipv4.dev_addr_genid);
- rt_cache_flush(dev_net(dev));
- break;
-@@ -1268,9 +1304,7 @@ static int fib_netdev_event(struct notifier_block *this, unsigned long event, vo
- for_ifa(in_dev) {
- fib_add_ifaddr(ifa);
- } endfor_ifa(in_dev);
--#ifdef CONFIG_IP_ROUTE_MULTIPATH
- fib_sync_up(dev, RTNH_F_DEAD);
--#endif
- atomic_inc(&net->ipv4.dev_addr_genid);
- rt_cache_flush(net);
- break;
-diff --git a/net/ipv4/fib_rules.c b/net/ipv4/fib_rules.c
-index f8eb78d042a4..b7bceafca946 100644
---- a/net/ipv4/fib_rules.c
-+++ b/net/ipv4/fib_rules.c
-@@ -78,6 +78,11 @@ unsigned int fib4_rules_seq_read(struct net *net)
- return fib_rules_seq_read(net, AF_INET);
- }
-
-+u32 fib_result_table(struct fib_result *res)
-+{
-+ return res->table ? res->table->tb_id : RT_TABLE_UNSPEC;
-+}
-+
- int __fib_lookup(struct net *net, struct flowi4 *flp,
- struct fib_result *res, unsigned int flags)
- {
-diff --git a/net/ipv4/fib_semantics.c b/net/ipv4/fib_semantics.c
-index 446204ca7406..be5c82db4c0b 100644
---- a/net/ipv4/fib_semantics.c
-+++ b/net/ipv4/fib_semantics.c
-@@ -53,6 +53,7 @@ static struct hlist_head *fib_info_hash;
- static struct hlist_head *fib_info_laddrhash;
- static unsigned int fib_info_hash_size;
- static unsigned int fib_info_cnt;
-+DEFINE_RWLOCK(fib_nhflags_lock);
-
- #define DEVINDEX_HASHBITS 8
- #define DEVINDEX_HASHSIZE (1U << DEVINDEX_HASHBITS)
-@@ -435,28 +436,71 @@ void rtmsg_fib(int event, __be32 key, struct fib_alias *fa,
-
- static int fib_detect_death(struct fib_info *fi, int order,
- struct fib_info **last_resort, int *last_idx,
-- int dflt)
-+ int dflt, int *last_nhsel,
-+ const struct flowi4 *flp)
- {
- struct neighbour *n;
-- int state = NUD_NONE;
-+ int nhsel;
-+ int state;
-+ struct fib_nh * nh;
-+ __be32 dst;
-+ int flag, dead = 1;
-
-- n = neigh_lookup(&arp_tbl, &fi->fib_nh[0].nh_gw, fi->fib_dev);
-- if (n) {
-- state = n->nud_state;
-- neigh_release(n);
-- } else {
-- return 0;
-- }
-- if (state == NUD_REACHABLE)
-- return 0;
-- if ((state & NUD_VALID) && order != dflt)
-- return 0;
-- if ((state & NUD_VALID) ||
-- (*last_idx < 0 && order > dflt && state != NUD_INCOMPLETE)) {
-- *last_resort = fi;
-- *last_idx = order;
-+ /* change_nexthops(fi) { */
-+ for (nhsel = 0, nh = fi->fib_nh; nhsel < fi->fib_nhs; nh++, nhsel++) {
-+ if (flp->flowi4_oif && flp->flowi4_oif != nh->nh_oif &&
-+ !(flp->flowi4_flags & FLOWI_FLAG_SKIP_NH_OIF))
-+ continue;
-+ if (flp->fl4_gw && flp->fl4_gw != nh->nh_gw && nh->nh_gw &&
-+ nh->nh_scope == RT_SCOPE_LINK)
-+ continue;
-+ if (nh->nh_flags & RTNH_F_DEAD)
-+ continue;
-+
-+ flag = 0;
-+ if (nh->nh_dev->flags & IFF_NOARP) {
-+ dead = 0;
-+ goto setfl;
-+ }
-+
-+ dst = nh->nh_gw;
-+ if (!nh->nh_gw || nh->nh_scope != RT_SCOPE_LINK)
-+ dst = flp->daddr;
-+
-+ state = NUD_NONE;
-+ n = neigh_lookup(&arp_tbl, &dst, nh->nh_dev);
-+ if (n) {
-+ state = n->nud_state;
-+ neigh_release(n);
-+ }
-+ if (state == NUD_REACHABLE ||
-+ ((state & NUD_VALID) && order != dflt)) {
-+ dead = 0;
-+ goto setfl;
-+ }
-+ if (!(state & NUD_VALID))
-+ flag = 1;
-+ if (!dead)
-+ goto setfl;
-+ if ((state & NUD_VALID) ||
-+ (*last_idx < 0 && order >= dflt)) {
-+ *last_resort = fi;
-+ *last_idx = order;
-+ *last_nhsel = nhsel;
-+ }
-+
-+ setfl:
-+
-+ read_lock_bh(&fib_nhflags_lock);
-+ if (flag)
-+ nh->nh_flags |= RTNH_F_SUSPECT;
-+ else
-+ nh->nh_flags &= ~RTNH_F_SUSPECT;
-+ read_unlock_bh(&fib_nhflags_lock);
- }
-- return 1;
-+ /* } endfor_nexthops(fi) */
-+
-+ return dead;
- }
-
- #ifdef CONFIG_IP_ROUTE_MULTIPATH
-@@ -783,6 +827,7 @@ static int fib_check_nh(struct fib_config *cfg, struct fib_nh *nh,
- int err = 0;
- struct net *net;
- struct net_device *dev;
-+ struct fib_info *fi = nh->nh_parent;
-
- net = cfg->fc_nlinfo.nl_net;
- if (nh->nh_gw) {
-@@ -800,9 +845,12 @@ static int fib_check_nh(struct fib_config *cfg, struct fib_nh *nh,
- if (!dev)
- return -ENODEV;
- if (!(dev->flags & IFF_UP)) {
-- NL_SET_ERR_MSG(extack,
-- "Nexthop device is not up");
-- return -ENETDOWN;
-+ if (fi->fib_protocol != RTPROT_STATIC) {
-+ NL_SET_ERR_MSG(extack,
-+ "Nexthop device is not up");
-+ return -ENETDOWN;
-+ }
-+ nh->nh_flags |= RTNH_F_DEAD;
- }
- addr_type = inet_addr_type_dev_table(net, dev, nh->nh_gw);
- if (addr_type != RTN_UNICAST) {
-@@ -847,31 +895,57 @@ static int fib_check_nh(struct fib_config *cfg, struct fib_nh *nh,
- err = fib_lookup(net, &fl4, &res,
- FIB_LOOKUP_IGNORE_LINKSTATE);
- }
-+ }
-+ if (err) {
-+ struct in_device *in_dev;
-
-- if (err) {
-+ if (err != -ENETUNREACH ||
-+ fi->fib_protocol != RTPROT_STATIC) {
- NL_SET_ERR_MSG(extack,
- "Nexthop has invalid gateway");
-- rcu_read_unlock();
-- return err;
-+ goto out;
- }
-+
-+ in_dev = inetdev_by_index(net, nh->nh_oif);
-+ if (in_dev == NULL ||
-+ in_dev->dev->flags & IFF_UP) {
-+ NL_SET_ERR_MSG(extack,
-+ "Device for nexthop is not up");
-+ goto out;
-+ }
-+ nh->nh_flags |= RTNH_F_DEAD;
-+ nh->nh_scope = RT_SCOPE_LINK;
-+ nh->nh_dev = in_dev->dev;
-+ dev_hold(nh->nh_dev);
-+ } else {
-+ err = -EINVAL;
-+ if (res.type != RTN_UNICAST && res.type != RTN_LOCAL) {
-+ NL_SET_ERR_MSG(extack,
-+ "Nexthop has invalid gateway");
-+ goto out;
-+ }
-+ nh->nh_scope = res.scope;
-+ nh->nh_oif = FIB_RES_OIF(res);
-+ nh->nh_dev = dev = FIB_RES_DEV(res);
-+ if (!dev) {
-+ NL_SET_ERR_MSG(extack,
-+ "No egress device for nexthop gateway");
-+ goto out;
-+ }
-+ dev_hold(dev);
-+ if (!netif_carrier_ok(dev))
-+ nh->nh_flags |= RTNH_F_LINKDOWN;
-+ if (!(nh->nh_dev->flags & IFF_UP)) {
-+ if (fi->fib_protocol != RTPROT_STATIC) {
-+ err = -ENETDOWN;
-+ NL_SET_ERR_MSG(extack,
-+ "Device for nexthop is not up");
-+ goto out;
-+ }
-+ nh->nh_flags |= RTNH_F_DEAD;
-+ }
-+ err = 0;
- }
-- err = -EINVAL;
-- if (res.type != RTN_UNICAST && res.type != RTN_LOCAL) {
-- NL_SET_ERR_MSG(extack, "Nexthop has invalid gateway");
-- goto out;
-- }
-- nh->nh_scope = res.scope;
-- nh->nh_oif = FIB_RES_OIF(res);
-- nh->nh_dev = dev = FIB_RES_DEV(res);
-- if (!dev) {
-- NL_SET_ERR_MSG(extack,
-- "No egress device for nexthop gateway");
-- goto out;
-- }
-- dev_hold(dev);
-- if (!netif_carrier_ok(dev))
-- nh->nh_flags |= RTNH_F_LINKDOWN;
-- err = (dev->flags & IFF_UP) ? 0 : -ENETDOWN;
- } else {
- struct in_device *in_dev;
-
-@@ -887,8 +961,12 @@ static int fib_check_nh(struct fib_config *cfg, struct fib_nh *nh,
- goto out;
- err = -ENETDOWN;
- if (!(in_dev->dev->flags & IFF_UP)) {
-- NL_SET_ERR_MSG(extack, "Device for nexthop is not up");
-- goto out;
-+ if (fi->fib_protocol != RTPROT_STATIC) {
-+ NL_SET_ERR_MSG(extack,
-+ "Device for nexthop is not up");
-+ goto out;
-+ }
-+ nh->nh_flags |= RTNH_F_DEAD;
- }
- nh->nh_dev = in_dev->dev;
- dev_hold(nh->nh_dev);
-@@ -1548,10 +1626,15 @@ int fib_sync_down_dev(struct net_device *dev, unsigned long event, bool force)
- prev_fi = fi;
- dead = 0;
- change_nexthops(fi) {
-- if (nexthop_nh->nh_flags & RTNH_F_DEAD)
-- dead++;
-- else if (nexthop_nh->nh_dev == dev &&
-- nexthop_nh->nh_scope != scope) {
-+ if (nexthop_nh->nh_flags & RTNH_F_DEAD) {
-+ if (fi->fib_protocol != RTPROT_STATIC ||
-+ nexthop_nh->nh_dev == NULL ||
-+ __in_dev_get_rtnl(nexthop_nh->nh_dev) == NULL ||
-+ nexthop_nh->nh_dev->flags&IFF_UP)
-+ dead++;
-+ } else if (nexthop_nh->nh_dev == dev &&
-+ nexthop_nh->nh_scope != scope) {
-+ write_lock_bh(&fib_nhflags_lock);
- switch (event) {
- case NETDEV_DOWN:
- case NETDEV_UNREGISTER:
-@@ -1563,7 +1646,11 @@ int fib_sync_down_dev(struct net_device *dev, unsigned long event, bool force)
- }
- call_fib_nh_notifiers(nexthop_nh,
- FIB_EVENT_NH_DEL);
-- dead++;
-+ write_unlock_bh(&fib_nhflags_lock);
-+ if (fi->fib_protocol != RTPROT_STATIC ||
-+ force ||
-+ __in_dev_get_rtnl(dev) == NULL)
-+ dead++;
- }
- #ifdef CONFIG_IP_ROUTE_MULTIPATH
- if (event == NETDEV_UNREGISTER &&
-@@ -1593,13 +1680,13 @@ int fib_sync_down_dev(struct net_device *dev, unsigned long event, bool force)
- }
-
- /* Must be invoked inside of an RCU protected region. */
--static void fib_select_default(const struct flowi4 *flp, struct fib_result *res)
-+void fib_select_default(const struct flowi4 *flp, struct fib_result *res)
- {
- struct fib_info *fi = NULL, *last_resort = NULL;
- struct hlist_head *fa_head = res->fa_head;
- struct fib_table *tb = res->table;
- u8 slen = 32 - res->prefixlen;
-- int order = -1, last_idx = -1;
-+ int order = -1, last_idx = -1, last_nhsel = 0;
- struct fib_alias *fa, *fa1 = NULL;
- u32 last_prio = res->fi->fib_priority;
- u8 last_tos = 0;
-@@ -1627,9 +1714,6 @@ static void fib_select_default(const struct flowi4 *flp, struct fib_result *res)
- if (next_fi->fib_scope != res->scope ||
- fa->fa_type != RTN_UNICAST)
- continue;
-- if (!next_fi->fib_nh[0].nh_gw ||
-- next_fi->fib_nh[0].nh_scope != RT_SCOPE_LINK)
-- continue;
-
- fib_alias_accessed(fa);
-
-@@ -1638,7 +1722,8 @@ static void fib_select_default(const struct flowi4 *flp, struct fib_result *res)
- break;
- fa1 = fa;
- } else if (!fib_detect_death(fi, order, &last_resort,
-- &last_idx, fa1->fa_default)) {
-+ &last_idx, fa1->fa_default,
-+ &last_nhsel, flp)) {
- fib_result_assign(res, fi);
- fa1->fa_default = order;
- goto out;
-@@ -1648,28 +1733,39 @@ static void fib_select_default(const struct flowi4 *flp, struct fib_result *res)
- }
-
- if (order <= 0 || !fi) {
-+ if (fi && fi->fib_nhs > 1 &&
-+ fib_detect_death(fi, order, &last_resort, &last_idx,
-+ fa1->fa_default, &last_nhsel, flp) &&
-+ last_resort == fi) {
-+ read_lock_bh(&fib_nhflags_lock);
-+ fi->fib_nh[last_nhsel].nh_flags &= ~RTNH_F_SUSPECT;
-+ read_unlock_bh(&fib_nhflags_lock);
-+ }
- if (fa1)
- fa1->fa_default = -1;
- goto out;
- }
-
- if (!fib_detect_death(fi, order, &last_resort, &last_idx,
-- fa1->fa_default)) {
-+ fa1->fa_default, &last_nhsel, flp)) {
- fib_result_assign(res, fi);
- fa1->fa_default = order;
- goto out;
- }
-
-- if (last_idx >= 0)
-+ if (last_idx >= 0) {
- fib_result_assign(res, last_resort);
-+ read_lock_bh(&fib_nhflags_lock);
-+ last_resort->fib_nh[last_nhsel].nh_flags &= ~RTNH_F_SUSPECT;
-+ read_unlock_bh(&fib_nhflags_lock);
-+ }
- fa1->fa_default = last_idx;
- out:
- return;
- }
-
- /*
-- * Dead device goes up. We wake up dead nexthops.
-- * It takes sense only on multipath routes.
-+ * Dead device goes up or new address is added. We wake up dead nexthops.
- */
- int fib_sync_up(struct net_device *dev, unsigned int nh_flags)
- {
-@@ -1677,8 +1773,10 @@ int fib_sync_up(struct net_device *dev, unsigned int nh_flags)
- unsigned int hash;
- struct hlist_head *head;
- struct fib_nh *nh;
-- int ret;
-+ struct fib_result res;
-+ int ret, rep;
-
-+repeat:
- if (!(dev->flags & IFF_UP))
- return 0;
-
-@@ -1693,6 +1791,7 @@ int fib_sync_up(struct net_device *dev, unsigned int nh_flags)
- hash = fib_devindex_hashfn(dev->ifindex);
- head = &fib_info_devhash[hash];
- ret = 0;
-+ rep = 0;
-
- hlist_for_each_entry(nh, head, nh_hash) {
- struct fib_info *fi = nh->nh_parent;
-@@ -1705,16 +1804,37 @@ int fib_sync_up(struct net_device *dev, unsigned int nh_flags)
- prev_fi = fi;
- alive = 0;
- change_nexthops(fi) {
-- if (!(nexthop_nh->nh_flags & nh_flags)) {
-- alive++;
-+ if (!(nexthop_nh->nh_flags & nh_flags))
- continue;
-- }
- if (!nexthop_nh->nh_dev ||
- !(nexthop_nh->nh_dev->flags & IFF_UP))
- continue;
- if (nexthop_nh->nh_dev != dev ||
- !__in_dev_get_rtnl(dev))
- continue;
-+ if ((nh_flags & RTNH_F_DEAD) && nexthop_nh->nh_gw &&
-+ fi->fib_protocol == RTPROT_STATIC) {
-+ struct flowi4 fl4 = {
-+ .daddr = nexthop_nh->nh_gw,
-+ .flowi4_scope = nexthop_nh->nh_scope,
-+ .flowi4_oif = nexthop_nh->nh_oif,
-+ };
-+
-+ rcu_read_lock();
-+ if (fib_lookup(dev_net(dev), &fl4, &res,
-+ FIB_LOOKUP_IGNORE_LINKSTATE) != 0) {
-+ rcu_read_unlock();
-+ continue;
-+ }
-+ if (res.type != RTN_UNICAST &&
-+ res.type != RTN_LOCAL) {
-+ rcu_read_unlock();
-+ continue;
-+ }
-+ nexthop_nh->nh_scope = res.scope;
-+ rcu_read_unlock();
-+ rep = 1;
-+ }
- alive++;
- nexthop_nh->nh_flags &= ~nh_flags;
- call_fib_nh_notifiers(nexthop_nh, FIB_EVENT_NH_ADD);
-@@ -1727,6 +1847,8 @@ int fib_sync_up(struct net_device *dev, unsigned int nh_flags)
-
- fib_rebalance(fi);
- }
-+ if (rep)
-+ goto repeat;
-
- return ret;
- }
-@@ -1780,23 +1902,16 @@ void fib_select_multipath(struct fib_result *res, int hash)
- void fib_select_path(struct net *net, struct fib_result *res,
- struct flowi4 *fl4, const struct sk_buff *skb)
- {
-- if (fl4->flowi4_oif && !(fl4->flowi4_flags & FLOWI_FLAG_SKIP_NH_OIF))
-- goto check_saddr;
--
-+ if (res->type == RTN_UNICAST)
-+ fib_select_default(fl4, res);
- #ifdef CONFIG_IP_ROUTE_MULTIPATH
- if (res->fi->fib_nhs > 1) {
- int h = fib_multipath_hash(net, fl4, skb, NULL);
-
- fib_select_multipath(res, h);
- }
-- else
- #endif
-- if (!res->prefixlen &&
-- res->table->tb_num_default > 1 &&
-- res->type == RTN_UNICAST)
-- fib_select_default(fl4, res);
-
--check_saddr:
- if (!fl4->saddr)
- fl4->saddr = FIB_RES_PREFSRC(net, *res);
- }
-diff --git a/net/ipv4/fib_trie.c b/net/ipv4/fib_trie.c
-index 3955a6d7ea66..5ca216e3a73d 100644
---- a/net/ipv4/fib_trie.c
-+++ b/net/ipv4/fib_trie.c
-@@ -1482,6 +1482,9 @@ int fib_table_lookup(struct fib_table *tb, const struct flowi4 *flp,
- if (flp->flowi4_oif &&
- flp->flowi4_oif != nh->nh_oif)
- continue;
-+ if (flp->fl4_gw && flp->fl4_gw != nh->nh_gw &&
-+ nh->nh_gw && nh->nh_scope == RT_SCOPE_LINK)
-+ continue;
- }
-
- if (!(fib_flags & FIB_LOOKUP_NOREF))
-diff --git a/net/ipv4/netfilter/iptable_nat.c b/net/ipv4/netfilter/iptable_nat.c
-index a317445448bf..9be4af94f10e 100644
---- a/net/ipv4/netfilter/iptable_nat.c
-+++ b/net/ipv4/netfilter/iptable_nat.c
-@@ -45,6 +45,13 @@ static const struct nf_hook_ops nf_nat_ipv4_ops[] = {
- .hooknum = NF_INET_PRE_ROUTING,
- .priority = NF_IP_PRI_NAT_DST,
- },
-+ /* Before routing, route before mangling */
-+ {
-+ .hook = ip_nat_route_input,
-+ .pf = NFPROTO_IPV4,
-+ .hooknum = NF_INET_PRE_ROUTING,
-+ .priority = NF_IP_PRI_LAST-1,
-+ },
- {
- .hook = iptable_nat_do_chain,
- .pf = NFPROTO_IPV4,
-diff --git a/net/ipv4/netfilter/nf_nat_masquerade_ipv4.c b/net/ipv4/netfilter/nf_nat_masquerade_ipv4.c
-index 4c7fcd32f8e6..ca9332e1cd5c 100644
---- a/net/ipv4/netfilter/nf_nat_masquerade_ipv4.c
-+++ b/net/ipv4/netfilter/nf_nat_masquerade_ipv4.c
-@@ -30,8 +30,8 @@ nf_nat_masquerade_ipv4(struct sk_buff *skb, unsigned int hooknum,
- struct nf_conn_nat *nat;
- enum ip_conntrack_info ctinfo;
- struct nf_nat_range2 newrange;
-- const struct rtable *rt;
-- __be32 newsrc, nh;
-+ struct rtable *rt;
-+ __be32 newsrc;
-
- WARN_ON(hooknum != NF_INET_POST_ROUTING);
-
-@@ -46,12 +46,23 @@ nf_nat_masquerade_ipv4(struct sk_buff *skb, unsigned int hooknum,
- if (ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple.src.u3.ip == 0)
- return NF_ACCEPT;
-
-- rt = skb_rtable(skb);
-- nh = rt_nexthop(rt, ip_hdr(skb)->daddr);
-- newsrc = inet_select_addr(out, nh, RT_SCOPE_UNIVERSE);
-- if (!newsrc) {
-- pr_info("%s ate my IP address\n", out->name);
-- return NF_DROP;
-+ {
-+ struct flowi4 fl4 = { .flowi4_tos = RT_TOS(ip_hdr(skb)->tos),
-+ .flowi4_mark = skb->mark,
-+ .flowi4_oif = out->ifindex,
-+ .daddr = ip_hdr(skb)->daddr,
-+ .fl4_gw = skb_rtable(skb)->rt_gateway };
-+ rt = ip_route_output_key(dev_net(out), &fl4);
-+ if (IS_ERR(rt)) {
-+ /* Funky routing can do this. */
-+ if (net_ratelimit())
-+ pr_info("%s:"
-+ " No route: Rusty's brain broke!\n",
-+ out->name);
-+ return NF_DROP;
-+ }
-+ newsrc = fl4.saddr;
-+ ip_rt_put(rt);
- }
-
- nat = nf_ct_nat_ext_add(ct);
-diff --git a/net/ipv4/route.c b/net/ipv4/route.c
-index 232581c140a0..ecc91acd3813 100644
---- a/net/ipv4/route.c
-+++ b/net/ipv4/route.c
-@@ -1660,7 +1660,7 @@ int ip_mc_validate_source(struct sk_buff *skb, __be32 daddr, __be32 saddr,
- return -EINVAL;
- } else {
- err = fib_validate_source(skb, saddr, 0, tos, 0, dev,
-- in_dev, itag);
-+ in_dev, itag, 1);
- if (err < 0)
- return err;
- }
-@@ -1735,7 +1735,7 @@ static void ip_handle_martian_source(struct net_device *dev,
- static int __mkroute_input(struct sk_buff *skb,
- const struct fib_result *res,
- struct in_device *in_dev,
-- __be32 daddr, __be32 saddr, u32 tos)
-+ __be32 daddr, __be32 saddr, u32 tos, __be32 lsrc)
- {
- struct fib_nh_exception *fnhe;
- struct rtable *rth;
-@@ -1752,7 +1752,7 @@ static int __mkroute_input(struct sk_buff *skb,
- }
-
- err = fib_validate_source(skb, saddr, daddr, tos, FIB_RES_OIF(*res),
-- in_dev->dev, in_dev, &itag);
-+ in_dev->dev, in_dev, &itag, 0);
- if (err < 0) {
- ip_handle_martian_source(in_dev->dev, in_dev, skb, daddr,
- saddr);
-@@ -1762,7 +1762,7 @@ static int __mkroute_input(struct sk_buff *skb,
-
- do_cache = res->fi && !itag;
- if (out_dev == in_dev && err && IN_DEV_TX_REDIRECTS(out_dev) &&
-- skb->protocol == htons(ETH_P_IP) &&
-+ skb->protocol == htons(ETH_P_IP) && !lsrc &&
- (IN_DEV_SHARED_MEDIA(out_dev) ||
- inet_addr_onlink(out_dev, saddr, FIB_RES_GW(*res))))
- IPCB(skb)->flags |= IPSKB_DOREDIRECT;
-@@ -1920,10 +1920,12 @@ int fib_multipath_hash(const struct net *net, const struct flowi4 *fl4,
-
- static int ip_mkroute_input(struct sk_buff *skb,
- struct fib_result *res,
-+ const struct flowi4 *fl4,
- struct in_device *in_dev,
- __be32 daddr, __be32 saddr, u32 tos,
-- struct flow_keys *hkeys)
-+ struct flow_keys *hkeys, __be32 lsrc)
- {
-+ fib_select_default(fl4, res);
- #ifdef CONFIG_IP_ROUTE_MULTIPATH
- if (res->fi && res->fi->fib_nhs > 1) {
- int h = fib_multipath_hash(res->fi->fib_net, NULL, skb, hkeys);
-@@ -1933,7 +1935,7 @@ static int ip_mkroute_input(struct sk_buff *skb,
- #endif
-
- /* create a routing cache entry */
-- return __mkroute_input(skb, res, in_dev, daddr, saddr, tos);
-+ return __mkroute_input(skb, res, in_dev, daddr, saddr, tos, lsrc);
- }
-
- /*
-@@ -1948,7 +1950,7 @@ static int ip_mkroute_input(struct sk_buff *skb,
- */
-
- static int ip_route_input_slow(struct sk_buff *skb, __be32 daddr, __be32 saddr,
-- u8 tos, struct net_device *dev,
-+ u8 tos, struct net_device *dev, __be32 lsrc,
- struct fib_result *res)
- {
- struct in_device *in_dev = __in_dev_get_rcu(dev);
-@@ -2006,18 +2008,25 @@ static int ip_route_input_slow(struct sk_buff *skb, __be32 daddr, __be32 saddr,
- goto martian_source;
- }
-
-+ if (lsrc) {
-+ if (ipv4_is_multicast(lsrc) || ipv4_is_lbcast(lsrc) ||
-+ ipv4_is_zeronet(lsrc) || ipv4_is_loopback(lsrc))
-+ goto martian_source;
-+ }
-+
- /*
- * Now we are ready to route packet.
- */
- fl4.flowi4_oif = 0;
-- fl4.flowi4_iif = dev->ifindex;
-+ fl4.flowi4_iif = lsrc ? LOOPBACK_IFINDEX : dev->ifindex;
- fl4.flowi4_mark = skb->mark;
- fl4.flowi4_tos = tos;
- fl4.flowi4_scope = RT_SCOPE_UNIVERSE;
- fl4.flowi4_flags = 0;
- fl4.daddr = daddr;
-- fl4.saddr = saddr;
-+ fl4.saddr = lsrc? : saddr;
- fl4.flowi4_uid = sock_net_uid(net, NULL);
-+ fl4.fl4_gw = 0;
-
- if (fib4_rules_early_flow_dissect(net, skb, &fl4, &_flkeys)) {
- flkeys = &_flkeys;
-@@ -2028,6 +2037,8 @@ static int ip_route_input_slow(struct sk_buff *skb, __be32 daddr, __be32 saddr,
- }
-
- err = fib_lookup(net, &fl4, res, 0);
-+ fl4.flowi4_iif = dev->ifindex;
-+ fl4.saddr = saddr;
- if (err != 0) {
- if (!IN_DEV_FORWARD(in_dev))
- err = -EHOSTUNREACH;
-@@ -2045,7 +2056,7 @@ static int ip_route_input_slow(struct sk_buff *skb, __be32 daddr, __be32 saddr,
-
- if (res->type == RTN_LOCAL) {
- err = fib_validate_source(skb, saddr, daddr, tos,
-- 0, dev, in_dev, &itag);
-+ 0, dev, in_dev, &itag, 1);
- if (err < 0)
- goto martian_source;
- goto local_input;
-@@ -2059,16 +2070,19 @@ static int ip_route_input_slow(struct sk_buff *skb, __be32 daddr, __be32 saddr,
- goto martian_destination;
-
- make_route:
-- err = ip_mkroute_input(skb, res, in_dev, daddr, saddr, tos, flkeys);
-+ err = ip_mkroute_input(skb, res, &fl4, in_dev, daddr, saddr, tos,
-+ flkeys, lsrc);
- out: return err;
-
- brd_input:
- if (skb->protocol != htons(ETH_P_IP))
- goto e_inval;
-+ if (lsrc)
-+ goto e_inval;
-
- if (!ipv4_is_zeronet(saddr)) {
- err = fib_validate_source(skb, saddr, 0, tos, 0, dev,
-- in_dev, &itag);
-+ in_dev, &itag, 1);
- if (err < 0)
- goto martian_source;
- }
-@@ -2169,9 +2183,26 @@ int ip_route_input_noref(struct sk_buff *skb, __be32 daddr, __be32 saddr,
- }
- EXPORT_SYMBOL(ip_route_input_noref);
-
-+int ip_route_input_lookup(struct sk_buff *skb, __be32 daddr, __be32 saddr,
-+ u8 tos, struct net_device *dev, __be32 lsrc)
-+{
-+ struct fib_result res;
-+ int err;
-+
-+ tos &= IPTOS_RT_MASK;
-+ rcu_read_lock();
-+ err = ip_route_input_common_rcu(skb, daddr, saddr, tos, dev, lsrc,
-+ &res);
-+ rcu_read_unlock();
-+
-+ return err;
-+}
-+EXPORT_SYMBOL(ip_route_input_lookup);
-+
- /* called with rcu_read_lock held */
--int ip_route_input_rcu(struct sk_buff *skb, __be32 daddr, __be32 saddr,
-- u8 tos, struct net_device *dev, struct fib_result *res)
-+int ip_route_input_common_rcu(struct sk_buff *skb, __be32 daddr, __be32 saddr,
-+ u8 tos, struct net_device *dev, __be32 lsrc,
-+ struct fib_result *res)
- {
- /* Multicast recognition logic is moved from route cache to here.
- The problem was that too many Ethernet cards have broken/missing
-@@ -2217,7 +2248,13 @@ int ip_route_input_rcu(struct sk_buff *skb, __be32 daddr, __be32 saddr,
- return err;
- }
-
-- return ip_route_input_slow(skb, daddr, saddr, tos, dev, res);
-+ return ip_route_input_slow(skb, daddr, saddr, tos, dev, lsrc, res);
-+}
-+
-+int ip_route_input_rcu(struct sk_buff *skb, __be32 daddr, __be32 saddr,
-+ u8 tos, struct net_device *dev, struct fib_result *res)
-+{
-+ return ip_route_input_common_rcu(skb, daddr, saddr, tos, dev, 0, res);
- }
-
- /* called with rcu_read_lock() */
-@@ -2469,6 +2506,7 @@ struct rtable *ip_route_output_key_hash_rcu(struct net *net, struct flowi4 *fl4,
- fl4->daddr = fl4->saddr = htonl(INADDR_LOOPBACK);
- dev_out = net->loopback_dev;
- fl4->flowi4_oif = LOOPBACK_IFINDEX;
-+ fl4->fl4_gw = 0;
- res->type = RTN_LOCAL;
- flags |= RTCF_LOCAL;
- goto make_route;
-@@ -2527,6 +2565,7 @@ struct rtable *ip_route_output_key_hash_rcu(struct net *net, struct flowi4 *fl4,
- orig_oif = FIB_RES_OIF(*res);
-
- fl4->flowi4_oif = dev_out->ifindex;
-+ fl4->fl4_gw = 0;
- flags |= RTCF_LOCAL;
- goto make_route;
- }
-diff --git a/net/netfilter/nf_nat_core.c b/net/netfilter/nf_nat_core.c
-index 2268b10a9dcf..6f2c3e907c29 100644
---- a/net/netfilter/nf_nat_core.c
-+++ b/net/netfilter/nf_nat_core.c
-@@ -1042,6 +1042,49 @@ static struct nf_nat_hook nat_hook = {
- .manip_pkt = nf_nat_manip_pkt,
- };
-
-+unsigned int ip_nat_route_input(void *priv,
-+ struct sk_buff *skb,
-+ const struct nf_hook_state *state)
-+{
-+ struct iphdr *iph;
-+ struct nf_conn *conn;
-+ enum ip_conntrack_info ctinfo;
-+ enum ip_conntrack_dir dir;
-+ unsigned long statusbit;
-+ __be32 saddr;
-+
-+ if (!(conn = nf_ct_get(skb, &ctinfo)))
-+ return NF_ACCEPT;
-+
-+ if (!(conn->status & IPS_NAT_DONE_MASK))
-+ return NF_ACCEPT;
-+ dir = CTINFO2DIR(ctinfo);
-+ statusbit = IPS_SRC_NAT;
-+ if (dir == IP_CT_DIR_REPLY)
-+ statusbit ^= IPS_NAT_MASK;
-+ if (!(conn->status & statusbit))
-+ return NF_ACCEPT;
-+
-+ if (skb_dst(skb))
-+ return NF_ACCEPT;
-+
-+ if (skb->len < sizeof(struct iphdr))
-+ return NF_ACCEPT;
-+
-+ /* use daddr in other direction as masquerade address (lsrc) */
-+ iph = ip_hdr(skb);
-+ saddr = conn->tuplehash[!dir].tuple.dst.u3.ip;
-+ if (saddr == iph->saddr)
-+ return NF_ACCEPT;
-+
-+ if (ip_route_input_lookup(skb, iph->daddr, iph->saddr, iph->tos,
-+ skb->dev, saddr))
-+ return NF_DROP;
-+
-+ return NF_ACCEPT;
-+}
-+EXPORT_SYMBOL_GPL(ip_nat_route_input);
-+
- static int __init nf_nat_init(void)
- {
- int ret, i;
-diff --git a/security/selinux/nlmsgtab.c b/security/selinux/nlmsgtab.c
-index 9cec81209617..437a8430ce4c 100644
---- a/security/selinux/nlmsgtab.c
-+++ b/security/selinux/nlmsgtab.c
-@@ -83,6 +83,9 @@ static const struct nlmsg_perm nlmsg_route_perms[] =
- { RTM_NEWCHAIN, NETLINK_ROUTE_SOCKET__NLMSG_WRITE },
- { RTM_DELCHAIN, NETLINK_ROUTE_SOCKET__NLMSG_WRITE },
- { RTM_GETCHAIN, NETLINK_ROUTE_SOCKET__NLMSG_READ },
-+ { RTM_NEWARPRULE, NETLINK_ROUTE_SOCKET__NLMSG_WRITE },
-+ { RTM_DELARPRULE, NETLINK_ROUTE_SOCKET__NLMSG_WRITE },
-+ { RTM_GETARPRULE, NETLINK_ROUTE_SOCKET__NLMSG_READ },
- };
-
- static const struct nlmsg_perm nlmsg_tcpdiag_perms[] =
-@@ -166,7 +169,7 @@ int selinux_nlmsg_lookup(u16 sclass, u16 nlmsg_type, u32 *perm)
- * structures at the top of this file with the new mappings
- * before updating the BUILD_BUG_ON() macro!
- */
-- BUILD_BUG_ON(RTM_MAX != (RTM_NEWCHAIN + 3));
-+ BUILD_BUG_ON(RTM_MAX != (RTM_NEWARPRULE + 3));
- err = nlmsg_perm(nlmsg_type, perm, nlmsg_route_perms,
- sizeof(nlmsg_route_perms));
- break;
diff --git a/sys-kernel/boest-v4.19.50/0002-pool-2.6.25-tcp-timewait-20s.diff.patch b/sys-kernel/boest-v4.19.50/0002-pool-2.6.25-tcp-timewait-20s.diff.patch
deleted file mode 100644
index d878a75a..00000000
--- a/sys-kernel/boest-v4.19.50/0002-pool-2.6.25-tcp-timewait-20s.diff.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 06e8021225d313c57eb83ae432387c3a225eedbf Mon Sep 17 00:00:00 2001
-From: Willy Tarreau <w@1wt.eu>
-Date: Sun, 15 Feb 2009 14:51:33 +0100
-Subject: [PATCH 02/15] pool/2.6.25-tcp-timewait-20s.diff
-
-From http://linux.1wt.eu/alix/kernel-src/2.6.27-wt11/patches-2.6.27-wt11.tar.bz2
-
-Signed-off-by: Bertrand Jacquin <bertrand@jacquin.bzh>
----
- include/net/tcp.h | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/include/net/tcp.h b/include/net/tcp.h
-index 770917d0caa7..9bfcc9cc3c40 100644
---- a/include/net/tcp.h
-+++ b/include/net/tcp.h
-@@ -118,8 +118,8 @@ void tcp_time_wait(struct sock *sk, int state, int timeo);
- * initial RTO.
- */
-
--#define TCP_TIMEWAIT_LEN (60*HZ) /* how long to wait to destroy TIME-WAIT
-- * state, about 60 seconds */
-+#define TCP_TIMEWAIT_LEN (20*HZ) /* how long to wait to destroy TIME-WAIT
-+ * state, about 20 seconds */
- #define TCP_FIN_TIMEOUT TCP_TIMEWAIT_LEN
- /* BSD style FIN_WAIT2 deadlock breaker.
- * It used to be 3min, new value is 60sec,
diff --git a/sys-kernel/boest-v4.19.50/0003-pool-2.6.25-disable-tcp-debug.diff.patch b/sys-kernel/boest-v4.19.50/0003-pool-2.6.25-disable-tcp-debug.diff.patch
deleted file mode 100644
index 5db8c414..00000000
--- a/sys-kernel/boest-v4.19.50/0003-pool-2.6.25-disable-tcp-debug.diff.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 23be94864547ecd90048d68f7bdf49088bec197b Mon Sep 17 00:00:00 2001
-From: Willy Tarreau <w@1wt.eu>
-Date: Sun, 15 Feb 2009 14:51:33 +0100
-Subject: [PATCH 03/15] pool/2.6.25-disable-tcp-debug.diff
-
-From http://linux.1wt.eu/alix/kernel-src/2.6.27-wt11/patches-2.6.27-wt11.tar.bz2
-
-Signed-off-by: Bertrand Jacquin <bertrand@jacquin.bzh>
----
- include/net/tcp.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/include/net/tcp.h b/include/net/tcp.h
-index 9bfcc9cc3c40..6fc81d586e3b 100644
---- a/include/net/tcp.h
-+++ b/include/net/tcp.h
-@@ -18,7 +18,7 @@
- #ifndef _TCP_H
- #define _TCP_H
-
--#define FASTRETRANS_DEBUG 1
-+#define FASTRETRANS_DEBUG 0
-
- #include <linux/list.h>
- #include <linux/tcp.h>
diff --git a/sys-kernel/boest-v4.19.50/0004-TCP-add-a-sysctl-to-disable-simultaneous-connection-.patch b/sys-kernel/boest-v4.19.50/0004-TCP-add-a-sysctl-to-disable-simultaneous-connection-.patch
deleted file mode 100644
index 7e2ede5d..00000000
--- a/sys-kernel/boest-v4.19.50/0004-TCP-add-a-sysctl-to-disable-simultaneous-connection-.patch
+++ /dev/null
@@ -1,142 +0,0 @@
-From 9f669f6d045ea8e1f35ba87f2aa126c985ba19b8 Mon Sep 17 00:00:00 2001
-From: Willy Tarreau <w@1wt.eu>
-Date: Wed, 8 Oct 2008 10:00:42 +0200
-Subject: [PATCH 04/15] TCP: add a sysctl to disable simultaneous connection
- opening.
-
-Strict implementation of RFC793 (TCP) requires support for a feature
-called "simultaneous connect", which allows two clients to connect to
-each other without anyone entering a listening state. While almost
-never used, and supported by few OSes, Linux supports this feature.
-
-However, it introduces a weakness in the protocol which makes it very
-easy for an attacker to prevent a client from connecting to a known
-server. The attacker only has to guess the source port to shut down
-the client connection during its establishment. The impact is limited,
-but it may be used to prevent an antivirus or IPS from fetching updates
-and not detecting an attack, or to prevent an SSL gateway from fetching
-a CRL for example.
-
-This patch provides a new sysctl "tcp_simult_connect" to enable or disable
-support for this useless feature. It comes disabled by default.
-
-Hundreds of systems running with that feature disabled for more than 4 years
-have never encountered an application which requires it. It is almost never
-supported by firewalls BTW.
-
-From http://linux.1wt.eu/alix/kernel-src/2.6.27-wt11/patches-2.6.27-wt11.tar.bz2
-
-Reviewed-by: Bertrand Jacquin <bertrand@jacquin.bzh>
-
-Signed-off-by: Willy Tarreau <w@1wt.eu>
-Signed-off-by: Bertrand Jacquin <bertrand@jacquin.bzh>
----
- Documentation/networking/ip-sysctl.txt | 22 ++++++++++++++++++++++
- include/net/netns/ipv4.h | 1 +
- include/uapi/linux/sysctl.h | 1 +
- net/ipv4/sysctl_net_ipv4.c | 7 +++++++
- net/ipv4/tcp_input.c | 6 +++++-
- 5 files changed, 36 insertions(+), 1 deletion(-)
-
-diff --git a/Documentation/networking/ip-sysctl.txt b/Documentation/networking/ip-sysctl.txt
-index e6bf502880b4..83813783bf7c 100644
---- a/Documentation/networking/ip-sysctl.txt
-+++ b/Documentation/networking/ip-sysctl.txt
-@@ -199,6 +199,28 @@ inet_peer_maxttl - INTEGER
-
- TCP variables:
-
-+tcp_simult_connect - BOOLEAN
-+ Enables TCP simultaneous connect feature conforming to RFC793.
-+ Strict implementation of RFC793 (TCP) requires support for a feature
-+ called "simultaneous connect", which allows two clients to connect to
-+ each other without anyone entering a listening state. While almost
-+ never used, and supported by few OSes, Linux supports this feature.
-+
-+ However, it introduces a weakness in the protocol which makes it very
-+ easy for an attacker to prevent a client from connecting to a known
-+ server. The attacker only has to guess the source port to shut down
-+ the client connection during its establishment. The impact is limited,
-+ but it may be used to prevent an antivirus or IPS from fetching updates
-+ and not detecting an attack, or to prevent an SSL gateway from fetching
-+ a CRL for example.
-+
-+ If you want absolute compatibility with any possible application,
-+ you should set it to 1. If you prefer to enhance security on your
-+ systems you'd better let it to 0. After four years of usage on
-+ hundreds of systems, no application was ever found to require this
-+ feature, which is not even supported by most firewalls.
-+ Default: 0
-+
- somaxconn - INTEGER
- Limit of socket listen() backlog, known in userspace as SOMAXCONN.
- Defaults to 128. See also tcp_max_syn_backlog for additional tuning
-diff --git a/include/net/netns/ipv4.h b/include/net/netns/ipv4.h
-index 622db6bc2f02..b8169fc51dc0 100644
---- a/include/net/netns/ipv4.h
-+++ b/include/net/netns/ipv4.h
-@@ -138,6 +138,7 @@ struct netns_ipv4 {
- int sysctl_tcp_recovery;
- int sysctl_tcp_thin_linear_timeouts;
- int sysctl_tcp_slow_start_after_idle;
-+ int sysctl_tcp_simult_connect;
- int sysctl_tcp_retrans_collapse;
- int sysctl_tcp_stdurg;
- int sysctl_tcp_rfc1337;
-diff --git a/include/uapi/linux/sysctl.h b/include/uapi/linux/sysctl.h
-index d71013fffaf6..ba7df2acb258 100644
---- a/include/uapi/linux/sysctl.h
-+++ b/include/uapi/linux/sysctl.h
-@@ -425,6 +425,7 @@ enum
- NET_TCP_ALLOWED_CONG_CONTROL=123,
- NET_TCP_MAX_SSTHRESH=124,
- NET_TCP_FRTO_RESPONSE=125,
-+ NET_TCP_SIMULT_CONNECT=126,
- };
-
- enum {
-diff --git a/net/ipv4/sysctl_net_ipv4.c b/net/ipv4/sysctl_net_ipv4.c
-index ce64453d337d..c4fb62fca418 100644
---- a/net/ipv4/sysctl_net_ipv4.c
-+++ b/net/ipv4/sysctl_net_ipv4.c
-@@ -515,6 +515,13 @@ static struct ctl_table ipv4_table[] = {
- .mode = 0444,
- .proc_handler = proc_tcp_available_congestion_control,
- },
-+ {
-+ .procname = "tcp_simult_connect",
-+ .data = &init_net.ipv4.sysctl_tcp_simult_connect,
-+ .maxlen = sizeof(int),
-+ .mode = 0644,
-+ .proc_handler = &proc_dointvec,
-+ },
- {
- .procname = "tcp_allowed_congestion_control",
- .maxlen = TCP_CA_BUF_MAX,
-diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
-index cfdd70e32755..59c857ed7954 100644
---- a/net/ipv4/tcp_input.c
-+++ b/net/ipv4/tcp_input.c
-@@ -5768,6 +5768,7 @@ static int tcp_rcv_synsent_state_process(struct sock *sk, struct sk_buff *skb,
- const struct tcphdr *th)
- {
- struct inet_connection_sock *icsk = inet_csk(sk);
-+ struct net *net = sock_net(sk);
- struct tcp_sock *tp = tcp_sk(sk);
- struct tcp_fastopen_cookie foc = { .len = -1 };
- int saved_clamp = tp->rx_opt.mss_clamp;
-@@ -5923,10 +5924,13 @@ static int tcp_rcv_synsent_state_process(struct sock *sk, struct sk_buff *skb,
- tcp_paws_reject(&tp->rx_opt, 0))
- goto discard_and_undo;
-
-- if (th->syn) {
-+ if (th->syn && net->ipv4.sysctl_tcp_simult_connect) {
- /* We see SYN without ACK. It is attempt of
- * simultaneous connect with crossed SYNs.
- * Particularly, it can be connect to self.
-+ * This feature is disabled by default as it introduces
-+ * weakness in the protocol. It can be enabled by a
-+ * sysctl.
- */
- tcp_set_state(sk, TCP_SYN_RECV);
-
diff --git a/sys-kernel/boest-v4.19.50/0005-pool-2.6.25-disable-kbdrate-at-boot.diff.patch b/sys-kernel/boest-v4.19.50/0005-pool-2.6.25-disable-kbdrate-at-boot.diff.patch
deleted file mode 100644
index 3ff3881f..00000000
--- a/sys-kernel/boest-v4.19.50/0005-pool-2.6.25-disable-kbdrate-at-boot.diff.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 381be82cafc44e6cb2850a820c8012d08c7336fa Mon Sep 17 00:00:00 2001
-From: Willy Tarreau <w@1wt.eu>
-Date: Sun, 15 Feb 2009 14:51:33 +0100
-Subject: [PATCH 05/15] pool/2.6.25-disable-kbdrate-at-boot.diff
-
-From http://linux.1wt.eu/alix/kernel-src/2.6.27-wt11/patches-2.6.27-wt11.tar.bz2
-
-Reviewed-by: Bertrand Jacquin <bertrand@jacquin.bzh>
-Signed-off-by: Bertrand Jacquin <bertrand@jacquin.bzh>
----
- arch/x86/boot/main.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/arch/x86/boot/main.c b/arch/x86/boot/main.c
-index 9bcea386db65..fd2d8e4e7d3a 100644
---- a/arch/x86/boot/main.c
-+++ b/arch/x86/boot/main.c
-@@ -64,6 +64,8 @@ static void copy_boot_params(void)
- */
- static void keyboard_init(void)
- {
-+/*This may take several seconds if the system has no kbd controller */
-+#ifdef CONFIG_INPUT_KEYBOARD
- struct biosregs ireg, oreg;
- initregs(&ireg);
-
-@@ -73,6 +75,7 @@ static void keyboard_init(void)
-
- ireg.ax = 0x0305; /* Set keyboard repeat rate */
- intcall(0x16, &ireg, NULL);
-+#endif
- }
-
- /*
diff --git a/sys-kernel/boest-v4.19.50/0006-Disable-CONFIG_PROCESSOR_SELECT-printk-s.patch b/sys-kernel/boest-v4.19.50/0006-Disable-CONFIG_PROCESSOR_SELECT-printk-s.patch
deleted file mode 100644
index 7e10c402..00000000
--- a/sys-kernel/boest-v4.19.50/0006-Disable-CONFIG_PROCESSOR_SELECT-printk-s.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From fe48e850d8c558ea74ff677d032927524016cac6 Mon Sep 17 00:00:00 2001
-From: Bertrand Jacquin <bertrand@jacquin.bzh>
-Date: Wed, 9 Jan 2013 00:28:28 +0100
-Subject: [PATCH 06/15] Disable CONFIG_PROCESSOR_SELECT printk()'s
-
-Signed-off-by: Bertrand Jacquin <bertrand@jacquin.bzh>
----
- arch/x86/kernel/cpu/common.c | 17 -----------------
- 1 file changed, 17 deletions(-)
-
-diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
-index 1073118b9bf0..c6680ce61639 100644
---- a/arch/x86/kernel/cpu/common.c
-+++ b/arch/x86/kernel/cpu/common.c
-@@ -1152,10 +1152,6 @@ void __init early_cpu_init(void)
- const struct cpu_dev *const *cdev;
- int count = 0;
-
--#ifdef CONFIG_PROCESSOR_SELECT
-- pr_info("KERNEL supported cpus:\n");
--#endif
--
- for (cdev = __x86_cpu_dev_start; cdev < __x86_cpu_dev_end; cdev++) {
- const struct cpu_dev *cpudev = *cdev;
-
-@@ -1163,19 +1159,6 @@ void __init early_cpu_init(void)
- break;
- cpu_devs[count] = cpudev;
- count++;
--
--#ifdef CONFIG_PROCESSOR_SELECT
-- {
-- unsigned int j;
--
-- for (j = 0; j < 2; j++) {
-- if (!cpudev->c_ident[j])
-- continue;
-- pr_info(" %s %s\n", cpudev->c_vendor,
-- cpudev->c_ident[j]);
-- }
-- }
--#endif
- }
- early_identify_cpu(&boot_cpu_data);
- }
diff --git a/sys-kernel/boest-v4.19.50/0007-This-patch-adds-support-for-a-restricted-user-contro.patch b/sys-kernel/boest-v4.19.50/0007-This-patch-adds-support-for-a-restricted-user-contro.patch
deleted file mode 100644
index 5df6acf8..00000000
--- a/sys-kernel/boest-v4.19.50/0007-This-patch-adds-support-for-a-restricted-user-contro.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From f0496ce11ae973bd61f033e8e448e394ce0f5276 Mon Sep 17 00:00:00 2001
-From: "Anthony G. Basile" <blueness@gentoo.org>
-Date: Fri, 28 Sep 2018 08:20:14 -0400
-Subject: [PATCH 07/15] This patch adds support for a restricted
- user-controlled namespace on tmpfs filesystem used to house PaX flags. The
- namespace must be of the form user.pax.* and its value cannot exceed a size
- of 8 bytes.
-
-This is needed even on all Gentoo systems so that XATTR_PAX flags
-are preserved for users who might build packages using portage on
-a tmpfs system with a non-hardened kernel and then switch to a
-hardened kernel with XATTR_PAX enabled.
-
-The namespace is added to any user with Extended Attribute support
-enabled for tmpfs. Users who do not enable xattrs will not have
-the XATTR_PAX flags preserved.
----
- include/uapi/linux/xattr.h | 4 ++++
- mm/shmem.c | 15 +++++++++++++++
- 2 files changed, 19 insertions(+)
-
-diff --git a/include/uapi/linux/xattr.h b/include/uapi/linux/xattr.h
-index c1395b5bd432..bac6d48eca8e 100644
---- a/include/uapi/linux/xattr.h
-+++ b/include/uapi/linux/xattr.h
-@@ -77,5 +77,9 @@
- #define XATTR_POSIX_ACL_DEFAULT "posix_acl_default"
- #define XATTR_NAME_POSIX_ACL_DEFAULT XATTR_SYSTEM_PREFIX XATTR_POSIX_ACL_DEFAULT
-
-+/* User namespace */
-+#define XATTR_PAX_PREFIX XATTR_USER_PREFIX "pax."
-+#define XATTR_PAX_FLAGS_SUFFIX "flags"
-+#define XATTR_NAME_PAX_FLAGS XATTR_PAX_PREFIX XATTR_PAX_FLAGS_SUFFIX
-
- #endif /* _UAPI_LINUX_XATTR_H */
-diff --git a/mm/shmem.c b/mm/shmem.c
-index 3c8742655756..526eb832f8da 100644
---- a/mm/shmem.c
-+++ b/mm/shmem.c
-@@ -3187,6 +3187,14 @@ static int shmem_xattr_handler_set(const struct xattr_handler *handler,
- struct shmem_inode_info *info = SHMEM_I(inode);
-
- name = xattr_full_name(handler, name);
-+
-+ if (!strncmp(name, XATTR_USER_PREFIX, XATTR_USER_PREFIX_LEN)) {
-+ if (strcmp(name, XATTR_NAME_PAX_FLAGS))
-+ return -EOPNOTSUPP;
-+ if (size > 8)
-+ return -EINVAL;
-+ }
-+
- return simple_xattr_set(&info->xattrs, name, value, size, flags);
- }
-
-@@ -3202,6 +3210,12 @@ static const struct xattr_handler shmem_trusted_xattr_handler = {
- .set = shmem_xattr_handler_set,
- };
-
-+static const struct xattr_handler shmem_user_xattr_handler = {
-+ .prefix = XATTR_USER_PREFIX,
-+ .get = shmem_xattr_handler_get,
-+ .set = shmem_xattr_handler_set,
-+};
-+
- static const struct xattr_handler *shmem_xattr_handlers[] = {
- #ifdef CONFIG_TMPFS_POSIX_ACL
- &posix_acl_access_xattr_handler,
-@@ -3209,6 +3223,7 @@ static const struct xattr_handler *shmem_xattr_handlers[] = {
- #endif
- &shmem_security_xattr_handler,
- &shmem_trusted_xattr_handler,
-+ &shmem_user_xattr_handler,
- NULL
- };
-
diff --git a/sys-kernel/boest-v4.19.50/0008-fs-Enable-link-security-restrictions-by-default.patch b/sys-kernel/boest-v4.19.50/0008-fs-Enable-link-security-restrictions-by-default.patch
deleted file mode 100644
index 7efc0dab..00000000
--- a/sys-kernel/boest-v4.19.50/0008-fs-Enable-link-security-restrictions-by-default.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 1d21e587dc77c6739beffc1e61aa69cbc7a940a7 Mon Sep 17 00:00:00 2001
-From: Ben Hutchings <ben@decadent.org.uk>
-Date: Fri, 2 Nov 2012 05:32:06 +0000
-Subject: [PATCH 08/15] fs: Enable link security restrictions by default
-
-This reverts commit 561ec64ae67ef25cac8d72bb9c4bfc955edfd415
-('VFS: don't do protected {sym,hard}links by default').
----
- fs/namei.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/fs/namei.c b/fs/namei.c
-index 914178cdbe94..bd94f65a9efd 100644
---- a/fs/namei.c
-+++ b/fs/namei.c
-@@ -885,8 +885,8 @@ static inline void put_link(struct nameidata *nd)
- path_put(&last->link);
- }
-
--int sysctl_protected_symlinks __read_mostly = 0;
--int sysctl_protected_hardlinks __read_mostly = 0;
-+int sysctl_protected_symlinks __read_mostly = 1;
-+int sysctl_protected_hardlinks __read_mostly = 1;
- int sysctl_protected_fifos __read_mostly;
- int sysctl_protected_regular __read_mostly;
-
diff --git a/sys-kernel/boest-v4.19.50/0009-The-encryption-is-only-mandatory-to-be-enforced-when.patch b/sys-kernel/boest-v4.19.50/0009-The-encryption-is-only-mandatory-to-be-enforced-when.patch
deleted file mode 100644
index 8332387e..00000000
--- a/sys-kernel/boest-v4.19.50/0009-The-encryption-is-only-mandatory-to-be-enforced-when.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From e630617989ed2519377f28814adc3bf23d8a7ff0 Mon Sep 17 00:00:00 2001
-From: Mike Pagano <mpagano@gentoo.org>
-Date: Mon, 10 Jun 2019 15:41:47 -0400
-Subject: [PATCH 09/15] The encryption is only mandatory to be enforced when
- both sides are using Secure Simple Pairing and this means the key size check
- makes only sense in that case.
-
-On legacy Bluetooth 2.0 and earlier devices like mice the encryption was
-optional and thus causing an issue if the key size check is not bound to
-using Secure Simple Pairing.
-
-Fixes: d5bb334a8e17 ("Bluetooth: Align minimum encryption key size for LE and BR/EDR connections")
-Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
-Cc: stable@vger.kernel.org
----
- net/bluetooth/hci_conn.c | 9 +++++++--
- 1 file changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c
-index 3cf0764d5793..7516cdde3373 100644
---- a/net/bluetooth/hci_conn.c
-+++ b/net/bluetooth/hci_conn.c
-@@ -1272,8 +1272,13 @@ int hci_conn_check_link_mode(struct hci_conn *conn)
- return 0;
- }
-
-- if (hci_conn_ssp_enabled(conn) &&
-- !test_bit(HCI_CONN_ENCRYPT, &conn->flags))
-+ /* If Secure Simple Pairing is not enabled, then legacy connection
-+ * setup is used and no encryption or key sizes can be enforced.
-+ */
-+ if (!hci_conn_ssp_enabled(conn))
-+ return 1;
-+
-+ if (!test_bit(HCI_CONN_ENCRYPT, &conn->flags))
- return 0;
-
- /* The minimum encryption key size needs to be enforced by the
diff --git a/sys-kernel/boest-v4.19.50/0010-usb-storage-Disable-UAS-on-JMicron-SATA-enclosure.patch b/sys-kernel/boest-v4.19.50/0010-usb-storage-Disable-UAS-on-JMicron-SATA-enclosure.patch
deleted file mode 100644
index 889a5e74..00000000
--- a/sys-kernel/boest-v4.19.50/0010-usb-storage-Disable-UAS-on-JMicron-SATA-enclosure.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 8680a26175bb3e77c0d78d358469b3e8915c8de9 Mon Sep 17 00:00:00 2001
-From: Laura Abbott <labbott@fedoraproject.org>
-Date: Tue, 8 Sep 2015 09:53:38 -0700
-Subject: [PATCH 10/15] usb-storage: Disable UAS on JMicron SATA enclosure
-
-Steve Ellis reported incorrect block sizes and alignement
-offsets with a SATA enclosure. Adding a quirk to disable
-UAS fixes the problems.
-
-Reported-by: Steven Ellis <sellis@redhat.com>
-Signed-off-by: Laura Abbott <labbott@fedoraproject.org>
----
- drivers/usb/storage/unusual_uas.h | 7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/usb/storage/unusual_uas.h b/drivers/usb/storage/unusual_uas.h
-index d0bdebd87ce3..1b23741036ee 100644
---- a/drivers/usb/storage/unusual_uas.h
-+++ b/drivers/usb/storage/unusual_uas.h
-@@ -87,12 +87,15 @@ UNUSUAL_DEV(0x2537, 0x1068, 0x0000, 0x9999,
- USB_SC_DEVICE, USB_PR_DEVICE, NULL,
- US_FL_IGNORE_UAS),
-
--/* Reported-by: Takeo Nakayama <javhera@gmx.com> */
-+/*
-+ * Initially Reported-by: Takeo Nakayama <javhera@gmx.com>
-+ * UAS Ignore Reported by Steven Ellis <sellis@redhat.com>
-+ */
- UNUSUAL_DEV(0x357d, 0x7788, 0x0000, 0x9999,
- "JMicron",
- "JMS566",
- USB_SC_DEVICE, USB_PR_DEVICE, NULL,
-- US_FL_NO_REPORT_OPCODES),
-+ US_FL_NO_REPORT_OPCODES | US_FL_IGNORE_UAS),
-
- /* Reported-by: Hans de Goede <hdegoede@redhat.com> */
- UNUSUAL_DEV(0x4971, 0x1012, 0x0000, 0x9999,
diff --git a/sys-kernel/boest-v4.19.50/0011-4.19-2600_enable-key-swapping-for-apple-mac.patch.patch b/sys-kernel/boest-v4.19.50/0011-4.19-2600_enable-key-swapping-for-apple-mac.patch.patch
deleted file mode 100644
index 8e9b35d3..00000000
--- a/sys-kernel/boest-v4.19.50/0011-4.19-2600_enable-key-swapping-for-apple-mac.patch.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-From 329b27c3763d5ee7e78347783d5ff0c49ca71243 Mon Sep 17 00:00:00 2001
-From: Mike Pagano <mpagano@gentoo.org>
-Date: Fri, 28 Sep 2018 08:20:14 -0400
-Subject: [PATCH 11/15] 4.19:2600_enable-key-swapping-for-apple-mac.patch
-
----
- drivers/hid/hid-apple.c | 76 +++++++++++++++++++++++++++++++++++++++--
- 1 file changed, 74 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/hid/hid-apple.c b/drivers/hid/hid-apple.c
-index 1cb41992aaa1..c34a3be5085a 100644
---- a/drivers/hid/hid-apple.c
-+++ b/drivers/hid/hid-apple.c
-@@ -54,6 +54,22 @@ MODULE_PARM_DESC(swap_opt_cmd, "Swap the Option (\"Alt\") and Command (\"Flag\")
- "(For people who want to keep Windows PC keyboard muscle memory. "
- "[0] = as-is, Mac layout. 1 = swapped, Windows layout.)");
-
-+static unsigned int swap_fn_leftctrl;
-+module_param(swap_fn_leftctrl, uint, 0644);
-+MODULE_PARM_DESC(swap_fn_leftctrl, "Swap the Fn and left Control keys. "
-+ "(For people who want to keep PC keyboard muscle memory. "
-+ "[0] = as-is, Mac layout, 1 = swapped, PC layout)");
-+
-+static unsigned int rightalt_as_rightctrl;
-+module_param(rightalt_as_rightctrl, uint, 0644);
-+MODULE_PARM_DESC(rightalt_as_rightctrl, "Use the right Alt key as a right Ctrl key. "
-+ "[0] = as-is, Mac layout. 1 = Right Alt is right Ctrl");
-+
-+static unsigned int ejectcd_as_delete;
-+module_param(ejectcd_as_delete, uint, 0644);
-+MODULE_PARM_DESC(ejectcd_as_delete, "Use Eject-CD key as Delete key. "
-+ "([0] = disabled, 1 = enabled)");
-+
- struct apple_sc {
- unsigned long quirks;
- unsigned int fn_on;
-@@ -166,6 +182,21 @@ static const struct apple_key_translation swapped_option_cmd_keys[] = {
- { }
- };
-
-+static const struct apple_key_translation swapped_fn_leftctrl_keys[] = {
-+ { KEY_FN, KEY_LEFTCTRL },
-+ { }
-+};
-+
-+static const struct apple_key_translation rightalt_as_rightctrl_keys[] = {
-+ { KEY_RIGHTALT, KEY_RIGHTCTRL },
-+ { }
-+};
-+
-+static const struct apple_key_translation ejectcd_as_delete_keys[] = {
-+ { KEY_EJECTCD, KEY_DELETE },
-+ { }
-+};
-+
- static const struct apple_key_translation *apple_find_translation(
- const struct apple_key_translation *table, u16 from)
- {
-@@ -185,9 +216,11 @@ static int hidinput_apple_event(struct hid_device *hid, struct input_dev *input,
- struct apple_sc *asc = hid_get_drvdata(hid);
- const struct apple_key_translation *trans, *table;
-
-- if (usage->code == KEY_FN) {
-+ u16 fn_keycode = (swap_fn_leftctrl) ? (KEY_LEFTCTRL) : (KEY_FN);
-+
-+ if (usage->code == fn_keycode) {
- asc->fn_on = !!value;
-- input_event(input, usage->type, usage->code, value);
-+ input_event(input, usage->type, KEY_FN, value);
- return 1;
- }
-
-@@ -266,6 +299,30 @@ static int hidinput_apple_event(struct hid_device *hid, struct input_dev *input,
- }
- }
-
-+ if (swap_fn_leftctrl) {
-+ trans = apple_find_translation(swapped_fn_leftctrl_keys, usage->code);
-+ if (trans) {
-+ input_event(input, usage->type, trans->to, value);
-+ return 1;
-+ }
-+ }
-+
-+ if (ejectcd_as_delete) {
-+ trans = apple_find_translation(ejectcd_as_delete_keys, usage->code);
-+ if (trans) {
-+ input_event(input, usage->type, trans->to, value);
-+ return 1;
-+ }
-+ }
-+
-+ if (rightalt_as_rightctrl) {
-+ trans = apple_find_translation(rightalt_as_rightctrl_keys, usage->code);
-+ if (trans) {
-+ input_event(input, usage->type, trans->to, value);
-+ return 1;
-+ }
-+ }
-+
- return 0;
- }
-
-@@ -329,6 +386,21 @@ static void apple_setup_input(struct input_dev *input)
-
- for (trans = apple_iso_keyboard; trans->from; trans++)
- set_bit(trans->to, input->keybit);
-+
-+ if (swap_fn_leftctrl) {
-+ for (trans = swapped_fn_leftctrl_keys; trans->from; trans++)
-+ set_bit(trans->to, input->keybit);
-+ }
-+
-+ if (ejectcd_as_delete) {
-+ for (trans = ejectcd_as_delete_keys; trans->from; trans++)
-+ set_bit(trans->to, input->keybit);
-+ }
-+
-+ if (rightalt_as_rightctrl) {
-+ for (trans = rightalt_as_rightctrl_keys; trans->from; trans++)
-+ set_bit(trans->to, input->keybit);
-+ }
- }
-
- static int apple_input_mapping(struct hid_device *hdev, struct hid_input *hi,
diff --git a/sys-kernel/boest-v4.19.50/0012-4.19-4200_fbcondecor.patch.patch b/sys-kernel/boest-v4.19.50/0012-4.19-4200_fbcondecor.patch.patch
deleted file mode 100644
index f9cf0825..00000000
--- a/sys-kernel/boest-v4.19.50/0012-4.19-4200_fbcondecor.patch.patch
+++ /dev/null
@@ -1,2121 +0,0 @@
-From ce5b7d2c458393985890d868ffa06e01e1ccacd3 Mon Sep 17 00:00:00 2001
-From: Mike Pagano <mpagano@gentoo.org>
-Date: Fri, 28 Sep 2018 08:20:14 -0400
-Subject: [PATCH 12/15] 4.19:4200_fbcondecor.patch
-
----
- Documentation/fb/00-INDEX | 2 +
- Documentation/fb/fbcondecor.txt | 207 +++++++++++
- drivers/Makefile | 9 +-
- drivers/video/console/Kconfig | 13 +
- drivers/video/console/Makefile | 1 +
- drivers/video/console/cfbcondecor.c | 473 ++++++++++++++++++++++++
- drivers/video/console/fbcondecor.c | 549 ++++++++++++++++++++++++++++
- drivers/video/console/fbcondecor.h | 77 ++++
- drivers/video/fbdev/Kconfig | 1 -
- drivers/video/fbdev/core/bitblit.c | 20 +-
- drivers/video/fbdev/core/fbcmap.c | 9 +-
- drivers/video/fbdev/core/fbcon.c | 171 +++++++--
- drivers/video/fbdev/core/fbmem.c | 9 -
- include/linux/console_decor.h | 46 +++
- include/linux/console_struct.h | 3 +
- include/linux/fb.h | 31 ++
- include/uapi/linux/fb.h | 59 +++
- kernel/sysctl.c | 13 +
- 18 files changed, 1649 insertions(+), 44 deletions(-)
-
-diff --git a/Documentation/fb/00-INDEX b/Documentation/fb/00-INDEX
-index fe85e7c5907a..22309308ba56 100644
---- a/Documentation/fb/00-INDEX
-+++ b/Documentation/fb/00-INDEX
-@@ -23,6 +23,8 @@ ep93xx-fb.txt
- - info on the driver for EP93xx LCD controller.
- fbcon.txt
- - intro to and usage guide for the framebuffer console (fbcon).
-+fbcondecor.txt
-+ - info on the Framebuffer Console Decoration
- framebuffer.txt
- - introduction to frame buffer devices.
- gxfb.txt
-diff --git a/Documentation/fb/fbcondecor.txt b/Documentation/fb/fbcondecor.txt
-new file mode 100644
-index 000000000000..637209e11ccd
---- /dev/null
-+++ b/Documentation/fb/fbcondecor.txt
-@@ -0,0 +1,207 @@
-+What is it?
-+-----------
-+
-+The framebuffer decorations are a kernel feature which allows displaying a
-+background picture on selected consoles.
-+
-+What do I need to get it to work?
-+---------------------------------
-+
-+To get fbcondecor up-and-running you will have to:
-+ 1) get a copy of splashutils [1] or a similar program
-+ 2) get some fbcondecor themes
-+ 3) build the kernel helper program
-+ 4) build your kernel with the FB_CON_DECOR option enabled.
-+
-+To get fbcondecor operational right after fbcon initialization is finished, you
-+will have to include a theme and the kernel helper into your initramfs image.
-+Please refer to splashutils documentation for instructions on how to do that.
-+
-+[1] The splashutils package can be downloaded from:
-+ http://github.com/alanhaggai/fbsplash
-+
-+The userspace helper
-+--------------------
-+
-+The userspace fbcondecor helper (by default: /sbin/fbcondecor_helper) is called by the
-+kernel whenever an important event occurs and the kernel needs some kind of
-+job to be carried out. Important events include console switches and video
-+mode switches (the kernel requests background images and configuration
-+parameters for the current console). The fbcondecor helper must be accessible at
-+all times. If it's not, fbcondecor will be switched off automatically.
-+
-+It's possible to set path to the fbcondecor helper by writing it to
-+/proc/sys/kernel/fbcondecor.
-+
-+*****************************************************************************
-+
-+The information below is mostly technical stuff. There's probably no need to
-+read it unless you plan to develop a userspace helper.
-+
-+The fbcondecor protocol
-+-----------------------
-+
-+The fbcondecor protocol defines a communication interface between the kernel and
-+the userspace fbcondecor helper.
-+
-+The kernel side is responsible for:
-+
-+ * rendering console text, using an image as a background (instead of a
-+ standard solid color fbcon uses),
-+ * accepting commands from the user via ioctls on the fbcondecor device,
-+ * calling the userspace helper to set things up as soon as the fb subsystem
-+ is initialized.
-+
-+The userspace helper is responsible for everything else, including parsing
-+configuration files, decompressing the image files whenever the kernel needs
-+it, and communicating with the kernel if necessary.
-+
-+The fbcondecor protocol specifies how communication is done in both ways:
-+kernel->userspace and userspace->helper.
-+
-+Kernel -> Userspace
-+-------------------
-+
-+The kernel communicates with the userspace helper by calling it and specifying
-+the task to be done in a series of arguments.
-+
-+The arguments follow the pattern:
-+<fbcondecor protocol version> <command> <parameters>
-+
-+All commands defined in fbcondecor protocol v2 have the following parameters:
-+ virtual console
-+ framebuffer number
-+ theme
-+
-+Fbcondecor protocol v1 specified an additional 'fbcondecor mode' after the
-+framebuffer number. Fbcondecor protocol v1 is deprecated and should not be used.
-+
-+Fbcondecor protocol v2 specifies the following commands:
-+
-+getpic
-+------
-+ The kernel issues this command to request image data. It's up to the
-+ userspace helper to find a background image appropriate for the specified
-+ theme and the current resolution. The userspace helper should respond by
-+ issuing the FBIOCONDECOR_SETPIC ioctl.
-+
-+init
-+----
-+ The kernel issues this command after the fbcondecor device is created and
-+ the fbcondecor interface is initialized. Upon receiving 'init', the userspace
-+ helper should parse the kernel command line (/proc/cmdline) or otherwise
-+ decide whether fbcondecor is to be activated.
-+
-+ To activate fbcondecor on the first console the helper should issue the
-+ FBIOCONDECOR_SETCFG, FBIOCONDECOR_SETPIC and FBIOCONDECOR_SETSTATE commands,
-+ in the above-mentioned order.
-+
-+ When the userspace helper is called in an early phase of the boot process
-+ (right after the initialization of fbcon), no filesystems will be mounted.
-+ The helper program should mount sysfs and then create the appropriate
-+ framebuffer, fbcondecor and tty0 devices (if they don't already exist) to get
-+ current display settings and to be able to communicate with the kernel side.
-+ It should probably also mount the procfs to be able to parse the kernel
-+ command line parameters.
-+
-+ Note that the console sem is not held when the kernel calls fbcondecor_helper
-+ with the 'init' command. The fbcondecor helper should perform all ioctls with
-+ origin set to FBCON_DECOR_IO_ORIG_USER.
-+
-+modechange
-+----------
-+ The kernel issues this command on a mode change. The helper's response should
-+ be similar to the response to the 'init' command. Note that this time the
-+ console sem is held and all ioctls must be performed with origin set to
-+ FBCON_DECOR_IO_ORIG_KERNEL.
-+
-+
-+Userspace -> Kernel
-+-------------------
-+
-+Userspace programs can communicate with fbcondecor via ioctls on the
-+fbcondecor device. These ioctls are to be used by both the userspace helper
-+(called only by the kernel) and userspace configuration tools (run by the users).
-+
-+The fbcondecor helper should set the origin field to FBCON_DECOR_IO_ORIG_KERNEL
-+when doing the appropriate ioctls. All userspace configuration tools should
-+use FBCON_DECOR_IO_ORIG_USER. Failure to set the appropriate value in the origin
-+field when performing ioctls from the kernel helper will most likely result
-+in a console deadlock.
-+
-+FBCON_DECOR_IO_ORIG_KERNEL instructs fbcondecor not to try to acquire the console
-+semaphore. Not surprisingly, FBCON_DECOR_IO_ORIG_USER instructs it to acquire
-+the console sem.
-+
-+The framebuffer console decoration provides the following ioctls (all defined in
-+linux/fb.h):
-+
-+FBIOCONDECOR_SETPIC
-+description: loads a background picture for a virtual console
-+argument: struct fbcon_decor_iowrapper*; data: struct fb_image*
-+notes:
-+If called for consoles other than the current foreground one, the picture data
-+will be ignored.
-+
-+If the current virtual console is running in a 8-bpp mode, the cmap substruct
-+of fb_image has to be filled appropriately: start should be set to 16 (first
-+16 colors are reserved for fbcon), len to a value <= 240 and red, green and
-+blue should point to valid cmap data. The transp field is ingored. The fields
-+dx, dy, bg_color, fg_color in fb_image are ignored as well.
-+
-+FBIOCONDECOR_SETCFG
-+description: sets the fbcondecor config for a virtual console
-+argument: struct fbcon_decor_iowrapper*; data: struct vc_decor*
-+notes: The structure has to be filled with valid data.
-+
-+FBIOCONDECOR_GETCFG
-+description: gets the fbcondecor config for a virtual console
-+argument: struct fbcon_decor_iowrapper*; data: struct vc_decor*
-+
-+FBIOCONDECOR_SETSTATE
-+description: sets the fbcondecor state for a virtual console
-+argument: struct fbcon_decor_iowrapper*; data: unsigned int*
-+ values: 0 = disabled, 1 = enabled.
-+
-+FBIOCONDECOR_GETSTATE
-+description: gets the fbcondecor state for a virtual console
-+argument: struct fbcon_decor_iowrapper*; data: unsigned int*
-+ values: as in FBIOCONDECOR_SETSTATE
-+
-+Info on used structures:
-+
-+Definition of struct vc_decor can be found in linux/console_decor.h. It's
-+heavily commented. Note that the 'theme' field should point to a string
-+no longer than FBCON_DECOR_THEME_LEN. When FBIOCONDECOR_GETCFG call is
-+performed, the theme field should point to a char buffer of length
-+FBCON_DECOR_THEME_LEN.
-+
-+Definition of struct fbcon_decor_iowrapper can be found in linux/fb.h.
-+The fields in this struct have the following meaning:
-+
-+vc:
-+Virtual console number.
-+
-+origin:
-+Specifies if the ioctl is performed as a response to a kernel request. The
-+fbcondecor helper should set this field to FBCON_DECOR_IO_ORIG_KERNEL, userspace
-+programs should set it to FBCON_DECOR_IO_ORIG_USER. This field is necessary to
-+avoid console semaphore deadlocks.
-+
-+data:
-+Pointer to a data structure appropriate for the performed ioctl. Type of
-+the data struct is specified in the ioctls description.
-+
-+*****************************************************************************
-+
-+Credit
-+------
-+
-+Original 'bootsplash' project & implementation by:
-+ Volker Poplawski <volker@poplawski.de>, Stefan Reinauer <stepan@suse.de>,
-+ Steffen Winterfeldt <snwint@suse.de>, Michael Schroeder <mls@suse.de>,
-+ Ken Wimer <wimer@suse.de>.
-+
-+Fbcondecor, fbcondecor protocol design, current implementation & docs by:
-+ Michal Januszewski <michalj+fbcondecor@gmail.com>
-+
-diff --git a/drivers/Makefile b/drivers/Makefile
-index 578f469f72fb..366fd320de4f 100644
---- a/drivers/Makefile
-+++ b/drivers/Makefile
-@@ -20,6 +20,10 @@ obj-y += pci/
-
- obj-$(CONFIG_PARISC) += parisc/
- obj-$(CONFIG_RAPIDIO) += rapidio/
-+# tty/ comes before char/ so that the VT console is the boot-time
-+# default.
-+obj-y += tty/
-+obj-y += char/
- obj-y += video/
- obj-y += idle/
-
-@@ -50,11 +54,6 @@ obj-$(CONFIG_REGULATOR) += regulator/
- # reset controllers early, since gpu drivers might rely on them to initialize
- obj-$(CONFIG_RESET_CONTROLLER) += reset/
-
--# tty/ comes before char/ so that the VT console is the boot-time
--# default.
--obj-y += tty/
--obj-y += char/
--
- # iommu/ comes before gpu as gpu are using iommu controllers
- obj-$(CONFIG_IOMMU_SUPPORT) += iommu/
-
-diff --git a/drivers/video/console/Kconfig b/drivers/video/console/Kconfig
-index 787792c3d08d..3339b17ccbf1 100644
---- a/drivers/video/console/Kconfig
-+++ b/drivers/video/console/Kconfig
-@@ -161,6 +161,19 @@ config FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER
- by the firmware in place, rather then replacing the contents with a
- black screen as soon as fbcon loads.
-
-+config FB_CON_DECOR
-+ bool "Support for the Framebuffer Console Decorations"
-+ depends on FRAMEBUFFER_CONSOLE=y && !FB_TILEBLITTING
-+ default n
-+ ---help---
-+ This option enables support for framebuffer console decorations which
-+ makes it possible to display images in the background of the system
-+ consoles. Note that userspace utilities are necessary in order to take
-+ advantage of these features. Refer to Documentation/fb/fbcondecor.txt
-+ for more information.
-+
-+ If unsure, say N.
-+
- config STI_CONSOLE
- bool "STI text console"
- depends on PARISC && HAS_IOMEM
-diff --git a/drivers/video/console/Makefile b/drivers/video/console/Makefile
-index db07b784bd2c..3e369bd120b8 100644
---- a/drivers/video/console/Makefile
-+++ b/drivers/video/console/Makefile
-@@ -9,4 +9,5 @@ obj-$(CONFIG_STI_CONSOLE) += sticon.o sticore.o
- obj-$(CONFIG_VGA_CONSOLE) += vgacon.o
- obj-$(CONFIG_MDA_CONSOLE) += mdacon.o
-
-+obj-$(CONFIG_FB_CON_DECOR) += fbcondecor.o cfbcondecor.o
- obj-$(CONFIG_FB_STI) += sticore.o
-diff --git a/drivers/video/console/cfbcondecor.c b/drivers/video/console/cfbcondecor.c
-new file mode 100644
-index 000000000000..b00960803edc
---- /dev/null
-+++ b/drivers/video/console/cfbcondecor.c
-@@ -0,0 +1,473 @@
-+/*
-+ * linux/drivers/video/cfbcon_decor.c -- Framebuffer decor render functions
-+ *
-+ * Copyright (C) 2004 Michal Januszewski <michalj+fbcondecor@gmail.com>
-+ *
-+ * Code based upon "Bootdecor" (C) 2001-2003
-+ * Volker Poplawski <volker@poplawski.de>,
-+ * Stefan Reinauer <stepan@suse.de>,
-+ * Steffen Winterfeldt <snwint@suse.de>,
-+ * Michael Schroeder <mls@suse.de>,
-+ * Ken Wimer <wimer@suse.de>.
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file COPYING in the main directory of this archive for
-+ * more details.
-+ */
-+#include <linux/module.h>
-+#include <linux/types.h>
-+#include <linux/fb.h>
-+#include <linux/selection.h>
-+#include <linux/slab.h>
-+#include <linux/vt_kern.h>
-+#include <asm/irq.h>
-+
-+#include "../fbdev/core/fbcon.h"
-+#include "fbcondecor.h"
-+
-+#define parse_pixel(shift, bpp, type) \
-+ do { \
-+ if (d & (0x80 >> (shift))) \
-+ dd2[(shift)] = fgx; \
-+ else \
-+ dd2[(shift)] = transparent ? *(type *)decor_src : bgx; \
-+ decor_src += (bpp); \
-+ } while (0) \
-+
-+extern int get_color(struct vc_data *vc, struct fb_info *info,
-+ u16 c, int is_fg);
-+
-+void fbcon_decor_fix_pseudo_pal(struct fb_info *info, struct vc_data *vc)
-+{
-+ int i, j, k;
-+ int minlen = min(min(info->var.red.length, info->var.green.length),
-+ info->var.blue.length);
-+ u32 col;
-+
-+ for (j = i = 0; i < 16; i++) {
-+ k = color_table[i];
-+
-+ col = ((vc->vc_palette[j++] >> (8-minlen))
-+ << info->var.red.offset);
-+ col |= ((vc->vc_palette[j++] >> (8-minlen))
-+ << info->var.green.offset);
-+ col |= ((vc->vc_palette[j++] >> (8-minlen))
-+ << info->var.blue.offset);
-+ ((u32 *)info->pseudo_palette)[k] = col;
-+ }
-+}
-+
-+void fbcon_decor_renderc(struct fb_info *info, int ypos, int xpos, int height,
-+ int width, u8 *src, u32 fgx, u32 bgx, u8 transparent)
-+{
-+ unsigned int x, y;
-+ u32 dd;
-+ int bytespp = ((info->var.bits_per_pixel + 7) >> 3);
-+ unsigned int d = ypos * info->fix.line_length + xpos * bytespp;
-+ unsigned int ds = (ypos * info->var.xres + xpos) * bytespp;
-+ u16 dd2[4];
-+
-+ u8 *decor_src = (u8 *)(info->bgdecor.data + ds);
-+ u8 *dst = (u8 *)(info->screen_base + d);
-+
-+ if ((ypos + height) > info->var.yres || (xpos + width) > info->var.xres)
-+ return;
-+
-+ for (y = 0; y < height; y++) {
-+ switch (info->var.bits_per_pixel) {
-+
-+ case 32:
-+ for (x = 0; x < width; x++) {
-+
-+ if ((x & 7) == 0)
-+ d = *src++;
-+ if (d & 0x80)
-+ dd = fgx;
-+ else
-+ dd = transparent ?
-+ *(u32 *)decor_src : bgx;
-+
-+ d <<= 1;
-+ decor_src += 4;
-+ fb_writel(dd, dst);
-+ dst += 4;
-+ }
-+ break;
-+ case 24:
-+ for (x = 0; x < width; x++) {
-+
-+ if ((x & 7) == 0)
-+ d = *src++;
-+ if (d & 0x80)
-+ dd = fgx;
-+ else
-+ dd = transparent ?
-+ (*(u32 *)decor_src & 0xffffff) : bgx;
-+
-+ d <<= 1;
-+ decor_src += 3;
-+#ifdef __LITTLE_ENDIAN
-+ fb_writew(dd & 0xffff, dst);
-+ dst += 2;
-+ fb_writeb((dd >> 16), dst);
-+#else
-+ fb_writew(dd >> 8, dst);
-+ dst += 2;
-+ fb_writeb(dd & 0xff, dst);
-+#endif
-+ dst++;
-+ }
-+ break;
-+ case 16:
-+ for (x = 0; x < width; x += 2) {
-+ if ((x & 7) == 0)
-+ d = *src++;
-+
-+ parse_pixel(0, 2, u16);
-+ parse_pixel(1, 2, u16);
-+#ifdef __LITTLE_ENDIAN
-+ dd = dd2[0] | (dd2[1] << 16);
-+#else
-+ dd = dd2[1] | (dd2[0] << 16);
-+#endif
-+ d <<= 2;
-+ fb_writel(dd, dst);
-+ dst += 4;
-+ }
-+ break;
-+
-+ case 8:
-+ for (x = 0; x < width; x += 4) {
-+ if ((x & 7) == 0)
-+ d = *src++;
-+
-+ parse_pixel(0, 1, u8);
-+ parse_pixel(1, 1, u8);
-+ parse_pixel(2, 1, u8);
-+ parse_pixel(3, 1, u8);
-+
-+#ifdef __LITTLE_ENDIAN
-+ dd = dd2[0] | (dd2[1] << 8) | (dd2[2] << 16) | (dd2[3] << 24);
-+#else
-+ dd = dd2[3] | (dd2[2] << 8) | (dd2[1] << 16) | (dd2[0] << 24);
-+#endif
-+ d <<= 4;
-+ fb_writel(dd, dst);
-+ dst += 4;
-+ }
-+ }
-+
-+ dst += info->fix.line_length - width * bytespp;
-+ decor_src += (info->var.xres - width) * bytespp;
-+ }
-+}
-+
-+#define cc2cx(a) \
-+ ((info->fix.visual == FB_VISUAL_TRUECOLOR || \
-+ info->fix.visual == FB_VISUAL_DIRECTCOLOR) ? \
-+ ((u32 *)info->pseudo_palette)[a] : a)
-+
-+void fbcon_decor_putcs(struct vc_data *vc, struct fb_info *info,
-+ const unsigned short *s, int count, int yy, int xx)
-+{
-+ unsigned short charmask = vc->vc_hi_font_mask ? 0x1ff : 0xff;
-+ struct fbcon_ops *ops = info->fbcon_par;
-+ int fg_color, bg_color, transparent;
-+ u8 *src;
-+ u32 bgx, fgx;
-+ u16 c = scr_readw(s);
-+
-+ fg_color = get_color(vc, info, c, 1);
-+ bg_color = get_color(vc, info, c, 0);
-+
-+ /* Don't paint the background image if console is blanked */
-+ transparent = ops->blank_state ? 0 :
-+ (vc->vc_decor.bg_color == bg_color);
-+
-+ xx = xx * vc->vc_font.width + vc->vc_decor.tx;
-+ yy = yy * vc->vc_font.height + vc->vc_decor.ty;
-+
-+ fgx = cc2cx(fg_color);
-+ bgx = cc2cx(bg_color);
-+
-+ while (count--) {
-+ c = scr_readw(s++);
-+ src = vc->vc_font.data + (c & charmask) * vc->vc_font.height *
-+ ((vc->vc_font.width + 7) >> 3);
-+
-+ fbcon_decor_renderc(info, yy, xx, vc->vc_font.height,
-+ vc->vc_font.width, src, fgx, bgx, transparent);
-+ xx += vc->vc_font.width;
-+ }
-+}
-+
-+void fbcon_decor_cursor(struct fb_info *info, struct fb_cursor *cursor)
-+{
-+ int i;
-+ unsigned int dsize, s_pitch;
-+ struct fbcon_ops *ops = info->fbcon_par;
-+ struct vc_data *vc;
-+ u8 *src;
-+
-+ /* we really don't need any cursors while the console is blanked */
-+ if (info->state != FBINFO_STATE_RUNNING || ops->blank_state)
-+ return;
-+
-+ vc = vc_cons[ops->currcon].d;
-+
-+ src = kmalloc(64 + sizeof(struct fb_image), GFP_ATOMIC);
-+ if (!src)
-+ return;
-+
-+ s_pitch = (cursor->image.width + 7) >> 3;
-+ dsize = s_pitch * cursor->image.height;
-+ if (cursor->enable) {
-+ switch (cursor->rop) {
-+ case ROP_XOR:
-+ for (i = 0; i < dsize; i++)
-+ src[i] = cursor->image.data[i] ^ cursor->mask[i];
-+ break;
-+ case ROP_COPY:
-+ default:
-+ for (i = 0; i < dsize; i++)
-+ src[i] = cursor->image.data[i] & cursor->mask[i];
-+ break;
-+ }
-+ } else
-+ memcpy(src, cursor->image.data, dsize);
-+
-+ fbcon_decor_renderc(info,
-+ cursor->image.dy + vc->vc_decor.ty,
-+ cursor->image.dx + vc->vc_decor.tx,
-+ cursor->image.height,
-+ cursor->image.width,
-+ (u8 *)src,
-+ cc2cx(cursor->image.fg_color),
-+ cc2cx(cursor->image.bg_color),
-+ cursor->image.bg_color == vc->vc_decor.bg_color);
-+
-+ kfree(src);
-+}
-+
-+static void decorset(u8 *dst, int height, int width, int dstbytes,
-+ u32 bgx, int bpp)
-+{
-+ int i;
-+
-+ if (bpp == 8)
-+ bgx |= bgx << 8;
-+ if (bpp == 16 || bpp == 8)
-+ bgx |= bgx << 16;
-+
-+ while (height-- > 0) {
-+ u8 *p = dst;
-+
-+ switch (bpp) {
-+
-+ case 32:
-+ for (i = 0; i < width; i++) {
-+ fb_writel(bgx, p); p += 4;
-+ }
-+ break;
-+ case 24:
-+ for (i = 0; i < width; i++) {
-+#ifdef __LITTLE_ENDIAN
-+ fb_writew((bgx & 0xffff), (u16 *)p); p += 2;
-+ fb_writeb((bgx >> 16), p++);
-+#else
-+ fb_writew((bgx >> 8), (u16 *)p); p += 2;
-+ fb_writeb((bgx & 0xff), p++);
-+#endif
-+ }
-+ break;
-+ case 16:
-+ for (i = 0; i < width/4; i++) {
-+ fb_writel(bgx, p); p += 4;
-+ fb_writel(bgx, p); p += 4;
-+ }
-+ if (width & 2) {
-+ fb_writel(bgx, p); p += 4;
-+ }
-+ if (width & 1)
-+ fb_writew(bgx, (u16 *)p);
-+ break;
-+ case 8:
-+ for (i = 0; i < width/4; i++) {
-+ fb_writel(bgx, p); p += 4;
-+ }
-+
-+ if (width & 2) {
-+ fb_writew(bgx, p); p += 2;
-+ }
-+ if (width & 1)
-+ fb_writeb(bgx, (u8 *)p);
-+ break;
-+
-+ }
-+ dst += dstbytes;
-+ }
-+}
-+
-+void fbcon_decor_copy(u8 *dst, u8 *src, int height, int width, int linebytes,
-+ int srclinebytes, int bpp)
-+{
-+ int i;
-+
-+ while (height-- > 0) {
-+ u32 *p = (u32 *)dst;
-+ u32 *q = (u32 *)src;
-+
-+ switch (bpp) {
-+
-+ case 32:
-+ for (i = 0; i < width; i++)
-+ fb_writel(*q++, p++);
-+ break;
-+ case 24:
-+ for (i = 0; i < (width * 3 / 4); i++)
-+ fb_writel(*q++, p++);
-+ if ((width * 3) % 4) {
-+ if (width & 2) {
-+ fb_writeb(*(u8 *)q, (u8 *)p);
-+ } else if (width & 1) {
-+ fb_writew(*(u16 *)q, (u16 *)p);
-+ fb_writeb(*(u8 *)((u16 *)q + 1),
-+ (u8 *)((u16 *)p + 2));
-+ }
-+ }
-+ break;
-+ case 16:
-+ for (i = 0; i < width/4; i++) {
-+ fb_writel(*q++, p++);
-+ fb_writel(*q++, p++);
-+ }
-+ if (width & 2)
-+ fb_writel(*q++, p++);
-+ if (width & 1)
-+ fb_writew(*(u16 *)q, (u16 *)p);
-+ break;
-+ case 8:
-+ for (i = 0; i < width/4; i++)
-+ fb_writel(*q++, p++);
-+
-+ if (width & 2) {
-+ fb_writew(*(u16 *)q, (u16 *)p);
-+ q = (u32 *) ((u16 *)q + 1);
-+ p = (u32 *) ((u16 *)p + 1);
-+ }
-+ if (width & 1)
-+ fb_writeb(*(u8 *)q, (u8 *)p);
-+ break;
-+ }
-+
-+ dst += linebytes;
-+ src += srclinebytes;
-+ }
-+}
-+
-+static void decorfill(struct fb_info *info, int sy, int sx, int height,
-+ int width)
-+{
-+ int bytespp = ((info->var.bits_per_pixel + 7) >> 3);
-+ int d = sy * info->fix.line_length + sx * bytespp;
-+ int ds = (sy * info->var.xres + sx) * bytespp;
-+
-+ fbcon_decor_copy((u8 *)(info->screen_base + d), (u8 *)(info->bgdecor.data + ds),
-+ height, width, info->fix.line_length, info->var.xres * bytespp,
-+ info->var.bits_per_pixel);
-+}
-+
-+void fbcon_decor_clear(struct vc_data *vc, struct fb_info *info, int sy, int sx,
-+ int height, int width)
-+{
-+ int bgshift = (vc->vc_hi_font_mask) ? 13 : 12;
-+ struct fbcon_ops *ops = info->fbcon_par;
-+ u8 *dst;
-+ int transparent, bg_color = attr_bgcol_ec(bgshift, vc, info);
-+
-+ transparent = (vc->vc_decor.bg_color == bg_color);
-+ sy = sy * vc->vc_font.height + vc->vc_decor.ty;
-+ sx = sx * vc->vc_font.width + vc->vc_decor.tx;
-+ height *= vc->vc_font.height;
-+ width *= vc->vc_font.width;
-+
-+ /* Don't paint the background image if console is blanked */
-+ if (transparent && !ops->blank_state) {
-+ decorfill(info, sy, sx, height, width);
-+ } else {
-+ dst = (u8 *)(info->screen_base + sy * info->fix.line_length +
-+ sx * ((info->var.bits_per_pixel + 7) >> 3));
-+ decorset(dst, height, width, info->fix.line_length, cc2cx(bg_color),
-+ info->var.bits_per_pixel);
-+ }
-+}
-+
-+void fbcon_decor_clear_margins(struct vc_data *vc, struct fb_info *info,
-+ int bottom_only)
-+{
-+ unsigned int tw = vc->vc_cols*vc->vc_font.width;
-+ unsigned int th = vc->vc_rows*vc->vc_font.height;
-+
-+ if (!bottom_only) {
-+ /* top margin */
-+ decorfill(info, 0, 0, vc->vc_decor.ty, info->var.xres);
-+ /* left margin */
-+ decorfill(info, vc->vc_decor.ty, 0, th, vc->vc_decor.tx);
-+ /* right margin */
-+ decorfill(info, vc->vc_decor.ty, vc->vc_decor.tx + tw, th,
-+ info->var.xres - vc->vc_decor.tx - tw);
-+ }
-+ decorfill(info, vc->vc_decor.ty + th, 0,
-+ info->var.yres - vc->vc_decor.ty - th, info->var.xres);
-+}
-+
-+void fbcon_decor_bmove_redraw(struct vc_data *vc, struct fb_info *info, int y,
-+ int sx, int dx, int width)
-+{
-+ u16 *d = (u16 *) (vc->vc_origin + vc->vc_size_row * y + dx * 2);
-+ u16 *s = d + (dx - sx);
-+ u16 *start = d;
-+ u16 *ls = d;
-+ u16 *le = d + width;
-+ u16 c;
-+ int x = dx;
-+ u16 attr = 1;
-+
-+ do {
-+ c = scr_readw(d);
-+ if (attr != (c & 0xff00)) {
-+ attr = c & 0xff00;
-+ if (d > start) {
-+ fbcon_decor_putcs(vc, info, start, d - start, y, x);
-+ x += d - start;
-+ start = d;
-+ }
-+ }
-+ if (s >= ls && s < le && c == scr_readw(s)) {
-+ if (d > start) {
-+ fbcon_decor_putcs(vc, info, start, d - start, y, x);
-+ x += d - start + 1;
-+ start = d + 1;
-+ } else {
-+ x++;
-+ start++;
-+ }
-+ }
-+ s++;
-+ d++;
-+ } while (d < le);
-+ if (d > start)
-+ fbcon_decor_putcs(vc, info, start, d - start, y, x);
-+}
-+
-+void fbcon_decor_blank(struct vc_data *vc, struct fb_info *info, int blank)
-+{
-+ if (blank) {
-+ decorset((u8 *)info->screen_base, info->var.yres, info->var.xres,
-+ info->fix.line_length, 0, info->var.bits_per_pixel);
-+ } else {
-+ update_screen(vc);
-+ fbcon_decor_clear_margins(vc, info, 0);
-+ }
-+}
-+
-diff --git a/drivers/video/console/fbcondecor.c b/drivers/video/console/fbcondecor.c
-new file mode 100644
-index 000000000000..78288a497a60
---- /dev/null
-+++ b/drivers/video/console/fbcondecor.c
-@@ -0,0 +1,549 @@
-+/*
-+ * linux/drivers/video/console/fbcondecor.c -- Framebuffer console decorations
-+ *
-+ * Copyright (C) 2004-2009 Michal Januszewski <michalj+fbcondecor@gmail.com>
-+ *
-+ * Code based upon "Bootsplash" (C) 2001-2003
-+ * Volker Poplawski <volker@poplawski.de>,
-+ * Stefan Reinauer <stepan@suse.de>,
-+ * Steffen Winterfeldt <snwint@suse.de>,
-+ * Michael Schroeder <mls@suse.de>,
-+ * Ken Wimer <wimer@suse.de>.
-+ *
-+ * Compat ioctl support by Thorsten Klein <TK@Thorsten-Klein.de>.
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file COPYING in the main directory of this archive for
-+ * more details.
-+ *
-+ */
-+#include <linux/module.h>
-+#include <linux/kernel.h>
-+#include <linux/string.h>
-+#include <linux/types.h>
-+#include <linux/fb.h>
-+#include <linux/vt_kern.h>
-+#include <linux/vmalloc.h>
-+#include <linux/unistd.h>
-+#include <linux/syscalls.h>
-+#include <linux/init.h>
-+#include <linux/proc_fs.h>
-+#include <linux/workqueue.h>
-+#include <linux/kmod.h>
-+#include <linux/miscdevice.h>
-+#include <linux/device.h>
-+#include <linux/fs.h>
-+#include <linux/compat.h>
-+#include <linux/console.h>
-+#include <linux/binfmts.h>
-+#include <linux/uaccess.h>
-+#include <asm/irq.h>
-+
-+#include "../fbdev/core/fbcon.h"
-+#include "fbcondecor.h"
-+
-+extern signed char con2fb_map[];
-+static int fbcon_decor_enable(struct vc_data *vc);
-+
-+static int initialized;
-+
-+char fbcon_decor_path[KMOD_PATH_LEN] = "/sbin/fbcondecor_helper";
-+EXPORT_SYMBOL(fbcon_decor_path);
-+
-+int fbcon_decor_call_helper(char *cmd, unsigned short vc)
-+{
-+ char *envp[] = {
-+ "HOME=/",
-+ "PATH=/sbin:/bin",
-+ NULL
-+ };
-+
-+ char tfb[5];
-+ char tcons[5];
-+ unsigned char fb = (int) con2fb_map[vc];
-+
-+ char *argv[] = {
-+ fbcon_decor_path,
-+ "2",
-+ cmd,
-+ tcons,
-+ tfb,
-+ vc_cons[vc].d->vc_decor.theme,
-+ NULL
-+ };
-+
-+ snprintf(tfb, 5, "%d", fb);
-+ snprintf(tcons, 5, "%d", vc);
-+
-+ return call_usermodehelper(fbcon_decor_path, argv, envp, UMH_WAIT_EXEC);
-+}
-+
-+/* Disables fbcondecor on a virtual console; called with console sem held. */
-+int fbcon_decor_disable(struct vc_data *vc, unsigned char redraw)
-+{
-+ struct fb_info *info;
-+
-+ if (!vc->vc_decor.state)
-+ return -EINVAL;
-+
-+ info = registered_fb[(int) con2fb_map[vc->vc_num]];
-+
-+ if (info == NULL)
-+ return -EINVAL;
-+
-+ vc->vc_decor.state = 0;
-+ vc_resize(vc, info->var.xres / vc->vc_font.width,
-+ info->var.yres / vc->vc_font.height);
-+
-+ if (fg_console == vc->vc_num && redraw) {
-+ redraw_screen(vc, 0);
-+ update_region(vc, vc->vc_origin +
-+ vc->vc_size_row * vc->vc_top,
-+ vc->vc_size_row * (vc->vc_bottom - vc->vc_top) / 2);
-+ }
-+
-+ printk(KERN_INFO "fbcondecor: switched decor state to 'off' on console %d\n",
-+ vc->vc_num);
-+
-+ return 0;
-+}
-+
-+/* Enables fbcondecor on a virtual console; called with console sem held. */
-+static int fbcon_decor_enable(struct vc_data *vc)
-+{
-+ struct fb_info *info;
-+
-+ info = registered_fb[(int) con2fb_map[vc->vc_num]];
-+
-+ if (vc->vc_decor.twidth == 0 || vc->vc_decor.theight == 0 ||
-+ info == NULL || vc->vc_decor.state || (!info->bgdecor.data &&
-+ vc->vc_num == fg_console))
-+ return -EINVAL;
-+
-+ vc->vc_decor.state = 1;
-+ vc_resize(vc, vc->vc_decor.twidth / vc->vc_font.width,
-+ vc->vc_decor.theight / vc->vc_font.height);
-+
-+ if (fg_console == vc->vc_num) {
-+ redraw_screen(vc, 0);
-+ update_region(vc, vc->vc_origin +
-+ vc->vc_size_row * vc->vc_top,
-+ vc->vc_size_row * (vc->vc_bottom - vc->vc_top) / 2);
-+ fbcon_decor_clear_margins(vc, info, 0);
-+ }
-+
-+ printk(KERN_INFO "fbcondecor: switched decor state to 'on' on console %d\n",
-+ vc->vc_num);
-+
-+ return 0;
-+}
-+
-+static inline int fbcon_decor_ioctl_dosetstate(struct vc_data *vc, unsigned int state, unsigned char origin)
-+{
-+ int ret;
-+
-+ console_lock();
-+ if (!state)
-+ ret = fbcon_decor_disable(vc, 1);
-+ else
-+ ret = fbcon_decor_enable(vc);
-+ console_unlock();
-+
-+ return ret;
-+}
-+
-+static inline void fbcon_decor_ioctl_dogetstate(struct vc_data *vc, unsigned int *state)
-+{
-+ *state = vc->vc_decor.state;
-+}
-+
-+static int fbcon_decor_ioctl_dosetcfg(struct vc_data *vc, struct vc_decor *cfg, unsigned char origin)
-+{
-+ struct fb_info *info;
-+ int len;
-+ char *tmp;
-+
-+ info = registered_fb[(int) con2fb_map[vc->vc_num]];
-+
-+ if (info == NULL || !cfg->twidth || !cfg->theight ||
-+ cfg->tx + cfg->twidth > info->var.xres ||
-+ cfg->ty + cfg->theight > info->var.yres)
-+ return -EINVAL;
-+
-+ len = strnlen_user(cfg->theme, MAX_ARG_STRLEN);
-+ if (!len || len > FBCON_DECOR_THEME_LEN)
-+ return -EINVAL;
-+ tmp = kmalloc(len, GFP_KERNEL);
-+ if (!tmp)
-+ return -ENOMEM;
-+ if (copy_from_user(tmp, (void __user *)cfg->theme, len))
-+ return -EFAULT;
-+ cfg->theme = tmp;
-+ cfg->state = 0;
-+
-+ console_lock();
-+ if (vc->vc_decor.state)
-+ fbcon_decor_disable(vc, 1);
-+ kfree(vc->vc_decor.theme);
-+ vc->vc_decor = *cfg;
-+ console_unlock();
-+
-+ printk(KERN_INFO "fbcondecor: console %d using theme '%s'\n",
-+ vc->vc_num, vc->vc_decor.theme);
-+ return 0;
-+}
-+
-+static int fbcon_decor_ioctl_dogetcfg(struct vc_data *vc,
-+ struct vc_decor *decor)
-+{
-+ char __user *tmp;
-+
-+ tmp = decor->theme;
-+ *decor = vc->vc_decor;
-+ decor->theme = tmp;
-+
-+ if (vc->vc_decor.theme) {
-+ if (copy_to_user(tmp, vc->vc_decor.theme,
-+ strlen(vc->vc_decor.theme) + 1))
-+ return -EFAULT;
-+ } else
-+ if (put_user(0, tmp))
-+ return -EFAULT;
-+
-+ return 0;
-+}
-+
-+static int fbcon_decor_ioctl_dosetpic(struct vc_data *vc, struct fb_image *img,
-+ unsigned char origin)
-+{
-+ struct fb_info *info;
-+ int len;
-+ u8 *tmp;
-+
-+ if (vc->vc_num != fg_console)
-+ return -EINVAL;
-+
-+ info = registered_fb[(int) con2fb_map[vc->vc_num]];
-+
-+ if (info == NULL)
-+ return -EINVAL;
-+
-+ if (img->width != info->var.xres || img->height != info->var.yres) {
-+ printk(KERN_ERR "fbcondecor: picture dimensions mismatch\n");
-+ printk(KERN_ERR "%dx%d vs %dx%d\n", img->width, img->height,
-+ info->var.xres, info->var.yres);
-+ return -EINVAL;
-+ }
-+
-+ if (img->depth != info->var.bits_per_pixel) {
-+ printk(KERN_ERR "fbcondecor: picture depth mismatch\n");
-+ return -EINVAL;
-+ }
-+
-+ if (img->depth == 8) {
-+ if (!img->cmap.len || !img->cmap.red || !img->cmap.green ||
-+ !img->cmap.blue)
-+ return -EINVAL;
-+
-+ tmp = vmalloc(img->cmap.len * 3 * 2);
-+ if (!tmp)
-+ return -ENOMEM;
-+
-+ if (copy_from_user(tmp,
-+ (void __user *)img->cmap.red,
-+ (img->cmap.len << 1)) ||
-+ copy_from_user(tmp + (img->cmap.len << 1),
-+ (void __user *)img->cmap.green,
-+ (img->cmap.len << 1)) ||
-+ copy_from_user(tmp + (img->cmap.len << 2),
-+ (void __user *)img->cmap.blue,
-+ (img->cmap.len << 1))) {
-+ vfree(tmp);
-+ return -EFAULT;
-+ }
-+
-+ img->cmap.transp = NULL;
-+ img->cmap.red = (u16 *)tmp;
-+ img->cmap.green = img->cmap.red + img->cmap.len;
-+ img->cmap.blue = img->cmap.green + img->cmap.len;
-+ } else {
-+ img->cmap.red = NULL;
-+ }
-+
-+ len = ((img->depth + 7) >> 3) * img->width * img->height;
-+
-+ /*
-+ * Allocate an additional byte so that we never go outside of the
-+ * buffer boundaries in the rendering functions in a 24 bpp mode.
-+ */
-+ tmp = vmalloc(len + 1);
-+
-+ if (!tmp)
-+ goto out;
-+
-+ if (copy_from_user(tmp, (void __user *)img->data, len))
-+ goto out;
-+
-+ img->data = tmp;
-+
-+ console_lock();
-+
-+ if (info->bgdecor.data)
-+ vfree((u8 *)info->bgdecor.data);
-+ if (info->bgdecor.cmap.red)
-+ vfree(info->bgdecor.cmap.red);
-+
-+ info->bgdecor = *img;
-+
-+ if (fbcon_decor_active_vc(vc) && fg_console == vc->vc_num) {
-+ redraw_screen(vc, 0);
-+ update_region(vc, vc->vc_origin +
-+ vc->vc_size_row * vc->vc_top,
-+ vc->vc_size_row * (vc->vc_bottom - vc->vc_top) / 2);
-+ fbcon_decor_clear_margins(vc, info, 0);
-+ }
-+
-+ console_unlock();
-+
-+ return 0;
-+
-+out:
-+ if (img->cmap.red)
-+ vfree(img->cmap.red);
-+
-+ if (tmp)
-+ vfree(tmp);
-+ return -ENOMEM;
-+}
-+
-+static long fbcon_decor_ioctl(struct file *filp, u_int cmd, u_long arg)
-+{
-+ struct fbcon_decor_iowrapper __user *wrapper = (void __user *) arg;
-+ struct vc_data *vc = NULL;
-+ unsigned short vc_num = 0;
-+ unsigned char origin = 0;
-+ void __user *data = NULL;
-+
-+ if (!access_ok(VERIFY_READ, wrapper,
-+ sizeof(struct fbcon_decor_iowrapper)))
-+ return -EFAULT;
-+
-+ __get_user(vc_num, &wrapper->vc);
-+ __get_user(origin, &wrapper->origin);
-+ __get_user(data, &wrapper->data);
-+
-+ if (!vc_cons_allocated(vc_num))
-+ return -EINVAL;
-+
-+ vc = vc_cons[vc_num].d;
-+
-+ switch (cmd) {
-+ case FBIOCONDECOR_SETPIC:
-+ {
-+ struct fb_image img;
-+
-+ if (copy_from_user(&img, (struct fb_image __user *)data, sizeof(struct fb_image)))
-+ return -EFAULT;
-+
-+ return fbcon_decor_ioctl_dosetpic(vc, &img, origin);
-+ }
-+ case FBIOCONDECOR_SETCFG:
-+ {
-+ struct vc_decor cfg;
-+
-+ if (copy_from_user(&cfg, (struct vc_decor __user *)data, sizeof(struct vc_decor)))
-+ return -EFAULT;
-+
-+ return fbcon_decor_ioctl_dosetcfg(vc, &cfg, origin);
-+ }
-+ case FBIOCONDECOR_GETCFG:
-+ {
-+ int rval;
-+ struct vc_decor cfg;
-+
-+ if (copy_from_user(&cfg, (struct vc_decor __user *)data, sizeof(struct vc_decor)))
-+ return -EFAULT;
-+
-+ rval = fbcon_decor_ioctl_dogetcfg(vc, &cfg);
-+
-+ if (copy_to_user(data, &cfg, sizeof(struct vc_decor)))
-+ return -EFAULT;
-+ return rval;
-+ }
-+ case FBIOCONDECOR_SETSTATE:
-+ {
-+ unsigned int state = 0;
-+
-+ if (get_user(state, (unsigned int __user *)data))
-+ return -EFAULT;
-+ return fbcon_decor_ioctl_dosetstate(vc, state, origin);
-+ }
-+ case FBIOCONDECOR_GETSTATE:
-+ {
-+ unsigned int state = 0;
-+
-+ fbcon_decor_ioctl_dogetstate(vc, &state);
-+ return put_user(state, (unsigned int __user *)data);
-+ }
-+
-+ default:
-+ return -ENOIOCTLCMD;
-+ }
-+}
-+
-+#ifdef CONFIG_COMPAT
-+
-+static long fbcon_decor_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
-+{
-+ struct fbcon_decor_iowrapper32 __user *wrapper = (void __user *)arg;
-+ struct vc_data *vc = NULL;
-+ unsigned short vc_num = 0;
-+ unsigned char origin = 0;
-+ compat_uptr_t data_compat = 0;
-+ void __user *data = NULL;
-+
-+ if (!access_ok(VERIFY_READ, wrapper,
-+ sizeof(struct fbcon_decor_iowrapper32)))
-+ return -EFAULT;
-+
-+ __get_user(vc_num, &wrapper->vc);
-+ __get_user(origin, &wrapper->origin);
-+ __get_user(data_compat, &wrapper->data);
-+ data = compat_ptr(data_compat);
-+
-+ if (!vc_cons_allocated(vc_num))
-+ return -EINVAL;
-+
-+ vc = vc_cons[vc_num].d;
-+
-+ switch (cmd) {
-+ case FBIOCONDECOR_SETPIC32:
-+ {
-+ struct fb_image32 img_compat;
-+ struct fb_image img;
-+
-+ if (copy_from_user(&img_compat, (struct fb_image32 __user *)data, sizeof(struct fb_image32)))
-+ return -EFAULT;
-+
-+ fb_image_from_compat(img, img_compat);
-+
-+ return fbcon_decor_ioctl_dosetpic(vc, &img, origin);
-+ }
-+
-+ case FBIOCONDECOR_SETCFG32:
-+ {
-+ struct vc_decor32 cfg_compat;
-+ struct vc_decor cfg;
-+
-+ if (copy_from_user(&cfg_compat, (struct vc_decor32 __user *)data, sizeof(struct vc_decor32)))
-+ return -EFAULT;
-+
-+ vc_decor_from_compat(cfg, cfg_compat);
-+
-+ return fbcon_decor_ioctl_dosetcfg(vc, &cfg, origin);
-+ }
-+
-+ case FBIOCONDECOR_GETCFG32:
-+ {
-+ int rval;
-+ struct vc_decor32 cfg_compat;
-+ struct vc_decor cfg;
-+
-+ if (copy_from_user(&cfg_compat, (struct vc_decor32 __user *)data, sizeof(struct vc_decor32)))
-+ return -EFAULT;
-+ cfg.theme = compat_ptr(cfg_compat.theme);
-+
-+ rval = fbcon_decor_ioctl_dogetcfg(vc, &cfg);
-+
-+ vc_decor_to_compat(cfg_compat, cfg);
-+
-+ if (copy_to_user((struct vc_decor32 __user *)data, &cfg_compat, sizeof(struct vc_decor32)))
-+ return -EFAULT;
-+ return rval;
-+ }
-+
-+ case FBIOCONDECOR_SETSTATE32:
-+ {
-+ compat_uint_t state_compat = 0;
-+ unsigned int state = 0;
-+
-+ if (get_user(state_compat, (compat_uint_t __user *)data))
-+ return -EFAULT;
-+
-+ state = (unsigned int)state_compat;
-+
-+ return fbcon_decor_ioctl_dosetstate(vc, state, origin);
-+ }
-+
-+ case FBIOCONDECOR_GETSTATE32:
-+ {
-+ compat_uint_t state_compat = 0;
-+ unsigned int state = 0;
-+
-+ fbcon_decor_ioctl_dogetstate(vc, &state);
-+ state_compat = (compat_uint_t)state;
-+
-+ return put_user(state_compat, (compat_uint_t __user *)data);
-+ }
-+
-+ default:
-+ return -ENOIOCTLCMD;
-+ }
-+}
-+#else
-+ #define fbcon_decor_compat_ioctl NULL
-+#endif
-+
-+static struct file_operations fbcon_decor_ops = {
-+ .owner = THIS_MODULE,
-+ .unlocked_ioctl = fbcon_decor_ioctl,
-+ .compat_ioctl = fbcon_decor_compat_ioctl
-+};
-+
-+static struct miscdevice fbcon_decor_dev = {
-+ .minor = MISC_DYNAMIC_MINOR,
-+ .name = "fbcondecor",
-+ .fops = &fbcon_decor_ops
-+};
-+
-+void fbcon_decor_reset(void)
-+{
-+ int i;
-+
-+ for (i = 0; i < num_registered_fb; i++) {
-+ registered_fb[i]->bgdecor.data = NULL;
-+ registered_fb[i]->bgdecor.cmap.red = NULL;
-+ }
-+
-+ for (i = 0; i < MAX_NR_CONSOLES && vc_cons[i].d; i++) {
-+ vc_cons[i].d->vc_decor.state = vc_cons[i].d->vc_decor.twidth =
-+ vc_cons[i].d->vc_decor.theight = 0;
-+ vc_cons[i].d->vc_decor.theme = NULL;
-+ }
-+}
-+
-+int fbcon_decor_init(void)
-+{
-+ int i;
-+
-+ fbcon_decor_reset();
-+
-+ if (initialized)
-+ return 0;
-+
-+ i = misc_register(&fbcon_decor_dev);
-+ if (i) {
-+ printk(KERN_ERR "fbcondecor: failed to register device\n");
-+ return i;
-+ }
-+
-+ fbcon_decor_call_helper("init", 0);
-+ initialized = 1;
-+ return 0;
-+}
-+
-+int fbcon_decor_exit(void)
-+{
-+ fbcon_decor_reset();
-+ return 0;
-+}
-diff --git a/drivers/video/console/fbcondecor.h b/drivers/video/console/fbcondecor.h
-new file mode 100644
-index 000000000000..c49386c16695
---- /dev/null
-+++ b/drivers/video/console/fbcondecor.h
-@@ -0,0 +1,77 @@
-+/*
-+ * linux/drivers/video/console/fbcondecor.h -- Framebuffer Console Decoration headers
-+ *
-+ * Copyright (C) 2004 Michal Januszewski <michalj+fbcondecor@gmail.com>
-+ *
-+ */
-+
-+#ifndef __FBCON_DECOR_H
-+#define __FBCON_DECOR_H
-+
-+#ifndef _LINUX_FB_H
-+#include <linux/fb.h>
-+#endif
-+
-+/* This is needed for vc_cons in fbcmap.c */
-+#include <linux/vt_kern.h>
-+
-+struct fb_cursor;
-+struct fb_info;
-+struct vc_data;
-+
-+#ifdef CONFIG_FB_CON_DECOR
-+/* fbcondecor.c */
-+int fbcon_decor_init(void);
-+int fbcon_decor_exit(void);
-+int fbcon_decor_call_helper(char *cmd, unsigned short cons);
-+int fbcon_decor_disable(struct vc_data *vc, unsigned char redraw);
-+
-+/* cfbcondecor.c */
-+void fbcon_decor_putcs(struct vc_data *vc, struct fb_info *info, const unsigned short *s, int count, int yy, int xx);
-+void fbcon_decor_cursor(struct fb_info *info, struct fb_cursor *cursor);
-+void fbcon_decor_clear(struct vc_data *vc, struct fb_info *info, int sy, int sx, int height, int width);
-+void fbcon_decor_clear_margins(struct vc_data *vc, struct fb_info *info, int bottom_only);
-+void fbcon_decor_blank(struct vc_data *vc, struct fb_info *info, int blank);
-+void fbcon_decor_bmove_redraw(struct vc_data *vc, struct fb_info *info, int y, int sx, int dx, int width);
-+void fbcon_decor_copy(u8 *dst, u8 *src, int height, int width, int linebytes, int srclinesbytes, int bpp);
-+void fbcon_decor_fix_pseudo_pal(struct fb_info *info, struct vc_data *vc);
-+
-+/* vt.c */
-+void acquire_console_sem(void);
-+void release_console_sem(void);
-+void do_unblank_screen(int entering_gfx);
-+
-+/* struct vc_data *y */
-+#define fbcon_decor_active_vc(y) (y->vc_decor.state && y->vc_decor.theme)
-+
-+/* struct fb_info *x, struct vc_data *y */
-+#define fbcon_decor_active_nores(x, y) (x->bgdecor.data && fbcon_decor_active_vc(y))
-+
-+/* struct fb_info *x, struct vc_data *y */
-+#define fbcon_decor_active(x, y) (fbcon_decor_active_nores(x, y) && \
-+ x->bgdecor.width == x->var.xres && \
-+ x->bgdecor.height == x->var.yres && \
-+ x->bgdecor.depth == x->var.bits_per_pixel)
-+
-+#else /* CONFIG_FB_CON_DECOR */
-+
-+static inline void fbcon_decor_putcs(struct vc_data *vc, struct fb_info *info, const unsigned short *s, int count, int yy, int xx) {}
-+static inline void fbcon_decor_putc(struct vc_data *vc, struct fb_info *info, int c, int ypos, int xpos) {}
-+static inline void fbcon_decor_cursor(struct fb_info *info, struct fb_cursor *cursor) {}
-+static inline void fbcon_decor_clear(struct vc_data *vc, struct fb_info *info, int sy, int sx, int height, int width) {}
-+static inline void fbcon_decor_clear_margins(struct vc_data *vc, struct fb_info *info, int bottom_only) {}
-+static inline void fbcon_decor_blank(struct vc_data *vc, struct fb_info *info, int blank) {}
-+static inline void fbcon_decor_bmove_redraw(struct vc_data *vc, struct fb_info *info, int y, int sx, int dx, int width) {}
-+static inline void fbcon_decor_fix_pseudo_pal(struct fb_info *info, struct vc_data *vc) {}
-+static inline int fbcon_decor_call_helper(char *cmd, unsigned short cons) { return 0; }
-+static inline int fbcon_decor_init(void) { return 0; }
-+static inline int fbcon_decor_exit(void) { return 0; }
-+static inline int fbcon_decor_disable(struct vc_data *vc, unsigned char redraw) { return 0; }
-+
-+#define fbcon_decor_active_vc(y) (0)
-+#define fbcon_decor_active_nores(x, y) (0)
-+#define fbcon_decor_active(x, y) (0)
-+
-+#endif /* CONFIG_FB_CON_DECOR */
-+
-+#endif /* __FBCON_DECOR_H */
-diff --git a/drivers/video/fbdev/Kconfig b/drivers/video/fbdev/Kconfig
-index 591a13a59787..d774f89b710a 100644
---- a/drivers/video/fbdev/Kconfig
-+++ b/drivers/video/fbdev/Kconfig
-@@ -1118,7 +1118,6 @@ config FB_MATROX
- select FB_CFB_FILLRECT
- select FB_CFB_COPYAREA
- select FB_CFB_IMAGEBLIT
-- select FB_TILEBLITTING
- select FB_MACMODES if PPC_PMAC
- ---help---
- Say Y here if you have a Matrox Millennium, Matrox Millennium II,
-diff --git a/drivers/video/fbdev/core/bitblit.c b/drivers/video/fbdev/core/bitblit.c
-index ca935c09a261..73e693fa1552 100644
---- a/drivers/video/fbdev/core/bitblit.c
-+++ b/drivers/video/fbdev/core/bitblit.c
-@@ -18,6 +18,7 @@
- #include <linux/console.h>
- #include <asm/types.h>
- #include "fbcon.h"
-+#include "../../console/fbcondecor.h"
-
- /*
- * Accelerated handlers.
-@@ -55,6 +56,13 @@ static void bit_bmove(struct vc_data *vc, struct fb_info *info, int sy,
- area.height = height * vc->vc_font.height;
- area.width = width * vc->vc_font.width;
-
-+ if (fbcon_decor_active(info, vc)) {
-+ area.sx += vc->vc_decor.tx;
-+ area.sy += vc->vc_decor.ty;
-+ area.dx += vc->vc_decor.tx;
-+ area.dy += vc->vc_decor.ty;
-+ }
-+
- info->fbops->fb_copyarea(info, &area);
- }
-
-@@ -379,11 +387,15 @@ static void bit_cursor(struct vc_data *vc, struct fb_info *info, int mode,
- cursor.image.depth = 1;
- cursor.rop = ROP_XOR;
-
-- if (info->fbops->fb_cursor)
-- err = info->fbops->fb_cursor(info, &cursor);
-+ if (fbcon_decor_active(info, vc)) {
-+ fbcon_decor_cursor(info, &cursor);
-+ } else {
-+ if (info->fbops->fb_cursor)
-+ err = info->fbops->fb_cursor(info, &cursor);
-
-- if (err)
-- soft_cursor(info, &cursor);
-+ if (err)
-+ soft_cursor(info, &cursor);
-+ }
-
- ops->cursor_reset = 0;
- }
-diff --git a/drivers/video/fbdev/core/fbcmap.c b/drivers/video/fbdev/core/fbcmap.c
-index 2811c4afde01..70468ab9dc5d 100644
---- a/drivers/video/fbdev/core/fbcmap.c
-+++ b/drivers/video/fbdev/core/fbcmap.c
-@@ -17,6 +17,8 @@
- #include <linux/slab.h>
- #include <linux/uaccess.h>
-
-+#include "../../console/fbcondecor.h"
-+
- static u16 red2[] __read_mostly = {
- 0x0000, 0xaaaa
- };
-@@ -258,9 +260,12 @@ int fb_set_cmap(struct fb_cmap *cmap, struct fb_info *info)
- break;
- }
- }
-- if (rc == 0)
-+ if (rc == 0) {
- fb_copy_cmap(cmap, &info->cmap);
--
-+ if (fbcon_decor_active(info, vc_cons[fg_console].d) &&
-+ info->fix.visual == FB_VISUAL_DIRECTCOLOR)
-+ fbcon_decor_fix_pseudo_pal(info, vc_cons[fg_console].d);
-+ }
- return rc;
- }
-
-diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c
-index b96d4e779333..9ce13b259406 100644
---- a/drivers/video/fbdev/core/fbcon.c
-+++ b/drivers/video/fbdev/core/fbcon.c
-@@ -80,6 +80,7 @@
- #include <asm/irq.h>
-
- #include "fbcon.h"
-+#include "../../console/fbcondecor.h"
-
- #ifdef FBCONDEBUG
- # define DPRINTK(fmt, args...) printk(KERN_DEBUG "%s: " fmt, __func__ , ## args)
-@@ -95,7 +96,7 @@ enum {
-
- static struct display fb_display[MAX_NR_CONSOLES];
-
--static signed char con2fb_map[MAX_NR_CONSOLES];
-+signed char con2fb_map[MAX_NR_CONSOLES];
- static signed char con2fb_map_boot[MAX_NR_CONSOLES];
-
- static int logo_lines;
-@@ -288,7 +289,7 @@ static inline int fbcon_is_inactive(struct vc_data *vc, struct fb_info *info)
- !vt_force_oops_output(vc);
- }
-
--static int get_color(struct vc_data *vc, struct fb_info *info,
-+int get_color(struct vc_data *vc, struct fb_info *info,
- u16 c, int is_fg)
- {
- int depth = fb_get_color_depth(&info->var, &info->fix);
-@@ -562,6 +563,9 @@ static int do_fbcon_takeover(int show_logo)
- info_idx = -1;
- } else {
- fbcon_has_console_bind = 1;
-+#ifdef CONFIG_FB_CON_DECOR
-+ fbcon_decor_init();
-+#endif
- }
-
- return err;
-@@ -1032,6 +1036,12 @@ static const char *fbcon_startup(void)
- rows = FBCON_SWAP(ops->rotate, info->var.yres, info->var.xres);
- cols /= vc->vc_font.width;
- rows /= vc->vc_font.height;
-+
-+ if (fbcon_decor_active(info, vc)) {
-+ cols = vc->vc_decor.twidth / vc->vc_font.width;
-+ rows = vc->vc_decor.theight / vc->vc_font.height;
-+ }
-+
- vc_resize(vc, cols, rows);
-
- DPRINTK("mode: %s\n", info->fix.id);
-@@ -1061,7 +1071,7 @@ static void fbcon_init(struct vc_data *vc, int init)
- cap = info->flags;
-
- if (vc != svc || logo_shown == FBCON_LOGO_DONTSHOW ||
-- (info->fix.type == FB_TYPE_TEXT))
-+ (info->fix.type == FB_TYPE_TEXT) || fbcon_decor_active(info, vc))
- logo = 0;
-
- if (var_to_display(p, &info->var, info))
-@@ -1297,6 +1307,11 @@ static void fbcon_clear(struct vc_data *vc, int sy, int sx, int height,
- fbcon_clear_margins(vc, 0);
- }
-
-+ if (fbcon_decor_active(info, vc)) {
-+ fbcon_decor_clear(vc, info, sy, sx, height, width);
-+ return;
-+ }
-+
- /* Split blits that cross physical y_wrap boundary */
-
- y_break = p->vrows - p->yscroll;
-@@ -1316,10 +1331,15 @@ static void fbcon_putcs(struct vc_data *vc, const unsigned short *s,
- struct display *p = &fb_display[vc->vc_num];
- struct fbcon_ops *ops = info->fbcon_par;
-
-- if (!fbcon_is_inactive(vc, info))
-- ops->putcs(vc, info, s, count, real_y(p, ypos), xpos,
-- get_color(vc, info, scr_readw(s), 1),
-- get_color(vc, info, scr_readw(s), 0));
-+ if (!fbcon_is_inactive(vc, info)) {
-+
-+ if (fbcon_decor_active(info, vc))
-+ fbcon_decor_putcs(vc, info, s, count, ypos, xpos);
-+ else
-+ ops->putcs(vc, info, s, count, real_y(p, ypos), xpos,
-+ get_color(vc, info, scr_readw(s), 1),
-+ get_color(vc, info, scr_readw(s), 0));
-+ }
- }
-
- static void fbcon_putc(struct vc_data *vc, int c, int ypos, int xpos)
-@@ -1335,8 +1355,12 @@ static void fbcon_clear_margins(struct vc_data *vc, int bottom_only)
- struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]];
- struct fbcon_ops *ops = info->fbcon_par;
-
-- if (!fbcon_is_inactive(vc, info))
-- ops->clear_margins(vc, info, margin_color, bottom_only);
-+ if (!fbcon_is_inactive(vc, info)) {
-+ if (fbcon_decor_active(info, vc))
-+ fbcon_decor_clear_margins(vc, info, bottom_only);
-+ else
-+ ops->clear_margins(vc, info, margin_color, bottom_only);
-+ }
- }
-
- static void fbcon_cursor(struct vc_data *vc, int mode)
-@@ -1857,7 +1881,7 @@ static bool fbcon_scroll(struct vc_data *vc, unsigned int t, unsigned int b,
- count = vc->vc_rows;
- if (softback_top)
- fbcon_softback_note(vc, t, count);
-- if (logo_shown >= 0)
-+ if (logo_shown >= 0 || fbcon_decor_active(info, vc))
- goto redraw_up;
- switch (p->scrollmode) {
- case SCROLL_MOVE:
-@@ -1950,6 +1974,8 @@ static bool fbcon_scroll(struct vc_data *vc, unsigned int t, unsigned int b,
- count = vc->vc_rows;
- if (logo_shown >= 0)
- goto redraw_down;
-+ if (fbcon_decor_active(info, vc))
-+ goto redraw_down;
- switch (p->scrollmode) {
- case SCROLL_MOVE:
- fbcon_redraw_blit(vc, info, p, b - 1, b - t - count,
-@@ -2098,6 +2124,13 @@ static void fbcon_bmove_rec(struct vc_data *vc, struct display *p, int sy, int s
- }
- return;
- }
-+
-+ if (fbcon_decor_active(info, vc) && sy == dy && height == 1) {
-+ /* must use slower redraw bmove to keep background pic intact */
-+ fbcon_decor_bmove_redraw(vc, info, sy, sx, dx, width);
-+ return;
-+ }
-+
- ops->bmove(vc, info, real_y(p, sy), sx, real_y(p, dy), dx,
- height, width);
- }
-@@ -2168,8 +2201,8 @@ static int fbcon_resize(struct vc_data *vc, unsigned int width,
- var.yres = virt_h * virt_fh;
- x_diff = info->var.xres - var.xres;
- y_diff = info->var.yres - var.yres;
-- if (x_diff < 0 || x_diff > virt_fw ||
-- y_diff < 0 || y_diff > virt_fh) {
-+ if ((x_diff < 0 || x_diff > virt_fw ||
-+ y_diff < 0 || y_diff > virt_fh) && !vc->vc_decor.state) {
- const struct fb_videomode *mode;
-
- DPRINTK("attempting resize %ix%i\n", var.xres, var.yres);
-@@ -2205,6 +2238,22 @@ static int fbcon_switch(struct vc_data *vc)
-
- info = registered_fb[con2fb_map[vc->vc_num]];
- ops = info->fbcon_par;
-+ prev_console = ops->currcon;
-+ if (prev_console != -1)
-+ old_info = registered_fb[con2fb_map[prev_console]];
-+
-+#ifdef CONFIG_FB_CON_DECOR
-+ if (!fbcon_decor_active_vc(vc) && info->fix.visual == FB_VISUAL_DIRECTCOLOR) {
-+ struct vc_data *vc_curr = vc_cons[prev_console].d;
-+
-+ if (vc_curr && fbcon_decor_active_vc(vc_curr)) {
-+ // Clear the screen to avoid displaying funky colors
-+ // during palette updates.
-+ memset((u8 *)info->screen_base + info->fix.line_length * info->var.yoffset,
-+ 0, info->var.yres * info->fix.line_length);
-+ }
-+ }
-+#endif
-
- if (softback_top) {
- if (softback_lines)
-@@ -2223,9 +2272,6 @@ static int fbcon_switch(struct vc_data *vc)
- logo_shown = FBCON_LOGO_CANSHOW;
- }
-
-- prev_console = ops->currcon;
-- if (prev_console != -1)
-- old_info = registered_fb[con2fb_map[prev_console]];
- /*
- * FIXME: If we have multiple fbdev's loaded, we need to
- * update all info->currcon. Perhaps, we can place this
-@@ -2269,6 +2315,18 @@ static int fbcon_switch(struct vc_data *vc)
- fbcon_del_cursor_timer(old_info);
- }
-
-+ if (fbcon_decor_active_vc(vc)) {
-+ struct vc_data *vc_curr = vc_cons[prev_console].d;
-+
-+ if (!vc_curr->vc_decor.theme ||
-+ strcmp(vc->vc_decor.theme, vc_curr->vc_decor.theme) ||
-+ (fbcon_decor_active_nores(info, vc_curr) &&
-+ !fbcon_decor_active(info, vc_curr))) {
-+ fbcon_decor_disable(vc, 0);
-+ fbcon_decor_call_helper("modechange", vc->vc_num);
-+ }
-+ }
-+
- if (fbcon_is_inactive(vc, info) ||
- ops->blank_state != FB_BLANK_UNBLANK)
- fbcon_del_cursor_timer(info);
-@@ -2377,15 +2435,20 @@ static int fbcon_blank(struct vc_data *vc, int blank, int mode_switch)
- }
- }
-
-- if (!fbcon_is_inactive(vc, info)) {
-+ if (!fbcon_is_inactive(vc, info)) {
- if (ops->blank_state != blank) {
- ops->blank_state = blank;
- fbcon_cursor(vc, blank ? CM_ERASE : CM_DRAW);
- ops->cursor_flash = (!blank);
-
-- if (!(info->flags & FBINFO_MISC_USEREVENT))
-- if (fb_blank(info, blank))
-- fbcon_generic_blank(vc, info, blank);
-+ if (!(info->flags & FBINFO_MISC_USEREVENT)) {
-+ if (fb_blank(info, blank)) {
-+ if (fbcon_decor_active(info, vc))
-+ fbcon_decor_blank(vc, info, blank);
-+ else
-+ fbcon_generic_blank(vc, info, blank);
-+ }
-+ }
- }
-
- if (!blank)
-@@ -2568,13 +2631,22 @@ static int fbcon_do_set_font(struct vc_data *vc, int w, int h,
- set_vc_hi_font(vc, true);
-
- if (resize) {
-+ /* reset wrap/pan */
- int cols, rows;
-
- cols = FBCON_SWAP(ops->rotate, info->var.xres, info->var.yres);
- rows = FBCON_SWAP(ops->rotate, info->var.yres, info->var.xres);
-+
-+ if (fbcon_decor_active(info, vc)) {
-+ info->var.xoffset = info->var.yoffset = p->yscroll = 0;
-+ cols = vc->vc_decor.twidth;
-+ rows = vc->vc_decor.theight;
-+ }
- cols /= w;
- rows /= h;
-+
- vc_resize(vc, cols, rows);
-+
- if (con_is_visible(vc) && softback_buf)
- fbcon_update_softback(vc);
- } else if (con_is_visible(vc)
-@@ -2704,7 +2776,11 @@ static void fbcon_set_palette(struct vc_data *vc, const unsigned char *table)
- int i, j, k, depth;
- u8 val;
-
-- if (fbcon_is_inactive(vc, info))
-+ if (fbcon_is_inactive(vc, info)
-+#ifdef CONFIG_FB_CON_DECOR
-+ || vc->vc_num != fg_console
-+#endif
-+ )
- return;
-
- if (!con_is_visible(vc))
-@@ -2730,7 +2806,47 @@ static void fbcon_set_palette(struct vc_data *vc, const unsigned char *table)
- } else
- fb_copy_cmap(fb_default_cmap(1 << depth), &palette_cmap);
-
-- fb_set_cmap(&palette_cmap, info);
-+ if (fbcon_decor_active(info, vc_cons[fg_console].d) &&
-+ info->fix.visual == FB_VISUAL_DIRECTCOLOR) {
-+
-+ u16 *red, *green, *blue;
-+ int minlen = min(min(info->var.red.length, info->var.green.length),
-+ info->var.blue.length);
-+
-+ struct fb_cmap cmap = {
-+ .start = 0,
-+ .len = (1 << minlen),
-+ .red = NULL,
-+ .green = NULL,
-+ .blue = NULL,
-+ .transp = NULL
-+ };
-+
-+ red = kmalloc(256 * sizeof(u16) * 3, GFP_KERNEL);
-+
-+ if (!red)
-+ goto out;
-+
-+ green = red + 256;
-+ blue = green + 256;
-+ cmap.red = red;
-+ cmap.green = green;
-+ cmap.blue = blue;
-+
-+ for (i = 0; i < cmap.len; i++)
-+ red[i] = green[i] = blue[i] = (0xffff * i)/(cmap.len-1);
-+
-+ fb_set_cmap(&cmap, info);
-+ fbcon_decor_fix_pseudo_pal(info, vc_cons[fg_console].d);
-+ kfree(red);
-+
-+ return;
-+
-+ } else if (fbcon_decor_active(info, vc_cons[fg_console].d) &&
-+ info->var.bits_per_pixel == 8 && info->bgdecor.cmap.red != NULL)
-+ fb_set_cmap(&info->bgdecor.cmap, info);
-+
-+out: fb_set_cmap(&palette_cmap, info);
- }
-
- static u16 *fbcon_screen_pos(struct vc_data *vc, int offset)
-@@ -2955,7 +3071,14 @@ static void fbcon_modechanged(struct fb_info *info)
- rows = FBCON_SWAP(ops->rotate, info->var.yres, info->var.xres);
- cols /= vc->vc_font.width;
- rows /= vc->vc_font.height;
-- vc_resize(vc, cols, rows);
-+
-+ if (!fbcon_decor_active_nores(info, vc)) {
-+ vc_resize(vc, cols, rows);
-+ } else {
-+ fbcon_decor_disable(vc, 0);
-+ fbcon_decor_call_helper("modechange", vc->vc_num);
-+ }
-+
- updatescrollmode(p, info, vc);
- scrollback_max = 0;
- scrollback_current = 0;
-@@ -3000,7 +3123,8 @@ static void fbcon_set_all_vcs(struct fb_info *info)
- rows = FBCON_SWAP(ops->rotate, info->var.yres, info->var.xres);
- cols /= vc->vc_font.width;
- rows /= vc->vc_font.height;
-- vc_resize(vc, cols, rows);
-+ if (!fbcon_decor_active_nores(info, vc))
-+ vc_resize(vc, cols, rows);
- }
-
- if (fg != -1)
-@@ -3708,6 +3832,7 @@ static void fbcon_exit(void)
- }
- }
-
-+ fbcon_decor_exit();
- fbcon_has_exited = 1;
- }
-
-diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c
-index c48f083d522a..39de63aedf83 100644
---- a/drivers/video/fbdev/core/fbmem.c
-+++ b/drivers/video/fbdev/core/fbmem.c
-@@ -1248,15 +1248,6 @@ struct fb_fix_screeninfo32 {
- u16 reserved[3];
- };
-
--struct fb_cmap32 {
-- u32 start;
-- u32 len;
-- compat_caddr_t red;
-- compat_caddr_t green;
-- compat_caddr_t blue;
-- compat_caddr_t transp;
--};
--
- static int fb_getput_cmap(struct fb_info *info, unsigned int cmd,
- unsigned long arg)
- {
-diff --git a/include/linux/console_decor.h b/include/linux/console_decor.h
-new file mode 100644
-index 000000000000..15143556c2aa
---- /dev/null
-+++ b/include/linux/console_decor.h
-@@ -0,0 +1,46 @@
-+#ifndef _LINUX_CONSOLE_DECOR_H_
-+#define _LINUX_CONSOLE_DECOR_H_ 1
-+
-+/* A structure used by the framebuffer console decorations (drivers/video/console/fbcondecor.c) */
-+struct vc_decor {
-+ __u8 bg_color; /* The color that is to be treated as transparent */
-+ __u8 state; /* Current decor state: 0 = off, 1 = on */
-+ __u16 tx, ty; /* Top left corner coordinates of the text field */
-+ __u16 twidth, theight; /* Width and height of the text field */
-+ char *theme;
-+};
-+
-+#ifdef __KERNEL__
-+#ifdef CONFIG_COMPAT
-+#include <linux/compat.h>
-+
-+struct vc_decor32 {
-+ __u8 bg_color; /* The color that is to be treated as transparent */
-+ __u8 state; /* Current decor state: 0 = off, 1 = on */
-+ __u16 tx, ty; /* Top left corner coordinates of the text field */
-+ __u16 twidth, theight; /* Width and height of the text field */
-+ compat_uptr_t theme;
-+};
-+
-+#define vc_decor_from_compat(to, from) \
-+ (to).bg_color = (from).bg_color; \
-+ (to).state = (from).state; \
-+ (to).tx = (from).tx; \
-+ (to).ty = (from).ty; \
-+ (to).twidth = (from).twidth; \
-+ (to).theight = (from).theight; \
-+ (to).theme = compat_ptr((from).theme)
-+
-+#define vc_decor_to_compat(to, from) \
-+ (to).bg_color = (from).bg_color; \
-+ (to).state = (from).state; \
-+ (to).tx = (from).tx; \
-+ (to).ty = (from).ty; \
-+ (to).twidth = (from).twidth; \
-+ (to).theight = (from).theight; \
-+ (to).theme = ptr_to_compat((from).theme)
-+
-+#endif /* CONFIG_COMPAT */
-+#endif /* __KERNEL__ */
-+
-+#endif
-diff --git a/include/linux/console_struct.h b/include/linux/console_struct.h
-index fea64f2692a0..13ccf7cf8368 100644
---- a/include/linux/console_struct.h
-+++ b/include/linux/console_struct.h
-@@ -21,6 +21,7 @@ struct uni_pagedir;
- struct uni_screen;
-
- #define NPAR 16
-+#include <linux/console_decor.h>
-
- /*
- * Example: vc_data of a console that was scrolled 3 lines down.
-@@ -142,6 +143,8 @@ struct vc_data {
- struct uni_pagedir **vc_uni_pagedir_loc; /* [!] Location of uni_pagedir variable for this console */
- struct uni_screen *vc_uni_screen; /* unicode screen content */
- bool vc_panic_force_write; /* when oops/panic this VC can accept forced output/blanking */
-+
-+ struct vc_decor vc_decor;
- /* additional information is in vt_kern.h */
- };
-
-diff --git a/include/linux/fb.h b/include/linux/fb.h
-index 3e7e75383d32..be35708b3ef0 100644
---- a/include/linux/fb.h
-+++ b/include/linux/fb.h
-@@ -239,6 +239,34 @@ struct fb_deferred_io {
- };
- #endif
-
-+#ifdef __KERNEL__
-+#ifdef CONFIG_COMPAT
-+struct fb_image32 {
-+ __u32 dx; /* Where to place image */
-+ __u32 dy;
-+ __u32 width; /* Size of image */
-+ __u32 height;
-+ __u32 fg_color; /* Only used when a mono bitmap */
-+ __u32 bg_color;
-+ __u8 depth; /* Depth of the image */
-+ const compat_uptr_t data; /* Pointer to image data */
-+ struct fb_cmap32 cmap; /* color map info */
-+};
-+
-+#define fb_image_from_compat(to, from) \
-+ (to).dx = (from).dx; \
-+ (to).dy = (from).dy; \
-+ (to).width = (from).width; \
-+ (to).height = (from).height; \
-+ (to).fg_color = (from).fg_color; \
-+ (to).bg_color = (from).bg_color; \
-+ (to).depth = (from).depth; \
-+ (to).data = compat_ptr((from).data); \
-+ fb_cmap_from_compat((to).cmap, (from).cmap)
-+
-+#endif /* CONFIG_COMPAT */
-+#endif /* __KERNEL__ */
-+
- /*
- * Frame buffer operations
- *
-@@ -514,6 +542,9 @@ struct fb_info {
- #define FBINFO_STATE_SUSPENDED 1
- u32 state; /* Hardware state i.e suspend */
- void *fbcon_par; /* fbcon use-only private area */
-+
-+ struct fb_image bgdecor;
-+
- /* From here on everything is device dependent */
- void *par;
- /* we need the PCI or similar aperture base/size not
-diff --git a/include/uapi/linux/fb.h b/include/uapi/linux/fb.h
-index 6cd9b198b7c6..a228440649fa 100644
---- a/include/uapi/linux/fb.h
-+++ b/include/uapi/linux/fb.h
-@@ -9,6 +9,23 @@
-
- #define FB_MAX 32 /* sufficient for now */
-
-+struct fbcon_decor_iowrapper {
-+ unsigned short vc; /* Virtual console */
-+ unsigned char origin; /* Point of origin of the request */
-+ void *data;
-+};
-+
-+#ifdef __KERNEL__
-+#ifdef CONFIG_COMPAT
-+#include <linux/compat.h>
-+struct fbcon_decor_iowrapper32 {
-+ unsigned short vc; /* Virtual console */
-+ unsigned char origin; /* Point of origin of the request */
-+ compat_uptr_t data;
-+};
-+#endif /* CONFIG_COMPAT */
-+#endif /* __KERNEL__ */
-+
- /* ioctls
- 0x46 is 'F' */
- #define FBIOGET_VSCREENINFO 0x4600
-@@ -36,6 +53,25 @@
- #define FBIOGET_DISPINFO 0x4618
- #define FBIO_WAITFORVSYNC _IOW('F', 0x20, __u32)
-
-+#define FBIOCONDECOR_SETCFG _IOWR('F', 0x19, struct fbcon_decor_iowrapper)
-+#define FBIOCONDECOR_GETCFG _IOR('F', 0x1A, struct fbcon_decor_iowrapper)
-+#define FBIOCONDECOR_SETSTATE _IOWR('F', 0x1B, struct fbcon_decor_iowrapper)
-+#define FBIOCONDECOR_GETSTATE _IOR('F', 0x1C, struct fbcon_decor_iowrapper)
-+#define FBIOCONDECOR_SETPIC _IOWR('F', 0x1D, struct fbcon_decor_iowrapper)
-+#ifdef __KERNEL__
-+#ifdef CONFIG_COMPAT
-+#define FBIOCONDECOR_SETCFG32 _IOWR('F', 0x19, struct fbcon_decor_iowrapper32)
-+#define FBIOCONDECOR_GETCFG32 _IOR('F', 0x1A, struct fbcon_decor_iowrapper32)
-+#define FBIOCONDECOR_SETSTATE32 _IOWR('F', 0x1B, struct fbcon_decor_iowrapper32)
-+#define FBIOCONDECOR_GETSTATE32 _IOR('F', 0x1C, struct fbcon_decor_iowrapper32)
-+#define FBIOCONDECOR_SETPIC32 _IOWR('F', 0x1D, struct fbcon_decor_iowrapper32)
-+#endif /* CONFIG_COMPAT */
-+#endif /* __KERNEL__ */
-+
-+#define FBCON_DECOR_THEME_LEN 128 /* Maximum length of a theme name */
-+#define FBCON_DECOR_IO_ORIG_KERNEL 0 /* Kernel ioctl origin */
-+#define FBCON_DECOR_IO_ORIG_USER 1 /* User ioctl origin */
-+
- #define FB_TYPE_PACKED_PIXELS 0 /* Packed Pixels */
- #define FB_TYPE_PLANES 1 /* Non interleaved planes */
- #define FB_TYPE_INTERLEAVED_PLANES 2 /* Interleaved planes */
-@@ -278,6 +314,29 @@ struct fb_var_screeninfo {
- __u32 reserved[4]; /* Reserved for future compatibility */
- };
-
-+#ifdef __KERNEL__
-+#ifdef CONFIG_COMPAT
-+struct fb_cmap32 {
-+ __u32 start;
-+ __u32 len; /* Number of entries */
-+ compat_uptr_t red; /* Red values */
-+ compat_uptr_t green;
-+ compat_uptr_t blue;
-+ compat_uptr_t transp; /* transparency, can be NULL */
-+};
-+
-+#define fb_cmap_from_compat(to, from) \
-+ (to).start = (from).start; \
-+ (to).len = (from).len; \
-+ (to).red = compat_ptr((from).red); \
-+ (to).green = compat_ptr((from).green); \
-+ (to).blue = compat_ptr((from).blue); \
-+ (to).transp = compat_ptr((from).transp)
-+
-+#endif /* CONFIG_COMPAT */
-+#endif /* __KERNEL__ */
-+
-+
- struct fb_cmap {
- __u32 start; /* First entry */
- __u32 len; /* Number of entries */
-diff --git a/kernel/sysctl.c b/kernel/sysctl.c
-index 9a85c7ae7362..9722dbea3675 100644
---- a/kernel/sysctl.c
-+++ b/kernel/sysctl.c
-@@ -155,6 +155,10 @@ static const int cap_last_cap = CAP_LAST_CAP;
- static unsigned long hung_task_timeout_max = (LONG_MAX/HZ);
- #endif
-
-+#ifdef CONFIG_FB_CON_DECOR
-+extern char fbcon_decor_path[];
-+#endif
-+
- #ifdef CONFIG_INOTIFY_USER
- #include <linux/inotify.h>
- #endif
-@@ -294,6 +298,15 @@ static struct ctl_table sysctl_base_table[] = {
- .mode = 0555,
- .child = dev_table,
- },
-+#ifdef CONFIG_FB_CON_DECOR
-+ {
-+ .procname = "fbcondecor",
-+ .data = &fbcon_decor_path,
-+ .maxlen = KMOD_PATH_LEN,
-+ .mode = 0644,
-+ .proc_handler = &proc_dostring,
-+ },
-+#endif
- { }
- };
-
diff --git a/sys-kernel/boest-v4.19.50/0013-4.19-4400_alpha-sysctl-uac.patch.patch b/sys-kernel/boest-v4.19.50/0013-4.19-4400_alpha-sysctl-uac.patch.patch
deleted file mode 100644
index 38276743..00000000
--- a/sys-kernel/boest-v4.19.50/0013-4.19-4400_alpha-sysctl-uac.patch.patch
+++ /dev/null
@@ -1,153 +0,0 @@
-From 2e2d67fb2726c890747723d54de74f36a11c94be Mon Sep 17 00:00:00 2001
-From: Mike Pagano <mpagano@gentoo.org>
-Date: Fri, 28 Sep 2018 08:20:14 -0400
-Subject: [PATCH 13/15] 4.19:4400_alpha-sysctl-uac.patch
-
----
- arch/alpha/Kconfig | 27 +++++++++++++++++++++
- arch/alpha/kernel/traps.c | 51 +++++++++++++++++++++++++++++++++++++++
- kernel/sysctl.c | 12 +++++++++
- 3 files changed, 90 insertions(+)
-
-diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig
-index 5b4f88363453..47268c1353de 100644
---- a/arch/alpha/Kconfig
-+++ b/arch/alpha/Kconfig
-@@ -681,6 +681,33 @@ config HZ
- default 1200 if HZ_1200
- default 1024
-
-+config ALPHA_UAC_SYSCTL
-+ bool "Configure UAC policy via sysctl"
-+ depends on SYSCTL
-+ default y
-+ ---help---
-+ Configuring the UAC (unaligned access control) policy on a Linux
-+ system usually involves setting a compile time define. If you say
-+ Y here, you will be able to modify the UAC policy at runtime using
-+ the /proc interface.
-+
-+ The UAC policy defines the action Linux should take when an
-+ unaligned memory access occurs. The action can include printing a
-+ warning message (NOPRINT), sending a signal to the offending
-+ program to help developers debug their applications (SIGBUS), or
-+ disabling the transparent fixing (NOFIX).
-+
-+ The sysctls will be initialized to the compile-time defined UAC
-+ policy. You can change these manually, or with the sysctl(8)
-+ userspace utility.
-+
-+ To disable the warning messages at runtime, you would use
-+
-+ echo 1 > /proc/sys/kernel/uac/noprint
-+
-+ This is pretty harmless. Say Y if you're not sure.
-+
-+
- source "drivers/pci/Kconfig"
- source "drivers/eisa/Kconfig"
-
-diff --git a/arch/alpha/kernel/traps.c b/arch/alpha/kernel/traps.c
-index bc9627698796..170a397b1183 100644
---- a/arch/alpha/kernel/traps.c
-+++ b/arch/alpha/kernel/traps.c
-@@ -105,6 +105,49 @@ static char * ireg_name[] = {"v0", "t0", "t1", "t2", "t3", "t4", "t5", "t6",
- "t10", "t11", "ra", "pv", "at", "gp", "sp", "zero"};
- #endif
-
-+#ifdef CONFIG_ALPHA_UAC_SYSCTL
-+
-+#include <linux/sysctl.h>
-+
-+static int enabled_noprint = 0;
-+static int enabled_sigbus = 0;
-+static int enabled_nofix = 0;
-+
-+struct ctl_table uac_table[] = {
-+ {
-+ .procname = "noprint",
-+ .data = &enabled_noprint,
-+ .maxlen = sizeof (int),
-+ .mode = 0644,
-+ .proc_handler = &proc_dointvec,
-+ },
-+ {
-+ .procname = "sigbus",
-+ .data = &enabled_sigbus,
-+ .maxlen = sizeof (int),
-+ .mode = 0644,
-+ .proc_handler = &proc_dointvec,
-+ },
-+ {
-+ .procname = "nofix",
-+ .data = &enabled_nofix,
-+ .maxlen = sizeof (int),
-+ .mode = 0644,
-+ .proc_handler = &proc_dointvec,
-+ },
-+ { }
-+};
-+
-+static int __init init_uac_sysctl(void)
-+{
-+ /* Initialize sysctls with the #defined UAC policy */
-+ enabled_noprint = (test_thread_flag (TS_UAC_NOPRINT)) ? 1 : 0;
-+ enabled_sigbus = (test_thread_flag (TS_UAC_SIGBUS)) ? 1 : 0;
-+ enabled_nofix = (test_thread_flag (TS_UAC_NOFIX)) ? 1 : 0;
-+ return 0;
-+}
-+#endif
-+
- static void
- dik_show_code(unsigned int *pc)
- {
-@@ -732,7 +775,12 @@ do_entUnaUser(void __user * va, unsigned long opcode,
- /* Check the UAC bits to decide what the user wants us to do
- with the unaliged access. */
-
-+#ifndef CONFIG_ALPHA_UAC_SYSCTL
- if (!(current_thread_info()->status & TS_UAC_NOPRINT)) {
-+#else /* CONFIG_ALPHA_UAC_SYSCTL */
-+ if (!(current_thread_info()->status & TS_UAC_NOPRINT) &&
-+ !(enabled_noprint)) {
-+#endif /* CONFIG_ALPHA_UAC_SYSCTL */
- if (__ratelimit(&ratelimit)) {
- printk("%s(%d): unaligned trap at %016lx: %p %lx %ld\n",
- current->comm, task_pid_nr(current),
-@@ -992,3 +1040,6 @@ trap_init(void)
- wrent(entSys, 5);
- wrent(entDbg, 6);
- }
-+#ifdef CONFIG_ALPHA_UAC_SYSCTL
-+ __initcall(init_uac_sysctl);
-+#endif
-diff --git a/kernel/sysctl.c b/kernel/sysctl.c
-index 9722dbea3675..739fc0f46f40 100644
---- a/kernel/sysctl.c
-+++ b/kernel/sysctl.c
-@@ -162,6 +162,11 @@ extern char fbcon_decor_path[];
- #ifdef CONFIG_INOTIFY_USER
- #include <linux/inotify.h>
- #endif
-+
-+#ifdef CONFIG_ALPHA_UAC_SYSCTL
-+extern struct ctl_table uac_table[];
-+#endif
-+
- #ifdef CONFIG_SPARC
- #endif
-
-@@ -1911,6 +1916,13 @@ static struct ctl_table debug_table[] = {
- .extra2 = &one,
- },
- #endif
-+#ifdef CONFIG_ALPHA_UAC_SYSCTL
-+ {
-+ .procname = "uac",
-+ .mode = 0555,
-+ .child = uac_table,
-+ },
-+#endif /* CONFIG_ALPHA_UAC_SYSCTL */
- { }
- };
-
diff --git a/sys-kernel/boest-v4.19.50/0014-4.19-4567_distro-Gentoo-Kconfig.patch.patch b/sys-kernel/boest-v4.19.50/0014-4.19-4567_distro-Gentoo-Kconfig.patch.patch
deleted file mode 100644
index 24c2f91e..00000000
--- a/sys-kernel/boest-v4.19.50/0014-4.19-4567_distro-Gentoo-Kconfig.patch.patch
+++ /dev/null
@@ -1,173 +0,0 @@
-From c46c6285a5aec9f42c0b2c71a8090a8837d1fa66 Mon Sep 17 00:00:00 2001
-From: Mike Pagano <mpagano@gentoo.org>
-Date: Fri, 28 Dec 2018 20:07:38 -0500
-Subject: [PATCH 14/15] 4.19:4567_distro-Gentoo-Kconfig.patch
-
----
- Kconfig | 2 +
- distro/Kconfig | 147 +++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 149 insertions(+)
-
-diff --git a/Kconfig b/Kconfig
-index 48a80beab685..a5ad73c66099 100644
---- a/Kconfig
-+++ b/Kconfig
-@@ -30,3 +30,5 @@ source "crypto/Kconfig"
- source "lib/Kconfig"
-
- source "lib/Kconfig.debug"
-+
-+source "distro/Kconfig"
-diff --git a/distro/Kconfig b/distro/Kconfig
-new file mode 100644
-index 000000000000..57379b7720de
---- /dev/null
-+++ b/distro/Kconfig
-@@ -0,0 +1,147 @@
-+menu "Gentoo Linux"
-+
-+config GENTOO_LINUX
-+ bool "Gentoo Linux support"
-+
-+ default y
-+
-+ help
-+ In order to boot Gentoo Linux a minimal set of config settings needs to
-+ be enabled in the kernel; to avoid the users from having to enable them
-+ manually as part of a Gentoo Linux installation or a new clean config,
-+ we enable these config settings by default for convenience.
-+
-+ See the settings that become available for more details and fine-tuning.
-+
-+config GENTOO_LINUX_UDEV
-+ bool "Linux dynamic and persistent device naming (userspace devfs) support"
-+
-+ depends on GENTOO_LINUX
-+ default y if GENTOO_LINUX
-+
-+ select DEVTMPFS
-+ select TMPFS
-+ select UNIX
-+
-+ select MMU
-+ select SHMEM
-+
-+ help
-+ In order to boot Gentoo Linux a minimal set of config settings needs to
-+ be enabled in the kernel; to avoid the users from having to enable them
-+ manually as part of a Gentoo Linux installation or a new clean config,
-+ we enable these config settings by default for convenience.
-+
-+ Currently this only selects TMPFS, DEVTMPFS and their dependencies.
-+ TMPFS is enabled to maintain a tmpfs file system at /dev/shm, /run and
-+ /sys/fs/cgroup; DEVTMPFS to maintain a devtmpfs file system at /dev.
-+
-+ Some of these are critical files that need to be available early in the
-+ boot process; if not available, it causes sysfs and udev to malfunction.
-+
-+ To ensure Gentoo Linux boots, it is best to leave this setting enabled;
-+ if you run a custom setup, you could consider whether to disable this.
-+
-+config GENTOO_LINUX_PORTAGE
-+ bool "Select options required by Portage features"
-+
-+ depends on GENTOO_LINUX
-+ default y if GENTOO_LINUX
-+
-+ select CGROUPS
-+ select NAMESPACES
-+ select IPC_NS
-+ select NET_NS
-+ select PID_NS
-+ select SYSVIPC
-+
-+ help
-+ This enables options required by various Portage FEATURES.
-+ Currently this selects:
-+
-+ CGROUPS (required for FEATURES=cgroup)
-+ IPC_NS (required for FEATURES=ipc-sandbox)
-+ NET_NS (required for FEATURES=network-sandbox)
-+ PID_NS (required for FEATURES=pid-sandbox)
-+ SYSVIPC (required by IPC_NS)
-+
-+
-+ It is highly recommended that you leave this enabled as these FEATURES
-+ are, or will soon be, enabled by default.
-+
-+menu "Support for init systems, system and service managers"
-+ visible if GENTOO_LINUX
-+
-+config GENTOO_LINUX_INIT_SCRIPT
-+ bool "OpenRC, runit and other script based systems and managers"
-+
-+ default y if GENTOO_LINUX
-+
-+ depends on GENTOO_LINUX
-+
-+ select BINFMT_SCRIPT
-+
-+ help
-+ The init system is the first thing that loads after the kernel booted.
-+
-+ These config settings allow you to select which init systems to support;
-+ instead of having to select all the individual settings all over the
-+ place, these settings allows you to select all the settings at once.
-+
-+ This particular setting enables all the known requirements for OpenRC,
-+ runit and similar script based systems and managers.
-+
-+ If you are unsure about this, it is best to leave this setting enabled.
-+
-+config GENTOO_LINUX_INIT_SYSTEMD
-+ bool "systemd"
-+
-+ default n
-+
-+ depends on GENTOO_LINUX && GENTOO_LINUX_UDEV
-+
-+ select AUTOFS4_FS
-+ select BLK_DEV_BSG
-+ select CGROUPS
-+ select CHECKPOINT_RESTORE
-+ select CRYPTO_HMAC
-+ select CRYPTO_SHA256
-+ select CRYPTO_USER_API_HASH
-+ select DEVPTS_MULTIPLE_INSTANCES
-+ select DMIID if X86_32 || X86_64 || X86
-+ select EPOLL
-+ select FANOTIFY
-+ select FHANDLE
-+ select INOTIFY_USER
-+ select IPV6
-+ select NET
-+ select NET_NS
-+ select PROC_FS
-+ select SECCOMP
-+ select SECCOMP_FILTER
-+ select SIGNALFD
-+ select SYSFS
-+ select TIMERFD
-+ select TMPFS_POSIX_ACL
-+ select TMPFS_XATTR
-+
-+ select ANON_INODES
-+ select BLOCK
-+ select EVENTFD
-+ select FSNOTIFY
-+ select INET
-+ select NLATTR
-+
-+ help
-+ The init system is the first thing that loads after the kernel booted.
-+
-+ These config settings allow you to select which init systems to support;
-+ instead of having to select all the individual settings all over the
-+ place, these settings allows you to select all the settings at once.
-+
-+ This particular setting enables all the known requirements for systemd;
-+ it also enables suggested optional settings, as the package suggests to.
-+
-+endmenu
-+
-+endmenu
diff --git a/sys-kernel/boest-v4.19.50/0015-WARNING.patch b/sys-kernel/boest-v4.19.50/0015-WARNING.patch
deleted file mode 100644
index a96fdbe9..00000000
--- a/sys-kernel/boest-v4.19.50/0015-WARNING.patch
+++ /dev/null
@@ -1,565 +0,0 @@
-From fb1ff1f2c7affff80187daf72c5d06f0afa0bc95 Mon Sep 17 00:00:00 2001
-From: Mike Pagano <mpagano@gentoo.org>
-Date: Fri, 15 Feb 2019 19:42:32 -0500
-Subject: [PATCH 15/15] WARNING This patch works with gcc versions 4.9+ and
- with kernel version 4.13+ and should NOT be applied when compiling on older
- versions of gcc due to key name changes of the march flags introduced with
- the version 4.9 release of gcc.[1]
-
-Use the older version of this patch hosted on the same github for older
-versions of gcc.
-
-FEATURES
-This patch adds additional CPU options to the Linux kernel accessible under:
- Processor type and features --->
- Processor family --->
-
-The expanded microarchitectures include:
-* AMD Improved K8-family
-* AMD K10-family
-* AMD Family 10h (Barcelona)
-* AMD Family 14h (Bobcat)
-* AMD Family 16h (Jaguar)
-* AMD Family 15h (Bulldozer)
-* AMD Family 15h (Piledriver)
-* AMD Family 15h (Steamroller)
-* AMD Family 15h (Excavator)
-* AMD Family 17h (Zen)
-* Intel Silvermont low-power processors
-* Intel 1st Gen Core i3/i5/i7 (Nehalem)
-* Intel 1.5 Gen Core i3/i5/i7 (Westmere)
-* Intel 2nd Gen Core i3/i5/i7 (Sandybridge)
-* Intel 3rd Gen Core i3/i5/i7 (Ivybridge)
-* Intel 4th Gen Core i3/i5/i7 (Haswell)
-* Intel 5th Gen Core i3/i5/i7 (Broadwell)
-* Intel 6th Gen Core i3/i5/i7 (Skylake)
-* Intel 6th Gen Core i7/i9 (Skylake X)
-
-It also offers to compile passing the 'native' option which, "selects the CPU
-to generate code for at compilation time by determining the processor type of
-the compiling machine. Using -march=native enables all instruction subsets
-supported by the local machine and will produce code optimized for the local
-machine under the constraints of the selected instruction set."[3]
-
-MINOR NOTES
-This patch also changes 'atom' to 'bonnell' in accordance with the gcc v4.9
-changes. Note that upstream is using the deprecated 'match=atom' flags when I
-believe it should use the newer 'march=bonnell' flag for atom processors.[2]
-
-It is not recommended to compile on Atom-CPUs with the 'native' option.[4] The
-recommendation is to use the 'atom' option instead.
-
-BENEFITS
-Small but real speed increases are measurable using a make endpoint comparing
-a generic kernel to one built with one of the respective microarchs.
-
-See the following experimental evidence supporting this statement:
-https://github.com/graysky2/kernel_gcc_patch
-
-REQUIREMENTS
-linux version >=4.13
-gcc version >=4.9
-
-ACKNOWLEDGMENTS
-This patch builds on the seminal work by Jeroen.[5]
-
-REFERENCES
-1. https://gcc.gnu.org/gcc-4.9/changes.html
-2. https://bugzilla.kernel.org/show_bug.cgi?id=77461
-3. https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html
-4. https://github.com/graysky2/kernel_gcc_patch/issues/15
-5. http://www.linuxforge.net/docs/linux/linux-gcc.php
----
- arch/x86/Kconfig.cpu | 235 +++++++++++++++++++++++++++++-----
- arch/x86/Makefile | 35 ++++-
- arch/x86/Makefile_32.cpu | 24 +++-
- arch/x86/include/asm/module.h | 40 ++++++
- 4 files changed, 297 insertions(+), 37 deletions(-)
-
-diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu
-index 638411f22267..1bbe88a2bfba 100644
---- a/arch/x86/Kconfig.cpu
-+++ b/arch/x86/Kconfig.cpu
-@@ -116,6 +116,7 @@ config MPENTIUMM
- config MPENTIUM4
- bool "Pentium-4/Celeron(P4-based)/Pentium-4 M/older Xeon"
- depends on X86_32
-+ select X86_P6_NOP
- ---help---
- Select this for Intel Pentium 4 chips. This includes the
- Pentium 4, Pentium D, P4-based Celeron and Xeon, and
-@@ -148,9 +149,8 @@ config MPENTIUM4
- -Paxville
- -Dempsey
-
--
- config MK6
-- bool "K6/K6-II/K6-III"
-+ bool "AMD K6/K6-II/K6-III"
- depends on X86_32
- ---help---
- Select this for an AMD K6-family processor. Enables use of
-@@ -158,7 +158,7 @@ config MK6
- flags to GCC.
-
- config MK7
-- bool "Athlon/Duron/K7"
-+ bool "AMD Athlon/Duron/K7"
- depends on X86_32
- ---help---
- Select this for an AMD Athlon K7-family processor. Enables use of
-@@ -166,12 +166,83 @@ config MK7
- flags to GCC.
-
- config MK8
-- bool "Opteron/Athlon64/Hammer/K8"
-+ bool "AMD Opteron/Athlon64/Hammer/K8"
- ---help---
- Select this for an AMD Opteron or Athlon64 Hammer-family processor.
- Enables use of some extended instructions, and passes appropriate
- optimization flags to GCC.
-
-+config MK8SSE3
-+ bool "AMD Opteron/Athlon64/Hammer/K8 with SSE3"
-+ ---help---
-+ Select this for improved AMD Opteron or Athlon64 Hammer-family processors.
-+ Enables use of some extended instructions, and passes appropriate
-+ optimization flags to GCC.
-+
-+config MK10
-+ bool "AMD 61xx/7x50/PhenomX3/X4/II/K10"
-+ ---help---
-+ Select this for an AMD 61xx Eight-Core Magny-Cours, Athlon X2 7x50,
-+ Phenom X3/X4/II, Athlon II X2/X3/X4, or Turion II-family processor.
-+ Enables use of some extended instructions, and passes appropriate
-+ optimization flags to GCC.
-+
-+config MBARCELONA
-+ bool "AMD Barcelona"
-+ ---help---
-+ Select this for AMD Family 10h Barcelona processors.
-+
-+ Enables -march=barcelona
-+
-+config MBOBCAT
-+ bool "AMD Bobcat"
-+ ---help---
-+ Select this for AMD Family 14h Bobcat processors.
-+
-+ Enables -march=btver1
-+
-+config MJAGUAR
-+ bool "AMD Jaguar"
-+ ---help---
-+ Select this for AMD Family 16h Jaguar processors.
-+
-+ Enables -march=btver2
-+
-+config MBULLDOZER
-+ bool "AMD Bulldozer"
-+ ---help---
-+ Select this for AMD Family 15h Bulldozer processors.
-+
-+ Enables -march=bdver1
-+
-+config MPILEDRIVER
-+ bool "AMD Piledriver"
-+ ---help---
-+ Select this for AMD Family 15h Piledriver processors.
-+
-+ Enables -march=bdver2
-+
-+config MSTEAMROLLER
-+ bool "AMD Steamroller"
-+ ---help---
-+ Select this for AMD Family 15h Steamroller processors.
-+
-+ Enables -march=bdver3
-+
-+config MEXCAVATOR
-+ bool "AMD Excavator"
-+ ---help---
-+ Select this for AMD Family 15h Excavator processors.
-+
-+ Enables -march=bdver4
-+
-+config MZEN
-+ bool "AMD Zen"
-+ ---help---
-+ Select this for AMD Family 17h Zen processors.
-+
-+ Enables -march=znver1
-+
- config MCRUSOE
- bool "Crusoe"
- depends on X86_32
-@@ -253,6 +324,7 @@ config MVIAC7
-
- config MPSC
- bool "Intel P4 / older Netburst based Xeon"
-+ select X86_P6_NOP
- depends on X86_64
- ---help---
- Optimize for Intel Pentium 4, Pentium D and older Nocona/Dempsey
-@@ -262,17 +334,9 @@ config MPSC
- using the cpu family field
- in /proc/cpuinfo. Family 15 is an older Xeon, Family 6 a newer one.
-
--config MCORE2
-- bool "Core 2/newer Xeon"
-- ---help---
--
-- Select this for Intel Core 2 and newer Core 2 Xeons (Xeon 51xx and
-- 53xx) CPUs. You can distinguish newer from older Xeons by the CPU
-- family in /proc/cpuinfo. Newer ones have 6 and older ones 15
-- (not a typo)
--
- config MATOM
- bool "Intel Atom"
-+ select X86_P6_NOP
- ---help---
-
- Select this for the Intel Atom platform. Intel Atom CPUs have an
-@@ -280,6 +344,99 @@ config MATOM
- accordingly optimized code. Use a recent GCC with specific Atom
- support in order to fully benefit from selecting this option.
-
-+config MCORE2
-+ bool "Intel Core 2"
-+ select X86_P6_NOP
-+ ---help---
-+
-+ Select this for Intel Core 2 and newer Core 2 Xeons (Xeon 51xx and
-+ 53xx) CPUs. You can distinguish newer from older Xeons by the CPU
-+ family in /proc/cpuinfo. Newer ones have 6 and older ones 15
-+ (not a typo)
-+
-+ Enables -march=core2
-+
-+config MNEHALEM
-+ bool "Intel Nehalem"
-+ select X86_P6_NOP
-+ ---help---
-+
-+ Select this for 1st Gen Core processors in the Nehalem family.
-+
-+ Enables -march=nehalem
-+
-+config MWESTMERE
-+ bool "Intel Westmere"
-+ select X86_P6_NOP
-+ ---help---
-+
-+ Select this for the Intel Westmere formerly Nehalem-C family.
-+
-+ Enables -march=westmere
-+
-+config MSILVERMONT
-+ bool "Intel Silvermont"
-+ select X86_P6_NOP
-+ ---help---
-+
-+ Select this for the Intel Silvermont platform.
-+
-+ Enables -march=silvermont
-+
-+config MSANDYBRIDGE
-+ bool "Intel Sandy Bridge"
-+ select X86_P6_NOP
-+ ---help---
-+
-+ Select this for 2nd Gen Core processors in the Sandy Bridge family.
-+
-+ Enables -march=sandybridge
-+
-+config MIVYBRIDGE
-+ bool "Intel Ivy Bridge"
-+ select X86_P6_NOP
-+ ---help---
-+
-+ Select this for 3rd Gen Core processors in the Ivy Bridge family.
-+
-+ Enables -march=ivybridge
-+
-+config MHASWELL
-+ bool "Intel Haswell"
-+ select X86_P6_NOP
-+ ---help---
-+
-+ Select this for 4th Gen Core processors in the Haswell family.
-+
-+ Enables -march=haswell
-+
-+config MBROADWELL
-+ bool "Intel Broadwell"
-+ select X86_P6_NOP
-+ ---help---
-+
-+ Select this for 5th Gen Core processors in the Broadwell family.
-+
-+ Enables -march=broadwell
-+
-+config MSKYLAKE
-+ bool "Intel Skylake"
-+ select X86_P6_NOP
-+ ---help---
-+
-+ Select this for 6th Gen Core processors in the Skylake family.
-+
-+ Enables -march=skylake
-+
-+config MSKYLAKEX
-+ bool "Intel Skylake X"
-+ select X86_P6_NOP
-+ ---help---
-+
-+ Select this for 6th Gen Core processors in the Skylake X family.
-+
-+ Enables -march=skylake-avx512
-+
- config GENERIC_CPU
- bool "Generic-x86-64"
- depends on X86_64
-@@ -287,6 +444,19 @@ config GENERIC_CPU
- Generic x86-64 CPU.
- Run equally well on all x86-64 CPUs.
-
-+config MNATIVE
-+ bool "Native optimizations autodetected by GCC"
-+ ---help---
-+
-+ GCC 4.2 and above support -march=native, which automatically detects
-+ the optimum settings to use based on your processor. -march=native
-+ also detects and applies additional settings beyond -march specific
-+ to your CPU, (eg. -msse4). Unless you have a specific reason not to
-+ (e.g. distcc cross-compiling), you should probably be using
-+ -march=native rather than anything listed below.
-+
-+ Enables -march=native
-+
- endchoice
-
- config X86_GENERIC
-@@ -311,7 +481,7 @@ config X86_INTERNODE_CACHE_SHIFT
- config X86_L1_CACHE_SHIFT
- int
- default "7" if MPENTIUM4 || MPSC
-- default "6" if MK7 || MK8 || MPENTIUMM || MCORE2 || MATOM || MVIAC7 || X86_GENERIC || GENERIC_CPU
-+ default "6" if MK7 || MK8 || MK8SSE3 || MK10 || MBARCELONA || MBOBCAT || MBULLDOZER || MPILEDRIVER || MSTEAMROLLER || MEXCAVATOR || MZEN || MJAGUAR || MPENTIUMM || MCORE2 || MNEHALEM || MWESTMERE || MSILVERMONT || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL || MSKYLAKE || MSKYLAKEX || MNATIVE || MATOM || MVIAC7 || X86_GENERIC || GENERIC_CPU
- default "4" if MELAN || M486 || MGEODEGX1
- default "5" if MWINCHIP3D || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODE_LX
-
-@@ -329,35 +499,36 @@ config X86_ALIGNMENT_16
-
- config X86_INTEL_USERCOPY
- def_bool y
-- depends on MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M586MMX || X86_GENERIC || MK8 || MK7 || MEFFICEON || MCORE2
-+ depends on MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M586MMX || X86_GENERIC || MK8 || MK8SSE3 || MK7 || MEFFICEON || MCORE2 || MK10 || MBARCELONA || MNEHALEM || MWESTMERE || MSILVERMONT || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL || MSKYLAKE || MSKYLAKEX || MNATIVE
-
- config X86_USE_PPRO_CHECKSUM
- def_bool y
-- depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MK8 || MVIAC3_2 || MVIAC7 || MEFFICEON || MGEODE_LX || MCORE2 || MATOM
-+ depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || MK7 || MK6 || MK10 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MK8 || MK8SSE3 || MVIAC3_2 || MVIAC7 || MEFFICEON || MGEODE_LX || MCORE2 || MNEHALEM || MWESTMERE || MSILVERMONT || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL || MSKYLAKE || MSKYLAKEX || MATOM || MNATIVE
-
- config X86_USE_3DNOW
- def_bool y
- depends on (MCYRIXIII || MK7 || MGEODE_LX) && !UML
-
--#
--# P6_NOPs are a relatively minor optimization that require a family >=
--# 6 processor, except that it is broken on certain VIA chips.
--# Furthermore, AMD chips prefer a totally different sequence of NOPs
--# (which work on all CPUs). In addition, it looks like Virtual PC
--# does not understand them.
--#
--# As a result, disallow these if we're not compiling for X86_64 (these
--# NOPs do work on all x86-64 capable chips); the list of processors in
--# the right-hand clause are the cores that benef