| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of reading the hardware state every time we want to inspect it or
to modify it, maintain it in struct ip175c_state.
This simplifies the code significantly.
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@21722 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Clean up get_model() and make it recognize IP175D using yet another
chip ID register. Log the detected model.
Also fix a bug in the interface between the PHY layer and our probe function,
which caused IP175A devices to be ignored.
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@21719 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
|
|
|
|
|
|
|
| |
Since IP175D uses tag-based VLANs, we need an ability to set VLAN tag
of every VLAN.
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@21718 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
Replace vlan_ports array in struct ip175c_state by an array of structures.
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@21715 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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@21712 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
|
|
|
|
|
|
| |
Upon error, ip175c_set_val() returned 0 instead of -EINVAL.
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@21711 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
|
|
|
|
|
|
|
| |
Trying to unify capitalization and formatting of comments. Writing of periods
at the end of comments is however still inconsistent.
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@21710 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
SWITCH_PORT_FLAG_TAGGED is a bit index, not a bit mask.
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@21708 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
| |
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21707 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
| |
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21706 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
| |
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21705 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
| |
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21704 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
| |
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21703 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
| |
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21699 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
| |
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21698 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
| |
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21697 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
| |
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21696 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
| |
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21694 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
| |
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21692 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
| |
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21691 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
| |
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21690 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
| |
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21688 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
| |
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21684 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
| |
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21683 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
|
|
|
|
|
|
| |
Was flashed on WRT350Nv2, booted and is running for several days.
Closes #7405
Thank you maddes for your patch.
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21682 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
| |
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21681 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
| |
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21680 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
| |
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21679 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
| |
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21675 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
| |
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21674 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
| |
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21673 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
| |
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21672 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
| |
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21671 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
| |
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21664 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
| |
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21647 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
| |
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21645 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
|
|
|
|
| |
Signed-off-by: Helmut Schaa
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21643 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
|
|
| |
brcm-specific
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21637 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
| |
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21636 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
|
|
| |
preinit_main. This fixes a bug in which the vars were not set due to /proc not being mounted when ramips.sh was sourced
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21635 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
|
|
| |
preinit_main. This fixes a bug in which the vars were not set due to /proc not being mounted when ar71xx.sh was sourced
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21634 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
|
|
| |
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
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21633 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
|
| |
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21632 3c298f89-4303-0410-b956-a3cf2f4a3e73
|