Skip to content
  1. Jan 22, 2020
    • Marc Zyngier's avatar
      irqchip/gic-v4.1: VPE table (aka GICR_VPROPBASER) allocation · 5e516846
      Marc Zyngier authored
      
      
      GICv4.1 defines a new VPE table that is potentially shared between
      both the ITSs and the redistributors, following complicated affinity
      rules.
      
      To make things more confusing, the programming of this table at
      the redistributor level is reusing the GICv4.0 GICR_VPROPBASER register
      for something completely different.
      
      The code flow is somewhat complexified by the need to respect the
      affinities required by the HW, meaning that tables can either be
      inherited from a previously discovered ITS or redistributor.
      
      Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
      Reviewed-by: default avatarZenghui Yu <yuzenghui@huawei.com>
      Link: https://lore.kernel.org/r/20191224111055.11836-6-maz@kernel.org
      5e516846
    • Marc Zyngier's avatar
      irqchip/gic-v3: Add GICv4.1 VPEID size discovery · f2d83409
      Marc Zyngier authored
      
      
      While GICv4.0 mandates 16 bit worth of VPEIDs, GICv4.1 allows smaller
      implementations to be built. Add the required glue to dynamically
      compute the limit.
      
      Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
      Reviewed-by: default avatarZenghui Yu <yuzenghui@huawei.com>
      Link: https://lore.kernel.org/r/20191224111055.11836-3-maz@kernel.org
      f2d83409
    • Marc Zyngier's avatar
      irqchip/gic-v3: Detect GICv4.1 supporting RVPEID · b25319d2
      Marc Zyngier authored
      
      
      GICv4.1 supports the RVPEID ("Residency per vPE ID"), which allows for
      a much efficient way of making virtual CPUs resident (to allow direct
      injection of interrupts).
      
      The functionnality needs to be discovered on each and every redistributor
      in the system, and disabled if the settings are inconsistent.
      
      Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
      Reviewed-by: default avatarZenghui Yu <yuzenghui@huawei.com>
      Link: https://lore.kernel.org/r/20191224111055.11836-2-maz@kernel.org
      b25319d2
    • Marc Zyngier's avatar
      irqchip/gic-v3-its: Fix get_vlpi_map() breakage with doorbells · 093bf439
      Marc Zyngier authored
      When updating an LPI configuration, get_vlpi_map() may be passed a
      irq_data structure relative to an ITS domain (the normal case) or one
      that is relative to the core GICv3 domain in the case of a GICv4
      doorbell.
      
      In the latter case, special care must be take not to dereference
      the irq_chip data as an its_dev structure, as that isn't what is
      stored there. Instead, check *first* whether the IRQ is forwarded
      to a vcpu, and only then try to obtain the vlpi mapping.
      
      Fixes: c1d4d5cd
      
       ("irqchip/gic-v3-its: Add its_vlpi_map helpers")
      Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
      Reported-by: default avatarZenghui Yu <yuzenghui@huawei.com>
      Link: https://lore.kernel.org/r/20200122085609.658-1-yuzenghui@huawei.com
      093bf439
  2. Jan 21, 2020
    • Kevin Hao's avatar
      irqdomain: Fix a memory leak in irq_domain_push_irq() · 0f394dae
      Kevin Hao authored
      Fix a memory leak reported by kmemleak:
      unreferenced object 0xffff000bc6f50e80 (size 128):
        comm "kworker/23:2", pid 201, jiffies 4294894947 (age 942.132s)
        hex dump (first 32 bytes):
          00 00 00 00 41 00 00 00 86 c0 03 00 00 00 00 00  ....A...........
          00 a0 b2 c6 0b 00 ff ff 40 51 fd 10 00 80 ff ff  ........@Q......
        backtrace:
          [<00000000e62d2240>] kmem_cache_alloc_trace+0x1a4/0x320
          [<00000000279143c9>] irq_domain_push_irq+0x7c/0x188
          [<00000000d9f4c154>] thunderx_gpio_probe+0x3ac/0x438
          [<00000000fd09ec22>] pci_device_probe+0xe4/0x198
          [<00000000d43eca75>] really_probe+0xdc/0x320
          [<00000000d3ebab09>] driver_probe_device+0x5c/0xf0
          [<000000005b3ecaa0>] __device_attach_driver+0x88/0xc0
          [<000000004e5915f5>] bus_for_each_drv+0x7c/0xc8
          [<0000000079d4db41>] __device_attach+0xe4/0x140
          [<00000000883bbda9>] device_initial_probe+0x18/0x20
          [<000000003be59ef6>] bus_probe_device+0x98/0xa0
          [<0000000039b03d3f>] deferred_probe_work_func+0x74/0xa8
          [<00000000870934ce>] process_one_work+0x1c8/0x470
          [<00000000e3cce570>] worker_thread+0x1f8/0x428
          [<000000005d64975e>] kthread+0xfc/0x128
          [<00000000f0eaa764>] ret_from_fork+0x10/0x18
      
      Fixes: 495c38d3
      
       ("irqdomain: Add irq_domain_{push,pop}_irq() functions")
      Signed-off-by: default avatarKevin Hao <haokexin@gmail.com>
      Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
      Cc: stable@vger.kernel.org
      Link: https://lore.kernel.org/r/20200120043547.22271-1-haokexin@gmail.com
      0f394dae
    • Joakim Zhang's avatar
      irqchip: Add NXP INTMUX interrupt multiplexer support · 2fbb1396
      Joakim Zhang authored
      
      
      The Interrupt Multiplexer (INTMUX) expands the number of peripherals
      that can interrupt the core:
      * The INTMUX has 8 channels that are assigned to 8 NVIC interrupt slots.
      * Each INTMUX channel can receive up to 32 interrupt sources and has 1
        interrupt output.
      * The INTMUX routes the interrupt sources to the interrupt outputs.
      
      Signed-off-by: default avatarShengjiu Wang <shengjiu.wang@nxp.com>
      Signed-off-by: default avatarJoakim Zhang <qiangqing.zhang@nxp.com>
      Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
      Link: https://lore.kernel.org/r/20200117060653.27485-3-qiangqing.zhang@nxp.com
      2fbb1396
    • Joakim Zhang's avatar
      dt-bindings: interrupt-controller: Add binding for NXP INTMUX interrupt multiplexer · 618ea627
      Joakim Zhang authored
      
      
      This patch adds the DT bindings for the NXP INTMUX interrupt multiplexer
      for i.MX8 family SoCs.
      
      Signed-off-by: default avatarJoakim Zhang <qiangqing.zhang@nxp.com>
      Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
      Reviewed-by: default avatarRob Herring <robh@kernel.org>
      Link: https://lore.kernel.org/r/20200117060653.27485-2-qiangqing.zhang@nxp.com
      618ea627
    • Hyunki Koo's avatar
      irqchip: Define EXYNOS_IRQ_COMBINER · b74416db
      Hyunki Koo authored
      
      
      This patch is written to clean up dependency of ARCH_EXYNOS
      Not all exynos device have IRQ_COMBINER, especially aarch64 EXYNOS
      but it is built for all exynos devices.
      Thus add the config for EXYNOS_IRQ_COMBINER
      remove direct dependency between ARCH_EXYNOS and exynos-combiner.c
      and only selected on the aarch32 devices
      
      Signed-off-by: default avatarHyunki Koo <hyunki00.koo@samsung.com>
      Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
      Reviewed-by: default avatarKrzysztof Kozlowski <krzk@kernel.org>
      Link: https://lore.kernel.org/r/20191224211108.7128-1-hyunki00.koo@gmail.com
      b74416db
    • Qianggui Song's avatar
      irqchip/meson-gpio: Add support for meson a1 SoCs · 8f78bd62
      Qianggui Song authored
      
      
      The meson a1 Socs have some changes compared with previous
      chips. For A113L, it contains 62 pins and can be spied on:
      
      - 62:128 undefined
      - 61:50 12 pins on bank A
      - 49:37 13 pins on bank F
      - 36:20 17 pins on bank X
      - 19:13 7  pins on bank B
      - 12:0  13 pins on bank P
      
      There are five relative registers for gpio interrupt controller,
      details are as below:
      
      - PADCTRL_GPIO_IRQ_CTRL0
        bit[31]:    enable/disable the whole irq lines
        bit[16-23]: both edge trigger
        bit[8-15]:  single edge trigger
        bit[0-7]:   pol trigger
      
      - PADCTRL_GPIO_IRQ_CTRL[X]
        bit[0-6]:   7 bits to choose gpio source for irq line 2*[X] - 2
        bit[16-22]: 7 bits to choose gpio source for irq line 2*[X] - 1
        where X =1,2,3,4
      
      Signed-off-by: default avatarQianggui Song <qianggui.song@amlogic.com>
      Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
      Link: https://lore.kernel.org/r/20191216123645.10099-4-qianggui.song@amlogic.com
      8f78bd62
    • Qianggui Song's avatar
      irqchip/meson-gpio: Rework meson irqchip driver to support meson-A1 SoCs · e2514165
      Qianggui Song authored
      
      
      Since Meson-A1 SoCs register layout of gpio interrupt controller has
      difference with previous chips, registers to decide irq line and offset
      of trigger method are all changed, the current driver should be modified.
      
      Signed-off-by: default avatarQianggui Song <qianggui.song@amlogic.com>
      Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
      Link: https://lore.kernel.org/r/20191216123645.10099-3-qianggui.song@amlogic.com
      e2514165
    • Qianggui Song's avatar
      dt-bindings: interrupt-controller: New binding for Meson-A1 SoCs · fd6765b4
      Qianggui Song authored
      
      
      Update dt-binding document for GPIO interrupt controller of Meson-A1 SoCs
      
      Signed-off-by: default avatarQianggui Song <qianggui.song@amlogic.com>
      Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
      Acked-by: default avatarRob Herring <robh@kernel.org>
      Link: https://lore.kernel.org/r/20191216123645.10099-2-qianggui.song@amlogic.com
      fd6765b4
    • John Garry's avatar
      irqchip/mbigen: Set driver .suppress_bind_attrs to avoid remove problems · d6152e6e
      John Garry authored
      
      
      The following crash can be seen for setting
      CONFIG_DEBUG_TEST_DRIVER_REMOVE=y for DT FW (which some people still use):
      
      Hisilicon MBIGEN-V2 60080000.interrupt-controller: Failed to create mbi-gen irqdomain
      Hisilicon MBIGEN-V2: probe of 60080000.interrupt-controller failed with error -12
      
      [...]
      
      Unable to handle kernel paging request at virtual address 0000000000005008
       Mem abort info:
         ESR = 0x96000004
         EC = 0x25: DABT (current EL), IL = 32 bits
         SET = 0, FnV = 0
         EA = 0, S1PTW = 0
       Data abort info:
         ISV = 0, ISS = 0x00000004
         CM = 0, WnR = 0
       user pgtable: 4k pages, 48-bit VAs, pgdp=0000041fb9990000
       [0000000000005008] pgd=0000000000000000
       Internal error: Oops: 96000004 [#1] PREEMPT SMP
       Modules linked in:
       CPU: 7 PID: 1 Comm: swapper/0 Not tainted 5.5.0-rc6-00002-g3fc42638a506-dirty #1622
       Hardware name: Huawei Taishan 2280 /D05, BIOS Hisilicon D05 IT21 Nemo 2.0 RC0 04/18/2018
       pstate: 40000085 (nZcv daIf -PAN -UAO)
       pc : mbigen_set_type+0x38/0x60
       lr : __irq_set_trigger+0x6c/0x188
       sp : ffff800014b4b400
       x29: ffff800014b4b400 x28: 0000000000000007
       x27: 0000000000000000 x26: 0000000000000000
       x25: ffff041fd83bd0d4 x24: ffff041fd83bd188
       x23: 0000000000000000 x22: ffff80001193ce00
       x21: 0000000000000004 x20: 0000000000000000
       x19: ffff041fd83bd000 x18: ffffffffffffffff
       x17: 0000000000000000 x16: 0000000000000000
       x15: ffff8000119098c8 x14: ffff041fb94ec91c
       x13: ffff041fb94ec1a1 x12: 0000000000000030
       x11: 0101010101010101 x10: 0000000000000040
       x9 : 0000000000000000 x8 : ffff041fb98c6680
       x7 : ffff800014b4b380 x6 : ffff041fd81636c8
       x5 : 0000000000000000 x4 : 000000000000025f
       x3 : 0000000000005000 x2 : 0000000000005008
       x1 : 0000000000000004 x0 : 0000000080000000
       Call trace:
        mbigen_set_type+0x38/0x60
        __setup_irq+0x744/0x900
        request_threaded_irq+0xe0/0x198
        pcie_pme_probe+0x98/0x118
        pcie_port_probe_service+0x38/0x78
        really_probe+0xa0/0x3e0
        driver_probe_device+0x58/0x100
        __device_attach_driver+0x90/0xb0
        bus_for_each_drv+0x64/0xc8
        __device_attach+0xd8/0x138
        device_initial_probe+0x10/0x18
        bus_probe_device+0x90/0x98
        device_add+0x4c4/0x770
        device_register+0x1c/0x28
        pcie_port_device_register+0x1e4/0x4f0
        pcie_portdrv_probe+0x34/0xd8
        local_pci_probe+0x3c/0xa0
        pci_device_probe+0x128/0x1c0
        really_probe+0xa0/0x3e0
        driver_probe_device+0x58/0x100
        __device_attach_driver+0x90/0xb0
        bus_for_each_drv+0x64/0xc8
        __device_attach+0xd8/0x138
        device_attach+0x10/0x18
        pci_bus_add_device+0x4c/0xb8
        pci_bus_add_devices+0x38/0x88
        pci_host_probe+0x3c/0xc0
        pci_host_common_probe+0xf0/0x208
        hisi_pcie_almost_ecam_probe+0x24/0x30
        platform_drv_probe+0x50/0xa0
        really_probe+0xa0/0x3e0
        driver_probe_device+0x58/0x100
        device_driver_attach+0x6c/0x90
        __driver_attach+0x84/0xc8
        bus_for_each_dev+0x74/0xc8
        driver_attach+0x20/0x28
        bus_add_driver+0x148/0x1f0
        driver_register+0x60/0x110
        __platform_driver_register+0x40/0x48
        hisi_pcie_almost_ecam_driver_init+0x1c/0x24
      
      The specific problem here is that the mbigen driver real probe has failed
      as the mbigen_of_create_domain()->of_platform_device_create() call fails,
      the reason for that being that we never destroyed the platform device
      created during the remove test dry run and there is some conflict.
      
      Since we generally would never want to unbind this driver, and to save
      adding a driver tear down path for that, just set the driver
      .suppress_bind_attrs member to avoid this possibility.
      
      Signed-off-by: default avatarJohn Garry <john.garry@huawei.com>
      Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
      Reviewed-by: default avatarHanjun Guo <guohanjun@huawei.com>
      Link: https://lore.kernel.org/r/1579196323-180137-1-git-send-email-john.garry@huawei.com
      d6152e6e
    • Eddie James's avatar
      irqchip: Add Aspeed SCU interrupt controller · 04f60590
      Eddie James authored
      
      
      The Aspeed SOCs provide some interrupts through the System Control
      Unit registers. Add an interrupt controller that provides these
      interrupts to the system.
      
      Signed-off-by: default avatarEddie James <eajames@linux.ibm.com>
      Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
      Reviewed-by: default avatarAndrew Jeffery <andrew@aj.id.au>
      Link: https://lore.kernel.org/r/1579123790-6894-3-git-send-email-eajames@linux.ibm.com
      04f60590
    • Eddie James's avatar
      dt-bindings: interrupt-controller: Add Aspeed SCU interrupt controller · 5350a237
      Eddie James authored
      
      
      Document the Aspeed SCU interrupt controller and add an include file
      for the interrupts it provides.
      
      Signed-off-by: default avatarEddie James <eajames@linux.ibm.com>
      Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
      Reviewed-by: default avatarRob Herring <robh@kernel.org>
      Acked-by: default avatarAndrew Jeffery <andrew@aj.id.au>
      Link: https://lore.kernel.org/r/1579123790-6894-2-git-send-email-eajames@linux.ibm.com
      5350a237
    • Yash Shah's avatar
      gpio/sifive: Add GPIO driver for SiFive SoCs · 96868dce
      Yash Shah authored
      
      
      Adds the GPIO driver for SiFive RISC-V SoCs.
      
      Signed-off-by: default avatarWesley W. Terpstra <wesley@sifive.com>
      [Atish: Various fixes and code cleanup]
      Signed-off-by: default avatarAtish Patra <atish.patra@wdc.com>
      Signed-off-by: default avatarYash Shah <yash.shah@sifive.com>
      Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
      Reviewed-by: default avatarBartosz Golaszewski <bgolaszewski@baylibre.com>
      Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Link: https://lore.kernel.org/r/1575976274-13487-6-git-send-email-yash.shah@sifive.com
      96868dce
  3. Jan 20, 2020
  4. Dec 30, 2019
    • Linus Torvalds's avatar
      Linux 5.5-rc4 · fd698849
      Linus Torvalds authored
      fd698849
    • Linus Torvalds's avatar
      Merge tag 'riscv/for-v5.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux · a99efa00
      Linus Torvalds authored
      Pull RISC-V fixes from Paul Walmsley:
       "One important fix for RISC-V:
      
         - Redirect any incoming syscall with an ID less than -1 to
           sys_ni_syscall, rather than allowing them to fall through into the
           syscall handler.
      
        and two minor build fixes:
      
         - Export __asm_copy_{from,to}_user() from where they are defined.
           This fixes a build error triggered by some randconfigs.
      
         - Export flush_icache_all(). I'd resisted this before, since
           historically we didn't want modules to be able to flush the I$
           directly; but apparently everyone else is doing it now"
      
      * tag 'riscv/for-v5.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
        riscv: export flush_icache_all to modules
        riscv: reject invalid syscalls below -1
        riscv: fix compile failure with EXPORT_SYMBOL() & !MMU
      a99efa00
    • Linus Torvalds's avatar
      Merge tag 'locks-v5.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux · d7566386
      Linus Torvalds authored
      Pull /proc/locks formatting fix from Jeff Layton:
       "This is a trivial fix for a _very_ long standing bug in /proc/locks
        formatting. Ordinarily, I'd wait for the merge window for something
        like this, but it is making it difficult to validate some overlayfs
        fixes.
      
        I've also gone ahead and marked this for stable"
      
      * tag 'locks-v5.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux:
        locks: print unsigned ino in /proc/locks
      d7566386
    • Linus Torvalds's avatar
      Merge tag '5.5-rc3-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6 · cc2f36ec
      Linus Torvalds authored
      Pull cifs fixes from Steve French:
       "One performance fix for large directory searches, and one minor style
        cleanup noticed by Clang"
      
      * tag '5.5-rc3-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: Optimize readdir on reparse points
        cifs: Adjust indentation in smb2_open_file
      cc2f36ec
  5. Dec 29, 2019
  6. Dec 28, 2019
    • Olof Johansson's avatar
      riscv: export flush_icache_all to modules · 1833e327
      Olof Johansson authored
      
      
      This is needed by LKDTM (crash dump test module), it calls
      flush_icache_range(), which on RISC-V turns into flush_icache_all(). On
      other architectures, the actual implementation is exported, so follow
      that precedence and export it here too.
      
      Fixes build of CONFIG_LKDTM that fails with:
      ERROR: "flush_icache_all" [drivers/misc/lkdtm/lkdtm.ko] undefined!
      
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      Signed-off-by: default avatarPaul Walmsley <paul.walmsley@sifive.com>
      1833e327
    • David Abdurachmanov's avatar
      riscv: reject invalid syscalls below -1 · 556f47ac
      David Abdurachmanov authored
      
      
      Running "stress-ng --enosys 4 -t 20 -v" showed a large number of kernel oops
      with "Unable to handle kernel paging request at virtual address" message. This
      happens when enosys stressor starts testing random non-valid syscalls.
      
      I forgot to redirect any syscall below -1 to sys_ni_syscall.
      
      With the patch kernel oops messages are gone while running stress-ng enosys
      stressor.
      
      Signed-off-by: default avatarDavid Abdurachmanov <david.abdurachmanov@sifive.com>
      Fixes: 5340627e
      
       ("riscv: add support for SECCOMP and SECCOMP_FILTER")
      Signed-off-by: default avatarPaul Walmsley <paul.walmsley@sifive.com>
      556f47ac
    • Luc Van Oostenryck's avatar
      riscv: fix compile failure with EXPORT_SYMBOL() & !MMU · 4d47ce15
      Luc Van Oostenryck authored
      When support for !MMU was added, the declaration of
      __asm_copy_to_user() & __asm_copy_from_user() were #ifdefed
      out hence their EXPORT_SYMBOL() give an error message like:
        .../riscv_ksyms.c:13:15: error: '__asm_copy_to_user' undeclared here
        .../riscv_ksyms.c:14:15: error: '__asm_copy_from_user' undeclared here
      
      Since these symbols are not defined with !MMU it's wrong to export them.
      Same for __clear_user() (even though this one is also declared in
      include/asm-generic/uaccess.h and thus doesn't give an error message).
      
      Fix this by doing the EXPORT_SYMBOL() directly where these symbols
      are defined: inside lib/uaccess.S itself.
      
      Fixes: 6bd33e1e
      
       ("riscv: fix compile failure with EXPORT_SYMBOL() & !MMU")
      Reported-by: default avatarkbuild test robot <lkp@intel.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Palmer Dabbelt <palmer@dabbelt.com>
      Cc: Paul Walmsley <paul.walmsley@sifive.com>
      Signed-off-by: default avatarLuc Van Oostenryck <luc.vanoostenryck@gmail.com>
      Signed-off-by: default avatarPaul Walmsley <paul.walmsley@sifive.com>
      4d47ce15
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · bf8d1cd4
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "Four fixes and one spelling update, all in drivers: two in lpfc and
        the rest in mp3sas, cxgbi and target"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi: target/iblock: Fix protection error with blocks greater than 512B
        scsi: libcxgbi: fix NULL pointer dereference in cxgbi_device_destroy()
        scsi: lpfc: fix spelling mistakes of asynchronous
        scsi: lpfc: fix build failure with DEBUGFS disabled
        scsi: mpt3sas: Fix double free in attach error handling
      bf8d1cd4
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2019-12-28' of git://anongit.freedesktop.org/drm/drm · 48a8dd17
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Post-xmas food coma recovery fixes. Only three fixes for i915 since I
        expect most people are holidaying.
      
        i915:
         - power management rc6 fix
         - framebuffer tracking fix
         - display power management ratelimit fix"
      
      * tag 'drm-fixes-2019-12-28' of git://anongit.freedesktop.org/drm/drm:
        drm/i915: Hold reference to intel_frontbuffer as we track activity
        drm/i915/gt: Ratelimit display power w/a
        drm/i915/pmu: Ensure monotonic rc6
      48a8dd17
    • Linus Torvalds's avatar
      Merge tag 'linux-kselftest-5.5-rc4' of... · f4b39746
      Linus Torvalds authored
      Merge tag 'linux-kselftest-5.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull Kselftest fixes from Shuah Khan:
      
       - rseq build failures fixes related to glibc 2.30 compatibility from
         Mathieu Desnoyers
      
       - Kunit fixes and cleanups from SeongJae Park
      
       - Fixes to filesystems/epoll, firmware, and livepatch build failures
         and skip handling.
      
      * tag 'linux-kselftest-5.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
        rseq/selftests: Clarify rseq_prepare_unload() helper requirements
        rseq/selftests: Fix: Namespace gettid() for compatibility with glibc 2.30
        rseq/selftests: Turn off timeout setting
        kunit/kunit_tool_test: Test '--build_dir' option run
        kunit: Rename 'kunitconfig' to '.kunitconfig'
        kunit: Place 'test.log' under the 'build_dir'
        kunit: Create default config in '--build_dir'
        kunit: Remove duplicated defconfig creation
        docs/kunit/start: Use in-tree 'kunit_defconfig'
        selftests: livepatch: Fix it to do root uid check and skip
        selftests: firmware: Fix it to do root uid check and skip
        selftests: filesystems/epoll: fix build error
      f4b39746
    • Linus Torvalds's avatar
      Merge tag 'pm-5.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 1413c361
      Linus Torvalds authored
      Pull power management fixes from Rafael Wysocki:
       "Fix compile test of the Tegra devfreq driver (Arnd Bergmann) and
        remove redundant Kconfig dependencies from multiple devfreq drivers
        (Leonard Crestez)"
      
      * tag 'pm-5.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        PM / devfreq: tegra: Add COMMON_CLK dependency
        PM / devfreq: Drop explicit selection of PM_OPP
      1413c361
    • Linus Torvalds's avatar
      Merge tag 'io_uring-5.5-20191226' of git://git.kernel.dk/linux-block · 534121d2
      Linus Torvalds authored
      Pull io_uring fixes from Jens Axboe:
      
       - Removal of now unused busy wqe list (Hillf)
      
       - Add cond_resched() to io-wq work processing (Hillf)
      
       - And then the series that I hinted at from last week, which removes
         the sqe from the io_kiocb and keeps all sqe handling on the prep
         side. This guarantees that an opcode can't do the wrong thing and
         read the sqe more than once. This is unchanged from last week, no
         issues have been observed with this in testing. Hence I really think
         we should fold this into 5.5.
      
      * tag 'io_uring-5.5-20191226' of git://git.kernel.dk/linux-block:
        io-wq: add cond_resched() to worker thread
        io-wq: remove unused busy list from io_sqe
        io_uring: pass in 'sqe' to the prep handlers
        io_uring: standardize the prep methods
        io_uring: read 'count' for IORING_OP_TIMEOUT in prep handler
        io_uring: move all prep state for IORING_OP_{SEND,RECV}_MGS to prep handler
        io_uring: move all prep state for IORING_OP_CONNECT to prep handler
        io_uring: add and use struct io_rw for read/writes
        io_uring: use u64_to_user_ptr() consistently
      534121d2
    • Linus Torvalds's avatar
      Merge tag 'libata-5.5-20191226' of git://git.kernel.dk/linux-block · 0f710a55
      Linus Torvalds authored
      Pull libata fixes from Jens Axboe:
       "Two things in here:
      
         - First half of a series that fixes ahci_brcm, also marked for
           stable. The other part of the series is going into 5.6 (Florian)
      
         - sata_nv regression fix that is also marked for stable (Sascha)"
      
      * tag 'libata-5.5-20191226' of git://git.kernel.dk/linux-block:
        ata: ahci_brcm: Add missing clock management during recovery
        ata: ahci_brcm: BCM7425 AHCI requires AHCI_HFLAG_DELAY_ENGINE
        ata: ahci_brcm: Fix AHCI resources management
        ata: libahci_platform: Export again ahci_platform_<en/dis>able_phys()
        libata: Fix retrieving of active qcs
      0f710a55
    • Linus Torvalds's avatar
      Merge tag 'block-5.5-20191226' of git://git.kernel.dk/linux-block · 8ae40a69
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
       "Only thing here are the changes from Arnd from last week, which now
        have the appropriate header include to ensure they actually compile if
        COMPAT is enabled"
      
      * tag 'block-5.5-20191226' of git://git.kernel.dk/linux-block:
        compat_ioctl: block: handle Persistent Reservations
        compat_ioctl: block: handle add zone open, close and finish ioctl
        compat_ioctl: block: handle BLKGETZONESZ/BLKGETNRZONES
        compat_ioctl: block: handle BLKREPORTZONE/BLKRESETZONE
        pktcdvd: fix regression on 64-bit architectures
      8ae40a69
    • Linus Torvalds's avatar
      Merge tag 'gpio-v5.5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio · a305bd7c
      Linus Torvalds authored
      Pull GPIO fixes from Linus Walleij:
       "A set of fixes for the v5.5 series:
      
         - Fix the build for the Xtensa driver.
      
         - Make sure to set up the parent device for mpc8xxx.
      
         - Clarify the look-up error message.
      
         - Fix the usage of the line direction in the mockup device.
      
         - Fix a type warning on the Aspeed driver.
      
         - Remove the pointless __exit annotation on the xgs-iproc which is
           causing a compilation problem.
      
         - Fix up emultation of open drain outputs .get_direction()
      
         - Fix the IRQ callbacks on the PCA953xx to use bitops and work
           properly.
      
         - Fix the Kconfig on the Tegra driver"
      
      * tag 'gpio-v5.5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio:
        gpio: tegra186: Allow building on Tegra194-only configurations
        gpio: pca953x: Switch to bitops in IRQ callbacks
        gpiolib: fix up emulated open drain outputs
        MAINTAINERS: Append missed file to the database
        gpio: xgs-iproc: remove __exit annotation for iproc_gpio_remove
        gpio: aspeed: avoid return type warning
        gpio: mockup: Fix usage of new GPIO_LINE_DIRECTION
        gpio: Fix error message on out-of-range GPIO in lookup table
        gpio: mpc8xxx: Add platform device to gpiochip->parent
        gpio: xtensa: fix driver build
      a305bd7c
  7. Dec 27, 2019
  8. Dec 26, 2019
    • Florian Fainelli's avatar
      ata: ahci_brcm: Add missing clock management during recovery · bf0e5013
      Florian Fainelli authored
      The downstream implementation of ahci_brcm.c did contain clock
      management recovery, but until recently, did that outside of the
      libahci_platform helpers and this was unintentionally stripped out while
      forward porting the patch upstream.
      
      Add the missing clock management during recovery and sleep for 10
      milliseconds per the design team recommendations to ensure the SATA PHY
      controller and AFE have been fully quiesced.
      
      Fixes: eb73390a
      
       ("ata: ahci_brcm: Recover from failures to identify devices")
      Cc: stable@vger.kernel.org
      Reviewed-by: default avatarHans de Goede <hdegoede@redhat.com>
      Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      bf0e5013
    • Florian Fainelli's avatar
      ata: ahci_brcm: BCM7425 AHCI requires AHCI_HFLAG_DELAY_ENGINE · 1a3d78cb
      Florian Fainelli authored
      
      
      Set AHCI_HFLAG_DELAY_ENGINE for the BCM7425 AHCI controller thus making
      it conforming to the 'strict' AHCI implementation which this controller
      is based on.
      
      This solves long link establishment with specific hard drives (e.g.:
      Seagate ST1000VM002-9ZL1 SC12) that would otherwise have to complete the
      error recovery handling before finally establishing a succesful SATA
      link at the desired speed.
      
      We re-order the hpriv->flags assignment to also remove the NONCQ quirk
      since we can set the flag directly.
      
      Fixes: 9586114cf1e9 ("ata: ahci_brcmstb: add support MIPS-based platforms")
      Fixes: 423be77daabe ("ata: ahci_brcmstb: add quirk for broken ncq")
      Cc: stable@vger.kernel.org
      Reviewed-by: default avatarHans de Goede <hdegoede@redhat.com>
      Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      1a3d78cb
    • Florian Fainelli's avatar
      ata: ahci_brcm: Fix AHCI resources management · c0cdf2ac
      Florian Fainelli authored
      The AHCI resources management within ahci_brcm.c is a little
      convoluted, largely because it historically had a dedicated clock that
      was managed within this file in the downstream tree. Once brough
      upstream though, the clock was left to be managed by libahci_platform.c
      which is entirely appropriate.
      
      This patch series ensures that the AHCI resources are fetched and
      enabled before any register access is done, thus avoiding bus errors on
      platforms which clock gate the controller by default.
      
      As a result we need to re-arrange the suspend() and resume() functions
      in order to avoid accessing registers after the clocks have been turned
      off respectively before the clocks have been turned on. Finally, we can
      refactor brcm_ahci_get_portmask() in order to fetch the number of ports
      from hpriv->mmio which is now accessible without jumping through hoops
      like we used to do.
      
      The commit pointed in the Fixes tag is both old and new enough not to
      require major headaches for backporting of this patch.
      
      Fixes: eba68f82
      
       ("ata: ahci_brcmstb: rename to support across Broadcom SoC's")
      Cc: stable@vger.kernel.org
      Reviewed-by: default avatarHans de Goede <hdegoede@redhat.com>
      Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      c0cdf2ac
    • Florian Fainelli's avatar
      ata: libahci_platform: Export again ahci_platform_<en/dis>able_phys() · 84b032db
      Florian Fainelli authored
      This reverts commit 6bb86fef
      
      
      ("libahci_platform: Staticize ahci_platform_<en/dis>able_phys()") we are
      going to need ahci_platform_{enable,disable}_phys() in a subsequent
      commit for ahci_brcm.c in order to properly control the PHY
      initialization order.
      
      Also make sure the function prototypes are declared in
      include/linux/ahci_platform.h as a result.
      
      Cc: stable@vger.kernel.org
      Reviewed-by: default avatarHans de Goede <hdegoede@redhat.com>
      Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      84b032db