Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/sys/compat/linuxkpi/common/include/linux/acpi_amd_wbrf.h
39604 views
1
/*-
2
* Copyright (c) 2025 The FreeBSD Foundation
3
* Copyright (c) 2025 Jean-Sébastien Pédron
4
*
5
* This software was developed by Jean-Sébastien Pédron under sponsorship
6
* from the FreeBSD Foundation.
7
*
8
* Redistribution and use in source and binary forms, with or without
9
* modification, are permitted provided that the following conditions
10
* are met:
11
* 1. Redistributions of source code must retain the above copyright
12
* notice, this list of conditions and the following disclaimer.
13
* 2. Redistributions in binary form must reproduce the above copyright
14
* notice, this list of conditions and the following disclaimer in the
15
* documentation and/or other materials provided with the distribution.
16
*
17
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
18
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
21
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27
* SUCH DAMAGE.
28
*/
29
30
#ifndef _LINUXKPI_LINUX_ACPI_AMD_WBRF_H_
31
#define _LINUXKPI_LINUX_ACPI_AMD_WBRF_H_
32
33
#include <linux/device.h>
34
#include <linux/notifier.h>
35
36
#define MAX_NUM_OF_WBRF_RANGES 11
37
38
#define WBRF_RECORD_ADD 0x0
39
#define WBRF_RECORD_REMOVE 0x1
40
41
struct freq_band_range {
42
uint64_t start;
43
uint64_t end;
44
};
45
46
struct wbrf_ranges_in_out {
47
uint64_t num_of_ranges;
48
struct freq_band_range band_list[MAX_NUM_OF_WBRF_RANGES];
49
};
50
51
enum wbrf_notifier_actions {
52
WBRF_CHANGED,
53
};
54
55
/*
56
* The following functions currently have dummy implementations that, on Linux,
57
* are used when CONFIG_AMD_WBRF is not set at compile time.
58
*/
59
60
static inline bool
61
acpi_amd_wbrf_supported_consumer(struct device *dev)
62
{
63
return (false);
64
}
65
66
static inline int
67
acpi_amd_wbrf_add_remove(struct device *dev, uint8_t action,
68
struct wbrf_ranges_in_out *in)
69
{
70
return (-ENODEV);
71
}
72
73
static inline bool
74
acpi_amd_wbrf_supported_producer(struct device *dev)
75
{
76
return (false);
77
}
78
79
static inline int
80
amd_wbrf_retrieve_freq_band(struct device *dev, struct wbrf_ranges_in_out *out)
81
{
82
return (-ENODEV);
83
}
84
85
static inline int
86
amd_wbrf_register_notifier(struct notifier_block *nb)
87
{
88
return (-ENODEV);
89
}
90
91
static inline int
92
amd_wbrf_unregister_notifier(struct notifier_block *nb)
93
{
94
return (-ENODEV);
95
}
96
97
#endif /* _LINUXKPI_LINUX_ACPI_AMD_WBRF_H_ */
98
99