CC: [email protected]
CC: [email protected]
TO: Amit Kumar Mahapatra <[email protected]>
CC: Michal Simek <[email protected]>
CC: Naga Sureshkumar Relli <[email protected]>

Hi Amit,

First bad commit (maybe != root cause):

tree:   https://github.com/Xilinx/linux-xlnx xlnx_rebase_v5.10
head:   f6f032f82f0a13def702a0154df535db88f43391
commit: 0ee2a65f834c5d35ad3ce580c4772d9cf7da2937 [1403/1756] spi: 
spi-zynq-qspi: Add dual parallal and stacked support
:::::: branch date: 5 days ago
:::::: commit date: 8 weeks ago
config: x86_64-randconfig-m001-20210718 (attached as .config)
compiler: gcc-10 (Ubuntu 10.3.0-1ubuntu1~20.04) 10.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>
Reported-by: Dan Carpenter <[email protected]>

smatch warnings:
drivers/spi/spi-xilinx.c:848 xilinx_spi_probe() error: uninitialized symbol 
'cs_num'.

vim +/cs_num +848 drivers/spi/spi-xilinx.c

ae918c02d365c8 drivers/spi/xilinx_spi.c Andrei Konovalov     2007-07-17  607  
ae918c02d365c8 drivers/spi/xilinx_spi.c Andrei Konovalov     2007-07-17  608  
/* This driver supports single master mode only. Hence Tx FIFO Empty
ae918c02d365c8 drivers/spi/xilinx_spi.c Andrei Konovalov     2007-07-17  609   
* is the only interrupt we care about.
ae918c02d365c8 drivers/spi/xilinx_spi.c Andrei Konovalov     2007-07-17  610   
* Receive FIFO Overrun, Transmit FIFO Underrun, Mode Fault, and Slave Mode
ae918c02d365c8 drivers/spi/xilinx_spi.c Andrei Konovalov     2007-07-17  611   
* Fault are not to happen.
ae918c02d365c8 drivers/spi/xilinx_spi.c Andrei Konovalov     2007-07-17  612   
*/
ae918c02d365c8 drivers/spi/xilinx_spi.c Andrei Konovalov     2007-07-17  613  
static irqreturn_t xilinx_spi_irq(int irq, void *dev_id)
ae918c02d365c8 drivers/spi/xilinx_spi.c Andrei Konovalov     2007-07-17  614  {
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  615    
struct spi_master *master = dev_id;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  616    
struct xilinx_spi *xspi = spi_master_get_devdata(dev_id);
ae918c02d365c8 drivers/spi/xilinx_spi.c Andrei Konovalov     2007-07-17  617    
u32 ipif_isr;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  618    
irqreturn_t status = IRQ_NONE;
ae918c02d365c8 drivers/spi/xilinx_spi.c Andrei Konovalov     2007-07-17  619  
ae918c02d365c8 drivers/spi/xilinx_spi.c Andrei Konovalov     2007-07-17  620    
/* Get the IPIF interrupts, and clear them immediately */
86fc593599c11b drivers/spi/xilinx_spi.c Richard Röjfors      2009-11-13  621    
ipif_isr = xspi->read_fn(xspi->regs + XIPIF_V123B_IISR_OFFSET);
86fc593599c11b drivers/spi/xilinx_spi.c Richard Röjfors      2009-11-13  622    
xspi->write_fn(ipif_isr, xspi->regs + XIPIF_V123B_IISR_OFFSET);
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  623    
if (ipif_isr & XSPI_INTR_TX_EMPTY)  {
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  624    
        /* Transmission completed */
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  625    
        xspi->rx_fifo(xspi);
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  626    
        if (xspi->bytes_to_transfer) {
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  627    
                /* There is more data to send */
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  628    
                xspi->tx_fifo(xspi);
ae918c02d365c8 drivers/spi/xilinx_spi.c Andrei Konovalov     2007-07-17  629    
        }
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  630    
        status = IRQ_HANDLED;
ae918c02d365c8 drivers/spi/xilinx_spi.c Andrei Konovalov     2007-07-17  631    
}
ae918c02d365c8 drivers/spi/xilinx_spi.c Andrei Konovalov     2007-07-17  632  
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  633    
if (!xspi->bytes_to_receive && !xspi->bytes_to_transfer) {
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  634    
        spi_finalize_current_transfer(master);
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  635    
        /* Disable the interrupts here. */
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  636    
        xspi->write_fn(0x0, xspi->regs + XIPIF_V123B_DGIER_OFFSET);
4c9a761402d780 drivers/spi/spi-xilinx.c Ricardo Ribalda      2015-01-28  637    
}
4c9a761402d780 drivers/spi/spi-xilinx.c Ricardo Ribalda      2015-01-28  638  
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  639    
return status;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  640  }
7cb2abd05fe1f9 drivers/spi/spi-xilinx.c Mark Brown           2013-07-05  641  
static int xilinx_spi_probe(struct platform_device *pdev)
ae918c02d365c8 drivers/spi/xilinx_spi.c Andrei Konovalov     2007-07-17  642  {
ae918c02d365c8 drivers/spi/xilinx_spi.c Andrei Konovalov     2007-07-17  643    
struct xilinx_spi *xspi;
ad3fdbcaf98dc1 drivers/spi/spi-xilinx.c Michal Simek         2013-07-08  644    
struct resource *res;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  645    
int ret;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  646    
u32 num_cs = 0, bits_per_word = 8;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  647    
u32 cs_num;
d81c0bbbf84086 drivers/spi/spi-xilinx.c Mark Brown           2013-07-03  648    
struct spi_master *master;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  649    
struct device_node *nc;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  650    
u32 tmp, rx_bus_width, fifo_size;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  651    
bool startup_block;
d81c0bbbf84086 drivers/spi/spi-xilinx.c Mark Brown           2013-07-03  652  
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  653    
if (of_property_read_u32(pdev->dev.of_node, "num-cs", &num_cs))
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  654    
        dev_info(&pdev->dev,
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  655    
                 "Missing num-cs optional property, assuming default as <1>\n");
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  656    
if (!num_cs)
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  657    
        num_cs = 1;
d81c0bbbf84086 drivers/spi/spi-xilinx.c Mark Brown           2013-07-03  658  
eb25f16c6f4469 drivers/spi/spi-xilinx.c Ricardo Ribalda      2015-01-28  659    
if (num_cs > XILINX_SPI_MAX_CS) {
eb25f16c6f4469 drivers/spi/spi-xilinx.c Ricardo Ribalda      2015-01-28  660    
        dev_err(&pdev->dev, "Invalid number of spi slaves\n");
eb25f16c6f4469 drivers/spi/spi-xilinx.c Ricardo Ribalda      2015-01-28  661    
        return -EINVAL;
eb25f16c6f4469 drivers/spi/spi-xilinx.c Ricardo Ribalda      2015-01-28  662    
}
eb25f16c6f4469 drivers/spi/spi-xilinx.c Ricardo Ribalda      2015-01-28  663  
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  664    
startup_block = of_property_read_bool(pdev->dev.of_node,
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  665    
                                      "xlnx,startup-block");
7cb2abd05fe1f9 drivers/spi/spi-xilinx.c Mark Brown           2013-07-05  666    
master = spi_alloc_master(&pdev->dev, sizeof(struct xilinx_spi));
d5af91a1faca68 drivers/spi/xilinx_spi.c Richard Röjfors      2009-11-13  667    
if (!master)
d81c0bbbf84086 drivers/spi/spi-xilinx.c Mark Brown           2013-07-03  668    
        return -ENODEV;
ae918c02d365c8 drivers/spi/xilinx_spi.c Andrei Konovalov     2007-07-17  669  
ae918c02d365c8 drivers/spi/xilinx_spi.c Andrei Konovalov     2007-07-17  670    
xspi = spi_master_get_devdata(master);
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  671    
master->dev.of_node = pdev->dev.of_node;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  672    
platform_set_drvdata(pdev, master);
ad3fdbcaf98dc1 drivers/spi/spi-xilinx.c Michal Simek         2013-07-08  673    
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
ad3fdbcaf98dc1 drivers/spi/spi-xilinx.c Michal Simek         2013-07-08  674    
xspi->regs = devm_ioremap_resource(&pdev->dev, res);
c40537d008ab1b drivers/spi/spi-xilinx.c Mark Brown           2013-07-01  675    
if (IS_ERR(xspi->regs)) {
c40537d008ab1b drivers/spi/spi-xilinx.c Mark Brown           2013-07-01  676    
        ret = PTR_ERR(xspi->regs);
ae918c02d365c8 drivers/spi/xilinx_spi.c Andrei Konovalov     2007-07-17  677    
        goto put_master;
ae918c02d365c8 drivers/spi/xilinx_spi.c Andrei Konovalov     2007-07-17  678    
}
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  679    
ret = of_property_read_u32(pdev->dev.of_node, "fifo-size",
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  680    
                           &fifo_size);
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  681    
if (ret < 0) {
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  682    
        dev_err(&pdev->dev,
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  683    
                "Missing fifo size\n");
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  684    
        return -EINVAL;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  685    
}
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  686    
if (of_property_read_u32(pdev->dev.of_node, "bits-per-word",
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  687    
                         &bits_per_word))
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  688    
        dev_info(&pdev->dev,
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  689    
                 "Missing bits-per-word optional property, assuming default as 
<8>\n");
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  690  
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  691    
xspi->rx_bus_width = XSPI_ONE_BITS_PER_WORD;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  692    
for_each_available_child_of_node(pdev->dev.of_node, nc) {
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  693    
        if (startup_block) {
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  694    
                ret = of_property_read_u32(nc, "reg",
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  695    
                                           &cs_num);
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  696    
                if (ret < 0)
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  697    
                        return -EINVAL;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  698    
        }
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  699    
        ret = of_property_read_u32(nc, "spi-rx-bus-width",
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  700    
                                   &rx_bus_width);
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  701    
        if (!ret) {
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  702    
                xspi->rx_bus_width = rx_bus_width;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  703    
                break;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  704    
        }
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  705    
}
ae918c02d365c8 drivers/spi/xilinx_spi.c Andrei Konovalov     2007-07-17  706  
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  707    
xspi->axi_clk = devm_clk_get(&pdev->dev, "axi_clk");
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  708    
if (IS_ERR(xspi->axi_clk)) {
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  709    
        if (PTR_ERR(xspi->axi_clk) != -ENOENT) {
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  710    
                ret = PTR_ERR(xspi->axi_clk);
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  711    
                goto put_master;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  712    
        }
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  713  
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  714    
        /*
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  715    
         * Clock framework support is optional, continue on,
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  716    
         * anyways if we don't find a matching clock
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  717    
         */
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  718    
        xspi->axi_clk = NULL;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  719    
}
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  720  
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  721    
ret = clk_prepare(xspi->axi_clk);
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  722    
if (ret) {
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  723    
        dev_err(&pdev->dev, "Failed to prepare AXI clock\n");
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  724    
        goto put_master;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  725    
}
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  726  
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  727    
xspi->axi4_clk = devm_clk_get(&pdev->dev, "axi4_clk");
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  728    
if (IS_ERR(xspi->axi4_clk)) {
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  729    
        if (PTR_ERR(xspi->axi4_clk) != -ENOENT) {
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  730    
                ret = PTR_ERR(xspi->axi4_clk);
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  731    
                goto clk_unprepare_axi_clk;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  732    
        }
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  733  
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  734    
        /*
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  735    
         * Clock framework support is optional, continue on,
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  736    
         * anyways if we don't find a matching clock
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  737    
         */
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  738    
        xspi->axi4_clk = NULL;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  739    
}
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  740  
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  741    
ret = clk_prepare(xspi->axi4_clk);
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  742    
if (ret) {
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  743    
        dev_err(&pdev->dev, "Failed to prepare AXI4 clock\n");
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  744    
        goto clk_unprepare_axi_clk;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  745    
}
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  746  
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  747    
xspi->spi_clk = devm_clk_get(&pdev->dev, "spi_clk");
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  748    
if (IS_ERR(xspi->spi_clk)) {
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  749    
        if (PTR_ERR(xspi->spi_clk) != -ENOENT) {
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  750    
                ret = PTR_ERR(xspi->spi_clk);
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  751    
                goto clk_unprepare_axi4_clk;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  752    
        }
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  753  
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  754    
        /*
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  755    
         * Clock framework support is optional, continue on,
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  756    
         * anyways if we don't find a matching clock
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  757    
         */
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  758    
        xspi->spi_clk = NULL;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  759    
}
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  760  
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  761    
ret = clk_prepare(xspi->spi_clk);
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  762    
if (ret) {
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  763    
        dev_err(&pdev->dev, "Failed to prepare SPI clock\n");
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  764    
        goto clk_unprepare_axi4_clk;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  765    
}
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  766  
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  767    
pm_runtime_set_autosuspend_delay(&pdev->dev, SPI_AUTOSUSPEND_TIMEOUT);
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  768    
pm_runtime_use_autosuspend(&pdev->dev);
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  769    
pm_runtime_enable(&pdev->dev);
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  770    
ret = pm_runtime_get_sync(&pdev->dev);
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  771    
if (ret < 0)
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  772    
        goto clk_unprepare_all;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  773  
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  774    
xspi->dev = &pdev->dev;
082339bc63cccf drivers/spi/spi-xilinx.c Michal Simek         2013-06-04  775  
082339bc63cccf drivers/spi/spi-xilinx.c Michal Simek         2013-06-04  776    
/*
082339bc63cccf drivers/spi/spi-xilinx.c Michal Simek         2013-06-04  777    
 * Detect endianess on the IP via loop bit in CR. Detection
082339bc63cccf drivers/spi/spi-xilinx.c Michal Simek         2013-06-04  778    
 * must be done before reset is sent because incorrect reset
082339bc63cccf drivers/spi/spi-xilinx.c Michal Simek         2013-06-04  779    
 * value generates error interrupt.
082339bc63cccf drivers/spi/spi-xilinx.c Michal Simek         2013-06-04  780    
 * Setup little endian helper functions first and try to use them
082339bc63cccf drivers/spi/spi-xilinx.c Michal Simek         2013-06-04  781    
 * and check if bit was correctly setup or not.
082339bc63cccf drivers/spi/spi-xilinx.c Michal Simek         2013-06-04  782    
 */
0635287a308d38 drivers/spi/spi-xilinx.c Mark Brown           2015-01-30  783    
xspi->read_fn = xspi_read32;
0635287a308d38 drivers/spi/spi-xilinx.c Mark Brown           2015-01-30  784    
xspi->write_fn = xspi_write32;
082339bc63cccf drivers/spi/spi-xilinx.c Michal Simek         2013-06-04  785  
082339bc63cccf drivers/spi/spi-xilinx.c Michal Simek         2013-06-04  786    
xspi->write_fn(XSPI_CR_LOOP, xspi->regs + XSPI_CR_OFFSET);
082339bc63cccf drivers/spi/spi-xilinx.c Michal Simek         2013-06-04  787    
tmp = xspi->read_fn(xspi->regs + XSPI_CR_OFFSET);
082339bc63cccf drivers/spi/spi-xilinx.c Michal Simek         2013-06-04  788    
tmp &= XSPI_CR_LOOP;
082339bc63cccf drivers/spi/spi-xilinx.c Michal Simek         2013-06-04  789    
if (tmp != XSPI_CR_LOOP) {
0635287a308d38 drivers/spi/spi-xilinx.c Mark Brown           2015-01-30  790    
        xspi->read_fn = xspi_read32_be;
0635287a308d38 drivers/spi/spi-xilinx.c Mark Brown           2015-01-30  791    
        xspi->write_fn = xspi_write32_be;
86fc593599c11b drivers/spi/xilinx_spi.c Richard Röjfors      2009-11-13  792    
}
082339bc63cccf drivers/spi/spi-xilinx.c Michal Simek         2013-06-04  793  
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  794    
xspi->buffer_size = fifo_size;
7b3b7432ae7848 drivers/spi/spi-xilinx.c Michal Simek         2013-07-09  795    
xspi->irq = platform_get_irq(pdev, 0);
4db9bf548bb00d drivers/spi/spi-xilinx.c Lars-Peter Clausen   2016-07-15  796    
if (xspi->irq < 0 && xspi->irq != -ENXIO) {
4db9bf548bb00d drivers/spi/spi-xilinx.c Lars-Peter Clausen   2016-07-15  797    
        ret = xspi->irq;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  798    
        goto clk_unprepare_all;
4db9bf548bb00d drivers/spi/spi-xilinx.c Lars-Peter Clausen   2016-07-15  799    
} else if (xspi->irq >= 0) {
ae918c02d365c8 drivers/spi/xilinx_spi.c Andrei Konovalov     2007-07-17  800    
        /* Register for SPI Interrupt */
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  801    
        ret = devm_request_irq(&pdev->dev, xspi->irq, xilinx_spi_irq,
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  802    
                               0, dev_name(&pdev->dev), master);
d5af91a1faca68 drivers/spi/xilinx_spi.c Richard Röjfors      2009-11-13  803    
        if (ret)
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  804    
                goto clk_unprepare_all;
5fe11cc09ce81b drivers/spi/spi-xilinx.c Ricardo Ribalda      2015-01-28  805    
}
5fe11cc09ce81b drivers/spi/spi-xilinx.c Ricardo Ribalda      2015-01-28  806  
5fe11cc09ce81b drivers/spi/spi-xilinx.c Ricardo Ribalda      2015-01-28  807    
/* SPI controller initializations */
5fe11cc09ce81b drivers/spi/spi-xilinx.c Ricardo Ribalda      2015-01-28  808    
xspi_init_hw(xspi);
ae918c02d365c8 drivers/spi/xilinx_spi.c Andrei Konovalov     2007-07-17  809  
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  810    
pm_runtime_put(&pdev->dev);
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  811  
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  812    
master->bus_num = pdev->id;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  813    
master->num_chipselect = num_cs;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  814    
master->setup = xspi_setup;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  815    
master->set_cs = xspi_chipselect;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  816    
master->transfer_one = xspi_start_transfer;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  817    
master->prepare_transfer_hardware = xspi_prepare_transfer_hardware;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  818    
master->unprepare_transfer_hardware = xspi_unprepare_transfer_hardware;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  819    
master->bits_per_word_mask = SPI_BPW_MASK(8);
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  820    
master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  821  
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  822    
xspi->bytes_per_word = bits_per_word / 8;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  823    
xspi->tx_fifo = xspi_fill_tx_fifo_8;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  824    
xspi->rx_fifo = xspi_read_rx_fifo_8;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  825    
if (xspi->rx_bus_width == XSPI_RX_ONE_WIRE) {
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  826    
        if (xspi->bytes_per_word == XSPI_TWO_BITS_PER_WORD) {
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  827    
                xspi->tx_fifo = xspi_fill_tx_fifo_16;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  828    
                xspi->rx_fifo = xspi_read_rx_fifo_16;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  829    
        } else if (xspi->bytes_per_word == XSPI_FOUR_BITS_PER_WORD) {
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  830    
                xspi->tx_fifo = xspi_fill_tx_fifo_32;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  831    
                xspi->rx_fifo = xspi_read_rx_fifo_32;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  832    
        }
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  833    
} else if (xspi->rx_bus_width == XSPI_RX_FOUR_WIRE) {
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  834    
        master->mode_bits |= SPI_TX_QUAD | SPI_RX_QUAD;
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  835    
} else {
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  836    
        dev_err(&pdev->dev, "Dual Mode not supported\n");
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  837    
        goto clk_unprepare_all;
ae918c02d365c8 drivers/spi/xilinx_spi.c Andrei Konovalov     2007-07-17  838    
}
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  839    
xspi->cs_inactive = 0xffffffff;
ae918c02d365c8 drivers/spi/xilinx_spi.c Andrei Konovalov     2007-07-17  840  
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  841    
/*
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  842    
 * This is the work around for the startup block issue in
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  843    
 * the spi controller. SPI clock is passing through STARTUP
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  844    
 * block to FLASH. STARTUP block don't provide clock as soon
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  845    
 * as QSPI provides command. So first command fails.
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  846    
 */
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  847    
if (startup_block)
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26 @848    
        xilinx_spi_startup_block(xspi, cs_num);
8fd8821b62397f drivers/spi/xilinx_spi.c Grant Likely         2010-10-14  849  
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  850    
ret = spi_register_master(master);
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  851    
if (ret) {
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  852    
        dev_err(&pdev->dev, "spi_register_master failed\n");
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  853    
        goto clk_unprepare_all;
eae6cb31d890e2 drivers/spi/xilinx_spi.c Grant Likely         2010-10-14  854    
}
eae6cb31d890e2 drivers/spi/xilinx_spi.c Grant Likely         2010-10-14  855  
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  856    
return ret;
eae6cb31d890e2 drivers/spi/xilinx_spi.c Grant Likely         2010-10-14  857  
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  858  
clk_unprepare_all:
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  859    
pm_runtime_disable(&pdev->dev);
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  860    
pm_runtime_set_suspended(&pdev->dev);
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  861    
clk_unprepare(xspi->spi_clk);
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  862  
clk_unprepare_axi4_clk:
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  863    
clk_unprepare(xspi->axi4_clk);
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  864  
clk_unprepare_axi_clk:
14b43d6a7f3c4f drivers/spi/spi-xilinx.c Amit Kumar Mahapatra 2020-01-26  865    
clk_unprepare(xspi->axi_clk);
ae918c02d365c8 drivers/spi/xilinx_spi.c Andrei Konovalov     2007-07-17  866  
put_master:
ae918c02d365c8 drivers/spi/xilinx_spi.c Andrei Konovalov     2007-07-17  867    
spi_master_put(master);
eae6cb31d890e2 drivers/spi/xilinx_spi.c Grant Likely         2010-10-14  868  
d81c0bbbf84086 drivers/spi/spi-xilinx.c Mark Brown           2013-07-03  869    
return ret;
eae6cb31d890e2 drivers/spi/xilinx_spi.c Grant Likely         2010-10-14  870  }
eae6cb31d890e2 drivers/spi/xilinx_spi.c Grant Likely         2010-10-14  871  

:::::: The code at line 848 was first introduced by commit
:::::: 14b43d6a7f3c4f09ad4a2eab1dd20df757c07154 spi: spi-xilinx: Updated 
axi-qspi controller driver

:::::: TO: Amit Kumar Mahapatra <[email protected]>
:::::: CC: Michal Simek <[email protected]>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to