11 Mar, 2022

1 commit

  • This is the 5.15.27 stable release

    * tag 'v5.15.27': (3069 commits)
    Linux 5.15.27
    hamradio: fix macro redefine warning
    KVM: x86/mmu: Passing up the error state of mmu_alloc_shadow_roots()
    ...

    Signed-off-by: Jason Liu

    Conflicts:
    arch/arm/boot/dts/imx7ulp.dtsi
    arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts
    arch/arm64/boot/dts/freescale/imx8mq.dtsi
    drivers/dma-buf/heaps/cma_heap.c
    drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
    drivers/gpu/drm/mxsfb/mxsfb_kms.c
    drivers/mmc/host/sdhci-esdhc-imx.c
    drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c
    drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
    drivers/rpmsg/rpmsg_char.c
    drivers/soc/imx/gpcv2.c
    drivers/thermal/imx_thermal.c

    Jason Liu
     

22 Dec, 2021

1 commit

  • [ Upstream commit 27d9839f17940e8edc475df616bbd9cf7ede8d05 ]

    When neither VIRTIO_PCI_LIB nor VIRTIO are enabled, but the alibaba
    vdpa driver is, the kernel runs into a link error because the legacy
    virtio module never gets built:

    x86_64-linux-ld: drivers/vdpa/alibaba/eni_vdpa.o: in function `eni_vdpa_set_features':
    eni_vdpa.c:(.text+0x23f): undefined reference to `vp_legacy_set_features'
    x86_64-linux-ld: drivers/vdpa/alibaba/eni_vdpa.o: in function `eni_vdpa_set_vq_state':
    eni_vdpa.c:(.text+0x2fe): undefined reference to `vp_legacy_get_queue_enable'
    x86_64-linux-ld: drivers/vdpa/alibaba/eni_vdpa.o: in function `eni_vdpa_set_vq_address':
    eni_vdpa.c:(.text+0x376): undefined reference to `vp_legacy_set_queue_address'
    x86_64-linux-ld: drivers/vdpa/alibaba/eni_vdpa.o: in function `eni_vdpa_set_vq_ready':
    eni_vdpa.c:(.text+0x3b4): undefined reference to `vp_legacy_set_queue_address'
    x86_64-linux-ld: drivers/vdpa/alibaba/eni_vdpa.o: in function `eni_vdpa_free_irq':
    eni_vdpa.c:(.text+0x460): undefined reference to `vp_legacy_queue_vector'
    x86_64-linux-ld: eni_vdpa.c:(.text+0x4b7): undefined reference to `vp_legacy_config_vector'
    x86_64-linux-ld: drivers/vdpa/alibaba/eni_vdpa.o: in function `eni_vdpa_reset':

    When VIRTIO_PCI_LIB was added, it was correctly added to drivers/Makefile
    as well, but for the legacy module, this is missing. Solve this by always
    entering drivers/virtio during the build and letting its Makefile take
    care of the individual options, rather than having a separate line for
    each sub-option.

    Fixes: 64b9f64f80a6 ("vdpa: introduce virtio pci driver")
    Fixes: e85087beedca ("eni_vdpa: add vDPA driver for Alibaba ENI")
    Fixes: d89c8169bd70 ("virtio-pci: introduce legacy device module")
    Signed-off-by: Arnd Bergmann
    Link: https://lore.kernel.org/r/20211206085034.2836099-1-arnd@kernel.org
    Signed-off-by: Michael S. Tsirkin
    Signed-off-by: Sasha Levin

    Arnd Bergmann
     

02 Nov, 2021

1 commit


15 Aug, 2021

1 commit

  • Lightnvm supports the OCSSD 1.x and 2.0 specs which were early attempts
    to produce Open Channel SSDs and never made it into the NVMe spec
    proper. They have since been superceeded by NVMe enhancements such
    as ZNS support. Remove the support per the deprecation schedule.

    Signed-off-by: Christoph Hellwig
    Link: https://lore.kernel.org/r/20210812132308.38486-1-hch@lst.de
    Reviewed-by: Matias Bjørling
    Reviewed-by: Javier González
    Signed-off-by: Jens Axboe

    Christoph Hellwig
     

30 Jun, 2021

1 commit

  • …rnel/git/hyperv/linux

    Pull hyperv updates from Wei Liu:
    "Just a few minor enhancement patches and bug fixes"

    * tag 'hyperv-next-signed-20210629' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux:
    PCI: hv: Add check for hyperv_initialized in init_hv_pci_drv()
    Drivers: hv: Move Hyper-V extended capability check to arch neutral code
    drivers: hv: Fix missing error code in vmbus_connect()
    x86/hyperv: fix logical processor creation
    hv_utils: Fix passing zero to 'PTR_ERR' warning
    scsi: storvsc: Use blk_mq_unique_tag() to generate requestIDs
    Drivers: hv: vmbus: Copy packets sent by Hyper-V out of the ring buffer
    hv_balloon: Remove redundant assignment to region_start

    Linus Torvalds
     

16 Jun, 2021

1 commit

  • The legay ide driver has been replace with libata starting in 2003 and has
    been scheduled for removal for a while. Finally kill it off so that we
    can start cleaning up various bits of cruft it forced on the block layer.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Jens Axboe

    Christoph Hellwig
     

05 Jun, 2021

1 commit

  • The extended capability query code is currently under arch/x86, but it
    is architecture neutral, and is used by arch neutral code in the Hyper-V
    balloon driver. Hence the balloon driver fails to build on other
    architectures.

    Fix by moving the ext cap code out from arch/x86. Because it is also
    called from built-in architecture specific code, it can't be in a module,
    so the Makefile treats as built-in even when CONFIG_HYPERV is "m". Also
    drivers/Makefile is tweaked because this is the first occurrence of a
    Hyper-V file that is built-in even when CONFIG_HYPERV is "m".

    While here, update the hypercall status check to use the new helper
    function instead of open coding. No functional change.

    Signed-off-by: Michael Kelley
    Reviewed-by: Sunil Muthuswamy
    Link: https://lore.kernel.org/r/1622669804-2016-1-git-send-email-mikelley@microsoft.com
    Signed-off-by: Wei Liu

    Michael Kelley
     

06 May, 2021

1 commit

  • Pull virtio updates from Michael Tsirkin:
    "A bunch of new drivers including vdpa support for block and
    virtio-vdpa.

    Beginning of vq kick (aka doorbell) mapping support.

    Misc fixes"

    * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost: (40 commits)
    virtio_pci_modern: correct sparse tags for notify
    virtio_pci_modern: __force cast the notify mapping
    vDPA/ifcvf: get_config_size should return dev specific config size
    vDPA/ifcvf: enable Intel C5000X-PL virtio-block for vDPA
    vDPA/ifcvf: deduce VIRTIO device ID when probe
    vdpa_sim_blk: add support for vdpa management tool
    vdpa_sim_blk: handle VIRTIO_BLK_T_GET_ID
    vdpa_sim_blk: implement ramdisk behaviour
    vdpa: add vdpa simulator for block device
    vhost/vdpa: Remove the restriction that only supports virtio-net devices
    vhost/vdpa: use get_config_size callback in vhost_vdpa_config_validate()
    vdpa: add get_config_size callback in vdpa_config_ops
    vdpa_sim: cleanup kiovs in vdpasim_free()
    vringh: add vringh_kiov_length() helper
    vringh: implement vringh_kiov_advance()
    vringh: explain more about cleaning riov and wiov
    vringh: reset kiov 'consumed' field in __vringh_iov()
    vringh: add 'iotlb_lock' to synchronize iotlb accesses
    vdpa_sim: use iova module to allocate IOVA addresses
    vDPA/ifcvf: deduce VIRTIO device ID from pdev ids
    ...

    Linus Torvalds
     

03 May, 2021

1 commit

  • This patch introduce a vDPA driver for virtio-pci device. It bridges
    the virtio-pci control command to the vDPA bus. This will be used for
    features prototyping and testing.

    Note that get/restore virtqueue state is not supported which needs
    extension on the virtio specification.

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

    Jason Wang
     

15 Apr, 2021

1 commit

  • The comedi code came into the kernel back in 2008, but traces its
    lifetime to much much earlier. It's been polished and buffed and
    there's really nothing preventing it from being part of the "real"
    portion of the kernel.

    So move it to drivers/comedi/ as it belongs there.

    Many thanks to the hundreds of developers who did the work to make this
    happen.

    Cc: Ian Abbott
    Cc: H Hartley Sweeten
    Link: https://lore.kernel.org/r/YHauop4u3sP6lz8j@kroah.com
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

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