[PATCH] pcf50633 IRQ handler

Michael Trimarchi trimarchi at gandalf.sssup.it
Wed Jan 14 11:14:17 CET 2009


Hi all,

Michael Trimarchi wrote:
> Michael Trimarchi wrote:
>> Hi,
>>
>> Balaji Rao wrote:
>>> On Wed, Jan 14, 2009 at 10:05:44AM +0100, Michael Trimarchi wrote:
>>>  
>>>> Hi,
>>>>
>>>>   
>>>>> diff --git a/drivers/mfd/pcf50633-core.c 
>>>>> b/drivers/mfd/pcf50633-core.c
>>>>> index f668b9a..a565542 100644
>>>>> --- a/drivers/mfd/pcf50633-core.c
>>>>> +++ b/drivers/mfd/pcf50633-core.c
>>>>> @@ -428,6 +428,10 @@ static int pcf50633_suspend(struct device 
>>>>> *dev, pm_message_t state)
>>>>>      /* Make sure that an IRQ worker has quit */
>>>>>      cancel_work_sync(&pcf->irq_work);
>>>>>  +    /* Disable irq again, because it could be re-enabled by the 
>>>>> exiting
>>>>> +     * worker we synced above */
>>>>> +    disable_irq(pcf->irq);
>>>>> +
>>>>>      /* Save the masks */
>>>>>      ret = pcf50633_read_block(pcf, PCF50633_REG_INT1M,
>>>>>                  ARRAY_SIZE(pcf->suspend_irq_masks),
>>>>>
>>>>>         
>>>> Sorry but I reverified the problem with me and your patch. I must  
>>>> activate the console on the serial
>>>> during suspend and check what happened :(. I will do it.
>>>>     
>>>
>>> Sure, that will be very helpful. When exactly does panic happen ? 
>>> During
>>> resume ?
>>>
>>> I wonder where was this bug hiding till now..
>>>
>>> Thanks,
>>> Balaji
>>>
>>>   
>> It very simple to reproduce it on my phone. Say android go to the 
>> suspend and press the light button when the display switch off and 
>> the kernel go in panic.
>>
>> But maybe it can be realeted to android/power stuff too. I must have 
>> a console output but I can't for now
>> my torx t6 screwdriver is at the airport security :(. If you can wait 
>> a try to test tommorow :)
>> Michael
>>
>>
>>
> static irqreturn_t neo1973kbd_aux_irq(int irq, void *dev)
> {
>        int *p = NULL;
>
>        /* if you stall inside resume then AUX will force a panic,
>           which in turn forces a dump of the pending syslog */
>
>        if (global_inside_suspend)
>                printk(KERN_ERR "death %d\n", *p); <---- maybe can be 
> this one?
>
> Michael
>
>
>
Can we disabled irq during suspend?

Michael




More information about the openmoko-kernel mailing list