Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							72253b9073 
							
						 
					 
					
						
						
							
							generic: ar8216: start AR8327 switch from the probe routine  
						
						... 
						
						
						
						The AR8327 switch gets its configuration from platform
data or from the device-tree. This allows to start it
from the probe routine. Doing so makes it usable with
ethernet drivers which only connects to the PHY device
when the ethernet interface is opened.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 36050 
						
					 
					
						2013-03-15 16:06:28 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							5503686f69 
							
						 
					 
					
						
						
							
							generic: ar8216: add ar8xxx_start helper  
						
						... 
						
						
						
						Move switch starting code into a separate function.
This makes it usable from other places.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 36049 
						
					 
					
						2013-03-15 16:06:25 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							7ba6a8d8e8 
							
						 
					 
					
						
						
							
							generic: ar8216: add OF configuration support for AR8327  
						
						... 
						
						
						
						Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 36047 
						
					 
					
						2013-03-15 15:50:08 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							ee12b1b7d5 
							
						 
					 
					
						
						
							
							generic: ar8216: separate platform_data based AR8327 code  
						
						... 
						
						
						
						Move platform_data specific configuration code
into a separate routine. Do it in preparation
for the upcoming OF support.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 36046 
						
					 
					
						2013-03-15 15:50:05 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							d88f66ae21 
							
						 
					 
					
						
						
							
							generic: ar8216: don't use platform_data in ar8327_init_port  
						
						... 
						
						
						
						Fetch the PORT_STATUS values in ar8327_hw_init and
store those in a private data stucture for later use.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 36045 
						
					 
					
						2013-03-15 15:50:02 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							9d3f70d503 
							
						 
					 
					
						
						
							
							generic: ar8216: move the ar8327_get_port_init_status function  
						
						... 
						
						
						
						It will be used in ar8327_probe routine.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 36044 
						
					 
					
						2013-03-15 15:50:00 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							17d735fc46 
							
						 
					 
					
						
						
							
							generic: ar8216: simplify and rename ar8327_config_port  
						
						... 
						
						
						
						Return with the PORT_STATUS register value instead of
writing that directly into the corresponding register.
Also rename the function to ar8327_get_port_init_status.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 36043 
						
					 
					
						2013-03-15 15:49:57 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							3fee1bddbe 
							
						 
					 
					
						
						
							
							generic: ar8216: remove superfluous pdata checks  
						
						... 
						
						
						
						The presence of the platform data is already verified in
ar8327_hw_init, and the driver does not start without that
anyway.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 36042 
						
					 
					
						2013-03-15 15:49:55 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							451dd745bd 
							
						 
					 
					
						
						
							
							generic: ar8216: cleanup function/variable names  
						
						... 
						
						
						
						Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 35642 
						
					 
					
						2013-02-17 12:48:25 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							51996304c4 
							
						 
					 
					
						
						
							
							generic: ar8216: rename struct ar8216_priv to ar8xxx_priv  
						
						... 
						
						
						
						Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 35641 
						
					 
					
						2013-02-17 12:48:23 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							f35c369710 
							
						 
					 
					
						
						
							
							generic: ar8216: move PHY4 RGMII workaround code out of the loop  
						
						... 
						
						
						
						Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 35603 
						
					 
					
						2013-02-14 14:55:40 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							d64888ffc0 
							
						 
					 
					
						
						
							
							generic: ar8216: register the switch from the probe routine  
						
						... 
						
						
						
						Currently the switch gets registered when an ethernet
driver connects to a PHY of the switch. This method does
not work with the ethernet drivers which are connecting
to the PHY from their ndo_open callback. With those
ethernet drivers, the driver tries to register the switch
each time when the etherned device is opened and this causes
a deadlock.
Move the switch registration into the probe routine to fix
this problem.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 35602 
						
					 
					
						2013-02-14 14:01:24 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							9525a075c1 
							
						 
					 
					
						
						
							
							ar8216: remove superfluous code from ar8216_config_init  
						
						... 
						
						
						
						Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 35562 
						
					 
					
						2013-02-11 16:57:31 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							9c86d268eb 
							
						 
					 
					
						
						
							
							generic: ar8216: don't use ethernet device name in register_switch  
						
						... 
						
						
						
						The switches are accessed via an MDIO bus. Set the alias
to the name of the MDIO bus, and show that in the message
along with the name of the switch switch device.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 35560 
						
					 
					
						2013-02-11 16:11:31 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							3f3eba88f6 
							
						 
					 
					
						
						
							
							generic: ar8216: reuse the private data from ar8216_probe  
						
						... 
						
						
						
						The private data of the switch is already
allocated in ar8216_priv, assign that to
each PHY on the same MDIO bus. Also remove
the redundant code from ar8216_config_init.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 35559 
						
					 
					
						2013-02-11 16:11:30 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							1afb759b35 
							
						 
					 
					
						
						
							
							generic: ar8216: use phydev instead of pdev everywhere  
						
						... 
						
						
						
						Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 35555 
						
					 
					
						2013-02-11 13:25:43 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							0b1fe07e8e 
							
						 
					 
					
						
						
							
							generic: ar8216: use pr_* macros for kernel messages  
						
						... 
						
						
						
						Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 35554 
						
					 
					
						2013-02-11 13:14:00 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							eea297884e 
							
						 
					 
					
						
						
							
							generic: ar8216: fix PHY features setup  
						
						... 
						
						
						
						Sujith says:
This commit breaks the WAN port on my AP96 - DHCP fails.
Reverting it fixes the issue.
  commit b67cc3a0cdd02973610d4d5a63226d1c44841e94
  Author: juhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>
  Date:   Fri Feb 8 09:13:18 2013 +0000
    generic: ar8216: simplify phy features setup
    Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
    git-svn-id: svn://svn.openwrt.org/openwrt/trunk@355183c298f89-4303-0410-b956-a3cf2f4a3e73
This change restores the previous behaviour and moves
the code into the ar8216_probe function.
Reported-by: Sujith Manoharan <sujith@msujith.org>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Tested-by: Sujith Manoharan <sujith@msujith.org>
SVN-Revision: 35549 
						
					 
					
						2013-02-11 10:05:35 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							617076c613 
							
						 
					 
					
						
						
							
							generic: ar8216: add ar8xxx_probe_switch helper  
						
						... 
						
						
						
						Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 35547 
						
					 
					
						2013-02-10 19:02:01 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							98b13e39ac 
							
						 
					 
					
						
						
							
							generic: ar8216: rename ar8xxx_mib_cleanup to ar8xxx_mib_stop  
						
						... 
						
						
						
						Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 35546 
						
					 
					
						2013-02-10 18:42:08 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							f97170a720 
							
						 
					 
					
						
						
							
							generic: ar8216: free mib counters from ar8xxx_free  
						
						... 
						
						
						
						Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 35545 
						
					 
					
						2013-02-10 18:42:07 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							7924e517af 
							
						 
					 
					
						
						
							
							generic: ar8216: add ar8xxx_free helper  
						
						... 
						
						
						
						Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 35544 
						
					 
					
						2013-02-10 18:42:05 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							77b3c551c4 
							
						 
					 
					
						
						
							
							generic: ar8216: add ar8xxx_create{,mii} helpers  
						
						... 
						
						
						
						Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 35543 
						
					 
					
						2013-02-10 18:42:04 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							5f70b1db2a 
							
						 
					 
					
						
						
							
							generic: ar8216: remove redundant phy address check  
						
						... 
						
						
						
						Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 35542 
						
					 
					
						2013-02-10 18:38:12 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							14fd37258b 
							
						 
					 
					
						
						
							
							generic: ar8216: only set phy_ptr if packet mangling is used  
						
						... 
						
						
						
						Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 35541 
						
					 
					
						2013-02-10 18:38:10 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							393163b098 
							
						 
					 
					
						
						
							
							generic: ar8216: add defines for the AR8316 POSTRIP register  
						
						... 
						
						
						
						Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 35539 
						
					 
					
						2013-02-10 13:18:48 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							5ed480598d 
							
						 
					 
					
						
						
							
							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>
SVN-Revision: 35538 
						
					 
					
						2013-02-10 13:05:15 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							774da6c7a4 
							
						 
					 
					
						
						
							
							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>
SVN-Revision: 35537 
						
					 
					
						2013-02-10 13:05:14 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							4720c75cf7 
							
						 
					 
					
						
						
							
							generic: ar8216: skip probe on unused PHY addresses  
						
						... 
						
						
						
						Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 35536 
						
					 
					
						2013-02-10 13:05:12 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							de123c4409 
							
						 
					 
					
						
						
							
							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>
SVN-Revision: 35532 
						
					 
					
						2013-02-09 13:26:04 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							aa04441904 
							
						 
					 
					
						
						
							
							generic: ar8216: simplify phy features setup  
						
						... 
						
						
						
						Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 35518 
						
					 
					
						2013-02-08 09:13:18 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							9c1f95a416 
							
						 
					 
					
						
						
							
							generic: ar8216: don't use mdio bus specific functions in ar8216_id_chip  
						
						... 
						
						
						
						Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 35517 
						
					 
					
						2013-02-08 09:13:14 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							5393efc0c7 
							
						 
					 
					
						
						
							
							generic: ar8216: use inline function to convert swdev to ar8216  
						
						... 
						
						
						
						Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 35514 
						
					 
					
						2013-02-07 15:18:36 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							b87a1c757d 
							
						 
					 
					
						
						
							
							generic: ar8216: add mii_bus field to struct ar8216_priv  
						
						... 
						
						
						
						Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 35513 
						
					 
					
						2013-02-07 15:18:35 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							4be8c22e74 
							
						 
					 
					
						
						
							
							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>
SVN-Revision: 35511 
						
					 
					
						2013-02-07 15:18:32 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							395d0bdc1f 
							
						 
					 
					
						
						
							
							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>
SVN-Revision: 35497 
						
					 
					
						2013-02-05 08:39:26 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							2e7f38c243 
							
						 
					 
					
						
						
							
							generic: ar8216: unregister switch on error path  
						
						... 
						
						
						
						Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 35496 
						
					 
					
						2013-02-05 08:39:24 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							d4b4c7d102 
							
						 
					 
					
						
						
							
							generic: ar8216: add sgmii_delay_en field to ar8327_platform_data  
						
						... 
						
						
						
						Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 34881 
						
					 
					
						2012-12-25 18:45:31 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							c3cb63661f 
							
						 
					 
					
						
						
							
							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>
SVN-Revision: 34862 
						
					 
					
						2012-12-22 18:30:04 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							3931c9524c 
							
						 
					 
					
						
						
							
							generic: ar8316: allow to configure port 6 via platform data on AR8327  
						
						... 
						
						
						
						Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 34847 
						
					 
					
						2012-12-22 12:12:37 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							a0b31f97bb 
							
						 
					 
					
						
						
							
							generic: ar8216: rename cpuport_cfg to port0_cfg in ar8327_platform_data  
						
						... 
						
						
						
						Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 34846 
						
					 
					
						2012-12-22 12:12:35 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Juhos 
							
						 
					 
					
						
						
						
						
							
						
						
							49d4b5581d 
							
						 
					 
					
						
						
							
							generic: ar8216: set delay values for SGMII mode on AR8327  
						
						... 
						
						
						
						Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 34315 
						
					 
					
						2012-11-23 20:55:26 +00:00 
						 
				 
			
				
					
						
							
							
								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 
							
						 
					 
					
						
						
						
						
							
						
						
							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