On 07/09/2013 04:47 PM, Mark Brown wrote: > On Tue, Jul 09, 2013 at 04:15:13PM +0200, Michal Simek wrote: > >> 4. spi_master_release() >> 5. devres_release() with irq > >> If interrupt happends between 4 and 5 than it can be the problem. >> Do I understand you correctly? > > Yes.
great. > >> If this is problematic case we can disable local and global interrupts >> and add it between 2 and 3 or 3-4. >> /* Disable all the interrupts just in case */ >> xspi->write_fn(0, regs_base + XIPIF_V123B_IIER_OFFSET); >> /* Disable the global IPIF interrupt */ >> xspi->write_fn(0, regs_base + XIPIF_V123B_DGIER_OFFSET); > >> What do you think about this solution? > > That's fine, though if just manually freeing the IRQ works that's also > OK... yeah. >> I have also tried to run one thing with and without this patch >> and the results are below. > >> When I add this irq disable function between 1 and 2 then >> module removing stucks. > > You'll need to wait until the device is quiesced at least if it's > relying on the interrupt to complete operations. > ok. Will send v2 of this patch. Thanks, Michal
signature.asc
Description: OpenPGP digital signature