1. 18 7月, 2015 8 次提交
  2. 17 7月, 2015 27 次提交
  3. 16 7月, 2015 5 次提交
    • M
      blk-mq: set default timeout as 30 seconds · e56f698b
      Ming Lei 提交于
      It is reasonable to set default timeout of request as 30 seconds instead of
      30000 ticks, which may be 300 seconds if HZ is 100, for example, some arm64
      based systems may choose 100 HZ.
      Signed-off-by: NMing Lei <ming.lei@canonical.com>
      Fixes: c76cbbcf ("blk-mq: put blk_queue_rq_timeout together in blk_mq_init_queue()"
      Signed-off-by: NJens Axboe <axboe@fb.com>
      e56f698b
    • G
      gpio: pca953x: fix nested irqs rescheduling · fdd50409
      Grygorii Strashko 提交于
      pca953x interrupt controller functionality is implemented using
      nested threaded IRQs which require parent_irq to be configured
      properly otherwise below warning can be seen if IRQ core
      will try re-schedule nested IRQ:
      
      ------------[ cut here ]------------
      WARNING: CPU: 1 PID: 12 at kernel/irq/manage.c:696 irq_nested_primary_handler+0x30/0x38()
      Primary handler called for nested irq 301
      Modules linked in: uinput ipv6 smsc95xx usbnet mii imx2_wdt etnaviv(C) matrix_keypad matrix_keymap ar1021_i2c
      CPU: 1 PID: 12 Comm: ksoftirqd/1 Tainted: G        WC    4.1.1 #9
      Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree)
      Backtrace:
      [<c0013298>] (dump_backtrace) from [<c0013488>] (show_stack+0x20/0x24)
      [<c0013468>] (show_stack) from [<c05743c4>] (dump_stack+0x70/0xc0)
      [<c0574354>] (dump_stack) from [<c002b7b8>] (warn_slowpath_common+0x88/0xc0)
      [<c002b730>] (warn_slowpath_common) from [<c002b8ac>] (warn_slowpath_fmt+0x40/0x48)
      [<c002b870>] (warn_slowpath_fmt) from [<c0075798>] (irq_nested_primary_handler+0x30/0x38)
      [<c0075768>] (irq_nested_primary_handler) from [<c0075200>] (handle_irq_event_percpu+0x70/0x2d0)
      [<c0075190>] (handle_irq_event_percpu) from [<c00754ac>] (handle_irq_event+0x4c/0x6c)
      [<c0075460>] (handle_irq_event) from [<c0078204>] (handle_simple_irq+0xa4/0xc8)
      [<c0078160>] (handle_simple_irq) from [<c0077cd4>] (resend_irqs+0x50/0x7c)
      [<c0077c84>] (resend_irqs) from [<c002f99c>] (tasklet_action+0x94/0x140)
      [<c002f908>] (tasklet_action) from [<c002eea8>] (__do_softirq+0xa0/0x3c8)
      [<c002ee08>] (__do_softirq) from [<c002f208>] (run_ksoftirqd+0x38/0x54)
      [<c002f1d0>] (run_ksoftirqd) from [<c004b1e4>] (smpboot_thread_fn+0x1f8/0x2f0)
      [<c004afec>] (smpboot_thread_fn) from [<c0047744>] (kthread+0xe8/0x104)
      [<c004765c>] (kthread) from [<c000fac8>] (ret_from_fork+0x14/0x2c)
      ---[ end trace 96052cda48865769 ]---
      
      The issue was reported and described in details by Lothar Waßmann and
      Christian Gmeiner in https://lkml.org/lkml/2014/9/9/123.
      
      Fix it by adding missed call of gpiochip_set_chained_irqchip()
      so GPIO IRQ chip helpers will set parent_irq for nested IRQs
      properly.
      Reported-by: NLothar Waßmann <LW@KARO-electronics.de>
      Tested-by: NChristian Gmeiner <christian.gmeiner@gmail.com>
      Signed-off-by: NGrygorii Strashko <grygorii.strashko@ti.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      fdd50409
    • G
      gpio: omap: prevent module from being unloaded while in use · c23837ce
      Grygorii Strashko 提交于
      OMAP GPIO driver allowed to be built as loadable module, but it
      doesn't set owner field in GPIO chip structure. As result,
      module_get/put() API is not working and it's possible to unload
      OMAP driver while in use:
      
        omap_gpio 48051000.gpio: REMOVING GPIOCHIP WITH GPIOS STILL REQUESTED
      
      Hence, add missing configuration.
      
      Cc: Tony Lindgren <tony@atomide.com>
      Fixes: cac089f9 ('gpio: omap: Allow building as a loadable module')
      Signed-off-by: NGrygorii Strashko <grygorii.strashko@ti.com>
      Acked-by: NAlexandre Courbot <acourbot@nvidia.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      c23837ce
    • M
      gpio: max732x: Add missing dev reference to gpiochip · 34ab54ed
      Marek Vasut 提交于
      In case the gpiochip doesn't have the .dev field set, as is the case
      in here, it is not possible to reference this device in DT as a GPIO
      controller. A good example of this problem is that gpio-leds can not
      be used when connected to this chip, the gpio-leds driver bails out
      with -EPROBE_DEFER.
      
      Fix this problem by setting the .dev field of the gpio_chip to the
      parent i2c device.
      Signed-off-by: NMarek Vasut <marex@denx.de>
      Cc: Alexandre Courbot <gnurou@gmail.com>
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Cc: Mans Rullgard <mans@mansr.com>
      Cc: Olaf Mandel <o.mandel@menlosystems.com>
      Cc: Semen Protsenko <semen.protsenko@globallogic.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      34ab54ed
    • R
      gpio/xilinx: Use correct address when setting initial values. · 5b2c9121
      Raphaël Teysseyre 提交于
      xgpio_save_regs() is used in this driver to setup the initial
      values of the registers in the hardware.
      
      The relevant registers at that time are:
      0x0 -> channel 0 data (32 bits, one for each GPIO on this channel).
      0x4 -> channel 0 tri, controls in/out status for each GPIO of this channel.
      0x8 -> channel 1 data
      0xC -> channel 1 tri
      
      gpio-xilinx.c defines these:
      XGPIO_DATA_OFFSET   (0x0)
      XGPIO_TRI_OFFSET    (0x4)
      XGPIO_CHANNEL_OFFSET	0x8
      
      Before this patch, the "data" register value of channel 1 was written
      at 0x4 intead of 0x8 (overwriting the channel 0 "tri" register),
      and the "tri" register value for channel 1 was written at 0x8 instead of 0xC.
      Signed-off-by: NRaphaël Teysseyre <rteysseyre@gmail.com>
      Reviewed-by: NMichal Simek <michal.simek@xilinx.com>
      Reviewed-by: NAlexandre Courbot <acourbot@nvidia.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      5b2c9121