From be2e272c83c06c846374918dbcb06f34cd590fa0 Mon Sep 17 00:00:00 2001 From: Simon Xue Date: Fri, 20 Nov 2020 18:03:33 +0800 Subject: [PATCH] PCI: rockchip: fix crash due to CONFIG_ROCKCHIP_PCIE_DMA_OBJ disabled Change-Id: I0d3cd35150276e353fd06e4fa481b71a125f533c Signed-off-by: Simon Xue --- drivers/pci/controller/dwc/pcie-dw-rockchip.c | 8 +++++--- drivers/pci/controller/pcie-rockchip-host.c | 6 ++++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/drivers/pci/controller/dwc/pcie-dw-rockchip.c b/drivers/pci/controller/dwc/pcie-dw-rockchip.c index ce67e8eb3755..82ce9cabbdb8 100644 --- a/drivers/pci/controller/dwc/pcie-dw-rockchip.c +++ b/drivers/pci/controller/dwc/pcie-dw-rockchip.c @@ -1180,12 +1180,14 @@ static int rk_pcie_probe(struct platform_device *pdev) break; } - rk_pcie->dma_obj->start_dma_func = rk_pcie_start_dma_dwc; - rk_pcie->dma_obj->config_dma_func = rk_pcie_config_dma_dwc; - if (ret) goto deinit_clk; + if (rk_pcie->dma_obj) { + rk_pcie->dma_obj->start_dma_func = rk_pcie_start_dma_dwc; + rk_pcie->dma_obj->config_dma_func = rk_pcie_config_dma_dwc; + } + if (rk_pcie->is_rk1808) { /* hold link reset grant after link-up */ ret = rk_pcie_reset_grant_ctrl(rk_pcie, false); diff --git a/drivers/pci/controller/pcie-rockchip-host.c b/drivers/pci/controller/pcie-rockchip-host.c index 4e6ff2ef3376..a0ec98c05c96 100644 --- a/drivers/pci/controller/pcie-rockchip-host.c +++ b/drivers/pci/controller/pcie-rockchip-host.c @@ -1276,8 +1276,10 @@ static int rockchip_pcie_probe(struct platform_device *pdev) goto err_probe_dma; } - rockchip->dma_obj->start_dma_func = rk_pcie_start_dma_rk3399; - rockchip->dma_obj->config_dma_func = rk_pcie_config_dma_rk3399; + if (rockchip->dma_obj) { + rockchip->dma_obj->start_dma_func = rk_pcie_start_dma_rk3399; + rockchip->dma_obj->config_dma_func = rk_pcie_config_dma_rk3399; + } return 0;