]> rtime.felk.cvut.cz Git - zynq/linux.git/commitdiff
spi: zynqmp: Fix for qspi dma when accessing address space beyond 32-bit
authorNaga Sureshkumar Relli <naga.sureshkumar.relli@xilinx.com>
Thu, 26 Apr 2018 10:00:21 +0000 (15:30 +0530)
committerMichal Simek <michal.simek@xilinx.com>
Thu, 26 Apr 2018 14:32:20 +0000 (16:32 +0200)
dma_set_mask should be called before registering to spi_master.
In the current flow dma_set_mask is set to 44 bit but after
registering to spi_master. because of this, qspi dma is not able
to access beyond 32-bit address space. during spi_register_master,
core will do some dma transfers, hence not able to access beyond
32-bit address space.

Signed-off-by: Naga Sureshkumar Relli <naga.sureshkumar.relli@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
drivers/spi/spi-zynqmp-gqspi.c

index f5cfd2cfae0cbf903bb92fe770c30c902743da96..2a82ba184be2b0c61996245a3e8646e81e395018 100644 (file)
@@ -1282,6 +1282,7 @@ static int zynqmp_qspi_probe(struct platform_device *pdev)
        else
                master->num_chipselect = num_cs;
 
+       dma_set_mask(&pdev->dev, DMA_BIT_MASK(44));
        master->setup = zynqmp_qspi_setup;
        master->set_cs = zynqmp_qspi_chipselect;
        master->transfer_one = zynqmp_qspi_start_transfer;
@@ -1302,8 +1303,6 @@ static int zynqmp_qspi_probe(struct platform_device *pdev)
        if (ret)
                goto clk_dis_all;
 
-       dma_set_mask(&pdev->dev, DMA_BIT_MASK(44));
-
        return 0;
 
 clk_dis_all: