lkml.org 
[lkml]   [2018]   [Mar]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.9 104/177] net: ethernet: ucc_geth: fix MEM_PART_MURAM mode
    Date
    4.9-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Christophe Leroy <christophe.leroy@c-s.fr>


    [ Upstream commit 8b8642af15ed14b9a7a34d3401afbcc274533e13 ]

    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>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/net/ethernet/freescale/ucc_geth.c | 8 +++-----
    include/soc/fsl/qe/qe.h | 1 +
    2 files changed, 4 insertions(+), 5 deletions(-)

    --- 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_g
    } else if (ugeth->ug_info->uf_info.bd_mem_part ==
    MEM_PART_MURAM) {
    out_be32(&ugeth->p_send_q_mem_reg->sqqd[i].bd_ring_base,
    - (u32) immrbar_virt_to_phys(ugeth->
    - p_tx_bd_ring[i]));
    + (u32)qe_muram_dma(ugeth->p_tx_bd_ring[i]));
    out_be32(&ugeth->p_send_q_mem_reg->sqqd[i].
    last_bd_completed_address,
    - (u32) immrbar_virt_to_phys(endOfRing));
    + (u32)qe_muram_dma(endOfRing));
    }
    }

    @@ -2844,8 +2843,7 @@ static int ucc_geth_startup(struct ucc_g
    } else if (ugeth->ug_info->uf_info.bd_mem_part ==
    MEM_PART_MURAM) {
    out_be32(&ugeth->p_rx_bd_qs_tbl[i].externalbdbaseptr,
    - (u32) immrbar_virt_to_phys(ugeth->
    - p_rx_bd_ring[i]));
    + (u32)qe_muram_dma(ugeth->p_rx_bd_ring[i]));
    }
    /* rest of fields handled by QE */
    }
    --- 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(
    #define qe_muram_free cpm_muram_free
    #define qe_muram_addr cpm_muram_addr
    #define qe_muram_offset cpm_muram_offset
    +#define qe_muram_dma cpm_muram_dma

    #define qe_setbits32(_addr, _v) iowrite32be(ioread32be(_addr) | (_v), (_addr))
    #define qe_clrbits32(_addr, _v) iowrite32be(ioread32be(_addr) & ~(_v), (_addr))

    \
     
     \ /
      Last update: 2018-03-23 11:09    [W:3.079 / U:1.200 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site