Re: [PATCH v2 10/17] drm/msm/a6xx: Update HFI definitions

From: Akhil P Oommen

Date: Mon Mar 30 2026 - 16:28:16 EST


On 3/30/2026 4:45 PM, Konrad Dybcio wrote:
> On 3/27/26 1:13 AM, Akhil P Oommen wrote:
>> Update the HFI definitions to support additional GMU based power
>> features.
>>
>> Signed-off-by: Akhil P Oommen <akhilpo@xxxxxxxxxxxxxxxx>
>> ---
>
> Whether you want to proceed with bitfields or not:
>
> Reviewed-by: Konrad Dybcio <konrad.dybcio@xxxxxxxxxxxxxxxx>

Thanks. I still feel it is bitfield layout is a 'bit' complicated.

I did an experiment:

#include <stdio.h>
#include <stdint.h>
#include <stddef.h>

struct packed_u8 {
uint16_t mitigation_time;
uint8_t current_rating : 6;
uint8_t num_phases : 6;
uint8_t path_notification : 1;
uint8_t extra_features : 3;
} __packed;


void main() {

struct packed_u8 data = {
.mitigation_time = 0xffff,
.current_rating = 0x3f, /* all 6 bits set */
.num_phases = 0x3f,
.path_notification = 1,
.extra_features = 0x7,
};

printf("Akhil 0x%x\n", *((uint32_t *) &data));
}

The output I got in Kaanapali is: Akhil 0x7f3fffff

This means that the compiler inserted a padding between current_rating
and num_phases.

-Akhil.

>
> Konrad