You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Pull networking fixes from David Miller:
"Lots of fixes, here goes:
1) NULL deref in qtnfmac, from Gustavo A. R. Silva.
2) Kernel oops when fw download fails in rtlwifi, from Ping-Ke Shih.
3) Lost completion messages in AF_XDP, from Magnus Karlsson.
4) Correct bogus self-assignment in rhashtable, from Rishabh
Bhatnagar.
5) Fix regression in ipv6 route append handling, from David Ahern.
6) Fix masking in __set_phy_supported(), from Heiner Kallweit.
7) Missing module owner set in x_tables icmp, from Florian Westphal.
8) liquidio's timeouts are HZ dependent, fix from Nicholas Mc Guire.
9) Link setting fixes for sh_eth and ravb, from Vladimir Zapolskiy.
10) Fix NULL deref when using chains in act_csum, from Davide Caratti.
11) XDP_REDIRECT needs to check if the interface is up and whether the
MTU is sufficient. From Toshiaki Makita.
12) Net diag can do a double free when killing TCP_NEW_SYN_RECV
connections, from Lorenzo Colitti.
13) nf_defrag in ipv6 can unnecessarily hold onto dst entries for a
full minute, delaying device unregister. From Eric Dumazet.
14) Update MAC entries in the correct order in ixgbe, from Alexander
Duyck.
15) Don't leave partial mangles bpf program in jit_subprogs, from
Daniel Borkmann.
16) Fix pfmemalloc SKB state propagation, from Stefano Brivio.
17) Fix ACK handling in DCTCP congestion control, from Yuchung Cheng.
18) Use after free in tun XDP_TX, from Toshiaki Makita.
19) Stale ipv6 header pointer in ipv6 gre code, from Prashant Bhole.
20) Don't reuse remainder of RX page when XDP is set in mlx4, from
Saeed Mahameed.
21) Fix window probe handling of TCP rapair sockets, from Stefan
Baranoff.
22) Missing socket locking in smc_ioctl(), from Ursula Braun.
23) IPV6_ILA needs DST_CACHE, from Arnd Bergmann.
24) Spectre v1 fix in cxgb3, from Gustavo A. R. Silva.
25) Two spots in ipv6 do a rol32() on a hash value but ignore the
result. Fixes from Colin Ian King"
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (176 commits)
tcp: identify cryptic messages as TCP seq # bugs
ptp: fix missing break in switch
hv_netvsc: Fix napi reschedule while receive completion is busy
MAINTAINERS: Drop inactive Vitaly Bordug's email
net: cavium: Add fine-granular dependencies on PCI
net: qca_spi: Fix log level if probe fails
net: qca_spi: Make sure the QCA7000 reset is triggered
net: qca_spi: Avoid packet drop during initial sync
ipv6: fix useless rol32 call on hash
ipv6: sr: fix useless rol32 call on hash
net: sched: Using NULL instead of plain integer
net: usb: asix: replace mii_nway_restart in resume path
net: cxgb3_main: fix potential Spectre v1
lib/rhashtable: consider param->min_size when setting initial table size
net/smc: reset recv timeout after clc handshake
net/smc: add error handling for get_user()
net/smc: optimize consumer cursor updates
net/nfc: Avoid stalls when nfc_alloc_send_skb() returned NULL.
ipv6: ila: select CONFIG_DST_CACHE
net: usb: rtl8150: demote allmulti message to dev_dbg()
...
This commit is contained in:
@@ -1490,7 +1490,7 @@ To remove an ARP target:
|
||||
|
||||
To configure the interval between learning packet transmits:
|
||||
# echo 12 > /sys/class/net/bond0/bonding/lp_interval
|
||||
NOTE: the lp_inteval is the number of seconds between instances where
|
||||
NOTE: the lp_interval is the number of seconds between instances where
|
||||
the bonding driver sends learning packets to each slaves peer switch. The
|
||||
default interval is 1 second.
|
||||
|
||||
|
||||
@@ -47,41 +47,45 @@ Driver Configuration Parameters
|
||||
The default value for each parameter is generally the recommended setting,
|
||||
unless otherwise noted.
|
||||
|
||||
Rx Descriptors: Number of receive descriptors. A receive descriptor is a data
|
||||
Rx Descriptors:
|
||||
Number of receive descriptors. A receive descriptor is a data
|
||||
structure that describes a receive buffer and its attributes to the network
|
||||
controller. The data in the descriptor is used by the controller to write
|
||||
data from the controller to host memory. In the 3.x.x driver the valid range
|
||||
for this parameter is 64-256. The default value is 256. This parameter can be
|
||||
changed using the command::
|
||||
|
||||
ethtool -G eth? rx n
|
||||
ethtool -G eth? rx n
|
||||
|
||||
Where n is the number of desired Rx descriptors.
|
||||
|
||||
Tx Descriptors: Number of transmit descriptors. A transmit descriptor is a data
|
||||
Tx Descriptors:
|
||||
Number of transmit descriptors. A transmit descriptor is a data
|
||||
structure that describes a transmit buffer and its attributes to the network
|
||||
controller. The data in the descriptor is used by the controller to read
|
||||
data from the host memory to the controller. In the 3.x.x driver the valid
|
||||
range for this parameter is 64-256. The default value is 128. This parameter
|
||||
can be changed using the command::
|
||||
|
||||
ethtool -G eth? tx n
|
||||
ethtool -G eth? tx n
|
||||
|
||||
Where n is the number of desired Tx descriptors.
|
||||
|
||||
Speed/Duplex: The driver auto-negotiates the link speed and duplex settings by
|
||||
Speed/Duplex:
|
||||
The driver auto-negotiates the link speed and duplex settings by
|
||||
default. The ethtool utility can be used as follows to force speed/duplex.::
|
||||
|
||||
ethtool -s eth? autoneg off speed {10|100} duplex {full|half}
|
||||
ethtool -s eth? autoneg off speed {10|100} duplex {full|half}
|
||||
|
||||
NOTE: setting the speed/duplex to incorrect values will cause the link to
|
||||
fail.
|
||||
|
||||
Event Log Message Level: The driver uses the message level flag to log events
|
||||
Event Log Message Level:
|
||||
The driver uses the message level flag to log events
|
||||
to syslog. The message level can be set at driver load time. It can also be
|
||||
set using the command::
|
||||
|
||||
ethtool -s eth? msglvl n
|
||||
ethtool -s eth? msglvl n
|
||||
|
||||
|
||||
Additional Configurations
|
||||
@@ -92,7 +96,7 @@ Configuring the Driver on Different Distributions
|
||||
|
||||
Configuring a network driver to load properly when the system is started
|
||||
is distribution dependent. Typically, the configuration process involves
|
||||
adding an alias line to /etc/modprobe.d/*.conf as well as editing other
|
||||
adding an alias line to `/etc/modprobe.d/*.conf` as well as editing other
|
||||
system startup scripts and/or configuration files. Many popular Linux
|
||||
distributions ship with tools to make these changes for you. To learn
|
||||
the proper way to configure a network device for your system, refer to
|
||||
@@ -160,7 +164,10 @@ This results in unbalanced receive traffic.
|
||||
If you have multiple interfaces in a server, either turn on ARP
|
||||
filtering by
|
||||
|
||||
(1) entering:: echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter
|
||||
(1) entering::
|
||||
|
||||
echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter
|
||||
|
||||
(this only works if your kernel's version is higher than 2.4.5), or
|
||||
|
||||
(2) installing the interfaces in separate broadcast domains (either
|
||||
|
||||
@@ -34,7 +34,8 @@ Command Line Parameters
|
||||
The default value for each parameter is generally the recommended setting,
|
||||
unless otherwise noted.
|
||||
|
||||
NOTES: For more information about the AutoNeg, Duplex, and Speed
|
||||
NOTES:
|
||||
For more information about the AutoNeg, Duplex, and Speed
|
||||
parameters, see the "Speed and Duplex Configuration" section in
|
||||
this document.
|
||||
|
||||
@@ -45,22 +46,27 @@ NOTES: For more information about the AutoNeg, Duplex, and Speed
|
||||
|
||||
AutoNeg
|
||||
-------
|
||||
|
||||
(Supported only on adapters with copper connections)
|
||||
Valid Range: 0x01-0x0F, 0x20-0x2F
|
||||
Default Value: 0x2F
|
||||
|
||||
:Valid Range: 0x01-0x0F, 0x20-0x2F
|
||||
:Default Value: 0x2F
|
||||
|
||||
This parameter is a bit-mask that specifies the speed and duplex settings
|
||||
advertised by the adapter. When this parameter is used, the Speed and
|
||||
Duplex parameters must not be specified.
|
||||
|
||||
NOTE: Refer to the Speed and Duplex section of this readme for more
|
||||
NOTE:
|
||||
Refer to the Speed and Duplex section of this readme for more
|
||||
information on the AutoNeg parameter.
|
||||
|
||||
Duplex
|
||||
------
|
||||
|
||||
(Supported only on adapters with copper connections)
|
||||
Valid Range: 0-2 (0=auto-negotiate, 1=half, 2=full)
|
||||
Default Value: 0
|
||||
|
||||
:Valid Range: 0-2 (0=auto-negotiate, 1=half, 2=full)
|
||||
:Default Value: 0
|
||||
|
||||
This defines the direction in which data is allowed to flow. Can be
|
||||
either one or two-directional. If both Duplex and the link partner are
|
||||
@@ -70,18 +76,22 @@ duplex.
|
||||
|
||||
FlowControl
|
||||
-----------
|
||||
Valid Range: 0-3 (0=none, 1=Rx only, 2=Tx only, 3=Rx&Tx)
|
||||
Default Value: Reads flow control settings from the EEPROM
|
||||
|
||||
:Valid Range: 0-3 (0=none, 1=Rx only, 2=Tx only, 3=Rx&Tx)
|
||||
:Default Value: Reads flow control settings from the EEPROM
|
||||
|
||||
This parameter controls the automatic generation(Tx) and response(Rx)
|
||||
to Ethernet PAUSE frames.
|
||||
|
||||
InterruptThrottleRate
|
||||
---------------------
|
||||
|
||||
(not supported on Intel(R) 82542, 82543 or 82544-based adapters)
|
||||
Valid Range: 0,1,3,4,100-100000 (0=off, 1=dynamic, 3=dynamic conservative,
|
||||
4=simplified balancing)
|
||||
Default Value: 3
|
||||
|
||||
:Valid Range:
|
||||
0,1,3,4,100-100000 (0=off, 1=dynamic, 3=dynamic conservative,
|
||||
4=simplified balancing)
|
||||
:Default Value: 3
|
||||
|
||||
The driver can limit the amount of interrupts per second that the adapter
|
||||
will generate for incoming packets. It does this by writing a value to the
|
||||
@@ -135,13 +145,15 @@ Setting InterruptThrottleRate to 0 turns off any interrupt moderation
|
||||
and may improve small packet latency, but is generally not suitable
|
||||
for bulk throughput traffic.
|
||||
|
||||
NOTE: InterruptThrottleRate takes precedence over the TxAbsIntDelay and
|
||||
NOTE:
|
||||
InterruptThrottleRate takes precedence over the TxAbsIntDelay and
|
||||
RxAbsIntDelay parameters. In other words, minimizing the receive
|
||||
and/or transmit absolute delays does not force the controller to
|
||||
generate more interrupts than what the Interrupt Throttle Rate
|
||||
allows.
|
||||
|
||||
CAUTION: If you are using the Intel(R) PRO/1000 CT Network Connection
|
||||
CAUTION:
|
||||
If you are using the Intel(R) PRO/1000 CT Network Connection
|
||||
(controller 82547), setting InterruptThrottleRate to a value
|
||||
greater than 75,000, may hang (stop transmitting) adapters
|
||||
under certain network conditions. If this occurs a NETDEV
|
||||
@@ -151,7 +163,8 @@ CAUTION: If you are using the Intel(R) PRO/1000 CT Network Connection
|
||||
hang, ensure that InterruptThrottleRate is set no greater
|
||||
than 75,000 and is not set to 0.
|
||||
|
||||
NOTE: When e1000 is loaded with default settings and multiple adapters
|
||||
NOTE:
|
||||
When e1000 is loaded with default settings and multiple adapters
|
||||
are in use simultaneously, the CPU utilization may increase non-
|
||||
linearly. In order to limit the CPU utilization without impacting
|
||||
the overall throughput, we recommend that you load the driver as
|
||||
@@ -168,9 +181,11 @@ NOTE: When e1000 is loaded with default settings and multiple adapters
|
||||
|
||||
RxDescriptors
|
||||
-------------
|
||||
Valid Range: 48-256 for 82542 and 82543-based adapters
|
||||
48-4096 for all other supported adapters
|
||||
Default Value: 256
|
||||
|
||||
:Valid Range:
|
||||
- 48-256 for 82542 and 82543-based adapters
|
||||
- 48-4096 for all other supported adapters
|
||||
:Default Value: 256
|
||||
|
||||
This value specifies the number of receive buffer descriptors allocated
|
||||
by the driver. Increasing this value allows the driver to buffer more
|
||||
@@ -180,15 +195,17 @@ Each descriptor is 16 bytes. A receive buffer is also allocated for each
|
||||
descriptor and can be either 2048, 4096, 8192, or 16384 bytes, depending
|
||||
on the MTU setting. The maximum MTU size is 16110.
|
||||
|
||||
NOTE: MTU designates the frame size. It only needs to be set for Jumbo
|
||||
NOTE:
|
||||
MTU designates the frame size. It only needs to be set for Jumbo
|
||||
Frames. Depending on the available system resources, the request
|
||||
for a higher number of receive descriptors may be denied. In this
|
||||
case, use a lower number.
|
||||
|
||||
RxIntDelay
|
||||
----------
|
||||
Valid Range: 0-65535 (0=off)
|
||||
Default Value: 0
|
||||
|
||||
:Valid Range: 0-65535 (0=off)
|
||||
:Default Value: 0
|
||||
|
||||
This value delays the generation of receive interrupts in units of 1.024
|
||||
microseconds. Receive interrupt reduction can improve CPU efficiency if
|
||||
@@ -198,7 +215,8 @@ of TCP traffic. If the system is reporting dropped receives, this value
|
||||
may be set too high, causing the driver to run out of available receive
|
||||
descriptors.
|
||||
|
||||
CAUTION: When setting RxIntDelay to a value other than 0, adapters may
|
||||
CAUTION:
|
||||
When setting RxIntDelay to a value other than 0, adapters may
|
||||
hang (stop transmitting) under certain network conditions. If
|
||||
this occurs a NETDEV WATCHDOG message is logged in the system
|
||||
event log. In addition, the controller is automatically reset,
|
||||
@@ -207,9 +225,11 @@ CAUTION: When setting RxIntDelay to a value other than 0, adapters may
|
||||
|
||||
RxAbsIntDelay
|
||||
-------------
|
||||
|
||||
(This parameter is supported only on 82540, 82545 and later adapters.)
|
||||
Valid Range: 0-65535 (0=off)
|
||||
Default Value: 128
|
||||
|
||||
:Valid Range: 0-65535 (0=off)
|
||||
:Default Value: 128
|
||||
|
||||
This value, in units of 1.024 microseconds, limits the delay in which a
|
||||
receive interrupt is generated. Useful only if RxIntDelay is non-zero,
|
||||
@@ -220,9 +240,11 @@ conditions.
|
||||
|
||||
Speed
|
||||
-----
|
||||
|
||||
(This parameter is supported only on adapters with copper connections.)
|
||||
Valid Settings: 0, 10, 100, 1000
|
||||
Default Value: 0 (auto-negotiate at all supported speeds)
|
||||
|
||||
:Valid Settings: 0, 10, 100, 1000
|
||||
:Default Value: 0 (auto-negotiate at all supported speeds)
|
||||
|
||||
Speed forces the line speed to the specified value in megabits per second
|
||||
(Mbps). If this parameter is not specified or is set to 0 and the link
|
||||
@@ -231,22 +253,26 @@ speed. Duplex should also be set when Speed is set to either 10 or 100.
|
||||
|
||||
TxDescriptors
|
||||
-------------
|
||||
Valid Range: 48-256 for 82542 and 82543-based adapters
|
||||
48-4096 for all other supported adapters
|
||||
Default Value: 256
|
||||
|
||||
:Valid Range:
|
||||
- 48-256 for 82542 and 82543-based adapters
|
||||
- 48-4096 for all other supported adapters
|
||||
:Default Value: 256
|
||||
|
||||
This value is the number of transmit descriptors allocated by the driver.
|
||||
Increasing this value allows the driver to queue more transmits. Each
|
||||
descriptor is 16 bytes.
|
||||
|
||||
NOTE: Depending on the available system resources, the request for a
|
||||
NOTE:
|
||||
Depending on the available system resources, the request for a
|
||||
higher number of transmit descriptors may be denied. In this case,
|
||||
use a lower number.
|
||||
|
||||
TxIntDelay
|
||||
----------
|
||||
Valid Range: 0-65535 (0=off)
|
||||
Default Value: 8
|
||||
|
||||
:Valid Range: 0-65535 (0=off)
|
||||
:Default Value: 8
|
||||
|
||||
This value delays the generation of transmit interrupts in units of
|
||||
1.024 microseconds. Transmit interrupt reduction can improve CPU
|
||||
@@ -256,9 +282,11 @@ causing the driver to run out of available transmit descriptors.
|
||||
|
||||
TxAbsIntDelay
|
||||
-------------
|
||||
|
||||
(This parameter is supported only on 82540, 82545 and later adapters.)
|
||||
Valid Range: 0-65535 (0=off)
|
||||
Default Value: 32
|
||||
|
||||
:Valid Range: 0-65535 (0=off)
|
||||
:Default Value: 32
|
||||
|
||||
This value, in units of 1.024 microseconds, limits the delay in which a
|
||||
transmit interrupt is generated. Useful only if TxIntDelay is non-zero,
|
||||
@@ -269,18 +297,21 @@ network conditions.
|
||||
|
||||
XsumRX
|
||||
------
|
||||
|
||||
(This parameter is NOT supported on the 82542-based adapter.)
|
||||
Valid Range: 0-1
|
||||
Default Value: 1
|
||||
|
||||
:Valid Range: 0-1
|
||||
:Default Value: 1
|
||||
|
||||
A value of '1' indicates that the driver should enable IP checksum
|
||||
offload for received packets (both UDP and TCP) to the adapter hardware.
|
||||
|
||||
Copybreak
|
||||
---------
|
||||
Valid Range: 0-xxxxxxx (0=off)
|
||||
Default Value: 256
|
||||
Usage: modprobe e1000.ko copybreak=128
|
||||
|
||||
:Valid Range: 0-xxxxxxx (0=off)
|
||||
:Default Value: 256
|
||||
:Usage: modprobe e1000.ko copybreak=128
|
||||
|
||||
Driver copies all packets below or equaling this size to a fresh RX
|
||||
buffer before handing it up the stack.
|
||||
@@ -292,8 +323,9 @@ it is also available during runtime at
|
||||
|
||||
SmartPowerDownEnable
|
||||
--------------------
|
||||
Valid Range: 0-1
|
||||
Default Value: 0 (disabled)
|
||||
|
||||
:Valid Range: 0-1
|
||||
:Default Value: 0 (disabled)
|
||||
|
||||
Allows PHY to turn off in lower power states. The user can turn off
|
||||
this parameter in supported chipsets.
|
||||
@@ -309,14 +341,14 @@ fiber interface board only links at 1000 Mbps full-duplex.
|
||||
|
||||
For copper-based boards, the keywords interact as follows:
|
||||
|
||||
The default operation is auto-negotiate. The board advertises all
|
||||
- The default operation is auto-negotiate. The board advertises all
|
||||
supported speed and duplex combinations, and it links at the highest
|
||||
common speed and duplex mode IF the link partner is set to auto-negotiate.
|
||||
|
||||
If Speed = 1000, limited auto-negotiation is enabled and only 1000 Mbps
|
||||
- If Speed = 1000, limited auto-negotiation is enabled and only 1000 Mbps
|
||||
is advertised (The 1000BaseT spec requires auto-negotiation.)
|
||||
|
||||
If Speed = 10 or 100, then both Speed and Duplex should be set. Auto-
|
||||
- If Speed = 10 or 100, then both Speed and Duplex should be set. Auto-
|
||||
negotiation is disabled, and the AutoNeg parameter is ignored. Partner
|
||||
SHOULD also be forced.
|
||||
|
||||
@@ -328,13 +360,15 @@ process.
|
||||
The parameter may be specified as either a decimal or hexadecimal value as
|
||||
determined by the bitmap below.
|
||||
|
||||
============== ====== ====== ======= ======= ====== ====== ======= ======
|
||||
Bit position 7 6 5 4 3 2 1 0
|
||||
Decimal Value 128 64 32 16 8 4 2 1
|
||||
Hex value 80 40 20 10 8 4 2 1
|
||||
Speed (Mbps) N/A N/A 1000 N/A 100 100 10 10
|
||||
Duplex Full Full Half Full Half
|
||||
============== ====== ====== ======= ======= ====== ====== ======= ======
|
||||
|
||||
Some examples of using AutoNeg:
|
||||
Some examples of using AutoNeg::
|
||||
|
||||
modprobe e1000 AutoNeg=0x01 (Restricts autonegotiation to 10 Half)
|
||||
modprobe e1000 AutoNeg=1 (Same as above)
|
||||
@@ -357,56 +391,59 @@ Additional Configurations
|
||||
|
||||
Jumbo Frames
|
||||
------------
|
||||
Jumbo Frames support is enabled by changing the MTU to a value larger
|
||||
than the default of 1500. Use the ifconfig command to increase the MTU
|
||||
size. For example::
|
||||
|
||||
Jumbo Frames support is enabled by changing the MTU to a value larger than
|
||||
the default of 1500. Use the ifconfig command to increase the MTU size.
|
||||
For example::
|
||||
|
||||
ifconfig eth<x> mtu 9000 up
|
||||
|
||||
This setting is not saved across reboots. It can be made permanent if
|
||||
you add::
|
||||
This setting is not saved across reboots. It can be made permanent if
|
||||
you add::
|
||||
|
||||
MTU=9000
|
||||
|
||||
to the file /etc/sysconfig/network-scripts/ifcfg-eth<x>. This example
|
||||
applies to the Red Hat distributions; other distributions may store this
|
||||
setting in a different location.
|
||||
to the file /etc/sysconfig/network-scripts/ifcfg-eth<x>. This example
|
||||
applies to the Red Hat distributions; other distributions may store this
|
||||
setting in a different location.
|
||||
|
||||
Notes: Degradation in throughput performance may be observed in some
|
||||
Jumbo frames environments. If this is observed, increasing the
|
||||
application's socket buffer size and/or increasing the
|
||||
/proc/sys/net/ipv4/tcp_*mem entry values may help. See the specific
|
||||
application manual and /usr/src/linux*/Documentation/
|
||||
networking/ip-sysctl.txt for more details.
|
||||
Notes:
|
||||
Degradation in throughput performance may be observed in some Jumbo frames
|
||||
environments. If this is observed, increasing the application's socket buffer
|
||||
size and/or increasing the /proc/sys/net/ipv4/tcp_*mem entry values may help.
|
||||
See the specific application manual and /usr/src/linux*/Documentation/
|
||||
networking/ip-sysctl.txt for more details.
|
||||
|
||||
- The maximum MTU setting for Jumbo Frames is 16110. This value
|
||||
coincides with the maximum Jumbo Frames size of 16128.
|
||||
- The maximum MTU setting for Jumbo Frames is 16110. This value coincides
|
||||
with the maximum Jumbo Frames size of 16128.
|
||||
|
||||
- Using Jumbo frames at 10 or 100 Mbps is not supported and may result
|
||||
in poor performance or loss of link.
|
||||
- Using Jumbo frames at 10 or 100 Mbps is not supported and may result in
|
||||
poor performance or loss of link.
|
||||
|
||||
- Adapters based on the Intel(R) 82542 and 82573V/E controller do not
|
||||
support Jumbo Frames. These correspond to the following product names:
|
||||
Intel(R) PRO/1000 Gigabit Server Adapter Intel(R) PRO/1000 PM Network
|
||||
Connection
|
||||
- Adapters based on the Intel(R) 82542 and 82573V/E controller do not
|
||||
support Jumbo Frames. These correspond to the following product names::
|
||||
|
||||
Intel(R) PRO/1000 Gigabit Server Adapter
|
||||
Intel(R) PRO/1000 PM Network Connection
|
||||
|
||||
ethtool
|
||||
-------
|
||||
The driver utilizes the ethtool interface for driver configuration and
|
||||
diagnostics, as well as displaying statistical information. The ethtool
|
||||
version 1.6 or later is required for this functionality.
|
||||
|
||||
The latest release of ethtool can be found from
|
||||
https://www.kernel.org/pub/software/network/ethtool/
|
||||
The driver utilizes the ethtool interface for driver configuration and
|
||||
diagnostics, as well as displaying statistical information. The ethtool
|
||||
version 1.6 or later is required for this functionality.
|
||||
|
||||
The latest release of ethtool can be found from
|
||||
https://www.kernel.org/pub/software/network/ethtool/
|
||||
|
||||
Enabling Wake on LAN* (WoL)
|
||||
---------------------------
|
||||
WoL is configured through the ethtool* utility.
|
||||
|
||||
WoL will be enabled on the system during the next shut down or reboot.
|
||||
For this driver version, in order to enable WoL, the e1000 driver must be
|
||||
loaded when shutting down or rebooting the system.
|
||||
WoL is configured through the ethtool* utility.
|
||||
|
||||
WoL will be enabled on the system during the next shut down or reboot.
|
||||
For this driver version, in order to enable WoL, the e1000 driver must be
|
||||
loaded when shutting down or rebooting the system.
|
||||
|
||||
Support
|
||||
=======
|
||||
|
||||
+3
-4
@@ -2523,7 +2523,7 @@ S: Supported
|
||||
F: drivers/scsi/esas2r
|
||||
|
||||
ATUSB IEEE 802.15.4 RADIO DRIVER
|
||||
M: Stefan Schmidt <stefan@osg.samsung.com>
|
||||
M: Stefan Schmidt <stefan@datenfreihafen.org>
|
||||
L: linux-wpan@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/net/ieee802154/atusb.c
|
||||
@@ -5790,7 +5790,6 @@ F: include/linux/fsl/
|
||||
|
||||
FREESCALE SOC FS_ENET DRIVER
|
||||
M: Pantelis Antoniou <pantelis.antoniou@gmail.com>
|
||||
M: Vitaly Bordug <vbordug@ru.mvista.com>
|
||||
L: linuxppc-dev@lists.ozlabs.org
|
||||
L: netdev@vger.kernel.org
|
||||
S: Maintained
|
||||
@@ -6909,7 +6908,7 @@ F: drivers/clk/clk-versaclock5.c
|
||||
|
||||
IEEE 802.15.4 SUBSYSTEM
|
||||
M: Alexander Aring <alex.aring@gmail.com>
|
||||
M: Stefan Schmidt <stefan@osg.samsung.com>
|
||||
M: Stefan Schmidt <stefan@datenfreihafen.org>
|
||||
L: linux-wpan@vger.kernel.org
|
||||
W: http://wpan.cakelab.org/
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/sschmidt/wpan.git
|
||||
@@ -8629,7 +8628,7 @@ MARVELL MWIFIEX WIRELESS DRIVER
|
||||
M: Amitkumar Karwar <amitkarwar@gmail.com>
|
||||
M: Nishant Sarmukadam <nishants@marvell.com>
|
||||
M: Ganapathi Bhat <gbhat@marvell.com>
|
||||
M: Xinming Hu <huxm@marvell.com>
|
||||
M: Xinming Hu <huxinming820@gmail.com>
|
||||
L: linux-wireless@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/net/wireless/marvell/mwifiex/
|
||||
|
||||
@@ -63,8 +63,6 @@
|
||||
|
||||
#define AQ_CFG_NAPI_WEIGHT 64U
|
||||
|
||||
#define AQ_CFG_MULTICAST_ADDRESS_MAX 32U
|
||||
|
||||
/*#define AQ_CFG_MAC_ADDR_PERMANENT {0x30, 0x0E, 0xE3, 0x12, 0x34, 0x56}*/
|
||||
|
||||
#define AQ_NIC_FC_OFF 0U
|
||||
|
||||
@@ -98,6 +98,8 @@ struct aq_stats_s {
|
||||
#define AQ_HW_MEDIA_TYPE_TP 1U
|
||||
#define AQ_HW_MEDIA_TYPE_FIBRE 2U
|
||||
|
||||
#define AQ_HW_MULTICAST_ADDRESS_MAX 32U
|
||||
|
||||
struct aq_hw_s {
|
||||
atomic_t flags;
|
||||
u8 rbl_enabled:1;
|
||||
@@ -177,7 +179,7 @@ struct aq_hw_ops {
|
||||
unsigned int packet_filter);
|
||||
|
||||
int (*hw_multicast_list_set)(struct aq_hw_s *self,
|
||||
u8 ar_mac[AQ_CFG_MULTICAST_ADDRESS_MAX]
|
||||
u8 ar_mac[AQ_HW_MULTICAST_ADDRESS_MAX]
|
||||
[ETH_ALEN],
|
||||
u32 count);
|
||||
|
||||
|
||||
@@ -135,17 +135,10 @@ err_exit:
|
||||
static void aq_ndev_set_multicast_settings(struct net_device *ndev)
|
||||
{
|
||||
struct aq_nic_s *aq_nic = netdev_priv(ndev);
|
||||
int err = 0;
|
||||
|
||||
err = aq_nic_set_packet_filter(aq_nic, ndev->flags);
|
||||
if (err < 0)
|
||||
return;
|
||||
aq_nic_set_packet_filter(aq_nic, ndev->flags);
|
||||
|
||||
if (netdev_mc_count(ndev)) {
|
||||
err = aq_nic_set_multicast_list(aq_nic, ndev);
|
||||
if (err < 0)
|
||||
return;
|
||||
}
|
||||
aq_nic_set_multicast_list(aq_nic, ndev);
|
||||
}
|
||||
|
||||
static const struct net_device_ops aq_ndev_ops = {
|
||||
|
||||
@@ -563,34 +563,41 @@ err_exit:
|
||||
|
||||
int aq_nic_set_multicast_list(struct aq_nic_s *self, struct net_device *ndev)
|
||||
{
|
||||
unsigned int packet_filter = self->packet_filter;
|
||||
struct netdev_hw_addr *ha = NULL;
|
||||
unsigned int i = 0U;
|
||||
|
||||
self->mc_list.count = 0U;
|
||||
|
||||
netdev_for_each_mc_addr(ha, ndev) {
|
||||
ether_addr_copy(self->mc_list.ar[i++], ha->addr);
|
||||
++self->mc_list.count;
|
||||
|
||||
if (i >= AQ_CFG_MULTICAST_ADDRESS_MAX)
|
||||
break;
|
||||
}
|
||||
|
||||
if (i >= AQ_CFG_MULTICAST_ADDRESS_MAX) {
|
||||
/* Number of filters is too big: atlantic does not support this.
|
||||
* Force all multi filter to support this.
|
||||
* With this we disable all UC filters and setup "all pass"
|
||||
* multicast mask
|
||||
*/
|
||||
self->packet_filter |= IFF_ALLMULTI;
|
||||
self->aq_nic_cfg.mc_list_count = 0;
|
||||
return self->aq_hw_ops->hw_packet_filter_set(self->aq_hw,
|
||||
self->packet_filter);
|
||||
self->mc_list.count = 0;
|
||||
if (netdev_uc_count(ndev) > AQ_HW_MULTICAST_ADDRESS_MAX) {
|
||||
packet_filter |= IFF_PROMISC;
|
||||
} else {
|
||||
return self->aq_hw_ops->hw_multicast_list_set(self->aq_hw,
|
||||
self->mc_list.ar,
|
||||
self->mc_list.count);
|
||||
netdev_for_each_uc_addr(ha, ndev) {
|
||||
ether_addr_copy(self->mc_list.ar[i++], ha->addr);
|
||||
|
||||
if (i >= AQ_HW_MULTICAST_ADDRESS_MAX)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (i + netdev_mc_count(ndev) > AQ_HW_MULTICAST_ADDRESS_MAX) {
|
||||
packet_filter |= IFF_ALLMULTI;
|
||||
} else {
|
||||
netdev_for_each_mc_addr(ha, ndev) {
|
||||
ether_addr_copy(self->mc_list.ar[i++], ha->addr);
|
||||
|
||||
if (i >= AQ_HW_MULTICAST_ADDRESS_MAX)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (i > 0 && i < AQ_HW_MULTICAST_ADDRESS_MAX) {
|
||||
packet_filter |= IFF_MULTICAST;
|
||||
self->mc_list.count = i;
|
||||
self->aq_hw_ops->hw_multicast_list_set(self->aq_hw,
|
||||
self->mc_list.ar,
|
||||
self->mc_list.count);
|
||||
}
|
||||
return aq_nic_set_packet_filter(self, packet_filter);
|
||||
}
|
||||
|
||||
int aq_nic_set_mtu(struct aq_nic_s *self, int new_mtu)
|
||||
|
||||
@@ -75,7 +75,7 @@ struct aq_nic_s {
|
||||
struct aq_hw_link_status_s link_status;
|
||||
struct {
|
||||
u32 count;
|
||||
u8 ar[AQ_CFG_MULTICAST_ADDRESS_MAX][ETH_ALEN];
|
||||
u8 ar[AQ_HW_MULTICAST_ADDRESS_MAX][ETH_ALEN];
|
||||
} mc_list;
|
||||
|
||||
struct pci_dev *pdev;
|
||||
|
||||
@@ -765,7 +765,7 @@ static int hw_atl_a0_hw_packet_filter_set(struct aq_hw_s *self,
|
||||
|
||||
static int hw_atl_a0_hw_multicast_list_set(struct aq_hw_s *self,
|
||||
u8 ar_mac
|
||||
[AQ_CFG_MULTICAST_ADDRESS_MAX]
|
||||
[AQ_HW_MULTICAST_ADDRESS_MAX]
|
||||
[ETH_ALEN],
|
||||
u32 count)
|
||||
{
|
||||
|
||||
@@ -784,7 +784,7 @@ static int hw_atl_b0_hw_packet_filter_set(struct aq_hw_s *self,
|
||||
|
||||
static int hw_atl_b0_hw_multicast_list_set(struct aq_hw_s *self,
|
||||
u8 ar_mac
|
||||
[AQ_CFG_MULTICAST_ADDRESS_MAX]
|
||||
[AQ_HW_MULTICAST_ADDRESS_MAX]
|
||||
[ETH_ALEN],
|
||||
u32 count)
|
||||
{
|
||||
@@ -812,7 +812,7 @@ static int hw_atl_b0_hw_multicast_list_set(struct aq_hw_s *self,
|
||||
|
||||
hw_atl_rpfl2_uc_flr_en_set(self,
|
||||
(self->aq_nic_cfg->is_mc_list_enabled),
|
||||
HW_ATL_B0_MAC_MIN + i);
|
||||
HW_ATL_B0_MAC_MIN + i);
|
||||
}
|
||||
|
||||
err = aq_hw_err_from_flags(self);
|
||||
|
||||
@@ -1946,8 +1946,8 @@ static int bcm_sysport_open(struct net_device *dev)
|
||||
if (!priv->is_lite)
|
||||
priv->crc_fwd = !!(umac_readl(priv, UMAC_CMD) & CMD_CRC_FWD);
|
||||
else
|
||||
priv->crc_fwd = !!(gib_readl(priv, GIB_CONTROL) &
|
||||
GIB_FCS_STRIP);
|
||||
priv->crc_fwd = !((gib_readl(priv, GIB_CONTROL) &
|
||||
GIB_FCS_STRIP) >> GIB_FCS_STRIP_SHIFT);
|
||||
|
||||
phydev = of_phy_connect(dev, priv->phy_dn, bcm_sysport_adj_link,
|
||||
0, priv->phy_interface);
|
||||
|
||||
@@ -278,7 +278,8 @@ struct bcm_rsb {
|
||||
#define GIB_GTX_CLK_EXT_CLK (0 << GIB_GTX_CLK_SEL_SHIFT)
|
||||
#define GIB_GTX_CLK_125MHZ (1 << GIB_GTX_CLK_SEL_SHIFT)
|
||||
#define GIB_GTX_CLK_250MHZ (2 << GIB_GTX_CLK_SEL_SHIFT)
|
||||
#define GIB_FCS_STRIP (1 << 6)
|
||||
#define GIB_FCS_STRIP_SHIFT 6
|
||||
#define GIB_FCS_STRIP (1 << GIB_FCS_STRIP_SHIFT)
|
||||
#define GIB_LCL_LOOP_EN (1 << 7)
|
||||
#define GIB_LCL_LOOP_TXEN (1 << 8)
|
||||
#define GIB_RMT_LOOP_EN (1 << 9)
|
||||
|
||||
@@ -5712,7 +5712,9 @@ static int bnxt_init_chip(struct bnxt *bp, bool irq_re_init)
|
||||
}
|
||||
vnic->uc_filter_count = 1;
|
||||
|
||||
vnic->rx_mask = CFA_L2_SET_RX_MASK_REQ_MASK_BCAST;
|
||||
vnic->rx_mask = 0;
|
||||
if (bp->dev->flags & IFF_BROADCAST)
|
||||
vnic->rx_mask |= CFA_L2_SET_RX_MASK_REQ_MASK_BCAST;
|
||||
|
||||
if ((bp->dev->flags & IFF_PROMISC) && bnxt_promisc_ok(bp))
|
||||
vnic->rx_mask |= CFA_L2_SET_RX_MASK_REQ_MASK_PROMISCUOUS;
|
||||
@@ -5917,7 +5919,7 @@ unsigned int bnxt_get_max_func_irqs(struct bnxt *bp)
|
||||
return min_t(unsigned int, hw_resc->max_irqs, hw_resc->max_cp_rings);
|
||||
}
|
||||
|
||||
void bnxt_set_max_func_irqs(struct bnxt *bp, unsigned int max_irqs)
|
||||
static void bnxt_set_max_func_irqs(struct bnxt *bp, unsigned int max_irqs)
|
||||
{
|
||||
bp->hw_resc.max_irqs = max_irqs;
|
||||
}
|
||||
@@ -6888,7 +6890,7 @@ static int __bnxt_open_nic(struct bnxt *bp, bool irq_re_init, bool link_re_init)
|
||||
rc = bnxt_request_irq(bp);
|
||||
if (rc) {
|
||||
netdev_err(bp->dev, "bnxt_request_irq err: %x\n", rc);
|
||||
goto open_err;
|
||||
goto open_err_irq;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6928,6 +6930,8 @@ static int __bnxt_open_nic(struct bnxt *bp, bool irq_re_init, bool link_re_init)
|
||||
open_err:
|
||||
bnxt_debug_dev_exit(bp);
|
||||
bnxt_disable_napi(bp);
|
||||
|
||||
open_err_irq:
|
||||
bnxt_del_napi(bp);
|
||||
|
||||
open_err_free_mem:
|
||||
@@ -7214,13 +7218,16 @@ static void bnxt_set_rx_mode(struct net_device *dev)
|
||||
|
||||
mask &= ~(CFA_L2_SET_RX_MASK_REQ_MASK_PROMISCUOUS |
|
||||
CFA_L2_SET_RX_MASK_REQ_MASK_MCAST |
|
||||
CFA_L2_SET_RX_MASK_REQ_MASK_ALL_MCAST);
|
||||
CFA_L2_SET_RX_MASK_REQ_MASK_ALL_MCAST |
|
||||
CFA_L2_SET_RX_MASK_REQ_MASK_BCAST);
|
||||
|
||||
if ((dev->flags & IFF_PROMISC) && bnxt_promisc_ok(bp))
|
||||
mask |= CFA_L2_SET_RX_MASK_REQ_MASK_PROMISCUOUS;
|
||||
|
||||
uc_update = bnxt_uc_list_updated(bp);
|
||||
|
||||
if (dev->flags & IFF_BROADCAST)
|
||||
mask |= CFA_L2_SET_RX_MASK_REQ_MASK_BCAST;
|
||||
if (dev->flags & IFF_ALLMULTI) {
|
||||
mask |= CFA_L2_SET_RX_MASK_REQ_MASK_ALL_MCAST;
|
||||
vnic->mc_list_count = 0;
|
||||
@@ -8502,11 +8509,11 @@ int bnxt_get_max_rings(struct bnxt *bp, int *max_rx, int *max_tx, bool shared)
|
||||
int rx, tx, cp;
|
||||
|
||||
_bnxt_get_max_rings(bp, &rx, &tx, &cp);
|
||||
*max_rx = rx;
|
||||
*max_tx = tx;
|
||||
if (!rx || !tx || !cp)
|
||||
return -ENOMEM;
|
||||
|
||||
*max_rx = rx;
|
||||
*max_tx = tx;
|
||||
return bnxt_trim_rings(bp, max_rx, max_tx, cp, shared);
|
||||
}
|
||||
|
||||
@@ -8520,8 +8527,11 @@ static int bnxt_get_dflt_rings(struct bnxt *bp, int *max_rx, int *max_tx,
|
||||
/* Not enough rings, try disabling agg rings. */
|
||||
bp->flags &= ~BNXT_FLAG_AGG_RINGS;
|
||||
rc = bnxt_get_max_rings(bp, max_rx, max_tx, shared);
|
||||
if (rc)
|
||||
if (rc) {
|
||||
/* set BNXT_FLAG_AGG_RINGS back for consistency */
|
||||
bp->flags |= BNXT_FLAG_AGG_RINGS;
|
||||
return rc;
|
||||
}
|
||||
bp->flags |= BNXT_FLAG_NO_AGG_RINGS;
|
||||
bp->dev->hw_features &= ~(NETIF_F_LRO | NETIF_F_GRO_HW);
|
||||
bp->dev->features &= ~(NETIF_F_LRO | NETIF_F_GRO_HW);
|
||||
|
||||
@@ -1470,7 +1470,6 @@ void bnxt_set_max_func_stat_ctxs(struct bnxt *bp, unsigned int max);
|
||||
unsigned int bnxt_get_max_func_cp_rings(struct bnxt *bp);
|
||||
void bnxt_set_max_func_cp_rings(struct bnxt *bp, unsigned int max);
|
||||
unsigned int bnxt_get_max_func_irqs(struct bnxt *bp);
|
||||
void bnxt_set_max_func_irqs(struct bnxt *bp, unsigned int max);
|
||||
int bnxt_get_avail_msix(struct bnxt *bp, int num);
|
||||
int bnxt_reserve_rings(struct bnxt *bp);
|
||||
void bnxt_tx_disable(struct bnxt *bp);
|
||||
|
||||
@@ -27,6 +27,15 @@
|
||||
#define BNXT_FID_INVALID 0xffff
|
||||
#define VLAN_TCI(vid, prio) ((vid) | ((prio) << VLAN_PRIO_SHIFT))
|
||||
|
||||
#define is_vlan_pcp_wildcarded(vlan_tci_mask) \
|
||||
((ntohs(vlan_tci_mask) & VLAN_PRIO_MASK) == 0x0000)
|
||||
#define is_vlan_pcp_exactmatch(vlan_tci_mask) \
|
||||
((ntohs(vlan_tci_mask) & VLAN_PRIO_MASK) == VLAN_PRIO_MASK)
|
||||
#define is_vlan_pcp_zero(vlan_tci) \
|
||||
((ntohs(vlan_tci) & VLAN_PRIO_MASK) == 0x0000)
|
||||
#define is_vid_exactmatch(vlan_tci_mask) \
|
||||
((ntohs(vlan_tci_mask) & VLAN_VID_MASK) == VLAN_VID_MASK)
|
||||
|
||||
/* Return the dst fid of the func for flow forwarding
|
||||
* For PFs: src_fid is the fid of the PF
|
||||
* For VF-reps: src_fid the fid of the VF
|
||||
@@ -389,6 +398,21 @@ static bool is_exactmatch(void *mask, int len)
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool is_vlan_tci_allowed(__be16 vlan_tci_mask,
|
||||
__be16 vlan_tci)
|
||||
{
|
||||
/* VLAN priority must be either exactly zero or fully wildcarded and
|
||||
* VLAN id must be exact match.
|
||||
*/
|
||||
if (is_vid_exactmatch(vlan_tci_mask) &&
|
||||
((is_vlan_pcp_exactmatch(vlan_tci_mask) &&
|
||||
is_vlan_pcp_zero(vlan_tci)) ||
|
||||
is_vlan_pcp_wildcarded(vlan_tci_mask)))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
static bool bits_set(void *key, int len)
|
||||
{
|
||||
const u8 *p = key;
|
||||
@@ -803,9 +827,9 @@ static bool bnxt_tc_can_offload(struct bnxt *bp, struct bnxt_tc_flow *flow)
|
||||
/* Currently VLAN fields cannot be partial wildcard */
|
||||
if (bits_set(&flow->l2_key.inner_vlan_tci,
|
||||
sizeof(flow->l2_key.inner_vlan_tci)) &&
|
||||
!is_exactmatch(&flow->l2_mask.inner_vlan_tci,
|
||||
sizeof(flow->l2_mask.inner_vlan_tci))) {
|
||||
netdev_info(bp->dev, "Wildcard match unsupported for VLAN TCI\n");
|
||||
!is_vlan_tci_allowed(flow->l2_mask.inner_vlan_tci,
|
||||
flow->l2_key.inner_vlan_tci)) {
|
||||
netdev_info(bp->dev, "Unsupported VLAN TCI\n");
|
||||
return false;
|
||||
}
|
||||
if (bits_set(&flow->l2_key.inner_vlan_tpid,
|
||||
|
||||
@@ -169,7 +169,6 @@ static int bnxt_req_msix_vecs(struct bnxt_en_dev *edev, int ulp_id,
|
||||
edev->ulp_tbl[ulp_id].msix_requested = avail_msix;
|
||||
}
|
||||
bnxt_fill_msix_vecs(bp, ent);
|
||||
bnxt_set_max_func_irqs(bp, bnxt_get_max_func_irqs(bp) - avail_msix);
|
||||
bnxt_set_max_func_cp_rings(bp, max_cp_rings - avail_msix);
|
||||
edev->flags |= BNXT_EN_FLAG_MSIX_REQUESTED;
|
||||
return avail_msix;
|
||||
@@ -192,7 +191,6 @@ static int bnxt_free_msix_vecs(struct bnxt_en_dev *edev, int ulp_id)
|
||||
msix_requested = edev->ulp_tbl[ulp_id].msix_requested;
|
||||
bnxt_set_max_func_cp_rings(bp, max_cp_rings + msix_requested);
|
||||
edev->ulp_tbl[ulp_id].msix_requested = 0;
|
||||
bnxt_set_max_func_irqs(bp, bnxt_get_max_func_irqs(bp) + msix_requested);
|
||||
edev->flags &= ~BNXT_EN_FLAG_MSIX_REQUESTED;
|
||||
if (netif_running(dev)) {
|
||||
bnxt_close_nic(bp, true, false);
|
||||
|
||||
@@ -6,11 +6,15 @@
|
||||
* Copyright (C) 2004 Sun Microsystems Inc.
|
||||
* Copyright (C) 2005-2016 Broadcom Corporation.
|
||||
* Copyright (C) 2016-2017 Broadcom Limited.
|
||||
* Copyright (C) 2018 Broadcom. All Rights Reserved. The term "Broadcom"
|
||||
* refers to Broadcom Inc. and/or its subsidiaries.
|
||||
*
|
||||
* Firmware is:
|
||||
* Derived from proprietary unpublished source code,
|
||||
* Copyright (C) 2000-2016 Broadcom Corporation.
|
||||
* Copyright (C) 2016-2017 Broadcom Ltd.
|
||||
* Copyright (C) 2018 Broadcom. All Rights Reserved. The term "Broadcom"
|
||||
* refers to Broadcom Inc. and/or its subsidiaries.
|
||||
*
|
||||
* Permission is hereby granted for the distribution of this firmware
|
||||
* data in hexadecimal or equivalent format, provided this copyright
|
||||
@@ -9290,6 +9294,15 @@ static int tg3_chip_reset(struct tg3 *tp)
|
||||
|
||||
tg3_restore_clk(tp);
|
||||
|
||||
/* Increase the core clock speed to fix tx timeout issue for 5762
|
||||
* with 100Mbps link speed.
|
||||
*/
|
||||
if (tg3_asic_rev(tp) == ASIC_REV_5762) {
|
||||
val = tr32(TG3_CPMU_CLCK_ORIDE_ENABLE);
|
||||
tw32(TG3_CPMU_CLCK_ORIDE_ENABLE, val |
|
||||
TG3_CPMU_MAC_ORIDE_ENABLE);
|
||||
}
|
||||
|
||||
/* Reprobe ASF enable state. */
|
||||
tg3_flag_clear(tp, ENABLE_ASF);
|
||||
tp->phy_flags &= ~(TG3_PHYFLG_1G_ON_VAUX_OK |
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
* Copyright (C) 2004 Sun Microsystems Inc.
|
||||
* Copyright (C) 2007-2016 Broadcom Corporation.
|
||||
* Copyright (C) 2016-2017 Broadcom Limited.
|
||||
* Copyright (C) 2018 Broadcom. All Rights Reserved. The term "Broadcom"
|
||||
* refers to Broadcom Inc. and/or its subsidiaries.
|
||||
*/
|
||||
|
||||
#ifndef _T3_H
|
||||
|
||||
@@ -166,6 +166,7 @@
|
||||
#define GEM_DCFG6 0x0294 /* Design Config 6 */
|
||||
#define GEM_DCFG7 0x0298 /* Design Config 7 */
|
||||
#define GEM_DCFG8 0x029C /* Design Config 8 */
|
||||
#define GEM_DCFG10 0x02A4 /* Design Config 10 */
|
||||
|
||||
#define GEM_TXBDCTRL 0x04cc /* TX Buffer Descriptor control register */
|
||||
#define GEM_RXBDCTRL 0x04d0 /* RX Buffer Descriptor control register */
|
||||
@@ -490,6 +491,12 @@
|
||||
#define GEM_SCR2CMP_OFFSET 0
|
||||
#define GEM_SCR2CMP_SIZE 8
|
||||
|
||||
/* Bitfields in DCFG10 */
|
||||
#define GEM_TXBD_RDBUFF_OFFSET 12
|
||||
#define GEM_TXBD_RDBUFF_SIZE 4
|
||||
#define GEM_RXBD_RDBUFF_OFFSET 8
|
||||
#define GEM_RXBD_RDBUFF_SIZE 4
|
||||
|
||||
/* Bitfields in TISUBN */
|
||||
#define GEM_SUBNSINCR_OFFSET 0
|
||||
#define GEM_SUBNSINCR_SIZE 16
|
||||
@@ -635,6 +642,7 @@
|
||||
#define MACB_CAPS_USRIO_DISABLED 0x00000010
|
||||
#define MACB_CAPS_JUMBO 0x00000020
|
||||
#define MACB_CAPS_GEM_HAS_PTP 0x00000040
|
||||
#define MACB_CAPS_BD_RD_PREFETCH 0x00000080
|
||||
#define MACB_CAPS_FIFO_MODE 0x10000000
|
||||
#define MACB_CAPS_GIGABIT_MODE_AVAILABLE 0x20000000
|
||||
#define MACB_CAPS_SG_DISABLED 0x40000000
|
||||
@@ -1203,6 +1211,9 @@ struct macb {
|
||||
unsigned int max_tuples;
|
||||
|
||||
struct tasklet_struct hresp_err_tasklet;
|
||||
|
||||
int rx_bd_rd_prefetch;
|
||||
int tx_bd_rd_prefetch;
|
||||
};
|
||||
|
||||
#ifdef CONFIG_MACB_USE_HWSTAMP
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user