forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
Pull networking updates from David Miller: "Most notable changes in here: 1) By far the biggest accomplishment, thanks to a large range of contributors, is the addition of multi-send for transmit. This is the result of discussions back in Chicago, and the hard work of several individuals. Now, when the ->ndo_start_xmit() method of a driver sees skb->xmit_more as true, it can choose to defer the doorbell telling the driver to start processing the new TX queue entires. skb->xmit_more means that the generic networking is guaranteed to call the driver immediately with another SKB to send. There is logic added to the qdisc layer to dequeue multiple packets at a time, and the handling mis-predicted offloads in software is now done with no locks held. Finally, pktgen is extended to have a "burst" parameter that can be used to test a multi-send implementation. Several drivers have xmit_more support: i40e, igb, ixgbe, mlx4, virtio_net Adding support is almost trivial, so export more drivers to support this optimization soon. I want to thank, in no particular or implied order, Jesper Dangaard Brouer, Eric Dumazet, Alexander Duyck, Tom Herbert, Jamal Hadi Salim, John Fastabend, Florian Westphal, Daniel Borkmann, David Tat, Hannes Frederic Sowa, and Rusty Russell. 2) PTP and timestamping support in bnx2x, from Michal Kalderon. 3) Allow adjusting the rx_copybreak threshold for a driver via ethtool, and add rx_copybreak support to enic driver. From Govindarajulu Varadarajan. 4) Significant enhancements to the generic PHY layer and the bcm7xxx driver in particular (EEE support, auto power down, etc.) from Florian Fainelli. 5) Allow raw buffers to be used for flow dissection, allowing drivers to determine the optimal "linear pull" size for devices that DMA into pools of pages. The objective is to get exactly the necessary amount of headers into the linear SKB area pre-pulled, but no more. The new interface drivers use is eth_get_headlen(). From WANG Cong, with driver conversions (several had their own by-hand duplicated implementations) by Alexander Duyck and Eric Dumazet. 6) Support checksumming more smoothly and efficiently for encapsulations, and add "foo over UDP" facility. From Tom Herbert. 7) Add Broadcom SF2 switch driver to DSA layer, from Florian Fainelli. 8) eBPF now can load programs via a system call and has an extensive testsuite. Alexei Starovoitov and Daniel Borkmann. 9) Major overhaul of the packet scheduler to use RCU in several major areas such as the classifiers and rate estimators. From John Fastabend. 10) Add driver for Intel FM10000 Ethernet Switch, from Alexander Duyck. 11) Rearrange TCP_SKB_CB() to reduce cache line misses, from Eric Dumazet. 12) Add Datacenter TCP congestion control algorithm support, From Florian Westphal. 13) Reorganize sk_buff so that __copy_skb_header() is significantly faster. From Eric Dumazet" * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1558 commits) netlabel: directly return netlbl_unlabel_genl_init() net: add netdev_txq_bql_{enqueue, complete}_prefetchw() helpers net: description of dma_cookie cause make xmldocs warning cxgb4: clean up a type issue cxgb4: potential shift wrapping bug i40e: skb->xmit_more support net: fs_enet: Add NAPI TX net: fs_enet: Remove non NAPI RX r8169:add support for RTL8168EP net_sched: copy exts->type in tcf_exts_change() wimax: convert printk to pr_foo() af_unix: remove 0 assignment on static ipv6: Do not warn for informational ICMP messages, regardless of type. Update Intel Ethernet Driver maintainers list bridge: Save frag_max_size between PRE_ROUTING and POST_ROUTING tipc: fix bug in multicast congestion handling net: better IFF_XMIT_DST_RELEASE support net/mlx4_en: remove NETDEV_TX_BUSY 3c59x: fix bad split of cpu_to_le32(pci_map_single()) net: bcmgenet: fix Tx ring priority programming ...
- Loading branch information
Showing
1,397 changed files
with
153,110 additions
and
37,903 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
Driver for ARM AXI Bus with Broadcom Plugins (bcma) | ||
|
||
Required properties: | ||
|
||
- compatible : brcm,bus-axi | ||
|
||
- reg : iomem address range of chipcommon core | ||
|
||
The cores on the AXI bus are automatically detected by bcma with the | ||
memory ranges they are using and they get registered afterwards. | ||
|
||
The top-level axi bus may contain children representing attached cores | ||
(devices). This is needed since some hardware details can't be auto | ||
detected (e.g. IRQ numbers). Also some of the cores may be responsible | ||
for extra things, e.g. ChipCommon providing access to the GPIO chip. | ||
|
||
Example: | ||
|
||
axi@18000000 { | ||
compatible = "brcm,bus-axi"; | ||
reg = <0x18000000 0x1000>; | ||
ranges = <0x00000000 0x18000000 0x00100000>; | ||
#address-cells = <1>; | ||
#size-cells = <1>; | ||
|
||
chipcommon { | ||
reg = <0x00000000 0x1000>; | ||
|
||
gpio-controller; | ||
#gpio-cells = <2>; | ||
}; | ||
}; |
39 changes: 39 additions & 0 deletions
39
Documentation/devicetree/bindings/net/broadcom-mdio-unimac.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
* Broadcom UniMAC MDIO bus controller | ||
|
||
Required properties: | ||
- compatible: should one from "brcm,genet-mdio-v1", "brcm,genet-mdio-v2", | ||
"brcm,genet-mdio-v3", "brcm,genet-mdio-v4" or "brcm,unimac-mdio" | ||
- reg: address and length of the regsiter set for the device, first one is the | ||
base register, and the second one is optional and for indirect accesses to | ||
larger than 16-bits MDIO transactions | ||
- reg-names: name(s) of the register must be "mdio" and optional "mdio_indir_rw" | ||
- #size-cells: must be 1 | ||
- #address-cells: must be 0 | ||
|
||
Optional properties: | ||
- interrupts: must be one if the interrupt is shared with the Ethernet MAC or | ||
Ethernet switch this MDIO block is integrated from, or must be two, if there | ||
are two separate interrupts, first one must be "mdio done" and second must be | ||
for "mdio error" | ||
- interrupt-names: must be "mdio_done_error" when there is a share interrupt fed | ||
to this hardware block, or must be "mdio_done" for the first interrupt and | ||
"mdio_error" for the second when there are separate interrupts | ||
|
||
Child nodes of this MDIO bus controller node are standard Ethernet PHY device | ||
nodes as described in Documentation/devicetree/bindings/net/phy.txt | ||
|
||
Example: | ||
|
||
mdio@403c0 { | ||
compatible = "brcm,unimac-mdio"; | ||
reg = <0x403c0 0x8 0x40300 0x18>; | ||
reg-names = "mdio", "mdio_indir_rw"; | ||
#size-cells = <1>; | ||
#address-cells = <0>; | ||
|
||
... | ||
phy@0 { | ||
compatible = "ethernet-phy-ieee802.3-c22"; | ||
reg = <0>; | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
* Broadcom Starfighter 2 integrated swich | ||
|
||
Required properties: | ||
|
||
- compatible: should be "brcm,bcm7445-switch-v4.0" | ||
- reg: addresses and length of the register sets for the device, must be 6 | ||
pairs of register addresses and lengths | ||
- interrupts: interrupts for the devices, must be two interrupts | ||
- dsa,mii-bus: phandle to the MDIO bus controller, see dsa/dsa.txt | ||
- dsa,ethernet: phandle to the CPU network interface controller, see dsa/dsa.txt | ||
- #size-cells: must be 0 | ||
- #address-cells: must be 2, see dsa/dsa.txt | ||
|
||
Subnodes: | ||
|
||
The integrated switch subnode should be specified according to the binding | ||
described in dsa/dsa.txt. | ||
|
||
Optional properties: | ||
|
||
- reg-names: litteral names for the device base register addresses, when present | ||
must be: "core", "reg", "intrl2_0", "intrl2_1", "fcb", "acb" | ||
|
||
- interrupt-names: litternal names for the device interrupt lines, when present | ||
must be: "switch_0" and "switch_1" | ||
|
||
- brcm,num-gphy: specify the maximum number of integrated gigabit PHYs in the | ||
switch | ||
|
||
- brcm,num-rgmii-ports: specify the maximum number of RGMII interfaces supported | ||
by the switch | ||
|
||
- brcm,fcb-pause-override: boolean property, if present indicates that the switch | ||
supports Failover Control Block pause override capability | ||
|
||
- brcm,acb-packets-inflight: boolean property, if present indicates that the switch | ||
Admission Control Block supports reporting the number of packets in-flight in a | ||
switch queue | ||
|
||
Example: | ||
|
||
switch_top@f0b00000 { | ||
compatible = "simple-bus"; | ||
#size-cells = <1>; | ||
#address-cells = <1>; | ||
ranges = <0 0xf0b00000 0x40804>; | ||
|
||
ethernet_switch@0 { | ||
compatible = "brcm,bcm7445-switch-v4.0"; | ||
#size-cells = <0>; | ||
#address-cells = <2>; | ||
reg = <0x0 0x40000 | ||
0x40000 0x110 | ||
0x40340 0x30 | ||
0x40380 0x30 | ||
0x40400 0x34 | ||
0x40600 0x208>; | ||
interrupts = <0 0x18 0 | ||
0 0x19 0>; | ||
brcm,num-gphy = <1>; | ||
brcm,num-rgmii-ports = <2>; | ||
brcm,fcb-pause-override; | ||
brcm,acb-packets-inflight; | ||
|
||
... | ||
switch@0 { | ||
reg = <0 0>; | ||
#size-cells = <0>; | ||
#address-cells <1>; | ||
|
||
port@0 { | ||
label = "gphy"; | ||
reg = <0>; | ||
}; | ||
... | ||
}; | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
Bosch MCAN controller Device Tree Bindings | ||
------------------------------------------------- | ||
|
||
Required properties: | ||
- compatible : Should be "bosch,m_can" for M_CAN controllers | ||
- reg : physical base address and size of the M_CAN | ||
registers map and Message RAM | ||
- reg-names : Should be "m_can" and "message_ram" | ||
- interrupts : Should be the interrupt number of M_CAN interrupt | ||
line 0 and line 1, could be same if sharing | ||
the same interrupt. | ||
- interrupt-names : Should contain "int0" and "int1" | ||
- clocks : Clocks used by controller, should be host clock | ||
and CAN clock. | ||
- clock-names : Should contain "hclk" and "cclk" | ||
- pinctrl-<n> : Pinctrl states as described in bindings/pinctrl/pinctrl-bindings.txt | ||
- pinctrl-names : Names corresponding to the numbered pinctrl states | ||
- bosch,mram-cfg : Message RAM configuration data. | ||
Multiple M_CAN instances can share the same Message | ||
RAM and each element(e.g Rx FIFO or Tx Buffer and etc) | ||
number in Message RAM is also configurable, | ||
so this property is telling driver how the shared or | ||
private Message RAM are used by this M_CAN controller. | ||
|
||
The format should be as follows: | ||
<offset sidf_elems xidf_elems rxf0_elems rxf1_elems | ||
rxb_elems txe_elems txb_elems> | ||
The 'offset' is an address offset of the Message RAM | ||
where the following elements start from. This is | ||
usually set to 0x0 if you're using a private Message | ||
RAM. The remain cells are used to specify how many | ||
elements are used for each FIFO/Buffer. | ||
|
||
M_CAN includes the following elements according to user manual: | ||
11-bit Filter 0-128 elements / 0-128 words | ||
29-bit Filter 0-64 elements / 0-128 words | ||
Rx FIFO 0 0-64 elements / 0-1152 words | ||
Rx FIFO 1 0-64 elements / 0-1152 words | ||
Rx Buffers 0-64 elements / 0-1152 words | ||
Tx Event FIFO 0-32 elements / 0-64 words | ||
Tx Buffers 0-32 elements / 0-576 words | ||
|
||
Please refer to 2.4.1 Message RAM Configuration in | ||
Bosch M_CAN user manual for details. | ||
|
||
Example: | ||
SoC dtsi: | ||
m_can1: can@020e8000 { | ||
compatible = "bosch,m_can"; | ||
reg = <0x020e8000 0x4000>, <0x02298000 0x4000>; | ||
reg-names = "m_can", "message_ram"; | ||
interrupts = <0 114 0x04>, | ||
<0 114 0x04>; | ||
interrupt-names = "int0", "int1"; | ||
clocks = <&clks IMX6SX_CLK_CANFD>, | ||
<&clks IMX6SX_CLK_CANFD>; | ||
clock-names = "hclk", "cclk"; | ||
bosch,mram-cfg = <0x0 0 0 32 0 0 0 1>; | ||
status = "disabled"; | ||
}; | ||
|
||
Board dts: | ||
&m_can1 { | ||
pinctrl-names = "default"; | ||
pinctrl-0 = <&pinctrl_m_can1>; | ||
status = "enabled"; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
Renesas R-Car CAN controller Device Tree Bindings | ||
------------------------------------------------- | ||
|
||
Required properties: | ||
- compatible: "renesas,can-r8a7778" if CAN controller is a part of R8A7778 SoC. | ||
"renesas,can-r8a7779" if CAN controller is a part of R8A7779 SoC. | ||
"renesas,can-r8a7790" if CAN controller is a part of R8A7790 SoC. | ||
"renesas,can-r8a7791" if CAN controller is a part of R8A7791 SoC. | ||
- reg: physical base address and size of the R-Car CAN register map. | ||
- interrupts: interrupt specifier for the sole interrupt. | ||
- clocks: phandles and clock specifiers for 3 CAN clock inputs. | ||
- clock-names: 3 clock input name strings: "clkp1", "clkp2", "can_clk". | ||
- pinctrl-0: pin control group to be used for this controller. | ||
- pinctrl-names: must be "default". | ||
|
||
Optional properties: | ||
- renesas,can-clock-select: R-Car CAN Clock Source Select. Valid values are: | ||
<0x0> (default) : Peripheral clock (clkp1) | ||
<0x1> : Peripheral clock (clkp2) | ||
<0x3> : Externally input clock | ||
|
||
Example | ||
------- | ||
|
||
SoC common .dtsi file: | ||
|
||
can0: can@e6e80000 { | ||
compatible = "renesas,can-r8a7791"; | ||
reg = <0 0xe6e80000 0 0x1000>; | ||
interrupts = <0 186 IRQ_TYPE_LEVEL_HIGH>; | ||
clocks = <&mstp9_clks R8A7791_CLK_RCAN0>, | ||
<&cpg_clocks R8A7791_CLK_RCAN>, <&can_clk>; | ||
clock-names = "clkp1", "clkp2", "can_clk"; | ||
status = "disabled"; | ||
}; | ||
|
||
Board specific .dts file: | ||
|
||
&can0 { | ||
pinctrl-0 = <&can0_pins>; | ||
pinctrl-names = "default"; | ||
status = "okay"; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
* ARC EMAC 10/100 Ethernet platform driver for Rockchip Rk3066/RK3188 SoCs | ||
|
||
Required properties: | ||
- compatible: Should be "rockchip,rk3066-emac" or "rockchip,rk3188-emac" | ||
according to the target SoC. | ||
- reg: Address and length of the register set for the device | ||
- interrupts: Should contain the EMAC interrupts | ||
- rockchip,grf: phandle to the syscon grf used to control speed and mode | ||
for emac. | ||
- phy: see ethernet.txt file in the same directory. | ||
- phy-mode: see ethernet.txt file in the same directory. | ||
|
||
Optional properties: | ||
- phy-supply: phandle to a regulator if the PHY needs one | ||
|
||
Clock handling: | ||
- clocks: Must contain an entry for each entry in clock-names. | ||
- clock-names: Shall be "hclk" for the host clock needed to calculate and set | ||
polling period of EMAC and "macref" for the reference clock needed to transfer | ||
data to and from the phy. | ||
|
||
Child nodes of the driver are the individual PHY devices connected to the | ||
MDIO bus. They must have a "reg" property given the PHY address on the MDIO bus. | ||
|
||
Examples: | ||
|
||
ethernet@10204000 { | ||
compatible = "rockchip,rk3188-emac"; | ||
reg = <0xc0fc2000 0x3c>; | ||
interrupts = <6>; | ||
mac-address = [ 00 11 22 33 44 55 ]; | ||
|
||
clocks = <&cru HCLK_EMAC>, <&cru SCLK_MAC>; | ||
clock-names = "hclk", "macref"; | ||
|
||
pinctrl-names = "default"; | ||
pinctrl-0 = <&emac_xfer>, <&emac_mdio>, <&phy_int>; | ||
|
||
rockchip,grf = <&grf>; | ||
|
||
phy = <&phy0>; | ||
phy-mode = "rmii"; | ||
phy-supply = <&vcc_rmii>; | ||
|
||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
phy0: ethernet-phy@0 { | ||
reg = <1>; | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.