aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* firmware: ath10k-firmware: update QCA9887 firmware to 10.2.4-1.0-00033Christian Lamparter2018-01-181-1/+1
| | | | | | | This patch updates ath10k-firmware to use the firmware-5.bin_10.2.4-1.0-00033 firmware for the QCA9887. Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* firmware: ath10k-firmware: update QCA9888 firmware to 10.4-3.4-00104Christian Lamparter2018-01-181-1/+1
| | | | | | | This patch updates ath10k-firmware to use the firmware-5.bin_10.4-3.4-00104 firmware for the QCA9888. Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* firmware: ath10k-firmware: update QCA9984 firmware to 10.4-3.4-00104Christian Lamparter2018-01-181-1/+1
| | | | | | | This patch updates ath10k-firmware to use the firmware-5.bin_10.4-3.4-00104 firmware for the QCA9984. Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* firmware: ath10k-firmware: update QCA4019 firmware to 10.4-3.4-00104Christian Lamparter2018-01-181-1/+1
| | | | | | | This patch updates ath10k-firmware to use the firmware-5.bin_10.4-3.4-00104 firmware for the QCA4019. Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* firmware: ath10k-firmware: update to 2017-12-20Christian Lamparter2018-01-181-3/+3
| | | | | | | This update automatically includes a new firmware for the QCA6174: firmware-6.bin_WLAN.RM.4.4.1-00079-QCARMSWPZ-1 Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* odhcp6c: add sendopts config support and update to latest git HEADHans Dedecker2018-01-182-5/+11
| | | | | | | | | | | | | | | | | | | | | Add sendopts config support allowing to add options in sent DHCPv6 packets. Options can be configured as follows : uci set network.wan6.sendopts="sntpservers:3001:3001::1,3001:3001::2 11:00000000000000000000006674692F 0x3e8:ABCDEF" Based on a patch by Frank Andrieu <fandrieu@gmail.com> See https://git.openwrt.org/?p=project/odhcp6c.git;a=commit;h=510aaf6d528210c5e8a6159f9b80b32615e88c5f for a more detailed description. Latest git changes : 1f93bd4 dhcpv6: rework option passthrough logic a477e95 odhcp6c: rework userclass and vendorclass command handling 510aaf6 odhcp6c: add -x opt:val support ab75be1 treewide: update copyrights to 2018 f3a4609 odhcp6c: let odhcp6c_add_state return a success/failure indication Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
* ramips: tl-wr840n-v5: increase firmware partition for 4Mmtk layotSerg Studzinskii2018-01-183-9/+3
| | | | | | | | | | | According to console log during TP-Link TL-WR840N v5 OEM firmware update procedure 0x3e0000-0x3f0000 64kB "config" partition, which is used to store router's configuration settings, is erased and recreated again during every OEM firmware update procedure, thus does not contain any valuable factory data. So it is conviniant to use this extra 64kB erase block for jffs overlay due limited flash size on this device like it used on TP-Link's ar71xx boards. Signed-off-by: Serg Studzinskii <serguzhg@gmail.com>
* tools/mpfr: update to 4.0.0Hannu Nyman2018-01-183-10/+10
| | | | | | Update mpfr to 4.0.0 Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
* tools/mpc: Update to 1.1.0Hannu Nyman2018-01-181-2/+2
| | | | | | | | Update mpc to 1.1.0 (note: adds compatibility with mpfr 4.0.0) Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
* util-linux: add fstrim supportDirk Brenken2018-01-181-2/+21
| | | | | | This PR adds optional fstrim support Signed-off-by: Dirk Brenken <dev@brenken.org>
* kirkwood: fix sysupgrade尤晓杰2018-01-181-1/+1
| | | | | | | | | | | | The platform_check_image() stub need to return 0 for success, otherwise the sysupgrade will fail with: Image check 'platform_check_image' failed. Fixes: aa6f5f1787a6 ("kirkwood: use image metadata") Signed-off-by: 尤晓杰 <yxj790222@163.com> [reworded commit message} Signed-off-by: Mathias Kresin <dev@kresin.me>
* ipq806x: fix ZyXEL NBG6817 sysupgradeMathias Kresin2018-01-181-7/+10
| | | | | | | | | | | Use the first found directory in the tar archive instead of relying on a directory named according to the userspace boardname. It allows to change the boardname without adding another compatibility layer to the zyxel sysupgrade. Fixes: 33f09cf15178 ("ipq806x: convert to dt-based board-detection") Signed-off-by: Mathias Kresin <dev@kresin.me>
* base-files: gpio switch: check if direction can be setMathias Kresin2018-01-182-3/+10
| | | | | | | | | | | | Obviously not all GPIO controller allow to change the direction. The issue is around since the beginning of the script but only due to the recent changes error messages are more visible. Add a check if a change of the direction is supported by the GPIO controller and fallback to setting only the value if not. Fixes: FS#1271 Signed-off-by: Mathias Kresin <dev@kresin.me>
* base-files: gpio switch: fix inverted logicMathias Kresin2018-01-181-1/+1
| | | | | | | | | GPIOs are exported as active high to the sysfs, hence the logic need to be inverted. Fixes: e66c47fb14f5 ("base-files: gpio switch: set output value with direction") Signed-off-by: Mathias Kresin <dev@kresin.me>
* ubox: update to latest git HEADHans Dedecker2018-01-171-3/+3
| | | | | | e7a63fb ubox: Remove unnecessary memset calls Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
* ubus: fix wrong PKG_SOURCE_DATEHans Dedecker2018-01-171-1/+1
| | | | | | Fix wrong PKG_SOURCE_DATE introduced in e14cac0 Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
* ubus: update to latest git HEADHans Dedecker2018-01-171-3/+3
| | | | | | | | 5bae22e ubus/lua: pass notification name to callback 212ceb1 valgrind complained about these d57907c fix invalid close() call Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
* ath9k: discard undersized packetsFelix Fietkau2018-01-171-0/+25
| | | | | | | | Sometimes the hardware will push small packets that trigger a WARN_ON in mac80211. Discard them early to avoid this issue. Reported-by: Stijn Tintel <stijn@linux-ipv6.be> Signed-off-by: Felix Fietkau <nbd@nbd.name>
* build: remove use of STAGING_DIR_HOST/usr (fixes cmake build error on macOS)Felix Fietkau2018-01-171-2/+2
| | | | | | | | This directory is never created, nor is it used anywhere. Using it in HOST_LDFLAGS causes a linker warning to be emitted on macOS, which messes with cmake configure tests. Signed-off-by: Felix Fietkau <nbd@nbd.name>
* .gitignore: add .project & .cproject for eclipse usersCatrinel Catrinescu2018-01-171-0/+2
| | | | | | | | For eclipse users, .project is always created inside the project. For users of CDT within Eclipse, add also .cproject, thanks Dirk Feytons. Signed-off-by: Catrinel Catrinescu <cc@80211.de>
* ar71xx: drop mdio-gpio.h include from mach-om5pacv2.cGabor Juhos2018-01-171-6/+0
| | | | | | | | | | | | | | The setup code of the OpenMesh OM5P ACv2 device uses nothing from the mdio-gpio.h header, so remove the inclusion of that. Also remove the kernel version check which is needed only because the mdio-gpio.h header exists in a different path in older kernels. Compile tested only. Cc: Sven Eckelmann <sven.eckelmann@openmesh.com> Signed-off-by: Gabor Juhos <juhosg@freemail.hu>
* cns3xxx: switch to kernel 4.14Koen Vandeputte2018-01-171-1/+1
| | | | Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* cns3xxx: refresh patchesKoen Vandeputte2018-01-178-21/+21
| | | | Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* cns3xxx: remove deprecated uart flagsKoen Vandeputte2018-01-171-0/+29
| | | | | | | | Flag UPF_NO_TXEN_TEST is deprecated. Remove it. Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* cns3xxx: fix ethernet IRQ imbalance in 4.14Koen Vandeputte2018-01-171-0/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Kernel 4.14 contains more warnings regarding NAPI usage, which showed following warning: [ 4016.420000] ------------[ cut here ]------------ [ 4016.430000] WARNING: CPU: 1 PID: 14 at kernel/irq/manage.c:525 __enable_irq+0x3c/0x78 [ 4016.440000] Unbalanced enable for IRQ 51 [ 4016.440000] Modules linked in: ath9k ath9k_common pppoe ppp_async ath9k_hw ath pppox ppp_generic nf_conntrack_ipv6 mac80211 iptable_nat ipt_REJECT ipt_MASQUERADE cfg80211 xt_time xt_tcpudp xt_state xt_nat xt_multiport xt_mark xt_mac xt_limit xt_conntrack xt_comment xt_TCPMSS xt_REDIRECT xt_LOG slhc nf_reject_ipv4 nf_nat_redirs [ 4016.500000] CPU: 1 PID: 14 Comm: ksoftirqd/1 Tainted: G W 4.14.11 #0 [ 4016.500000] Hardware name: Gateworks Corporation Laguna Platform [ 4016.510000] Backtrace: [ 4016.510000] [<c010a28c>] (dump_backtrace) from [<c010a56c>] (show_stack+0x18/0x1c) [ 4016.520000] r7:c059df4b r6:00000000 r5:60000093 r4:00000000 [ 4016.530000] [<c010a554>] (show_stack) from [<c048b04c>] (dump_stack+0x94/0xb4) [ 4016.530000] [<c048afb8>] (dump_stack) from [<c011760c>] (__warn+0xc8/0xf8) [ 4016.540000] r7:c059df4b r6:c015144c r5:00000000 r4:cf863e08 [ 4016.550000] [<c0117544>] (__warn) from [<c011767c>] (warn_slowpath_fmt+0x40/0x48) [ 4016.550000] r9:cf863eb0 r8:00000036 r7:00000000 r6:c0636360 r5:00000033 r4:cf80a500 [ 4016.560000] [<c0117640>] (warn_slowpath_fmt) from [<c015144c>] (__enable_irq+0x3c/0x78) [ 4016.570000] r3:00000033 r2:c059e0c5 [ 4016.570000] [<c0151410>] (__enable_irq) from [<c01514ec>] (enable_irq+0x64/0x7c) [ 4016.580000] [<c0151488>] (enable_irq) from [<c0335c14>] (eth_poll+0x28c/0x558) [ 4016.590000] r5:d08926c0 r4:cf894488 [ 4016.590000] [<c0335988>] (eth_poll) from [<c03b1718>] (net_rx_action+0xfc/0x2e8) [ 4016.600000] r10:cf863eb8 r9:cf863eb0 r8:00000001 r7:0f7b5000 r6:c0636360 r5:cfdeb360 [ 4016.610000] r4:cf894488 [ 4016.610000] [<c03b161c>] (net_rx_action) from [<c0101510>] (__do_softirq+0xe0/0x228) [ 4016.620000] r10:00000100 r9:c070204c r8:c0702040 r7:00000003 r6:00000008 r5:40000003 [ 4016.620000] r4:cf862000 [ 4016.630000] [<c0101430>] (__do_softirq) from [<c011ae28>] (run_ksoftirqd+0x34/0x58) [ 4016.630000] r10:c0133964 r9:00000000 r8:00000001 r7:00000000 r6:c070b44c r5:cf862000 [ 4016.640000] r4:cf8037e0 [ 4016.640000] [<c011adf4>] (run_ksoftirqd) from [<c0133adc>] (smpboot_thread_fn+0x178/0x190) [ 4016.650000] [<c0133964>] (smpboot_thread_fn) from [<c013099c>] (kthread+0x11c/0x138) [ 4016.660000] r9:cf8037e0 r8:cf802cdc r7:cf839df8 r6:cf803800 r5:00000000 r4:cf802cc0 [ 4016.670000] [<c0130880>] (kthread) from [<c0107218>] (ret_from_fork+0x14/0x3c) [ 4016.680000] r10:00000000 r9:00000000 r8:00000000 r7:00000000 r6:00000000 r5:c0130880 [ 4016.680000] r4:cf803800 r3:cf862000 [ 4016.690000] ---[ end trace 51114df08f429115 ]--- This is triggered by calling eth_schedule_poll(sw) after the IRQ has been re-enabled. Rework the network code to only enable IRQ's again if NAPI agrees it's safe to do so. Also only re-enable IRQ *after* cleaning up the RX ring and re-enabling DMA, which otherwise resulted in ugly warnings regarding dirty page fragments. These popped up nearly immediately when building the kernel with O2 iso Os. --> Note that this change fixes stability issues, at the cost of ~8% throughput performance. While at it, also change the iface name being used in warning prints, making it more obvious: "switch%d" --> "cns3xxx_eth" The changes have been tested on 4 boards, each moving ~30TB of data Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* cns3xxx: update patches for 4.14Koen Vandeputte2018-01-176-64/+85
| | | | Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* cns3xxx: refresh kernel 4.14 configKoen Vandeputte2018-01-171-7/+97
| | | | Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* cns3xxx: copy patches for kernel 4.14Koen Vandeputte2018-01-1724-0/+1170
| | | | Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* cns3xxx: copy config for kernel 4.14Koen Vandeputte2018-01-171-0/+300
| | | | Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* config: don't define the same symbol twiceKoen Vandeputte2018-01-171-1/+0
| | | | | | | | | | | | | | | | | In commit fce35bce0f6e ("config: support new symbol intro'd in kernel 4.12") I forgot to remove the initial debug test line. This clearly is wrong as the same symbol is defined conditionally in the line below as it should be. I looked over it as I just checked if the symbol was present now upon testing it. Fixes: fce35bce0f6e ("config: support new symbol intro'd in kernel 4.12") Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* ar71xx: fix format of the 701-MIPS-ath79-add-routerboard-detection patchesGabor Juhos2018-01-172-2/+2
| | | | | | | | | | | | Commit e15c63a37574 ("ar71xx: add support for MikroTik RouterBOARD wAP G-5HacT2HnD (wAP AC") broke the format of the patches. In unified diff format, the unchanged, contextual lines must be preceded by a space character. Refresh the patches with quilt to fix them. Fixes: e15c63a37574 ("ar71xx: add support for MikroTik RouterBOARD wAPG-5HacT2HnD (wAP AC") Signed-off-by: Gabor Juhos <juhosg@freemail.hu>
* ar71xx: fix format of the 741-MIPS-ath79-add-PCI-for-QCA9556-SoC patchesGabor Juhos2018-01-172-12/+12
| | | | | | | | | | | The patches introduced in commit 20e68f6d395d ("ar71xx: kernel: enable PCI on QCA9556 SoC") have non standard format. In unified diff format, the unchanged, contextual lines must be preceded by a space character. Refresh the patches with quilt to fix them. Fixes: 20e68f6d395d ("ar71xx: kernel: enable PCI on QCA9556 SoC") Signed-off-by: Gabor Juhos <juhosg@freemail.hu>
* ar71xx: mach-rbspi: simplify reset button registrationGabor Juhos2018-01-171-64/+30
| | | | | | | | | | | | The setup code defines four individual structures for the Reset buttons of the supported boards. The only difference between the definitions is the GPIO number used for the button. Replace the different structures with one generic variant, and add a helper function to simplify the button registration. Signed-off-by: Gabor Juhos <juhosg@freemail.hu>
* imx6: add support for the intel gbit driver on GW5520Koen Vandeputte2018-01-171-0/+1
| | | | | | | | | | The Gateworks GW5520 board uses 2x intel gigabit mac's, instead of the internal i.MX6 FEC. Add support for these. Signed-off-by: Scott V. Kamp <outbackdingo@gmail.com> Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* mac80211: remove support code for authsaeFelix Fietkau2018-01-171-9/+3
| | | | Signed-off-by: Felix Fietkau <nbd@nbd.name>
* authsae: remove packageFelix Fietkau2018-01-173-131/+0
| | | | | | | It is no longer actively maintained and does not work well in many configurations. Fully replaced by wpad-mesh Signed-off-by: Felix Fietkau <nbd@nbd.name>
* ipq8065: adjust SS USB PHY power settingsPavel Kubelun2018-01-171-0/+11
| | | | | | | | | | | According to QSDK ipq8065 has different SS USB PHY power settings. Adjust it according to QSDK settings. It also corresponds to oem Netgear R7800 tarball for soc ver >= 2. https://github.com/paul-chambers/netgear-r7800/blob/eeac2e10190f6f45e32e4c7012c4babc351898d8/git_home/linux.git/sourcecode/arch/arm/mach-msm/board-ipq806x.c#L2494 Signed-off-by: Pavel Kubelun <be.dissent@gmail.com>
* ipq806x: usb: add phy 1 master reset controlPavel Kubelun2018-01-172-12/+26
| | | | | | | In current state only phy 0 master reset is controlled. Add the phy 1 reset. Signed-off-by: Pavel Kubelun <be.dissent@gmail.com>
* ipq806x: usb: Control USB master resetPavel Kubelun2018-01-172-0/+67
| | | | | | | | | | | | | | Picking commit from QSDK https://source.codeaurora.org/quic/qsdk/oss/kernel/linux-msm/commit/?h=eggplant&id=a86bda9f8a7965f0cedd347a9c04800eb9f41ea3 Commit message: "During removal of the glue layer(dwc3-of-simple), USB master reset is set to active and during insertion it is de-activated." Change-Id: I537dc810f6cb2a46664ee674840145066432b957 Signed-off-by: Vasudevan Murugesan <vmuruges@codeaurora.org> (cherry picked from commit 4611e13580a216812f85f0801b95442d02eeb836)" Signed-off-by: Pavel Kubelun <be.dissent@gmail.com>
* ipq806x: dwc3: Fix power_on and power_off sequencePavel Kubelun2018-01-171-29/+58
| | | | | | | | | | | Picking commit from QSDK https://source.codeaurora.org/quic/qsdk/oss/kernel/linux-msm/commit/drivers/phy/phy-qcom-dwc3.c?h=eggplant&id=d316437c9cdb70023a760342678f32e27241725a The commit fixes: - dwc3 phy module unloading - possibly fixes FS#177 when some devices were improperly enumerated as HS while being SS thus stucking the driver during boot. Signed-off-by: Pavel Kubelun <be.dissent@gmail.com>
* ipq806x: Update HSIO recommended usb phy settingsPavel Kubelun2018-01-171-15/+77
| | | | | | | | | | | | | | | | Picking commit from QSDK https://source.codeaurora.org/quic/qsdk/oss/kernel/linux-msm/commit/drivers/phy/phy-qcom-dwc3.c?h=eggplant&id=cf82fdf4bdd081cd81bb081f7815b915bc8bb851 The comit adjusts USB dwc3 phy default values as per QSDK recomendation and allows to set it through DT. Commit message: "SoC version based values will be recovered from the device node. If device node does not have such values, defaults are applied. Change-Id: Ia77b5b7fe95ce1a433885df1761091bced98d989 Signed-off-by: Gokul Sriram Palanisamy <gpalan@codeaurora.org>" Signed-off-by: Pavel Kubelun <be.dissent@gmail.com>
* Revert "ipq8064: Fix dwc3 module unloading"Pavel Kubelun2018-01-171-11/+3
| | | | | | | | Preparing for proper fixes thus reverting commits: - 8db079a9ff1756059250b801617a20baba214684 "ipq8064: Fix dwc3 module unloading" - c75f059b0c4d09dd0da60e14c4933a9f645266d1 "ipq8064: Fix dwc3 module unloading" Signed-off-by: Pavel Kubelun <be.dissent@gmail.com>
* ipq806x: update clk and cpufreq driversPavel Kubelun2018-01-1716-814/+388
| | | | | | | | | | | | | A newer clk and cpufreq drivers for ipq806x platform had been sent upstream. A change that i have noticed is that now it's possible to set min, cur and max frequencies from sysfs (previously it was bugged and caused nothing). Following patches are removed: - 0036-clk-Avoid-sending-high-rates-to-downstream-clocks-du.patch - seems it was dropped from the patchset by current committer. - 0044-clk-qcom-krait-Remove-CLK_IS_ROOT.patch - already applied to the driver itself in the corresponding patch. - 0057-clk-qcom-Add-regmap-mux-div-clocks-support.patch - seem to be irrelevant to ipq806x. Signed-off-by: Pavel Kubelun <be.dissent@gmail.com>
* ipq806x: force 2nd pci slot into gen1 modePavel Kubelun2018-01-1710-13/+17
| | | | | | | | | | | | | | According to QSDK and OEM tarballs (checked c2600, r7500v2, r7800) 2nd pci slot (pci1, 2,4 GHz card)) on ap148 based boards should operate in gen1 mode. EA8500 is an exception and according to GPL pcie0 should operate in gen1 mode. In previous commit we've added the support for this option, so enable it in DT for affected devices. QSDK ref: https://source.codeaurora.org/quic/qsdk/oss/kernel/linux-msm/commit/?h=release/endive_preview_cc&id=f3b07fe309027c52fc163149500cedddd707c506 While at it move the phy transmit termination offset value into dtsi file as it's platform specific. Signed-off-by: Pavel Kubelun <be.dissent@gmail.com>
* ipq806x: fix wireless regressionPavel Kubelun2018-01-1710-308/+734
| | | | | | | | | | | | | | | | In current state there's huge regression on ipq806x target that causes the device to transmit broken/malformed frames that are not corrected/detected by error control mechanisms and other less severe issues. https://bugs.lede-project.org/index.php?do=details&task_id=1197 This finally had been narrowed down to patch 0071-pcie-qcom-fixes.patch Meanwhile QSDK contains a handful of commits that add support for ipq806x to upstream qcom pcie driver https://source.codeaurora.org/quic/qsdk/oss/kernel/linux-msm/log/drivers/pci/host/pcie-qcom.c?h=eggplant Unfortunately qca developers do not bother to push it upstream. Using those commits instead of lede 0071 patch fixes mentioned issue and probably many others as it seems that corrupted data has been originating within pcie misconfiguration. Fixes: FS#1197 and probably others Signed-off-by: Pavel Kubelun <be.dissent@gmail.com>
* tools/cmake: update to 3.10.1Hannu Nyman2018-01-177-40/+16
| | | | | | | Update cmake to 3.10.1 Refresh patches Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
* tools/scons: update to 3.0.1Hannu Nyman2018-01-172-3/+3
| | | | | | Update scons to 3.0.1 Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
* tools/libressl: update to 2.6.4Hannu Nyman2018-01-171-2/+2
| | | | Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
* xtables-addons: remove from baseJo-Philipp Wich2018-01-166-19989/+0
| | | | | | | The package has been moved to the package feed repository to allow for non-base dependencies such as Perl. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* netfilter: enable CONFIG_NF_CONNTRACK_MARK from kmod-nf-conntrackJo-Philipp Wich2018-01-161-0/+1
| | | | | | | | Unconditionally enable connmark support and tie it to the conntrack core module to allow removing this kernel configuration dependency from the xtables-addons package. Signed-off-by: Jo-Philipp Wich <jo@mein.io>