summaryrefslogtreecommitdiffstats
path: root/target/linux/generic/files/drivers/net
Commit message (Collapse)AuthorAgeFilesLines
...
* unbreak portmapping - typo fixJohn Crispin2013-04-091-1/+1
| | | | | | Signed-off-by: John Crispin <blogic@openwrt.org> SVN-Revision: 36293
* allow loading port maps from OFJohn Crispin2013-04-091-0/+73
| | | | | | Signed-off-by: John Crispin <blogic@openwrt.org> SVN-Revision: 36283
* generic: rtl8367: add compatible string with vendor prefixGabor Juhos2013-04-061-0/+1
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 36230
* generic: rtl8367b: fix rtl8367b_extif_init_ofGabor Juhos2013-04-061-7/+18
| | | | | | | | | | | | * disable external interface if its property is not present * show an error message if the extif property is not valid * use proper error values intead of -1 * fix memory leak * wrap long lines Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 36229
* generic: rtl8367: allow to load extif config from OFGabor Juhos2013-04-061-6/+61
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 36220
* generic: rtl8367: fix a typo in MODULE_DEVICE_TABLE macroGabor Juhos2013-04-061-1/+1
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 36219
* generic: rtl8367: add vendor prefix to the compatible stringGabor Juhos2013-04-061-1/+1
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 36218
* add OF support to rtl8367b driverJohn Crispin2013-04-031-6/+50
| | | | | | Signed-off-by: John Crispin <blogic@openwrt.org> SVN-Revision: 36159
* generic: ar8216: start AR8327 switch from the probe routineGabor Juhos2013-03-151-1/+19
| | | | | | | | | | | | 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
* generic: ar8216: add ar8xxx_start helperGabor Juhos2013-03-151-11/+23
| | | | | | | | | 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
* generic: ar8216: add OF configuration support for AR8327Gabor Juhos2013-03-151-1/+52
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 36047
* generic: ar8216: separate platform_data based AR8327 codeGabor Juhos2013-03-151-5/+16
| | | | | | | | | | 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
* generic: ar8216: don't use platform_data in ar8327_init_portGabor Juhos2013-03-151-5/+16
| | | | | | | | | 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
* generic: ar8216: move the ar8327_get_port_init_status functionGabor Juhos2013-03-151-28/+28
| | | | | | | | It will be used in ar8327_probe routine. Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 36044
* generic: ar8216: simplify and rename ar8327_config_portGabor Juhos2013-03-151-15/+9
| | | | | | | | | | 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
* generic: ar8216: remove superfluous pdata checksGabor Juhos2013-03-151-2/+2
| | | | | | | | | | 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
* generic: b53: clear SM_SW_FWD_MODE unconditionally when enabling VLANJonas Gorski2013-02-211-4/+2
| | | | | | | | | | Setting this bit stops BCM53125 (bgmac actually) from receiving any packets. This bit is cleared conditionally in b53_switch_reset and it seems the same is done in bcmrobo.c which never sets that bit again. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> SVN-Revision: 35723
* generic: b53: remove empty spacesJonas Gorski2013-02-211-2/+2
| | | | | | Signed-off-by: Rafał Miłecki <zajec5@gmail.com> SVN-Revision: 35722
* generic: ar8216: cleanup function/variable namesGabor Juhos2013-02-171-110/+110
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 35642
* generic: ar8216: rename struct ar8216_priv to ar8xxx_privGabor Juhos2013-02-171-94/+94
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 35641
* generic: ar8216: move PHY4 RGMII workaround code out of the loopGabor Juhos2013-02-141-11/+11
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 35603
* generic: ar8216: register the switch from the probe routineGabor Juhos2013-02-141-17/+12
| | | | | | | | | | | | | | | | | 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
* ar8216: remove superfluous code from ar8216_config_initGabor Juhos2013-02-111-12/+0
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 35562
* generic: ar8216: don't use ethernet device name in register_switchGabor Juhos2013-02-111-3/+4
| | | | | | | | | | 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
* generic: ar8216: reuse the private data from ar8216_probeGabor Juhos2013-02-111-33/+40
| | | | | | | | | | | 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
* generic: ar8216: use phydev instead of pdev everywhereGabor Juhos2013-02-111-33/+33
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 35555
* generic: ar8216: use pr_* macros for kernel messagesGabor Juhos2013-02-111-8/+7
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 35554
* generic: ar8216: fix PHY features setupGabor Juhos2013-02-111-7/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | 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
* generic: ar8216: add ar8xxx_probe_switch helperGabor Juhos2013-02-101-31/+42
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 35547
* generic: ar8216: rename ar8xxx_mib_cleanup to ar8xxx_mib_stopGabor Juhos2013-02-101-2/+2
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 35546
* generic: ar8216: free mib counters from ar8xxx_freeGabor Juhos2013-02-101-4/+2
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 35545
* generic: ar8216: add ar8xxx_free helperGabor Juhos2013-02-101-6/+12
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 35544
* generic: ar8216: add ar8xxx_create{,mii} helpersGabor Juhos2013-02-101-14/+33
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 35543
* generic: ar8216: remove redundant phy address checkGabor Juhos2013-02-101-1/+1
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 35542
* generic: ar8216: only set phy_ptr if packet mangling is usedGabor Juhos2013-02-101-2/+1
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 35541
* generic: ar8216: add defines for the AR8316 POSTRIP registerGabor Juhos2013-02-102-2/+32
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 35539
* generic: ar8216: don't probe the chip multiple timesGabor Juhos2013-02-101-8/+8
| | | | | | | | It is only needed when the private data is allocated. Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 35538
* generic: ar8216: add sanity check to ar8216_probeGabor Juhos2013-02-101-0/+41
| | | | | | | | | 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
* generic: ar8216: skip probe on unused PHY addressesGabor Juhos2013-02-101-0/+4
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 35536
* generic: b53: fix reverted error check in probeJonas Gorski2013-02-101-1/+1
| | | | | | | | | | | | 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> SVN-Revision: 35534
* generic: ar8216: move sleep out of the loopGabor Juhos2013-02-091-1/+2
| | | | | | | | | | 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
* generic: ar8216: simplify phy features setupGabor Juhos2013-02-081-11/+6
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 35518
* generic: ar8216: don't use mdio bus specific functions in ar8216_id_chipGabor Juhos2013-02-081-8/+9
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 35517
* generic: ar8216: use inline function to convert swdev to ar8216Gabor Juhos2013-02-071-15/+19
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 35514
* generic: ar8216: add mii_bus field to struct ar8216_privGabor Juhos2013-02-071-11/+12
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 35513
* generic: mvswitch: add detach callbackGabor Juhos2013-02-071-1/+12
| | | | | | | | | | | 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> SVN-Revision: 35512
* generic: ar8216: add detach callbackGabor Juhos2013-02-071-5/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* generic: ar8216: clear driver specific data pointer in phy_deviceGabor Juhos2013-02-051-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* generic: ar8216: unregister switch on error pathGabor Juhos2013-02-051-4/+6
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 35496
* kernel: b53: the b53 spi driver depends on spiHauke Mehrtens2013-01-271-1/+1
| | | | SVN-Revision: 35340