diff mbox

linux-next 2017-08-08 keyboard failure on Nokia N900

Message ID 61264d43-eda3-df9d-0c06-28611f373ce7@ti.com (mailing list archive)
State New, archived
Headers show

Commit Message

Grygorii Strashko Aug. 8, 2017, 7:59 p.m. UTC
On 08/08/2017 06:12 AM, Pavel Machek wrote:
> Hi!
> 
>>> I tried today's linux-next. It boots on n900 (up to X), but then my
>>> screen locks and I can't get back. Touchscreen worked, so my guess is
>>> keyboard does not...? Ssh connection over usb still works.
>>
>> Confirmed, its the keyboard.
>>
>> Additionally, battery monitoring fails, because neither
>>
>> /sys/class/power_supply/{n900-,rx51-}battery/voltage_now
>>
>> exists.
> 
> And dmesg is helpful in this case:
> 
> [    0.675201] input: twl4030_pwrbutton as
> /devices/platform/68000000.ocp/48070000.i2c/i2c-1/1-0048/48070000.i2c:twl@48:pwrbutton/input/input1
> [    0.676635] input: TWL4030 Keypad as
> /devices/platform/68000000.ocp/48070000.i2c/i2c-1/1-0048/48070000.i2c:twl@48:keypad/input/input2
> [    0.679138] twl4030_keypad 48070000.i2c:twl@48:keypad: request_irq
> failed for irq no=156: -13
> [    0.679779] twl4030_keypad: probe of 48070000.i2c:twl@48:keypad
> failed with error -13
> [    0.682769] twl4030_madc 48070000.i2c:twl@48:madc: could not
> request irq
> [    0.684051] twl4030_madc: probe of 48070000.i2c:twl@48:madc failed
> with error -13
> [    0.685852] input: twl4030:vibrator as
> /devices/platform/68000000.ocp/48070000.i2c/i2c-1/1-0048/48070000.i2c:twl@48:audio/twl4030-vibra/input/input3
> [    0.768890] omap_i2c 48070000.i2c: bus 1 rev3.3 at 2200 kHz
> 

I've not precisely checked it, but smth is telling me that below 
patch  can cause this:

commit 78daaca78ee57dead0f4aa5ee399f0499e81cd9e
Author: Julia Lawall <Julia.Lawall@lip6.fr>
Date:   Thu May 4 22:10:50 2017 +0200

    mfd: twl4030-irq: Drop unnecessary static
    
    Drop static on a local variable, when the variable is initialized before
    any use, on every possible execution path through the function.

irq_set_chip_and_handler(). 
Ops. And what will happen when twl4030_init_irq() returns ;)

Comments

Julia Lawall Aug. 8, 2017, 8:09 p.m. UTC | #1
On Tue, 8 Aug 2017, Grygorii Strashko wrote:

>
>
> On 08/08/2017 06:12 AM, Pavel Machek wrote:
> > Hi!
> >
> >>> I tried today's linux-next. It boots on n900 (up to X), but then my
> >>> screen locks and I can't get back. Touchscreen worked, so my guess is
> >>> keyboard does not...? Ssh connection over usb still works.
> >>
> >> Confirmed, its the keyboard.
> >>
> >> Additionally, battery monitoring fails, because neither
> >>
> >> /sys/class/power_supply/{n900-,rx51-}battery/voltage_now
> >>
> >> exists.
> >
> > And dmesg is helpful in this case:
> >
> > [    0.675201] input: twl4030_pwrbutton as
> > /devices/platform/68000000.ocp/48070000.i2c/i2c-1/1-0048/48070000.i2c:twl@48:pwrbutton/input/input1
> > [    0.676635] input: TWL4030 Keypad as
> > /devices/platform/68000000.ocp/48070000.i2c/i2c-1/1-0048/48070000.i2c:twl@48:keypad/input/input2
> > [    0.679138] twl4030_keypad 48070000.i2c:twl@48:keypad: request_irq
> > failed for irq no=156: -13
> > [    0.679779] twl4030_keypad: probe of 48070000.i2c:twl@48:keypad
> > failed with error -13
> > [    0.682769] twl4030_madc 48070000.i2c:twl@48:madc: could not
> > request irq
> > [    0.684051] twl4030_madc: probe of 48070000.i2c:twl@48:madc failed
> > with error -13
> > [    0.685852] input: twl4030:vibrator as
> > /devices/platform/68000000.ocp/48070000.i2c/i2c-1/1-0048/48070000.i2c:twl@48:audio/twl4030-vibra/input/input3
> > [    0.768890] omap_i2c 48070000.i2c: bus 1 rev3.3 at 2200 kHz
> >
>
> I've not precisely checked it, but smth is telling me that below
> patch  can cause this:
>
> commit 78daaca78ee57dead0f4aa5ee399f0499e81cd9e
> Author: Julia Lawall <Julia.Lawall@lip6.fr>
> Date:   Thu May 4 22:10:50 2017 +0200
>
>     mfd: twl4030-irq: Drop unnecessary static
>
>     Drop static on a local variable, when the variable is initialized before
>     any use, on every possible execution path through the function.
>
> --- a/drivers/mfd/twl4030-irq.c
> +++ b/drivers/mfd/twl4030-irq.c
> @@ -685,7 +685,7 @@ int twl4030_sih_setup(struct device *dev, int module, int irq_base)
>
>  int twl4030_init_irq(struct device *dev, int irq_num)
>  {
> -       static struct irq_chip  twl4030_irq_chip;
> +       struct irq_chip twl4030_irq_chip;
>
>
> but if we will look at code - it can be seen that this variable is passed by reference to
> irq_set_chip_and_handler().
> Ops. And what will happen when twl4030_init_irq() returns ;)

The patch is not correct as was already noted when it was submitted:

https://lkml.org/lkml/2017/7/15/169
https://lkml.org/lkml/2017/7/15/171

Do you need a patch reverting this one?

julia
Grygorii Strashko Aug. 8, 2017, 8:15 p.m. UTC | #2
On 08/08/2017 03:09 PM, Julia Lawall wrote:
> 
> 
> On Tue, 8 Aug 2017, Grygorii Strashko wrote:
> 
>>
>>
>> On 08/08/2017 06:12 AM, Pavel Machek wrote:
>>> Hi!
>>>
>>>>> I tried today's linux-next. It boots on n900 (up to X), but then my
>>>>> screen locks and I can't get back. Touchscreen worked, so my guess is
>>>>> keyboard does not...? Ssh connection over usb still works.
>>>>
>>>> Confirmed, its the keyboard.
>>>>
>>>> Additionally, battery monitoring fails, because neither
>>>>
>>>> /sys/class/power_supply/{n900-,rx51-}battery/voltage_now
>>>>
>>>> exists.
>>>
>>> And dmesg is helpful in this case:
>>>
>>> [    0.675201] input: twl4030_pwrbutton as
>>> /devices/platform/68000000.ocp/48070000.i2c/i2c-1/1-0048/48070000.i2c:twl@48:pwrbutton/input/input1
>>> [    0.676635] input: TWL4030 Keypad as
>>> /devices/platform/68000000.ocp/48070000.i2c/i2c-1/1-0048/48070000.i2c:twl@48:keypad/input/input2
>>> [    0.679138] twl4030_keypad 48070000.i2c:twl@48:keypad: request_irq
>>> failed for irq no=156: -13
>>> [    0.679779] twl4030_keypad: probe of 48070000.i2c:twl@48:keypad
>>> failed with error -13
>>> [    0.682769] twl4030_madc 48070000.i2c:twl@48:madc: could not
>>> request irq
>>> [    0.684051] twl4030_madc: probe of 48070000.i2c:twl@48:madc failed
>>> with error -13
>>> [    0.685852] input: twl4030:vibrator as
>>> /devices/platform/68000000.ocp/48070000.i2c/i2c-1/1-0048/48070000.i2c:twl@48:audio/twl4030-vibra/input/input3
>>> [    0.768890] omap_i2c 48070000.i2c: bus 1 rev3.3 at 2200 kHz
>>>
>>
>> I've not precisely checked it, but smth is telling me that below
>> patch  can cause this:
>>
>> commit 78daaca78ee57dead0f4aa5ee399f0499e81cd9e
>> Author: Julia Lawall <Julia.Lawall@lip6.fr>
>> Date:   Thu May 4 22:10:50 2017 +0200
>>
>>      mfd: twl4030-irq: Drop unnecessary static
>>
>>      Drop static on a local variable, when the variable is initialized before
>>      any use, on every possible execution path through the function.
>>
>> --- a/drivers/mfd/twl4030-irq.c
>> +++ b/drivers/mfd/twl4030-irq.c
>> @@ -685,7 +685,7 @@ int twl4030_sih_setup(struct device *dev, int module, int irq_base)
>>
>>   int twl4030_init_irq(struct device *dev, int irq_num)
>>   {
>> -       static struct irq_chip  twl4030_irq_chip;
>> +       struct irq_chip twl4030_irq_chip;
>>
>>
>> but if we will look at code - it can be seen that this variable is passed by reference to
>> irq_set_chip_and_handler().
>> Ops. And what will happen when twl4030_init_irq() returns ;)
> 
> The patch is not correct as was already noted when it was submitted:
> 
> https://lkml.org/lkml/2017/7/15/169
> https://lkml.org/lkml/2017/7/15/171
> 
> Do you need a patch reverting this one?

Hm. This one is in linux-next, but shouldn't. Right?

  git log --oneline  -10 linux-next/master
c0b96db Add linux-next specific files for 20170808

git log --oneline  linux-next/master | grep "Drop unnecessary static"
78daaca mfd: twl4030-irq: Drop unnecessary static
Julia Lawall Aug. 8, 2017, 8:30 p.m. UTC | #3
On Tue, 8 Aug 2017, Grygorii Strashko wrote:

>
>
> On 08/08/2017 03:09 PM, Julia Lawall wrote:
> >
> >
> > On Tue, 8 Aug 2017, Grygorii Strashko wrote:
> >
> > >
> > >
> > > On 08/08/2017 06:12 AM, Pavel Machek wrote:
> > > > Hi!
> > > >
> > > > > > I tried today's linux-next. It boots on n900 (up to X), but then my
> > > > > > screen locks and I can't get back. Touchscreen worked, so my guess
> > > > > > is
> > > > > > keyboard does not...? Ssh connection over usb still works.
> > > > >
> > > > > Confirmed, its the keyboard.
> > > > >
> > > > > Additionally, battery monitoring fails, because neither
> > > > >
> > > > > /sys/class/power_supply/{n900-,rx51-}battery/voltage_now
> > > > >
> > > > > exists.
> > > >
> > > > And dmesg is helpful in this case:
> > > >
> > > > [    0.675201] input: twl4030_pwrbutton as
> > > > /devices/platform/68000000.ocp/48070000.i2c/i2c-1/1-0048/48070000.i2c:twl@48:pwrbutton/input/input1
> > > > [    0.676635] input: TWL4030 Keypad as
> > > > /devices/platform/68000000.ocp/48070000.i2c/i2c-1/1-0048/48070000.i2c:twl@48:keypad/input/input2
> > > > [    0.679138] twl4030_keypad 48070000.i2c:twl@48:keypad: request_irq
> > > > failed for irq no=156: -13
> > > > [    0.679779] twl4030_keypad: probe of 48070000.i2c:twl@48:keypad
> > > > failed with error -13
> > > > [    0.682769] twl4030_madc 48070000.i2c:twl@48:madc: could not
> > > > request irq
> > > > [    0.684051] twl4030_madc: probe of 48070000.i2c:twl@48:madc failed
> > > > with error -13
> > > > [    0.685852] input: twl4030:vibrator as
> > > > /devices/platform/68000000.ocp/48070000.i2c/i2c-1/1-0048/48070000.i2c:twl@48:audio/twl4030-vibra/input/input3
> > > > [    0.768890] omap_i2c 48070000.i2c: bus 1 rev3.3 at 2200 kHz
> > > >
> > >
> > > I've not precisely checked it, but smth is telling me that below
> > > patch  can cause this:
> > >
> > > commit 78daaca78ee57dead0f4aa5ee399f0499e81cd9e
> > > Author: Julia Lawall <Julia.Lawall@lip6.fr>
> > > Date:   Thu May 4 22:10:50 2017 +0200
> > >
> > >      mfd: twl4030-irq: Drop unnecessary static
> > >
> > >      Drop static on a local variable, when the variable is initialized
> > > before
> > >      any use, on every possible execution path through the function.
> > >
> > > --- a/drivers/mfd/twl4030-irq.c
> > > +++ b/drivers/mfd/twl4030-irq.c
> > > @@ -685,7 +685,7 @@ int twl4030_sih_setup(struct device *dev, int module,
> > > int irq_base)
> > >
> > >   int twl4030_init_irq(struct device *dev, int irq_num)
> > >   {
> > > -       static struct irq_chip  twl4030_irq_chip;
> > > +       struct irq_chip twl4030_irq_chip;
> > >
> > >
> > > but if we will look at code - it can be seen that this variable is passed
> > > by reference to
> > > irq_set_chip_and_handler().
> > > Ops. And what will happen when twl4030_init_irq() returns ;)
> >
> > The patch is not correct as was already noted when it was submitted:
> >
> > https://lkml.org/lkml/2017/7/15/169
> > https://lkml.org/lkml/2017/7/15/171
> >
> > Do you need a patch reverting this one?
>
> Hm. This one is in linux-next, but shouldn't. Right?
>
>  git log --oneline  -10 linux-next/master
> c0b96db Add linux-next specific files for 20170808
>
> git log --oneline  linux-next/master | grep "Drop unnecessary static"
> 78daaca mfd: twl4030-irq: Drop unnecessary static

OK, it seems like the patch was made twice, the second one was commented
on and the first one was applied.  78daaca should not be there.

julia
Pavel Machek Aug. 8, 2017, 9:44 p.m. UTC | #4
Hi!

> > > > I've not precisely checked it, but smth is telling me that below
> > > > patch  can cause this:
> > > >
> > > > commit 78daaca78ee57dead0f4aa5ee399f0499e81cd9e
...
> > > >      mfd: twl4030-irq: Drop unnecessary static
> > > >
> > > >      Drop static on a local variable, when the variable is initialized
> > > > before
> > > >      any use, on every possible execution path through the function.
> > > >
> > > > --- a/drivers/mfd/twl4030-irq.c
> > > > +++ b/drivers/mfd/twl4030-irq.c
...
> > > >   int twl4030_init_irq(struct device *dev, int irq_num)
> > > >   {
> > > > -       static struct irq_chip  twl4030_irq_chip;
> > > > +       struct irq_chip twl4030_irq_chip;
> > > >
> > > >
> > > > but if we will look at code - it can be seen that this variable is passed
> > > > by reference to
> > > > irq_set_chip_and_handler().
> > > > Ops. And what will happen when twl4030_init_irq() returns ;)
> > >
> > > The patch is not correct as was already noted when it was submitted:
..
> > Hm. This one is in linux-next, but shouldn't. Right?
> >
> >  git log --oneline  -10 linux-next/master
> > c0b96db Add linux-next specific files for 20170808
> >
> > git log --oneline  linux-next/master | grep "Drop unnecessary static"
> > 78daaca mfd: twl4030-irq: Drop unnecessary static
> 
> OK, it seems like the patch was made twice, the second one was commented
> on and the first one was applied.  78daaca should not be there.

Lee, it has your sign-off, can you drop the patch from your tree? It
is known bad.

Thanks,
								Pavel
Lee Jones Aug. 9, 2017, 12:45 p.m. UTC | #5
On Tue, 08 Aug 2017, Pavel Machek wrote:

> Hi!
> 
> > > > > I've not precisely checked it, but smth is telling me that below
> > > > > patch  can cause this:
> > > > >
> > > > > commit 78daaca78ee57dead0f4aa5ee399f0499e81cd9e
> ...
> > > > >      mfd: twl4030-irq: Drop unnecessary static
> > > > >
> > > > >      Drop static on a local variable, when the variable is initialized
> > > > > before
> > > > >      any use, on every possible execution path through the function.
> > > > >
> > > > > --- a/drivers/mfd/twl4030-irq.c
> > > > > +++ b/drivers/mfd/twl4030-irq.c
> ...
> > > > >   int twl4030_init_irq(struct device *dev, int irq_num)
> > > > >   {
> > > > > -       static struct irq_chip  twl4030_irq_chip;
> > > > > +       struct irq_chip twl4030_irq_chip;
> > > > >
> > > > >
> > > > > but if we will look at code - it can be seen that this variable is passed
> > > > > by reference to
> > > > > irq_set_chip_and_handler().
> > > > > Ops. And what will happen when twl4030_init_irq() returns ;)
> > > >
> > > > The patch is not correct as was already noted when it was submitted:
> ..
> > > Hm. This one is in linux-next, but shouldn't. Right?
> > >
> > >  git log --oneline  -10 linux-next/master
> > > c0b96db Add linux-next specific files for 20170808
> > >
> > > git log --oneline  linux-next/master | grep "Drop unnecessary static"
> > > 78daaca mfd: twl4030-irq: Drop unnecessary static
> > 
> > OK, it seems like the patch was made twice, the second one was commented
> > on and the first one was applied.  78daaca should not be there.
> 
> Lee, it has your sign-off, can you drop the patch from your tree? It
> is known bad.

Done, thanks.
Pavel Machek Aug. 10, 2017, 5:10 p.m. UTC | #6
Hi!

> >>> I tried today's linux-next. It boots on n900 (up to X), but then my
> >>> screen locks and I can't get back. Touchscreen worked, so my guess is
> >>> keyboard does not...? Ssh connection over usb still works.
> >>
> >> Confirmed, its the keyboard.
> >>
...
> > [    0.682769] twl4030_madc 48070000.i2c:twl@48:madc: could not
> > request irq
> > [    0.684051] twl4030_madc: probe of 48070000.i2c:twl@48:madc failed
> 
> I've not precisely checked it, but smth is telling me that below 
> patch  can cause this:
> 
> commit 78daaca78ee57dead0f4aa5ee399f0499e81cd9e
...
>  int twl4030_init_irq(struct device *dev, int irq_num)
>  {
> -       static struct irq_chip  twl4030_irq_chip;
> +       struct irq_chip twl4030_irq_chip;
> 
> 
> but if we will look at code - it can be seen that this variable is passed by reference to
> irq_set_chip_and_handler(). 
> Ops. And what will happen when twl4030_init_irq() returns ;)

Thanks, this would take me a while to figure out. I'm testing
next-..-08-10, which should have this fixed... and yes, it does.

Best regards,
									Pavel
diff mbox

Patch

--- a/drivers/mfd/twl4030-irq.c
+++ b/drivers/mfd/twl4030-irq.c
@@ -685,7 +685,7 @@  int twl4030_sih_setup(struct device *dev, int module, int irq_base)
 
 int twl4030_init_irq(struct device *dev, int irq_num)
 {
-       static struct irq_chip  twl4030_irq_chip;
+       struct irq_chip twl4030_irq_chip;


but if we will look at code - it can be seen that this variable is passed by reference to