From b2da6c9353090a8aa5cec709ed0d71a113349890 Mon Sep 17 00:00:00 2001 From: Jon Lin Date: Mon, 8 Jan 2024 14:31:03 +0800 Subject: [PATCH] PCI: rockchip: dw-ep: Resize bar after hot reset Change-Id: I079d354422b9e1c4895ac75781e33c924467991d Signed-off-by: Jon Lin --- drivers/pci/controller/dwc/pcie-dw-ep-rockchip.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/pci/controller/dwc/pcie-dw-ep-rockchip.c b/drivers/pci/controller/dwc/pcie-dw-ep-rockchip.c index 1addd6c38875..0628cc52480a 100644 --- a/drivers/pci/controller/dwc/pcie-dw-ep-rockchip.c +++ b/drivers/pci/controller/dwc/pcie-dw-ep-rockchip.c @@ -924,6 +924,10 @@ static void rockchip_pcie_hot_rst_work(struct work_struct *work) u32 status; int ret; + dw_pcie_dbi_ro_wr_en(&rockchip->pci); + rockchip_pcie_resize_bar(rockchip); + dw_pcie_dbi_ro_wr_dis(&rockchip->pci); + if (rockchip_pcie_readl_apb(rockchip, PCIE_CLIENT_HOT_RESET_CTRL) & PCIE_LTSSM_APP_DLY2_EN) { ret = readl_poll_timeout(rockchip->apb_base + PCIE_CLIENT_LTSSM_STATUS, status, ((status & 0x3F) == 0), 100, PCIE_HOTRESET_TMOUT_US);