Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Input: gpio_keys - use of_property_read_u32()

Use the of_property_read_u32() helper function to retrieve 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>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

authored by

Tobias Klauser and committed by
Dmitry Torokhov
cca84699 c3a01ba9

+13 -11
+13 -11
drivers/input/keyboard/gpio_keys.c
··· 461 461 struct device_node *node, *pp; 462 462 int i; 463 463 struct gpio_keys_button *buttons; 464 - const u32 *reg; 465 - int len; 464 + u32 reg; 466 465 467 466 node = dev->of_node; 468 467 if (node == NULL) ··· 469 470 470 471 memset(pdata, 0, sizeof *pdata); 471 472 472 - pdata->rep = !!of_get_property(node, "autorepeat", &len); 473 + pdata->rep = !!of_get_property(node, "autorepeat", NULL); 473 474 474 475 /* First count the subnodes */ 475 476 pdata->nbuttons = 0; ··· 497 498 buttons[i].gpio = of_get_gpio_flags(pp, 0, &flags); 498 499 buttons[i].active_low = flags & OF_GPIO_ACTIVE_LOW; 499 500 500 - reg = of_get_property(pp, "linux,code", &len); 501 - if (!reg) { 501 + if (of_property_read_u32(pp, "linux,code", &reg)) { 502 502 dev_err(dev, "Button without keycode: 0x%x\n", buttons[i].gpio); 503 503 goto out_fail; 504 504 } 505 - buttons[i].code = be32_to_cpup(reg); 505 + buttons[i].code = reg; 506 506 507 - buttons[i].desc = of_get_property(pp, "label", &len); 507 + buttons[i].desc = of_get_property(pp, "label", NULL); 508 508 509 - reg = of_get_property(pp, "linux,input-type", &len); 510 - buttons[i].type = reg ? be32_to_cpup(reg) : EV_KEY; 509 + if (of_property_read_u32(pp, "linux,input-type", &reg) == 0) 510 + buttons[i].type = reg; 511 + else 512 + buttons[i].type = EV_KEY; 511 513 512 514 buttons[i].wakeup = !!of_get_property(pp, "gpio-key,wakeup", NULL); 513 515 514 - reg = of_get_property(pp, "debounce-interval", &len); 515 - buttons[i].debounce_interval = reg ? be32_to_cpup(reg) : 5; 516 + if (of_property_read_u32(pp, "debounce-interval", &reg) == 0) 517 + buttons[i].debounce_interval = reg; 518 + else 519 + buttons[i].debounce_interval = 5; 516 520 517 521 i++; 518 522 }