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

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to