kernel/adc: backport essential fixes for ad799x

This patch ports back some fixes of the ad799x driver, which were
committed between 3.10 and 3.15.

Signed-off-by: Hartmut Knaack <knaack.h@gmx.de>

git-svn-id: svn://svn.openwrt.org/openwrt/branches/barrier_breaker@42993 3c298f89-4303-0410-b956-a3cf2f4a3e73
ath9k: backport tx power reporting fix

Signed-off-by: Felix Fietkau <nbd@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/branches/barrier_breaker@43053 3c298f89-4303-0410-b956-a3cf2f4a3e73
mac80211: refresh patches

Signed-off-by: Felix Fietkau <nbd@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/branches/barrier_breaker@43054 3c298f89-4303-0410-b956-a3cf2f4a3e73
ath9k: fix regulatory notifier calls with CONFIG_ATH_USER_REGD=y (#18211)

Signed-off-by: Felix Fietkau <nbd@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/branches/barrier_breaker@43055 3c298f89-4303-0410-b956-a3cf2f4a3e73
odhcp6c: avoid some unnecessary big mallocs

git-svn-id: svn://svn.openwrt.org/openwrt/branches/barrier_breaker@43057 3c298f89-4303-0410-b956-a3cf2f4a3e73
base-files: add /etc/shadow to list of essential files to keep in sysupgrade (bug 18206)

Based on bug #18206 sysupgrade can lead to loss of password information in
certain situations. Most likely all users who will upgrade from versions
r43017-43040, will lose their current passwords. :-(
https://dev.openwrt.org/ticket/18206

Currently /etc/shadow is defined as a conffile in base-files:
https://dev.openwrt.org/browser/trunk/package/base-files/Makefile#L37

But it is not defined in the default list of essential files to keep in
sysupgrade:
https://dev.openwrt.org/browser/trunk/package/base-files/files/lib/upgrade/keep.d/base-files-essential

If exporting conffiles info fails, /etc/shadow can get lost.

Shadow passwords are now the default, so saying that preserving /etc/passwd
is essential while /etc/shadow is not, makes no sense.

The attached patch adds /etc/shadow to the list of essential files.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>

Backport of r43061

git-svn-id: svn://svn.openwrt.org/openwrt/branches/barrier_breaker@43062 3c298f89-4303-0410-b956-a3cf2f4a3e73
findutils: add dependency on bison

Signed-off-by: Felix Fietkau <nbd@openwrt.org>

Backport of r43064

git-svn-id: svn://svn.openwrt.org/openwrt/branches/barrier_breaker@43065 3c298f89-4303-0410-b956-a3cf2f4a3e73
kernel: allow targets to specify KERNEL_PATCHVER instead of LINUX_VERSION

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

Backport of r43043


git-svn-id: svn://svn.openwrt.org/openwrt/branches/barrier_breaker@43066 3c298f89-4303-0410-b956-a3cf2f4a3e73
kernel: makefiles: make use of new var KERNEL_PATCHVER

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

Inspired by r43047


git-svn-id: svn://svn.openwrt.org/openwrt/branches/barrier_breaker@43067 3c298f89-4303-0410-b956-a3cf2f4a3e73
BB: vgv7519: support more recent board release with vrx288 v1.2

The existance of this new board has been confirmed and tested by the guy on this commit

https://github.com/openwrt-vgv7519/uboot-bin/commit/76fdd8e638f81e324ffe77856481bd147398f6e8

git-svn-id: svn://svn.openwrt.org/openwrt/branches/barrier_breaker@43075 3c298f89-4303-0410-b956-a3cf2f4a3e73
mpc85xx: fix WAN/LAN-MAC for TP-LINK TL-WDR4900 v1

This works around a bootloader issue where every device
has the same lan/wan-mac 00:04:9f:ef:01:01 - with this patch
we read the macs from config-partition during initial network
setup. We have 9 valid macs stored in the partition, the
1st two are used for the radios, 3 and 4 are now used for WAN/LAN.

on an already setup / running device we can get the real macs with
. /lib/functions.sh
. /lib/functions/system.sh
echo "LAN = $(mtd_get_mac_binary config 338)"
echo "WAN = $(mtd_get_mac_binary config 344)"

see:
https://dev.openwrt.org/ticket/14714

from the ticket / user klondike:
U-Boot passed this commit https://gitorious.org/0xlab-kernel/u-boot/commit/ecd1a09b81f2ed6e6ba7bd1d0bfb0cc3d0ea2ad0
http://u-boot.10912.n7.nabble.com/U-Boot-PATCH-mpc83xx-remove-hardcoded-network-addresses-from-config-files-td44372.html
I suppose to prevent this particular issue, but the WDR4900 may be using an old bootloader still affected.
                                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

I have been checking the contents of the dtb on the flash, this particular bit is quite revealing:

ethernet@b0000 {
                        #address-cells = <0x1>;
                        #size-cells = <0x1>;
                        device_type = "network";
                        model = "eTSEC";
                        compatible = "fsl,etsec2";
                        fsl,num_rx_queues = <0x8>;
                        fsl,num_tx_queues = <0x8>;
                        local-mac-address = [00 00 00 00 00 00];
                                             ^^^^^^^^^^^^^^^^^

                        interrupt-parent = <0x2>;
                        phy-handle = <0x3>;
                        phy-connection-type = "rgmii-id";
                        ptimer-handle = <0x4>;

                        queue-group@0 {
                                #address-cells = <0x1>;
                                #size-cells = <0x1>;
                                reg = <0xb0000 0x1000>;
                                rx-bit-map = <0xff>;
                                tx-bit-map = <0xff>;
                                interrupts = <0x1d 0x2 0x1e 0x2 0x22 0x2>;
                        };
                };

I also have been checking the live device map to find this:

root@GHS-AP3:~# hexdump -C /proc/device-tree/soc@ffe00000/ethernet@b0000/local-mac-address
00000000  00 04 9f ef 01 01                                 |......|
00000006
root@GHS-AP3:~# hexdump -C /proc/device-tree/soc@ffe00000/ethernet@b1000/local-mac-address
*
root@GHS-AP3:~# hexdump -C /proc/device-tree/soc@ffe00000/ethernet@b2000/local-mac-address
*

My conclussion is that U-Boot most likely finds the device and (as no valid MAC-address is provided)
falls back to the default MAC provided by the old code, the kernel then receives thee modified
device map from U-Boot and assumes this is the correct MAC for the device despite it obviously isn't.

This can be seen at
target/linux/mpc85xx/patches-3.10/140-powerpc-85xx-tl-wdr4900-v1-support.patch

The enetaddr is filled up by using the device tree data by the process_boot_dtb
function and used by the platform_fixups function to set the eth0 address
(by calling dt_fixup_mac_address_by_alias("ethernet0", enetaddr); ).
But instead we should be used the device address which to my understanding is
provided in the mtd.

Signed-off-by: Bastian Bittorf <bittorf@bluebottle.com>

Backport of r43074

git-svn-id: svn://svn.openwrt.org/openwrt/branches/barrier_breaker@43077 3c298f89-4303-0410-b956-a3cf2f4a3e73
mac80211: fix key flush handling in AP+STA

Signed-off-by: Felix Fietkau <nbd@openwrt.org>

Backport of r43079

git-svn-id: svn://svn.openwrt.org/openwrt/branches/barrier_breaker@43081 3c298f89-4303-0410-b956-a3cf2f4a3e73
BB: uhttpd: fix HTTP incompatibilities in file handler

 * Fixes sending an extraneous message body for 204 and 304 resoponses which
   breaks Chrome in keep-alive mode.

 * Adds mimetypes for JSON and JSONP.

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>

Backport of r43078

git-svn-id: svn://svn.openwrt.org/openwrt/branches/barrier_breaker@43082 3c298f89-4303-0410-b956-a3cf2f4a3e73
BB: px5g-standalone: use /dev/urandom to initialize serial (#18232)

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>

Backport of r43080

git-svn-id: svn://svn.openwrt.org/openwrt/branches/barrier_breaker@43083 3c298f89-4303-0410-b956-a3cf2f4a3e73
BB: busybox: make high ASCII chars printable (#7993)

Currently busybox utils like "ls" fail to display filenames containing UTF-8
characters, replacing any special characters with "?".

Change libbb's printable_string() function to allow high ASCII characters so
that unicode filenames are displayed correctls.

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>

Backport of r43084

git-svn-id: svn://svn.openwrt.org/openwrt/branches/barrier_breaker@43085 3c298f89-4303-0410-b956-a3cf2f4a3e73