[PATCH] pcf50633 IRQ handler

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


Hi all,

Michael Trimarchi wrote:
> 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
>
>
>
What do you think about the attached patch?

Michael

-------------- next part --------------
A non-text attachment was scrubbed...
Name: keyboard-suspend.patch
Type: text/x-patch
Size: 1366 bytes
Desc: not available
Url : http://lists.openmoko.org/pipermail/openmoko-kernel/attachments/20090114/c6e3dfb3/attachment.bin 


More information about the openmoko-kernel mailing list