juhosg [Tue, 8 Jun 2010 20:18:58 +0000 (20:18 +0000)]
ip17xx: The big rename
Recognize that the driver supports many more devices than the ip175c.
The driver itself is now called ip17xx, all generic functions have been
renamed to ip17xx_*. The model-dependent functions have prefixes ip175c_
and ip175d_.
Signed-off-by: Martin Mares <mj@ucw.cz> Signed-off-by: Patrick Horn <patrick.horn@gmail.com>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21723 3c298f89-4303-0410-b956-a3cf2f4a3e73
juhosg [Tue, 8 Jun 2010 20:18:51 +0000 (20:18 +0000)]
ip17xx: Add support for IP175D
Add support for the IP175D chip. Since the register set is vastly different
from the previous models, we cannot not use the register number tables in struct
register_mappings (except for VLAN_DEFAULT_TAG_REG), so we supply a different
set of low-level functions.
Unlike with the previous models, we keep the VLAN setup in our state structure
instead of querying the hardware (it would be much harder in case of IP175D,
because the mapping between hardware and software state is not 1:1). Therefore,
get_flags() and get_state() are no-ops.
Signed-off-by: Martin Mares <mj@ucw.cz> Signed-off-by: Patrick Horn <patrick.horn@gmail.com>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21721 3c298f89-4303-0410-b956-a3cf2f4a3e73
juhosg [Tue, 8 Jun 2010 20:18:47 +0000 (20:18 +0000)]
ip17xx: Avoid auto-negotiation
Let ip175c_config_init() initialize the link state of the PHY and set the
PHY state machine directly to the PHY_RUNNING state in order to skip the
auto-negotiation phase.
Previously, auto-negotiation on PHY 0 (switch port 0) influenced the ethernet
driver connected to the CPU port, causing all sorts of weird effects.
Signed-off-by: Martin Mares <mj@ucw.cz> Signed-off-by: Patrick Horn <patrick.horn@gmail.com>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21720 3c298f89-4303-0410-b956-a3cf2f4a3e73
juhosg [Tue, 8 Jun 2010 20:18:34 +0000 (20:18 +0000)]
ip17xx: Maintain state->remove_tag incrementally
So far, state->remove_tag was sometimes updated incrementally, sometimes
left to correct_vlan_state() to recalculate. Since I want to avoid use of
correct_vlan_state() for IP175D, this patch fixes the only two remaining
places which leave state->remove_tag inconsistent with state->add_tag
and it drops the recalculation.
Signed-off-by: Martin Mares <mj@ucw.cz> Signed-off-by: Patrick Horn <patrick.horn@gmail.com>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21717 3c298f89-4303-0410-b956-a3cf2f4a3e73
juhosg [Tue, 8 Jun 2010 20:18:30 +0000 (20:18 +0000)]
ip17xx: Initialize VLAN state upon reset
Let VLAN state variables be initialized not only when the enable VLAN bit
is toggled, but also upon reset.
At this point, this should be a no-op, since the driver reads the current
hardware state before doing any modifications anyway, but I plan to keep
some state locally in the subsequent patches.
Signed-off-by: Martin Mares <mj@ucw.cz> Signed-off-by: Patrick Horn <patrick.horn@gmail.com>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21716 3c298f89-4303-0410-b956-a3cf2f4a3e73
juhosg [Tue, 8 Jun 2010 20:18:20 +0000 (20:18 +0000)]
ip17xx: Introduce indirection of low-level operations
This patch introduces seperation between low-level and high-level parts
of the driver. The low-level functions are now called via pointers stored
in struct ip175c_regs.
The only functional changes are:
o correct_vlan_state() is now called as a part of every update_state().
o The order of setting of MODE_REG and resetting switch ports
has changed. (These are independent actions, so it should not matter.)
o ip175c_set_tagged() sets the tags via update_state() instead of writing
directly to the registers.
o The same for ip175c_set_pvid().
The only gaps in this abstraction are operations on ports (get_port_speed
and friends), which access PHY registers directly.
Signed-off-by: Martin Mares <mj@ucw.cz> Signed-off-by: Patrick Horn <patrick.horn@gmail.com>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21714 3c298f89-4303-0410-b956-a3cf2f4a3e73
juhosg [Tue, 8 Jun 2010 20:18:15 +0000 (20:18 +0000)]
ip17xx: Fix use of MODE_VAL
The value written to MODE_REG in ip175c_reset() should be obviously MODE_VAL,
not RESET_VAL. Actually, this change is a NOP, because in the only case where
the MODE_REG is used, the two values are identical, but it makes the code
more readable.
Signed-off-by: Martin Mares <mj@ucw.cz> Signed-off-by: Patrick Horn <patrick.horn@gmail.com>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21713 3c298f89-4303-0410-b956-a3cf2f4a3e73
juhosg [Tue, 8 Jun 2010 20:17:55 +0000 (20:17 +0000)]
ip17xx: Consolidate operations with PHY registers
Call mdiobus_{read,write} instead of duplicating their code.
Introduce ip_phy_write_masked(), which changes a part of a register. Will
be used later in this patch series. Please note that it does not hold any
lock between reading and writing, so it is up to the caller to serialize.
Also add DUMP_MII_IO, which enables logging of all MII accesses.
Signed-off-by: Martin Mares <mj@ucw.cz> Signed-off-by: Patrick Horn <patrick.horn@gmail.com>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21709 3c298f89-4303-0410-b956-a3cf2f4a3e73
jow [Wed, 2 Jun 2010 20:21:41 +0000 (20:21 +0000)]
[package] base-files: introduce option "broadcast" for proto=dhcp interface to enable the broadcast flag in DHCP requests, required by certain providers
jow [Wed, 2 Jun 2010 00:22:13 +0000 (00:22 +0000)]
[package] base-files:
- add aliases to device by default (not ifname)
- introduce option "layer" to select the target ifname to attach the alias to:
- 3 use tun device (tun over bridge over device) fallback to bridge or device
- 2 use bridge (bridge over device) fallback to device
- 1 use device
jow [Tue, 1 Jun 2010 21:58:48 +0000 (21:58 +0000)]
[package] firewall: Initial alias interface support. This allows to define zones covering alias interfaces and associated entries like rules and forwardings.
jow [Mon, 31 May 2010 01:22:36 +0000 (01:22 +0000)]
[package] base-files: don't skip subsequent hotplug rules when doing makedev for tun or tap interfaces - this fixes support for uci managed OpenVPN interfaces and other externally created tuntap devices
jow [Sun, 30 May 2010 18:23:43 +0000 (18:23 +0000)]
[package] base-files:
- use add_dns() and remove_dns() for when changing resolv.conf.auto for static or dhcp interfaces
- force 0644 permissions when creating resolv.conf.auto, fixes dnsmasq permissions denied problem with pppd interfaces
- revert dns servers in /sbin/ifdown
- bump package revision
cshore [Sun, 30 May 2010 03:21:00 +0000 (03:21 +0000)]
ramips: Added preinit scriptlet to set vars based on cpuinfo during preinit_main. This fixes a bug in which the vars were not set due to /proc not being mounted when ramips.sh was sourced
cshore [Sun, 30 May 2010 03:20:49 +0000 (03:20 +0000)]
ar71xx: Added preinit scriptlet to set vars based on cpuinfo during preinit_main. This fixes a bug in which the vars were not set due to /proc not being mounted when ar71xx.sh was sourced
cshore [Sun, 30 May 2010 03:20:38 +0000 (03:20 +0000)]
adm5120: Added preinit script to set vars based on cpuinfo during preinit main; This fixes a bug in which the per-board vars were not set due to cpuinfo not being mounted when the adm5120.sh was run
cshore [Sun, 30 May 2010 01:33:09 +0000 (01:33 +0000)]
brcm63xx: Added preinit reset button module loading for devices known to support it and for which /lib/brcm63xx.sh has the definitions (currently only 96348GW - Tecom 6x00)
lars [Sat, 29 May 2010 00:12:09 +0000 (00:12 +0000)]
[xburst] udc: Fix recursive spinlocks
Driver had recursive spinlock locking: 1. jz4740_queue() acquires lock 2. done()
is called in chain:
jz4740_queue()->jz4740_ep0_kick()->jz4740_ep0_in()->write_fifo_ep0()->done() and
it tries to acquire same lock. 3. Deadlock.
jow [Sat, 29 May 2010 00:08:07 +0000 (00:08 +0000)]
[brcm47xx] Rename .trx2 image to openwrt-wrt54g3gv2-vf-squashfs-sysupgrade.bin and openwrt-wrt54g3gv2-vf-squashfs.bin to openwrt-wrt54g3gv2-vf-squashfs-factory.bin
jow [Fri, 28 May 2010 22:03:30 +0000 (22:03 +0000)]
[package] 6in4:
- support to automatically determine the local endpoint address from the current IPv4 default gateway
- support updating the tunnel endpoint for he.net