The dwiic_init() routine is used at startup to read various chip
authorderaadt <deraadt@openbsd.org>
Sat, 17 Aug 2024 02:28:45 +0000 (02:28 +0000)
committerderaadt <deraadt@openbsd.org>
Sat, 17 Aug 2024 02:28:45 +0000 (02:28 +0000)
commitc6b110bc30baf518b2ce4191778de57b3cd04075
tree2b02a1676f615217435fbff000a68c758ec2732b
parent99dfaab19e03e5fa6957e129f0bdec0631da6878
The dwiic_init() routine is used at startup to read various chip
registers, make some decisions, and then program other registers.  After
a resume, it is pointless, and potentially incorrect to read such registers
again, which a BIOS or something may not have initialized, and we are
better off using the remembered soft-state to init cleanly.  So craft a
custom block of chip restoration, and do it while the chip is stopped hard.
ok kettenis mlarkin
sys/dev/ic/dwiic.c