18 Jan, 2021

1 commit

  • includes: Add arm64 support

    includes: Add trusty_fast_call64 api on 64 bit systems.

    includes: move probe to subsys_initcall

    Child devices of trusty like FIQ-based debuggers and watchdogs may
    want to probe early, move trusty from module init to subsys init
    to allow it and its children to probe earlier.

    includes: Retry std_calls on SM_ERR_BUSY

    If the trusty spinlock is held, or if the strex fails for another
    reason, trusty returns SM_ERR_BUSY. Add retry code to handle this.

    Without this retry code, std_calls can fail. If the previous smc
    call had returned SM_ERR_INTERRUPTED, this failure would cause
    the driver to get out of sync with trusty. All later calls would
    then fail with SM_ERR_INTERLEAVED_SMC.

    includes: Extend smc function and move to arch specific asm file

    Extend trusty smc function to pass 8 registers in both directions. Move
    to separate assembly files so r7 can be used (in thumb mode r7 got
    corrupted by the inline assembly even though it was specified as an
    output).

    Change-Id: I35318be3d41f84b922397e9afdca6bf47d9645db
    Signed-off-by: Arve Hjønnevåg
    Signed-off-by: Tri Vo

    Arve Hjønnevåg
     

14 Dec, 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
     

06 Apr, 2020

1 commit

  • Pull tracing updates from Steven Rostedt:
    "New tracing features:

    - The ring buffer is no longer disabled when reading the trace file.

    The trace_pipe file was made to be used for live tracing and
    reading as it acted like the normal producer/consumer. As the trace
    file would not consume the data, the easy way of handling it was to
    just disable writes to the ring buffer.

    This came to a surprise to the BPF folks who complained about lost
    events due to reading. This is no longer an issue. If someone wants
    to keep the old disabling there's a new option "pause-on-trace"
    that can be set.

    - New set_ftrace_notrace_pid file. PIDs in this file will not be
    traced by the function tracer.

    Similar to set_ftrace_pid, which makes the function tracer only
    trace those tasks with PIDs in the file, the set_ftrace_notrace_pid
    does the reverse.

    - New set_event_notrace_pid file. PIDs in this file will cause events
    not to be traced if triggered by a task with a matching PID.

    Similar to the set_event_pid file but will not be traced. Note,
    sched_waking and sched_switch events may still be traced if one of
    the tasks referenced by those events contains a PID that is allowed
    to be traced.

    Tracing related features:

    - New bootconfig option, that is attached to the initrd file.

    If bootconfig is on the command line, then the initrd file is
    searched looking for a bootconfig appended at the end.

    - New GPU tracepoint infrastructure to help the gfx drivers to get
    off debugfs (acked by Greg Kroah-Hartman)

    And other minor updates and fixes"

    * tag 'trace-v5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (27 commits)
    tracing: Do not allocate buffer in trace_find_next_entry() in atomic
    tracing: Add documentation on set_ftrace_notrace_pid and set_event_notrace_pid
    selftests/ftrace: Add test to test new set_event_notrace_pid file
    selftests/ftrace: Add test to test new set_ftrace_notrace_pid file
    tracing: Create set_event_notrace_pid to not trace tasks
    ftrace: Create set_ftrace_notrace_pid to not trace tasks
    ftrace: Make function trace pid filtering a bit more exact
    ftrace/kprobe: Show the maxactive number on kprobe_events
    tracing: Have the document reflect that the trace file keeps tracing enabled
    ring-buffer/tracing: Have iterator acknowledge dropped events
    tracing: Do not disable tracing when reading the trace file
    ring-buffer: Do not disable recording when there is an iterator
    ring-buffer: Make resize disable per cpu buffer instead of total buffer
    ring-buffer: Optimize rb_iter_head_event()
    ring-buffer: Do not die if rb_iter_peek() fails more than thrice
    ring-buffer: Have rb_iter_head_event() handle concurrent writer
    ring-buffer: Add page_stamp to iterator for synchronization
    ring-buffer: Rename ring_buffer_read() to read_buffer_iter_advance()
    ring-buffer: Have ring_buffer_empty() not depend on tracing stopped
    tracing: Save off entry when peeking at next entry
    ...

    Linus Torvalds
     

02 Apr, 2020

2 commits

  • 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
     
  • Currently, CONFIG_VHOST depends on CONFIG_VIRTUALIZATION. But vhost is
    not necessarily for VM since it's a generic userspace and kernel
    communication protocol. Such dependency may prevent archs without
    virtualization support from using vhost.

    To solve this, a dedicated vhost menu is created under drivers so
    CONIFG_VHOST can be decoupled out of CONFIG_VIRTUALIZATION.

    While at it, also squash Kconfig.vringh into vhost Kconfig file. This
    avoids the trick of conditional inclusion from VOP or CAIF. Then it
    will be easier to introduce new vringh users and common dependency for
    both vringh and vhost.

    Signed-off-by: Jason Wang
    Link: https://lore.kernel.org/r/20200326140125.19794-2-jasowang@redhat.com
    Signed-off-by: Michael S. Tsirkin

    Jason Wang
     

24 Mar, 2020

1 commit


04 Mar, 2020

1 commit

  • This change adds the below gpu memory tracepoint:
    gpu_mem/gpu_mem_total: track global or proc gpu memory total usages

    Per process tracking of total gpu memory usage in the gem layer is not
    appropriate and hard to implement with trivial overhead. So for the gfx
    device driver layer to track total gpu memory usage both globally and
    per process in an easy and uniform way is to integrate the tracepoint in
    this patch to the underlying varied implementations of gpu memory
    tracking system from vendors.

    Putting this tracepoint in the common trace events can not only help
    wean the gfx drivers off of debugfs but also greatly help the downstream
    Android gpu vendors because debugfs is to be deprecated in the upcoming
    Android release. Then the gpu memory tracking of both Android kernel and
    the upstream linux kernel can stay closely, which can benefit the whole
    kernel eco-system in the long term.

    Link: http://lkml.kernel.org/r/20200302235044.59163-1-zzyiwei@google.com

    Acked-by: Greg Kroah-Hartman
    Signed-off-by: Yiwei Zhang
    Signed-off-by: Steven Rostedt (VMware)

    Yiwei Zhang
     

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


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
     

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
     

30 Dec, 2018

1 commit

  • Pull Kconfig file consolidation from Masahiro Yamada:
    "Consolidation of bus (PCI, PCMCIA, EISA, RapidIO) config entries by
    Christoph Hellwig.

    Currently, every architecture that wants to provide common peripheral
    busses needs to add some boilerplate code and include the right
    Kconfig files. This series instead just selects the presence (when
    needed) and then handles everything in the bus-specific Kconfig file
    under drivers/"

    * tag 'kconfig-v4.21-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
    pcmcia: remove per-arch PCMCIA config entry
    eisa: consolidate EISA Kconfig entry in drivers/eisa
    rapidio: consolidate RAPIDIO config entry in drivers/rapidio
    pcmcia: allow PCMCIA support independent of the architecture
    PCI: consolidate the PCI_SYSCALL symbol
    PCI: consolidate the PCI_DOMAINS and PCI_DOMAINS_GENERIC config options
    PCI: consolidate PCI config entry in drivers/pci
    MIPS: remove the HT_PCI config option

    Linus Torvalds
     

23 Nov, 2018

4 commits

  • Let architectures opt into EISA support by selecting HAVE_EISA and
    handle everything else in drivers/eisa.

    Signed-off-by: Christoph Hellwig
    Acked-by: Thomas Gleixner
    Acked-by: Paul Burton
    Signed-off-by: Masahiro Yamada

    Christoph Hellwig
     
  • There is no good reason to duplicate the RAPIDIO menu in various
    architectures. Instead provide a selectable HAVE_RAPIDIO symbol
    that indicates native availability of RAPIDIO support and the handle
    the rest in drivers/pci. This also means we now provide support
    for PCI(e) to Rapidio bridges for every architecture instead of a
    limited subset.

    Signed-off-by: Christoph Hellwig
    Acked-by: Thomas Gleixner
    Acked-by: Paul Burton
    Signed-off-by: Masahiro Yamada

    Christoph Hellwig
     
  • There is nothing architecture specific in the PCMCIA core, so allow
    building it everywhere. The actual host controllers will depend on ISA,
    PCI or a specific SOC.

    Signed-off-by: Christoph Hellwig
    Acked-by: Dominik Brodowski
    Acked-by: Thomas Gleixner
    Acked-by: Paul Burton
    Signed-off-by: Masahiro Yamada

    Christoph Hellwig
     
  • There is no good reason to duplicate the PCI menu in every architecture.
    Instead provide a selectable HAVE_PCI symbol that indicates availability
    of PCI support, and a FORCE_PCI symbol to for PCI on and the handle the
    rest in drivers/pci.

    Signed-off-by: Christoph Hellwig
    Reviewed-by: Palmer Dabbelt
    Acked-by: Max Filippov
    Acked-by: Thomas Gleixner
    Acked-by: Bjorn Helgaas
    Acked-by: Geert Uytterhoeven
    Acked-by: Paul Burton
    Signed-off-by: Masahiro Yamada

    Christoph Hellwig
     

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
     

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
     

29 Mar, 2018

1 commit

  • Make a "HW tracing support" menu and move 2 entries into it.
    (No change in Coresight, which is ARM-specific and is only listed for
    ARM & ARM64.)

    This makes the Device Drivers menu more consistent and prevents these
    drivers from being listed at the top level of the Device Drivers menu.

    Signed-off-by: Randy Dunlap
    Signed-off-by: Alexander Shishkin

    Randy Dunlap
     

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
     

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
     

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
     

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
     

09 Mar, 2017

1 commit

  • Initial patch for generic TEE subsystem.
    This subsystem provides:
    * Registration/un-registration of TEE drivers.
    * Shared memory between normal world and secure world.
    * Ioctl interface for interaction with user space.
    * Sysfs implementation_id of TEE driver

    A TEE (Trusted Execution Environment) driver is a driver that interfaces
    with a trusted OS running in some secure environment, for example,
    TrustZone on ARM cpus, or a separate secure co-processor etc.

    The TEE subsystem can serve a TEE driver for a Global Platform compliant
    TEE, but it's not limited to only Global Platform TEEs.

    This patch builds on other similar implementations trying to solve
    the same problem:
    * "optee_linuxdriver" by among others
    Jean-michel DELORME and
    Emmanuel MICHEL
    * "Generic TrustZone Driver" by Javier González

    Acked-by: Andreas Dannenberg
    Tested-by: Jerome Forissier (HiKey)
    Tested-by: Volodymyr Babchuk (RCAR H3)
    Tested-by: Scott Branden
    Reviewed-by: Javier González
    Signed-off-by: Jens Wiklander

    Jens Wiklander
     

10 Feb, 2017

1 commit


24 May, 2016

1 commit

  • Pull libnvdimm updates from Dan Williams:
    "The bulk of this update was stabilized before the merge window and
    appeared in -next. The "device dax" implementation was revised this
    week in response to review feedback, and to address failures detected
    by the recently expanded ndctl unit test suite.

    Not included in this pull request are two dax topic branches (dax
    error handling, and dax radix-tree locking). These topics were
    deferred to get a few more days of -next integration testing, and to
    coordinate a branch baseline with Ted and the ext4 tree. Vishal and
    Ross will send the error handling and locking topics respectively in
    the next few days.

    This branch has received a positive build result from the kbuild robot
    across 226 configs.

    Summary:

    - Device DAX for persistent memory: Device DAX is the device-centric
    analogue of Filesystem DAX (CONFIG_FS_DAX). It allows memory
    ranges to be allocated and mapped without need of an intervening
    file system. Device DAX is strict, precise and predictable.
    Specifically this interface:

    a) Guarantees fault granularity with respect to a given page size
    (pte, pmd, or pud) set at configuration time.

    b) Enforces deterministic behavior by being strict about what
    fault scenarios are supported.

    Persistent memory is the first target, but the mechanism is also
    targeted for exclusive allocations of performance/feature
    differentiated memory ranges.

    - Support for the HPE DSM (device specific method) command formats.
    This enables management of these first generation devices until a
    unified DSM specification materializes.

    - Further ACPI 6.1 compliance with support for the common dimm
    identifier format.

    - Various fixes and cleanups across the subsystem"

    * tag 'libnvdimm-for-4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: (40 commits)
    libnvdimm, dax: fix deletion
    libnvdimm, dax: fix alignment validation
    libnvdimm, dax: autodetect support
    libnvdimm: release ida resources
    Revert "block: enable dax for raw block devices"
    /dev/dax, core: file operations and dax-mmap
    /dev/dax, pmem: direct access to persistent memory
    libnvdimm: stop requiring a driver ->remove() method
    libnvdimm, dax: record the specified alignment of a dax-device instance
    libnvdimm, dax: reserve space to store labels for device-dax
    libnvdimm, dax: introduce device-dax infrastructure
    nfit: add sysfs dimm 'family' and 'dsm_mask' attributes
    tools/testing/nvdimm: ND_CMD_CALL support
    nfit: disable vendor specific commands
    nfit: export subsystem ids as attributes
    nfit: fix format interface code byte order per ACPI6.1
    nfit, libnvdimm: limited/whitelisted dimm command marshaling mechanism
    nfit, libnvdimm: clarify "commands" vs "_DSMs"
    libnvdimm: increase max envelope size for ioctl
    acpi/nfit: Add sysfs "id" for NVDIMM ID
    ...

    Linus Torvalds
     

21 May, 2016

1 commit

  • Device DAX is the device-centric analogue of Filesystem DAX
    (CONFIG_FS_DAX). It allows memory ranges to be allocated and mapped
    without need of an intervening file system. Device DAX is strict,
    precise and predictable. Specifically this interface:

    1/ Guarantees fault granularity with respect to a given page size (pte,
    pmd, or pud) set at configuration time.

    2/ Enforces deterministic behavior by being strict about what fault
    scenarios are supported.

    For example, by forcing MADV_DONTFORK semantics and omitting MAP_PRIVATE
    support device-dax guarantees that a mapping always behaves/performs the
    same once established. It is the "what you see is what you get" access
    mechanism to differentiated memory vs filesystem DAX which has
    filesystem specific implementation semantics.

    Persistent memory is the first target, but the mechanism is also
    targeted for exclusive allocations of performance differentiated memory
    ranges.

    This commit is limited to the base device driver infrastructure to
    associate a dax device with pmem range.

    Cc: Jeff Moyer
    Cc: Christoph Hellwig
    Cc: Andrew Morton
    Cc: Dave Hansen
    Cc: Ross Zwisler
    Reviewed-by: Johannes Thumshirn
    Signed-off-by: Dan Williams

    Dan Williams
     

30 Apr, 2016

1 commit


05 Nov, 2015

1 commit

  • Pull char/misc driver updates from Greg KH:
    "Here is the big char/misc driver update for 4.4-rc1. Lots of
    different driver and subsystem updates, hwtracing being the largest
    with the addition of some new platforms that are now supported. Full
    details in the shortlog.

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

    * tag 'char-misc-4.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (181 commits)
    fpga: socfpga: Fix check of return value of devm_request_irq
    lkdtm: fix ACCESS_USERSPACE test
    mcb: Destroy IDA on module unload
    mcb: Do not return zero on error path in mcb_pci_probe()
    mei: bus: set the device name before running fixup
    mei: bus: use correct lock ordering
    mei: Fix debugfs filename in error output
    char: ipmi: ipmi_ssif: Replace timeval with timespec64
    fpga: zynq-fpga: Fix issue with drvdata being overwritten.
    fpga manager: remove unnecessary null pointer checks
    fpga manager: ensure lifetime with of_fpga_mgr_get
    fpga: zynq-fpga: Change fw format to handle bin instead of bit.
    fpga: zynq-fpga: Fix unbalanced clock handling
    misc: sram: partition base address belongs to __iomem space
    coresight: etm3x: adding documentation for sysFS's cpu interface
    vme: 8-bit status/id takes 256 values, not 255
    fpga manager: Adding FPGA Manager support for Xilinx Zynq 7000
    ARM: zynq: dt: Updated devicetree for Zynq 7000 platform.
    ARM: dt: fpga: Added binding docs for Xilinx Zynq FPGA manager.
    ver_linux: proc/modules, limit text processing to 'sed'
    ...

    Linus Torvalds
     

29 Oct, 2015

1 commit

  • Open-channel SSDs are devices that share responsibilities with the host
    in order to implement and maintain features that typical SSDs keep
    strictly in firmware. These include (i) the Flash Translation Layer
    (FTL), (ii) bad block management, and (iii) hardware units such as the
    flash controller, the interface controller, and large amounts of flash
    chips. In this way, Open-channels SSDs exposes direct access to their
    physical flash storage, while keeping a subset of the internal features
    of SSDs.

    LightNVM is a specification that gives support to Open-channel SSDs
    LightNVM allows the host to manage data placement, garbage collection,
    and parallelism. Device specific responsibilities such as bad block
    management, FTL extensions to support atomic IOs, or metadata
    persistence are still handled by the device.

    The implementation of LightNVM consists of two parts: core and
    (multiple) targets. The core implements functionality shared across
    targets. This is initialization, teardown and statistics. The targets
    implement the interface that exposes physical flash to user-space
    applications. Examples of such targets include key-value store,
    object-store, as well as traditional block devices, which can be
    application-specific.

    Contributions in this patch from:

    Javier Gonzalez
    Dongsheng Yang
    Jesper Madsen

    Signed-off-by: Matias Bjørling
    Signed-off-by: Jens Axboe

    Matias Bjørling