On Mon, Jun 18, 2018 at 06:21:23PM +0200, Piotr Bugalski wrote: > +static int atmel_qspi_adjust_op_size(struct spi_mem *mem, struct spi_mem_op *op) > +{ > + return 0; > +} If this can be empty should we adjust the callers to allow it to just be omitted? > +static int atmel_qspi_remove(struct platform_device *pdev) > +{ > + struct spi_controller *ctrl = platform_get_drvdata(pdev); > + struct atmel_qspi *aq = spi_controller_get_devdata(ctrl); > + > + qspi_writel(aq, QSPI_CR, QSPI_CR_QSPIDIS); > + clk_disable_unprepare(aq->clk); > + > + spi_unregister_controller(ctrl); > + > + return 0; > +} You should unregister the controller before disabling the hardware, otherwise something could come in and try to start an operation on the controller (or already be running one) while the hardware is disabled which might blow up.