Gabor Juhos
3205b52d1c
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>
SVN-Revision: 34297
2012-11-22 10:33:03 +00:00
Gabor Juhos
10d30f2d2d
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>
SVN-Revision: 34288
2012-11-21 17:38:11 +00:00
Gabor Juhos
2a792f32b5
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>
SVN-Revision: 34283
2012-11-20 20:40:04 +00:00
Gabor Juhos
258b2f2dc2
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>
SVN-Revision: 34282
2012-11-20 20:40:03 +00:00
Gabor Juhos
82b57b0c28
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>
SVN-Revision: 34281
2012-11-20 20:40:00 +00:00
Gabor Juhos
863657d040
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>
SVN-Revision: 34245
2012-11-18 16:21:00 +00:00
Gabor Juhos
98f30aac8e
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>
SVN-Revision: 34244
2012-11-18 16:20:56 +00:00
Gabor Juhos
9abd8cd004
generic ar8216: allow to read/reset MIB counters via swconfig
...
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 34243
2012-11-18 12:26:35 +00:00
Gabor Juhos
4b17323b51
generic: ar8216: use dynamically allocated private data in ar8216_probe
...
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 34242
2012-11-18 12:26:34 +00:00
Gabor Juhos
ee9376d153
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>
SVN-Revision: 33946
2012-10-26 18:58:18 +00:00
Florian Fainelli
4afb91a12f
swconfig: get rid of the NLA_PUT_* macros
...
Upstream kernel 3.6 has removed this usage, use the plain functions directly as
intended.
SVN-Revision: 33906
2012-10-24 13:05:04 +00:00
Gabor Juhos
0045449b1b
generic: add driver for the the RTL8367R{B,-VB} switches
...
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 33839
2012-10-18 07:22:56 +00:00
Gabor Juhos
5dd996bc2a
generic: rtl8366_smi: increase delay after switch hw reset
...
SVN-Revision: 33077
2012-08-10 06:32:00 +00:00
Gabor Juhos
e2782eae8e
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.
SVN-Revision: 32943
2012-08-02 09:54:21 +00:00
Gabor Juhos
614ca3cc9e
generic: rtl8366_smi: use __rtl8366_smi_cleanup instead of gpio_free calls
...
SVN-Revision: 32942
2012-08-02 09:54:13 +00:00
Gabor Juhos
6b8392eb12
generic: ar8216: start aneg on each PHY of the AR8327
...
SVN-Revision: 32604
2012-07-05 08:26:39 +00:00
Gabor Juhos
b934fa2f16
generic: ar8216: allow to configure AR8327 LEDs via platform data
...
SVN-Revision: 32456
2012-06-19 10:44:16 +00:00
Gabor Juhos
9e02593b70
generic: ar8216: add revision specific PHY fixups for AR8327
...
SVN-Revision: 32000
2012-05-29 16:39:27 +00:00
Gabor Juhos
0d241e6670
generic: ar8216: replace chip_type field with chip_{ver,rev} in ar8216_priv
...
SVN-Revision: 31999
2012-05-29 16:39:26 +00:00
Gabor Juhos
b2fce19a70
generic: ar8216: add chip_is_ar8{216,236,316,327} helpers
...
SVN-Revision: 31998
2012-05-29 16:39:24 +00:00
Gabor Juhos
86dad96fd0
generic: rtl8367: rename a misnamed variable
...
SVN-Revision: 31917
2012-05-27 17:09:47 +00:00
Gabor Juhos
705d31203c
generic: rtl8366_smi: remove duplicated spinlock initialization
...
SVN-Revision: 31916
2012-05-27 17:09:45 +00:00
Gabor Juhos
9217115687
generic: rtl8366_smi: rename debugfs Kconfig symbol
...
SVN-Revision: 31915
2012-05-27 17:09:43 +00:00
Gabor Juhos
466ef30173
generic: rtl8367: allow to use VLANs > 31
...
SVN-Revision: 31914
2012-05-27 17:09:41 +00:00
Felix Fietkau
0ff3c396d3
kernel: rewrite the phy packet hook, put it in the network stack to avoid having to keep non-upstream ethernet driver changes
...
SVN-Revision: 31637
2012-05-06 21:19:14 +00:00
Felix Fietkau
9b20187ad5
atheros: update to 3.3.4 (based on work by acoul), fix mvswitch driver for newer kernels
...
SVN-Revision: 31625
2012-05-06 17:08:30 +00:00
Gabor Juhos
e931ffd678
linux: rtl836x: add a generic reset_switch function
...
SVN-Revision: 31536
2012-04-29 18:29:31 +00:00
Gabor Juhos
1d9400263f
linux: rtl836x: rename rtl836*_hw_init to rtl836*_setup
...
SVN-Revision: 31535
2012-04-29 18:29:29 +00:00
Gabor Juhos
badd7a3cf2
linux: rtl836x: add a reset_chip callback to rtl8366_smi_ops
...
SVN-Revision: 31534
2012-04-29 18:29:26 +00:00
Felix Fietkau
dcd185c2f8
ar8216: enable forwarding of multicast frames to the cpu port on ar8327 (thx, SeG)
...
SVN-Revision: 31441
2012-04-22 19:19:49 +00:00
John Crispin
f35b9a9a4c
fixes breakage introduced in 776722ce36ac95877efb7fd771dde2f6ffc96433
...
SVN-Revision: 31054
2012-03-22 13:07:34 +00:00
Gabor Juhos
faf82f3e10
generic: ar8216: add support for the AR8327 chip
...
SVN-Revision: 31011
2012-03-18 22:06:55 +00:00
Gabor Juhos
fa7a83df4b
generic: ar8216: allow to use more ports
...
SVN-Revision: 31010
2012-03-18 22:06:51 +00:00
Gabor Juhos
2ddbcb98ee
generic: ar8216: reorder chip specific functions
...
SVN-Revision: 31009
2012-03-18 22:06:48 +00:00
Gabor Juhos
552cffd97a
generic: ar8216: reorder switch_dev specific functions
...
SVN-Revision: 31008
2012-03-18 22:06:45 +00:00
Gabor Juhos
71e356029e
generic: ar8216: use ar8216_sw_ prefix for switchdev related functions
...
SVN-Revision: 31007
2012-03-18 22:06:42 +00:00
Gabor Juhos
9a01936724
generic: ar8216: use switch_dev->ports in for loops
...
SVN-Revision: 31006
2012-03-18 22:06:40 +00:00
Gabor Juhos
2ce9e4753c
generic: ar8216: add read_port_status field to ar8xxx_chip
...
SVN-Revision: 31005
2012-03-18 22:06:39 +00:00
Gabor Juhos
01cad79e03
generic: ar8216: add init_globals field to ar8xxx_chip
...
SVN-Revision: 31004
2012-03-18 22:06:36 +00:00
Gabor Juhos
56cacb3b21
generic: ar8216: add caps field to ar8xxx_chip
...
SVN-Revision: 31003
2012-03-18 22:06:33 +00:00
Gabor Juhos
d1c585d4b1
generic: ar8216: add vtu_load_vlan field to ar8xxx_chip
...
SVN-Revision: 31002
2012-03-18 22:06:30 +00:00
Gabor Juhos
332310fba2
generic: ar8216: add vtu_flush field to ar8xxx_chip
...
SVN-Revision: 31001
2012-03-18 22:06:26 +00:00
Gabor Juhos
d964410cbc
generic: ar8216: add init_port field to ar8xxx_chip
...
SVN-Revision: 31000
2012-03-18 22:06:23 +00:00
Gabor Juhos
006b3b846e
generic: ar8216: add setup_port field to ar8xxx_chip
...
SVN-Revision: 30999
2012-03-18 22:06:19 +00:00
Gabor Juhos
eb5f0067b6
generic: ar8216: add hw_init field to ar8xxx_chip
...
SVN-Revision: 30998
2012-03-18 22:06:15 +00:00
Gabor Juhos
a8371ad566
generic: ar8216: add a separate structure for chip specific stuff
...
Also add a hw_init function into that.
SVN-Revision: 30997
2012-03-18 22:06:12 +00:00
Gabor Juhos
d18133b32d
generic: ar8216: rename chip field of struct ar8216
...
SVN-Revision: 30996
2012-03-18 22:06:08 +00:00
Gabor Juhos
6e143e467f
generic: ar8216: move ar8216_id_chip function
...
Also remove the inline annotation.
SVN-Revision: 30995
2012-03-18 22:06:05 +00:00
Gabor Juhos
1c99979b2c
generic: ar8216: rename ar8216_ops to ar8216_sw_ops
...
SVN-Revision: 30994
2012-03-18 22:06:03 +00:00
Felix Fietkau
b957208807
swconfig: use a mutex instead of a spinlock, many swconfig calls sleep
...
SVN-Revision: 30952
2012-03-15 19:32:31 +00:00