diff options
author | Christophe Leroy <christophe.leroy@c-s.fr> | 2017-02-07 04:05:09 -0500 |
---|---|---|
committer | Scott Wood <oss@buserror.net> | 2017-04-30 02:26:32 -0400 |
commit | 8b8642af15ed14b9a7a34d3401afbcc274533e13 (patch) | |
tree | 93bd7a92a7e915fae8427a30a24384529ee94485 | |
parent | fd615f69a18a9d4aa5ef02a1dc83f319f75da8e7 (diff) |
net: ethernet: ucc_geth: fix MEM_PART_MURAM mode
Since commit 5093bb965a163 ("powerpc/QE: switch to the cpm_muram
implementation"), muram area is not part of immrbar mapping anymore
so immrbar_virt_to_phys() is not usable anymore.
Fixes: 5093bb965a163 ("powerpc/QE: switch to the cpm_muram implementation")
Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Acked-by: David S. Miller <davem@davemloft.net>
Acked-by: Li Yang <pku.leo@gmail.com>
Signed-off-by: Scott Wood <oss@buserror.net>
-rw-r--r-- | drivers/net/ethernet/freescale/ucc_geth.c | 8 | ||||
-rw-r--r-- | include/soc/fsl/qe/qe.h | 1 |
2 files changed, 4 insertions, 5 deletions
diff --git a/drivers/net/ethernet/freescale/ucc_geth.c b/drivers/net/ethernet/freescale/ucc_geth.c index 3f7ae9f64cd8..f77ba9fa257b 100644 --- a/drivers/net/ethernet/freescale/ucc_geth.c +++ b/drivers/net/ethernet/freescale/ucc_geth.c | |||
@@ -2594,11 +2594,10 @@ static int ucc_geth_startup(struct ucc_geth_private *ugeth) | |||
2594 | } else if (ugeth->ug_info->uf_info.bd_mem_part == | 2594 | } else if (ugeth->ug_info->uf_info.bd_mem_part == |
2595 | MEM_PART_MURAM) { | 2595 | MEM_PART_MURAM) { |
2596 | out_be32(&ugeth->p_send_q_mem_reg->sqqd[i].bd_ring_base, | 2596 | out_be32(&ugeth->p_send_q_mem_reg->sqqd[i].bd_ring_base, |
2597 | (u32) immrbar_virt_to_phys(ugeth-> | 2597 | (u32)qe_muram_dma(ugeth->p_tx_bd_ring[i])); |
2598 | p_tx_bd_ring[i])); | ||
2599 | out_be32(&ugeth->p_send_q_mem_reg->sqqd[i]. | 2598 | out_be32(&ugeth->p_send_q_mem_reg->sqqd[i]. |
2600 | last_bd_completed_address, | 2599 | last_bd_completed_address, |
2601 | (u32) immrbar_virt_to_phys(endOfRing)); | 2600 | (u32)qe_muram_dma(endOfRing)); |
2602 | } | 2601 | } |
2603 | } | 2602 | } |
2604 | 2603 | ||
@@ -2844,8 +2843,7 @@ static int ucc_geth_startup(struct ucc_geth_private *ugeth) | |||
2844 | } else if (ugeth->ug_info->uf_info.bd_mem_part == | 2843 | } else if (ugeth->ug_info->uf_info.bd_mem_part == |
2845 | MEM_PART_MURAM) { | 2844 | MEM_PART_MURAM) { |
2846 | out_be32(&ugeth->p_rx_bd_qs_tbl[i].externalbdbaseptr, | 2845 | out_be32(&ugeth->p_rx_bd_qs_tbl[i].externalbdbaseptr, |
2847 | (u32) immrbar_virt_to_phys(ugeth-> | 2846 | (u32)qe_muram_dma(ugeth->p_rx_bd_ring[i])); |
2848 | p_rx_bd_ring[i])); | ||
2849 | } | 2847 | } |
2850 | /* rest of fields handled by QE */ | 2848 | /* rest of fields handled by QE */ |
2851 | } | 2849 | } |
diff --git a/include/soc/fsl/qe/qe.h b/include/soc/fsl/qe/qe.h index 70339d7958c0..0cd4c11479b1 100644 --- a/include/soc/fsl/qe/qe.h +++ b/include/soc/fsl/qe/qe.h | |||
@@ -243,6 +243,7 @@ static inline int qe_alive_during_sleep(void) | |||
243 | #define qe_muram_free cpm_muram_free | 243 | #define qe_muram_free cpm_muram_free |
244 | #define qe_muram_addr cpm_muram_addr | 244 | #define qe_muram_addr cpm_muram_addr |
245 | #define qe_muram_offset cpm_muram_offset | 245 | #define qe_muram_offset cpm_muram_offset |
246 | #define qe_muram_dma cpm_muram_dma | ||
246 | 247 | ||
247 | #define qe_setbits32(_addr, _v) iowrite32be(ioread32be(_addr) | (_v), (_addr)) | 248 | #define qe_setbits32(_addr, _v) iowrite32be(ioread32be(_addr) | (_v), (_addr)) |
248 | #define qe_clrbits32(_addr, _v) iowrite32be(ioread32be(_addr) & ~(_v), (_addr)) | 249 | #define qe_clrbits32(_addr, _v) iowrite32be(ioread32be(_addr) & ~(_v), (_addr)) |