1. 06 2月, 2013 6 次提交
  2. 17 1月, 2013 1 次提交
  3. 16 1月, 2013 3 次提交
  4. 04 1月, 2013 8 次提交
  5. 03 1月, 2013 1 次提交
    • J
      leds: leds-gpio: set devm_gpio_request_one() flags param correctly · 2d7c22f6
      Javier Martinez Canillas 提交于
      commit a99d76f9 leds: leds-gpio: use gpio_request_one
      
      changed the leds-gpio driver to use gpio_request_one() instead
      of gpio_request() + gpio_direction_output()
      
      Unfortunately, it also made a semantic change that breaks the
      leds-gpio driver.
      
      The gpio_request_one() flags parameter was set to:
      
      GPIOF_DIR_OUT | (led_dat->active_low ^ state)
      
      Since GPIOF_DIR_OUT is 0, the final flags value will just be the
      XOR'ed value of led_dat->active_low and state.
      
      This value were used to distinguish between HIGH/LOW output initial
      level and call gpio_direction_output() accordingly.
      
      With this new semantic gpio_request_one() will take the flags value
      of 1 as a configuration of input direction (GPIOF_DIR_IN) and will
      call gpio_direction_input() instead of gpio_direction_output().
      
      int gpio_request_one(unsigned gpio, unsigned long flags, const char *label)
      {
      ..
      	if (flags & GPIOF_DIR_IN)
      		err = gpio_direction_input(gpio);
      	else
      		err = gpio_direction_output(gpio,
      				(flags & GPIOF_INIT_HIGH) ? 1 : 0);
      ..
      }
      
      The right semantic is to evaluate led_dat->active_low ^ state and
      set the output initial level explicitly.
      Signed-off-by: NJavier Martinez Canillas <javier.martinez@collabora.co.uk>
      Reported-by: NArnaud Patard <arnaud.patard@rtp-net.org>
      Tested-by: NEzequiel Garcia <ezequiel.garcia@free-electrons.com>
      Signed-off-by: NBryan Wu <cooloney@gmail.com>
      2d7c22f6
  6. 02 1月, 2013 4 次提交
  7. 30 12月, 2012 7 次提交
  8. 27 12月, 2012 6 次提交
  9. 26 12月, 2012 4 次提交
    • F
      pinctrl: nomadik: return if prcm_base is NULL · 4ca075de
      Fabio Baltieri 提交于
      This patch adds a check for npct->prcm_base to make sure that the
      address is not NULL before using it, as the driver was made capable of
      loading even without a proper memory resource in:
      
      f1671bf5 pinctrl/nomadik: make independent of prcmu driver
      
      Also, refuses to probe without prcm_base on anything else than nomadik.
      
      This solves the following crash, introduced during the merge window when
      booting on U8500 with device tree:
      
      pinctrl-nomadik pinctrl-db8500: No PRCM base, assume no ALT-Cx control is available
      Unable to handle kernel NULL pointer dereference at virtual address 00000138
      pgd = c0004000
      [00000138] *pgd=00000000
      Internal error: Oops: 5 [#1] PREEMPT SMP ARM
      Modules linked in:
      CPU: 0    Not tainted  (3.7.0-02892-g1ebaf4f4 #631)
      PC is at nmk_pmx_enable+0x1bc/0x4d0
      LR is at clk_disable+0x40/0x44
      [snip]
      [<c01d5e50>] (nmk_pmx_enable+0x1bc/0x4d0) from [<c01d3ba8>] (pinmux_enable_setting+0x12c/0x1ec)
      [<c01d3ba8>] (pinmux_enable_setting+0x12c/0x1ec) from [<c01d1dc8>] (pinctrl_select_state_locked+0xfc/0x134)
      [<c01d1dc8>] (pinctrl_select_state_locked+0xfc/0x134) from [<c01d2814>] (pinctrl_register+0x26c/0x43c)
      [<c01d2814>] (pinctrl_register+0x26c/0x43c) from [<c01d668c>] (nmk_pinctrl_probe+0x114/0x238)
      [<c01d668c>] (nmk_pinctrl_probe+0x114/0x238) from [<c0211cc4>] (platform_drv_probe+0x28/0x2c)
      [<c0211cc4>] (platform_drv_probe+0x28/0x2c) from [<c0210738>] (driver_probe_device+0x84/0x21c)
      [<c0210738>] (driver_probe_device+0x84/0x21c) from [<c02109c0>] (__device_attach+0x50/0x54)
      [<c02109c0>] (__device_attach+0x50/0x54) from [<c020eb1c>] (bus_for_each_drv+0x54/0x9c)
      [<c020eb1c>] (bus_for_each_drv+0x54/0x9c) from [<c0210668>] (device_attach+0x84/0x9c)
      [<c0210668>] (device_attach+0x84/0x9c) from [<c020fbac>] (bus_probe_device+0x94/0xb8)
      [<c020fbac>] (bus_probe_device+0x94/0xb8) from [<c020e084>] (device_add+0x4f0/0x5bc)
      [<c020e084>] (device_add+0x4f0/0x5bc) from [<c0276400>] (of_device_add+0x40/0x48)
      [<c0276400>] (of_device_add+0x40/0x48) from [<c0276a98>] (of_platform_device_create_pdata+0x68/0x98)
      [<c0276a98>] (of_platform_device_create_pdata+0x68/0x98) from [<c0276bac>] (of_platform_bus_create+0xe4/0x260)
      [<c0276bac>] (of_platform_bus_create+0xe4/0x260) from [<c0276bf8>] (of_platform_bus_create+0x130/0x260)
      [<c0276bf8>] (of_platform_bus_create+0x130/0x260) from [<c0276d94>] (of_platform_populate+0x6c/0xac)
      [<c0276d94>] (of_platform_populate+0x6c/0xac) from [<c04a8224>] (u8500_init_machine+0x78/0x140)
      [<c04a8224>] (u8500_init_machine+0x78/0x140) from [<c04a3560>] (customize_machine+0x24/0x30)
      [<c04a3560>] (customize_machine+0x24/0x30) from [<c00087b0>] (do_one_initcall+0x130/0x1b0)
      [<c00087b0>] (do_one_initcall+0x130/0x1b0) from [<c033ff9c>] (kernel_init+0x138/0x2e8)
      [<c033ff9c>] (kernel_init+0x138/0x2e8) from [<c000eb18>] (ret_from_fork+0x14/0x20)
      Code: 0a00001b e19400b2 e59a200c e0822000 (e592c000)
      ---[ end trace 1b75b31a2719ed1c ]---
      note: swapper/0[1] exited with preempt_count 1
      Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
      Signed-off-by: NFabio Baltieri <fabio.baltieri@linaro.org>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      4ca075de
    • B
      pinctrl: sirf: enable GPIO pullup/down configuration from dts · fc2b04e7
      Barry Song 提交于
      commit 7bec2074 remove sirfsoc_gpio_set_pull function,
      this patches takes the feature back by adding sirf,pullups and
      sirf,pulldowns prop in dts, and the driver will set the GPIO
      pull according to the dts.
      
      Cc: Arnd Bergmann <arnd@arndb.de>
      Signed-off-by: NBarry Song <Baohua.Song@csr.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      fc2b04e7
    • L
      pinctrl: fix comment mistake · b0666ba4
      Linus Walleij 提交于
      This variable pertains to pinctrl handles not muxes
      specifically.
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      b0666ba4
    • J
      drivers/pinctrl/pinctrl-at91.c: convert kfree to devm_kfree · c62b2b34
      Julia Lawall 提交于
      The function at91_dt_node_to_map is ultimately called by the function
      pinctrl_get, which is an exported function.  Since it is possible that this
      function is not called from within a probe function, for safety, the kfree
      is converted to a devm_kfree, to both free the data and remove it from the
      device in a failure situation.
      Acked-by: NJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
      Signed-off-by: NJulia Lawall <Julia.Lawall@lip6.fr>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      c62b2b34