avg 39a9e50d87 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
..
2019-10-21 17:59:53 +00:00
2019-10-21 18:00:17 +00:00
2019-10-21 18:06:06 +00:00
2019-10-21 18:06:09 +00:00
2019-05-24 06:07:33 +00:00
2018-07-07 15:55:52 +00:00
2019-02-25 21:59:01 +00:00
2019-10-21 18:06:15 +00:00
2019-10-21 18:06:19 +00:00
2019-10-21 18:06:23 +00:00
2019-10-21 18:06:26 +00:00
2019-10-21 18:10:52 +00:00
2019-10-21 18:06:31 +00:00
2019-10-21 18:11:02 +00:00
2019-03-19 14:34:53 +00:00
2019-10-21 18:11:08 +00:00
2019-10-21 18:11:15 +00:00
2019-10-21 18:11:19 +00:00
2019-05-30 13:52:32 +00:00
2019-10-21 18:11:28 +00:00
2019-10-21 18:11:32 +00:00
2019-10-07 22:40:05 +00:00
2019-10-21 18:06:53 +00:00
2019-10-21 18:06:57 +00:00
2019-10-18 12:34:30 +00:00
2019-10-21 18:07:02 +00:00
2019-10-13 22:26:55 +00:00
2019-10-07 22:40:05 +00:00
2019-10-21 18:11:43 +00:00
2019-10-21 18:07:07 +00:00
2019-10-21 18:07:11 +00:00
2019-10-21 18:11:54 +00:00
2019-10-21 18:07:15 +00:00
2019-10-14 20:23:16 +00:00
2018-08-21 10:08:12 +00:00
2019-05-23 12:51:13 +00:00
2019-10-21 18:07:19 +00:00
2019-10-14 20:18:36 +00:00
2019-10-21 18:11:58 +00:00
2019-10-20 14:15:45 +00:00
2019-10-21 18:07:24 +00:00
2019-10-21 18:07:28 +00:00
2019-10-21 18:12:02 +00:00
2019-10-21 18:12:07 +00:00
2019-07-10 12:40:07 +00:00
2019-09-24 16:49:42 +00:00
2019-02-05 21:37:34 +00:00
2019-03-11 14:26:45 +00:00
2018-04-13 20:30:49 +00:00
2019-02-05 21:37:34 +00:00
2019-10-21 18:12:12 +00:00
2019-10-21 18:07:32 +00:00
2019-10-21 18:07:35 +00:00
2019-10-21 18:12:31 +00:00
2019-06-08 16:26:56 +00:00
2019-10-21 18:07:40 +00:00
2019-02-05 21:37:34 +00:00
2019-10-21 18:07:44 +00:00
2019-10-21 18:07:49 +00:00
2019-10-17 14:58:03 +00:00
2019-10-21 18:07:53 +00:00
2019-10-21 18:07:56 +00:00
2019-02-04 21:28:25 +00:00
2019-10-21 18:08:03 +00:00
2019-04-16 02:46:21 +00:00
2019-10-21 18:12:36 +00:00
2019-10-21 18:08:12 +00:00
2019-10-21 18:08:16 +00:00
2019-10-17 16:38:44 +00:00
2019-10-21 18:08:20 +00:00
2019-10-21 18:12:40 +00:00
2019-08-30 00:40:08 +00:00
2019-10-21 18:08:25 +00:00
2019-02-26 19:55:03 +00:00