The branch main has been updated by bz:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=ba6460df5607e572e9c868413c75ce9bc5ce9a00

commit ba6460df5607e572e9c868413c75ce9bc5ce9a00
Author:     Bjoern A. Zeeb <b...@freebsd.org>
AuthorDate: 2025-06-15 10:43:18 +0000
Commit:     Bjoern A. Zeeb <b...@freebsd.org>
CommitDate: 2025-07-04 03:22:22 +0000

    LinuxKPI: acpi: add acpi_evaluate_dsm()
    
    Add a acpi_evaluate_dsm() wrapper around the native implementation
    as needd by wireless drivers.
    
    Sponsored by:   The FreeBSD Foundation
    MFC after:      3 days
    Reviewed by:    dumbbell
    Differential Revision: https://reviews.freebsd.org/D50864
---
 sys/compat/linuxkpi/common/include/acpi/acpi_bus.h |  6 ++++++
 sys/compat/linuxkpi/common/src/linux_acpi.c        | 19 +++++++++++++++++++
 2 files changed, 25 insertions(+)

diff --git a/sys/compat/linuxkpi/common/include/acpi/acpi_bus.h 
b/sys/compat/linuxkpi/common/include/acpi/acpi_bus.h
index 65bcbe7f1bdd..47195e7d66a6 100644
--- a/sys/compat/linuxkpi/common/include/acpi/acpi_bus.h
+++ b/sys/compat/linuxkpi/common/include/acpi/acpi_bus.h
@@ -58,4 +58,10 @@ bool         lkpi_acpi_dev_present(const char *hid, const 
char *uid,
 struct acpi_device *lkpi_acpi_dev_get_first_match_dev(const char *hid,
                    const char *uid, int64_t hrv);
 
+union linuxkpi_acpi_object;
+
+union linuxkpi_acpi_object *
+acpi_evaluate_dsm(ACPI_HANDLE ObjHandle, const guid_t *guid,
+    UINT64 rev, UINT64 func, union linuxkpi_acpi_object *arg);
+
 #endif /* _LINUXKPI_ACPI_ACPI_BUS_H_ */
diff --git a/sys/compat/linuxkpi/common/src/linux_acpi.c 
b/sys/compat/linuxkpi/common/src/linux_acpi.c
index 6a9afb3ddff0..d18c69d9210d 100644
--- a/sys/compat/linuxkpi/common/src/linux_acpi.c
+++ b/sys/compat/linuxkpi/common/src/linux_acpi.c
@@ -39,6 +39,7 @@
 
 #include <linux/notifier.h>
 #include <linux/suspend.h>
+#include <linux/uuid.h>
 
 #include <acpi/acpi_bus.h>
 #include <acpi/video.h>
@@ -99,6 +100,17 @@ acpi_evaluate_dsm_typed(ACPI_HANDLE handle, const char 
*uuid, int rev,
            argv4, &buf, type)) ? (ACPI_OBJECT *)buf.Pointer : NULL);
 }
 
+union linuxkpi_acpi_object *
+acpi_evaluate_dsm(ACPI_HANDLE ObjHandle, const guid_t *guid,
+    UINT64 rev, UINT64 func, union linuxkpi_acpi_object *pkg)
+{
+       ACPI_BUFFER buf;
+
+       return (ACPI_SUCCESS(acpi_EvaluateDSM(ObjHandle, (const uint8_t *)guid,
+           rev, func, (ACPI_OBJECT *)pkg, &buf)) ?
+           (union linuxkpi_acpi_object *)buf.Pointer : NULL);
+}
+
 static void
 linux_handle_power_suspend_event(void *arg __unused)
 {
@@ -323,6 +335,13 @@ acpi_evaluate_dsm_typed(ACPI_HANDLE handle, const char 
*uuid, int rev,
        return (NULL);
 }
 
+union linuxkpi_acpi_object *
+acpi_evaluate_dsm(ACPI_HANDLE ObjHandle, const guid_t *guid,
+    UINT64 rev, UINT64 func, union linuxkpi_acpi_object *pkg)
+{
+       return (NULL);
+}
+
 int
 register_acpi_notifier(struct notifier_block *nb)
 {

Reply via email to