freebsd-dev/sys
Andriy Gapon 155514eacf nctgpio: improve performance (latency) of operation
This change consists of two parts.

First, nctgpio now supports hardware access via an I/O port window if
it's configured by firmware.  For instance, PC Engines firmware
v4.10.0.2 does that.  This is faster than going through the Super I/O
configuration registers.

Second, nctgpio now caches values of bits that it controls.  For
example, the driver does not need to access the hardware to determine if
a pin is an output or an input, or a state of an output.  Also, the
driver makes use of the fact that the hardware preserves an output state
of a pin accross a switch to the input mode and back.

With this change I am able to use the 1-Wire bus over nctgpio whereas
previously the driver introduced too much latency to be compliant with
the relatively strict protocol timings.

superio0: <Nuvoton NCT5104D/NCT6102D/NCT6106D (rev. B+)> at port 0x2e-0x2f on isa0
gpio1: <Nuvoton GPIO controller> at GPIO ldn 0x07 on superio0
pcib0: allocated type 4 (0x220-0x226) for rid 0 of gpio1
gpiobus1: <GPIO bus> on gpio1
owc0: <GPIO attached one-wire bus> at pin 4 on gpiobus1
ow0: <1 Wire Bus> on owc0
ow0: romid 28:b2:9e:45:92:10:02:34: no driver
ow_temp0: <Advanced One Wire Temperature> romid 28:b2:9e:45:92:10:02:34 on ow0

MFC after:	4 weeks
2019-10-22 14:20:35 +00:00
..
amd64 vmm: remove a wmb() call 2019-10-19 07:10:15 +00:00
arm Convert to if_foreach_llmaddr() KPI. 2019-10-21 18:13:28 +00:00
arm64 Update Armada 8k drivers to cover newly imported DT and latest changes 2019-10-20 10:48:27 +00:00
bsm
cam Add kern.cam.da.X.quirks tunable, similar existing for ada. 2019-09-26 14:48:39 +00:00
cddl MFV r353637: 10844 Serialize ZTHR operations to eliminate races 2019-10-16 09:29:01 +00:00
compat linux: futex_mtx should follow futex_list 2019-10-18 12:25:33 +00:00
conf Add driver for DesignWare PCIE core, and its Armada 8K specific attachement. 2019-10-20 11:11:32 +00:00
contrib Merge ACPICA 20191018. 2019-10-19 14:56:44 +00:00
crypto Stop using des_cblock * for arguments to DES functions. 2019-08-26 17:25:07 +00:00
ddb ddb(4): Add some support for lexing IPv6 addresses 2019-09-09 16:32:23 +00:00
dev nctgpio: improve performance (latency) of operation 2019-10-22 14:20:35 +00:00
dts dtso: allwinner: Add an overlay for H3 thermal node 2019-08-24 13:26:34 +00:00
fs (4/6) Protect page valid with the busy lock. 2019-10-15 03:45:41 +00:00
gdb gdb(4): Implement support for NoAckMode 2019-10-17 22:37:25 +00:00
geom Make all the gnop parameters optional in the request from userland, 2019-10-16 21:49:44 +00:00
gnu arm: dts: ti: Fix mmc3 instance by setting it to disabled 2019-10-07 08:11:49 +00:00
i386 linux: futex_mtx should follow futex_list 2019-10-18 12:25:33 +00:00
isa
kern Assert that any epoch tracker belongs to the thread stack. 2019-10-21 23:12:14 +00:00
kgssapi Stop using des_cblock * for arguments to DES functions. 2019-08-26 17:25:07 +00:00
libkern Remove zlib 1.0.4 from kernel. 2019-08-25 17:13:00 +00:00
mips Remove page locking from pmap_mincore(). 2019-10-16 22:03:27 +00:00
modules if_tuntap: remove if_{tun,tap}.ko -> if_tuntap.ko links 2019-10-21 20:28:38 +00:00
net tuntap(4): properly declare if_tun and if_tap modules 2019-10-22 00:18:16 +00:00
net80211 Don't use if_maddr_rlock() in 802.11, use epoch(9) directly instead. 2019-10-10 23:55:33 +00:00
netgraph Don't use if_maddr_rlock() in ng_eiface(4), use epoch(9) directly instead. 2019-10-10 23:49:19 +00:00
netinet Fix compile issues when building a kernel without the VIMAGE option. 2019-10-19 20:48:53 +00:00
netinet6 frag6: fix vnet teardown leak 2019-10-21 08:48:47 +00:00
netipsec Widen NET_EPOCH coverage. 2019-10-07 22:40:05 +00:00
netpfil pf: Must be in NET_EPOCH to call icmp_error 2019-10-18 03:36:26 +00:00
netsmb Stop using des_cblock * for arguments to DES functions. 2019-08-26 17:25:07 +00:00
nfs
nfsclient
nfsserver
nlm
ofed VLAN_TRUNKDEV() requires epochification in ibcore after r353292. 2019-10-16 08:56:07 +00:00
opencrypto kTLS support for TLS 1.3 2019-09-27 19:17:40 +00:00
powerpc Convert to if_foreach_llmaddr() KPI. 2019-10-21 18:13:37 +00:00
riscv Remove page locking from pmap_mincore(). 2019-10-16 22:03:27 +00:00
rpc Avoid relying on header pollution from sys/refcount.h. 2019-07-29 20:26:01 +00:00
security Define macro VM_MAP_ENTRY_FOREACH for enumerating the entries in a vm_map. 2019-10-08 07:14:21 +00:00
sparc64 Split out a more generic debugnet(4) from netdump(4) 2019-10-17 16:23:03 +00:00
sys Remove epoch tracker from struct thread. It was an ugly crutch to emulate 2019-10-21 18:19:32 +00:00
teken Adjust teken to allow build as part of loader 2019-09-05 18:07:40 +00:00
tests
tools fw_stub.awk: use @generated tag in generated files 2019-09-11 13:35:22 +00:00
ufs Abbreviate softdep lock names. 2019-10-18 17:01:27 +00:00
vm Avoid reloading bucket pointers in uma_vm_zone_stats(). 2019-10-22 14:20:06 +00:00
x86 hw.intrbalance: Make sysctl tunable 2019-10-19 16:37:49 +00:00
xdr
xen
Makefile