aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel
Commit message (Collapse)AuthorAgeFilesLines
* rtl8812au-ct: fix PKG_MIRROR_HASHDavid Bauer2021-02-241-1/+1
| | | | Signed-off-by: David Bauer <mail@david-bauer.net>
* kernel: 5.10: fix kmod build failuresIlya Lipnitskiy2021-02-236-16/+44
| | | | | | | | | | Modify existing modules to reflect their new location in Linux 5.10. Add missing dependenices. Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com> [enable CRYPTO_USER_API_ENABLE_OBSOLETE; add kmod-crypto-hash dependency to usb-net-rtl8152] Signed-off-by: David Bauer <mail@david-bauer.net>
* kernel: 5.10: fix rtl8812au-ct buildIlya Lipnitskiy2021-02-232-16/+9
| | | | | | | | Pull in upstream: https://github.com/greearb/rtl8812AU_8821AU_linux/commit/c8d243936fed0c5fe1d77a06b36d26f41c8c46f4 https://github.com/greearb/rtl8812AU_8821AU_linux/commit/1e9689c89fa627d2d764ba0e8359fd444fe8458f Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
* bcm63xx-cferam: select for bmips targetÁlvaro Fernández Rojas2021-02-221-1/+1
| | | | Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
* x86: add led driver for PC Engines APU1Andreas Eberlein2021-02-201-0/+16
| | | | | | | | | This driver adds the LED support for the PC Engines APU1. This integrates the Linux kernel driver and includes a patch to support newer firmware versions. Also the default LED configuration is updated to use the correct devices. Signed-off-by: Andreas Eberlein <foodeas@aeberlein.de>
* bcm27xx-gpu-fw: update to latest versionÁlvaro Fernández Rojas2021-02-181-15/+15
| | | | | | This is needed to add support for CM4 and RPI 400. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
* kernel: lantiq: fix Module.symvers handlingMathias Kresin2021-02-188-2/+16
| | | | | | | | | | | | | | | If an external module uses exported symbols from another external module, Kbuild needs to have full knowledge of all symbols to avoid spitting out warnings about undefined symbols. Use PKG_EXTMOD_SUBDIRS to point to the build directory which contains the Module.symvers. Pass KERNEL_MAKE_FLAGS to the external module build, to inject KBUILD_EXTRA_SYMBOLS. KBUILD_EXTRA_SYMBOLS holds a space separated list of Module.symvers, which list all exported symbols. Signed-off-by: Mathias Kresin <dev@kresin.me>
* kernel: add linux 5.10 supportFelix Fietkau2021-02-165-10/+20
| | | | Signed-off-by: Felix Fietkau <nbd@nbd.name>
* ath10k-ct: switch to 5.10Álvaro Fernández Rojas2021-02-167-103/+79
| | | | | | | Let's switch to 5.10 now that mac80211 has been updated. Runtime-tested on ipq806x (Netgear R7800). Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
* mac80211: Update to version 5.10.16-1Hauke Mehrtens2021-02-1512-185/+19
| | | | | | The removed patches were applied upstream. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* mac80211: Refresh patches againHauke Mehrtens2021-02-1514-110/+124
| | | | | | | A wrong quilt configuration was used last time. Fixes: ed1e234d87fc ("mac80211: refresh patches") Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* ath9k: fix transmitting to stations in dynamic SMPS modeFelix Fietkau2021-02-141-0/+49
| | | | | | | | | | When transmitting to a receiver in dynamic SMPS mode, all transmissions that use multiple spatial streams need to be sent using CTS-to-self or RTS/CTS to give the receiver's extra chains some time to wake up. This fixes the tx rate getting stuck at <= MCS7 for some clients, especially Intel ones, which make aggressive use of SMPS. Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mt76: update to the latest versionFelix Fietkau2021-02-142-86/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 261d184cebdc mt76: introduce mt76_vif data structure 50349a8664ef mt76: mt76_connac: create mcu library c88859180c51 mt76: mt76_connac: move hw_scan and sched_scan routine in mt76_connac_mcu module 9856236ab4f9 mt76: mt76_connac: move WoW and suspend code in mt76_connac_mcu module 2da59aacdd50 mt76: mt76_connac: move pm data struct in mt76_connac.h 16be142e40fe mt76: mt76_connac: move pm utility routines in mt76_connac_lib module c4ccfc66347d mt76: mt7921: add MAC support 8ecf3a50e7ad mt76: mt7921: add MCU support 92c1717f9a55 mt76: mt7921: add DMA support 1cecf9c3da8b mt76: mt7921: add EEPROM support a9e68410b9ba mt76: mt7921: add ieee80211_ops 39d6f4851b06 mt76: mt7921: introduce mt7921e support 9f37baecf5d6 mt76: mt7921: add debugfs support b16cf6e26998 mt76: mt7921: introduce schedule scan support 5aa798ee56c7 mt76: mt7921: introduce 802.11 PS support in sta mode e67d5216f16d mt76: mt7921: introduce support for hardware beacon filter cb99bf4655f9 mt76: mt7921: introduce beacon_loss mcu event 71f9f09ee987 mt76: mt7921: introduce PM support 2beb9c9530d4 mt76: mt7921: rely on mt76_connac_mcu common library 59e682497d12 mt76: mt7921: rely on mt76_connac_mcu module for sched_scan and hw_scan 1ccf6a9c60cd mt76: mt7921: rely on mt76_connac_mcu module for suspend and WoW support f8d1ec5e6e11 mt76: mt7921: introduce Runtime PM support 633a1cbd8f4e mt76: mt7921: introduce regdomain notifier support 0d95c6ad1745 mt76: mt7921: enable MSI interrupts 5f4f6792fb37 mt76: mt7921: add coredump support 47eb00e13450 mt76: mt7663: introduce coredump support 26658849a465 mt76: mt7615: fix key set/delete issues b0ba039bc2ef mt76: mt7615: fix tx skb dma unmap 892f74d37e88 mt76: mt7915: fix tx skb dma unmap 2659f6c6ea23 mt76: mt7615: support loading EEPROM for MT7613BE b09cc8644529 mt76: dma: do not report truncated frames to mac80211 ae6473f1d2af mt76: mt7921: enable random mac addr during scanning b59e3677476d mt76: mt7921: remove unnecessary variable 781911f167aa mt76: mt7921: removed unused definitions in mcu.h 994893d38d51 mt76: always use WTBL_MAX_SIZE for tlv allocation e6c0948ada07 mt76: mt76x0: disable GTK offloading a75302bcbfe1 mt76: connac: always check return value from mt76_connac_mcu_alloc_wtbl_req 8da10d6f9251 mt76: mt7915: always check return value from mt7915_mcu_alloc_wtbl_req 80a87412e9e9 mt76: mt7915: fix uninitialized variable in mt7915_tm_set_tx_cont() c7d98fc35865 mt76: use PCI_VENDOR_ID_MEDIATEK to avoid open coded b5228e75e422 mt76: mt7921: switch to new api for hardware beacon filter 73fce2cbfa41 mt76: connac: fix up the setting for ht40 mode in mt76_connac_mcu_uni_add_bss 2e2cb71901e8 mt76: mt7921: fixup rx bitrate statistics 2d7b1d72b43b mt76: mt7921: add flush operation 96b4c9874e16 mt76: mt7921: fix uninitialized pointer access in mt7921_get_wtbl_info 4492d801cbb5 mt76: connac: update sched_scan cmd usage 200c1b1c234b mac80211: rename csa counters to countdown counters 0d7564d0d899 mt76: add support for 802.3 rx frames 4c0811c647b9 mt76: mt7915: enable hw rx-amsdu de-aggregation 4b7a68634ff6 mt76: mt7915: add rx checksum offload support 289cd7804587 mt76: mt7915: add support for rx decapsulation offload Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mac80211: fix a regression in processing rx statsFelix Fietkau2021-02-141-0/+28
| | | | | | | A logic error caused rx rate update to be missed for any driver not using fast-rx Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mac80211: refresh patchesFelix Fietkau2021-02-1412-102/+92
| | | | Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mac80211: add minstrel performance improvementsFelix Fietkau2021-02-142-0/+181
| | | | | | Reduce fluctuations in rate selection / statistics Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mac80211: add decapsulation offload supportFelix Fietkau2021-02-143-2/+593
| | | | | | | On hardware that supports this, this will improve performance by passing 802.3 frames from the hardware to the stack Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mac80211: fix a corner case in encapsulation offload supportFelix Fietkau2021-02-141-0/+53
| | | | | | Fix encryption key selection with WEP Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mac80211: add fq performace improvementsFelix Fietkau2021-02-144-1/+554
| | | | | | Improves performance under load Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mac80211: Update to version 5.10-rc6-1Hauke Mehrtens2021-02-1455-3213/+211
| | | | | | | | | The removed patches were applied upstream. This adapts ath10k-ct and mt76 to changed APIs. nl80211.h in iw is updated to match the version from backports. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* mac80211: Update to version 5.9.12-1Hauke Mehrtens2021-02-1453-1450/+177
| | | | | | | | | | | The removed patches were applied upstream. Remove the 300-mac80211-optimize-skb-resizing.patch. This patch was not applied upstream, but it conflicts with upstream changes and needs bigger changes. It was applied with Felix to remove this patch for now. It should be reworked and then send upstream later. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* ltq-ptm: Update VR9 PTM firmwareAntti Seppälä2021-02-128-312/+439
| | | | | | | | | | | | | | | After looking at various vendor GPL source code dumps I discovered that some of them contain updated versions of ltq-ptm driver when compared to what openwrt has. The driver update is mostly cursory (simple changes to comments, whitespace, formatting etc.) or adds debug features not used by openwrt. However the updated driver also contains a later version of PTM firmware which is extracted and included in this commit along with bits to correctly identify its version when driver loads. Signed-off-by: Antti Seppälä <a.seppala@gmail.com>
* acx-mac80211: replace dead URLs with OpenWrt CDNIlya Lipnitskiy2021-02-071-9/+9
| | | | | | | | erley.org no longer exists; attempting to connect to it during package download results in lengthy timeouts. Use the new OpenWrt CDN alias to download from reliable OpenWrt mirrors. Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
* treewide: unify OpenWrt hosted source via @OPENWRTPaul Spooren2021-02-057-9/+9
| | | | | | | | | | | Multiple sources are hosted on OpenWrts source server only. The source URLs to point to the server vary based on different epochs in OpenWrts history. Replace all by @OPENWRT which is an "empty" mirror, therefore using the fallback servers sources.cdn.openwrt.org and sources.openwrt.org. Signed-off-by: Paul Spooren <mail@aparcar.org>
* mac80211: fix station rate table updates on assocFelix Fietkau2021-02-011-0/+38
| | | | | | | | If the driver uses .sta_add, station entries are only uploaded after the sta is in assoc state. Fix early station rate table updates by deferring them until the sta has been uploaded Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mac80211: fix incorrect parameterDavid Bauer2021-02-011-1/+1
| | | | | | | he_mu_beamformer only accepts values of 0 and 1 according to the hostapd documentation. Signed-off-by: David Bauer <mail@david-bauer.net>
* mac80211: convert UniFi Outdoor+ HSR support to OFDavid Bauer2021-02-011-25/+10
| | | | | | | | Enable support for the Ubiquiti UniFi Outdoor+ RF filter via device-tree. The old way of using platform data is not required anymore, as it was only used on the now removed ar71xx target. Signed-off-by: David Bauer <mail@david-bauer.net>
* ath10k-ct: update to latest versionMichael Yartys2021-01-291-3/+3
| | | | | | | | | Changelog: - ath10k-ct: Pull in some upstream patches. Runtime-tested on ipq806x (Netgear R7800). Signed-off-by: Michael Yartys <michael.yartys@gmail.com>
* mt76: update to the latest versionFelix Fietkau2021-01-271-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | 65abbcd9f6fb mt76: usb: process URBs with status EPROTO properly 3199ef5fa35e mt76: mt7615: set mcu country code in mt7615_mcu_set_channel_domain() 5c86d5bb079b mt76: mt7915: Remove unneeded semicolon 3f546330b59d mt76: mt7915: support TxBF for DBDC 032ad7e02545 mt76: mt7615: unify init work cc3f23d1e654 mt76: mt7915: bring up the WA event rx queue for band1 fa3d334a0e22 mt76: fix crash on tearing down ext phy c4c9c402d14a mt76: mt7915: fix vif sta index for DBDC eca2f0ec0d4c mt76: mt7915: fix command id for txbf action c828124ef9a5 mt76: mt7915: add support for using a secondary PCIe link for gen1 dbaf0f4679f3 mt76: mt7915: make vif index per adapter instead of per band fb3e5ce1eb00 mt76: move vif_mask back from mt76_phy to mt76_dev be2bea66d6e3 mt76: mt7915: detect wrong nss eeprom parameter on dbdc cards 8dc5d4a0da7c Revert "mt76: mt7915: fix vif sta index for DBDC" 8c796a33781c mt76: mt7915: only set int1 when using the second hif 4eb5caaf6cc1 mt76: reduce q->lock hold time 0714890bf0fd mt76: mt7615: reduce VHT maximum MPDU length 2f85aa5cbc62 mt76: mt7915: avoid writes to MT_PCIE_RECOG_ID when not using gen1 devices 8696919d9aae mt76: dma: fix a possible memory leak in mt76_add_fragment() Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mac80211: fix an uninitialized variable warningFelix Fietkau2021-01-265-48/+51
| | | | Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mac80211: minstrel_ht: fix regression in the max_prob_rate fixFelix Fietkau2021-01-261-0/+23
| | | | Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mac80211: remove accidentally duplicated line in minstrel_ht patchFelix Fietkau2021-01-261-2/+1
| | | | Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mac80211: add significant minstrel_ht performance improvementsFelix Fietkau2021-01-256-0/+1670
| | | | | | Completely redesign the rate sampling approach Signed-off-by: Felix Fietkau <nbd@nbd.name>
* bcm63xx-cfe: enable package for bcm4908Rafał Miłecki2021-01-181-2/+2
| | | | | | bcm4908 target needs to include cferam images in firmware files too Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
* kernel: drop empty kmod-ledtrig-* packagesSungbo Eo2021-01-151-61/+0
| | | | | | | | | | | | | | The following four led triggers are enabled in generic config. * kmod-ledtrig-default-on * kmod-ledtrig-heartbeat * kmod-ledtrig-netdev * kmod-ledtrig-timer Drop the packages and remove them from DEVICE_PACKAGES. There's no other package depending on them in this repo. Signed-off-by: Sungbo Eo <mans0n@gorani.run>
* kernel: update kmod-thermal packageSungbo Eo2021-01-151-7/+4
| | | | | | | | | | | CONFIG_THERMAL option was changed to boolean in upstream linux commit 554b3529fe01 ("thermal/drivers/core: Remove the module Kconfig's option"). Switch it to 'y' and remove FILES and AUTOLOAD for non-existant module file. And update the descripton text for the package as in upstream linux commit eb8504620381 ("thermal: Rephrase the Kconfig text for thermal"). Signed-off-by: Sungbo Eo <mans0n@gorani.run>
* mac80211: fix rounding error in minstrel_ht throughput calculationFelix Fietkau2021-01-151-0/+34
| | | | | | Fixes rate selection with lower data rates Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mac80211: fix an uninitialized stack variable in the minstrel updateFelix Fietkau2021-01-142-3/+11
| | | | | | It can lead to out-of-bounds access and invalid rates Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mt76: update to the latest versionFelix Fietkau2021-01-142-28/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a46f9a9160e9 mt76: mt7915: add vif check in mt7915_update_vif_beacon() 27ad12352ac9 mt76: mt7615: add vif check in mt7615_update_vif_beacon() 0a449cef024e mt76: mt7915: fix MT_CIPHER_BIP_CMAC_128 setkey eacd2d493c61 mt76: mt7915: reset token when mac_reset happens e4b23301e6c9 mt76: mt7615: reset token when mac_reset happens 6e22bbfe0360 mt76: mt7615: convert comma to semicolon 37865118ae2d mt76: mt7915: convert comma to semicolon 742c36b2e527 mt76: mt7915: run mt7915_configure_filter holding mt76 mutex a515727e8423 mt76: mt7915: add support for flash mode b6f7b3da5216 mt76: mt7915: fix endianness warning in mt7915_mcu_set_radar_th 062f3f4f06a2 mt76: mt7915: simplify mt7915_mcu_send_message routine dbba9b993300 mt76: mt7915: drop zero-length packet to avoid Tx hang 36a745d0f71c mt76: Fix queue ID variable types after mcu queue split a4539760b0b1 mt7915: update the testmode support to the latest upstream patch 64bd6f87e4c2 mt7915: fix crash on failure in pci_set_dma_mask c202ace409e0 mt76: remove unused variable q d1b827781f84 mt76: mt7915: add partial add_bss_info command on testmode init a897a69769f5 mt76: testmode: introduce dbdc support b44472e99822 mt76: testmode: move mtd part to mt76_dev 45e27e6cdc12 mt76: mt7915: move testmode data from dev to phy b6673b005770 mt76: mt7615: move testmode data from dev to phy abdd471e9f2d mt76: mt7915: fix ht mcs in mt7915_mcu_get_rx_rate() d679b56b9585 mt76: move mac_work in mt76_core module 36cd48ab4454 mt76: move chainmask in mt76_phy 89a6781ed045 mt76: mt7915: force ldpc for bw larger than 20MHz in testmode 3d0834e78005 mt76: testmode: add support to set user-defined spe index cc05f4679667 mt76: testmode: add attributes for ipg related parameters 77b18b16fe16 mt76: testmode: make tx queued limit adjustable 6365a58573cb mt76: mt7915: split edca update function e56282bf67f6 mt76: mt7915: add support for ipg in testmode 6fa642903e4e mt76: mt7915: calculate new packet length when tx_time is set in testmode 729ec5daeba5 mt76: mt7915: clean hw queue before starting new testmode tx 981443da5cf7 mt76: testmode: add a new state for continuous tx 4793fc9b3d48 mt76: mt7915: rework set state part in testmode 11a1e86e5946 mt76: mt7915: add support for continuous tx in testmode 364affef82fc mt76: mt7615: mt7915: disable txpower sku when testmode enabled 9fc19db51293 mt76: mt7915: simplify peer's TxBF capability check 6377b7f330be mt76: mt7915: add implicit Tx beamforming support 983091a40633 mt76: mt7915: fix MESH ifdef block bbb7a9e77751 mt76: mt76u: fix NULL pointer dereference in mt76u_status_worker a28a8dd2f7de mt76: usb: fix crash on device removal 9c312f2ce2c5 mt76: mt7915: rework mcu API e6fe82acb111 mt76: mt7915: disable RED support in the WA firmware 25d7429bdc41 mt76: mt7915: fix eeprom parsing for DBDC 7a93026dd3dc mt76: mt7915: fix eeprom DBDC band selection 4c8a09cc45d0 tools: Set mode for new file /tmp/mt76-test-%s Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mac80211: improve error handling when adding hostapd configDaniel Golle2021-01-142-8/+8
| | | | Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* nf-conntrack: allow querying conntrack info in nfqueueEtan Kissling2021-01-141-1/+1
| | | | | | | | | | | This allows libnetfilter_queue to access connection tracking information by requesting NFQA_CFG_F_CONNTRACK. Connection tracking information is provided in the NFQA_CT attribute. CONFIG_NETFILTER_NETLINK_GLUE_CT enables the interaction between nf_queue and nf_conntrack_netlink. Without this option, trying to access connection tracking information results in "Operation not supported". Signed-off-by: Etan Kissling <etan_kissling@apple.com>
* mac80211: use hostapd PID returned from config_addDaniel Golle2021-01-102-3/+2
| | | | | | | Use PID returned from config_add instead of querying procd when adding configuration to hostapd. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* kernel: add hid-cp2112 driver supportPawel Dembicki2021-01-071-0/+17
| | | | | | | | This patch adds kernel module for Silicon Labs CP2112 HID USB to SMBus Master Bridge. This is a HID device driver which registers as an i2c adapter and gpiochip to expose these functions of the CP2112. Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
* mac80211: Add wil6210 driverRobert Marko2021-01-051-3/+15
| | | | | | | | | | This patch adds wil6210 driver for Wilocity/QCA based 802.11ad PCI cards. Driver uses cfg80211 and nl80211 but not mac80211. Integration for UCI and LuCI will come in other patches. Signed-off-by: Robert Marko <robimarko@gmail.com>
* mac80211: add 802.11ad-supportGary Cooper2021-01-052-1/+7
| | | | | | This adds logic to properly populate defaults in /etc/config/wireless. Signed-off-by: Gary Cooper <gaco@bitmessage.de>
* mac80211: replace legacy minstrel with minstrel_ht, improve rate selectionFelix Fietkau2021-01-038-0/+2586
| | | | | | | Legacy minstrel is essentially unmaintained and was showing poor performance Replace it with minstrel_ht and improve rate selection and sampling behavior Signed-off-by: Felix Fietkau <nbd@nbd.name>
* kernel/modules: remove fake users from udptunnel{4,6}Rui Salvaterra2021-01-011-6/+2
| | | | | | | | | | Since we're now able to select CONFIG_NET_UDP_TUNNEL at will, drop the fake dependencies. This is a partial revert of commit d7e040f8bccec06b64c82963be6435101423dbf1 "kernel: add fake users for udptunnel and iptunnel modules". Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
* cryptodev-linux: bump to 1.11, fix build against kernel 5.10.Stijn Segers2021-01-013-53/+35
| | | | | | | This patch bumps cryptodev-linux to the latest stable release (1.11) and fixes compilation against the next LTS (and likely OpenWrt) kernel 5.10. Signed-off-by: Stijn Segers <foss@volatilesystems.org>
* hostapd: do not restart hostapd instance on wireless restartsFelix Fietkau2020-12-311-1/+1
| | | | | | Add the flag that prevents netifd from killing hostapd/wpa_supplicant Signed-off-by: Felix Fietkau <nbd@nbd.name>
* bcm63xx-cfe: update to the latest masterRafał Miłecki2020-12-281-4/+4
| | | | | | | | | | c0b3691 netgear: r8000p: add cferam file ae870eb asus: gt-ac5300: add cferam file 424b57c sfr: neufbox-6v-foxconn-r0: update cferam file 81a2a8b sfr: neufbox-6v-foxconn-r0: add cferam file 2730361 sercomm: h500-s: add cferam file Signed-off-by: Rafał Miłecki <rafal@milecki.pl>