From 01fb8f20407cacb88d9d7df18f6836bc3a672cc9 Mon Sep 17 00:00:00 2001 From: Weixin Zhou Date: Mon, 29 Jul 2019 14:00:30 +0800 Subject: [PATCH] PCI: rockchip: move the handshake data to the end of 1M Change-Id: Ia5a6587b3ef8de00434496c111bc035a09d4c6e6 Signed-off-by: Simon Xue Signed-off-by: Weixin Zhou --- drivers/pci/host/rockchip-pcie-dma.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/pci/host/rockchip-pcie-dma.c b/drivers/pci/host/rockchip-pcie-dma.c index ba8f86af2b15..d1b8eda2612f 100644 --- a/drivers/pci/host/rockchip-pcie-dma.c +++ b/drivers/pci/host/rockchip-pcie-dma.c @@ -118,9 +118,9 @@ #define PCIE_DMA_WR_BUF_SIZE (PCIE_DMA_BUF_SIZE * PCIE_DMA_BUF_CNT) #define PCIE_DMA_ACK_BASE (PCIE_DMA_RD_BUF_SIZE + PCIE_DMA_WR_BUF_SIZE) -#define PCIE_DMA_SET_DATA_CHECK_POS 0x0 -#define PCIE_DMA_SET_LOCAL_IDX_POS 0x4 -#define PCIE_DMA_SET_BUF_SIZE_POS 0x8 +#define PCIE_DMA_SET_DATA_CHECK_POS (SZ_1M - 0x4) +#define PCIE_DMA_SET_LOCAL_IDX_POS (SZ_1M - 0x8) +#define PCIE_DMA_SET_BUF_SIZE_POS (SZ_1M - 0xc) #define PCIE_DMA_DATA_CHECK 0x12345678 #define PCIE_DMA_DATA_ACK_CHECK 0xdeadbeef @@ -171,6 +171,7 @@ static void rk_pcie_prepare_dma(struct dma_trx_obj *obj, writel(local_idx, virt + PCIE_DMA_SET_LOCAL_IDX_POS); writel(buf_size, virt + PCIE_DMA_SET_BUF_SIZE_POS); + buf_size = SZ_1M; break; case PCIE_DMA_DATA_RCV_ACK: table = obj->table[PCIE_DMA_DATA_RCV_ACK_TABLE_OFFSET + idx]; @@ -306,7 +307,7 @@ static enum hrtimer_restart rk_pcie_scan_timer(struct hrtimer *timer) if (sdv == PCIE_DMA_DATA_CHECK) { if (!need_ack) need_ack = true; - writel(0x0, scan_data_addr); + writel(0x0, scan_data_addr + PCIE_DMA_SET_DATA_CHECK_POS); set_bit(i, &obj->local_read_available); rk_pcie_prepare_dma(obj, idx, 0, 0, 0x4, PCIE_DMA_DATA_RCV_ACK);