Commit Graph

14772 Commits

Author SHA1 Message Date
Gabor Juhos
0b84c5a1c1 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>

SVN-Revision: 21723
2010-06-08 20:18:58 +00:00
Gabor Juhos
2ccaef4f4a ip17xx: Keep all state locally
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>

SVN-Revision: 21722
2010-06-08 20:18:55 +00:00
Gabor Juhos
4511da99b9 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>

SVN-Revision: 21721
2010-06-08 20:18:51 +00:00
Gabor Juhos
d48ba78aa4 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>

SVN-Revision: 21720
2010-06-08 20:18:47 +00:00
Gabor Juhos
a7301c57a4 ip17xx: New chip detection
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>

SVN-Revision: 21719
2010-06-08 20:18:42 +00:00
Gabor Juhos
d577cfa397 ip17xx: Add VLAN tag field
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>

SVN-Revision: 21718
2010-06-08 20:18:38 +00:00
Gabor Juhos
d08093b8b3 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>

SVN-Revision: 21717
2010-06-08 20:18:34 +00:00
Gabor Juhos
e04dd645f2 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>

SVN-Revision: 21716
2010-06-08 20:18:30 +00:00
Gabor Juhos
3c213b14ed ip17xx: Introduce vlan array
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>

SVN-Revision: 21715
2010-06-08 20:18:25 +00:00
Gabor Juhos
065bc60f37 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>

SVN-Revision: 21714
2010-06-08 20:18:20 +00:00
Gabor Juhos
09be47cf90 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>

SVN-Revision: 21713
2010-06-08 20:18:15 +00:00
Gabor Juhos
f09e3fb65b ip17xx: Fix indentation in get_state() and update_state()
Signed-off-by: Martin Mares <mj@ucw.cz>
Signed-off-by: Patrick Horn <patrick.horn@gmail.com>

SVN-Revision: 21712
2010-06-08 20:18:10 +00:00
Gabor Juhos
7b5a77fa39 ip17xx: Fixed error handling in ip175c_set_val()
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>

SVN-Revision: 21711
2010-06-08 20:18:05 +00:00
Gabor Juhos
b3073617a5 ip17xx: Cosmetic cleanups
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>

SVN-Revision: 21710
2010-06-08 20:18:00 +00:00
Gabor Juhos
f96f1cd16f 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>

SVN-Revision: 21709
2010-06-08 20:17:55 +00:00
Gabor Juhos
c0c0a60718 swconfig: Fix a bug in use of SWITCH_PORT_FLAG_TAGGED
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>

SVN-Revision: 21708
2010-06-08 20:17:03 +00:00
Alexandros C. Couloumbis
cfa9a1f6d6 brcm47xx: add kernel 2.6.35 preliminary support
SVN-Revision: 21707
2010-06-08 16:58:06 +00:00
Alexandros C. Couloumbis
ce6b70119c generic-2.6: fix mini_fo 2.6.35 kernel issue
SVN-Revision: 21706
2010-06-08 16:44:42 +00:00
Alexandros C. Couloumbis
7414d7d943 fix a typo on commit r21704
SVN-Revision: 21705
2010-06-08 16:19:34 +00:00
Alexandros C. Couloumbis
7e2b5d177b generic-2.6: generic: add missing config symbols for 2.6.35
SVN-Revision: 21704
2010-06-08 16:13:37 +00:00
Alexandros C. Couloumbis
d7dc747324 atheros: add kernel 2.6.35 preliminary support
SVN-Revision: 21703
2010-06-08 15:01:35 +00:00
Florian Fainelli
a1d41fa69b move broadcom-shdc from trunk to packages/utils
SVN-Revision: 21702
2010-06-07 11:26:32 +00:00
Jo-Philipp Wich
527e4c9b65 kernel: ensure that IMQ is autoloaded after ip_queue, fixes disappearing traffic when using qos rules
SVN-Revision: 21700
2010-06-07 10:47:20 +00:00
Gabor Juhos
9f196d5223 generic: add missing config symbol for 2.6.34
SVN-Revision: 21699
2010-06-07 09:18:18 +00:00
Gabor Juhos
90e2b1ad6b ar71xx: fix 2.6.34 build errors
SVN-Revision: 21698
2010-06-07 09:18:13 +00:00
Gabor Juhos
84f6a9c5a1 ar71xx: add missing 2.6.34 config symbol
SVN-Revision: 21697
2010-06-07 09:17:34 +00:00
Alexandros C. Couloumbis
4503e77b0d generic-2.6: add kernel 2.6.35 preliminary support (patches)
SVN-Revision: 21696
2010-06-07 05:56:49 +00:00
Alexandros C. Couloumbis
a2225b8b29 generic-2.6: add kernel 2.6.35 preliminary support
SVN-Revision: 21695
2010-06-07 05:54:29 +00:00
Alexandros C. Couloumbis
1428b8f9bc refresh kernel patches
SVN-Revision: 21694
2010-06-06 21:16:31 +00:00
Alexandros C. Couloumbis
478e2efca7 add 2.6.35 support
SVN-Revision: 21693
2010-06-06 19:34:41 +00:00
Florian Fainelli
0499ba96eb generate NA and non-NA images for Titan platforms
SVN-Revision: 21692
2010-06-06 19:17:01 +00:00
Florian Fainelli
2210c5274a add Titan MTD partitionning support (#6632)
SVN-Revision: 21691
2010-06-06 19:16:55 +00:00
Florian Fainelli
a289ee48ca titan board also have CYWL as a product id
SVN-Revision: 21690
2010-06-06 19:16:49 +00:00
Florian Fainelli
04a4638910 add mktitanimg to create Titan (AR7-based) images (#6632)
SVN-Revision: 21689
2010-06-06 19:16:43 +00:00
Florian Fainelli
ac23dcfe11 do not override kmod-usb-storage-extras Kconfig symbols (#7285)
SVN-Revision: 21688
2010-06-06 19:02:30 +00:00
Florian Fainelli
75cde2fd4c update openssl to 0.9.8o (#7428)
SVN-Revision: 21687
2010-06-06 19:02:22 +00:00
Gabor Juhos
e897618fe1 ar71xx: build firmware images if Minimal profile is selected
SVN-Revision: 21684
2010-06-06 17:41:39 +00:00
Gabor Juhos
f0ec6c9529 ar71xx: rename Minimal profile
SVN-Revision: 21683
2010-06-06 17:41:34 +00:00
Hauke Mehrtens
35031a5daf orion: Update Orion in trunk to kernel 2.6.34.
Was flashed on WRT350Nv2, booted and is running for several days.
Closes #7405

Thank you maddes for your patch.

SVN-Revision: 21682
2010-06-06 10:51:52 +00:00
Gabor Juhos
b730849966 generic: update mips multimachine patch
SVN-Revision: 21681
2010-06-05 18:26:45 +00:00
Gabor Juhos
ac8b72c8c9 adm5120: convert to use the new mips multimachine stuff
SVN-Revision: 21680
2010-06-05 18:26:40 +00:00
Felix Fietkau
b61dce0a9b ar71xx: clarify the nand subtarget a bit
SVN-Revision: 21679
2010-06-05 11:55:49 +00:00
Gabor Juhos
2dfcdb9465 generic: merge mips multi machine update to generic patches for 2.6.34
SVN-Revision: 21675
2010-06-04 19:09:52 +00:00
Gabor Juhos
35765bfcf8 generic: merge mips multi machine update to generic patches for 2.6.33
SVN-Revision: 21674
2010-06-04 19:09:49 +00:00
Gabor Juhos
383bd396fa generic: merge mips multi machine update to generic patches for 2.6.32
SVN-Revision: 21673
2010-06-04 19:09:46 +00:00
Gabor Juhos
5cca5172bc adm5120: don't use linux/autoconf.h
SVN-Revision: 21672
2010-06-04 19:09:43 +00:00
Gabor Juhos
f77ca8db76 adm5120: fix build error on 2.6.34
SVN-Revision: 21671
2010-06-04 19:09:39 +00:00
Claudio Mignanti
2f4339f7ea Force usb features, fix depends
SVN-Revision: 21664
2010-06-03 09:52:34 +00:00
Felix Fietkau
c09aeaa2c9 libelf: get rid of CRLF encoding in the makefile (thx, danimo)
SVN-Revision: 21663
2010-06-03 00:44:49 +00:00
Jo-Philipp Wich
93c2c81bcf base-files: introduce option "broadcast" for proto=dhcp interface to enable the broadcast flag in DHCP requests, required by certain providers
SVN-Revision: 21661
2010-06-02 20:21:41 +00:00