Browse Source

qcacmn: Use hal io apis in SRNG_REG_WRITE

The register write apis for the srng rings pass the
srng structure as their context.  Add a pointer to
the hal to enable windowing.

Change-Id: Ib3bda2d49d5c2d327cc1b986dcf825a216a004ef
CRs-Fixed: 2032131
Houston Hoffman 8 years ago
parent
commit
8bbc99066e
3 changed files with 9 additions and 5 deletions
  1. 4 3
      hal/wifi3.0/hal_api.h
  2. 2 0
      hal/wifi3.0/hal_internal.h
  3. 3 2
      hal/wifi3.0/hal_srng.c

+ 4 - 3
hal/wifi3.0/hal_api.h

@@ -33,7 +33,6 @@
 #include "qdf_types.h"
 #include "qdf_util.h"
 #include "hal_internal.h"
-#include "hif_io32.h"
 #include "rx_msdu_link.h"
 #include "rx_reo_queue.h"
 #include "rx_reo_queue_ext.h"
@@ -620,10 +619,12 @@ static inline void hal_srng_access_end_unlocked(void *hal_soc, void *hal_ring)
 		}
 	} else {
 		if (srng->ring_dir == HAL_SRNG_SRC_RING)
-			hif_write32_mb(srng->u.src_ring.hp_addr,
+			hal_write_address_32_mb(hal_soc,
+				srng->u.src_ring.hp_addr,
 				srng->u.src_ring.hp);
 		else
-			hif_write32_mb(srng->u.dst_ring.tp_addr,
+			hal_write_address_32_mb(hal_soc,
+				srng->u.dst_ring.tp_addr,
 				srng->u.dst_ring.tp);
 	}
 }

+ 2 - 0
hal/wifi3.0/hal_internal.h

@@ -271,6 +271,8 @@ struct hal_srng {
 			uint32_t low_threshold;
 		} src_ring;
 	} u;
+
+	struct hal_soc *hal_soc;
 };
 
 /* HW SRNG configuration table */

+ 3 - 2
hal/wifi3.0/hal_srng.c

@@ -133,10 +133,10 @@
 	SRNG_REG_ADDR(_srng, _reg, _reg ## _GROUP, SRC)
 
 #define SRNG_REG_WRITE(_srng, _reg, _value, _dir) \
-	hif_write32_mb(SRNG_ ## _dir ## _ADDR(_srng, _reg), (_value))
+	hal_write_address_32_mb(_srng->hal_soc, SRNG_ ## _dir ## _ADDR(_srng, _reg), (_value))
 
 #define SRNG_REG_READ(_srng, _reg, _dir) \
-	hif_read32_mb(SRNG_ ## _dir ## _ADDR(_srng, _reg))
+	hal_read_address_32_mb(_srng->hal_soc, SRNG_ ## _dir ## _ADDR(_srng, _reg))
 
 #define SRNG_SRC_REG_WRITE(_srng, _reg, _value) \
 	SRNG_REG_WRITE(_srng, _reg, _value, SRC)
@@ -1091,6 +1091,7 @@ void *hal_srng_setup(void *hal_soc, int ring_type, int ring_num,
 	srng->intr_timer_thres_us = ring_params->intr_timer_thres_us;
 	srng->intr_batch_cntr_thres_entries =
 		ring_params->intr_batch_cntr_thres_entries;
+	srng->hal_soc = hal_soc;
 
 	for (i = 0 ; i < MAX_SRNG_REG_GROUPS; i++) {
 		srng->hwreg_base[i] = dev_base_addr + ring_config->reg_start[i]