#define TARGET_NUM_VDEVS(ab) ((ab)->profile_param->num_vdevs)
/* Max num of stations for Single Radio mode */
-#define TARGET_NUM_STATIONS_SINGLE(ab) ((ab)->profile_param->max_client_single)
+#define TARGET_NUM_STATIONS_SINGLE(ab) \
+({ \
+ typeof(ab) _ab = (ab); \
+ min_not_zero(_ab->hw_params->client.max_client_single, \
+ _ab->profile_param->max_client_single); \
+})
/* Max num of stations for DBS */
-#define TARGET_NUM_STATIONS_DBS(ab) ((ab)->profile_param->max_client_dbs)
+#define TARGET_NUM_STATIONS_DBS(ab) \
+({ \
+ typeof(ab) _ab = (ab); \
+ min_not_zero(_ab->hw_params->client.max_client_dbs, \
+ _ab->profile_param->max_client_dbs); \
+})
/* Max num of stations for DBS_SBS */
#define TARGET_NUM_STATIONS_DBS_SBS(ab) \
- ((ab)->profile_param->max_client_dbs_sbs)
+({ \
+ typeof(ab) _ab = (ab); \
+ min_not_zero(_ab->hw_params->client.max_client_dbs_sbs, \
+ _ab->profile_param->max_client_dbs_sbs); \
+})
#define TARGET_NUM_STATIONS(ab, x) TARGET_NUM_STATIONS_##x(ab)
/* setup REO queue, frag etc only for primary link peer */
bool dp_primary_link_only:1;
+ struct {
+ u32 max_client_single;
+ u32 max_client_dbs;
+ u32 max_client_dbs_sbs;
+ } client;
};
struct ath12k_hw_ops {
.current_cc_support = false,
.dp_primary_link_only = true,
+ .client = {
+ .max_client_single = 512,
+ .max_client_dbs = 128,
+ .max_client_dbs_sbs = 128,
+ },
},
{
.name = "wcn7850 hw2.0",
.current_cc_support = true,
.dp_primary_link_only = false,
+ .client = {
+ .max_client_single = 512,
+ .max_client_dbs = 128,
+ .max_client_dbs_sbs = 128,
+ },
},
{
.name = "qcn9274 hw2.0",
.current_cc_support = false,
.dp_primary_link_only = true,
+ .client = {
+ .max_client_single = 512,
+ .max_client_dbs = 128,
+ .max_client_dbs_sbs = 128,
+ },
},
{
.name = "ipq5332 hw1.0",
.bdf_addr_offset = 0xC00000,
.dp_primary_link_only = true,
+ .client = {
+ .max_client_single = 256,
+ .max_client_dbs = 128,
+ .max_client_dbs_sbs = 128,
+ },
},
{
.name = "qcc2072 hw1.0",
.current_cc_support = true,
.dp_primary_link_only = false,
+ .client = {
+ .max_client_single = 512,
+ .max_client_dbs = 128,
+ .max_client_dbs_sbs = 128,
+ },
},
{
.name = "ipq5424 hw1.0",
.current_cc_support = false,
.dp_primary_link_only = true,
+ .client = {
+ .max_client_single = 512,
+ .max_client_dbs = 128,
+ .max_client_dbs_sbs = 128,
+ },
},
};