diff options
Diffstat (limited to 'drivers/gpu/drm/amd/include')
| -rw-r--r-- | drivers/gpu/drm/amd/include/atomfirmware.h | 2 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/include/pptable.h | 91 | 
2 files changed, 50 insertions, 43 deletions
| diff --git a/drivers/gpu/drm/amd/include/atomfirmware.h b/drivers/gpu/drm/amd/include/atomfirmware.h index 1acb2d2c5597..571691837200 100644 --- a/drivers/gpu/drm/amd/include/atomfirmware.h +++ b/drivers/gpu/drm/amd/include/atomfirmware.h @@ -3583,7 +3583,7 @@ struct atom_gpio_voltage_object_v4     uint8_t  phase_delay_us;                      // phase delay in unit of micro second     uint8_t  reserved;        uint32_t gpio_mask_val;                         // GPIO Mask value -   struct atom_voltage_gpio_map_lut voltage_gpio_lut[1]; +   struct atom_voltage_gpio_map_lut voltage_gpio_lut[] __counted_by(gpio_entry_num);  };  struct  atom_svid2_voltage_object_v4 diff --git a/drivers/gpu/drm/amd/include/pptable.h b/drivers/gpu/drm/amd/include/pptable.h index 2e8e6c9875f6..f83ace2d7ec3 100644 --- a/drivers/gpu/drm/amd/include/pptable.h +++ b/drivers/gpu/drm/amd/include/pptable.h @@ -477,31 +477,30 @@ typedef struct _ATOM_PPLIB_STATE_V2  } ATOM_PPLIB_STATE_V2;  typedef struct _StateArray{ -    //how many states we have  -    UCHAR ucNumEntries; -     -    ATOM_PPLIB_STATE_V2 states[1]; +	//how many states we have +	UCHAR ucNumEntries; + +	ATOM_PPLIB_STATE_V2 states[] /* __counted_by(ucNumEntries) */;  }StateArray;  typedef struct _ClockInfoArray{ -    //how many clock levels we have -    UCHAR ucNumEntries; -     -    //sizeof(ATOM_PPLIB_CLOCK_INFO) -    UCHAR ucEntrySize; -     -    UCHAR clockInfo[]; +	//how many clock levels we have +	UCHAR ucNumEntries; + +	//sizeof(ATOM_PPLIB_CLOCK_INFO) +	UCHAR ucEntrySize; + +	UCHAR clockInfo[];  }ClockInfoArray;  typedef struct _NonClockInfoArray{ +	//how many non-clock levels we have. normally should be same as number of states +	UCHAR ucNumEntries; +	//sizeof(ATOM_PPLIB_NONCLOCK_INFO) +	UCHAR ucEntrySize; -    //how many non-clock levels we have. normally should be same as number of states -    UCHAR ucNumEntries; -    //sizeof(ATOM_PPLIB_NONCLOCK_INFO) -    UCHAR ucEntrySize; -     -    ATOM_PPLIB_NONCLOCK_INFO nonClockInfo[]; +	ATOM_PPLIB_NONCLOCK_INFO nonClockInfo[] __counted_by(ucNumEntries);  }NonClockInfoArray;  typedef struct _ATOM_PPLIB_Clock_Voltage_Dependency_Record @@ -513,8 +512,10 @@ typedef struct _ATOM_PPLIB_Clock_Voltage_Dependency_Record  typedef struct _ATOM_PPLIB_Clock_Voltage_Dependency_Table  { -    UCHAR ucNumEntries;                                                // Number of entries. -    ATOM_PPLIB_Clock_Voltage_Dependency_Record entries[1];             // Dynamically allocate entries. +	// Number of entries. +	UCHAR ucNumEntries; +	// Dynamically allocate entries. +	ATOM_PPLIB_Clock_Voltage_Dependency_Record entries[] __counted_by(ucNumEntries);  }ATOM_PPLIB_Clock_Voltage_Dependency_Table;  typedef struct _ATOM_PPLIB_Clock_Voltage_Limit_Record @@ -529,8 +530,10 @@ typedef struct _ATOM_PPLIB_Clock_Voltage_Limit_Record  typedef struct _ATOM_PPLIB_Clock_Voltage_Limit_Table  { -    UCHAR ucNumEntries;                                                // Number of entries. -    ATOM_PPLIB_Clock_Voltage_Limit_Record entries[1];                  // Dynamically allocate entries. +	// Number of entries. +	UCHAR ucNumEntries; +	// Dynamically allocate entries. +	ATOM_PPLIB_Clock_Voltage_Limit_Record entries[] __counted_by(ucNumEntries);  }ATOM_PPLIB_Clock_Voltage_Limit_Table;  union _ATOM_PPLIB_CAC_Leakage_Record @@ -553,8 +556,10 @@ typedef union _ATOM_PPLIB_CAC_Leakage_Record ATOM_PPLIB_CAC_Leakage_Record;  typedef struct _ATOM_PPLIB_CAC_Leakage_Table  { -    UCHAR ucNumEntries;                                                 // Number of entries. -    ATOM_PPLIB_CAC_Leakage_Record entries[1];                           // Dynamically allocate entries. +	// Number of entries. +	UCHAR ucNumEntries; +	// Dynamically allocate entries. +	ATOM_PPLIB_CAC_Leakage_Record entries[] __counted_by(ucNumEntries);  }ATOM_PPLIB_CAC_Leakage_Table;  typedef struct _ATOM_PPLIB_PhaseSheddingLimits_Record @@ -568,8 +573,10 @@ typedef struct _ATOM_PPLIB_PhaseSheddingLimits_Record  typedef struct _ATOM_PPLIB_PhaseSheddingLimits_Table  { -    UCHAR ucNumEntries;                                                 // Number of entries. -    ATOM_PPLIB_PhaseSheddingLimits_Record entries[1];                   // Dynamically allocate entries. +	// Number of entries. +	UCHAR ucNumEntries; +	// Dynamically allocate entries. +	ATOM_PPLIB_PhaseSheddingLimits_Record entries[] __counted_by(ucNumEntries);  }ATOM_PPLIB_PhaseSheddingLimits_Table;  typedef struct _VCEClockInfo{ @@ -580,8 +587,8 @@ typedef struct _VCEClockInfo{  }VCEClockInfo;  typedef struct _VCEClockInfoArray{ -    UCHAR ucNumEntries; -    VCEClockInfo entries[1]; +	UCHAR ucNumEntries; +	VCEClockInfo entries[] __counted_by(ucNumEntries);  }VCEClockInfoArray;  typedef struct _ATOM_PPLIB_VCE_Clock_Voltage_Limit_Record @@ -592,8 +599,8 @@ typedef struct _ATOM_PPLIB_VCE_Clock_Voltage_Limit_Record  typedef struct _ATOM_PPLIB_VCE_Clock_Voltage_Limit_Table  { -    UCHAR numEntries; -    ATOM_PPLIB_VCE_Clock_Voltage_Limit_Record entries[1]; +	UCHAR numEntries; +	ATOM_PPLIB_VCE_Clock_Voltage_Limit_Record entries[] __counted_by(numEntries);  }ATOM_PPLIB_VCE_Clock_Voltage_Limit_Table;  typedef struct _ATOM_PPLIB_VCE_State_Record @@ -604,8 +611,8 @@ typedef struct _ATOM_PPLIB_VCE_State_Record  typedef struct _ATOM_PPLIB_VCE_State_Table  { -    UCHAR numEntries; -    ATOM_PPLIB_VCE_State_Record entries[1]; +	UCHAR numEntries; +	ATOM_PPLIB_VCE_State_Record entries[] __counted_by(numEntries);  }ATOM_PPLIB_VCE_State_Table; @@ -626,8 +633,8 @@ typedef struct _UVDClockInfo{  }UVDClockInfo;  typedef struct _UVDClockInfoArray{ -    UCHAR ucNumEntries; -    UVDClockInfo entries[1]; +	UCHAR ucNumEntries; +	UVDClockInfo entries[] __counted_by(ucNumEntries);  }UVDClockInfoArray;  typedef struct _ATOM_PPLIB_UVD_Clock_Voltage_Limit_Record @@ -638,8 +645,8 @@ typedef struct _ATOM_PPLIB_UVD_Clock_Voltage_Limit_Record  typedef struct _ATOM_PPLIB_UVD_Clock_Voltage_Limit_Table  { -    UCHAR numEntries; -    ATOM_PPLIB_UVD_Clock_Voltage_Limit_Record entries[1]; +	UCHAR numEntries; +	ATOM_PPLIB_UVD_Clock_Voltage_Limit_Record entries[] __counted_by(numEntries);  }ATOM_PPLIB_UVD_Clock_Voltage_Limit_Table;  typedef struct _ATOM_PPLIB_UVD_Table @@ -657,8 +664,8 @@ typedef struct _ATOM_PPLIB_SAMClk_Voltage_Limit_Record  }ATOM_PPLIB_SAMClk_Voltage_Limit_Record;  typedef struct _ATOM_PPLIB_SAMClk_Voltage_Limit_Table{ -    UCHAR numEntries; -    ATOM_PPLIB_SAMClk_Voltage_Limit_Record entries[]; +	UCHAR numEntries; +	ATOM_PPLIB_SAMClk_Voltage_Limit_Record entries[] __counted_by(numEntries);  }ATOM_PPLIB_SAMClk_Voltage_Limit_Table;  typedef struct _ATOM_PPLIB_SAMU_Table @@ -675,8 +682,8 @@ typedef struct _ATOM_PPLIB_ACPClk_Voltage_Limit_Record  }ATOM_PPLIB_ACPClk_Voltage_Limit_Record;  typedef struct _ATOM_PPLIB_ACPClk_Voltage_Limit_Table{ -    UCHAR numEntries; -    ATOM_PPLIB_ACPClk_Voltage_Limit_Record entries[1]; +	UCHAR numEntries; +	ATOM_PPLIB_ACPClk_Voltage_Limit_Record entries[] __counted_by(numEntries);  }ATOM_PPLIB_ACPClk_Voltage_Limit_Table;  typedef struct _ATOM_PPLIB_ACP_Table @@ -743,9 +750,9 @@ typedef struct ATOM_PPLIB_VQ_Budgeting_Record{  } ATOM_PPLIB_VQ_Budgeting_Record;  typedef struct ATOM_PPLIB_VQ_Budgeting_Table { -    UCHAR revid; -    UCHAR numEntries; -    ATOM_PPLIB_VQ_Budgeting_Record         entries[1]; +	UCHAR revid; +	UCHAR numEntries; +	ATOM_PPLIB_VQ_Budgeting_Record entries[] __counted_by(numEntries);  } ATOM_PPLIB_VQ_Budgeting_Table;  #pragma pack() |