Skip to content

Commit

Permalink
pmgr: Fix false positive u8 pmgr ID detection on modern SoCs
Browse files Browse the repository at this point in the history
The id1 field used on oder SoCs is not constant 0 for all devices on
t8122. Instead just compare the id1 fields of the two first devices.
Fixes "pmgr: Failed to find parent #36 for IOA0\n" errors in
pmgr_init().

Fixes: fb59dc0 ("pmgr: Fix struct for older SoCs")
Signed-off-by: Janne Grunau <j@jannau.net>
  • Loading branch information
jannau committed Nov 3, 2024
1 parent d54b978 commit a6b45d3
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions src/pmgr.c
Original file line number Diff line number Diff line change
Expand Up @@ -374,13 +374,15 @@ int pmgr_init(void)

printf("pmgr: Cleaning up device states...\n");

// detect whether u8 or u16 PMGR IDs are used by comparing the IDs of the
// first 2 devices
if (pmgr_devices_len >= 2)
pmgr_u8id = pmgr_devices[0].id1 != pmgr_devices[1].id1;

for (u8 die = 0; die < pmgr_dies; ++die) {
for (size_t i = 0; i < pmgr_devices_len; ++i) {
const struct pmgr_device *device = &pmgr_devices[i];

if (device->id1)
pmgr_u8id = true;

if ((device->flags & PMGR_FLAG_VIRTUAL))
continue;

Expand Down

0 comments on commit a6b45d3

Please sign in to comment.