aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/files/drivers/net/phy/rtl8366s.c
Commit message (Collapse)AuthorAgeFilesLines
* generic: rtl836x: support defered probe on mdio-busChristian Lamparter2018-11-261-2/+2
| | | | | | | | | | | | | | | | On the WNDAP620, the mdio and mdc lines are controlled by the EMAC ethernet device. This results in a hen-vs-egg problem. The rtl8367b driver is probed before the ethernet driver and the mdio-bus is not available yet, which caused the rtl8367b driver to fail. This patch changes the rtl8366_smi_probe_of() function to return -EPROBE_DEFER if the mdio-bus lookup failed and changes rtl8366_smi_probe()'s signature to return the error code back to the callee, so it can propagate back to the kernel. Which, will retry the switch probe at a later time. Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* generic: provide get_port_stats() on rtl836x switchesThibaut VARENE2017-09-011-0/+11
| | | | | | | | | | 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>
* generic: rtl836x: add support for Green FeatureTobias Wolf2017-01-271-62/+198
| | | | | | | | The GPL licensed source code of Belkin contains an ASIC based "Green Feature". This change adds support for this Green Feature that can be activated with an DTS option or swconfig. Signed-off-by: Tobias Wolf <github-NTEO@vplace.de>
* generic: rtl8366s: add support support for initvals from DTSTobias Wolf2017-01-271-2/+27
| | | | | | | This change provides the possibility to define per-device initvals in the DTS file for a rlt8366s switch. Signed-off-by: Tobias Wolf <github-NTEO@vplace.de>
* fix rtl8366s OF bindingJohn Crispin2013-04-121-2/+2
| | | | | | Signed-off-by: John Crispin <blogic@openwrt.org> SVN-Revision: 36323
* kernel: remove __devinit, __devexit and __devexit_p for kernel 3.8Hauke Mehrtens2013-01-271-3/+3
| | | | | | These attributes where removed with kernel 3.8 and are now causing compile errors. SVN-Revision: 35328
* generic: rtl836x: fix compiler warningsGabor Juhos2012-12-171-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* linux: generic: rtl836*: fix compilation with !CONFIG_OFJonas Gorski2012-12-151-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* make rtl8366 driver OF capableJohn Crispin2012-12-151-17/+13
| | | | SVN-Revision: 34682
* generic: rtl836x: add hw_reset field to struct rtl8366_smiGabor Juhos2012-08-021-0/+2
| | | | | | | It will be used to start/stop the switch if that is supported by the given board. SVN-Revision: 32943
* linux: rtl836x: add a generic reset_switch functionGabor Juhos2012-04-291-25/+1
| | | | SVN-Revision: 31536
* linux: rtl836x: rename rtl836*_hw_init to rtl836*_setupGabor Juhos2012-04-291-7/+2
| | | | SVN-Revision: 31535
* linux: rtl836x: add a reset_chip callback to rtl8366_smi_opsGabor Juhos2012-04-291-8/+2
| | | | SVN-Revision: 31534
* generic: rtl8366s: use the generic get_port_link implementationGabor Juhos2012-03-071-50/+32
| | | | SVN-Revision: 30843
* generic: rtl8366: add rtl8366_smi_write_reg_noack helperGabor Juhos2012-01-211-2/+2
| | | | | | | | | 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
* generic: rtl8366: preparing for RTL8367 supportGabor Juhos2012-01-071-0/+3
| | | | | | | | * make clock delay configurable * make read,write commands configurable * use u16 for member and untag fields SVN-Revision: 29677
* generic: jumbo frames support for rtl8366sGabor Juhos2011-09-211-0/+51
| | | | | | | | | | | | | | This patch adds the option to enable jumbo frames on the rtl8366s switch. This is almost exactly the same as the first patch at https://dev.openwrt.org/ticket/7977 and it has been requested in a comment there. I have tested this and it successfully allows devices on the switch using jumbo frames to communicate. Signed-off-by: Ash Hughes <ashley.hughes@blueyonder.co.uk> SVN-Revision: 28267
* swconfig: Add generic switch identifiersJonas Gorski2011-07-271-1/+1
| | | | | | | | 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
* rtl8366: unify rtl8366s and rtl8366rb platform dataFelix Fietkau2011-07-241-3/+3
| | | | SVN-Revision: 27754
* generic: rtl8366{s,rb}: remove the PHY driver.Gabor Juhos2011-04-121-52/+1
| | | | | | | | | | 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
* generic: rtl8366s: allow initial register values to be passed via platform_dataGabor Juhos2011-01-261-0/+11
| | | | SVN-Revision: 25120
* generic: rtl8366: enable vlans before enabling the portsGabor Juhos2011-01-081-0/+4
| | | | SVN-Revision: 24939
* generic: rtl8366: enable ports only after VLAN configuration is doneGabor Juhos2011-01-081-4/+5
| | | | SVN-Revision: 24938
* generic: rtl8366: add enable_port helperGabor Juhos2011-01-081-0/+7
| | | | SVN-Revision: 24937
* generic: rtl8366s: use correct bitmasks in sanity checksGabor Juhos2011-01-081-4/+4
| | | | SVN-Revision: 24935
* generic: rtl8366s: add vlan fid supportGabor Juhos2011-01-081-0/+7
| | | | SVN-Revision: 24934
* rt8366*: use __devinit instead of __init for the probe function to fix a ↵Felix Fietkau2010-10-211-1/+1
| | | | | | section mismatch SVN-Revision: 23573
* generic: RTL8366S/RB: Fix autonegotiation for the WAN port.Gabor Juhos2010-09-271-0/+5
| | | | | | | | | | | | 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
* generic: rtl8366: allow use of VIDs 16-4095 if vlan4k is enabledGabor Juhos2010-08-181-2/+7
| | | | SVN-Revision: 22704
* generic: rtl8366: add generic code to enable VLANsGabor Juhos2010-08-181-42/+4
| | | | SVN-Revision: 22703
* generic: rtl8366: add enable_vlan{,4k} to smi_opsGabor Juhos2010-08-181-4/+6
| | | | SVN-Revision: 22702
* generic: fix LED control on the RTL8366 switchesGabor Juhos2010-08-151-1/+1
| | | | | | * patch from #7713 SVN-Revision: 22656
* rtl8366: re-enable learning by default, disabling it broke switching ↵Felix Fietkau2010-08-081-4/+46
| | | | | | functionality. add a configuration option for dynamically enabling/disabling this feature. based on patch from #7637 SVN-Revision: 22545
* swconfig: cleanup of kernel drivers and interface - add some comments to a ↵Felix Fietkau2010-08-041-8/+6
| | | | | | 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
* generic: rtl8366: add common rtl8366_sw_{get,set}_vlan_ports functionsGabor Juhos2010-07-151-53/+2
| | | | SVN-Revision: 22204
* generic: rtl8366: add common rtl8366_sw_get_vlan_infoGabor Juhos2010-07-151-42/+1
| | | | SVN-Revision: 22203
* generic: rtl8366: use smi->num_ports and smi->ops->get_vlan_4kGabor Juhos2010-07-151-4/+4
| | | | SVN-Revision: 22202
* generic: rtl8366: add is_vlan_valid function to smi_opsGabor Juhos2010-07-151-3/+12
| | | | SVN-Revision: 22201
* generic: rtl8366: add common rtl8366_sw_get_port_mib functionGabor Juhos2010-07-151-34/+1
| | | | SVN-Revision: 22200
* generic: rtl8366: generealize rtl8366{s,rb}_sw_get_port_mib functionsGabor Juhos2010-07-151-4/+5
| | | | SVN-Revision: 22199
* generic: rtl8366: add common rtl8366_sw_{get,set}_port_pvid functionsGabor Juhos2010-07-151-14/+2
| | | | SVN-Revision: 22197
* generic: rtl8366: add setup to rtl8366_smi_ops structGabor Juhos2010-07-151-4/+2
| | | | SVN-Revision: 22196
* generic: rtl8366: introduce rtl8366_smi_allocGabor Juhos2010-07-151-3/+1
| | | | SVN-Revision: 22195
* generic: rtl8366: get rid of private rtl8366{s,rb} structsGabor Juhos2010-07-151-42/+21
| | | | SVN-Revision: 22194
* generic: rtl8366: move switch device to the rtl8366_smi structGabor Juhos2010-07-151-11/+4
| | | | SVN-Revision: 22193
* generic: rtl8366: get rid of private vlan_{mc,4k} structsGabor Juhos2010-07-151-122/+77
| | | | | | | | 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
* generic: rtl8366: use SWITCH_TYPE_NOVAL for reset_mib attributesGabor Juhos2010-07-151-11/+3
| | | | SVN-Revision: 22191
* generic: rtl8366: enable VLAN ingress filteringGabor Juhos2010-07-021-0/+7
| | | | SVN-Revision: 22044
* generic: rtl8366: minor cleanupGabor Juhos2010-06-281-8/+5
| | | | SVN-Revision: 21985
* generic: rtl8366: add common read_debugfs_mibs functionGabor Juhos2010-06-281-71/+0
| | | | SVN-Revision: 21984