From mboxrd@z Thu Jan 1 00:00:00 1970 From: julia.lawall@lip6.fr (Julia Lawall) Date: Tue, 8 Aug 2017 22:09:01 +0200 (CEST) Subject: linux-next 2017-08-08 keyboard failure on Nokia N900 In-Reply-To: <61264d43-eda3-df9d-0c06-28611f373ce7@ti.com> References: <20170808101756.GA12922@amd> <20170808103444.GA18247@amd> <20170808111243.GA20328@amd> <61264d43-eda3-df9d-0c06-28611f373ce7@ti.com> Message-ID: To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org 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 at 48:pwrbutton/input/input1 > > [ 0.676635] input: TWL4030 Keypad as > > /devices/platform/68000000.ocp/48070000.i2c/i2c-1/1-0048/48070000.i2c:twl at 48:keypad/input/input2 > > [ 0.679138] twl4030_keypad 48070000.i2c:twl at 48:keypad: request_irq > > failed for irq no=156: -13 > > [ 0.679779] twl4030_keypad: probe of 48070000.i2c:twl at 48:keypad > > failed with error -13 > > [ 0.682769] twl4030_madc 48070000.i2c:twl at 48:madc: could not > > request irq > > [ 0.684051] twl4030_madc: probe of 48070000.i2c:twl at 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 at 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 > 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