mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 17:13:52 +02:00
Revert "drm/[radeon|amdgpu]: Replace one-element array and use struct_size() helper"
This reverts commit 4541ea81ed.
This changes structs used by the hardware and breaks dpm on some cards.
Acked-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
f86c9b8b56
commit
eb0b5d6fdb
|
|
@ -5715,9 +5715,10 @@ static int si_upload_sw_state(struct amdgpu_device *adev,
|
|||
int ret;
|
||||
u32 address = si_pi->state_table_start +
|
||||
offsetof(SISLANDS_SMC_STATETABLE, driverState);
|
||||
u32 state_size = sizeof(SISLANDS_SMC_SWSTATE) +
|
||||
((new_state->performance_level_count - 1) *
|
||||
sizeof(SISLANDS_SMC_HW_PERFORMANCE_LEVEL));
|
||||
SISLANDS_SMC_SWSTATE *smc_state = &si_pi->smc_statetable.driverState;
|
||||
size_t state_size = struct_size(smc_state, levels,
|
||||
new_state->performance_level_count);
|
||||
|
||||
memset(smc_state, 0, state_size);
|
||||
|
||||
|
|
|
|||
|
|
@ -186,7 +186,7 @@ struct SISLANDS_SMC_SWSTATE
|
|||
uint8_t levelCount;
|
||||
uint8_t padding2;
|
||||
uint8_t padding3;
|
||||
SISLANDS_SMC_HW_PERFORMANCE_LEVEL levels[];
|
||||
SISLANDS_SMC_HW_PERFORMANCE_LEVEL levels[1];
|
||||
};
|
||||
|
||||
typedef struct SISLANDS_SMC_SWSTATE SISLANDS_SMC_SWSTATE;
|
||||
|
|
|
|||
|
|
@ -5253,9 +5253,10 @@ static int si_upload_sw_state(struct radeon_device *rdev,
|
|||
int ret;
|
||||
u32 address = si_pi->state_table_start +
|
||||
offsetof(SISLANDS_SMC_STATETABLE, driverState);
|
||||
u32 state_size = sizeof(SISLANDS_SMC_SWSTATE) +
|
||||
((new_state->performance_level_count - 1) *
|
||||
sizeof(SISLANDS_SMC_HW_PERFORMANCE_LEVEL));
|
||||
SISLANDS_SMC_SWSTATE *smc_state = &si_pi->smc_statetable.driverState;
|
||||
size_t state_size = struct_size(smc_state, levels,
|
||||
new_state->performance_level_count);
|
||||
|
||||
memset(smc_state, 0, state_size);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user