summaryrefslogtreecommitdiffstats
path: root/target/linux/generic/files/drivers
Commit message (Collapse)AuthorAgeFilesLines
* b53: support setting port linkRafał Miłecki2016-02-031-0/+31
| | | | | | | | | When dealing with Broadcom hardware we can simply use swconfig's generic helper, we just need to do some validation of requested state. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> SVN-Revision: 48623
* b53: provide PHY access to swconfigRafał Miłecki2016-02-033-0/+48
| | | | | | | | | Thanks to this change swconfig can access port PHYs e.g. when setting port link state with a generic helper. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> SVN-Revision: 48622
* swconfig: add (PHY) generic helper setting port linkRafał Miłecki2016-02-031-0/+36
| | | | | | | | | | It's quite common for switches to have PHY per port so adding a generic helper setting link state will help many drivers. It just needs an API to access PHYs which this patch also adds. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> SVN-Revision: 48621
* kernel: mtdsplit: support Seama entity with UBIRafał Miłecki2016-02-012-3/+8
| | | | | | | | | | Some D-Link routers (e.g. DIR-885L) have NAND and use Seama format. It means OpenWrt will want to have UBI in Sseama entity and should be able to detect it. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> SVN-Revision: 48600
* kernel: mtdsplit: detect UBI partition when looking for rootfsRafał Miłecki2016-02-012-0/+7
| | | | | | | | | This allows mtdsplit parsers work with UBI which is very popular on NAND flases. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> SVN-Revision: 48599
* kernel: mtdsplit: modify rootfs helpers to provide partition typeRafał Miłecki2016-02-019-26/+42
| | | | | | | | | | Our mtdsplit parsers may want to create partition with name choice based on partition file system (e.g. SquashFS vs. JFFS2). This patch allows passing extra argument pointing to variable that will be set properly. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> SVN-Revision: 48598
* kernel: mtdsplit: document Seama splitter a bitRafał Miłecki2016-01-251-8/+10
| | | | | | | | | | Rename kernel_size variable as it includes whole entity size, not just a kernel size. Also update comments to match it and describe better what are we checking/looking for. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> SVN-Revision: 48480
* swconfig: simplify init codeJonas Gorski2016-01-241-6/+1
| | | | | | | | | Directly return the return value of genl_register_family_with_ops() instead of storing it in a temporary variable, then returning it. Signed-off-by: Jonas Gorski <jogo@openwrt.org> SVN-Revision: 48472
* swconfig: drop linux < 3.13 code pathsJonas Gorski2016-01-241-20/+0
| | | | | | | | | The oldest kernel we support is 3.18, no need to keep code paths for older kernels. Signed-off-by: Jonas Gorski <jogo@openwrt.org> SVN-Revision: 48471
* ar71xx: add support for Netgear WPN824NJohn Crispin2016-01-191-0/+2
| | | | | | | | | | | | | | | | Add support for Netgear WPN824N. Hardware specs: * AR7240, 4 LAN ports, 1 WAN port * AR9285 WLAN * 32 MB RAM * 4 MB Flash * 16 LEDs (LAN, WAN and Power/Status contain two LEDs for dual color effect) * 3 Buttons (not supported) Signed-off-by: Hartmut Knaack <knaack.h@gmx.de> SVN-Revision: 48356
* b53: update header register difinitionsJonas Gorski2016-01-181-1/+2
| | | | | | | | | BCM531x5 has two pontential cpu ports, and header mode can be enabled independently on both. Signed-off-by: Jonas Gorski <jogo@openwrt.org> SVN-Revision: 48302
* ar8327: add IGMP Snooping supportFelix Fietkau2016-01-172-0/+232
| | | | | | | | | | | | | | | This add support for IGMP Snooping on atheros switches (disabled by default), which avoids flooding the network with multicast data. Tested on TL-WDR4300: disabling IGMP Snooping results in multicast flooding on each specific port, enabling it back again prevents each port from receiving all multicast packets. Partially based on: http://patchwork.ozlabs.org/patch/418122/ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> SVN-Revision: 48268
* kernel: mtdsplit_squashfs: Align with the erase-block sizeFelix Fietkau2016-01-171-1/+1
| | | | | | | | | | | | | | On most image types the rootfs ends at an erase-block. However, at least with brnImages this is not the case: while the partitions are aligned with the erase-block size there is a 12 byte footer at the end of the partition which must not be touched by any filesystem. This lead to a rootfs_data partition which was not aligned properly (and thus ended up being readonly): 0x000000480000-0x00000085a800 : "rootfs_data" (128 KiB EB) Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com> SVN-Revision: 48263
* kernel: mtdsplit: add support for EVA imagesFelix Fietkau2016-01-173-0/+102
| | | | | | | | | This allows splitting EVA images (usually found in fritz devices). The firmware will be split into a kernel and a separate rootfs partition. Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com> SVN-Revision: 48262
* kernel: mtdsplit: add support for brnImagesFelix Fietkau2016-01-173-0/+110
| | | | | | | | | | | | | | | | | This adds brnImage (used with the brnboot bootloader) firmware parsing support. brnboot verifies the integrity of the firmware stored on the "Code Image" partitions by looking at the 12 byte footer at the very end of the partition. This footer contains the checksum of the original brnImage (kernel + rootfs/squashfs) and must not be touched (by our JFFS2 rootfs_data - otherwise the image will not be bootable anymore). Big thanks to Mathias Kresin for analyzing the brnImage structure and finding out the information how to keep images valid even when adding a nested rootfs_data partition. Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com> SVN-Revision: 48261
* swconfig: add API for setting port link speedRafał Miłecki2016-01-061-1/+48
| | | | | | | | | Some switches can force link speed for a port. Let's add API that will allow drivers to export this feature. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> SVN-Revision: 48142
* ledtrig-netdev: don't stop timer on events for different interfacesRafał Miłecki2016-01-021-1/+2
| | | | | | | | | | This fixes regression introduced in my recent ledtrig-netdev commit. Events triggered by different interfaces were stopping timer so it wasn't working for tx/rx mode. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> SVN-Revision: 48072
* ledtrig-netdev: add support for renamed devicesJohn Crispin2016-01-011-2/+3
| | | | | | | | | | | The ppp0 interface is renamed after the connection is established. Due to a missing NETDEV_REGISTER event, the ledtrig-netdev isn't aware of the renamed interface and literally ignores the device (no tx/rx indication, led isn't switched off with 'ifdown wan'). Signed-off-by: Mathias Kresin <openwrt@kresin.me> SVN-Revision: 48048
* swconfig: switch kernel PORT_LINK support to SWITCH_TYPE_LINKJohn Crispin2015-12-231-47/+4
| | | | | | | | | As explained earlier, using SWITCH_TYPE_LINK gives more flexibility, it doesn't require e.g. string parsing to read some data. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> SVN-Revision: 47999
* swconfig: add SWITCH_TYPE_LINK and support sending link info to user spaceJohn Crispin2015-12-231-0/+56
| | | | | | | | | | | | | So far we were sending link data as a string. It got some drawbacks: 1) Didn't allow writing clean user space apps reading link state. It was needed to do some screen scraping. 2) Forced whole PORT_LINK communication to be string based. Adding support for *setting* port link required passing string and parting it in the kernel space. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> SVN-Revision: 47997
* ledtrig-netdev: reset link status & stats after changing device_nameRafał Miłecki2015-12-231-0/+2
| | | | | | | | | Previously switching to non-existing device (interface) could result in leaving LED on. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> SVN-Revision: 47990
* ledtrig-netdev: drop locking from timer callback functionRafał Miłecki2015-12-231-11/+13
| | | | | | | | | | We may just delete timer on every trigger update and then start it again if needed. This will let us avoid both: races and locking in frequently called timer callback. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> SVN-Revision: 47987
* ledtrig-netdev: switch rwlock to spinlockRafał Miłecki2015-12-231-20/+20
| | | | | | | | | | Read/write lock was adding useless complexity, there wasn't any real gain in case of this driver. Also switch to _bh variants to avoid deadlocks. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> SVN-Revision: 47986
* ledtrig-netdev: update base driver instead of patching it for every kernelRafał Miłecki2015-12-231-4/+4
| | | | | | | | | | All supported kernels require patching ledtrig-netdev in the same way, so it's safe to just move these changes to the base version of this driver. We needed these patches for some old kernels 2.6.36 and 3.11. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> SVN-Revision: 47962
* ar8216: rework/fix AR8337 MAC swap handlingFelix Fietkau2015-12-201-3/+3
| | | | | | | | | | | | | | In r45970 the MAC swap handling was made opt-in, however some boards have been forgotten during the conversion. Since the reference design uses this MAC swapping, and pretty much all known boards using this chip seem to do so too, enabling the swapping is a more reasonable default than leaving it disabled. Change the code to still allow boards to opt-out of this. Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 47956
* kernel: mvswitch: merge 3.10+ compile fix into the codeJonas Gorski2015-12-041-3/+3
| | | | | | | | | The lowest we support is 3.18, so no need to keep it as a separate patch. Signed-off-by: Jonas Gorski <jogo@openwrt.org> SVN-Revision: 47749
* generic: fix adm6996 initJohn Crispin2015-10-261-0/+6
| | | | | | | | | | | | Kernel 3.14 added aditional genphy_soft_reset phy reset to phy_init_hw in drivers/net/phy/phy_device.c Since adm6996 does in driver soft reset and doesn't use BMCR_RESET for soft reset add dummy soft_reset callback to adm6996 driver, like it is done in ar8216. This fixes ticket #20147 Signed-off-by: Andrej Vlasic <andrej.vlasic0@gmail.com> SVN-Revision: 47272
* mvsw61xx: match swconfig function namesFelix Fietkau2015-09-111-4/+4
| | | | | | Signed-off-by: Claudio Leite <leitec@staticky.com> SVN-Revision: 46865
* mvsw61xx: use standard swconfig get_port_linkFelix Fietkau2015-09-111-76/+18
| | | | | | | | | The previous "link" and "status" functions were non-standard, and thus less useful for parsing. Signed-off-by: Claudio Leite <leitec@staticky.com> SVN-Revision: 46864
* Previously, all VLANs (port-based or 802.1q) were sharing a single database ↵Imre Kaloz2015-08-212-4/+19
| | | | | | | | | | | | | | | | in the ATU. This created problems in the case of a system where two ports/devices share a MAC address (e.g. Linksys WRT1900AC eth0/eth1). This also clears any bootloader-set FDB defaults. This had caused issues creating port-based VLANs when mappings overlapped previous VLANs. Packets destined to a port not in the default port group flooded all ports. Tested on a 88E6171 (Linksys EA4500) and 88E6172 ('1900AC) Signed-off-by: Claudio Leite <leitec@staticky.com> Signed-off-by: Imre Kaloz <kaloz@openwrt.org> SVN-Revision: 46699
* ar8216: add swconfig attributes for ARL table flushingFelix Fietkau2015-07-153-1/+67
| | | | | | | | Add swconfig attributes for flushing the ARL table globally or per port. Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> SVN-Revision: 46382
* ar8216: adjust ATU flushing in case of link changesFelix Fietkau2015-07-151-6/+4
| | | | | | | | | | If a link goes down, don't flush the complete ARL table. Only flush the entries for the respective port. Don't touch ARL table if a link goes up. Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> SVN-Revision: 46381
* ar8216: add ARL table flushing per portFelix Fietkau2015-07-154-4/+47
| | | | | | | | | | | | | Adds functions for flushing ARL table entries per port. Successfully tested on AR8327. Implementation for AR8216/AR8236/AR8316 is based on the AR8236 datasheet and assumes that the three chips share a common ATU register layout. Compile-tested only for AR8216/AR8236/AR8316. Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> SVN-Revision: 46380
* ar8216: add reading ARL table for AR8216/AR8236/AR8316Felix Fietkau2015-07-152-8/+98
| | | | | | | | | | | | | | | | Adds the chip-specific part of reading ARL table for AR8216/AR8236/AR8316. It's based on the AR8236 datasheet and compile-tested only as I couldn't find datasheets for AR8216/AR8316 and don't own devices with these chips. The existing ar8216_atu_flush implementation was used for all three chip types, therefore I guess they share a common ATU register layout. More testing would be appreciated. Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> SVN-Revision: 46379
* kernel: b53: fix build with brcm47xxHauke Mehrtens2015-07-031-0/+5
| | | | | | | | | The position of the nvram header file on brcm47xx changed with kernel version 4.1. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> SVN-Revision: 46170
* b53: Allow using all 8 ports on BCM53011Rafał Miłecki2015-06-211-1/+1
| | | | | | | | | | | On two tested devices: Netgear R6250 (BCM53011 rev 2) and Luxul XWC-1000 (BCM53011 rev 3) it was possible to use port 7 and eth1 (instead of port 5 and eth0). It seems BCM53011 just like BCM53012 has 8 ports and usually 3 of them are connected to the SoC. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> SVN-Revision: 46104
* ar8216: Fix problem with AR8337 MAC swap handlingFelix Fietkau2015-06-141-3/+3
| | | | | | | | | | | | | | | | | | | | | AR8337 supports a configuration bit to swap MAC0 and MAC6. Currently this is set in general if an AR8337 is detected and causes issues with devices using an AR8334 (internally an AR8337, just less chip pins). And it might even cause issues with AR8337-based devices with different board designs. Swapping the MAC's however isn't needed for AR8337 in general. It's just needed in case of certain board designs (affected devices seem to be based on Atheros reference board AP135/136-010). Therefore this configuration bit should be moved to platform data. The patch includes the needed changes to the device initialization code of affected devices. Hopefully I didn't miss any .. Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> SVN-Revision: 45970
* b53: fix memory out of bounds access on 64 bit targetsJonas Gorski2015-06-101-2/+2
| | | | | | | | | | | | | On device reset the sizes for the vlan and port tables were wrongly calculated based on the pointer size instead of the struct size. This causes buffer overruns on 64 bit targets, resulting in panics. Fix this by dereferencing the pointers. Reported-by: Fedor Konstantinov <blmink@mink.su> Signed-off-by: Jonas Gorski <jogo@openwrt.org> SVN-Revision: 45938
* b53: widen stp state mask to 3 bits (instead of 2)Jonas Gorski2015-06-101-1/+1
| | | | | | | | | | | | | | | At least on my b53 chip, the mask is 3 bits wide, and because of this some STP states are not set properly and discarded when read. Maybe for some other chips it makes sense to have just 2 bits width, but I don't have other versions around to test/validate. If that's the case then maybe we could add another STP state mask. Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com> Signed-off-by: Jonas Gorski <jogo@openwrt.org> SVN-Revision: 45937
* b53: Allow using all ports on BCM53012Rafał Miłecki2015-05-121-1/+1
| | | | | | | | | | | | | This chipset has at least 8 usable ports, e.g. Netgear R8000 has ports 5, 7 and 8 connected to Ethernet interfaces: vlan1ports=0 1 2 3 5 7 8* vlan2ports=4 8u Port 6 seems to be always disabled. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> Acked-by: Jonas Gorski <jogo@openwrt.org> SVN-Revision: 45676
* b53: improve overriding CPU port state on BCM5301XRafał Miłecki2015-04-122-2/+30
| | | | | | | | | | | | | | | | | On BCM5301X there are two different cases to handle: CPU port 8 vs. any other one. Support for CPU port 8 was already partially implemented but it lacked setting some extra bit for 2G speed. It also will need to be extended to implement "SMP dual core 3 GMAC setup". That's the reason for handling it in separated code block. This patch also adds overriding CPU port state for port other than 8. It requires using recently defined GMII_PORT registers. It was tested for regressions on BCM53011 revs 2 & 3. It was also confirmed to fix switch on some internal Broadcom board. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> Acked-by: Jonas Gorski <jogo@openwrt.org> SVN-Revision: 45402
* b53: clean up code to match kernel style betterJonas Gorski2015-04-106-20/+23
| | | | | | | | | | | | | * properly enclose macro arguments in paranthesis on use * remove trailing white space * convert C99 // comments * add missing blank lines after declaration * remove braces from single statement blocks * split lines > 80 chars (except for one) Signed-off-by: Jonas Gorski <jogo@openwrt.org> SVN-Revision: 45356
* b53: define registers available and needed on BCM5301XJonas Gorski2015-04-101-0/+33
| | | | | | | | They are also present on some BCM63xx switches. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> SVN-Revision: 45355
* b53: reverse duplex bit meaning for IMP state override registerJonas Gorski2015-03-181-1/+1
| | | | | | | Signed-off-by: Rafał Miłecki <zajec5@gmail.com> Signed-off-by: Jonas Gorski <jogo@openwrt.org> SVN-Revision: 44875
* kernel: mtdsplit: add support for FIT imageJohn Crispin2015-03-153-0/+146
| | | | | | | | | | | If this option is enabled, the FIT image format will be detected and split by the mtdsplit code. Detection is based upon the FDT magic, which will trigger the parsing and detection of the rootfs, ending-up in the creation of the 2 new partitions. Signed-off-by: Mathieu Olivari <mathieu@codeaurora.org> SVN-Revision: 44792
* b53: global config is part of the management page, not the control pageJonas Gorski2015-03-151-2/+2
| | | | | | | | | | It will now actually enable the mib counters instead of enabling rx/tx for the first switch port. Reported-by: Daniel Gonzalez <dgcbueu@gmail.com> Signed-off-by: Jonas Gorski <jogo@openwrt.org> SVN-Revision: 44788
* swconfig: fix build with linux 4.0John Crispin2015-03-061-3/+6
| | | | | | Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> SVN-Revision: 44617
* b53: fix mmap register read/writes > 32 bitJonas Gorski2015-02-271-34/+36
| | | | | | | | | | | | | | | | | | | | | | | For bcm63xx integrated switches, broadcom changed the data endianess to match the system endianess. But this only applies to within one word, which causes 48/64 bit values to be still split into their "litte endian" groups. E.g. 48 bit values (with 5 being the most significant byte) aligned 0x00 ..01 or 0123 0x04 2345 45.. will become 0x00 ..10 resp. 3210 0x04 5432 54.. Likewise for 64 bit values. Signed-off-by: Jonas Gorski <jogo@openwrt.org> SVN-Revision: 44568
* kernel: mtdsplit_uimage: fix passed info about buf sizeRafał Miłecki2015-02-121-2/+2
| | | | | | | | We obviously can't use sizeof(*buf) which is always 1. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> SVN-Revision: 44424
* kernel: mtdsplit_uimage: read more data to match Edimax needsRafał Miłecki2015-02-121-8/+12
| | | | | | Signed-off-by: Rafał Miłecki <zajec5@gmail.com> SVN-Revision: 44415