[PATCH v5 1/2] wifi: ath12k: Add Support to Parse TPC Event from Firmware

Roopni Devanathan quic_rdevanat at quicinc.com
Wed Jan 29 22:15:30 PST 2025



On 1/30/2025 7:01 AM, Jeff Johnson wrote:
> On 1/28/2025 3:10 AM, Roopni Devanathan wrote:
> ...
>> +struct wmi_max_reg_power_allowed_params {
> 
> this seems to be misnamed. per the wmi naming convention _params are structs
> passed from firmware. you cannot pass a pointer to an array from firmware to
> host, you can only pass the array contents. hence seems this is a host-only
> struct and should be named _arg
> 
>> +	struct wmi_max_reg_power_fixed_params tpc_reg_pwr;
>> +	s16 *reg_pwr_array;
>> +};
>> +
>> +struct wmi_tpc_rates_array_fixed_params {
>> +	__le32 rate_array_type;
>> +	__le32 rate_array_len;
>> +} __packed;
>> +
>> +struct wmi_tpc_rates_array_params {
> 
> again seems this should be _arg
> 
>> +	struct wmi_tpc_rates_array_fixed_params tpc_rates_array;
>> +	s16 *rate_array;
>> +};
>> +
>> +struct wmi_tpc_ctl_pwr_fixed_params {
>> +	__le32 ctl_array_type;
>> +	__le32 ctl_array_len;
>> +	__le32 end_of_ctl_pwr;
>> +	__le32 ctl_pwr_count;
>> +	__le32 d1;
>> +	__le32 d2;
>> +	__le32 d3;
>> +	__le32 d4;
>> +} __packed;
>> +
>> +struct wmi_tpc_ctl_pwr_table_params {
> 
> again seems this should be _arg
> 
>> +	struct wmi_tpc_ctl_pwr_fixed_params tpc_ctl_pwr;
>> +	s8 *ctl_pwr_table;
>> +};
>> +
>> +struct wmi_tpc_stats_info {
> 
> same here
> 
>> +	u32 pdev_id;
>> +	u32 event_count;
>> +	u32 end_of_event;
>> +	u32 tlvs_rcvd;
>> +	struct wmi_max_reg_power_allowed_params max_reg_allowed_power;
>> +	struct wmi_tpc_rates_array_params rates_array1;
>> +	struct wmi_tpc_rates_array_params rates_array2;
>> +	struct wmi_tpc_config_params tpc_config;
>> +	struct wmi_tpc_ctl_pwr_table_params ctl_array;
>> +};
> 
> reminder from the top of the file:
> /* Naming conventions for structures:
>  *
>  * _cmd means that this is a firmware command sent from host to firmware.
>  *
>  * _event means that this is a firmware event sent from firmware to host
>  *
>  * _params is a structure which is embedded either into _cmd or _event (or
>  * both), it is not sent individually.
>  *
>  * _arg is used inside the host, the firmware does not see that at all.
>  */
> 
> 
Thanks for clarifying Jeff. I've sent a v6 addressing all these comments.

- Roopni.



More information about the ath12k mailing list