On Thu, Oct 06, 2022 at 10:35:14AM +0530, Tharun Kumar P wrote: > +static int pci1xxxx_spi_resume(struct device *dev) > +{ > + struct pci1xxxx_spi *spi_ptr = dev_get_drvdata(dev); > + struct pci1xxxx_spi_internal *spi_sub_ptr; > + u32 regval = SPI_RESUME_CONFIG; > + u8 iter; > + > + for (iter = 0; iter < spi_ptr->total_hw_instances; iter++) { > + spi_sub_ptr = spi_ptr->spi_int[iter]; > + spi_master_resume(spi_sub_ptr->spi_host); > + writel(regval, spi_ptr->reg_base + > + SPI_MST_EVENT_MASK_REG_OFFSET(iter)); > + > + /* Restore config at resume */ > + store_restore_config(spi_ptr, spi_sub_ptr, iter, 0); > + } > + > + return 0; > +} There should be a call to spi_controller_suspend() in here (and similarly in resume) to tell the controller to stop the queue of operations.
Attachment:
signature.asc
Description: PGP signature