25 Feb, 2021

1 commit

  • Pull Simple Firmware Interface (SFI) support removal from Rafael Wysocki:
    "Drop support for depercated platforms using SFI, drop the entire
    support for SFI that has been long deprecated too and make some
    janitorial changes on top of that (Andy Shevchenko)"

    * tag 'sfi-removal-5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    x86/platform/intel-mid: Update Copyright year and drop file names
    x86/platform/intel-mid: Remove unused header inclusion in intel-mid.h
    x86/platform/intel-mid: Drop unused __intel_mid_cpu_chip and Co.
    x86/platform/intel-mid: Get rid of intel_scu_ipc_legacy.h
    x86/PCI: Describe @reg for type1_access_ok()
    x86/PCI: Get rid of custom x86 model comparison
    sfi: Remove framework for deprecated firmware
    cpufreq: sfi-cpufreq: Remove driver for deprecated firmware
    media: atomisp: Remove unused header
    mfd: intel_msic: Remove driver for deprecated platform
    x86/apb_timer: Remove driver for deprecated platform
    x86/platform/intel-mid: Remove unused leftovers (vRTC)
    x86/platform/intel-mid: Remove unused leftovers (msic)
    x86/platform/intel-mid: Remove unused leftovers (msic_thermal)
    x86/platform/intel-mid: Remove unused leftovers (msic_power_btn)
    x86/platform/intel-mid: Remove unused leftovers (msic_gpio)
    x86/platform/intel-mid: Remove unused leftovers (msic_battery)
    x86/platform/intel-mid: Remove unused leftovers (msic_ocd)
    x86/platform/intel-mid: Remove unused leftovers (msic_audio)
    platform/x86: intel_scu_wdt: Drop mistakenly added const

    Linus Torvalds
     

17 Feb, 2021

1 commit

  • The CXL.mem protocol allows a device to act as a provider of "System
    RAM" and/or "Persistent Memory" that is fully coherent as if the memory
    was attached to the typical CPU memory controller.

    With the CXL-2.0 specification a PCI endpoint can implement a "Type-3"
    device interface and give the operating system control over "Host
    Managed Device Memory". See section 2.3 Type 3 CXL Device.

    The memory range exported by the device may optionally be described by
    the platform firmware memory map, or by infrastructure like LIBNVDIMM to
    provision persistent memory capacity from one, or more, CXL.mem devices.

    A pre-requisite for Linux-managed memory-capacity provisioning is this
    cxl_mem driver that can speak the mailbox protocol defined in section
    8.2.8.4 Mailbox Registers.

    For now just land the initial driver boiler-plate and Documentation/
    infrastructure.

    Signed-off-by: Ben Widawsky
    Reviewed-by: Jonathan Cameron
    Acked-by: David Rientjes (v1)
    Cc: Jonathan Corbet
    Link: https://www.computeexpresslink.org/download-the-specification
    Link: https://lore.kernel.org/r/20210217040958.1354670-2-ben.widawsky@intel.com
    Signed-off-by: Dan Williams

    Dan Williams
     

16 Feb, 2021

1 commit


16 Dec, 2020

1 commit

  • …/git/arnd/asm-generic

    Pull asm-generic cross-architecture timer cleanup from Arnd Bergmann:
    "This cleans up two ancient timer features that were never completed in
    the past, CONFIG_GENERIC_CLOCKEVENTS and CONFIG_ARCH_USES_GETTIMEOFFSET.

    There was only one user left for the ARCH_USES_GETTIMEOFFSET variant
    of clocksource implementations, the ARM EBSA110 platform. Rather than
    changing to use modern timekeeping, we remove the platform entirely as
    Russell no longer uses his machine and nobody else seems to have one
    any more.

    The conditional code for using arch_gettimeoffset() is removed as a
    result.

    For CONFIG_GENERIC_CLOCKEVENTS, there are still a couple of platforms
    not using clockevent drivers: parisc, ia64, most of m68k, and one Arm
    platform. These all do timer ticks slighly differently, and this gets
    cleaned up to the point they at least all call the same helper
    function.

    Instead of most platforms using 'select GENERIC_CLOCKEVENTS' in
    Kconfig, the polarity is now reversed, with the few remaining ones
    selecting LEGACY_TIMER_TICK instead"

    * tag 'asm-generic-timers-5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic:
    timekeeping: default GENERIC_CLOCKEVENTS to enabled
    timekeeping: remove xtime_update
    m68k: remove timer_interrupt() function
    m68k: change remaining timers to legacy_timer_tick
    m68k: m68328: use legacy_timer_tick()
    m68k: sun3/sun3c: use legacy_timer_tick
    m68k: split heartbeat out of timer function
    m68k: coldfire: use legacy_timer_tick()
    parisc: use legacy_timer_tick
    ARM: rpc: use legacy_timer_tick
    ia64: convert to legacy_timer_tick
    timekeeping: add CONFIG_LEGACY_TIMER_TICK
    timekeeping: remove arch_gettimeoffset
    net: remove am79c961a driver
    ARM: remove ebsa110 platform

    Linus Torvalds
     

02 Dec, 2020

1 commit

  • drivers/vdpa/mlx5/ uses vhost_iotlb*() interfaces, so select
    VHOST_IOTLB to make them be built.

    However, if VHOST_IOTLB is the only VHOST symbol that is
    set/enabled, the object file still won't be built because
    drivers/Makefile won't descend into drivers/vhost/ to build it,
    so make drivers/Makefile build the needed binary whenever
    VHOST_IOTLB is set, like it does for VHOST_RING.

    Fixes these build errors:
    ERROR: modpost: "vhost_iotlb_itree_next" [drivers/vdpa/mlx5/mlx5_vdpa.ko] undefined!
    ERROR: modpost: "vhost_iotlb_itree_first" [drivers/vdpa/mlx5/mlx5_vdpa.ko] undefined!

    Fixes: 29064bfdabd5 ("vdpa/mlx5: Add support library for mlx5 VDPA implementation")
    Fixes: aff90770e54c ("vdpa/mlx5: Fix dependency on MLX5_CORE")
    Reported-by: kernel test robot
    Signed-off-by: Randy Dunlap
    Cc: Eli Cohen
    Cc: Parav Pandit
    Cc: "Michael S. Tsirkin"
    Cc: Jason Wang
    Cc: virtualization@lists.linux-foundation.org
    Cc: Saeed Mahameed
    Cc: Leon Romanovsky
    Cc: netdev@vger.kernel.org
    Link: https://lore.kernel.org/r/20201128213905.27409-1-rdunlap@infradead.org
    Signed-off-by: Michael S. Tsirkin
    Acked-by: Jason Wang

    Randy Dunlap
     

31 Oct, 2020

1 commit


09 Apr, 2020

1 commit

  • Pull virtio updates from Michael Tsirkin:

    - Some bug fixes

    - The new vdpa subsystem with two first drivers

    * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
    virtio-balloon: Revert "virtio-balloon: Switch back to OOM handler for VIRTIO_BALLOON_F_DEFLATE_ON_OOM"
    vdpa: move to drivers/vdpa
    virtio: Intel IFC VF driver for VDPA
    vdpasim: vDPA device simulator
    vhost: introduce vDPA-based backend
    virtio: introduce a vDPA based transport
    vDPA: introduce vDPA bus
    vringh: IOTLB support
    vhost: factor out IOTLB
    vhost: allow per device message handler
    vhost: refine vhost and vringh kconfig
    virtio-balloon: Switch back to OOM handler for VIRTIO_BALLOON_F_DEFLATE_ON_OOM
    virtio-net: Introduce hash report feature
    virtio-net: Introduce RSS receive steering feature
    virtio-net: Introduce extended RSC feature
    tools/virtio: option to build an out of tree module

    Linus Torvalds
     

02 Apr, 2020

1 commit

  • We have both vhost and virtio drivers that depend on vdpa.
    It's easier to locate it at a top level directory otherwise
    we run into issues e.g. if vhost is built-in but virtio
    is modular. Let's just move it up a level.

    Reported-by: Randy Dunlap
    Signed-off-by: Michael S. Tsirkin

    Michael S. Tsirkin
     

24 Mar, 2020

1 commit


18 Dec, 2019

1 commit

  • Since the driver now supports USB4 which is the standard going forward,
    update the Kconfig entry to mention this and rename the entry from
    CONFIG_THUNDERBOLT to CONFIG_USB4 instead to help people to find the
    correct option if they want to enable USB4.

    Also do the same for Thunderbolt network driver.

    Signed-off-by: Mika Westerberg
    Cc: David S. Miller
    Link: https://lore.kernel.org/r/20191217123345.31850-6-mika.westerberg@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman

    Mika Westerberg
     

19 Sep, 2019

2 commits

  • Pull staging and IIO driver updates from Greg KH:
    "Here is the big staging/iio driver update for 5.4-rc1.

    Lots of churn here, with a few driver/filesystems moving out of
    staging finally:

    - erofs moved out of staging

    - greybus core code moved out of staging

    Along with that, a new filesytem has been added:

    - extfat

    to provide support for those devices requiring that filesystem (i.e.
    transfer devices to/from windows systems or printers)

    Other than that, there a number of new IIO drivers, and lots and lots
    and lots of staging driver cleanups and minor fixes as people continue
    to dig into those for easy changes.

    All of these have been in linux-next for a while with no reported
    issues"

    * tag 'staging-5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (453 commits)
    Staging: gasket: Use temporaries to reduce line length.
    Staging: octeon: Avoid several usecases of strcpy
    staging: vhciq_core: replace snprintf with scnprintf
    staging: wilc1000: avoid twice IRQ handler execution for each single interrupt
    staging: wilc1000: remove unused interrupt status handling code
    staging: fbtft: make several arrays static const, makes object smaller
    staging: rtl8188eu: make two arrays static const, makes object smaller
    staging: rtl8723bs: core: Remove Macro "IS_MAC_ADDRESS_BROADCAST"
    dt-bindings: anybus-controller: move to staging/ tree
    staging: emxx_udc: remove local TRUE/FALSE definition
    staging: wilc1000: look for rtc_clk clock
    staging: dt-bindings: wilc1000: add optional rtc_clk property
    staging: nvec: make use of devm_platform_ioremap_resource
    staging: exfat: drop unused function parameter
    Staging: exfat: Avoid use of strcpy
    staging: exfat: use integer constants
    staging: exfat: cleanup spacing for casts
    staging: exfat: cleanup spacing for operators
    staging: rtl8723bs: hal: remove redundant variable n
    staging: pi433: Fix typo in documentation
    ...

    Linus Torvalds
     
  • Pull USB updates from Greg KH:
    "Here is the big set of USB patches for 5.4-rc1.

    Two major chunks of code are moving out of the tree and into the
    staging directory, uwb and wusb (wireless USB support), because there
    are no devices that actually use this protocol anymore, and what we
    have today probably doesn't work at all given that the maintainers
    left many many years ago. So move it to staging where it will be
    removed in a few releases if no one screams.

    Other than that, lots of little things. The usual gadget and xhci and
    usb serial driver updates, along with a bunch of sysfs file cleanups
    due to the driver core changes to support that. Nothing really major,
    just constant forward progress.

    All of these have been in linux-next for a while with no reported
    issues"

    * tag 'usb-5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (159 commits)
    USB: usbcore: Fix slab-out-of-bounds bug during device reset
    usb: cdns3: Remove redundant dev_err call in cdns3_probe()
    USB: rio500: Fix lockdep violation
    USB: rio500: simplify locking
    usb: mtu3: register a USB Role Switch for dual role mode
    usb: common: add USB GPIO based connection detection driver
    usb: common: create Kconfig file
    usb: roles: get usb-role-switch from parent
    usb: roles: Add fwnode_usb_role_switch_get() function
    device connection: Add fwnode_connection_find_match()
    usb: roles: Introduce stubs for the exiting functions in role.h
    dt-bindings: usb: mtu3: add properties about USB Role Switch
    dt-bindings: usb: add binding for USB GPIO based connection detection driver
    dt-bindings: connector: add optional properties for Type-B
    dt-binding: usb: add usb-role-switch property
    usbip: Implement SG support to vhci-hcd and stub driver
    usb: roles: intel: Enable static DRD mode for role switch
    xhci-ext-caps.c: Add property to disable Intel SW switch
    usb: dwc3: remove generic PHY calibrate() calls
    usb: core: phy: add support for PHY calibration
    ...

    Linus Torvalds
     

28 Aug, 2019

1 commit

  • The Greybus core code has been stable for a long time, and has been
    shipping for many years in millions of phones. With the advent of a
    recent Google Summer of Code project, and a number of new devices in the
    works from various companies, it is time to get the core greybus code
    out of staging as it really is going to be with us for a while.

    Cc: Johan Hovold
    Cc: linux-kernel@vger.kernel.org
    Cc: greybus-dev@lists.linaro.org
    Acked-by: Viresh Kumar
    Acked-by: Alex Elder
    Link: https://lore.kernel.org/r/20190825055429.18547-9-gregkh@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

17 Aug, 2019

1 commit

  • The IOC3 is a multi-function chip seen on SGI SN2 and some SGI
    MIPS systems. This removes the last bit of SN2 specific support,
    while the bits used by the mips ports are still around (and being
    substantially rewritten at the moment).

    Signed-off-by: Christoph Hellwig
    Link: https://lkml.kernel.org/r/20190813072514.23299-14-hch@lst.de
    Signed-off-by: Tony Luck

    Christoph Hellwig
     

08 Aug, 2019

1 commit


12 Jun, 2019

1 commit

  • The FMC subsystem was created in 2012 with the ambition to
    drive development of drivers for this hardware upstream.

    The current implementation has architectural flaws and would
    need to be revamped using real hardware to something that can
    reuse existing kernel abstractions in the subsystems for e.g.
    I2C, FPGA and GPIO.

    We have concluded that for the mainline kernel it will be
    better to delete the subsystem and start over with a clean
    slate when/if an active maintainer steps up.

    For details see:
    https://lkml.org/lkml/2018/10/29/534

    Suggested-by: Federico Vaga
    Cc: Pat Riehecky
    Acked-by: Alessandro Rubini
    Signed-off-by: Federico Vaga
    Signed-off-by: Linus Walleij

    Linus Walleij
     

26 Apr, 2019

1 commit

  • This patch introduces the Generic Counter interface for supporting
    counter devices.

    In the context of the Generic Counter interface, a counter is defined as
    a device that reports one or more "counts" based on the state changes of
    one or more "signals" as evaluated by a defined "count function."

    Driver callbacks should be provided to communicate with the device: to
    read and write various Signals and Counts, and to set and get the
    "action mode" and "count function" for various Synapses and Counts
    respectively.

    To support a counter device, a driver must first allocate the available
    Counter Signals via counter_signal structures. These Signals should
    be stored as an array and set to the signals array member of an
    allocated counter_device structure before the Counter is registered to
    the system.

    Counter Counts may be allocated via counter_count structures, and
    respective Counter Signal associations (Synapses) made via
    counter_synapse structures. Associated counter_synapse structures are
    stored as an array and set to the the synapses array member of the
    respective counter_count structure. These counter_count structures are
    set to the counts array member of an allocated counter_device structure
    before the Counter is registered to the system.

    A counter device is registered to the system by passing the respective
    initialized counter_device structure to the counter_register function;
    similarly, the counter_unregister function unregisters the respective
    Counter. The devm_counter_register and devm_counter_unregister functions
    serve as device memory-managed versions of the counter_register and
    counter_unregister functions respectively.

    Reviewed-by: Jonathan Cameron
    Signed-off-by: William Breathitt Gray
    Signed-off-by: Greg Kroah-Hartman

    William Breathitt Gray
     

11 Mar, 2019

1 commit

  • Pull IOMMU updates from Joerg Roedel:

    - A big cleanup and optimization patch-set for the Tegra GART driver

    - Documentation updates and fixes for the IOMMU-API

    - Support for page request in Intel VT-d scalable mode

    - Intel VT-d dma_[un]map_resource() support

    - Updates to the ATS enabling code for PCI (acked by Bjorn) and Intel
    VT-d to align with the latest version of the ATS spec

    - Relaxed IRQ source checking in the Intel VT-d driver for some aliased
    devices, needed for future devices which send IRQ messages from more
    than on request-ID

    - IRQ remapping driver for Hyper-V

    - Patches to make generic IOVA and IO-Page-Table code usable outside of
    the IOMMU code

    - Various other small fixes and cleanups

    * tag 'iommu-updates-v5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (60 commits)
    iommu/vt-d: Get domain ID before clear pasid entry
    iommu/vt-d: Fix NULL pointer reference in intel_svm_bind_mm()
    iommu/vt-d: Set context field after value initialized
    iommu/vt-d: Disable ATS support on untrusted devices
    iommu/mediatek: Fix semicolon code style issue
    MAINTAINERS: Add Hyper-V IOMMU driver into Hyper-V CORE AND DRIVERS scope
    iommu/hyper-v: Add Hyper-V stub IOMMU driver
    x86/Hyper-V: Set x2apic destination mode to physical when x2apic is available
    PCI/ATS: Add inline to pci_prg_resp_pasid_required()
    iommu/vt-d: Check identity map for hot-added devices
    iommu: Fix IOMMU debugfs fallout
    iommu: Document iommu_ops.is_attach_deferred()
    iommu: Document iommu_ops.iotlb_sync_map()
    iommu/vt-d: Enable ATS only if the device uses page aligned address.
    PCI/ATS: Add pci_ats_page_aligned() interface
    iommu/vt-d: Fix PRI/PASID dependency issue.
    PCI/ATS: Add pci_prg_resp_pasid_required() interface.
    iommu/vt-d: Allow interrupts from the entire bus for aliased devices
    iommu/vt-d: Add helper to set an IRTE to verify only the bus number
    iommu: Fix flush_tlb_all typo
    ...

    Linus Torvalds
     

22 Jan, 2019

1 commit

  • This patch introduces a new API to get requirements and configure the
    interconnect buses across the entire chipset to fit with the current
    demand.

    The API is using a consumer/provider-based model, where the providers are
    the interconnect buses and the consumers could be various drivers.
    The consumers request interconnect resources (path) between endpoints and
    set the desired constraints on this data flow path. The providers receive
    requests from consumers and aggregate these requests for all master-slave
    pairs on that path. Then the providers configure each node along the path
    to support a bandwidth that satisfies all bandwidth requests that cross
    through that node. The topology could be complicated and multi-tiered and
    is SoC specific.

    Reviewed-by: Evan Green
    Signed-off-by: Georgi Djakov
    Signed-off-by: Greg Kroah-Hartman

    Georgi Djakov
     

11 Jan, 2019

1 commit

  • Drivers such as the Intel IPU3 ImgU driver use the IOVA library to manage
    the device's own virtual address space while not implementing the IOMMU
    API. Currently the IOVA library is only compiled if the IOMMU support is
    enabled, resulting into a failure during linking due to missing symbols.

    Fix this by defining IOVA library Kconfig bits independently of IOMMU
    support configuration, and descending to the iommu directory
    unconditionally during the build.

    Signed-off-by: Sakari Ailus
    Signed-off-by: Joerg Roedel

    Sakari Ailus
     

12 Nov, 2018

1 commit

  • Add core infrastructure to support I3C in Linux and document it.

    This infrastructure adds basic I3C support. Advanced features will be
    added afterwards.

    There are a few design choices that are worth mentioning because they
    impact the way I3C device drivers can interact with their devices:

    - all functions used to send I3C/I2C frames must be called in
    non-atomic context. Mainly done this way to ease implementation, but
    this is not set in stone, and if anyone needs async support, new
    functions can be added later on.
    - the bus element is a separate object, but it's tightly coupled with
    the master object. We thus have a 1:1 relationship between i3c_bus
    and i3c_master_controller objects, and if 2 master controllers are
    connected to the same bus and both exposed to the same Linux instance
    they will appear as two distinct busses, and devices on this bus will
    be exposed twice.
    - I2C backward compatibility has been designed to be transparent to I2C
    drivers and the I2C subsystem. The I3C master just registers an I2C
    adapter which creates a new I2C bus. I'd say that, from a
    representation PoV it's not ideal because what should appear as a
    single I3C bus exposing I3C and I2C devices here appears as 2
    different buses connected to each other through the parenting (the
    I3C master is the parent of the I2C and I3C busses).
    On the other hand, I don't see a better solution if we want something
    that is not invasive.

    Missing features:
    - I3C HDR modes are not supported
    - no support for multi-master and the associated concepts (mastership
    handover, support for secondary masters, ...)
    - I2C devices can only be described using DT because this is the only
    use case I have. However, the framework can easily be extended with
    ACPI and board info support
    - I3C slave framework. This has been completely omitted, but shouldn't
    have a huge impact on the I3C framework because I3C slaves don't see
    the whole bus, it's only about handling master requests and generating
    IBIs. Some of the struct, constant and enum definitions could be
    shared, but most of the I3C slave framework logic will be different

    Signed-off-by: Boris Brezillon
    Reviewed-by: Arnd Bergmann
    Acked-by: Greg Kroah-Hartman

    Boris Brezillon
     

19 Aug, 2018

1 commit

  • Pull char/misc driver updates from Greg KH:
    "Here is the bit set of char/misc drivers for 4.19-rc1

    There is a lot here, much more than normal, seems like everyone is
    writing new driver subsystems these days... Anyway, major things here
    are:

    - new FSI driver subsystem, yet-another-powerpc low-level hardware
    bus

    - gnss, finally an in-kernel GPS subsystem to try to tame all of the
    crazy out-of-tree drivers that have been floating around for years,
    combined with some really hacky userspace implementations. This is
    only for GNSS receivers, but you have to start somewhere, and this
    is great to see.

    Other than that, there are new slimbus drivers, new coresight drivers,
    new fpga drivers, and loads of DT bindings for all of these and
    existing drivers.

    All of these have been in linux-next for a while with no reported
    issues"

    * tag 'char-misc-4.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (255 commits)
    android: binder: Rate-limit debug and userspace triggered err msgs
    fsi: sbefifo: Bump max command length
    fsi: scom: Fix NULL dereference
    misc: mic: SCIF Fix scif_get_new_port() error handling
    misc: cxl: changed asterisk position
    genwqe: card_base: Use true and false for boolean values
    misc: eeprom: assignment outside the if statement
    uio: potential double frees if __uio_register_device() fails
    eeprom: idt_89hpesx: clean up an error pointer vs NULL inconsistency
    misc: ti-st: Fix memory leak in the error path of probe()
    android: binder: Show extra_buffers_size in trace
    firmware: vpd: Fix section enabled flag on vpd_section_destroy
    platform: goldfish: Retire pdev_bus
    goldfish: Use dedicated macros instead of manual bit shifting
    goldfish: Add missing includes to goldfish.h
    mux: adgs1408: new driver for Analog Devices ADGS1408/1409 mux
    dt-bindings: mux: add adi,adgs1408
    Drivers: hv: vmbus: Cleanup synic memory free path
    Drivers: hv: vmbus: Remove use of slow_virt_to_phys()
    Drivers: hv: vmbus: Reset the channel callback in vmbus_onoffer_rescind()
    ...

    Linus Torvalds
     

03 Aug, 2018

1 commit


28 Jun, 2018

1 commit

  • Add a new subsystem for GNSS (e.g. GPS) receivers.

    While GNSS receivers are typically accessed using a UART interface they
    often also support other I/O interfaces such as I2C, SPI and USB, while
    yet other devices use iomem or even some form of remote-processor
    messaging (rpmsg).

    The new GNSS subsystem abstracts the underlying interface and provides a
    new "gnss" class type, which exposes a character-device interface (e.g.
    /dev/gnss0) to user space. This allows GNSS receivers to have a
    representation in the Linux device model, something which is important
    not least for power management purposes.

    Note that the character-device interface provides raw access to whatever
    protocol the receiver is (currently) using, such as NMEA 0183, UBX or
    SiRF Binary. These protocols are expected to be continued to be handled
    by user space for the time being, even if some hybrid solutions are also
    conceivable (e.g. to have kernel drivers issue management commands).

    This will still allow for better platform integration by allowing GNSS
    devices and their resources (e.g. regulators and enable-gpios) to be
    described by firmware and managed by kernel drivers rather than
    platform-specific scripts and services.

    While the current interface is kept minimal, it could be extended using
    IOCTLs, sysfs or uevents as needs and proper abstraction levels are
    identified and determined (e.g. for device and feature identification).

    Signed-off-by: Johan Hovold
    Signed-off-by: Greg Kroah-Hartman

    Johan Hovold
     

07 Feb, 2018

1 commit

  • Pull PCI updates from Bjorn Helgaas:

    - skip AER driver error recovery callbacks for correctable errors
    reported via ACPI APEI, as we already do for errors reported via the
    native path (Tyler Baicar)

    - fix DPC shared interrupt handling (Alex Williamson)

    - print full DPC interrupt number (Keith Busch)

    - enable DPC only if AER is available (Keith Busch)

    - simplify DPC code (Bjorn Helgaas)

    - calculate ASPM L1 substate parameter instead of hardcoding it (Bjorn
    Helgaas)

    - enable Latency Tolerance Reporting for ASPM L1 substates (Bjorn
    Helgaas)

    - move ASPM internal interfaces out of public header (Bjorn Helgaas)

    - allow hot-removal of VGA devices (Mika Westerberg)

    - speed up unplug and shutdown by assuming Thunderbolt controllers
    don't support Command Completed events (Lukas Wunner)

    - add AtomicOps support for GPU and Infiniband drivers (Felix Kuehling,
    Jay Cornwall)

    - expose "ari_enabled" in sysfs to help NIC naming (Stuart Hayes)

    - clean up PCI DMA interface usage (Christoph Hellwig)

    - remove PCI pool API (replaced with DMA pool) (Romain Perier)

    - deprecate pci_get_bus_and_slot(), which assumed PCI domain 0 (Sinan
    Kaya)

    - move DT PCI code from drivers/of/ to drivers/pci/ (Rob Herring)

    - add PCI-specific wrappers for dev_info(), etc (Frederick Lawler)

    - remove warnings on sysfs mmap failure (Bjorn Helgaas)

    - quiet ROM validation messages (Alex Deucher)

    - remove redundant memory alloc failure messages (Markus Elfring)

    - fill in types for compile-time VGA and other I/O port resources
    (Bjorn Helgaas)

    - make "pci=pcie_scan_all" work for Root Ports as well as Downstream
    Ports to help AmigaOne X1000 (Bjorn Helgaas)

    - add SPDX tags to all PCI files (Bjorn Helgaas)

    - quirk Marvell 9128 DMA aliases (Alex Williamson)

    - quirk broken INTx disable on Ceton InfiniTV4 (Bjorn Helgaas)

    - fix CONFIG_PCI=n build by adding dummy pci_irqd_intx_xlate() (Niklas
    Cassel)

    - use DMA API to get MSI address for DesignWare IP (Niklas Cassel)

    - fix endpoint-mode DMA mask configuration (Kishon Vijay Abraham I)

    - fix ARTPEC-6 incorrect IS_ERR() usage (Wei Yongjun)

    - add support for ARTPEC-7 SoC (Niklas Cassel)

    - add endpoint-mode support for ARTPEC (Niklas Cassel)

    - add Cadence PCIe host and endpoint controller driver (Cyrille
    Pitchen)

    - handle multiple INTx status bits being set in dra7xx (Vignesh R)

    - translate dra7xx hwirq range to fix INTD handling (Vignesh R)

    - remove deprecated Exynos PHY initialization code (Jaehoon Chung)

    - fix MSI erratum workaround for HiSilicon Hip06/Hip07 (Dongdong Liu)

    - fix NULL pointer dereference in iProc BCMA driver (Ray Jui)

    - fix Keystone interrupt-controller-node lookup (Johan Hovold)

    - constify qcom driver structures (Julia Lawall)

    - rework Tegra config space mapping to increase space available for
    endpoints (Vidya Sagar)

    - simplify Tegra driver by using bus->sysdata (Manikanta Maddireddy)

    - remove PCI_REASSIGN_ALL_BUS usage on Tegra (Manikanta Maddireddy)

    - add support for Global Fabric Manager Server (GFMS) event to
    Microsemi Switchtec switch driver (Logan Gunthorpe)

    - add IDs for Switchtec PSX 24xG3 and PSX 48xG3 (Kelvin Cao)

    * tag 'pci-v4.16-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (140 commits)
    PCI: cadence: Add EndPoint Controller driver for Cadence PCIe controller
    dt-bindings: PCI: cadence: Add DT bindings for Cadence PCIe endpoint controller
    PCI: endpoint: Fix EPF device name to support multi-function devices
    PCI: endpoint: Add the function number as argument to EPC ops
    PCI: cadence: Add host driver for Cadence PCIe controller
    dt-bindings: PCI: cadence: Add DT bindings for Cadence PCIe host controller
    PCI: Add vendor ID for Cadence
    PCI: Add generic function to probe PCI host controllers
    PCI: generic: fix missing call of pci_free_resource_list()
    PCI: OF: Add generic function to parse and allocate PCI resources
    PCI: Regroup all PCI related entries into drivers/pci/Makefile
    PCI/DPC: Reformat DPC register definitions
    PCI/DPC: Add and use DPC Status register field definitions
    PCI/DPC: Squash dpc_rp_pio_get_info() into dpc_process_rp_pio_error()
    PCI/DPC: Remove unnecessary RP PIO register structs
    PCI/DPC: Push dpc->rp_pio_status assignment into dpc_rp_pio_get_info()
    PCI/DPC: Squash dpc_rp_pio_print_error() into dpc_rp_pio_get_info()
    PCI/DPC: Make RP PIO log size check more generic
    PCI/DPC: Rename local "status" to "dpc_status"
    PCI/DPC: Squash dpc_rp_pio_print_tlp_header() into dpc_rp_pio_print_error()
    ...

    Linus Torvalds
     

02 Feb, 2018

1 commit

  • Pull char/misc driver updates from Greg KH:
    "Here is the big pull request for char/misc drivers for 4.16-rc1.

    There's a lot of stuff in here. Three new driver subsystems were added
    for various types of hardware busses:

    - siox
    - slimbus
    - soundwire

    as well as a new vboxguest subsystem for the VirtualBox hypervisor
    drivers.

    There's also big updates from the FPGA subsystem, lots of Android
    binder fixes, the usual handful of hyper-v updates, and lots of other
    smaller driver updates.

    All of these have been in linux-next for a long time, with no reported
    issues"

    * tag 'char-misc-4.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (155 commits)
    char: lp: use true or false for boolean values
    android: binder: use VM_ALLOC to get vm area
    android: binder: Use true and false for boolean values
    lkdtm: fix handle_irq_event symbol for INT_HW_IRQ_EN
    EISA: Delete error message for a failed memory allocation in eisa_probe()
    EISA: Whitespace cleanup
    misc: remove AVR32 dependencies
    virt: vbox: Add error mapping for VERR_INVALID_NAME and VERR_NO_MORE_FILES
    soundwire: Fix a signedness bug
    uio_hv_generic: fix new type mismatch warnings
    uio_hv_generic: fix type mismatch warnings
    auxdisplay: img-ascii-lcd: add missing MODULE_DESCRIPTION/AUTHOR/LICENSE
    uio_hv_generic: add rescind support
    uio_hv_generic: check that host supports monitor page
    uio_hv_generic: create send and receive buffers
    uio: document uio_hv_generic regions
    doc: fix documentation about uio_hv_generic
    vmbus: add monitor_id and subchannel_id to sysfs per channel
    vmbus: fix ABI documentation
    uio_hv_generic: use ISR callback method
    ...

    Linus Torvalds
     

31 Jan, 2018

1 commit

  • Clean up drivers/Makefile by moving the pci/endpoint and pci/dwc entries
    from drivers/Makefile into drivers/pci/Makefile.

    Since we don't want to introduce any dependency between CONFIG_PCI and
    CONFIG_PCI_ENDPOINT, we now always execute drivers/pci/Makefile.

    Hence all Makefiles in drivers/pci/ were updated accordingly so no file is
    compiled when CONFIG_PCI is not defined.

    Also, we add a comment to reinforce that EPC and EPF libraries must be
    initialized before their users. Hence built-in EPC drivers, such as
    those of Designware, are linked after the endpoint core libraries.

    Finally, we add another comment to explain why obj-y has been chosen
    instead of obj-$(CONFIG_PCIE_DW) to parse the dwc/ sub-folder.

    Signed-off-by: Cyrille Pitchen
    Signed-off-by: Lorenzo Pieralisi

    Cyrille Pitchen
     

19 Dec, 2017

3 commits

  • This adds the base SoundWire bus type, bus and driver registration.
    along with changes to module device table for new SoundWire
    device type.

    Signed-off-by: Sanyog Kale
    Reviewed-by: Philippe Ombredanne
    Acked-By: Pierre-Louis Bossart
    Reviewed-by: Takashi Iwai
    Acked-by: Greg Kroah-Hartman
    Signed-off-by: Vinod Koul
    Signed-off-by: Greg Kroah-Hartman

    Vinod Koul
     
  • SLIMbus (Serial Low Power Interchip Media Bus) is a specification
    developed by MIPI (Mobile Industry Processor Interface) alliance.
    SLIMbus is a 2-wire implementation, which is used to communicate with
    peripheral components like audio-codec.
    SLIMbus uses Time-Division-Multiplexing to accommodate multiple data
    channels, and control channel. Control channel has messages to do
    device-enumeration, messages to send/receive control-data to/from
    SLIMbus devices, messages for port/channel management, and messages to
    do bandwidth allocation.
    The framework supports multiple instances of the bus (1 controller per
    bus), and multiple slave devices per controller.

    This patch adds support to basic silmbus core which includes support to
    SLIMbus type, slimbus device registeration and some basic data structures.

    Signed-off-by: Sagar Dharia
    Signed-off-by: Srinivas Kandagatla
    Reviwed-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Sagar Dharia
     
  • SIOX is a bus system invented at Eckelmann AG to control their building
    management and refrigeration systems. Traditionally the bus was
    implemented on custom microcontrollers, today Linux based machines are
    in use, too.

    The topology on a SIOX bus looks as follows:

    ,------->--DCLK-->---------------+----------------------.
    ^ v v
    ,--------. ,----------------------. ,------
    | | | ,--------------. | |
    | |--->--DOUT-->---|->-|shift register|->-|--->---|
    | | | `--------------' | |
    | master | | device | | device
    | | | ,--------------. | |
    | |---
    Signed-off-by: Uwe Kleine-König
    Signed-off-by: Greg Kroah-Hartman

    Uwe Kleine-König
     

08 Dec, 2017

1 commit

  • Move the visorbus driver out of staging (drivers/staging/unisys/visorbus)
    and to drivers/visorbus. Modify the configuration and makefiles so they
    now reference the new location. The s-Par header file visorbus.h that is
    referenced by all s-Par drivers, is being moved into include/linux.

    Signed-off-by: David Kershner
    Reviewed-by: Tim Sell
    Signed-off-by: Greg Kroah-Hartman

    David Kershner
     

28 Nov, 2017

1 commit

  • PHY drivers can use ULPI interfaces when CONFIG_USB (which is host side
    support) is not enabled, so also build drivers/usb/ when CONFIG_USB_SUPPORT
    is enabled so that drivers/usb/common/ is built.

    ERROR: "ulpi_unregister_driver" [drivers/phy/ti/phy-tusb1210.ko] undefined!
    ERROR: "__ulpi_register_driver" [drivers/phy/ti/phy-tusb1210.ko] undefined!
    ERROR: "ulpi_read" [drivers/phy/ti/phy-tusb1210.ko] undefined!
    ERROR: "ulpi_write" [drivers/phy/ti/phy-tusb1210.ko] undefined!
    ERROR: "ulpi_unregister_driver" [drivers/phy/qualcomm/phy-qcom-usb-hs.ko] undefined!
    ERROR: "__ulpi_register_driver" [drivers/phy/qualcomm/phy-qcom-usb-hs.ko] undefined!
    ERROR: "ulpi_write" [drivers/phy/qualcomm/phy-qcom-usb-hs.ko] undefined!

    Signed-off-by: Randy Dunlap
    Signed-off-by: Greg Kroah-Hartman

    Randy Dunlap
     

13 Nov, 2017

1 commit

  • * pm-cpufreq-sched:
    cpufreq: schedutil: Reset cached_raw_freq when not in sync with next_freq

    * pm-opp:
    PM / OPP: Add dev_pm_opp_{un}register_get_pstate_helper()
    PM / OPP: Support updating performance state of device's power domain
    PM / OPP: add missing of_node_put() for of_get_cpu_node()
    PM / OPP: Rename dev_pm_opp_register_put_opp_helper()
    PM / OPP: Add missing of_node_put(np)
    PM / OPP: Move error message to debug level
    PM / OPP: Use snprintf() to avoid kasprintf() and kfree()
    PM / OPP: Move the OPP directory out of power/

    Rafael J. Wysocki
     

02 Nov, 2017

1 commit

  • Many source files in the tree are missing licensing information, which
    makes it harder for compliance tools to determine the correct license.

    By default all files without license information are under the default
    license of the kernel, which is GPL version 2.

    Update the files which contain no license information with the 'GPL-2.0'
    SPDX license identifier. The SPDX identifier is a legally binding
    shorthand, which can be used instead of the full boiler plate text.

    This patch is based on work done by Thomas Gleixner and Kate Stewart and
    Philippe Ombredanne.

    How this work was done:

    Patches were generated and checked against linux-4.14-rc6 for a subset of
    the use cases:
    - file had no licensing information it it.
    - file was a */uapi/* one with no licensing information in it,
    - file was a */uapi/* one with existing licensing information,

    Further patches will be generated in subsequent months to fix up cases
    where non-standard license headers were used, and references to license
    had to be inferred by heuristics based on keywords.

    The analysis to determine which SPDX License Identifier to be applied to
    a file was done in a spreadsheet of side by side results from of the
    output of two independent scanners (ScanCode & Windriver) producing SPDX
    tag:value files created by Philippe Ombredanne. Philippe prepared the
    base worksheet, and did an initial spot review of a few 1000 files.

    The 4.13 kernel was the starting point of the analysis with 60,537 files
    assessed. Kate Stewart did a file by file comparison of the scanner
    results in the spreadsheet to determine which SPDX license identifier(s)
    to be applied to the file. She confirmed any determination that was not
    immediately clear with lawyers working with the Linux Foundation.

    Criteria used to select files for SPDX license identifier tagging was:
    - Files considered eligible had to be source code files.
    - Make and config files were included as candidates if they contained >5
    lines of source
    - File already had some variant of a license header in it (even if
    Reviewed-by: Philippe Ombredanne
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

03 Oct, 2017

1 commit

  • The drivers/base/power/ directory is special and contains code related
    to power management core like system suspend/resume, hibernation, etc.
    It was fine to keep the OPP code inside it when we had just one file for
    it, but it is growing now and already has a directory for itself.

    Lets move it directly under drivers/ directory, just like cpufreq and
    cpuidle.

    Signed-off-by: Viresh Kumar
    Acked-by: Stephen Boyd
    Signed-off-by: Rafael J. Wysocki

    Viresh Kumar
     

24 Aug, 2017

1 commit

  • Lguest seems to be rather unused these days. It has seen only patches
    ensuring it still builds the last two years and its official state is
    "Odd Fixes".

    Remove it in order to be able to clean up the paravirt code.

    Signed-off-by: Juergen Gross
    Acked-by: Rusty Russell
    Acked-by: Thomas Gleixner
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: boris.ostrovsky@oracle.com
    Cc: lguest@lists.ozlabs.org
    Cc: rusty@rustcorp.com.au
    Cc: xen-devel@lists.xenproject.org
    Link: http://lkml.kernel.org/r/20170816173157.8633-3-jgross@suse.com
    Signed-off-by: Ingo Molnar

    Juergen Gross
     

03 Jun, 2017

1 commit

  • Add a new minimalistic subsystem that handles multiplexer controllers.
    When multiplexers are used in various places in the kernel, and the
    same multiplexer controller can be used for several independent things,
    there should be one place to implement support for said multiplexer
    controller.

    A single multiplexer controller can also be used to control several
    parallel multiplexers, that are in turn used by different subsystems
    in the kernel, leading to a need to coordinate multiplexer accesses.
    The multiplexer subsystem handles this coordination.

    Thanks go out to Lars-Peter Clausen, Jonathan Cameron, Rob Herring,
    Wolfram Sang, Paul Gortmaker, Dan Carpenter, Colin Ian King, Greg
    Kroah-Hartman and last but certainly not least to Philipp Zabel for
    helpful comments, reviews, patches and general encouragement!

    Reviewed-by: Jonathan Cameron
    Signed-off-by: Peter Rosin
    Reviewed-by: Philipp Zabel
    Tested-by: Philipp Zabel
    Signed-off-by: Greg Kroah-Hartman

    Peter Rosin
     

11 May, 2017

1 commit

  • Pull TEE driver infrastructure and OP-TEE drivers from Arnd Bergmann:
    "This introduces a generic TEE framework in the kernel, to handle
    trusted environemtns (security coprocessor or software implementations
    such as OP-TEE/TrustZone). I'm sending it separately from the other
    arm-soc driver changes to give it a little more visibility, once the
    subsystem is merged, we will likely keep this in the arm₋soc drivers
    branch or have the maintainers submit pull requests directly,
    depending on the patch volume.

    I have reviewed earlier versions in the past, and have reviewed the
    latest version in person during Linaro Connect BUD17.

    Here is my overall assessment of the subsystem:

    - There is clearly demand for this, both for the generic
    infrastructure and the specific OP-TEE implementation.

    - The code has gone through a large number of reviews, and the review
    comments have all been addressed, but the reviews were not coming
    up with serious issues any more and nobody volunteered to vouch for
    the quality.

    - The user space ioctl interface is sufficient to work with the
    OP-TEE driver, and it should in principle work with other TEE
    implementations that follow the GlobalPlatform[1] standards, but it
    might need to be extended in minor ways depending on specific
    requirements of future TEE implementations

    - The main downside of the API to me is how the user space is tied to
    the TEE implementation in hardware or firmware, but uses a generic
    way to communicate with it. This seems to be an inherent problem
    with what it is trying to do, and I could not come up with any
    better solution than what is implemented here.

    For a detailed history of the patch series, see

    https://lkml.org/lkml/2017/3/10/1277"

    * tag 'armsoc-tee' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    arm64: dt: hikey: Add optee node
    Documentation: tee subsystem and op-tee driver
    tee: add OP-TEE driver
    tee: generic TEE subsystem
    dt/bindings: add bindings for optee

    Linus Torvalds
     

09 May, 2017

1 commit

  • Pull PCI updates from Bjorn Helgaas:

    - add framework for supporting PCIe devices in Endpoint mode (Kishon
    Vijay Abraham I)

    - use non-postable PCI config space mappings when possible (Lorenzo
    Pieralisi)

    - clean up and unify mmap of PCI BARs (David Woodhouse)

    - export and unify Function Level Reset support (Christoph Hellwig)

    - avoid FLR for Intel 82579 NICs (Sasha Neftin)

    - add pci_request_irq() and pci_free_irq() helpers (Christoph Hellwig)

    - short-circuit config access failures for disconnected devices (Keith
    Busch)

    - remove D3 sleep delay when possible (Adrian Hunter)

    - freeze PME scan before suspending devices (Lukas Wunner)

    - stop disabling MSI/MSI-X in pci_device_shutdown() (Prarit Bhargava)

    - disable boot interrupt quirk for ASUS M2N-LR (Stefan Assmann)

    - add arch-specific alignment control to improve device passthrough by
    avoiding multiple BARs in a page (Yongji Xie)

    - add sysfs sriov_drivers_autoprobe to control VF driver binding
    (Bodong Wang)

    - allow slots below PCI-to-PCIe "reverse bridges" (Bjorn Helgaas)

    - fix crashes when unbinding host controllers that don't support
    removal (Brian Norris)

    - add driver for MicroSemi Switchtec management interface (Logan
    Gunthorpe)

    - add driver for Faraday Technology FTPCI100 host bridge (Linus
    Walleij)

    - add i.MX7D support (Andrey Smirnov)

    - use generic MSI support for Aardvark (Thomas Petazzoni)

    - make Rockchip driver modular (Brian Norris)

    - advertise 128-byte Read Completion Boundary support for Rockchip
    (Shawn Lin)

    - advertise PCI_EXP_LNKSTA_SLC for Rockchip root port (Shawn Lin)

    - convert atomic_t to refcount_t in HV driver (Elena Reshetova)

    - add CPU IRQ affinity in HV driver (K. Y. Srinivasan)

    - fix PCI bus removal in HV driver (Long Li)

    - add support for ThunderX2 DMA alias topology (Jayachandran C)

    - add ThunderX pass2.x 2nd node MCFG quirk (Tomasz Nowicki)

    - add ITE 8893 bridge DMA alias quirk (Jarod Wilson)

    - restrict Cavium ACS quirk only to CN81xx/CN83xx/CN88xx devices
    (Manish Jaggi)

    * tag 'pci-v4.12-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (146 commits)
    PCI: Don't allow unbinding host controllers that aren't prepared
    ARM: DRA7: clockdomain: Change the CLKTRCTRL of CM_PCIE_CLKSTCTRL to SW_WKUP
    MAINTAINERS: Add PCI Endpoint maintainer
    Documentation: PCI: Add userguide for PCI endpoint test function
    tools: PCI: Add sample test script to invoke pcitest
    tools: PCI: Add a userspace tool to test PCI endpoint
    Documentation: misc-devices: Add Documentation for pci-endpoint-test driver
    misc: Add host side PCI driver for PCI test function device
    PCI: Add device IDs for DRA74x and DRA72x
    dt-bindings: PCI: dra7xx: Add DT bindings to enable unaligned access
    PCI: dwc: dra7xx: Workaround for errata id i870
    dt-bindings: PCI: dra7xx: Add DT bindings for PCI dra7xx EP mode
    PCI: dwc: dra7xx: Add EP mode support
    PCI: dwc: dra7xx: Facilitate wrapper and MSI interrupts to be enabled independently
    dt-bindings: PCI: Add DT bindings for PCI designware EP mode
    PCI: dwc: designware: Add EP mode support
    Documentation: PCI: Add binding documentation for pci-test endpoint function
    ixgbe: Use pcie_flr() instead of duplicating it
    IB/hfi1: Use pcie_flr() instead of duplicating it
    PCI: imx6: Fix spelling mistake: "contol" -> "control"
    ...

    Linus Torvalds
     

06 May, 2017

1 commit

  • Pull libnvdimm updates from Dan Williams:
    "The bulk of this has been in multiple -next releases. There were a few
    late breaking fixes and small features that got added in the last
    couple days, but the whole set has received a build success
    notification from the kbuild robot.

    Change summary:

    - Region media error reporting: A libnvdimm region device is the
    parent to one or more namespaces. To date, media errors have been
    reported via the "badblocks" attribute attached to pmem block
    devices for namespaces in "raw" or "memory" mode. Given that
    namespaces can be in "device-dax" or "btt-sector" mode this new
    interface reports media errors generically, i.e. independent of
    namespace modes or state.

    This subsequently allows userspace tooling to craft "ACPI 6.1
    Section 9.20.7.6 Function Index 4 - Clear Uncorrectable Error"
    requests and submit them via the ioctl path for NVDIMM root bus
    devices.

    - Introduce 'struct dax_device' and 'struct dax_operations': Prompted
    by a request from Linus and feedback from Christoph this allows for
    dax capable drivers to publish their own custom dax operations.
    This fixes the broken assumption that all dax operations are
    related to a persistent memory device, and makes it easier for
    other architectures and platforms to add customized persistent
    memory support.

    - 'libnvdimm' core updates: A new "deep_flush" sysfs attribute is
    available for storage appliance applications to manually trigger
    memory controllers to drain write-pending buffers that would
    otherwise be flushed automatically by the platform ADR
    (asynchronous-DRAM-refresh) mechanism at a power loss event.
    Support for "locked" DIMMs is included to prevent namespaces from
    surfacing when the namespace label data area is locked. Finally,
    fixes for various reported deadlocks and crashes, also tagged for
    -stable.

    - ACPI / nfit driver updates: General updates of the nfit driver to
    add DSM command overrides, ACPI 6.1 health state flags support, DSM
    payload debug available by default, and various fixes.

    Acknowledgements that came after the branch was pushed:

    - commmit 565851c972b5 "device-dax: fix sysfs attribute deadlock":
    Tested-by: Yi Zhang

    - commit 23f498448362 "libnvdimm: rework region badblocks clearing"
    Tested-by: Toshi Kani "

    * tag 'libnvdimm-for-4.12' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: (52 commits)
    libnvdimm, pfn: fix 'npfns' vs section alignment
    libnvdimm: handle locked label storage areas
    libnvdimm: convert NDD_ flags to use bitops, introduce NDD_LOCKED
    brd: fix uninitialized use of brd->dax_dev
    block, dax: use correct format string in bdev_dax_supported
    device-dax: fix sysfs attribute deadlock
    libnvdimm: restore "libnvdimm: band aid btt vs clear poison locking"
    libnvdimm: fix nvdimm_bus_lock() vs device_lock() ordering
    libnvdimm: rework region badblocks clearing
    acpi, nfit: kill ACPI_NFIT_DEBUG
    libnvdimm: fix clear length of nvdimm_forget_poison()
    libnvdimm, pmem: fix a NULL pointer BUG in nd_pmem_notify
    libnvdimm, region: sysfs trigger for nvdimm_flush()
    libnvdimm: fix phys_addr for nvdimm_clear_poison
    x86, dax, pmem: remove indirection around memcpy_from_pmem()
    block: remove block_device_operations ->direct_access()
    block, dax: convert bdev_dax_supported() to dax_direct_access()
    filesystem-dax: convert to dax_direct_access()
    Revert "block: use DAX for partition table reads"
    ext2, ext4, xfs: retrieve dax_device for iomap operations
    ...

    Linus Torvalds