Commit Graph

38434 Commits

Author SHA1 Message Date
Navdeep Parhar
31deb3cc76 cxgbe(4): More fixes for the T6 FCS error counter.
r365732 was the first attempt to get an accurate count but it was
writing to some read-only registers to clear them and that obviously
didn't work.  Instead, note the counter's value when it is supposed to
be cleared and subtract it from future readings.

dev.<port>.stats.rx_fcs_error should not be serviced from the MPS
register for T6.

The stats.* sysctls should all use T5_PORT_REG for T5 and above.  This
must have been missed in the initial T5 support years ago.  Fix it while
here.

MFC after:	3 days
Sponsored by:	Chelsio Communications
2020-10-09 22:23:39 +00:00
Richard Scheffenegger
bfabdade5c Add DSCP support for network QoS to iscsi initiator.
Allow the DSCP codepoint also to be configurable
for the traffic in the direction from the initiator
to the target, such that writes and any requests
are also treated in the appropriate QoS class.

Reviewed by:	mav
MFC after:	2 weeks
Sponsored by:	NetApp, Inc.
Differential Revision:	https://reviews.freebsd.org/D26714
2020-10-09 14:33:09 +00:00
Ruslan Bukin
72479f6bf9 Add iommu_get_dev_ctx() helper that allows to instantiate an iommu context
for a given device_t.

Submitted by:	andrew
Reviewed by:	kib
Sponsored by:	DARPA, AFRL
2020-10-09 13:11:14 +00:00
Warner Losh
8c576a279e Remove APM BIOS support
APM BIOS was relevant only to early laptops (approximately P166 or
P200 and slower). These have not been relevant for a long time, and
this code has been untested for a long time (as far as I can
tell). The APM compat code in ACPI and the apm(8) command is not being
retired. Both of these items are still in use (apm(8) is more
scriptable than the replacement acpiconf, for the most part). This has
been commented out of i386 GENERIC since 2002. This code is not
relevant to any other port.

Discussed on: arch@
2020-10-08 20:56:06 +00:00
Hans Petter Selasky
c3a38d6c91 Try a bit harder to get the USB device descriptor in case the initial read fails.
MFC after:		1 week
Sponsored by:		Mellanox Technologies // NVIDIA Networking
2020-10-08 11:30:22 +00:00
Hans Petter Selasky
d6dbbdea20 Allow evdev's rcpt_mask and sysmouse_t_axis parameters to be specified in
/boot/loader.conf .

MFC after:		1 week
Sponsored by:		Mellanox Technologies // NVIDIA Networking
2020-10-08 10:59:49 +00:00
Navdeep Parhar
77af2b2c85 cxgbe(4): knobs to drop various kinds of undesirable frames on ingress.
These kind of drops come for free in the sense that they do not use the
filter TCAM or any other resource that wouldn't normally be used during
rx.  Frames dropped by the hardware get counted in the MAC's rx stats
but are not delivered to the driver.

hw.cxgbe.attack_filter
Set to 1 to enable the "attack filter".  Default is 0.  The attack
filter will drop an incoming frame if any of these conditions is true:
src ip/ip6 == dst ip/ip6; tcp and src/dst ip is not unicast; src/dst ip
is loopback (127.x.y.z); src ip6 is not unicast; src/dst ip6 is loopback
(::1/128) or unspecified (::/128); tcp and src/dst ip6 is mcast
(ff00::/8).

hw.cxgbe.drop_ip_fragments
Set to 1 to drop all incoming IP fragments.  Default is 0.  Note that
this drops valid frames.

hw.cxgbe.drop_pkts_with_l2_errors
Set to 1 to drop incoming frames with Layer 2 length or checksum errors.
Default is 1.

hw.cxgbe.drop_pkts_with_l3_errors
Set to 1 to drop incoming frames with IP version, length, or checksum
errors.  Default is 0.

hw.cxgbe.drop_pkts_with_l4_errors
Set to 1 to drop incoming frames with Layer 4 length, checksum, or other
errors.  Default is 0.

MFC after:	2 weeks
Sponsored by:	Chelsio Communications
2020-10-08 10:00:13 +00:00
Hans Petter Selasky
194ddc011a Properly cleanup driver during remove_one() in mlx5core.
Cleanup all host resources, SYSCTLs, MSIX vectors and memory used
by the host and only leave the device allocated memory behind, if any,
because it may still be in use, when the PCI remove function is called.
Else future probe calls may fail due to SYSCTLs already existing.

MFC after:		1 week
Sponsored by:		Mellanox Technologies // NVIDIA Networking
2020-10-07 17:46:49 +00:00
Warner Losh
bc683a89a3 Move kernel env global variables, etc to sys/kenv.h
The kernel globals for kenv are confined to 2 files that need them and
a few that likely shouldn't (but as written the code does). Move them
from sys/systm.h to sys/kenv.h. This removed a XXX from systm.h and
cleans it up a little bit...
2020-10-07 06:16:37 +00:00
John Baldwin
f34702b76e Don't permit DRM buffer mappings to be upgraded to executable.
Reviewed by:	kib
MFC after:	1 month
Sponsored by:	DARPA
Differential Revision:	https://reviews.freebsd.org/D26697
2020-10-06 18:13:15 +00:00
John Baldwin
56fb710f1b Store the send tag type in the common send tag header.
Both cxgbe(4) and mlx5(4) wrapped the existing send tag header with
their own identical headers that stored the type that the
type-specific tag structures inherited from, so in practice it seems
drivers need this in the tag anyway.  This permits removing these
extra header indirections (struct cxgbe_snd_tag and struct
mlx5e_snd_tag).

In addition, this permits driver-independent code to query the type of
a tag, e.g. to know what type of tag is being queried via
if_snd_query.

Reviewed by:	gallatin, hselasky, np, kib
Sponsored by:	Netflix
Differential Revision:	https://reviews.freebsd.org/D26689
2020-10-06 17:58:56 +00:00
Navdeep Parhar
8741306b3b cxgbe(4) sysctls do not need Giant.
Sponsored by:	Chelsio Communications
2020-10-05 22:18:04 +00:00
Mark Johnston
ce3e137ca1 re(4): Add a 8168-compatible device ID
This is described in RealTek's driver as a "RTL8168 Series add-on card."

PR:		250037
Submitted by:	Hiroshi HASEGAWA <hhase1973@gmail.com>
MFC after:	1 week
2020-10-05 19:58:55 +00:00
Hans Petter Selasky
8853522919 Add support for Google Cr50 (GSC) Closed Case Debugging UART interfaces to
the USB generic serial port driver, ugensa.

MFC after:		1 week
Differential Revision:	https://reviews.freebsd.org/D21863
Submitted by:		greg_unrelenting.technology (Greg V)
Sponsored by:		Mellanox Technologies // NVIDIA Networking
2020-10-04 17:17:16 +00:00
Emmanuel Vadot
b48668250e pwm_backlight: Fix 32 bits build
Reported by:	jenkins, mjg
2020-10-03 08:31:28 +00:00
Navdeep Parhar
73f6606b47 cxgbe(4): set up the firmware flowc for the tid before send_abort_rpl.
MFC after:	3 days
Sponsored by:	Chelsio Communications
2020-10-02 23:48:57 +00:00
Emmanuel Vadot
38d94a4bc7 Add pwm_backlight
Driver for pwm-backlight compatible device.

Relnotes:	yes
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D26252
2020-10-02 18:23:27 +00:00
Emmanuel Vadot
675aae732d Add backlight subsystem
This is a simple subsystem that allow drivers to register as a backlight.
Each backlight creates a device node under /dev/backlight/backlightX and
an alias based on the name provided.

Relnotes:	yes
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D26250
2020-10-02 18:18:01 +00:00
Nick O'Brien
3f59a7f97b flash: Add support for SPI flash s25fl512s
Reviewed by:	kp
Approved by:	kp (mentor)
Sponsored by:	Axiado
2020-10-02 17:33:56 +00:00
Navdeep Parhar
7676c62aa3 cxgbe(4): validate largest_rx_cluster and safest_rx_cluster.
These tunables can only be set to a valid cluster size (2K, 4K, 9K, or
16K) as documented in the man page.  Anything else could lead to a
panic on interface up.

Reported by:	mav@
MFC after:	1 week
Sponsored by:	Chelsio Communications
2020-10-02 05:59:55 +00:00
Emmanuel Vadot
48c13e5270 ichsmb_pci: convert to pci_device_table / add PCI_PNP_INFO
Submitted by:	Greg V <greg@unrelenting.technology>
Reviewed by:	mav
Differential Revision:	https://reviews.freebsd.org/D25260
2020-10-01 16:55:01 +00:00
Michal Meloun
c19440e350 Fix the inverted condition in mtx_asserts.
Mutex should be owned in affected functions.

Reborted by:	emaste
MFC after:	4 weeks
MFC with:	r366161
2020-10-01 09:50:08 +00:00
Emmanuel Vadot
6b74091dd5 ahci_generic: add quirk for NXP0004 (NXP Layerscape LX2160A)
This fixes this error :
(aprobe3:ahcich3:0:15:0): NOP FLUSHQUEUE. ACB: 00 00 00 00 00 00 00 00 00 00 00 00
(aprobe3:ahcich3:0:15:0): CAM status: Command timeout
(aprobe3:ahcich3:0:15:0): Error 5, Retries exhausted

Submitted by:	Greg V <greg@unrelenting.technology>
Reviewed by:	imp, mav
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D25157
2020-09-30 17:10:49 +00:00
Emmanuel Vadot
a52c8a6502 acpi_resource: support multiple IRQs
Some DSDT entries have multiple interrupts for one device.
Add support for it.

This fixes ahci on NXP LS2160 and genet on RPi4

Submitted by:	Greg V <greg@unrelenting.technology>
Reviewed by:	jhb
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D25145
2020-09-30 17:09:17 +00:00
John Baldwin
0e99339684 Fallback to software for more GCM and CCM requests.
ccr(4) uses software to handle GCM and CCM requests not supported by
the crypto engine (e.g. with only AAD and no payload).  This change
adds a fallback for a few more requests such as those with more SGL
entries than can fit in a work request (this can happen for GCM when
decrypting a TLS record split across 15 or more packets).

Reported by:	Chelsio QA
Reviewed by:	np
Sponsored by:	Chelsio Communications
Differential Revision:	https://reviews.freebsd.org/D26582
2020-09-29 21:51:32 +00:00
Bjoern A. Zeeb
3917c9ba65 rtwn: narrow the epoch area
Rather than placing the epoch around the entire receive loop which
might call into rtwn_rx_frame() and USB and sleep, split the loop
into two[1] and leave us with one unlock/lock cycle as well.

PR:		249925
Reported by:	thj, (rkoberman gmail.com)
Tested by:	thj
Suggested by:	adrian [1]
Reviewed by:	adrian
MFC after:	3 days
Sponsored by:	The FreeBSD Foundation (initially, paniced my iwl lab host)
Differential Revision:	https://reviews.freebsd.org/D26554
2020-09-29 20:46:25 +00:00
Ruslan Bukin
6186bfbd18 Rename kernel option ACPI_DMAR to IOMMU.
This is mostly needed for a common arm64/amd64 iommu code.

Reviewed by:	kib
Sponsored by:	DARPA, AFRL
Differential Revision:	https://reviews.freebsd.org/D26587
2020-09-29 20:29:07 +00:00
Ruslan Bukin
025730aad6 o Rename acpi_iommu_get_dma_tag() -> iommu_get_dma_tag().
This function isn't ACPI dependent and we may use it on FDT systems
  as well.
o Don't repeat the function declaration, include iommu.h instead.

Reviewed by:	andrew, kib
Sponsored by:	DARPA, AFRL
Differential Revision:	https://reviews.freebsd.org/D26584
2020-09-29 15:10:56 +00:00
Navdeep Parhar
822967e7e5 cxgbe(4): Avoid unnecessary work in the firmware during netmap tx.
Bind the netmap tx queues to a special '0xff' scheduling class which
makes the firmware skip some processing related to rate limiting on the
outgoing traffic.  Future firmwares will do this automatically.

MFC after:	1 week
Sponsored by:	Chelsio Communications
2020-09-29 09:25:52 +00:00
Navdeep Parhar
7efe256233 Remove duplicate line. 2020-09-29 09:11:51 +00:00
Navdeep Parhar
15ca0766ed cxgbe(4): adjust the doorbell threshold for netmap freelists to match the
maximum burst size used when fetching descriptors from the list.

MFC after:	1 week
Sponsored by:	Chelsio Communications
2020-09-29 07:51:06 +00:00
Navdeep Parhar
f7b8615af5 cxgbe(4): display an error message when netmap cannot be enabled because
the interface is down.

MFC after:	1 week
2020-09-29 07:36:21 +00:00
Navdeep Parhar
a9f476580e cxgbe(4): fixes for netmap operation with only some queues active.
- Only active netmap receive queues should be in the RSS lookup table.

- The RSS table should be restored for NIC operation when the last
  active netmap queue is switched off, not the first one.

- Support repeated netmap ON/OFF on a subset of the queues.  This works
  whether the the queues being enabled and disabled are the only ones
  active or not.  Some kring indexes have to be reset in the driver for
  the second case.

MFC after:	1 week
Sponsored by:	Chelsio Communications
2020-09-29 05:08:45 +00:00
Michal Meloun
01d0f9c0e4 Refine locking inside of syscon driver.
In some cases, the syscon driver may be used by consumer requiring better
control about locking (ie. it may be used as registe file provider for clock
driver which needs locked access to multiple registers).
Add fine locking protocol methods together with bunch of helper functions
in syscon driver and implement this functionality in syscon_generic driver.

MFC after:	4 weeks
2020-09-25 16:44:01 +00:00
Michal Meloun
8dc348a479 Correctly handle nodes compatible with "syscon", "simple-bus".
Syscon can also have child nodes that share a registration file with it.
To do this correctly, follow these steps:
- subclass syscon from simplebus and expose it if the node is also
  "simple-bus" compatible.
- block simplebus probe for this compatible string, so it's priority
 (bus pass) doesn't colide with syscon driver.

While I'm in, also block "syscon", "simple-mfd" for the same reason.

MFC after:	4 weeks
2020-09-25 13:52:31 +00:00
Michal Meloun
b95a8021ec Make simplebus friendlier for subclassing.
MFC after:	1 week
2020-09-25 09:56:50 +00:00
Conrad Meyer
5b50517079 amdtemp(4), amdsmn(4): Attach to Ryzen 4000 APU (Zen 2, "Renoir")
PR:		249864
Reported by:	Florian Millet <florian.millet AT laposte.net>
Tested by:	Florian Millet
2020-09-25 04:16:28 +00:00
Bjoern A. Zeeb
fe5ebb23cc Provide MS() and SM() macros for 80211 and wireless drivers.
We have (two versions) of MS() and SM() macros which we use throughout
the wireless code.  Change all but three places (ath_hal, rtwn, and rsu)
to the newly provided _IEEE80211_MASKSHIFT() and _IEEE80211_SHIFTMASK()
macros.  Also change one internal case using both _S and _M instead of
just _S away from _M (one of the reasons rtwn and rsu were not changed).

This was done semi-mechanically.  No functional changes intended.

Requested by:	gnn (D26091)
Reviewed by:	adrian (pre line wrap)
MFC after:	2 weeks
Sponsored by:	Rubicon Communications, LLC (d/b/a "Netgate")
Differential Revision:	https://reviews.freebsd.org/D26539
2020-09-24 10:57:39 +00:00
Navdeep Parhar
30e3f2b4ea cxgbe(4): let the PF driver use VM work requests for transmit.
This allows the PF interfaces to communicate with the VF interfaces over
the internal switch in the ASIC.  Fix the GL limits for VM work requests
while here.

MFC after:	3 days
Sponsored by:	Chelsio Communications
2020-09-22 04:16:40 +00:00
Navdeep Parhar
7054f6ec97 cxgbe(4): add counters for mbuf pullups and defrags.
MFC after:	3 days
Sponsored by:	Chelsio Communications
2020-09-22 03:06:36 +00:00
Hans Petter Selasky
8463bd8a77 Add support for Winbond USB CDC modem device found in Tenma power supply.
PR:		249384
MFC after:	1 week
Submitted by:	darius@dons.net.au
Sponsored by:	Mellanox Technologies // NVIDIA Networking
2020-09-21 18:32:57 +00:00
David Bright
e32d47f32d Add an ioctl to get an NVMe device's maximum transfer size
Reviewed by:	imp, chuck
Obtained from:	Dell EMC Isilon
MFC after:	1 week
Sponsored by:	Dell EMC Isilon
Differential Revision:	https://reviews.freebsd.org/D26390
2020-09-21 15:41:47 +00:00
Hans Petter Selasky
a29c0348f0 Fix for use of the XHCI driver on Cortex-A72 by adding a missing cache
flush operation before writing to the XHCI_ERSTBA_LO/HI register(s).

PR:		237666
Discussed with:	Mark Millard <marklmi@yahoo.com>
MFC after:	1 week
Sponsored by:	Mellanox Technologies // Nvidia
2020-09-19 22:37:45 +00:00
Eric van Gyzen
f9cc8410e1 vm_ooffset_t is now unsigned
vm_ooffset_t is now unsigned. Remove some tests for negative values,
or make other adjustments accordingly.

Reported by:	Coverity
Reviewed by:	kib markj
Sponsored by:	Dell EMC Isilon
Differential Revision:	https://reviews.freebsd.org/D26214
2020-09-18 16:48:08 +00:00
Navdeep Parhar
3b8506ae30 cxgbe(4): add the firmware binaries instead of the empty files that were added
in r365861.

Obtained from:	Chelsio Communications
MFC after:	3 days
Sponsored by:	Chelsio Communications
2020-09-18 03:11:47 +00:00
Navdeep Parhar
a4a4ad2dd9 cxgbe(4): add support for stateless offloads for VXLAN traffic.
Hardware assistance includes checksumming (tx and rx), TSO, and RSS on
the inner traffic in a VXLAN tunnel.

Relnotes:	Yes
Sponsored by:	Chelsio Communications
2020-09-18 03:01:47 +00:00
Navdeep Parhar
88c9c3f4dd cxgbe(4): Update T4/5/6 firmwares to 1.25.0.0.
Obtained from:	Chelsio Communications
MFC after:	3 days
Sponsored by:	Chelsio Communications
2020-09-17 22:14:11 +00:00
Eric Joyner
a3b9a7366e e1000: Properly retain promisc flag
From Franco:
The iflib rewrite forced the promisc flag but it was not reported
to the system.  Noticed on a stock VM that went into unsolicited
promisc mode when dhclient was started during bootup.

PR:		248869
Submitted by:	Franco Fichtner <franco@opnsense.org>
Reviewed by:	erj@
MFC after:	3 days
2020-09-15 21:07:30 +00:00
Eric Joyner
467515a494 igb(4): Fix define and includes with RSS option enabled
This re-adds the opt_rss.h header to the driver and includes some
RSS-specific headers when RSS is defined.

PR:		249191
Submitted by:	Milosz Kaniewski <milosz.kaniewski@gmail.com>
MFC after:	3 days
2020-09-15 21:00:25 +00:00
Warner Losh
44a8153672 Don't do the busy dance in icee_open/close
We don't need to do the busy dance for this driver. It's handled by
destroy_dev() entirely. Since all we did was busy/unbusy in
open/close, just delete them. We therefore don't need to track closes
either.

Reviewed by: ian@
Differential Revision: https://reviews.freebsd.org/D26431
2020-09-14 23:30:04 +00:00
Navdeep Parhar
bb60ba7e22 cxgbe(4): Get the count of FCS errors from the MAC and not MPS for T6 ports.
The MPS register on the T6 counts something other than FCS errors despite its
name.

MFC after:	3 days
Sponsored by:	Chelsio Communications
2020-09-14 22:15:54 +00:00
Ian Lepore
3c41bcdf29 Add product ID strings for a couple Microchip usb hubs. Also, update the
vendor ID string to say just "Microchip Technology" -- the buyout of
Standard Microsystems happened in 2012 and the SMC/SMSC names are pretty
much retired at this point.

PR:		241406
2020-09-14 17:33:28 +00:00
Hans Petter Selasky
39b0f9c389 Poll statistics more frequently in mlx5en(4).
This makes traffic steering algorithms more accurate.

MFC after:	1 week
Submitted by:	gallatin @
Sponsored by:	Mellanox Technologies // NVIDIA Networking
2020-09-14 14:24:54 +00:00
Andrew Turner
d729904a4f Allow for interrupts on pl061 children
Add enough infrastructure for interrupts on children of the pl061 GPIO
controller. As gpiobus already provided these the pl061 driver also needs
to pass requests up the newbus hierarchy.

Currently there are no children that expect to configure interrupts, however
this is expected to change to support the ACPI Event Information interface.

Sponsored by:	Innovate UK
2020-09-14 08:59:16 +00:00
Scott Long
74c781ed91 Refine the busdma template interface. Provide tools for filling in fields
that can be extended, but also ensure compile-time type checking.  Refactor
common code out of arch-specific implementations.  Move the mpr and mps
drivers to this new API.  The template type remains visible to the consumer
so that it can be allocated on the stack, but should be considered opaque.
2020-09-14 05:58:12 +00:00
John-Mark Gurney
7d5522e16a A major update to the ure driver.
This update adds support for:
HW VLAN tagging
HW checksum offload for IPv4 and IPv6
tx and rx aggreegation (for full gige speeds)
multiple transactions

In my testing, I am able to get 900-950Mbps depending upon
TCP or UDP, which is a significant improvement over the previous
91Mbps (~8kint/sec*1500bytes/packet*1packet/int).

Reviewed by:	hselasky
MFC after:	2 months
Differential Revision:	https://reviews.freebsd.org/D25809
2020-09-12 00:33:11 +00:00
Scott Long
1002529ea9 Convert the mps driver to use busdma templates 2020-09-11 22:27:35 +00:00
Bjoern A. Zeeb
aaa1fdb87b iwm: fix regression from r365419 (ieee80211_media_change())
In r365419 ieee80211_media_change() callers were updated to not longer
act on the obselete ENETRESET return code.
While in the old days iwm has done a stop/init cycle in these cases,
this was not executed since r193340.
As a consequence simplify iwm code as well by passing ieee80211_media_change()
right to ieee80211_vap_attach() as there is no more need for a local
implementation.

Reported by:	Tomoaki AOKI (junchoon dec.sakura.ne.jp)
Tested by:	Tomoaki AOKI (junchoon dec.sakura.ne.jp)
MFC after:	3 days
X-MFC:		fix is already in stable/12
PR:		248955
2020-09-11 14:18:47 +00:00
John-Mark Gurney
0b39e3448a Don't clear reserved bits per RealTek
MFC after:	3 days
2020-09-11 02:02:13 +00:00
Eric Joyner
7d7af7f85b ice(4): Update to 0.26.16
Summary of changes:

- Assorted bug fixes
- Support for newer versions of the device firmware
- Suspend/resume support
- Support for Lenient Link Mode for E82X devices (e.g. can try to link with
  SFP/QSFP modules with bad EEPROMs)
- Adds port-level rx_discards sysctl, similar to ixl(4)'s

This version of the driver is intended to be used with DDP package 1.3.16.0,
which has already been updated in a previous commit.

Tested by:	Jeffrey Pieper <jeffrey.e.pieper@intel.com>
MFC after:	3 days
MFC with:	r365332, r365550
Sponsored by:	Intel Corporation
Differential Revision:	https://reviews.freebsd.org/D26322
2020-09-10 23:46:13 +00:00
Li-Wen Hsu
9f917148e0 urndis(4): Add support of Inseego/Novatel Wireless MiFi 8800/8000
PR:		245152
Submitted by:	rootless@gmail.com
Reviewed by:	hselasky
MFC after:	3 days
2020-09-10 18:27:52 +00:00
Andrew Turner
15fe2adacb Move the pl061 acpi attachment earlier
As the pl061 driver can be an interrupt controller attach it earlier in the
boot so other drivers can use it.

Use a new GPIO xref to not conflict with the existing root interrupt
controller.

Sponsored by:	Innovate UK
2020-09-10 14:58:46 +00:00
Ruslan Bukin
cb9050dd21 Move the rid variable to the generic iommu context.
It could be used in various IOMMU platforms, not only DMAR.

Reviewed by:	kib
Sponsored by:	DARPA, AFRL
Differential Revision:	https://reviews.freebsd.org/D26373
2020-09-10 14:12:25 +00:00
Andrew Turner
128e746c6a Switch the name of the pl061 driver to gpio
We need it to be named gpio for gpiobus to work.

Sponsored by:	Innovate UK
2020-09-10 09:50:43 +00:00
Andrew Turner
f5e4e9153c Only manage ofw gpio providers on ofw systems
On arm64 we may boot via ACPI. In this case we will still try to manage the
gpio providers as if we are using FDT. Fix this by checking if the FDT node
is valid before registering a cross reference.

Sponsored by:	Innovate UK
2020-09-10 09:42:37 +00:00
Andrew Turner
365ed84f28 Use the correct variable to check which interrupt mode to use
In the PL061 driver we incorrectly used the mask rather than mode to find
how to configure the interrupt.

Sponsored by:	Innovate UK
2020-09-10 09:37:30 +00:00
Konstantin Belousov
fbf2a77876 Convert allocations of the phys pager to vm_pager_allocate().
Future changes would require additional initialization of OBJT_PHYS
objects, and vm_object_allocate() is not suitable for it.

Reviewed by:	markj
Tested by:	pho
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D24652
2020-09-08 23:38:49 +00:00
John Baldwin
895c98cc29 Don't return errors from the cryptodev_process() method.
The cryptodev_process() method should either return 0 if it has
completed a request, or ERESTART to defer the request until later.  If
a request encounters an error, the error should be reported via
crp_etype before completing the request via crypto_done().

Fix a few more drivers noticed by asomers@ similar to the fix in
r365389.  This is an old bug, but went unnoticed since crypto requests
did not start failing as a normal part of operation until digest
verification was introduced which can fail requests with EBADMSG.

PR:		247986
Reported by:	asomers
Sponsored by:	Chelsio Communications
Differential Revision:	https://reviews.freebsd.org/D26361
2020-09-08 22:41:35 +00:00
Mitchell Horne
7c7b8f577e RISC-V: fix some mismatched format specifiers
RISC-V is currently built with -Wno-format, which is how these went
undetected. Address them now before re-enabling those warnings.

Differential Revision:	https://reviews.freebsd.org/D26319
2020-09-08 13:21:13 +00:00
Andrew Turner
1fc1a22868 Add a GPIO driver for the Arm pl061 controller
A PL061 is a simple 8 pin GPIO controller. This GPIO device is used to
signal an internal request for shutdown on some virtual machines including
Arm-based Amazon EC2 instances.

Submitted by:	Ali Saidi <alisaidi_amazon.com> (previouss version)
Reviewed by:	Ali Saidi, manu
Differential Revision:	https://reviews.freebsd.org/D24065
2020-09-08 11:35:35 +00:00
Li-Wen Hsu
3202fefa01 Add support to BELKIN B2B128 USB3 Ethernet Adapter to axge(4)
Github PR:	https://github.com/freebsd/freebsd/pull/439
Submitted by:	https://github.com/jdpc86
MFC after:	2 weeks
2020-09-08 04:44:37 +00:00
Bjoern A. Zeeb
c6167b4bf5 WiFi: fix ieee80211_media_change() callers
In r178354 with the introduction of multi-bss ("vap") support factoring
out started and with r193340 ieee80211_media_change() no longer returned
ENETRESET but only 0 or error.
As ieee80211(9) tells the ieee80211_media_change() function should not
be called directly but is registered with ieee80211_vap_attach() instead.

Some drivers have not been fully converted.  After fixing the return
checking some of these functions were simply wrappers between
ieee80211_vap_attach() and ieee80211_media_change(), so remove the extra
function, where possible as well.

PR:		248955
Submitted by:	Tong Zhang (ztong0001 gmail.com) (original)
MFC after:	3 days
Sponsored by:	The FreeBSD Foundation
2020-09-07 15:35:40 +00:00
Andriy Gapon
1668d773a4 musb/allwinner: add support for configuring phy as well as device mode
At least on Orange Pi PC Plus even the host mode does not work without
enabling the phy and setting it to the host mode.

The driver will now parse dr_mode property and will try to configure
itself and the phy accordingly.
OTG mode is not supported yet, so it is treated as the device / peripheral
mode.

The phy is enabled -- powered on -- only for the host mode.

The device mode requires support from a phy driver, e.g., aw_usbphy on
Allwinner platform.
aw_usbphy does not support the device mode, so it cannnot work yet.

MFC after:	6 weeks
2020-09-07 06:53:29 +00:00
Andriy Gapon
f206695209 musb/allwinner: add H3 support
MFC after:	6 weeks
2020-09-07 06:49:07 +00:00
Andriy Gapon
d7abf6e73c musb/allwinner: apply register filter in awusbdrd_bs_r_2() as well
Otherwise, I get this panic:
panic: awusbdrd_reg: Invalid register 0x342

It looks that musb code both writes and reads at least MUSB2_REG_TXDBDIS.

MFC after:	5 weeks
X-MFC after:	r365399
2020-09-07 06:48:08 +00:00
Andriy Gapon
029e367dd1 fixup r365398: add a missed file with all the new Allwinner musb_otg code
Obtained from:	andrew
MFC after:	5 weeks
X-MFC with:	r365398
2020-09-07 06:44:24 +00:00
Andriy Gapon
6305020526 twsi: some variants clear interrupt flag by writing 0, others by writing 1
Make that distinction more explicit and regular in the code.
The difference in behavior is documented in the respective datasheets.

Previously, the code handled the distinction by writing the control
register multiple times where at least one write was zero and another
was one.

This can be considered a follow-up to r363021.

Reviewed by:	manu
MFC after:	4 weeks
Differential Revision: https://reviews.freebsd.org/D26308
2020-09-07 06:32:03 +00:00
Andriy Gapon
e21a4ccfd1 twsi: use tsleep instead of pause for better responsiveness
wakeup() does not have any effect on pause(), so if a transfer was
not finished by the time of the first check, then the thread
would sleep full 30 ms.

To do: protect the transfer and interrupt code with the mutex,
switch from tsleep from msleep

Reviewed by:	manu
MFC after:	3 weeks
Differential Revision: https://reviews.freebsd.org/D26309
2020-09-07 06:29:41 +00:00
Andriy Gapon
c3a7328be8 aw_clk_nm: fix incorrect use of abs()
abs() takes a (signed) int as input.
Instead, it was used with unsigned 64-bit integers.

So, add and use a new helper function to calculate a difference between
two uint64_t-s.

Reviewed by:	manu
MFC after:	2 weeks
Differential Revision: https://reviews.freebsd.org/D26307
2020-09-07 06:27:18 +00:00
Bjoern A. Zeeb
a16e001bd9 umass: enhance debugging
Investigating a hang I found having some more error information
available would be helpful, so be more verbose and also tell cam/xpt
status in case of error/panic.

Reviewed by:	hselasky
MFC after:	3 days
Differential Revision:	https://reviews.freebsd.org/D26287
2020-09-04 18:29:59 +00:00
Bjoern A. Zeeb
ed75ef34d4 umass: fix a cam_sim leak in error case
While debugging a hang I noticed that in case of error in
umass_cam_attach_sim() we miss a cam_sim_free() call.
Added that to not leak resources.

Reviewed by:	hselasky
MFC after:	3 days
Differential Revision:	D26287
2020-09-04 18:26:35 +00:00
Andriy Gapon
e7fe5d60b1 move defintion of hw.i2c sysctl node from iicbb to iicbus
MFC after:	2 weeks
2020-09-03 08:02:19 +00:00
Andriy Gapon
0524c5fc82 twsi: no need to compare boolean with boolean constant
Testing the boolean directly is shorter and more idiomatic.

MFC after:	1 week
2020-09-03 08:01:21 +00:00
Andriy Gapon
d6adffa570 twsi: replace a couple of errno codes with i2c error codes
Reviewed by:	manu
MFC after:	1 week
2020-09-03 07:42:53 +00:00
Niclas Zeising
1f42dc843f drm2: Fix build after r365264
Fix the build after r365264, I forgot to exclude arm in one more place.

Reported by:	rpokala
Approved by:	manu (implicit, build fix)
MFC after:	3 days
X-MFC-With:	365264
Pointy-hat to:	zeising
2020-09-03 05:25:39 +00:00
Ed Maste
49492b213f mgb: correct macro argument name
mgb had a longstanding typo in function-like macro MGB_NEXT_RING_IDX's
argument, but the macro had no consumers.  r365061 introduced a use of
the macro, after which mgb failed to build.

MFC after:	3 days
Sponsored by:	The FreeBSD Foundation
2020-09-03 02:17:55 +00:00
John Baldwin
85b29fea3c Fix the variable name passed to OF_getprop().
Reported by:	tinderbox
2020-09-02 22:27:30 +00:00
Ian Lepore
ac07cdf8f7 In ltc430x(4), add the ability to configure control register 2 via FDT or
hints data.  Control register 2 holds the settings a user might want to
configure, such as the timeout value for idle busses and whether to enable
the mass-writes feature.

Also add hint support for disconnecting idle busses (which was already
supported using FDT data).

Update the manpage with the new features, and also split the hints section
into separate lists of required and optional hints.
2020-09-02 19:37:47 +00:00
Mark Johnston
2d838cd867 Add the MEM_EXTRACT_PADDR ioctl to /dev/mem.
This allows privileged userspace processes to find information about the
physical page backing a given mapping.  It is useful in applications
such as DPDK which perform some of their own memory management.

Reviewed by:	kib, jhb (previous version)
MFC after:	2 weeks
Sponsored by:	Juniper Networks, Inc.
Sponsored by:	Klara Inc.
Differential Revision:	https://reviews.freebsd.org/D26237
2020-09-02 18:12:47 +00:00
Niclas Zeising
662c3e2084 drm2: Further improve deprecation message
Further improve the drm2 deprecation message, only displaying information
about the port for relevant architectures, and skipping the message
completely from arm, which uses some parts of drm2 still.

This is mostly intended to be merged to 12, since the base bits of drm2 on
FreeBSD 13 are only really used on arm.

Reviewed by:	manu, mmel
Approved by:	manu
MFC after:	3 days
X-MFC-with:	r364737
Differential Revision:	https://reviews.freebsd.org/D26275
2020-09-02 18:04:49 +00:00
Eric Joyner
2984a8dd7c ixl(4): Add support for X710-T*L devices
Add support for new devices which are capable of 2.5 and 5G speeds, as well as
Energy Efficient Ethernet (EEE):

- introduce new device ids
- add ability to select 2.5 and 5G speeds on devices which support it
- add sysctls to enable EEE and read related statistics

Submitted by:	Krzysztof Galazka <krzysztof.galazka@intel.com>
Reviewed by:	#IntelNetworking
MFC after:	3 days
Sponsored by:	Intel Corporation
Differential Revision:	https://reviews.freebsd.org/D25549
2020-09-01 23:16:38 +00:00
Mateusz Guzik
ab326db897 cpufreq: clean up empty lines in .c and .h files 2020-09-01 22:11:48 +00:00
Mateusz Guzik
a7699405cb cpuctl: clean up empty lines in .c and .h files 2020-09-01 22:11:22 +00:00
Mateusz Guzik
ea78d63ed0 cmx: clean up empty lines in .c and .h files 2020-09-01 22:11:05 +00:00
Mateusz Guzik
405b8d43e4 ciss: clean up empty lines in .c and .h files 2020-09-01 22:10:55 +00:00
Mateusz Guzik
0979589188 cfi: clean up empty lines in .c and .h files 2020-09-01 22:10:34 +00:00
Mateusz Guzik
9c0df1da91 cfe: clean up empty lines in .c and .h files 2020-09-01 22:10:24 +00:00
Mateusz Guzik
594dd1ded3 cesa: clean up empty lines in .c and .h files 2020-09-01 22:10:11 +00:00
Mateusz Guzik
ebf31a5cb9 ce: clean up empty lines in .c and .h files 2020-09-01 22:10:00 +00:00
Mateusz Guzik
44b1283d2a cardbus: clean up empty lines in .c and .h files 2020-09-01 22:09:41 +00:00
Mateusz Guzik
2334c4b865 cadence: clean up empty lines in .c and .h files 2020-09-01 22:09:26 +00:00
Mateusz Guzik
1224a253d8 md: clean up empty lines in .c and .h files 2020-09-01 22:08:52 +00:00
Mateusz Guzik
9f169a20b5 mem: clean up empty lines in .c and .h files 2020-09-01 22:08:39 +00:00
Mateusz Guzik
f0782e02a2 mfi: clean up empty lines in .c and .h files 2020-09-01 22:08:26 +00:00
Mateusz Guzik
fc32241fc8 mgb: clean up empty lines in .c and .h files 2020-09-01 22:08:14 +00:00
Mateusz Guzik
0077d05cae mii: clean up empty lines in .c and .h files 2020-09-01 22:07:59 +00:00
Mateusz Guzik
5ef3520a33 mly: clean up empty lines in .c and .h files 2020-09-01 22:07:37 +00:00
Mateusz Guzik
56feefccc7 mmc: clean up empty lines in .c and .h files 2020-09-01 22:07:26 +00:00
Mateusz Guzik
577858c836 mpr: clean up empty lines in .c and .h files 2020-09-01 22:07:12 +00:00
Mateusz Guzik
742c5f2014 mps: clean up empty lines in .c and .h files 2020-09-01 22:07:00 +00:00
Mateusz Guzik
0bd9a5da1c mpt: clean up empty lines in .c and .h files 2020-09-01 22:06:41 +00:00
Mateusz Guzik
139b723f80 mrsas: clean up empty lines in .c and .h files 2020-09-01 22:06:23 +00:00
Mateusz Guzik
3cb02df9ae mthca: clean up empty lines in .c and .h files 2020-09-01 22:06:07 +00:00
Mateusz Guzik
68304fdc15 mvs: clean up empty lines in .c and .h files 2020-09-01 22:05:53 +00:00
Mateusz Guzik
1046c45055 mwl: clean up empty lines in .c and .h files 2020-09-01 22:05:39 +00:00
Mateusz Guzik
6622a5e912 my: clean up empty lines in .c and .h files 2020-09-01 22:05:21 +00:00
Mateusz Guzik
ecb86c27ba mxge: clean up empty lines in .c and .h files 2020-09-01 22:05:00 +00:00
Mateusz Guzik
4dd5edf32a nfe: clean up empty lines in .c and .h files 2020-09-01 22:04:37 +00:00
Mateusz Guzik
db95a0c2f6 nfsmb: clean up empty lines in .c and .h files 2020-09-01 22:04:24 +00:00
Mateusz Guzik
1db0db8a10 nge: clean up empty lines in .c and .h files 2020-09-01 22:04:10 +00:00
Mateusz Guzik
391486af75 ntb: clean up empty lines in .c and .h files 2020-09-01 22:03:55 +00:00
Mateusz Guzik
86e53c0789 null: clean up empty lines in .c and .h files 2020-09-01 22:03:46 +00:00
Mateusz Guzik
06e9b42260 nvd: clean up empty lines in .c and .h files 2020-09-01 22:03:32 +00:00
Mateusz Guzik
d87b31e159 nvme: clean up empty lines in .c and .h files 2020-09-01 22:03:10 +00:00
Mateusz Guzik
d6d2fd45b9 nvram2env: clean up empty lines in .c and .h files 2020-09-01 22:02:55 +00:00
Mateusz Guzik
cec3c5649c oce: clean up empty lines in .c and .h files 2020-09-01 22:02:32 +00:00
Mateusz Guzik
98d835ae88 ocs_fc: clean up empty lines in .c and .h files 2020-09-01 22:02:12 +00:00
Mateusz Guzik
f9874fbbf1 ofw: clean up empty lines in .c and .h files 2020-09-01 22:01:53 +00:00
Mateusz Guzik
ad297e9ec5 otus: clean up empty lines in .c and .h files 2020-09-01 22:01:41 +00:00
Mateusz Guzik
95515a222d ow: clean up empty lines in .c and .h files 2020-09-01 22:01:32 +00:00
Mateusz Guzik
0f9f3568cd pbio: clean up empty lines in .c and .h files 2020-09-01 22:01:17 +00:00
Mateusz Guzik
3b20422328 pccard: clean up empty lines in .c and .h files 2020-09-01 22:01:04 +00:00
Mateusz Guzik
ba9f0c72dd pccbb: clean up empty lines in .c and .h files 2020-09-01 22:00:48 +00:00
Mateusz Guzik
58263fc56e pcf: clean up empty lines in .c and .h files 2020-09-01 22:00:30 +00:00
Mateusz Guzik
04e8183fd1 pci: clean up empty lines in .c and .h files 2020-09-01 22:00:07 +00:00
Mateusz Guzik
3cfc80b28a powermac_nvram: clean up empty lines in .c and .h files 2020-09-01 21:59:31 +00:00
Mateusz Guzik
8eba8a00b9 ppbus: clean up empty lines in .c and .h files 2020-09-01 21:59:11 +00:00
Mateusz Guzik
6ba56517e2 ppc: clean up empty lines in .c and .h files 2020-09-01 21:58:56 +00:00
Mateusz Guzik
9b15b0633e proto: clean up empty lines in .c and .h files 2020-09-01 21:58:40 +00:00
Mateusz Guzik
0bc261868a psci: clean up empty lines in .c and .h files 2020-09-01 21:58:29 +00:00
Mateusz Guzik
ed67e0760a pst: clean up empty lines in .c and .h files 2020-09-01 21:58:12 +00:00
Mateusz Guzik
232fcd1b62 puc: clean up empty lines in .c and .h files 2020-09-01 21:58:04 +00:00
Mateusz Guzik
d1779f95e2 pwm: clean up empty lines in .c and .h files 2020-09-01 21:57:50 +00:00
Mateusz Guzik
3720573374 qlnx: clean up empty lines in .c and .h files 2020-09-01 21:57:33 +00:00
Mateusz Guzik
29c3bcd9d0 qlxgb: clean up empty lines in .c and .h files 2020-09-01 21:57:15 +00:00
Mateusz Guzik
2c4a3d0a2c qlxgbe: clean up empty lines in .c and .h files 2020-09-01 21:56:55 +00:00
Mateusz Guzik
d7c853dee0 qlxge: clean up empty lines in .c and .h files 2020-09-01 21:56:30 +00:00
Mateusz Guzik
790cd2071a ral: clean up empty lines in .c and .h files 2020-09-01 21:56:10 +00:00
Mateusz Guzik
8545078787 rl: clean up empty lines in .c and .h files 2020-09-01 21:56:03 +00:00
Mateusz Guzik
cce8703a99 rndtest: clean up empty lines in .c and .h files 2020-09-01 21:55:52 +00:00
Mateusz Guzik
2138049a39 rt: clean up empty lines in .c and .h files 2020-09-01 21:55:37 +00:00
Mateusz Guzik
6a8b28c6c9 safe: clean up empty lines in .c and .h files 2020-09-01 21:55:23 +00:00
Mateusz Guzik
f3d4f94fa7 safexcel: clean up empty lines in .c and .h files 2020-09-01 21:54:58 +00:00
Mateusz Guzik
1683952de1 sbni: clean up empty lines in .c and .h files 2020-09-01 21:54:35 +00:00
Mateusz Guzik
fe81abdeb4 sdhci: clean up empty lines in .c and .h files 2020-09-01 21:54:16 +00:00
Mateusz Guzik
00d927f34a sdio: clean up empty lines in .c and .h files 2020-09-01 21:53:58 +00:00
Mateusz Guzik
bf951109dd sec: clean up empty lines in .c and .h files 2020-09-01 21:53:44 +00:00
Mateusz Guzik
a794225cc1 sk: clean up empty lines in .c and .h files 2020-09-01 21:53:37 +00:00
Mateusz Guzik
7368632c18 smartpqi: clean up empty lines in .c and .h files 2020-09-01 21:53:21 +00:00
Mateusz Guzik
75d41981c0 smbus: clean up empty lines in .c and .h files 2020-09-01 21:53:00 +00:00
Mateusz Guzik
a7b66a9ff7 smc: clean up empty lines in .c and .h files 2020-09-01 21:52:46 +00:00
Mateusz Guzik
0866e8bcfb spibus: clean up empty lines in .c and .h files 2020-09-01 21:52:35 +00:00
Mateusz Guzik
c408cf7411 stge: clean up empty lines in .c and .h files 2020-09-01 21:52:20 +00:00
Mateusz Guzik
99cce2a3a9 superio: clean up empty lines in .c and .h files 2020-09-01 21:52:05 +00:00
Mateusz Guzik
e287e71ab9 sym: clean up empty lines in .c and .h files 2020-09-01 21:51:55 +00:00
Mateusz Guzik
70a9bd18f8 tcp_log: clean up empty lines in .c and .h files 2020-09-01 21:51:38 +00:00
Mateusz Guzik
1dbbeb200f tdfx: clean up empty lines in .c and .h files 2020-09-01 21:51:10 +00:00
Mateusz Guzik
4740159ada ti: clean up empty lines in .c and .h files 2020-09-01 21:50:47 +00:00
Mateusz Guzik
0d7f4d16dd tpm: clean up empty lines in .c and .h files 2020-09-01 21:50:31 +00:00
Mateusz Guzik
93a6b43939 tsec: clean up empty lines in .c and .h files 2020-09-01 21:50:21 +00:00
Mateusz Guzik
bf10325475 uart: clean up empty lines in .c and .h files 2020-09-01 21:50:00 +00:00
Mateusz Guzik
cea02fc296 vge: clean up empty lines in .c and .h files 2020-09-01 21:49:49 +00:00
Mateusz Guzik
92a5369e31 viapm: clean up empty lines in .c and .h files 2020-09-01 21:49:31 +00:00
Mateusz Guzik
0a3f7c435a videomode: clean up empty lines in .c and .h files 2020-09-01 21:49:14 +00:00
Mateusz Guzik
875af9c6af vkbd: clean up empty lines in .c and .h files 2020-09-01 21:48:55 +00:00
Mateusz Guzik
00605fca48 vmd: clean up empty lines in .c and .h files 2020-09-01 21:48:37 +00:00
Mateusz Guzik
78ee240673 vnic: clean up empty lines in .c and .h files 2020-09-01 21:48:21 +00:00
Mateusz Guzik
d918dd1915 vr: clean up empty lines in .c and .h files 2020-09-01 21:48:08 +00:00
Mateusz Guzik
d276d86e12 vt: clean up empty lines in .c and .h files 2020-09-01 21:47:32 +00:00
Mateusz Guzik
560f4fcdd8 watchdog: clean up empty lines in .c and .h files 2020-09-01 21:47:20 +00:00
Mateusz Guzik
95f97cd406 wbwd: clean up empty lines in .c and .h files 2020-09-01 21:46:58 +00:00
Mateusz Guzik
8ffce1e79d wi: clean up empty lines in .c and .h files 2020-09-01 21:46:42 +00:00
Mateusz Guzik
391a27c41d wpi: clean up empty lines in .c and .h files 2020-09-01 21:46:27 +00:00
Mateusz Guzik
0bd0689270 wtap: clean up empty lines in .c and .h files 2020-09-01 21:45:35 +00:00
Mateusz Guzik
6c7cae4a73 dev/xen: clean up empty lines in .c and .h files 2020-09-01 21:45:08 +00:00
Mateusz Guzik
6831ac28dc xilinx: clean up empty lines in .c and .h files 2020-09-01 21:44:42 +00:00
Mateusz Guzik
7163a84975 bwn: clean up empty lines in .c and .h files 2020-09-01 21:43:48 +00:00
Mateusz Guzik
93b628b9d8 bwi: clean up empty lines in .c and .h files 2020-09-01 21:43:36 +00:00
Mateusz Guzik
38fc6c1443 bnxt: clean up empty lines in .c and .h files 2020-09-01 21:43:23 +00:00
Mateusz Guzik
ab3fad6ea2 bhnd: clean up empty lines in .c and .h files 2020-09-01 21:43:05 +00:00
Mateusz Guzik
b410de8ad2 bge: clean up empty lines in .c and .h files 2020-09-01 21:42:49 +00:00
Mateusz Guzik
3a1ecfe33d bfe: clean up empty lines in .c and .h files 2020-09-01 21:42:38 +00:00
Mateusz Guzik
dcc016d173 beri: clean up empty lines in .c and .h files 2020-09-01 21:42:21 +00:00
Mateusz Guzik
eef5873fc1 bce: clean up empty lines in .c and .h files 2020-09-01 21:42:08 +00:00
Mateusz Guzik
a62d779028 axgbe: clean up empty lines in .c and .h files 2020-09-01 21:41:55 +00:00
Mateusz Guzik
bf479e1372 atkbdc: clean up empty lines in .c and .h files 2020-09-01 21:41:38 +00:00
Mateusz Guzik
9966c0f962 ath: clean up empty lines in .c and .h files 2020-09-01 21:41:07 +00:00
Mateusz Guzik
1529c50966 ata: clean up empty lines in .c and .h files 2020-09-01 21:40:47 +00:00
Mateusz Guzik
721b3402b6 asmc: clean up empty lines in .c and .h files 2020-09-01 21:40:30 +00:00
Mateusz Guzik
1618c554b0 arcmsr: clean up empty lines in .c and .h files 2020-09-01 21:40:13 +00:00
Mateusz Guzik
dedcfeb6c6 an: clean up empty lines in .c and .h files 2020-09-01 21:39:56 +00:00
Mateusz Guzik
4e12cd7f0b amr: clean up empty lines in .c and .h files 2020-09-01 21:39:37 +00:00
Mateusz Guzik
e492d18c3c amd*: clean up empty lines in .c and .h files 2020-09-01 21:39:19 +00:00
Mateusz Guzik
a3e2cdf8a6 altera: clean up empty lines in .c and .h files 2020-09-01 21:38:18 +00:00
Mateusz Guzik
ec31d2fb11 alpm: clean up empty lines in .c and .h files 2020-09-01 21:38:06 +00:00
Mateusz Guzik
6b827c83d3 ale: clean up empty lines in .c and .h files 2020-09-01 21:37:53 +00:00
Mateusz Guzik
0e9080cb12 al_eth: clean up empty lines in .c and .h files 2020-09-01 21:37:35 +00:00
Mateusz Guzik
d5b4569f95 aic7xxx: clean up empty lines in .c and .h files 2020-09-01 21:37:14 +00:00
Mateusz Guzik
f051a2b0d5 ahci: clean up empty lines in .c and .h files 2020-09-01 21:36:40 +00:00
Mateusz Guzik
4ce60b6549 agp: clean up empty lines in .c and .h files 2020-09-01 21:35:39 +00:00
Mateusz Guzik
2ac05cef89 if_age: clean up empty lines in .c and .h files 2020-09-01 21:35:14 +00:00
Mateusz Guzik
db27c983ac if_ae: clean up empty lines in .c and .h files 2020-09-01 21:34:58 +00:00
Mateusz Guzik
5c01b31291 adlink: clean up empty lines in .c and .h files 2020-09-01 21:34:41 +00:00
Mateusz Guzik
06261cf209 adb: clean up empty lines in .c and .h files 2020-09-01 21:34:24 +00:00
Mateusz Guzik
3149873ac3 acpi_support: clean up empty lines in .c and .h files 2020-09-01 21:34:04 +00:00
Mateusz Guzik
b3512b30db rtwn: clean up empty lines in .c and .h files 2020-09-01 21:33:31 +00:00
Mateusz Guzik
82c28121f7 acpica: clean up empty lines in .c and .h files 2020-09-01 21:32:41 +00:00
Mateusz Guzik
6ece1c1057 aacraid: clean up empty lines in .c and .h files 2020-09-01 21:32:25 +00:00
Mateusz Guzik
74d4575764 aac: clean up empty lines in .c and .h files 2020-09-01 21:32:07 +00:00
Mateusz Guzik
b4492420b6 twe: clean up empty lines in .c and .h files 2020-09-01 21:31:50 +00:00
Mateusz Guzik
8644bfdbfa tws: clean up empty lines in .c and .h files 2020-09-01 21:31:38 +00:00
Mateusz Guzik
068dbf361a virtio: clean up empty lines in .c and .h files 2020-09-01 21:31:26 +00:00
Mateusz Guzik
2140d5b64f iscsi: clean up empty lines in .c and .h files 2020-09-01 21:30:22 +00:00
Mateusz Guzik
4eb2ed072b vmware: clean up empty lines in .c and .h files 2020-09-01 21:30:01 +00:00
Mateusz Guzik
d63738087e syscons: clean up empty lines in .c and .h files 2020-09-01 21:29:44 +00:00
Mateusz Guzik
bed0229648 twa: clean up empty lines in .c and .h files 2020-09-01 21:29:23 +00:00
Mateusz Guzik
b138e49c66 sfxge: clean up empty lines in .c and .h files 2020-09-01 21:29:01 +00:00
Mateusz Guzik
378503af2e sound: clean up empty lines in .c and .h files 2020-09-01 21:27:34 +00:00
Mateusz Guzik
9dd3156e54 usb: clean up empty lines in .c and .h files 2020-09-01 21:26:44 +00:00
Vincenzo Maffione
35d8a463e8 iflib: leave only 1 receive descriptor unused
The pidx argument of isc_rxd_flush() indicates which is the last valid
receive descriptor to be used by the NIC. However, current code has
multiple issues:
  - Intel drivers write pidx to their RDT register, which means that
    NICs will only use the descriptors up to pidx-1 (modulo ring size N),
    and won't actually use the one pointed by pidx. This does not break
    reception, but it is anyway confusing and suboptimal (the NIC will
    actually see only N-2 descriptors as available, rather than N-1).
    Other drivers (if_vmx, if_bnxt, if_mgb) adhere to this semantic).
  - The semantic used by Intel (RDT is one descriptor past the last
     valid one) is used by most (if not all) NICs, and it is also used
     on the TX side (also in iflib). Since iflib is not currently
     using this semantic for RX, it must decrement fl->ifl_pidx
     (modulo N) before calling isc_rxd_flush(), and then the
     per-driver callback implementation must increment the index
     again (to match the real semantic). This is confusing and suboptimal.
  -  The iflib refill function is also called at initialization.
     However, in case the ring size is smaller than 128 (e.g. if_mgb),
     the refill function will actually prepare all the receive
     descriptors (N), without leaving one unused, as most of NICs assume
     (e.g. to avoid RDT to overrun RDH). I can speculate that the code
     looks like this right now because this issue showed up during
     testing (e.g. with if_mgb), and it was easy to workaround by
     decrementing pidx before isc_rxd_flush().

The goal of this change is to simplify the code (removing a bunch
of instructions from the RX fast path), and to make the semantic of
isc_rxd_flush() consistent across drivers. To achieve this, we:
  - change the semantics of the pidx argument to the usual one (that
    is the index one past the last valid one), so that both iflib and
    drivers avoid the decrement/increment dance.
  - fix the initialization code to prepare at most N-1 descriptors.

Reviewed by:	markj
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D26191
2020-09-01 20:41:47 +00:00
Mark Johnston
f7eec6b204 qlxgb: Initialize if_mtu before setting max_frame_size.
Previously we were relying on ether_ifattach() to set if_mtu, but
max_frame_size is initialized earlier.  This fixes a regression
introduced by r250375.

PR:		249050
Submitted by:	Christian Vallières <novacrash_@hotmail.com>
MFC after:	3 days
2020-09-01 20:13:50 +00:00
Marcin Wojtas
2b33ffde2e Introduce the SDHCI driver for NXP QorIQ Layerscape SoCs
Implement support for an eSDHC controller found in NXP QorIQ Layerscape SoCs.

This driver has been tested with NXP LS1046A and LX2160A (Honeycomb board),
which is incompatible with the existing sdhci_fsl driver (aiming at older
chips from this family). As such, it is not intended as replacement for
the old driver, but rather serves as an improved alternative for SoCs that
support it.
It comes with support for both PIO and Single DMA modes and samples the
clock from the extres clk API.

Submitted by: Artur Rojek <ar@semihalf.com>
Reviewed by: manu, mmel, kibab
Obtained from: Semihalf
Sponsored by: Alstom Group
Differential Revision: https://reviews.freebsd.org/D26153
2020-09-01 16:17:21 +00:00
Takanori Watanabe
e26b9046a0 Add Cannon Point PCH Thermal Controller Device ID.
PR:	249047
Reported by: Dries Michiels <driesm.michiels at gmail.com>
2020-09-01 15:33:57 +00:00
Hans Petter Selasky
78ae1e6e15 Make hardware TLS send tag allocation synchronous in mlx5en(4).
Previously the send tag was setup in the background, and all packets for
the given send tag were dropped until ready. Change this to be blocking
behaviour so that once the setsocketopt() for enabling TLS completes,
the socket is ready to send packets. Do this by simply flushing the
work request which does the needed firmware programming during send
tag allocation.

MFC after:	1 week
Sponsored by:	Mellanox Technologies // Nvidia
2020-09-01 12:21:17 +00:00
Hans Petter Selasky
59ca674ef2 Fully revert r364379.
The "Intel Sunrise Point-LP USB 3.0 controller" doesn't update the wMaxPacket
field in the control endpoint context automatically causing a BABBLE error code
on the initial first USB device descriptor read, when the bMaxPacketSize is not
8 bytes.

Reported by:	wulf@
PR:		248784
MFC after:	1 week
Sponsored by:	Mellanox Technologies
2020-09-01 08:14:46 +00:00
Warner Losh
b8e804ba5d Warn for the non pccard attachments
These devices have non-pccard attachments. Warn for those as well. Both an and
wi don't do the modern cyrpto needed to use these cards on secure wifi networks.
an needs firmware from Cisco, which I don't think was ever produced. wi could
in theory do it with raw frames and on-host encryption, but nobody has written
that in the 15 years since WEP was cracked.

MFC After: 3 days
Noticed by: rgrimes
Differential Revision: https://reviews.freebsd.org/D26138
2020-08-31 23:31:16 +00:00
Navdeep Parhar
565b8fce23 cxgbe(4): Check for descriptors before writing a TLS or raw work request.
This fixes a regression in r362905.

Submitted by:	jhb@
Sponsored by:	Chelsio Communications
2020-08-31 22:44:59 +00:00
Warner Losh
881534f09c Use symbolic names for asych events
Rather than |= 0x300, define and use asyn event names for the name
space changes and the firmware activations that we're asking for.
2020-08-31 19:38:03 +00:00
Konstantin Belousov
596b98ba16 mlx5 sriov: Add controls for VFs to set port/node GUIDs.
Setting GUIDs make RoCE offloads functional on VFs.

Reported and tested by:	chuck
Sponsored by:	Mellanox Technologies - Nvidia
MFC after:	1 week
2020-08-31 16:32:17 +00:00
Konstantin Belousov
cca1f7a12f mlx5 sriov: add error message for failed MAC programming on VF.
Sponsored by:	Mellanox Technologies - Nvidia
MFC after:	1 week
2020-08-31 16:30:52 +00:00
Konstantin Belousov
2ea114b34e mlx5en: Implement SIOCGIFDOWNREASON.
Sponsored by:	Mellanox Technologies - Nvidia
MFC after:	1 week
2020-08-31 16:27:03 +00:00
Konstantin Belousov
62daa4b6e8 mlx5_core: add mlx5_query_pddr().
And use it in mlx5_query_pddr_range_info() instead of direct register
access.

Sponsored by:	Mellanox Technologies - Nvidia
MFC after:	1 week
2020-08-31 16:25:55 +00:00
Konstantin Belousov
e088db5eae mlx5_core: Import PDDR register definitions
PDDR (Port Diagnostics Database Register) is used to read the physical
layer debug database, which contains helpful troubleshooting information
regarding the state of the link.

PDDR register can only be queried when PCAM register reports it as
supported in its register mask. A new helper macro was added to
the MLX5_CAP_* infrastructure in order to access this mask.

Sponsored by:	Mellanox Technologies - Nvidia
MFC after:	1 week
2020-08-31 16:23:51 +00:00
Mark Johnston
f4d7179ad3 rtwn(4): Add support for the Belkin N300.
PR:		249034
Submitted by:	Salvador Martínez Mármol <salvica@kapj.net>
MFC after:	1 week
2020-08-31 15:32:45 +00:00
Eric van Gyzen
641b7baa5b jedec_dimm: fix array overrun
Coverity detected the overrunning of sc->part_str.

Submitted by:	bret_ketchum@dell.com
Reported by:	Coverity
MFC after:	2 weeks
Sponsored by:	Dell EMC Isilon
Differential Revision:	https://reviews.freebsd.org/D26145
2020-08-31 15:03:23 +00:00
Wei Hu
2a0ce39d08 Hyper-V: storvsc: Enhance srb_status code handling.
In hv_storvsc_io_request() when coring, prevent changing of the send channel
from the base channel to another one. storvsc_poll always probes on the base
channel.

Based upon conversations with Microsoft, changed the handling of srb_status
codes. Most we should never get, others yes. All are treated as retry-able
except for two. We should not get these statuses, but if we ever do, the I/O
state is not known.

Submitted by:	Alexander Sideropoulos <Alexander.Sideropoulos@netapp.com>
Reviewed by:	trasz, allanjude, whu
MFC after:	1 week
Sponsored by:	Netapp Inc
Differential Revision:	https://reviews.freebsd.org/D25756
2020-08-31 09:05:45 +00:00
Gleb Smirnoff
8e613cf5f3 Followup on r364922. Old comment said that the only reason to put
the hook at queue mode was that mn_rx_intr() doesn't run at splnet
level. In today's netgraph the only legitimate reason for queue mode
is recursion avoidance. So I see no reason for queue mode here.

Not tested!
2020-08-30 17:13:04 +00:00
Marko Zec
bd36872867 Driver for 4x10Gb Ethernet reference NIC FPGA design for NetFPGA SUME
development board.

Submitted by:	Denis Salopek <denis.salopek AT fer.hr>
Reported by:	zec, bz (src); rgrimes, bcr (manpages)
MFC after:	7 days
Sponsored by:	Google Summer of Code 2020
Differential Revision:	https://reviews.freebsd.org/D26074
2020-08-30 07:34:32 +00:00
Hans Petter Selasky
2dea6902a9 Allow slow USB devices to be given more time to return their USB descriptors,
like Logitech HD Pro Webcam C920.

PR:		248926
MFC after:	1 week
Sponsored by:	Mellanox Technologies
2020-08-28 19:21:11 +00:00
Warner Losh
8383142cb1 Update outdated comment
There is no splnet anymore, so update the comment to drop references
to it.
2020-08-28 17:05:06 +00:00