1. 18 Dec, 2020 3 commits
  2. 12 Dec, 2020 1 commit
    • Douglas Anderson's avatar
      irqchip/qcom-pdc: Fix phantom irq when changing between rising/falling · 2f5fbc43
      Douglas Anderson authored
      We have a problem if we use gpio-keys and configure wakeups such that
      we only want one edge to wake us up.  AKA:
        wakeup-event-action = <EV_ACT_DEASSERTED>;
        wakeup-source;
      
      Specifically we end up with a phantom interrupt that blocks suspend if
      the line was already high and we want wakeups on rising edges (AKA we
      want the GPIO to go low and then high again before we wake up).  The
      opposite is also problematic.
      
      Specifically, here's what's happening today:
      1. Normally, gpio-keys configures to look for both edges.  Due to the
         current workaround introduced in commit c3c0c2e1 ("pinctrl:
         qcom: Handle broken/missing PDC dual edge IRQs on sc7180"), if the
         line was high we'd configure for falling edges.
      2. At suspend time, we change to look for rising edges.
      3. After qcom_pdc_gic_set_type() runs, we get a phantom interrupt.
      
      We can solve this by just clearing the phantom interrupt.
      
      NOTE: it is possible that this could cause problems for a client with
      very specific needs, but there's not much we can do with this
      hardware.  As an example, let's say the interrupt signal is currently
      high and the client is looking for falling edges.  The client now
      changes to look for rising edges.  The client could possibly expect
      that if the line has a short pulse low (and back high) that it would
      always be detected.  Specifically no matter when the pulse happened,
      it should either have tripped the (old) falling edge trigger or the
      (new) rising edge trigger.  We will simply not trip it.  We could
      narrow down the race a bit by polling our parent before changing
      types, but no matter what we do there will still be a period of time
      where we can't tell the difference between a real transition (or more
      than one transition) and the phantom.
      
      Fixes: f55c73ae ("irqchip/pdc: Add PDC interrupt controller for QCOM SoCs")
      Signed-off-by: default avatarDouglas Anderson <dianders@chromium.org>
      Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
      Tested-by: default avatarMaulik Shah <mkshah@codeaurora.org>
      Reviewed-by: default avatarMaulik Shah <mkshah@codeaurora.org>
      Reviewed-by: default avatarStephen Boyd <swboyd@chromium.org>
      Link: https://lore.kernel.org/r/20201211141514.v4.1.I2702919afc253e2a451bebc3b701b462b2d22344@changeid
      2f5fbc43
  3. 11 Dec, 2020 27 commits
  4. 29 Nov, 2020 5 commits
  5. 28 Nov, 2020 4 commits
    • Linus Torvalds's avatar
      Merge tag 'riscv-for-linus-5.10-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux · aae5ab85
      Linus Torvalds authored
      Pull RISC-V fixes from Palmer Dabbelt:
       "I've collected a handful of fixes over the past few weeks:
      
         - A fix to un-break the build-id argument to the vDSO build, which is
           necessary for the LLVM linker.
      
         - A fix to initialize the jump label subsystem, without which it (and
           all the stuff that uses it) doesn't actually function.
      
         - A fix to include <asm/barrier.h> from <vdso/processor.h>, without
           which some drivers won't compile"
      
      * tag 'riscv-for-linus-5.10-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
        RISC-V: fix barrier() use in <vdso/processor.h>
        RISC-V: Add missing jump label initialization
        riscv: Explicitly specify the build id style in vDSO Makefile again
      aae5ab85
    • Linus Torvalds's avatar
      Merge tag 'kbuild-fixes-v5.10' of... · 45e885c4
      Linus Torvalds authored
      Merge tag 'kbuild-fixes-v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
      
      Pull Kbuild fixes from Masahiro Yamada:
      
       - Remove unused OBJSIZE variable.
      
       - Fix rootless deb-pkg build in a setgid directory.
      
      * tag 'kbuild-fixes-v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
        builddeb: Fix rootless build in setuid/setgid directory
        kbuild: remove unused OBJSIZE
      45e885c4
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-fixes-for-v5.10-2020-11-28' of... · ca579827
      Linus Torvalds authored
      Merge tag 'perf-tools-fixes-for-v5.10-2020-11-28' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux
      
      Pull perf tool fixes from Arnaldo Carvalho de Melo:
      
       - Fix die_entrypc() when DW_AT_ranges DWARF attribute not available
      
       - Cope with broken DWARF (missing DW_AT_declaration) generated by some
         recent gcc versions
      
       - Do not generate CGROUP metadata events when not asked to in 'perf
         record'
      
       - Use proper CPU for shadow stats in 'perf stat'
      
       - Update copy of libbpf's hashmap.c, silencing tools/perf build warning
      
       - Fix return value in 'perf diff'
      
      * tag 'perf-tools-fixes-for-v5.10-2020-11-28' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux:
        perf probe: Change function definition check due to broken DWARF
        perf probe: Fix to die_entrypc() returns error correctly
        perf stat: Use proper cpu for shadow stats
        perf record: Synthesize cgroup events only if needed
        perf diff: Fix error return value in __cmd_diff()
        perf tools: Update copy of libbpf's hashmap.c
      ca579827
    • Linus Torvalds's avatar
      Merge tag 'usb-5.10-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 67f34fa8
      Linus Torvalds authored
      Pull USB / PHY driver fixes from Greg KH:
       "Here are a few small USB and PHY driver fixes for 5.10-rc6. They
        include:
      
         - small PHY driver fixes to resolve reported issues
      
         - USB quirks added for "broken" devices
      
         - typec fixes for reported problems
      
         - USB gadget fixes for small issues
      
        Full details are in the shortlog, nothing major in here and all have
        been in linux-next with no reported issues"
      
      * tag 'usb-5.10-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
        usb: typec: stusb160x: fix power-opmode property with typec-power-opmode
        USB: core: Change %pK for __user pointers to %px
        USB: core: Fix regression in Hercules audio card
        usb: gadget: Fix memleak in gadgetfs_fill_super
        usb: gadget: f_midi: Fix memleak in f_midi_alloc
        USB: quirks: Add USB_QUIRK_DISCONNECT_SUSPEND quirk for Lenovo A630Z TIO built-in usb-audio card
        usb: typec: qcom-pmic-typec: fix builtin build errors
        phy: mediatek: fix spelling mistake in Kconfig "veriosn" -> "version"
        phy: qualcomm: Fix 28 nm Hi-Speed USB PHY OF dependency
        phy: qualcomm: usb: Fix SuperSpeed PHY OF dependency
        phy: intel: PHY_INTEL_KEEMBAY_EMMC should depend on ARCH_KEEMBAY
        usb: cdns3: gadget: calculate TD_SIZE based on TD
        usb: cdns3: gadget: initialize link_trb as NULL
        phy: cpcap-usb: Use IRQF_ONESHOT
        phy: qcom-qmp: Initialize another pointer to NULL
        phy: tegra: xusb: Fix dangling pointer on probe failure
        phy: usb: Fix incorrect clearing of tca_drv_sel bit in SETUP reg for 7211
      67f34fa8