aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c6
-rw-r--r--drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.c8
-rw-r--r--drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.h3
-rw-r--r--drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh_internal.h18
4 files changed, 35 insertions, 0 deletions
diff --git a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
index 119265762b0c..3aec56623bf5 100644
--- a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
+++ b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
@@ -920,6 +920,12 @@ static int hw_atl_b0_hw_interrupt_moderation_set(struct aq_hw_s *self)
920static int hw_atl_b0_hw_stop(struct aq_hw_s *self) 920static int hw_atl_b0_hw_stop(struct aq_hw_s *self)
921{ 921{
922 hw_atl_b0_hw_irq_disable(self, HW_ATL_B0_INT_MASK); 922 hw_atl_b0_hw_irq_disable(self, HW_ATL_B0_INT_MASK);
923
924 /* Invalidate Descriptor Cache to prevent writing to the cached
925 * descriptors and to the data pointer of those descriptors
926 */
927 hw_atl_rdm_rx_dma_desc_cache_init_set(self, 1);
928
923 return aq_hw_err_from_flags(self); 929 return aq_hw_err_from_flags(self);
924} 930}
925 931
diff --git a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.c b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.c
index be0a3a90dfad..5502ec5f0f69 100644
--- a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.c
+++ b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.c
@@ -619,6 +619,14 @@ void hw_atl_rpb_rx_flow_ctl_mode_set(struct aq_hw_s *aq_hw, u32 rx_flow_ctl_mode
619 HW_ATL_RPB_RX_FC_MODE_SHIFT, rx_flow_ctl_mode); 619 HW_ATL_RPB_RX_FC_MODE_SHIFT, rx_flow_ctl_mode);
620} 620}
621 621
622void hw_atl_rdm_rx_dma_desc_cache_init_set(struct aq_hw_s *aq_hw, u32 init)
623{
624 aq_hw_write_reg_bit(aq_hw, HW_ATL_RDM_RX_DMA_DESC_CACHE_INIT_ADR,
625 HW_ATL_RDM_RX_DMA_DESC_CACHE_INIT_MSK,
626 HW_ATL_RDM_RX_DMA_DESC_CACHE_INIT_SHIFT,
627 init);
628}
629
622void hw_atl_rpb_rx_pkt_buff_size_per_tc_set(struct aq_hw_s *aq_hw, 630void hw_atl_rpb_rx_pkt_buff_size_per_tc_set(struct aq_hw_s *aq_hw,
623 u32 rx_pkt_buff_size_per_tc, u32 buffer) 631 u32 rx_pkt_buff_size_per_tc, u32 buffer)
624{ 632{
diff --git a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.h b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.h
index 7056c7342afc..41f239928c15 100644
--- a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.h
+++ b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.h
@@ -325,6 +325,9 @@ void hw_atl_rpb_rx_pkt_buff_size_per_tc_set(struct aq_hw_s *aq_hw,
325 u32 rx_pkt_buff_size_per_tc, 325 u32 rx_pkt_buff_size_per_tc,
326 u32 buffer); 326 u32 buffer);
327 327
328/* set rdm rx dma descriptor cache init */
329void hw_atl_rdm_rx_dma_desc_cache_init_set(struct aq_hw_s *aq_hw, u32 init);
330
328/* set rx xoff enable (per tc) */ 331/* set rx xoff enable (per tc) */
329void hw_atl_rpb_rx_xoff_en_per_tc_set(struct aq_hw_s *aq_hw, u32 rx_xoff_en_per_tc, 332void hw_atl_rpb_rx_xoff_en_per_tc_set(struct aq_hw_s *aq_hw, u32 rx_xoff_en_per_tc,
330 u32 buffer); 333 u32 buffer);
diff --git a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh_internal.h b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh_internal.h
index 716674a9b729..a715fa317b1c 100644
--- a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh_internal.h
+++ b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh_internal.h
@@ -293,6 +293,24 @@
293/* default value of bitfield desc{d}_reset */ 293/* default value of bitfield desc{d}_reset */
294#define HW_ATL_RDM_DESCDRESET_DEFAULT 0x0 294#define HW_ATL_RDM_DESCDRESET_DEFAULT 0x0
295 295
296/* rdm_desc_init_i bitfield definitions
297 * preprocessor definitions for the bitfield rdm_desc_init_i.
298 * port="pif_rdm_desc_init_i"
299 */
300
301/* register address for bitfield rdm_desc_init_i */
302#define HW_ATL_RDM_RX_DMA_DESC_CACHE_INIT_ADR 0x00005a00
303/* bitmask for bitfield rdm_desc_init_i */
304#define HW_ATL_RDM_RX_DMA_DESC_CACHE_INIT_MSK 0xffffffff
305/* inverted bitmask for bitfield rdm_desc_init_i */
306#define HW_ATL_RDM_RX_DMA_DESC_CACHE_INIT_MSKN 0x00000000
307/* lower bit position of bitfield rdm_desc_init_i */
308#define HW_ATL_RDM_RX_DMA_DESC_CACHE_INIT_SHIFT 0
309/* width of bitfield rdm_desc_init_i */
310#define HW_ATL_RDM_RX_DMA_DESC_CACHE_INIT_WIDTH 32
311/* default value of bitfield rdm_desc_init_i */
312#define HW_ATL_RDM_RX_DMA_DESC_CACHE_INIT_DEFAULT 0x0
313
296/* rx int_desc_wrb_en bitfield definitions 314/* rx int_desc_wrb_en bitfield definitions
297 * preprocessor definitions for the bitfield "int_desc_wrb_en". 315 * preprocessor definitions for the bitfield "int_desc_wrb_en".
298 * port="pif_rdm_int_desc_wrb_en_i" 316 * port="pif_rdm_int_desc_wrb_en_i"