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
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
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
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
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