Browse Source

qcacmn: Do not check MSI group number for one MSI vector mode

Some platforms only permit the device to allocate 1 MSI interrupt, then
macro WLAN_ONE_MSI_VECTOR is added to support this one MSI vector mode.
There is only one MSI data count for one MSI vector mode, so it is valid
that 2 more MSI dp groups share one MSI data.

Change-Id: Iaab2a2ba538ea3750a32454855144a0cb0776eca
CRs-Fixed: 2843378
bings 4 năm trước cách đây
mục cha
commit
3f59477859
1 tập tin đã thay đổi với 22 bổ sung1 xóa
  1. 22 1
      dp/wifi3.0/dp_main.c

+ 22 - 1
dp/wifi3.0/dp_main.c

@@ -1202,6 +1202,27 @@ static int dp_srng_calculate_msi_group(struct dp_soc *soc,
 	return dp_srng_find_ring_in_mask(ring_num, grp_mask);
 }
 
+/**
+ * dp_is_msi_group_number_invalid() - check msi_group_number valid or not
+ * @msi_group_number: MSI group number.
+ * @msi_data_count: MSI data count.
+ *
+ * Return: true if msi_group_number is valid.
+ */
+#ifdef WLAN_ONE_MSI_VECTOR
+static bool dp_is_msi_group_number_invalid(int msi_group_number,
+					   int msi_data_count)
+{
+	return false;
+}
+#else
+static bool dp_is_msi_group_number_invalid(int msi_group_number,
+					   int msi_data_count)
+{
+	return msi_group_number > msi_data_count;
+}
+#endif
+
 static void dp_srng_msi_setup(struct dp_soc *soc, struct hal_srng_params
 			      *ring_params, int ring_type, int ring_num)
 {
@@ -1227,7 +1248,7 @@ static void dp_srng_msi_setup(struct dp_soc *soc, struct hal_srng_params
 		return;
 	}
 
-	if (msi_group_number > msi_data_count) {
+	if (dp_is_msi_group_number_invalid(msi_group_number, msi_data_count)) {
 		dp_init_warn("%pK: 2 msi_groups will share an msi; msi_group_num %d",
 			     soc, msi_group_number);