Age | Commit message (Collapse) | Author |
|
Make knote(9) lock the knote list internally, and add knote_locked(9)
for the typical situation where the list is already locked.
Remove the KNOTE(9) macro to simplify the API.
Manual page OK jmc@
OK mpi@ mvs@
|
|
ok kettenis@
|
|
The timecounting code has had stubs for pulse-per-second (PPS) polling
since it was imported in 2004. At this point it seems unlikely that
anyone is going to finish adding PPS support, so let's remove the stubs:
- Delete the dead tc_poll_pps() call from tc_windup().
- Remove all tc_poll_pps symbols from the kernel.
Link: https://marc.info/?l=openbsd-tech&m=167519035723210&w=2
ok miod@
|
|
resulting interrupt storm. It's causing bad system performance, and breaks
the installer.
|
|
range (0x80 to 0xff). We're not going to understand OEM specific
structures, and some machines such as the Dell R6515 have significant
numbers of them.
ok kettenis@
|
|
We can't use the HPET to delay(9) after we halt it during suspend.
Disable acpihpet_delay() before we halt the HPET and reenable it after
we restart the HPET during resume.
ok mlarkin@
|
|
ok kettenis@
|
|
ok kettenis@
|
|
resets. Previously this was only seen with smmu(4) enabled, probably as
there is no IORT reference to that controller and hence no IOMMU mapping
established. Since recent BIOS updates, this now also happens without
smmu(4) enabled. Let's skip this node for now to keep machines running.
Prompted by deraadt@
ok phessler@
|
|
OK jcs
|
|
interrupt storms related to level-triggered interrupts.
ok mglocker@
|
|
Looking for .rodata candidates in /bsd .data symbols, this one popped up:
ffffffff82281b70 l O .data 0000000000001688 asmc_prods
OK jung
|
|
ok mglocker@, patrick@
|
|
dev/efi and rename the arm64 efi.c to efi_machdep.c, preparing the way
for MI EFI code and an amd64 implementation of EFI runtime support.
ok deraadt@, mlarkin@
|
|
Help from kettenis@, "Nice!" deraadt@
|
|
acpisbs(4) for apm(4) and hook it up to the arm64 version of apm(4) on
systems with ACPI.
ok kn@
|
|
ok mlarkin@
|
|
We can't use acpihpet_r() to implement acpihpet_delay(). Even if we
made acpihpet_r() atomic on amd64, i386 would still be incapable of
doing atomic 8-byte reads. As-is, the code does a split read on all
platforms, which may or may not already be causing problems with TSC
calibration:
https://marc.info/?l=openbsd-tech&m=166220561709496&w=2
Switch from acpihpet_r() to bus_space_read_4() and only use the lower
32 bits of the counter. This makes acpihpet_delay() slightly larger,
but unless we want two acpihpet_delay() implementations we have no
choice.
Link: https://marc.info/?l=openbsd-tech&m=166165347220077&w=2
ok jsg@
|
|
now as the AML on the Lenovo X13S tries to do I2C transactions to a device
that doesn't respond leading to the ACPI thread spinning until the
transaction times out.
ok mlarkin@, deraadt@
|
|
|
|
method events corresponding to larger numbers are possible.
Fixes lid state detection on the x13s.
ok patrick@
|
|
ok mglocker@, patrick@
|
|
ok mglocker@
|
|
compatible ID. Add its hardware ID to the list to work around this.
ok patrick@, mlarkin@, mglocker@
|
|
ok patrick@, drahn@
|
|
updates that are floating around. Remove some #ifdef'ed out debug code
that was left behind.
ok patrick@, drahn@
|
|
controller based on AML dumps found online and some further detective
work looking at Windows drivers by jsg@.
ok jsg@, millert@
|
|
The idea is that device drivers that can wake up the machine register
themselves by calling device_register_wakeup(). To prevent regressions
on amd64, we let acpi(4) register itself as a wakeup device if the AML
for the machine defines wakeup devices. This may be refined in the
future.
This diff will prevent people from suspending their arm64 SBCs without
having a way to wake them up. For now the only driver that registers
itself is axppmic(4), which means that at this moment only SBCs with
an allwinner A64 or H5 SoC will actually support suspend/resume.
ok mlarkin@, deraadt@
|
|
found on the SC8280XP SoC. Together these drivers make the keyboard,
trackpoint and touchpad work on the x13s.
ok deraadt@
|
|
ok jcs@
|
|
timecounter.tc_frequency is a 64-bit value: this cast is unnecessary.
Split off from the acpihpet_delay() commit at jsg@'s suggestion.
Link1: https://marc.info/?l=openbsd-tech&m=166053729104923&w=2
Link2: https://marc.info/?l=openbsd-tech&m=166132727120528&w=2
probably ok jsg@
|
|
When lapic_delay() is removed from the tree in the near future, older
machines without a constant/invariant TSC will need a delay(9)
implementation better than i8254_delay().
This patch adds acpihpet_delay(), a delay(9) implementation based on
the ACPI HPET timer. It is preferable to i8254_delay() (0) and
acpitimer_delay() (1000), so set its quality to 2000.
On newer machines, the HPET is slower to read than the PMT on newer
machines for reasons unknown, so _technically_ this quality hierarchy
is not always accurate. However, we expect these newer machines to
have a constant/invariant TSC available, so the inaccuracy is harmless
because tsc_delay() will be available, which is better than both the
PMT and the HPET.
In general, on real hardware that predates wide availability of the
constant/invariant TSC, the HPET is preferable to the PMT.
With input from jsg@.
Link: https://marc.info/?l=openbsd-tech&m=166053729104923&w=2
ok mlarkin@ jsg@
|
|
When lapic_delay() is removed from the tree in the near future, older
machines without a constant/invariant TSC will need a delay(9)
implementation better than i8254_delay().
This patch adds acpitimer_delay(), a delay(9) implementation based on
the ACPI PM timer. It is only preferable to i8254_delay(), so set its
quality to 1000.
With input from jsg@.
Link: https://marc.info/?l=openbsd-tech&m=166053729104923&w=2
ok mlarkin@ jsg@
|
|
don't have to declare it using extern.
Suggested by and with feedback from kettenis@
Tested by deraadt@ on arm64, amd64 and i386
Tested by bluhm@ on amd64 and i386
|
|
from kettenis via patrick
|
|
Snapdragon 8cx gen 3 SoC.
ok patrick@
|
|
ok deraadt@ kettenis@
|
|
V1000 SoCs.
ok anton@
|
|
is later on interpreted as a com_softc pointer. This is not a problem in
practice as a com_softc structure is the first member of the
com_acpi_softc structure.
Using the actual types consistently yields a better symmetry in my
opinion between registering the interrupt and the corresponding
interrupt handler.
ok deraadt@ kettenis@
|
|
ok jsg@
|
|
ok jsg@
|
|
|
|
Save/restore the pin configuration on suspend/resume for amdgpio(4).
This fixes missing interrupts after resume for trackpads on some
machines, including the ROG Zephyrus 14 and the HP DevOne (and probably
others).
Code based on pchgpio(4).
ok deraadt, kettenis
|
|
tx interrupts.
Special treatment of Server Base System Architecture (SBSA) generic UART
devices is required as presence of the interrupt trigger level register
is not guaranteed. Therefore treat such devices of having a 1-byte FIFO.
ok visa@
|
|
|
|
|
|
is improper, and some chips are more sensitive to this than others. In an
unhibernate situation, /bsd.booted will 'suspend' the TPM, then jump directly
into unhib /bsd, which 'resumes' it. This is wrong because the lifecycle is
supposed to be more like suspend->BIOS->resume. This is a hack until we figure
out how to fix the lifecycle.
from claudio, ok dv
|
|
doesn't get out of sync with what apm(8) reports if power is plugged or
unplugged when a machine is suspended. Which in turn makes sure the machine
properly goes into a low CPU P-state when requested.
ok deraadt@, florian@
|
|
|
|
the revision and ranges from 16 to 32 bytes.
Special treatment of Server Base System Architecture (SBSA) generic UART
devices is required as presence of the interrupt trigger level register
is not guaranteed. Therefore treat such devices of having a 1-byte FIFO.
With help from kettenis@ and ok visa@
|