ar71xx: ag71xx: fix a race involving netdev registration

In particular, phy_connect before register_netdev. This is because
register_netdev runs the netdev notifiers, which can race with the rest of
the initialization in ag71xx_probe. In my case this manifested in two ways:

1) If ag71xx is compiled as a module and inserted after netifd has started,
   netifd is notified by register_netdev before the call to
   ag71xx_phy_connect. netifd tries to bring the interface up, which calls
   ag71xx_open, which in turn enters ag71xx_phy_start. This keys off
   ag->phy_dev (which is still NULL) and thinks this is a fixed-link board,
   and enters ag71xx_link_adjust. This looks at ag->speed which is not yet
   initialized and hits the BUG() in the switch (ag->speed) in
   ag71xx_link_adjust.

   This is the wrong code path for ag71xx_phy_start - my board has PHYs that
   need to be brought up with phy_start. Doing ag71xx_phy_connect before
   register_netdev ensures that ag->phy_dev is non-NULL before
   ag71xx_phy_start is ever called.

2) When ag71xx is built into the kernel, and netconsole is enabled, there
   is a gap in the initial burst of replayed printks right after the netdev
   comes up. My assumption is that netconsole is also triggered by a netdev
   notifier, and part of this printk burst happens before the call into
   ag71xx_phy_connect, so part of the burst is lost while the PHY comes up.
   This patch fixes the gap - all the printks before eth0 comes up are bursted
   in full when netconsole initializes.

ag71xx_phy_connect_xxx no longer runs with a registered netdev, so the
logging has been adjusted accordingly to avoid "unregistered net_device" or
"eth%d" messages in dmesg.

Signed-off-by: Catalin Patulea <cat@vv.carleton.ca>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38689 3c298f89-4303-0410-b956-a3cf2f4a3e73
base-files: mtd_get_mac_ascii bugfix

The mtd_get_mac_ascii utility function was broken. This fixes it.

  - Remove the superfluous include of /lib/functions.sh. The
    function is already in that file so it is pointless,
  - only use a variable if the whole key word matches,
  - don't try to process the MAC address if it is empty,
  - use 'tr' to canonicalize the MAC address,

Signed-off-by: Daniel Gimpelevich <daniel@gimpelevich.san-francisco.ca.us>
[juhosg: add more fixes, update commit message]
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38690 3c298f89-4303-0410-b956-a3cf2f4a3e73
[omap]: rename the omap4 target to omap

Signed-off-by: Imre Kaloz <kaloz@openwrt.org>



git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38691 3c298f89-4303-0410-b956-a3cf2f4a3e73
[omap]: switch to 3.12, enable support for AM33xx/OMAP3

Signed-off-by: Imre Kaloz <kaloz@openwrt.org>


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38692 3c298f89-4303-0410-b956-a3cf2f4a3e73
procd: update to latest git head

make sure that automatic respawning is turned off during upgrade

Signed-off-by: John Crispin <blogic@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38695 3c298f89-4303-0410-b956-a3cf2f4a3e73
kernel: adm6996: add support for ADM6996L and GPIO interface

This patch makes it possible to use adm6996.c on first generation 
BCM47XX devices with ADM switches.
The GPIO bit banging protocol implementation was copied from the old 
switch driver and adapted to this driver and changed to the mainline 
kernel GPIO interface.
The ADM6996L is different from the ADM6996M which is supported, for 
both specs are available in the Internet.

This was tested on a WRT54GS version 1.0, thank you Dirk Neukirchen for 
the device.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38698 3c298f89-4303-0410-b956-a3cf2f4a3e73
brcm47xx: register ADM6996L switch

This patch makes it possible to use adm6996.c on first generation 
BCM47XX devices with ADM switches.

This was tested on a WRT54GS version 1.0, thank you Dirk Neukirchen for 
the device.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38699 3c298f89-4303-0410-b956-a3cf2f4a3e73
brcm47xx: add detection for Linksys WRT54GS V1

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38700 3c298f89-4303-0410-b956-a3cf2f4a3e73
broadcom-diag: fix sys button on Asus rt-n16

This closes: #14427.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38701 3c298f89-4303-0410-b956-a3cf2f4a3e73
[cns3xxx]: add pushbutton GPIO for GW2380/82/83

Signed-off-by: Tim Harvey <tharvey@gateworks.com>



git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38702 3c298f89-4303-0410-b956-a3cf2f4a3e73
[cns3xxx]: add uImage image build

- add building of a standard uImage along with the combined kernel+rootfs
- remove 'old' image build - that was for a very old and obsolete bootloader

To update the bootloader for GW2387,GW2388,GW2391 (NOR Flash) from uboot:
put latest NOR bootloader on tftp server:

http://svn.gateworks.com/laguna/trunk/images/u-boot_nor.bin

 Laguna> setenv ipaddr <localip>
 Laguna> setenv ipaddr <serverip>
 Laguna> tftpboot 0x800000 laguna/u-boot-nor.bin
 Laguna> erase 0x10000000 +$(filesize)
 Laguna> cp.b 0x800000 0x10000000 $(filesize)
 Laguna> reset

To update the bootloader for GW2380,GW2382,GW2383 (SPI Flash) from uboot:
put latest SPI bootloader on tftp server:

http://svn.gateworks.com/laguna/trunk/images/u-boot_spi.bin

 Laguna> setenv ipaddr <localip>
 Laguna> setenv ipaddr <serverip>
 Laguna> tftpboot 0x800000 laguna/u-boot-spi.bin
 Laguna> erase 0x60000000 +$(filesize)
 Laguna> cp.b 0x800000 0x60000000 $(filesize)
 Laguna> reset

Signed-off-by: Tim Harvey <tharvey@gateworks.com>



git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38703 3c298f89-4303-0410-b956-a3cf2f4a3e73
netifd: remove connect_time from /var/state, it is unused

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

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38704 3c298f89-4303-0410-b956-a3cf2f4a3e73
procd: reduce the number of unnecessary calls to /sbin/hotplug-call for tty devices

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

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38705 3c298f89-4303-0410-b956-a3cf2f4a3e73
kernel: b53: add initial support for switches in BCM5301X

This is also known as BCM470{7,8,9}.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38712 3c298f89-4303-0410-b956-a3cf2f4a3e73
kernel: bcma: detect pci ID 0x4313

This pci ID is used by sprom less BCM4313 devices.
This is a backport from the mainline kernel.

This is part of #13551.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38713 3c298f89-4303-0410-b956-a3cf2f4a3e73
kernel: bgmac: make it send and receive some packages on BCM4708

This adds some more code for bgmac core rev 4 and it now restarts all 
cores when initializing the first one on BCM4708. I am just able to 
send under 100 packages and then DMA TX does not work any more.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38714 3c298f89-4303-0410-b956-a3cf2f4a3e73
bcm53xx: make bgmac work

This makes bgmac work without sprom and refreshed the patches.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38715 3c298f89-4303-0410-b956-a3cf2f4a3e73
ar71xx: ag71xx: fix ag71xx_probe error path

Signed-off-by: Catalin Patulea <cat@vv.carleton.ca>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38716 3c298f89-4303-0410-b956-a3cf2f4a3e73
ar71xx: Add kernel support for the TP-Link WA750RE / WA850RE range extender

Patch to add kernel support for the TP-LINK WA750RE and the WA850RE
range extender

Signed-off-by: Martijn Zilverschoon <thefriedzombie@gmail.com>
[juhosg: rename and refresh kernel patch]
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38717 3c298f89-4303-0410-b956-a3cf2f4a3e73
ar71xx: add user space support for the TL-WA750RE/WA850RE Range extender

Patch to add user space support for the TL-WA750RE/WA850RE range extender

Signed-off-by: Martijn Zilverschoon <thefriedzombie@gmail.com>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38718 3c298f89-4303-0410-b956-a3cf2f4a3e73