Use the of_property_read_u32 helper function to retreive u32 values
from the device tree. Also do not pass the len parameter to
of_get_property if it isn't checked afterwards.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
---
drivers/input/keyboard/gpio_keys.c | 22 ++++++++++++----------
1 files changed, 12 insertions(+), 10 deletions(-)
@@ -462,7 +462,6 @@ static int gpio_keys_get_devtree_pdata(struct device *dev,inti;structgpio_keys_button*buttons;constu32*reg;-intlen;node=dev->of_node;if(node==NULL)
@@ -470,7 +469,7 @@ static int gpio_keys_get_devtree_pdata(struct device *dev,memset(pdata,0,sizeof*pdata);-pdata->rep=!!of_get_property(node,"autorepeat",&len);+pdata->rep=!!of_get_property(node,"autorepeat",NULL);/* First count the subnodes */pdata->nbuttons=0;
@@ -498,22 +497,25 @@ static int gpio_keys_get_devtree_pdata(struct device *dev,buttons[i].gpio=of_get_gpio_flags(pp,0,&flags);buttons[i].active_low=flags&OF_GPIO_ACTIVE_LOW;-reg=of_get_property(pp,"linux,code",&len);-if(!reg){+if(of_property_read_u32(pp,"linux,code",®))dev_err(dev,"Button without keycode: 0x%x\n",buttons[i].gpio);gotoout_fail;}-buttons[i].code=be32_to_cpup(reg);+buttons[i].code=reg;-buttons[i].desc=of_get_property(pp,"label",&len);+buttons[i].desc=of_get_property(pp,"label",NULL);-reg=of_get_property(pp,"linux,input-type",&len);-buttons[i].type=reg?be32_to_cpup(reg):EV_KEY;+if(of_property_read_u32(pp,"linux,input-type",®)==0)+buttons[i].type=reg;+else+buttons[i].type=EV_KEY;buttons[i].wakeup=!!of_get_property(pp,"gpio-key,wakeup",NULL);-reg=of_get_property(pp,"debounce-interval",&len);-buttons[i].debounce_interval=reg?be32_to_cpup(reg):5;+if(of_property_read_u32(pp,"debounce-interval",®)==0)+buttons[i].debounce_interval=reg;+else+buttons[i].debounce_interval=5;i++;}
On Wed, Aug 31, 2011 at 09:32:25AM +0200, Tobias Klauser wrote:
Use the of_property_read_u32 helper function to retreive u32 values
from the device tree. Also do not pass the len parameter to
of_get_property if it isn't checked afterwards.
Use the of_property_read_u32 helper function to retreive u32 values
from the device tree. Also do not pass the len parameter to
of_get_property if it isn't checked afterwards.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
---
v2: Fix build failure caused by a missing opening brace (reported by
Stephen Rothwell)
drivers/input/keyboard/gpio_keys.c | 22 ++++++++++++----------
1 files changed, 12 insertions(+), 10 deletions(-)
@@ -462,7 +462,6 @@ static int gpio_keys_get_devtree_pdata(struct device *dev,inti;structgpio_keys_button*buttons;constu32*reg;-intlen;node=dev->of_node;if(node==NULL)
@@ -470,7 +469,7 @@ static int gpio_keys_get_devtree_pdata(struct device *dev,memset(pdata,0,sizeof*pdata);-pdata->rep=!!of_get_property(node,"autorepeat",&len);+pdata->rep=!!of_get_property(node,"autorepeat",NULL);/* First count the subnodes */pdata->nbuttons=0;
@@ -498,22 +497,25 @@ static int gpio_keys_get_devtree_pdata(struct device *dev,buttons[i].gpio=of_get_gpio_flags(pp,0,&flags);buttons[i].active_low=flags&OF_GPIO_ACTIVE_LOW;-reg=of_get_property(pp,"linux,code",&len);-if(!reg){+if(of_property_read_u32(pp,"linux,code",®)){dev_err(dev,"Button without keycode: 0x%x\n",buttons[i].gpio);gotoout_fail;}-buttons[i].code=be32_to_cpup(reg);+buttons[i].code=reg;-buttons[i].desc=of_get_property(pp,"label",&len);+buttons[i].desc=of_get_property(pp,"label",NULL);-reg=of_get_property(pp,"linux,input-type",&len);-buttons[i].type=reg?be32_to_cpup(reg):EV_KEY;+if(of_property_read_u32(pp,"linux,input-type",®)==0)+buttons[i].type=reg;+else+buttons[i].type=EV_KEY;buttons[i].wakeup=!!of_get_property(pp,"gpio-key,wakeup",NULL);-reg=of_get_property(pp,"debounce-interval",&len);-buttons[i].debounce_interval=reg?be32_to_cpup(reg):5;+if(of_property_read_u32(pp,"debounce-interval",®)==0)+buttons[i].debounce_interval=reg;+else+buttons[i].debounce_interval=5;i++;}
From: Stephen Rothwell <hidden> Date: 2011-09-20 01:26:32
Hi Tobias,
On Mon, 19 Sep 2011 11:09:51 +0200 Tobias Klauser [off-list ref] wrote:
Use the of_property_read_u32 helper function to retreive u32 values
from the device tree. Also do not pass the len parameter to
of_get_property if it isn't checked afterwards.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
---
v2: Fix build failure caused by a missing opening brace (reported by
Stephen Rothwell)
Sure, but it will still generate all the warnings I reported as "reg" is
the wrong type now.
drivers/input/keyboard/gpio_keys.c: In function 'gpio_keys_get_devtree_pdata':
drivers/input/keyboard/gpio_keys.c:500:3: warning: passing argument 3 of 'of_property_read_u32' from incompatible pointer type
include/linux/of.h:268:19: note: expected 'u32 *' but argument is of type 'const u32 **'
drivers/input/keyboard/gpio_keys.c:504:19: warning: assignment makes integer from pointer without a cast
drivers/input/keyboard/gpio_keys.c:508:3: warning: passing argument 3 of 'of_property_read_u32' from incompatible pointer type
include/linux/of.h:268:19: note: expected 'u32 *' but argument is of type 'const u32 **'
drivers/input/keyboard/gpio_keys.c:509:20: warning: assignment makes integer from pointer without a cast
drivers/input/keyboard/gpio_keys.c:515:3: warning: passing argument 3 of 'of_property_read_u32' from incompatible pointer type
include/linux/of.h:268:19: note: expected 'u32 *' but argument is of type 'const u32 **'
drivers/input/keyboard/gpio_keys.c:516:33: warning: assignment makes integer from pointer without a cast
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/
Use the of_property_read_u32 helper function to retreive u32 values
from the device tree. Also do not pass the len parameter to
of_get_property if it isn't checked afterwards.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
---
v2: Fix build failure caused by a missing opening brace (reported by
Stephen Rothwell)
Sure, but it will still generate all the warnings I reported as "reg" is
the wrong type now.
drivers/input/keyboard/gpio_keys.c: In function 'gpio_keys_get_devtree_pdata':
drivers/input/keyboard/gpio_keys.c:500:3: warning: passing argument 3 of 'of_property_read_u32' from incompatible pointer type
include/linux/of.h:268:19: note: expected 'u32 *' but argument is of type 'const u32 **'
drivers/input/keyboard/gpio_keys.c:504:19: warning: assignment makes integer from pointer without a cast
drivers/input/keyboard/gpio_keys.c:508:3: warning: passing argument 3 of 'of_property_read_u32' from incompatible pointer type
include/linux/of.h:268:19: note: expected 'u32 *' but argument is of type 'const u32 **'
drivers/input/keyboard/gpio_keys.c:509:20: warning: assignment makes integer from pointer without a cast
drivers/input/keyboard/gpio_keys.c:515:3: warning: passing argument 3 of 'of_property_read_u32' from incompatible pointer type
include/linux/of.h:268:19: note: expected 'u32 *' but argument is of type 'const u32 **'
drivers/input/keyboard/gpio_keys.c:516:33: warning: assignment makes integer from pointer without a cast
Stupid me was compiling iwht the wrong .config (which hasn't CONFIG_OF
set) all the time, that's why I never noticed any of the
errors/warnings in the part I actually changed.
Sorry, I'll send another patch, hopefully the final one.
Thanks a lot for your help
Tobias
On Tue, Sep 20, 2011 at 11:26:27AM +1000, Stephen Rothwell wrote:
Hi Tobias,
On Mon, 19 Sep 2011 11:09:51 +0200 Tobias Klauser [off-list ref] wrote:
quoted
Use the of_property_read_u32 helper function to retreive u32 values
from the device tree. Also do not pass the len parameter to
of_get_property if it isn't checked afterwards.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
---
v2: Fix build failure caused by a missing opening brace (reported by
Stephen Rothwell)
Sure, but it will still generate all the warnings I reported as "reg" is
the wrong type now.
drivers/input/keyboard/gpio_keys.c: In function 'gpio_keys_get_devtree_pdata':
drivers/input/keyboard/gpio_keys.c:500:3: warning: passing argument 3 of 'of_property_read_u32' from incompatible pointer type
include/linux/of.h:268:19: note: expected 'u32 *' but argument is of type 'const u32 **'
drivers/input/keyboard/gpio_keys.c:504:19: warning: assignment makes integer from pointer without a cast
drivers/input/keyboard/gpio_keys.c:508:3: warning: passing argument 3 of 'of_property_read_u32' from incompatible pointer type
include/linux/of.h:268:19: note: expected 'u32 *' but argument is of type 'const u32 **'
drivers/input/keyboard/gpio_keys.c:509:20: warning: assignment makes integer from pointer without a cast
drivers/input/keyboard/gpio_keys.c:515:3: warning: passing argument 3 of 'of_property_read_u32' from incompatible pointer type
include/linux/of.h:268:19: note: expected 'u32 *' but argument is of type 'const u32 **'
drivers/input/keyboard/gpio_keys.c:516:33: warning: assignment makes integer from pointer without a cast
I think the following shoudl fix it, I am going to fold it into original
path.
Thanks.
--
Dmitry
Input: gpio-keys - fix compile issues
From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Dmitry Torokhov <redacted>
---
drivers/input/keyboard/gpio_keys.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
Use the of_property_read_u32 helper function to retreive u32 values
from the device tree. Also do not pass the len parameter to
of_get_property if it isn't checked afterwards.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
---
v2: Fix build failure caused by a missing opening brace (reported by
Stephen Rothwell)
Sure, but it will still generate all the warnings I reported as "reg" is
the wrong type now.
drivers/input/keyboard/gpio_keys.c: In function 'gpio_keys_get_devtree_pdata':
drivers/input/keyboard/gpio_keys.c:500:3: warning: passing argument 3 of 'of_property_read_u32' from incompatible pointer type
include/linux/of.h:268:19: note: expected 'u32 *' but argument is of type 'const u32 **'
drivers/input/keyboard/gpio_keys.c:504:19: warning: assignment makes integer from pointer without a cast
drivers/input/keyboard/gpio_keys.c:508:3: warning: passing argument 3 of 'of_property_read_u32' from incompatible pointer type
include/linux/of.h:268:19: note: expected 'u32 *' but argument is of type 'const u32 **'
drivers/input/keyboard/gpio_keys.c:509:20: warning: assignment makes integer from pointer without a cast
drivers/input/keyboard/gpio_keys.c:515:3: warning: passing argument 3 of 'of_property_read_u32' from incompatible pointer type
include/linux/of.h:268:19: note: expected 'u32 *' but argument is of type 'const u32 **'
drivers/input/keyboard/gpio_keys.c:516:33: warning: assignment makes integer from pointer without a cast
I think the following shoudl fix it, I am going to fold it into original
path.
Thanks a lot for fixing this and sorry for the messup.
Thanks
Tobias