On Thu, 2020-04-09 at 17:56 +0200, Rafał Hibner wrote: > [External] > > Move register access after clock initialization. > Clock "s_axi_aclk" is needed for register access. Without the clock running > AXI bus hangs and causes kernel freeze. this patch should have been marked as V2 the easiest way to apply V2 tags, is to run 'git format-patch -v2' [or -v3 for 3rd version] no idea if you need to re-send this; i guess it's up to the maintainer; maybe try to remember this when re-sending patches, each re-send is an increment also, it's a good idea to add a changelog right after the --- line that line doesn't get applied; other than that: Reviewed-by: Alexandru Ardelean <alexandru.ardelean@xxxxxxxxxx> > > Cc: Alexandru Ardelean <alexandru.ardelean@xxxxxxxxxx> > Signed-off-by: Rafał Hibner <rafal.hibner@xxxxxxxxxxxx> > --- so here, something like: Changelog v1 -> v2: * re-send in plain-text format > drivers/spi/spi-axi-spi-engine.c | 32 ++++++++++++++++---------------- > 1 file changed, 16 insertions(+), 16 deletions(-) > > diff --git a/drivers/spi/spi-axi-spi-engine.c b/drivers/spi/spi-axi-spi- > engine.c > index eb9b78a90d..af86e6d6e1 100644 > --- a/drivers/spi/spi-axi-spi-engine.c > +++ b/drivers/spi/spi-axi-spi-engine.c > @@ -489,22 +489,6 @@ static int spi_engine_probe(struct platform_device *pdev) > > spin_lock_init(&spi_engine->lock); > > - spi_engine->base = devm_platform_ioremap_resource(pdev, 0); > - if (IS_ERR(spi_engine->base)) { > - ret = PTR_ERR(spi_engine->base); > - goto err_put_master; > - } > - > - version = readl(spi_engine->base + SPI_ENGINE_REG_VERSION); > - if (SPI_ENGINE_VERSION_MAJOR(version) != 1) { > - dev_err(&pdev->dev, "Unsupported peripheral version %u.%u.%c\n", > - SPI_ENGINE_VERSION_MAJOR(version), > - SPI_ENGINE_VERSION_MINOR(version), > - SPI_ENGINE_VERSION_PATCH(version)); > - ret = -ENODEV; > - goto err_put_master; > - } > - > spi_engine->clk = devm_clk_get(&pdev->dev, "s_axi_aclk"); > if (IS_ERR(spi_engine->clk)) { > ret = PTR_ERR(spi_engine->clk); > @@ -525,6 +509,22 @@ static int spi_engine_probe(struct platform_device *pdev) > if (ret) > goto err_clk_disable; > > + spi_engine->base = devm_platform_ioremap_resource(pdev, 0); > + if (IS_ERR(spi_engine->base)) { > + ret = PTR_ERR(spi_engine->base); > + goto err_ref_clk_disable; > + } > + > + version = readl(spi_engine->base + SPI_ENGINE_REG_VERSION); > + if (SPI_ENGINE_VERSION_MAJOR(version) != 1) { > + dev_err(&pdev->dev, "Unsupported peripheral version %u.%u.%c\n", > + SPI_ENGINE_VERSION_MAJOR(version), > + SPI_ENGINE_VERSION_MINOR(version), > + SPI_ENGINE_VERSION_PATCH(version)); > + ret = -ENODEV; > + goto err_ref_clk_disable; > + } > + > writel_relaxed(0x00, spi_engine->base + SPI_ENGINE_REG_RESET); > writel_relaxed(0xff, spi_engine->base + SPI_ENGINE_REG_INT_PENDING); > writel_relaxed(0x00, spi_engine->base + SPI_ENGINE_REG_INT_ENABLE);