Commit Graph

58 Commits (17a955d4d7ea36ee41e025d61e600ee143f58b97)

Author SHA1 Message Date
Thibaut VARENE 0369e35891 generic: provide get_port_stats() on rtl836x switches
This patch provides a generic switch_dev_ops 'get_port_stats()' callback by
taping into the relevant port MIB counters.

This callback is used by swconfig_leds led trigger to blink LEDs with port
network traffic.

Signed-off-by: Thibaut VARENE <hacks@slashdirt.org>
7 years ago
Kevin Darbyshire-Bryant f4ae444f3e generic: rtl8366rb: add support for initvals from DTS
Allow per-device initvals in the DTS file for rlt8366rb
switches.

Shamelessly copies 30494598f8

Signed-off-by: Kevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk>
7 years ago
Mathias Kresin a0888ecbaf generic: rtl8366rb: fix compatible string
Use a vendor prefix as it has to be for all not core driver. Update the
compatible string in the device tree files accordingly.

Signed-off-by: Mathias Kresin <dev@kresin.me>
8 years ago
Gabor Juhos d187e3c32e generic: add port mirroring/monitoring capability to rtl8366rb switch
This patch adds swlib attributes to the RTL8366RB switch/PHY found in the
TL-WR1043ND router that allow to mirror ethernet packets to a monitor port.

Signed-off-by: Colin Leitner <colin.leitner@googlemail.com>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

SVN-Revision: 36847
11 years ago
Hauke Mehrtens 721bf97863 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.

SVN-Revision: 35328
12 years ago
Gabor Juhos d153bdbba9 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>

SVN-Revision: 34731
12 years ago
Jonas Gorski eba8cccd88 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>

SVN-Revision: 34703
12 years ago
John Crispin d8678644f9 make rtl8366 driver OF capable
SVN-Revision: 34682
12 years ago
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
12 years ago
Gabor Juhos e931ffd678 linux: rtl836x: add a generic reset_switch function
SVN-Revision: 31536
12 years ago
Gabor Juhos 1d9400263f linux: rtl836x: rename rtl836*_hw_init to rtl836*_setup
SVN-Revision: 31535
12 years ago
Gabor Juhos badd7a3cf2 linux: rtl836x: add a reset_chip callback to rtl8366_smi_ops
SVN-Revision: 31534
12 years ago
Gabor Juhos e2f0264afe generic: rtl8366rb: use the generic get_port_link implementation
SVN-Revision: 30842
13 years ago
Gabor Juhos 4625c9b5a4 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.

SVN-Revision: 29844
13 years ago
Gabor Juhos 87fb92ee03 generic: rtl8366: preparing for RTL8367 support
* make clock delay configurable
* make read,write commands configurable
* use u16 for member and untag fields

SVN-Revision: 29677
13 years ago
Jonas Gorski eaa935658b 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.

SVN-Revision: 27800
13 years ago
Felix Fietkau 1afe8a0726 rtl8366: unify rtl8366s and rtl8366rb platform data
SVN-Revision: 27754
13 years ago
Gabor Juhos f358166236 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>

SVN-Revision: 26600
13 years ago
Gabor Juhos 792a1fb2c0 generic: rtl8366: enable vlans before enabling the ports
SVN-Revision: 24939
14 years ago
Gabor Juhos c16715f8d2 generic: rtl8366: enable ports only after VLAN configuration is done
SVN-Revision: 24938
14 years ago
Gabor Juhos 0bcc97ac26 generic: rtl8366: add enable_port helper
SVN-Revision: 24937
14 years ago
Gabor Juhos a4472870bd generic: rtl8366rb: use correct bitmasks in sanity checks
SVN-Revision: 24930
14 years ago
Gabor Juhos 90c0618011 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>

SVN-Revision: 24125
14 years ago
Felix Fietkau 0ee2fda5e1 rt8366*: use __devinit instead of __init for the probe function to fix a section mismatch
SVN-Revision: 23573
14 years ago
Gabor Juhos dc4df4ca65 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>

SVN-Revision: 23127
14 years ago
Gabor Juhos 5721f06fe1 generic: add rtl8366rb switch port rate, port and qos enable/disable support
Patch-by: Roman Yeryomin <roman@advem.lv>

SVN-Revision: 23126
14 years ago
Gabor Juhos 0826570bc4 generic: rtl8366: allow use of VIDs 16-4095 if vlan4k is enabled
SVN-Revision: 22704
14 years ago
Gabor Juhos 08c5588cd2 generic: rtl8366: add generic code to enable VLANs
SVN-Revision: 22703
14 years ago
Gabor Juhos 77d6cd0feb generic: rtl8366: add enable_vlan{,4k} to smi_ops
SVN-Revision: 22702
14 years ago
Gabor Juhos e01649c7cc generic: fix LED control on the RTL8366 switches
* patch from #7713

SVN-Revision: 22656
14 years ago
Felix Fietkau f8c4bf89b9 rtl8366: re-enable learning by default, disabling it broke switching functionality. add a configuration option for dynamically enabling/disabling this feature. based on patch from #7637
SVN-Revision: 22545
14 years ago
Felix Fietkau bd6324190f swconfig: cleanup of kernel drivers and interface - add some comments to a few data structures - add a switch_dev_ops data structure for attributes and callback to replace the stupid template memcpy - get rid of the switch_dev.priv pointer - using container_of() is better
SVN-Revision: 22476
14 years ago
Gabor Juhos 48934bbd88 generic: rtl8366: add common rtl8366_sw_{get,set}_vlan_ports functions
SVN-Revision: 22204
14 years ago
Gabor Juhos d4e0b75dda generic: rtl8366: add common rtl8366_sw_get_vlan_info
SVN-Revision: 22203
14 years ago
Gabor Juhos a59fa57985 generic: rtl8366: use smi->num_ports and smi->ops->get_vlan_4k
SVN-Revision: 22202
14 years ago
Gabor Juhos ce7eca2dff generic: rtl8366: add is_vlan_valid function to smi_ops
SVN-Revision: 22201
14 years ago
Gabor Juhos dffd45dc61 generic: rtl8366: add common rtl8366_sw_get_port_mib function
SVN-Revision: 22200
14 years ago
Gabor Juhos 0049e74882 generic: rtl8366: generealize rtl8366{s,rb}_sw_get_port_mib functions
SVN-Revision: 22199
14 years ago
Gabor Juhos e561b18521 generic: rtl8366: add common rtl8366_sw_{get,set}_port_pvid functions
SVN-Revision: 22197
14 years ago
Gabor Juhos 534480d3fb generic: rtl8366: add setup to rtl8366_smi_ops struct
SVN-Revision: 22196
14 years ago
Gabor Juhos b093cec6cc generic: rtl8366: introduce rtl8366_smi_alloc
SVN-Revision: 22195
14 years ago
Gabor Juhos c7bc8fb46c generic: rtl8366: get rid of private rtl8366{s,rb} structs
SVN-Revision: 22194
14 years ago
Gabor Juhos 008c81b859 generic: rtl8366: move switch device to the rtl8366_smi struct
SVN-Revision: 22193
14 years ago
Gabor Juhos 5508b23aaf generic: rtl8366: get rid of private vlan_{mc,4k} structs
The usage of bitfields causes problems in Little-Endian mode. Remove
them and manipulate the bits directly in the appropriate functions. This
change also reduces the size of the binary a bit.

SVN-Revision: 22192
14 years ago
Gabor Juhos 540b3e6419 generic: rtl8366: use SWITCH_TYPE_NOVAL for reset_mib attributes
SVN-Revision: 22191
14 years ago
Gabor Juhos 86b4b5e1e9 generic: rtl8366: enable VLAN ingress filtering
SVN-Revision: 22044
14 years ago
Gabor Juhos 50d88ac7d4 generic: rtl8366: minor cleanup
SVN-Revision: 21985
14 years ago
Gabor Juhos e19838e04c generic: rtl8366: add common read_debugfs_mibs function
SVN-Revision: 21984
14 years ago
Gabor Juhos 393f0bda89 generic: rtl8366: standardize read_debugfs_mibs functions
SVN-Revision: 21983
14 years ago
Gabor Juhos 5986c1f2d0 generic: rtl8366: use common rtl8366_mib_counter structure
SVN-Revision: 21982
14 years ago