Rust fixes
Signed-off-by: Maisam Arif <Maisam.Arif@amd.com> Change-Id: Iff93cf4c53513df5aea95c970400598320c0f6c9
This commit is contained in:
committed by
Arif, Maisam
orang tua
cd21b5edcc
melakukan
51216187e2
@@ -2978,30 +2978,31 @@ pub fn amdsmi_set_gpu_od_volt_info(
|
||||
pub fn amdsmi_get_gpu_od_volt_curve_regions(
|
||||
processor_handle: AmdsmiProcessorHandle,
|
||||
) -> AmdsmiResult<Vec<AmdsmiFreqVoltRegionT>> {
|
||||
let mut num_regions: u32 = 0;
|
||||
// First call to get the number of regions
|
||||
let mut num_regions = MaybeUninit::<u32>::uninit();
|
||||
|
||||
// First call to get the number of regions
|
||||
call_unsafe!(amdsmi_wrapper::amdsmi_get_gpu_od_volt_curve_regions(
|
||||
processor_handle,
|
||||
&mut num_regions,
|
||||
null_mut()
|
||||
num_regions.as_mut_ptr(),
|
||||
std::ptr::null_mut()
|
||||
));
|
||||
|
||||
if num_regions == 0 {
|
||||
return Ok(Vec::new());
|
||||
}
|
||||
let num_regions = unsafe { num_regions.assume_init() };
|
||||
|
||||
// Allocate buffer and make second call
|
||||
let mut buffer = Vec::with_capacity(num_regions as usize);
|
||||
unsafe {
|
||||
buffer.set_len(num_regions as usize);
|
||||
}
|
||||
// Allocate a vector with the capacity of num_regions
|
||||
let mut buffer: Vec<AmdsmiFreqVoltRegionT> = Vec::with_capacity(num_regions as usize);
|
||||
|
||||
// Second call to get the actual data
|
||||
call_unsafe!(amdsmi_wrapper::amdsmi_get_gpu_od_volt_curve_regions(
|
||||
processor_handle,
|
||||
&mut num_regions,
|
||||
&mut (num_regions as u32),
|
||||
buffer.as_mut_ptr()
|
||||
));
|
||||
|
||||
// Set the length of the vector to num_regions
|
||||
unsafe { buffer.set_len(num_regions as usize) };
|
||||
|
||||
Ok(buffer)
|
||||
}
|
||||
|
||||
|
||||
@@ -291,9 +291,21 @@ impl AmdsmiTemperatureTypeT {
|
||||
pub const AmdsmiTemperatureTypeJunction: AmdsmiTemperatureTypeT =
|
||||
AmdsmiTemperatureTypeT::AmdsmiTemperatureTypeHotspot;
|
||||
}
|
||||
impl AmdsmiTemperatureTypeT {
|
||||
pub const AmdsmiTemperatureTypeGpuboardNodeRetimerX: AmdsmiTemperatureTypeT =
|
||||
AmdsmiTemperatureTypeT::AmdsmiTemperatureTypeGpuboardNodeFirst;
|
||||
}
|
||||
impl AmdsmiTemperatureTypeT {
|
||||
pub const AmdsmiTemperatureTypeGpuboardVddcrVdd0: AmdsmiTemperatureTypeT =
|
||||
AmdsmiTemperatureTypeT::AmdsmiTemperatureTypeGpuboardVrFirst;
|
||||
}
|
||||
impl AmdsmiTemperatureTypeT {
|
||||
pub const AmdsmiTemperatureTypeBaseboardUbbFpga: AmdsmiTemperatureTypeT =
|
||||
AmdsmiTemperatureTypeT::AmdsmiTemperatureTypeBaseboardFirst;
|
||||
}
|
||||
impl AmdsmiTemperatureTypeT {
|
||||
pub const AmdsmiTemperatureTypeMax: AmdsmiTemperatureTypeT =
|
||||
AmdsmiTemperatureTypeT::AmdsmiTemperatureTypePlx;
|
||||
AmdsmiTemperatureTypeT::AmdsmiTemperatureTypeBaseboardLast;
|
||||
}
|
||||
#[repr(u32)]
|
||||
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
|
||||
@@ -306,6 +318,51 @@ pub enum AmdsmiTemperatureTypeT {
|
||||
AmdsmiTemperatureTypeHbm2 = 5,
|
||||
AmdsmiTemperatureTypeHbm3 = 6,
|
||||
AmdsmiTemperatureTypePlx = 7,
|
||||
AmdsmiTemperatureTypeGpuboardNodeFirst = 100,
|
||||
AmdsmiTemperatureTypeGpuboardNodeOamXIbc = 101,
|
||||
AmdsmiTemperatureTypeGpuboardNodeOamXIbc2 = 102,
|
||||
AmdsmiTemperatureTypeGpuboardNodeOamXVdd18Vr = 103,
|
||||
AmdsmiTemperatureTypeGpuboardNodeOamX04HbmBVr = 104,
|
||||
AmdsmiTemperatureTypeGpuboardNodeOamX04HbmDVr = 105,
|
||||
AmdsmiTemperatureTypeGpuboardNodeLast = 149,
|
||||
AmdsmiTemperatureTypeGpuboardVrFirst = 150,
|
||||
AmdsmiTemperatureTypeGpuboardVddcrVdd1 = 151,
|
||||
AmdsmiTemperatureTypeGpuboardVddcrVdd2 = 152,
|
||||
AmdsmiTemperatureTypeGpuboardVddcrVdd3 = 153,
|
||||
AmdsmiTemperatureTypeGpuboardVddcrSocA = 154,
|
||||
AmdsmiTemperatureTypeGpuboardVddcrSocC = 155,
|
||||
AmdsmiTemperatureTypeGpuboardVddcrSocioA = 156,
|
||||
AmdsmiTemperatureTypeGpuboardVddcrSocioC = 157,
|
||||
AmdsmiTemperatureTypeGpuboardVdd085Hbm = 158,
|
||||
AmdsmiTemperatureTypeGpuboardVddcr11HbmB = 159,
|
||||
AmdsmiTemperatureTypeGpuboardVddcr11HbmD = 160,
|
||||
AmdsmiTemperatureTypeGpuboardVddUsr = 161,
|
||||
AmdsmiTemperatureTypeGpuboardVddio11E32 = 162,
|
||||
AmdsmiTemperatureTypeGpuboardVrLast = 199,
|
||||
AmdsmiTemperatureTypeBaseboardFirst = 200,
|
||||
AmdsmiTemperatureTypeBaseboardUbbFront = 201,
|
||||
AmdsmiTemperatureTypeBaseboardUbbBack = 202,
|
||||
AmdsmiTemperatureTypeBaseboardUbbOam7 = 203,
|
||||
AmdsmiTemperatureTypeBaseboardUbbIbc = 204,
|
||||
AmdsmiTemperatureTypeBaseboardUbbUfpga = 205,
|
||||
AmdsmiTemperatureTypeBaseboardUbbOam1 = 206,
|
||||
AmdsmiTemperatureTypeBaseboardOam01Hsc = 207,
|
||||
AmdsmiTemperatureTypeBaseboardOam23Hsc = 208,
|
||||
AmdsmiTemperatureTypeBaseboardOam45Hsc = 209,
|
||||
AmdsmiTemperatureTypeBaseboardOam67Hsc = 210,
|
||||
AmdsmiTemperatureTypeBaseboardUbbFpga0v72Vr = 211,
|
||||
AmdsmiTemperatureTypeBaseboardUbbFpga3v3Vr = 212,
|
||||
AmdsmiTemperatureTypeBaseboardRetimer01231v2Vr = 213,
|
||||
AmdsmiTemperatureTypeBaseboardRetimer45671v2Vr = 214,
|
||||
AmdsmiTemperatureTypeBaseboardRetimer010v9Vr = 215,
|
||||
AmdsmiTemperatureTypeBaseboardRetimer450v9Vr = 216,
|
||||
AmdsmiTemperatureTypeBaseboardRetimer230v9Vr = 217,
|
||||
AmdsmiTemperatureTypeBaseboardRetimer670v9Vr = 218,
|
||||
AmdsmiTemperatureTypeBaseboardOam01233v3Vr = 219,
|
||||
AmdsmiTemperatureTypeBaseboardOam45673v3Vr = 220,
|
||||
AmdsmiTemperatureTypeBaseboardIbcHsc = 221,
|
||||
AmdsmiTemperatureTypeBaseboardIbc = 222,
|
||||
AmdsmiTemperatureTypeBaseboardLast = 249,
|
||||
}
|
||||
impl AmdsmiFwBlockT {
|
||||
pub const AmdsmiFwIdFirst: AmdsmiFwBlockT = AmdsmiFwBlockT::AmdsmiFwIdSmu;
|
||||
@@ -2697,12 +2754,12 @@ const _: () = {
|
||||
#[derive(Debug, Copy, Clone)]
|
||||
pub struct AmdsmiTopologyNearestT {
|
||||
pub count: u32,
|
||||
pub processor_list: [AmdsmiProcessorHandle; 32usize],
|
||||
pub reserved: [u64; 15usize],
|
||||
pub processor_list: [AmdsmiProcessorHandle; 256usize],
|
||||
pub reserved: [u64; 14usize],
|
||||
}
|
||||
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
|
||||
const _: () = {
|
||||
["Size of AmdsmiTopologyNearestT"][::std::mem::size_of::<AmdsmiTopologyNearestT>() - 384usize];
|
||||
["Size of AmdsmiTopologyNearestT"][::std::mem::size_of::<AmdsmiTopologyNearestT>() - 2168usize];
|
||||
["Alignment of AmdsmiTopologyNearestT"]
|
||||
[::std::mem::align_of::<AmdsmiTopologyNearestT>() - 8usize];
|
||||
["Offset of field: AmdsmiTopologyNearestT::count"]
|
||||
@@ -2710,7 +2767,7 @@ const _: () = {
|
||||
["Offset of field: AmdsmiTopologyNearestT::processor_list"]
|
||||
[::std::mem::offset_of!(AmdsmiTopologyNearestT, processor_list) - 8usize];
|
||||
["Offset of field: AmdsmiTopologyNearestT::reserved"]
|
||||
[::std::mem::offset_of!(AmdsmiTopologyNearestT, reserved) - 264usize];
|
||||
[::std::mem::offset_of!(AmdsmiTopologyNearestT, reserved) - 2056usize];
|
||||
};
|
||||
#[repr(u32)]
|
||||
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
|
||||
@@ -3813,3 +3870,6 @@ extern "C" {
|
||||
list: *mut AmdsmiProcInfoT,
|
||||
) -> AmdsmiStatusT;
|
||||
}
|
||||
extern "C" {
|
||||
pub fn amdsmi_gpu_driver_reload() -> AmdsmiStatusT;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user