Page MenuHomeFreeBSD

acpi_spmc(4): Clear confusion between DSMs and their functions
ClosedPublic

Authored by olce on May 4 2026, 8:30 PM.
Tags
None
Referenced Files
F159771437: D56802.diff
Thu, Jun 18, 1:21 AM
Unknown Object (File)
Tue, Jun 16, 4:18 PM
Unknown Object (File)
Tue, Jun 9, 5:21 AM
Unknown Object (File)
Mon, Jun 8, 7:30 AM
Unknown Object (File)
Wed, Jun 3, 11:22 PM
Unknown Object (File)
Tue, Jun 2, 4:53 AM
Unknown Object (File)
Tue, Jun 2, 4:00 AM
Unknown Object (File)
Mon, Jun 1, 6:01 PM
Subscribers

Details

Summary

Stick to the ACPI specification's terminology where DSM means "device
specific method", but is in fact a set of multiple functions (actually,
there is one set of functions per DSM revision, with the set for some
revision in theory including those of the previous revisions), by
renaming some of the fields of 'struct acpi_spmc_softc' and local
variables accordingly.

To this end, rename appropriate structures, fields, parameters and
variables, mechanically.

No functional change (intended).

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

olce requested review of this revision.May 4 2026, 8:30 PM

this can probably go further, but yes it's good that we clear up the DSM/functions naming. Actually what I call a DSM "set" here is really just a DSM. I just think the naming "method" to actually mean many different methods to be a bit confusing

this can probably go further, but yes it's good that we clear up the DSM/functions naming. Actually what I call a DSM "set" here is really just a DSM. I just think the naming "method" to actually mean many different methods to be a bit confusing

Yes, I actually go further in subsequent revisions, probably because it was easier, but I'll check. So maybe the commit message here is promising more than what is delivered in that revision, but if including further revisions it turns out it is true. :-)

olce edited the summary of this revision. (Show Details)

Comprehensive renaming to clear the mentioned confusion (moving the corresponding changes from later in the stack to here).

still don't quite know about just calling these "DSM". Technically, the _DSM object already encompasses all UUIDs. So maybe a name like dsm_fn_set? or dsm_vendor?

still don't quite know about just calling these "DSM". Technically, the _DSM object already encompasses all UUIDs. So maybe a name like dsm_fn_set? or dsm_vendor?

Yes, a _DSM object encompasses all UUIDs, but it was introduced by ACPI to avoid naming collisions from uncoordinated vendors/actors wanting to define a DSM on a peripheral (by "requiring" to pass some UUID). So I view each UUID as a DSM on its own, I think that's really ACPI's intent, the _DSM object by itself is just a switch between DSMs despite the name. Expressed in a different manner, _DSM is actually the *set* of DSMs present on a device.

This revision was not accepted when it landed; it landed in state Needs Review.May 13 2026, 12:40 PM
This revision was automatically updated to reflect the committed changes.