Skip to content
Snippets Groups Projects
  1. Sep 16, 2017
  2. Sep 15, 2017
    • Bjorn Helgaas's avatar
      Revert "PCI: Avoid race while enabling upstream bridges" · 0f50a49e
      Bjorn Helgaas authored
      This reverts commit 40f11adc.
      
      Jens found that iwlwifi firmware loading failed on a Lenovo X1 Carbon,
      gen4:
      
        iwlwifi 0000:04:00.0: Direct firmware load for iwlwifi-8000C-34.ucode failed with error -2
        iwlwifi 0000:04:00.0: Direct firmware load for iwlwifi-8000C-33.ucode failed with error -2
        iwlwifi 0000:04:00.0: Direct firmware load for iwlwifi-8000C-32.ucode failed with error -2
        iwlwifi 0000:04:00.0: loaded firmware version 31.532993.0 op_mode iwlmvm
        iwlwifi 0000:04:00.0: Detected Intel(R) Dual Band Wireless AC 8260, REV=0x208
        ...
        iwlwifi 0000:04:00.0: Failed to load firmware chunk!
        iwlwifi 0000:04:00.0: Could not load the [0] uCode section
        iwlwifi 0000:04:00.0: Failed to start INIT ucode: -110
        iwlwifi 0000:04:00.0: Failed to run INIT ucode: -110
      
      He bisected it to 40f11adc ("PCI: Avoid race while enabling upstream
      bridges").  Revert that commit to fix the regression.
      
      Link: http://lkml.kernel.org/r/4bcbcbc1-7c79-09f0-5071-bc2f53bf6574@kernel.dk
      
      
      Fixes: 40f11adc ("PCI: Avoid race while enabling upstream bridges")
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      CC: Srinath Mannam <srinath.mannam@broadcom.com>
      CC: Jens Axboe <axboe@kernel.dk>
      CC: Luca Coelho <luca@coelho.fi>
      CC: Johannes Berg <johannes@sipsolutions.net>
      CC: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
      0f50a49e
  3. Sep 14, 2017
  4. Sep 13, 2017
  5. Sep 12, 2017
    • Daniel Drake's avatar
      pinctrl/amd: save pin registers over suspend/resume · 79d2c8be
      Daniel Drake authored
      
      The touchpad in the Asus laptop models X505BA/BP and X542BA/BP is
      unresponsive after suspend/resume. The following error appears during
      resume:
      
        i2c_hid i2c-ELAN1300:00: failed to reset device.
      
      The problem here is that i2c_hid does not notice the interrupt being
      generated at this point, because the GPIO is no longer configured
      for interrupts.
      
      Fix this by saving pinctrl-amd pin registers during suspend and
      restoring them at resume time.
      
      Based on code from pinctrl-intel.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarDaniel Drake <drake@endlessm.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      79d2c8be
    • Gregory CLEMENT's avatar
      pinctrl: armada-37xx: Fix gpio interrupt setup · a9a1a483
      Gregory CLEMENT authored
      
      Since commit dc749a09 ("gpiolib: allow gpio irqchip to map irqs
      dynamically"), the irqs for gpio are not statically allocated during in
      gpiochip_irqchip_add.
      
      This driver was based on this assumption for initializing the mask
      associated to each interrupt this led to a NULL pointer crash in the
      kernel:
      
      Unable to handle kernel NULL pointer dereference at virtual address 00000000
      Mem abort info:
        Exception class = DABT (current EL), IL = 32 bits
        SET = 0, FnV = 0
        EA = 0, S1PTW = 0
      Data abort info:
        ISV = 0, ISS = 0x00000068
        CM = 0, WnR = 1
      [0000000000000000] user address but active_mm is swapper
      Internal error: Oops: 96000044 [#1] PREEMPT SMP
      Modules linked in:
      CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.13.0-06657-g3b9f8ed25dbe #576
      Hardware name: Marvell Armada 3720 Development Board DB-88F3720-DDR3 (DT)
      task: ffff80001d908000 task.stack: ffff000008068000
      PC is at armada_37xx_pinctrl_probe+0x5f8/0x670
      LR is at armada_37xx_pinctrl_probe+0x5e8/0x670
      pc : [<ffff000008e25cdc>] lr : [<ffff000008e25ccc>] pstate: 60000045
      sp : ffff00000806bb80
      x29: ffff00000806bb80 x28: 0000000000000024
      x27: 000000000000000c x26: 0000000000000001
      x25: ffff80001efee760 x24: 0000000000000000
      x23: ffff80001db6f570 x22: ffff80001db6f438
      x21: 0000000000000000 x20: ffff80001d9f4810
      x19: ffff80001db6f418 x18: 0000000000000000
      x17: 0000000000000001 x16: 0000000000000019
      x15: ffffffffffffffff x14: 0140000000000000
      x13: 0000000000000000 x12: 0000000000000030
      x11: 0101010101010101 x10: 0000000000000040
      x9 : ffff000009923580 x8 : ffff80001d400248
      x7 : ffff80001d400270 x6 : 0000000000000000
      x5 : ffff80001d400248 x4 : ffff80001d400270
      x3 : 0000000000000000 x2 : 0000000000000001
      x1 : 0000000000000001 x0 : 0000000000000000
      Process swapper/0 (pid: 1, stack limit = 0xffff000008068000)
      Call trace:
      Exception stack(0xffff00000806ba40 to 0xffff00000806bb80)
      ba40: 0000000000000000 0000000000000001 0000000000000001 0000000000000000
      ba60: ffff80001d400270 ffff80001d400248 0000000000000000 ffff80001d400270
      ba80: ffff80001d400248 ffff000009923580 0000000000000040 0101010101010101
      baa0: 0000000000000030 0000000000000000 0140000000000000 ffffffffffffffff
      bac0: 0000000000000019 0000000000000001 0000000000000000 ffff80001db6f418
      bae0: ffff80001d9f4810 0000000000000000 ffff80001db6f438 ffff80001db6f570
      bb00: 0000000000000000 ffff80001efee760 0000000000000001 000000000000000c
      bb20: 0000000000000024 ffff00000806bb80 ffff000008e25ccc ffff00000806bb80
      bb40: ffff000008e25cdc 0000000060000045 ffff00000806bb60 ffff0000081189b8
      bb60: ffffffffffffffff ffff00000811cf1c ffff00000806bb80 ffff000008e25cdc
      [<ffff000008e25cdc>] armada_37xx_pinctrl_probe+0x5f8/0x670
      [<ffff00000859d8c8>] platform_drv_probe+0x58/0xb8
      [<ffff00000859bb44>] driver_probe_device+0x22c/0x2d8
      [<ffff00000859bcac>] __driver_attach+0xbc/0xc0
      [<ffff000008599c84>] bus_for_each_dev+0x4c/0x98
      [<ffff00000859b440>] driver_attach+0x20/0x28
      [<ffff00000859af90>] bus_add_driver+0x1b8/0x228
      [<ffff00000859c648>] driver_register+0x60/0xf8
      [<ffff00000859df64>] __platform_driver_probe+0x74/0x130
      [<ffff000008e256dc>] armada_37xx_pinctrl_driver_init+0x20/0x28
      [<ffff000008083980>] do_one_initcall+0x38/0x128
      [<ffff000008e00cf4>] kernel_init_freeable+0x188/0x22c
      [<ffff0000089b56e8>] kernel_init+0x10/0x100
      [<ffff000008084bb0>] ret_from_fork+0x10/0x18
      Code: f9403fa2 12001341 1100075a 9ac12041 (b9000001)
      ---[ end trace 8b0f4e05e1603208 ]---
      
      This patch moves the initialization of the mask field in the irq_startup
      function. However some callbacks such as irq_set_type and irq_set_wake
      could be called before irq_startup. For those functions the mask is
      computed at each call which is not a issue as these functions are not
      located in a hot path but are used sporadically for configuration.
      
      Fixes: dc749a09 ("gpiolib: allow gpio irqchip to map irqs
      dynamically")
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarGregory CLEMENT <gregory.clement@free-electrons.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      a9a1a483
    • Dan Carpenter's avatar
      pinctrl: sprd: fix off by one bugs · 4ce504c4
      Dan Carpenter authored
      
      info->groups[] has info->ngroups elements so these comparisons should be
      >= instead of >.
      
      Fixes: 41d32cfc ("pinctrl: sprd: Add Spreadtrum pin control driver")
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Reviewed-by: default avatarBaolin Wang <baolin.wang@spreadtrum.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      4ce504c4
    • Dan Carpenter's avatar
      pinctrl: sprd: check for allocation failure · 41470c37
      Dan Carpenter authored
      
      devm_pinctrl_get() could fail with ERR_PTR(-ENOMEM) so I have added a
      check for that.  I also reversed the other IS_ERR() test because it was
      a little confusing to test one way and then the opposite a couple lines
      later.
      
      Fixes: 41d32cfc ("pinctrl: sprd: Add Spreadtrum pin control driver")
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      41470c37
    • Geert Uytterhoeven's avatar
      pinctrl: sprd: Restrict PINCTRL_SPRD to ARCH_SPRD or COMPILE_TEST · baec7e68
      Geert Uytterhoeven authored
      
      The Spreadtrum pinctrl drivers are only useful when building for a
      Spreadtrum platform.
      
      Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      baec7e68
    • Randy Dunlap's avatar
      pinctrl: sprd: fix build errors and dependencies · aaab90bb
      Randy Dunlap authored
      
      Fix build errors when CONFIG_OF is not enabled.
      Also, the pinctrl-sprd-sc9860 driver uses functions from the pinctrl-sprd
      driver, so the former should depend on the latter driver.
      
      ../drivers/pinctrl/sprd/pinctrl-sprd.c: In function 'sprd_dt_node_to_map':
      ../drivers/pinctrl/sprd/pinctrl-sprd.c:290:2: error: implicit declaration of function 'pinconf_generic_parse_dt_config' [-Werror=implicit-function-declaration]
        ret = pinconf_generic_parse_dt_config(np, pctldev, &configs,
        ^
      ../drivers/pinctrl/sprd/pinctrl-sprd.c: At top level:
      ../drivers/pinctrl/sprd/pinctrl-sprd.c:844:44: error: array type has incomplete element type
       static const struct pinconf_generic_params sprd_dt_params[] = {
                                                  ^
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Cc: Baolin Wang <baolin.wang@spreadtrum.com>
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Cc: linux-gpio@vger.kernel.org
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      aaab90bb
    • Colin Ian King's avatar
      pinctrl: sprd: make three local functions static · 045b5792
      Colin Ian King authored
      
      The functions sprd_pmx_get_function_count, sprd_pmx_get_function_name
      and sprd_pmx_get_function_groups are local to the source and do not
      need to be in global scope, so make them static.
      
      Cleans up sparse warnings:
      "symbol 'sprd_pmx_get_function_count' was not declared. Should it be
      static?"
      "symbol 'sprd_pmx_get_function_name' was not declared. Should it be
      static?"
      "symbol 'sprd_pmx_get_function_groups' was not declared. Should it be
      static?"
      
      Signed-off-by: default avatarColin Ian King <colin.king@canonical.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      045b5792
    • Masahiro Yamada's avatar
      pinctrl: uniphier: include <linux/build_bug.h> instead of <linux/bug.h> · 6d363bd1
      Masahiro Yamada authored
      
      The #includes <linux/bug.h> is here to use BUILD_BUG_ON_ZERO().
      
      Thanks to commit bc6245e5 ("bug: split BUILD_BUG stuff out into
      <linux/build_bug.h>"), it is now possible to reduce the number of
      headers pulled in.
      
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      6d363bd1
  6. Sep 11, 2017
  7. Sep 09, 2017
Loading