qcacmn: Provide hal io apis to support register windowing

Use windowing for register read/write.  This allows
for pci based devices to reduce the mapped bar size.
Required for QCA6290.

Change-Id: Ifb173095c135e9eca454f2ba6132b5c54ea8fc4b
CRs-Fixed: 2032131
This commit is contained in:
Houston Hoffman
2017-04-07 17:09:34 -07:00
committed by snandini
parent 284d5f66cb
commit 61dad49aa3
3 changed files with 101 additions and 2 deletions

View File

@@ -322,6 +322,9 @@ struct hal_soc {
/* shadow register configuration */
struct pld_shadow_reg_v2_cfg shadow_config[MAX_SHADOW_REGISTERS];
int num_shadow_registers_configured;
bool use_register_windowing;
uint32_t register_window;
qdf_spinlock_t register_access_lock;
};
/* TODO: Check if the following can be provided directly by HW headers */
@@ -345,9 +348,9 @@ struct hal_soc {
(_reg ## _ ## _fld ## _SHFT))
#define HAL_REG_WRITE(_soc, _reg, _value) \
hif_write32_mb((_soc)->dev_base_addr + (_reg), (_value))
hal_write32_mb(_soc, (_reg), (_value))
#define HAL_REG_READ(_soc, _offset) \
hif_read32_mb((_soc)->dev_base_addr + (_offset))
hal_read32_mb(_soc, (_offset))
#endif /* _HAL_INTERNAL_H_ */