qcacmn: Use multi window write and read for pine
Write into hal register using three floating windows instead of one. This change is done to avoid frequent window changes for writing into DP and CE registers. Instead 3 windows are used. One window is statically mapped to CE block and another window is mapped statically to DP block. Due to this design there is no need to change the window register to write into these blocks and write can be done on corresponding window with single iowrite32. Similar loginc is used for ioread32. Also modified the hp_addr and tp_addr in initialisation stage so that hal_write will not have multiple if checks. Change-Id: Ibb99ec4da7f63323082e46a28afbe90e1f555545 CRs-fixed: 2507441
This commit is contained in:

committad av
nshrivas

förälder
2b0d3f38d5
incheckning
bcf953583a
@@ -353,6 +353,8 @@ struct hal_hw_txrx_ops {
|
||||
uint32_t scatter_buf_size,
|
||||
uint32_t last_buf_end_offset,
|
||||
uint32_t num_entries);
|
||||
qdf_iomem_t (*hal_get_window_address)(struct hal_soc *hal_soc,
|
||||
qdf_iomem_t addr);
|
||||
|
||||
/* tx */
|
||||
void (*hal_tx_desc_set_dscp_tid_table_id)(void *desc, uint8_t id);
|
||||
@@ -498,6 +500,9 @@ struct hal_soc {
|
||||
uint32_t register_window;
|
||||
qdf_spinlock_t register_access_lock;
|
||||
|
||||
/* Static window map configuration for multiple window write*/
|
||||
bool static_window_map;
|
||||
|
||||
/* srng table */
|
||||
struct hal_hw_srng_config *hw_srng_table;
|
||||
int32_t *hal_hw_reg_offset;
|
||||
|
Referens i nytt ärende
Block a user