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:

committed by
nshrivas

parent
2b0d3f38d5
commit
bcf953583a
@@ -970,6 +970,19 @@ uint16_t hal_rx_get_rx_sequence_8074v2(uint8_t *buf)
|
||||
return HAL_RX_MPDU_GET_SEQUENCE_NUMBER(rx_mpdu_info);
|
||||
}
|
||||
|
||||
/**
|
||||
* hal_get_window_address_8074v2(): Function to get hp/tp address
|
||||
* @hal_soc: Pointer to hal_soc
|
||||
* @addr: address offset of register
|
||||
*
|
||||
* Return: modified address offset of register
|
||||
*/
|
||||
static inline qdf_iomem_t hal_get_window_address_8074v2(struct hal_soc *hal_soc,
|
||||
qdf_iomem_t addr)
|
||||
{
|
||||
return addr;
|
||||
}
|
||||
|
||||
struct hal_hw_txrx_ops qca8074v2_hal_hw_txrx_ops = {
|
||||
|
||||
/* init and setup */
|
||||
@@ -978,6 +991,7 @@ struct hal_hw_txrx_ops qca8074v2_hal_hw_txrx_ops = {
|
||||
hal_get_hw_hptp_generic,
|
||||
hal_reo_setup_generic,
|
||||
hal_setup_link_idle_list_generic,
|
||||
hal_get_window_address_8074v2,
|
||||
|
||||
/* tx */
|
||||
hal_tx_desc_set_dscp_tid_table_id_8074v2,
|
||||
|
Reference in New Issue
Block a user