Commit Graph

291 Commits (2f757bc989540acb986031b0b69d1274a922ef0f)

Author SHA1 Message Date
Gabor Juhos 69cbfbe045 generic: ar8216: remove redundant phy address check
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35542 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-10 18:38:12 +00:00
Gabor Juhos 77bc7d2f07 generic: ar8216: only set phy_ptr if packet mangling is used
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35541 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-10 18:38:10 +00:00
Gabor Juhos f6df051dc9 generic: ar8216: add defines for the AR8316 POSTRIP register
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35539 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-10 13:18:48 +00:00
Gabor Juhos 19f4475eb9 generic: ar8216: don't probe the chip multiple times
It is only needed when the private data is allocated.

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35538 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-10 13:05:15 +00:00
Gabor Juhos e04207b25a generic: ar8216: add sanity check to ar8216_probe
Verify that the mdio bus has PHY devices with
a supported PHY ID at address 0-4.

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35537 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-10 13:05:14 +00:00
Gabor Juhos 03f0a836a7 generic: ar8216: skip probe on unused PHY addresses
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35536 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-10 13:05:12 +00:00
Jonas Gorski c5bae90408 generic: b53: fix reverted error check in probe
b53_switch_detect returns value returned by b53_read8, which is 0 for
success. So fail (and return error) only if b53_switch_detect returned
something else than 0. This fixes supported and advertising being zeros
for MDIO access.

Cc: Jonas Gorski <jogo@openwrt.org>
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35534 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-10 12:31:36 +00:00
Gabor Juhos 6154886951 generic: ar8216: move sleep out of the loop
It is enough to sleep once after ANEG is enabled on
all PHYs. This reduces boot time on boards with
AR8316 switch.

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35532 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-09 13:26:04 +00:00
Gabor Juhos e84e418e74 generic: ar8216: simplify phy features setup
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35518 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-08 09:13:18 +00:00
Gabor Juhos edea889900 generic: ar8216: don't use mdio bus specific functions in ar8216_id_chip
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35517 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-08 09:13:14 +00:00
Gabor Juhos 8359109069 generic: ar8216: use inline function to convert swdev to ar8216
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35514 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-07 15:18:36 +00:00
Gabor Juhos e2275d7311 generic: ar8216: add mii_bus field to struct ar8216_priv
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35513 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-07 15:18:35 +00:00
Gabor Juhos c32d96d9e6 generic: mvswitch: add detach callback
Use the detach callback to disable packet mangling
to avoid possible NULL pointer dereference.

Compile tested only.

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35512 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-07 15:18:34 +00:00
Gabor Juhos babed81891 generic: ar8216: add detach callback
The current code uses the 'remove' callback to disable
packet mangle on the underlying ethernet device.
However the attached_dev is always NULL when the
'remove' callback is called by phylib, and this causes
NULL pointer dereference, like this:

  [  475.300000] CPU 0 Unable to handle kernel paging request at virtual address 000000f0, epc == 801cdcf0, ra == 801c7eac
  [  475.310000] Oops[#1]:
  [  475.310000] Cpu 0
  [  475.310000] $ 0   : 00000000 00000000 00000000 00000001
  [  475.310000] $ 4   : 828dde00 00000005 828dde08 ffffffff
  [  475.310000] $ 8   : 00380081 00380081 82902a40 00000001
  [  475.310000] $12   : 00000037 00370081 00000001 00000000
  [  475.310000] $16   : 82865000 828dde08 828dde00 00000001
  [  475.310000] $20   : 00000080 00460000 00000002 77151448
  [  475.310000] $24   : 00000000 801abfd4
  [  475.310000] $28   : 82cc2000 82cc3d58 0053c3c4 801c7eac
  [  475.310000] Hi    : 00000007
  [  475.310000] Lo    : 00000004
  [  475.310000] epc   : 801cdcf0 ar8216_remove+0x1c/0x94
  [  475.310000]     Tainted: G           O
  [  475.310000] ra    : 801c7eac phy_remove+0x4c/0x6c
  [  475.310000] Status: 1000cc03    KERNEL EXL IE
  [  475.310000] Cause : 00800008
  [  475.310000] BadVA : 000000f0
  [  475.310000] PrId  : 00019750 (MIPS 74Kc)
  [  475.310000] Modules linked in: ath79_wdt ledtrig_usbdev ledtrig_netdev ag71xx(-) nf_nat_irc nf_nat_ftp nf_conntrack_irc nf_conntrack_ft
  p ipt_MASQUERADE iptable_nat xt_nat nf_nat_ipv4 nf_nat pppoext_conntrack xt_CT iptable_raw xt_state nf_conntrack_ipv4 nf_defrag_ipv4 nf_co
  nntrack ehci_hcd pppox ipt_REJECT xt_TCPMSS xt_LOG xt_comment xt_multiport xt_mac xt_limit iptable_mangle iptable_filter ip_tables xt_tcpu
  dp x_tables ppp_async ppp_generic slhc ath9k(O) ath9k_common(O) ath9k_hw(O) ath(O) mac80211(O) usbcore usb_common nls_base crc_ccitt cfg80
  211(O) compat(O) arc4 crypto_blkcipher aead ledtrig_timer ledtrig_default_on leds_gpio gpio_button_hotplug(O)
  [  475.310000] Process rmmod (pid: 1160, threadinfo=82cc2000, task=83969920, tls=7747c440)
  [  475.310000] Stack : 828dde08 802f5004 802f4680 00000001 828ddf70 801c7eac 802f4680 801ad6d8
          82902940 00000000 828dde08 802f5004 802f4680 801ad770 00000002 80269d94
          00000000 00000001 00000080 828dde08 828dde3c 801ad7fc 82902940 00000000
          83859100 00000000 8384dd2c 8384dd2c 828dde08 801ad230 82902800 00000000
          00000000 001a0041 828dde08 828dde08 802e80e8 801aac44 00000080 00460000
          ...
  [  475.310000] Call Trace:
  [  475.310000] [<801cdcf0>] ar8216_remove+0x1c/0x94
  [  475.310000] [<801c7eac>] phy_remove+0x4c/0x6c
  [  475.310000] [<801ad770>] __device_release_driver+0x6c/0xd0
  [  475.310000] [<801ad7fc>] device_release_driver+0x28/0x40
  [  475.310000] [<801ad230>] bus_remove_device+0xd8/0x10c
  [  475.310000] [<801aac44>] device_del+0x110/0x170
  [  475.310000] [<801aacb8>] device_unregister+0x14/0x28
  [  475.310000] [<801c92b0>] mdiobus_unregister+0x4c/0x70
  [  475.310000] [<82913060>] ag71xx_remove_ar8216_header+0xdc/0x5a8 [ag71xx]
  [  475.310000]
  [  475.310000]
  Code: 1200001c  8c82017c  ac800128 <8c4500f0> 3c03ffdf  3463ffff 00a31824  ac4300f0  ac4000e0

Add a detach callback and disable packet mangling in
that to fix the problem.

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35511 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-07 15:18:32 +00:00
Gabor Juhos 2f769ba91f generic: ar8216: clear driver specific data pointer in phy_device
This is needed to avoid a NULL pointer dereference:

  [   19.525270] Unable to handle kernel paging request for data at address 0x00000018
  [   19.532750] Faulting instruction address: 0xc016e104
  [   19.537714] Oops: Kernel access of bad area, sig: 11 [#1]
  [   19.543102] P1010 RDB
  [   19.545365] Modules linked in: booke_wdt nf_nat_irc nf_nat_ftp nf_conntrack_irc nf_conntrack_ftp ipt_MASQUERADE iptable_nat xt_nat d
  [   19.590725] NIP: c016e104 LR: c0171490 CTR: 00000000
  [   19.595681] REGS: c4bc3c10 TRAP: 0300   Tainted: G        W  O (3.7.6)
  [   19.602284] MSR: 00029000 <CE,EE,ME>  CR: 82002022  XER: 20000000
  [   19.608381] DEAR: 00000018, ESR: 00000000
  [   19.612382] TASK = c4cd9c80[2070] 'ifconfig' THREAD: c4bc2000
  GPR00: 00000001 c4bc3cc0 c4cd9c80 00000000 c7811000 00000000 00000000 0000e8ec
  GPR08: 0000e8eb 00000000 00029000 00000001 00000000 100801f8 1005c51c 1005c514
  GPR16: 1005c468 1005c54c 1005c258 1005c530 10060000 00000000 c7811000 ffff8914
  GPR24: c7815030 c793e400 10063adb 00000000 c7811000 c045594c c78ca600 c7815000
  [   19.646352] NIP [c016e104] register_switch+0x98/0x2d0
  [   19.651397] LR [c0171490] ar8216_config_init+0x2d8/0x3f4
  [   19.656697] Call Trace:
  [   19.659138] [c4bc3cc0] [c0170490] ar8216_mii_read+0x64/0xc4 (unreliable)
  [   19.665835] [c4bc3d00] [c0171490] ar8216_config_init+0x2d8/0x3f4
  [   19.671835] [c4bc3d20] [c016cf8c] phy_init_hw+0x50/0x6c
  [   19.677053] [c4bc3d30] [c016d078] phy_attach_direct+0xd0/0xf8
  [   19.682793] [c4bc3d50] [c016d154] phy_connect_direct+0x24/0x68
  [   19.688621] [c4bc3d70] [c0183b70] of_phy_connect+0x48/0x6c
  [   19.694102] [c4bc3d90] [c0175aac] gfar_enet_open+0x254/0x3d8
  [   19.699755] [c4bc3db0] [c019acc4] __dev_open+0xc0/0x120
  [   19.704975] [c4bc3dd0] [c019af98] __dev_change_flags+0xd4/0x15c
  [   19.710888] [c4bc3df0] [c019b0d4] dev_change_flags+0x1c/0x60
  [   19.716544] [c4bc3e10] [c01ebb94] devinet_ioctl+0x290/0x690
  [   19.722111] [c4bc3e70] [c01ec8d4] inet_ioctl+0x88/0xbc
  [   19.727245] [c4bc3e80] [c0186b98] sock_ioctl+0x258/0x294
  [   19.732551] [c4bc3ea0] [c009c00c] do_vfs_ioctl+0x6a4/0x728
  [   19.738031] [c4bc3f10] [c009c0d4] sys_ioctl+0x44/0x70
  [   19.743077] [c4bc3f40] [c000c74c] ret_from_syscall+0x0/0x3c
  [   19.748646] --- Exception: c01 at 0x48091b34
  [   19.748646]     LR = 0x480e4b64
  [   19.756033] Instruction dump:
  [   19.758991] 2f830000 907f0050 3860fff4 419e021c 837f0000 38000000 901f0038 901f0040
  [   19.766744] 901f003c 7f600034 5400d97e 0f000000 <801b0018> 2f800000 40be0010 801b001c

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35497 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-05 08:39:26 +00:00
Gabor Juhos 708c4a4f33 generic: ar8216: unregister switch on error path
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35496 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-05 08:39:24 +00:00
Hauke Mehrtens 2fe7bc5108 kernel: b53: the b53 spi driver depends on spi
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35340 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-01-27 21:39:53 +00:00
Hauke Mehrtens 16d7ea5f38 kernel: remove __devinit, __devexit and __devexit_p for kernel 3.8
These attributes where removed with kernel 3.8 and are now causing compile errors.


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35328 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-01-27 17:48:48 +00:00
Jonas Gorski 793f269e52 generic: add b53 swconfig switch driver
Add swconfig switch driver for Broadcom BCM53XX switch chips. Supports
switches connected through MDIO, SPI or memory mapped registers, and
supports BCM5325, BCM539x, BCM531x5 and the BCM63XX internal switch
chips.

Tested are BCM5325 trough MDIO, BCM53115 through SPI, and BCM6328.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35305 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-01-23 10:12:33 +00:00
Jonas Gorski aecebbaed2 generic: rtl8366_smi: only assign pvid if no pvid was set yet
Only assign a pvid if the current pvid is 0. Fixes using mixed tagged
and untagged traffic on a port and the untagged vlan isn't the last one
of which the port is a member.

Tested on RTL8366S and RTL8367R.

Fixes #8501.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35227 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-01-18 15:19:11 +00:00
Gabor Juhos 2e918d7ca5 generic: ar8216: add sgmii_delay_en field to ar8327_platform_data
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34881 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-12-25 18:45:31 +00:00
Gabor Juhos cd8ad1441e generic: ar8216: don't use 0 as default VID on AR8327
VID0 is reserved for priority-tagged packets.

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34862 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-12-22 18:30:04 +00:00
Gabor Juhos 911703d3d7 generic: ar8316: allow to configure port 6 via platform data on AR8327
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34847 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-12-22 12:12:37 +00:00
Gabor Juhos 50709b5321 generic: ar8216: rename cpuport_cfg to port0_cfg in ar8327_platform_data
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34846 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-12-22 12:12:35 +00:00
John Crispin 29d0dc4ad3 [kernel] make to rtl8366_smi of binding use gpio_is_valid
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34816 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-12-21 13:47:14 +00:00
Gabor Juhos 2bd28b3fe4 generic: rtl836x: fix compiler warnings
CC      drivers/net/phy/rtl8366rb.o
In file included from drivers/net/phy/rtl8366s.c:16:0:
include/linux/of_platform.h:106:13: warning: 'struct device' declared inside parameter list [enabled by default]
include/linux/of_platform.h:106:13: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]
drivers/net/phy/rtl8366s.c: In function 'rtl8366s_probe':
drivers/net/phy/rtl8366s.c:1094:2: warning: label 'err_out' defined but not used [-Wunused-label]
drivers/net/phy/rtl8366s.c:1055:32: warning: unused variable 'pdata'[-Wunused-variable]
  CC      drivers/net/phy/rtl8366rb.o
In file included from drivers/net/phy/rtl8366rb.c:17:0:
include/linux/of_platform.h:106:13: warning: 'struct device' declared inside parameter list [enabled by default]
include/linux/of_platform.h:106:13: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]
drivers/net/phy/rtl8366rb.c: In function 'rtl8366rb_probe':
drivers/net/phy/rtl8366rb.c:1214:2: warning: label 'err_out' defined but not used [-Wunused-label]
drivers/net/phy/rtl8366rb.c:1175:32: warning: unused variable 'pdata'[-Wunused-variable]
  CC      drivers/net/phy/rtl8367.o
In file included from drivers/net/phy/rtl8367.c:15:0:
include/linux/of_platform.h:106:13: warning: 'struct device' declared inside parameter list [enabled by default]
include/linux/of_platform.h:106:13: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]
drivers/net/phy/rtl8367.c: In function 'rtl8367_probe':
drivers/net/phy/rtl8367.c:1712:2: warning: label 'err_out' defined but not used [-Wunused-label]
drivers/net/phy/rtl8367.c:1677:32: warning: unused variable 'pdata' [-Wunused-variable]
  CC      drivers/net/phy/rtl8367b.o
In file included from drivers/net/phy/rtl8367b.c:15:0:
include/linux/of_platform.h:106:13: warning: 'struct device' declared inside parameter list [enabled by default]
include/linux/of_platform.h:106:13: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]
drivers/net/phy/rtl8367b.c: In function 'rtl8367b_probe':
drivers/net/phy/rtl8367b.c:1494:2: warning: label 'err_out' defined but not used [-Wunused-label]
drivers/net/phy/rtl8367b.c:1459:32: warning: unused variable 'pdata' [-Wunused-variable]

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34731 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-12-17 13:02:18 +00:00
Jonas Gorski 2c6f31f9d5 linux: generic: rtl836*: fix compilation with !CONFIG_OF
fixes the following errors caused by r34682:

  CC [M]  drivers/net/phy/rtl8366_smi.o
In file included from drivers/net/phy/rtl8366_smi.c:26:0:
drivers/net/phy/rtl8366_smi.h:149:46: warning: 'struct platform_device' declared inside parameter list [enabled by default]
drivers/net/phy/rtl8366_smi.h:149:46: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]
drivers/net/phy/rtl8366_smi.c:1398:65: warning: 'struct platform_device' declared inside parameter list [enabled by default]
drivers/net/phy/rtl8366_smi.c: In function 'rtl8366_smi_probe_plat':
drivers/net/phy/rtl8366_smi.c:1400:44: error: dereferencing pointer to incomplete type
drivers/net/phy/rtl8366_smi.c:1402:11: error: dereferencing pointer to incomplete type
drivers/net/phy/rtl8366_smi.c:1403:16: error: dereferencing pointer to incomplete type
drivers/net/phy/rtl8366_smi.c: At top level:
drivers/net/phy/rtl8366_smi.c:1415:46: warning: 'struct platform_device' declared inside parameter list [enabled by default]
drivers/net/phy/rtl8366_smi.c:1415:21: error: conflicting types for 'rtl8366_smi_probe'
drivers/net/phy/rtl8366_smi.h:149:21: note: previous declaration of 'rtl8366_smi_probe' was here
drivers/net/phy/rtl8366_smi.c: In function 'rtl8366_smi_probe':
drivers/net/phy/rtl8366_smi.c:1420:31: error: dereferencing pointer to incomplete type
drivers/net/phy/rtl8366_smi.c:1424:10: error: dereferencing pointer to incomplete type
drivers/net/phy/rtl8366_smi.c:1425:3: warning: passing argument 1 of 'rtl8366_smi_probe_of' from incompatible pointer type [enabled by default]
drivers/net/phy/rtl8366_smi.c:1392:19: note: expected 'struct device_node *' but argument is of type 'struct platform_device *'
drivers/net/phy/rtl8366_smi.c:1427:3: warning: passing argument 1 of 'rtl8366_smi_probe_plat' from incompatible pointer type [enabled by default]
drivers/net/phy/rtl8366_smi.c:1398:5: note: expected 'struct platform_device *' but argument is of type 'struct platform_device *'
drivers/net/phy/rtl8366_smi.c: At top level:
drivers/net/phy/rtl8366_smi.c:1438:1: error: conflicting types for 'rtl8366_smi_probe'
drivers/net/phy/rtl8366_smi.h:149:21: note: previous declaration of 'rtl8366_smi_probe' was here
make[7]: *** [drivers/net/phy/rtl8366_smi.o] Error 1
make[6]: *** [drivers/net/phy] Error 2
make[5]: *** [drivers/net] Error 2
make[4]: *** [drivers] Error 2

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34703 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-12-15 13:32:02 +00:00
John Crispin 7d0cb0b8f0 [kernel] make rtl8366 driver OF capable
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34682 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-12-15 01:59:08 +00:00
Gabor Juhos 8217b9bc8c generic: ar8216: set delay values for SGMII mode on AR8327
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34315 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-11-23 20:55:26 +00:00
Gabor Juhos 1ef9ccffe2 generic: ar8216: introduce ar8216_mib_op helper
The ar8216_mib_{capture,flush} functions are similar.
Move the common code into a helper and use that from
the original functions.

This change also fixes a lockdep warning in
ar8216_mib_flush.

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34297 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-11-22 10:33:03 +00:00
Gabor Juhos b152f5091e swconfig: make it compatible with 3.7
swconfig does not compile with 3.7 because

struct netlink_notify->pid    has been renamed to
struct netlink_notify->portid

and

struct genl_info->snd_pid     has been renamed to
struct genl_info->snd_portid

Use the new names and add compatibility patches
to 3.3 and 3.6.

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34288 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-11-21 17:38:11 +00:00
Gabor Juhos 7ce8530f4f generic: ar8216: fix port number check in 'ar8xxx_mib_work_func'
Also add a WARN_ON to 'ar8216_mib_fetch_port_stat'

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34283 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-11-20 20:40:04 +00:00
Gabor Juhos 6446586528 generic: ar8216: remove an unblanced mutex_unlock call
Fixes the following warning:

[   94.080000]
[   94.080000] =====================================
[   94.080000] [ BUG: bad unlock balance detected! ]
[   94.080000] 3.3.8 #2 Tainted: G           O
[   94.080000] -------------------------------------
[   94.080000] swconfig/1220 is trying to release lock (&priv->mib_lock) at:
[   94.080000] [<801df8f4>] ar8216_sw_get_port_mib+0x138/0x16c
[   94.080000] but there are no more locks to release!
[   94.080000]
[   94.080000] other info that might help us debug this:
[   94.080000] 2 locks held by swconfig/1220:
[   94.080000]  #0:  (genl_mutex){+.+...}, at: [<80222430>] genl_rcv+0x14/0x34
[   94.080000]  #1:  (&dev->sw_mutex){+.+...}, at: [<801da018>] swconfig_get_dev+0x88/0xb4
[   94.080000]
[   94.080000] stack backtrace:
[   94.080000] Call Trace:
[   94.080000] [<8028dc58>] dump_stack+0x8/0x34
[   94.080000] [<800a5128>] print_unlock_inbalance_bug+0xe0/0xfc
[   94.080000] [<800a82c0>] lock_release+0x18c/0x1c8
[   94.080000] [<80292074>] __mutex_unlock_slowpath+0xd8/0x17c
[   94.080000] [<801df8f4>] ar8216_sw_get_port_mib+0x138/0x16c
[   94.080000] [<801db688>] swconfig_get_attr+0xbc/0x394
[   94.080000] [<8022261c>] genl_rcv_msg+0x1cc/0x214
[   94.080000] [<80221a18>] netlink_rcv_skb+0x6c/0xe8
[   94.080000] [<80222440>] genl_rcv+0x24/0x34
[   94.080000] [<80221370>] netlink_unicast+0x15c/0x22c
[   94.080000] [<8022175c>] netlink_sendmsg+0x240/0x2d0
[   94.080000] [<801ef544>] sock_sendmsg+0x84/0x9c
[   94.080000] [<801f0648>] __sys_sendmsg+0x1cc/0x270
[   94.080000] [<801f207c>] sys_sendmsg+0x48/0x7c
[   94.080000] [<8006ad78>] stack_done+0x20/0x40
[   94.080000]

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34282 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-11-20 20:40:03 +00:00
Gabor Juhos 756a18fffc generic: ar8216: add missing locking calls
Fixes the following lockdep warning:

[   19.160000] ------------[ cut here ]------------
[   19.160000] WARNING: at drivers/net/phy/ar8216.c:322 ar8216_rmw+0x54/0xa4()
[   19.170000] Modules linked in: nf_defrag_ipv4 nf_conntrack ehci_hcd
sd_mod pppox ipt_REJECT xt_TCPMSS ipt_LOG xt_comment xt_multip
ort xt_mac xt_limit iptable_mangle iptable_filter ip_tables xt_tcpudp
x_tables ppp_async ppp_generic slhc ath9k(O) ath9k_common(O) at
h9k_hw(O) ath(O) mac80211(O) usbcore usb_common scsi_mod nls_base crc7
crc_itu_t crc_ccitt cfg80211(O) compat(O) arc4 aes_generic cry
pto_blkcipher cryptomgr aead crypto_hash crypto_algapi ledtrig_timer
ledtrig_default_on leds_gpio gpio_button_hotplug(O)
[   19.210000] Call Trace:
[   19.220000] [<8028dc38>] dump_stack+0x8/0x34
[   19.220000] [<80072da0>] warn_slowpath_common+0x78/0xa4
[   19.230000] [<80072de4>] warn_slowpath_null+0x18/0x24
[   19.230000] [<801de820>] ar8216_rmw+0x54/0xa4
[   19.240000] [<801df460>] ar8216_mib_capture+0x70/0xd0
[   19.240000] [<801df944>] ar8xxx_mib_work_func+0x34/0x98
[   19.250000] [<80089a7c>] process_one_work+0x28c/0x460
[   19.250000] [<8008a630>] worker_thread+0x22c/0x334
[   19.260000] [<8008e544>] kthread+0x88/0x90
[   19.260000] [<80065020>] kernel_thread_helper+0x10/0x18
[   19.270000]
[   19.270000] ---[ end trace 22e9d696adfa6a08 ]---

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34281 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-11-20 20:40:00 +00:00
Gabor Juhos 51c169ab3d generic: ar8216: add MIB counter support for the AR8216 switch as well
Thanks to Jonas Gorski for the reference URL.

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34245 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-11-18 16:21:00 +00:00
Gabor Juhos 232b64b668 generic: ar8216: rename AR8216_*_STATS_* defines
The names are misleading, those are only valid from
AR8236. The AR8216 chip uses different offsets.

Thanks to Jonas Gorski for the report.

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34244 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-11-18 16:20:56 +00:00
Gabor Juhos 3c8aacbed8 generic ar8216: allow to read/reset MIB counters via swconfig
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34243 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-11-18 12:26:35 +00:00
Gabor Juhos 1101fbc106 generic: ar8216: use dynamically allocated private data in ar8216_probe
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34242 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-11-18 12:26:34 +00:00
Gabor Juhos d88a6ff008 generic: use mtd_read in myloader parser
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33952 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-10-27 07:57:59 +00:00
Gabor Juhos 0cbec5aa1e generic: swconfig: use led_set_brightness in LED control code
The 'led_brightness_set' function has
been renamed to 'led_set_brightness'
in recent ernels. Use the new name and
add a compatibility patch for 3.3.

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33946 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-10-26 18:58:18 +00:00
Florian Fainelli 835d9c9a76 [kernel] swconfig: get rid of the NLA_PUT_* macros
Upstream kernel 3.6 has removed this usage, use the plain functions directly as
intended.

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33906 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-10-24 13:05:04 +00:00
Gabor Juhos 3f74a4920a generic: add driver for the the RTL8367R{B,-VB} switches
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33839 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-10-18 07:22:56 +00:00
John Crispin 44090b37e4 [kernel] gpiodev/gpioctl RIP
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33725 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-10-11 11:58:09 +00:00
John Crispin e66a7efb23 [kernel] fixes gpio_dev un/reload balancing
Signed-off-by: SHI Bin <shibin@ctsing.com>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33183 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-08-14 12:32:11 +00:00
Gabor Juhos 82d7a65e63 generic: rtl8366_smi: increase delay after switch hw reset
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33077 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-08-10 06:32:00 +00:00
Gabor Juhos fcbe8ef24f generic: rtl836x: add hw_reset field to struct rtl8366_smi
It will be used to start/stop the switch if that is
supported by the given board.

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@32943 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-08-02 09:54:21 +00:00
Gabor Juhos 43975158da generic: rtl8366_smi: use __rtl8366_smi_cleanup instead of gpio_free calls
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@32942 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-08-02 09:54:13 +00:00
John Crispin 841bbe2dbd [kernel] clean up pwm patches and drivers
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@32901 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-07-28 20:47:08 +00:00
Gabor Juhos 4ecbabb00b generic: ar8216: start aneg on each PHY of the AR8327
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@32604 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-07-05 08:26:39 +00:00
Gabor Juhos 8d2d96fb1e generic: ar8216: allow to configure AR8327 LEDs via platform data
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@32456 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-06-19 10:44:16 +00:00
Gabor Juhos 8e8353898c generic: ar8216: add revision specific PHY fixups for AR8327
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@32000 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-05-29 16:39:27 +00:00
Gabor Juhos 37ce7c5714 generic: ar8216: replace chip_type field with chip_{ver,rev} in ar8216_priv
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31999 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-05-29 16:39:26 +00:00
Gabor Juhos 049f00ab72 generic: ar8216: add chip_is_ar8{216,236,316,327} helpers
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31998 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-05-29 16:39:24 +00:00
Gabor Juhos 54d14f8850 generic: rtl8367: rename a misnamed variable
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31917 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-05-27 17:09:47 +00:00
Gabor Juhos e4f7489ec1 generic: rtl8366_smi: remove duplicated spinlock initialization
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31916 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-05-27 17:09:45 +00:00
Gabor Juhos d89221e9ce generic: rtl8366_smi: rename debugfs Kconfig symbol
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31915 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-05-27 17:09:43 +00:00
Gabor Juhos d57d3c1a10 generic: rtl8367: allow to use VLANs > 31
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31914 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-05-27 17:09:41 +00:00
Felix Fietkau f20d1938b5 kernel: rewrite the phy packet hook, put it in the network stack to avoid having to keep non-upstream ethernet driver changes
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31637 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-05-06 21:19:14 +00:00
Felix Fietkau ee9f3b6a3c atheros: update to 3.3.4 (based on work by acoul), fix mvswitch driver for newer kernels
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31625 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-05-06 17:08:30 +00:00
Gabor Juhos 2341f7444d linux: rtl836x: add a generic reset_switch function
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31536 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-04-29 18:29:31 +00:00
Gabor Juhos bd9308390c linux: rtl836x: rename rtl836*_hw_init to rtl836*_setup
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31535 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-04-29 18:29:29 +00:00
Gabor Juhos b29026e34d linux: rtl836x: add a reset_chip callback to rtl8366_smi_ops
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31534 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-04-29 18:29:26 +00:00
Felix Fietkau a4fcc4529e ar8216: enable forwarding of multicast frames to the cpu port on ar8327 (thx, SeG)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31441 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-04-22 19:19:49 +00:00
John Crispin ea1c8334d9 [ar8216] fixes breakage introduced in 776722ce36ac95877efb7fd771dde2f6ffc96433
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31054 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-22 13:07:34 +00:00
Gabor Juhos 69e2e9c108 generic: ar8216: add support for the AR8327 chip
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31011 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-18 22:06:55 +00:00
Gabor Juhos baeb3db74d generic: ar8216: allow to use more ports
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31010 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-18 22:06:51 +00:00
Gabor Juhos 998ee8cbbc generic: ar8216: reorder chip specific functions
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31009 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-18 22:06:48 +00:00
Gabor Juhos 16e8051306 generic: ar8216: reorder switch_dev specific functions
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31008 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-18 22:06:45 +00:00
Gabor Juhos 8213a8e8f5 generic: ar8216: use ar8216_sw_ prefix for switchdev related functions
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31007 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-18 22:06:42 +00:00
Gabor Juhos 71f7596c79 generic: ar8216: use switch_dev->ports in for loops
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31006 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-18 22:06:40 +00:00
Gabor Juhos e616b588f8 generic: ar8216: add read_port_status field to ar8xxx_chip
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31005 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-18 22:06:39 +00:00
Gabor Juhos 44eec652f1 generic: ar8216: add init_globals field to ar8xxx_chip
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31004 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-18 22:06:36 +00:00
Gabor Juhos 3b2249677c generic: ar8216: add caps field to ar8xxx_chip
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31003 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-18 22:06:33 +00:00
Gabor Juhos 959df6a165 generic: ar8216: add vtu_load_vlan field to ar8xxx_chip
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31002 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-18 22:06:30 +00:00
Gabor Juhos 071a509f67 generic: ar8216: add vtu_flush field to ar8xxx_chip
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31001 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-18 22:06:26 +00:00
Gabor Juhos 0d1a31938c generic: ar8216: add init_port field to ar8xxx_chip
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31000 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-18 22:06:23 +00:00
Gabor Juhos d52cff00a4 generic: ar8216: add setup_port field to ar8xxx_chip
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30999 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-18 22:06:19 +00:00
Gabor Juhos ea9e2d7fb2 generic: ar8216: add hw_init field to ar8xxx_chip
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30998 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-18 22:06:15 +00:00
Gabor Juhos 3a4a231982 generic: ar8216: add a separate structure for chip specific stuff
Also add a hw_init function into that.

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30997 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-18 22:06:12 +00:00
Gabor Juhos 595d1849e5 generic: ar8216: rename chip field of struct ar8216
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30996 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-18 22:06:08 +00:00
Gabor Juhos baee093c4e generic: ar8216: move ar8216_id_chip function
Also remove the inline annotation.

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30995 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-18 22:06:05 +00:00
Gabor Juhos e4682f031a generic: ar8216: rename ar8216_ops to ar8216_sw_ops
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30994 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-18 22:06:03 +00:00
Felix Fietkau a86e95542d swconfig: use a mutex instead of a spinlock, many swconfig calls sleep
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30952 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-15 19:32:31 +00:00
Felix Fietkau 531638e839 ar8216: fix a MTU related regression
Switch reset on AR8316 appears to clobber the MTU configuration register
and possibly other global config registers. Move global configuration
register init writes back to the reset callback.

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30951 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-15 16:57:27 +00:00
Gabor Juhos 6189648864 ar71xx: move micrel PHY driver to the generic linux target
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30946 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-15 09:25:53 +00:00
Gabor Juhos 72f225874b generic: ar8216: merge multiple if statements in ar8216_hw_apply
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30928 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-13 17:33:12 +00:00
Gabor Juhos c1db1347f6 generic: ar8216: use usleep_range in ar8216_mii_{read,write}
msleep(1) can sleep for up to 20ms.

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30885 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-11 17:19:14 +00:00
Gabor Juhos 4769d71b06 generic: ar8216: add a helper function for writing PHY debug registers
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30884 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-11 16:49:35 +00:00
Gabor Juhos 1fb98d5708 generic: ar8216: add lockep assertion to ar8216_rmw
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30883 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-11 16:49:33 +00:00
Gabor Juhos 488b7bdd9b generic: ar8216: coding style cleanup
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30857 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-08 10:21:14 +00:00
Gabor Juhos 6808474a82 generic: ar8216: don't use static variable in ar8236_hw_init
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30856 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-08 10:21:12 +00:00
Gabor Juhos 3f153edf08 generic: ar8216: move register inititalization into hw_init
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30855 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-08 10:21:11 +00:00
Gabor Juhos 0dbb34d4d6 generic: ar8216: set chip type directly in ar8216_id_chip
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30854 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-08 10:21:10 +00:00
Gabor Juhos 4e75ad23ad generic: ar8216: simplify ar8216_config_init
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30853 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-08 10:21:08 +00:00
Gabor Juhos d41f998ce0 generic: ar8216: move port initialization into a separate function
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30848 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-07 16:32:46 +00:00
Gabor Juhos 295e64ddd8 generic: ar8216: improve ar8216_wait_bit function
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30847 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-07 16:32:45 +00:00
Gabor Juhos 6bf74d0a6c generic: ar8216: use ar8216_read_port_link to get the CPU port link parameters
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30846 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-07 16:32:43 +00:00
Gabor Juhos a5c699969d generic: ar8216: use the generic get_port_link implementation
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30845 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-07 16:32:42 +00:00
Gabor Juhos 99d475bceb generic: rtl8367: use the generic get_port_link implementation
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30844 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-07 16:32:40 +00:00
Gabor Juhos 79095804dc generic: rtl8366s: use the generic get_port_link implementation
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30843 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-07 16:32:38 +00:00
Gabor Juhos 81e9ccaa83 generic: rtl8366rb: use the generic get_port_link implementation
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30842 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-07 16:32:37 +00:00
Gabor Juhos 30da07d668 generic: swconfig: add a generic get_port_link implementation
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30839 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-07 16:32:33 +00:00
Gabor Juhos 0c2840d0b6 generic: ar8216: use mdiobus_write in ar8236_hw_init
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30838 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-07 16:32:31 +00:00
Gabor Juhos 3e76187a42 generic: ar8216: use bus->mdio_lock directly in ar8216_mii_{read,write}
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30837 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-07 16:32:30 +00:00
Gabor Juhos ccdc2541af generic: ar8216: fix phy driver name
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30836 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-03-07 16:32:28 +00:00
Jo-Philipp Wich 835f3022b5 [generic] revert unrelated change in previous commit
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30738 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-02-27 09:34:31 +00:00
Jo-Philipp Wich 1aa8da2b17 [generic] partly revert r30708, it breaks various arches
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30737 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-02-27 09:33:36 +00:00
Gabor Juhos 16b4bf4bc9 generic: allow to build myloader mtd parser for 3.2+
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29858 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-01-22 18:36:49 +00:00
Gabor Juhos 31a1cdad82 generic: rtl8366: add rtl8366_smi_write_reg_noack helper
After issuing a soft reset on the RT8366{S,RB}
switch, waiting for the last acknowlegement fails
in rtl8366_smi_write_reg. Add a _noack version of
the function and use that for issuing a soft reset.

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29844 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-01-21 22:44:09 +00:00
Jo-Philipp Wich 2a947c251e [generic] rtl8366: fix rtl8366_smi_detect() after r29677
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29732 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-01-13 19:17:58 +00:00
Felix Fietkau 15d2a21702 ar8216: use vlan configuration for connecting ports (forced to be untagged) even with vlan_enable=0, but keep them isolated before the switch has been configured
this makes enable_vlan=0 practical for vlan passthrough

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29719 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-01-12 10:15:11 +00:00
Felix Fietkau a556557bc7 ar8216: do not strip vlan tags when running with vlan_enable=0
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29718 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-01-12 10:15:08 +00:00
Gabor Juhos dcb14852cf generic: add driver for the RTL8367R/M switches
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29678 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-01-07 19:36:31 +00:00
Gabor Juhos 7005c737ab generic: rtl8366: preparing for RTL8367 support
* make clock delay configurable
* make read,write commands configurable
* use u16 for member and untag fields

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29677 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-01-07 19:36:30 +00:00
Gabor Juhos 8ac68711cc generic: rtl8366_smi: add timeout message
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29676 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-01-07 19:36:25 +00:00
Gabor Juhos fa9d5491b5 kernel: swconfig: introduce a generic switch LED trigger
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29627 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-12-31 15:02:30 +00:00
Gabor Juhos be0c011b6e kernel: ar8216: add support for the AR8236 switch
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28993 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-11-12 14:09:52 +00:00
Gabor Juhos 663c9eaaa1 kernel: ar8216: move port vlan setup into a separate function
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28992 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-11-12 14:09:50 +00:00
Gabor Juhos 2149ed4fe1 kernel: swconfig: add a missing unlock in error path
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28753 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-11-04 14:38:31 +00:00
Jonas Gorski 05fbd33f9f ar8216: use mdiobus_{read,write} to ensure proper locking
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28421 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-10-11 23:05:10 +00:00
Gabor Juhos bb81689e8d generic: jumbo frames support for rtl8366s
This patch adds the option to enable jumbo frames on the rtl8366s
switch. This is almost exactly the same as the first patch at
https://dev.openwrt.org/ticket/7977 and it has been requested
in a comment there.

I have tested this and it successfully allows devices on the switch
using jumbo frames to communicate.

Signed-off-by: Ash Hughes <ashley.hughes@blueyonder.co.uk>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28267 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-09-21 11:47:38 +00:00
Gabor Juhos 0766dc945b generic: ar8216: add support for get link status
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27989 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-08-15 14:11:41 +00:00
Jonas Gorski c86f6a9235 swconfig: Add generic switch identifiers
Also make switches available under a generic name "switch<num>" for device
name agnostic access. The old device name is used as an alias for backward
compatibility.

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27800 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-07-27 18:00:18 +00:00
Felix Fietkau 01e740858d rtl8366_smi: implement a function for detecting whether the attached switch is RTL8366S or RTL8366RB
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27755 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-07-24 14:40:31 +00:00
Felix Fietkau 9e73b3969d rtl8366: unify rtl8366s and rtl8366rb platform data
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27754 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-07-24 14:40:23 +00:00
Felix Fietkau efea8a29c9 fix the gpio_dev driver: remove existing forward port patches, use unlocked_ioctl on all platforms and fix the arguments to the ioctl handler (based on patch from #9198)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27322 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-07-01 03:20:13 +00:00
John Crispin 4d115d3804 [ledtrig-netdev]
we dont need 1024 bytes buffer. 128  bytes is enough.



git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27143 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-06-09 07:08:54 +00:00
John Crispin 3a033d5456 [PATCH v3] (respin) 802.1Q VLAN support for ADM6996M/ADM6996FC
This patch adds 802.1Q VLAN support for the ADM6996M chip.

The driver is loaded for both the FC and M model. It will detect which of the
two chips is connected. The FC model is initialised, but no further
functionality is offered.

The PHY driver will always report "100 Mbit/s, link up", for both the M and FC
models. This reflects the fact that the link between switch chip and Ethernet
MAC is always on[1].

Further documentation can be found in the kernel's
Documentation/networking/adm6996.txt

Signed-of-By: Peter Lebbing <peter@digitalbrains.com>



git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26865 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-05-09 15:21:58 +00:00
Felix Fietkau a07b48aa05 ar8316: automatically detect whether port4 is used as PHY or as a switch port
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26778 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-04-28 21:27:37 +00:00
Felix Fietkau 25ba52f012 ar8216: support AR8316 rev 0 devices
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26776 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-04-28 19:30:43 +00:00
Felix Fietkau e0cb25837f swconfig: Replace SPIN_LOCK_UNLOCKED with DEFINE_SPINLOCK
SPIN_LOCK_UNLOCKED has been deprecated since 2.6.19 and will get removed
in 2.6.39, so replace it with DEFINE_SPINLOCK().

Signed-off-by: Jonas Gorski <jonas.gorski+openwrt@gmail.com>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26770 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-04-26 23:05:29 +00:00
Gabor Juhos 6c38894393 generic: rtl8366{s,rb}: remove the PHY driver.
Since the PHY driver is only used for the WAN port and there is virtually
no difference between it and the generic PHY driver, we can sefely remove
it.

Signed-off-by: Jonas Gorski <jonas.gorski+openwrt@gmail.com>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26600 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-04-12 09:29:07 +00:00
Felix Fietkau ef8917bb79 rtl8306: do not overwrite registers in the phy fixup, it could mess up other switches (fixes #8911)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26410 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-04-02 16:35:22 +00:00
Gabor Juhos e67db2d2a3 generic: rtl8366s: allow initial register values to be passed via platform_data
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@25120 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-01-26 20:35:46 +00:00
Gabor Juhos 751ee501af generic: rtl8366: fix build error
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@24943 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-01-09 05:36:44 +00:00
Gabor Juhos 83ed5e6afe generic: rtl8366: enable vlans before enabling the ports
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@24939 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-01-08 20:24:29 +00:00
Gabor Juhos 38528d474d generic: rtl8366: enable ports only after VLAN configuration is done
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@24938 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-01-08 20:24:26 +00:00
Gabor Juhos b16b9edaed generic: rtl8366: add enable_port helper
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@24937 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-01-08 20:24:22 +00:00
Gabor Juhos 5f98b56afb generic: rtl8366_smi: init VLANs only in first switch initialization
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@24936 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-01-08 20:24:18 +00:00
Gabor Juhos 6b0a12420a generic: rtl8366s: use correct bitmasks in sanity checks
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@24935 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-01-08 18:04:04 +00:00
Gabor Juhos 72097d9b98 generic: rtl8366s: add vlan fid support
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@24934 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-01-08 18:04:00 +00:00
Gabor Juhos 103c147565 generic: rtl8366: add debugfs file for VLAN4K table
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@24933 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-01-08 18:03:57 +00:00
Gabor Juhos 2323c2d47a generic: rtl8366rb: use correct bitmasks in sanity checks
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@24930 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-01-08 11:28:35 +00:00
Gabor Juhos 21a4f56bc6 generic: add LED trigger for USB device presence/activity
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@24646 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-12-17 17:10:11 +00:00
Gabor Juhos 8120006c05 generic: add rtl8366rb switch vlan fid support
Allows to use fids 0 to 7. Default is 0.
Those who will use this don't forget to `set vlan fid` every time
after `set vlan ports` if you want non default behavior.
Minor changes. Version bump.

Signed-off-by: Roman Yeryomin <roman@advem.lv>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@24125 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-11-24 10:01:21 +00:00
Gabor Juhos dae3603170 generic: update gpio_buttons driver
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23984 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-11-12 18:53:01 +00:00
Florian Fainelli 88b6609907 [kernel] fix mvswitch PHY polling setting (#8133)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23862 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-11-04 14:09:20 +00:00
Felix Fietkau 48c1d5e50c rt8366*: use __devinit instead of __init for the probe function to fix a section mismatch
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23573 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-10-21 18:42:05 +00:00
Jo-Philipp Wich e923eb2879 [generic] unify extended vlan id swconfig attributes.
AR8216 and PSB6970 used "pvid", IP17xx used "tag" and RTL8306 called it "vid".
Change all to "vid" and annotate the description with the valid ID range.


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23419 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-10-12 20:49:35 +00:00
Gabor Juhos 9ec1d552db generic: RTL8366S/RB: Fix autonegotiation for the WAN port.
The RTL8366S/RB support connecting a second mac to it and using the 5th
port as an independent phy. Therefore we need to handle autonegotiation
changes for phy 4 like on a single phy device.

This fixes #7980, verified on a WNDR3700.

Signed-off-by: Jonas Gorski <jonas.gorski+openwrt@gmail.com>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23127 3c298f89-4303-0410-b956-a3cf2f4a3e73
2010-09-27 14:42:05 +00:00