29 Oct, 2018

1 commit


25 Feb, 2018

1 commit

  • [ Upstream commit c9d24f78268be444e803fb2bb138a2f598de9c23 ]

    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
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Randy Dunlap
     

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
     

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
     

26 Apr, 2017

1 commit

  • DWC3 driver uses of_usb_get_phy_mode() which is
    implemented in drivers/usb/phy/of.c and in bare minimal
    configuration it might not be pulled in kernel binary.

    In case of ARC or ARM this could be easily reproduced with
    "allnodefconfig" +CONFIG_USB=m +CONFIG_USB_DWC3=m.

    On building all ends-up with:
    ---------------------->8------------------
    Kernel: arch/arm/boot/Image is ready
    Kernel: arch/arm/boot/zImage is ready
    Building modules, stage 2.
    MODPOST 5 modules
    ERROR: "of_usb_get_phy_mode" [drivers/usb/dwc3/dwc3.ko] undefined!
    make[1]: *** [__modpost] Error 1
    make: *** [modules] Error 2
    ---------------------->8------------------

    Signed-off-by: Alexey Brodkin
    Cc: Greg Kroah-Hartman
    Cc: Masahiro Yamada
    Cc: Geert Uytterhoeven
    Cc: Nicolas Pitre
    Cc: Thomas Gleixner
    Cc: Felipe Balbi
    Cc: Felix Fietkau
    Cc: Jeremy Kerr
    Cc: linux-snps-arc@lists.infradead.org
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman

    Alexey Brodkin
     

13 Apr, 2017

1 commit

  • We want dax capable drivers to be able to publish a set of dax
    operations [1]. However, we do not want to further abuse block_devices
    to advertise these operations. Instead we will attach these operations
    to a dax device and add a lookup mechanism to go from block device path
    to a dax device. A dax capable driver like pmem or brd is responsible
    for registering a dax device, alongside a block device, and then a dax
    capable filesystem is responsible for retrieving the dax device by path
    name if it wants to call dax_operations.

    For now, we refactor the dax pseudo-fs to be a generic facility, rather
    than an implementation detail, of the device-dax use case. Where a "dax
    device" is just an inode + dax infrastructure, and "Device DAX" is a
    mapping service layered on top of that base 'struct dax_device'.
    "Filesystem DAX" is then a mapping service that layers a filesystem on
    top of that same base device. Filesystem DAX is associated with a
    block_device for now, but perhaps directly to a dax device in the
    future, or for new pmem-only filesystems.

    [1]: https://lkml.org/lkml/2017/1/19/880

    Suggested-by: Christoph Hellwig
    Signed-off-by: Dan Williams

    Dan Williams
     

12 Apr, 2017

1 commit

  • Introduce a new EP core layer in order to support endpoint functions in
    linux kernel. This comprises the EPC library (Endpoint Controller Library)
    and EPF library (Endpoint Function Library). EPC library implements
    functions specific to an endpoint controller and EPF library implements
    functions specific to an endpoint function.

    Signed-off-by: Kishon Vijay Abraham I
    Acked-by: Joao Pinto
    Signed-off-by: Bjorn Helgaas

    Kishon Vijay Abraham I
     

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
     

24 Feb, 2017

1 commit

  • Pull PCI updates from Bjorn Helgaas:

    - add ASPM L1 substate support

    - enable PCIe Extended Tags when supported

    - configure PCIe MPS settings on iProc, Versatile, X-Gene, and Xilinx

    - increase VPD access timeout

    - add ACS quirks for Intel Union Point, Qualcomm QDF2400 and QDF2432

    - use new pci_irq_alloc_vectors() in more drivers

    - fix MSI affinity memory leak

    - remove unused MSI interfaces and update documentation

    - remove unused AER .link_reset() callback

    - avoid pci_lock / p->pi_lock deadlock seen with perf

    - serialize sysfs enable/disable num_vfs operations

    - move DesignWare IP from drivers/pci/host/ to drivers/pci/dwc/ and
    refactor so we can support both hosts and endpoints

    - add DT ECAM-like support for HiSilicon Hip06/Hip07 controllers

    - add Rockchip system power management support

    - add Thunder-X cn81xx and cn83xx support

    - add Exynos 5440 PCIe PHY support

    * tag 'pci-v4.11-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (93 commits)
    PCI: dwc: Remove dependency of designware on CONFIG_PCI
    PCI: dwc: Add CONFIG_PCIE_DW_HOST to enable PCI dwc host
    PCI: dwc: Split pcie-designware.c into host and core files
    PCI: dwc: designware: Fix style errors in pcie-designware.c
    PCI: dwc: designware: Parse "num-lanes" property in dw_pcie_setup_rc()
    PCI: dwc: all: Split struct pcie_port into host-only and core structures
    PCI: dwc: designware: Get device pointer at the start of dw_pcie_host_init()
    PCI: dwc: all: Rename cfg_read/cfg_write to read/write
    PCI: dwc: all: Use platform_set_drvdata() to save private data
    PCI: dwc: designware: Move register defines to designware header file
    PCI: dwc: Use PTR_ERR_OR_ZERO to simplify code
    PCI: dra7xx: Group PHY API invocations
    PCI: dra7xx: Enable MSI and legacy interrupts simultaneously
    PCI: dra7xx: Add support to force RC to work in GEN1 mode
    PCI: dra7xx: Simplify probe code with devm_gpiod_get_optional()
    PCI: Move DesignWare IP support to new drivers/pci/dwc/ directory
    PCI: exynos: Support the PHY generic framework
    Documentation: binding: Modify the exynos5440 PCIe binding
    phy: phy-exynos-pcie: Add support for Exynos PCIe PHY
    Documentation: samsung-phy: Add exynos-pcie-phy binding
    ...

    Linus Torvalds
     

22 Feb, 2017

1 commit


10 Feb, 2017

1 commit


16 Nov, 2016

1 commit

  • In order to break the hard dependency between the PTP clock subsystem and
    ethernet drivers capable of being clock providers, this patch provides
    simple PTP stub functions to allow linkage of those drivers into the
    kernel even when the PTP subsystem is configured out. Drivers must be
    ready to accept NULL from ptp_clock_register() in that case.

    And to make it possible for PTP to be configured out, the select statement
    in those driver's Kconfig menu entries is converted to the new "imply"
    statement. This way the PTP subsystem may have Kconfig dependencies of
    its own, such as POSIX_TIMERS, without having to make those ethernet
    drivers unavailable if POSIX timers are cconfigured out. And when support
    for POSIX timers is selected again then the default config option for PTP
    clock support will automatically be adjusted accordingly.

    The pch_gbe driver is a bit special as it relies on extra code in
    drivers/ptp/ptp_pch.c. Therefore we let the make process descend into
    drivers/ptp/ even if PTP_1588_CLOCK is unselected.

    Signed-off-by: Nicolas Pitre
    Acked-by: Richard Cochran
    Acked-by: Edward Cree
    Acked-by: Thomas Gleixner
    Acked-by: John Stultz
    Reviewed-by: Josh Triplett
    Cc: Paul Bolle
    Cc: linux-kbuild@vger.kernel.org
    Cc: netdev@vger.kernel.org
    Cc: Michal Marek
    Link: http://lkml.kernel.org/r/1478841010-28605-4-git-send-email-nicolas.pitre@linaro.org
    Signed-off-by: Thomas Gleixner

    Nicolas Pitre
     

24 Oct, 2016

1 commit

  • Pull IPMI updates from Corey Minyard:
    "A small bug fix and a new driver for acting as an IPMI device.

    I was on vacation during the merge window (a long vacation) but this
    is a bug fix that should go in and a new driver that shouldn't hurt
    anything.

    This has been in linux-next for a month or so"

    * tag 'for-linus-4.9-2' of git://git.code.sf.net/p/openipmi/linux-ipmi:
    ipmi: fix crash on reading version from proc after unregisted bmc
    ipmi/bt-bmc: remove redundant return value check of platform_get_resource()
    ipmi/bt-bmc: add a dependency on ARCH_ASPEED
    ipmi: Fix ioremap error handling in bt-bmc
    ipmi: add an Aspeed BT IPMI BMC driver

    Linus Torvalds
     

30 Sep, 2016

1 commit

  • This patch adds a simple device driver to expose the iBT interface on
    Aspeed SOCs (AST2400 and AST2500) as a character device. Such SOCs are
    commonly used as BMCs (BaseBoard Management Controllers) and this
    driver implements the BMC side of the BT interface.

    The BT (Block Transfer) interface is used to perform in-band IPMI
    communication between a host and its BMC. Entire messages are buffered
    before sending a notification to the other end, host or BMC, that
    there is data to be read. Usually, the host emits requests and the BMC
    responses but the specification provides a mean for the BMC to send
    SMS Attention (BMC-to-Host attention or System Management Software
    attention) messages.

    For this purpose, the driver introduces a specific ioctl on the
    device: 'BT_BMC_IOCTL_SMS_ATN' that can be used by the system running
    on the BMC to signal the host of such an event.

    The device name defaults to '/dev/ipmi-bt-host'

    Signed-off-by: Alistair Popple
    Signed-off-by: Jeremy Kerr
    Signed-off-by: Joel Stanley
    [clg: - checkpatch fixes
    - added a devicetree binding documentation
    - replace 'bt_host' by 'bt_bmc' to reflect that the driver is
    the BMC side of the IPMI BT interface
    - renamed the device to 'ipmi-bt-host'
    - introduced a temporary buffer to copy_{to,from}_user
    - used platform_get_irq()
    - moved the driver under drivers/char/ipmi/ but kept it as a misc
    device
    - changed the compatible cell to "aspeed,ast2400-bt-bmc"
    ]
    Signed-off-by: Cédric Le Goater
    Acked-by: Arnd Bergmann
    [clg: - checkpatch --strict fixes
    - removed the use of devm_iounmap, devm_kfree in cleanup paths
    - introduced an atomic-t to limit opens to 1
    - introduced a mutex to protect write/read operations]
    Acked-by: Rob Herring
    Signed-off-by: Cédric Le Goater
    Signed-off-by: Corey Minyard

    Alistair Popple
     

23 Sep, 2016

1 commit

  • Several SoCs implement platform drivers for clocks rather than
    CLK_OF_DECLARE(). Clocks should come earlier because they are
    prerequisites for many of other drivers. It will help to mitigate
    EPROBE_DEFER issues.

    Also, drop the comment since it does not carry much value.

    Signed-off-by: Masahiro Yamada
    Acked-by: Michael Turquette
    Signed-off-by: Greg Kroah-Hartman

    Masahiro Yamada
     

06 Aug, 2016

1 commit

  • Pull virtio/vhost updates from Michael Tsirkin:

    - new vsock device support in host and guest

    - platform IOMMU support in host and guest, including compatibility
    quirks for legacy systems.

    - misc fixes and cleanups.

    * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
    VSOCK: Use kvfree()
    vhost: split out vringh Kconfig
    vhost: detect 32 bit integer wrap around
    vhost: new device IOTLB API
    vhost: drop vringh dependency
    vhost: convert pre sorted vhost memory array to interval tree
    vhost: introduce vhost memory accessors
    VSOCK: Add Makefile and Kconfig
    VSOCK: Introduce vhost_vsock.ko
    VSOCK: Introduce virtio_transport.ko
    VSOCK: Introduce virtio_vsock_common.ko
    VSOCK: defer sock removal to transports
    VSOCK: transport-specific vsock_transport functions
    vhost: drop vringh dependency
    vop: pull in vhost Kconfig
    virtio: new feature to detect IOMMU device quirk
    balloon: check the number of available pages in leak balloon
    vhost: lockless enqueuing
    vhost: simplify work flushing

    Linus Torvalds
     

02 Aug, 2016

1 commit


28 Jul, 2016

2 commits

  • Pull HSI updates from Sebastian Reichel:

    - proper runtime pm support for omap-ssi and ssi-protocol

    - misc fixes

    * tag 'hsi-for-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi: (24 commits)
    HSI: omap_ssi: drop pm_runtime_irq_safe
    HSI: omap_ssi_port: use rpm autosuspend API
    HSI: omap_ssi: call msg->complete() from process context
    HSI: omap_ssi_port: ensure clocks are kept enabled during transfer
    HSI: omap_ssi_port: replace pm_runtime_put_sync with non-sync variant
    HSI: omap_ssi_port: avoid calling runtime_pm_*_sync inside spinlock
    HSI: omap_ssi_port: avoid pm_runtime_get_sync in ssi_start_dma and ssi_start_pio
    HSI: omap_ssi_port: switch to threaded pio irq
    HSI: omap_ssi_core: remove pm_runtime_get_sync call from tasklet
    HSI: omap_ssi_core: use pm_runtime_put instead of pm_runtime_put_sync
    HSI: omap_ssi_port: prepare start_tx/stop_tx for blocking pm_runtime calls
    HSI: core: switch port event notifier from atomic to blocking
    HSI: omap_ssi_port: replace wkin_cken with atomic bitmap operations
    HSI: omap_ssi: convert cawake irq handler to thread
    HSI: ssi_protocol: fix ssip_xmit invocation
    HSI: ssi_protocol: replace spin_lock with spin_lock_bh
    HSI: ssi_protocol: avoid ssi_waketest call with held spinlock
    HSI: omap_ssi: do not reset module
    HSI: omap_ssi_port: remove useless newline
    hsi: Only descend into hsi directory when CONFIG_HSI is set
    ...

    Linus Torvalds
     
  • Pull LED updates from Jacek Anaszewski:
    "New LED class driver:
    - LED driver for TI LP3952 6-Channel Color LED

    LED core improvements:
    - Only descend into leds directory when CONFIG_NEW_LEDS is set
    - Add no-op gpio_led_register_device when LED subsystem is disabled
    - MAINTAINERS: Add file patterns for led device tree bindings

    LED Trigger core improvements:
    - return error if invalid trigger name is provided via sysfs

    LED class drivers improvements
    - is31fl32xx: define complete i2c_device_id table
    - is31fl32xx: fix typo in id and match table names
    - leds-gpio: Set of_node for created LED devices
    - pca9532: Add device tree support

    Conversion of IDE trigger to common disk trigger:
    - leds: convert IDE trigger to common disk trigger
    - leds: documentation: 'ide-disk' to 'disk-activity'
    - unicore32: use the new LED disk activity trigger
    - parisc: use the new LED disk activity trigger
    - mips: use the new LED disk activity trigger
    - arm: use the new LED disk activity trigger
    - powerpc: use the new LED disk activity trigger"

    * tag 'leds_for_4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds:
    leds: is31fl32xx: define complete i2c_device_id table
    leds: is31fl32xx: fix typo in id and match table names
    leds: LED driver for TI LP3952 6-Channel Color LED
    leds: leds-gpio: Set of_node for created LED devices
    leds: triggers: return error if invalid trigger name is provided via sysfs
    leds: Only descend into leds directory when CONFIG_NEW_LEDS is set
    leds: Add no-op gpio_led_register_device when LED subsystem is disabled
    unicore32: use the new LED disk activity trigger
    parisc: use the new LED disk activity trigger
    mips: use the new LED disk activity trigger
    arm: use the new LED disk activity trigger
    powerpc: use the new LED disk activity trigger
    leds: documentation: 'ide-disk' to 'disk-activity'
    leds: convert IDE trigger to common disk trigger
    leds: pca9532: Add device tree support
    MAINTAINERS: Add file patterns for led device tree bindings

    Linus Torvalds
     

27 Jul, 2016

1 commit

  • Pull GPIO updates from Linus Walleij:
    "This is the bulk of GPIO changes for the v4.8 kernel cycle. The big
    news is the completion of the chardev ABI which I'm very happy about
    and apart from that it's an ordinary, quite busy cycle. The details
    are below.

    The patches are tested in linux-next for some time, patches to other
    subsystem mostly have ACKs.

    I got overly ambitious with configureing lines as input for IRQ lines
    but it turns out that some controllers have their interrupt-enable and
    input-enabling in orthogonal settings so the assumption that all IRQ
    lines are input lines does not hold. Oh well, revert and back to the
    drawing board with that.

    Core changes:

    - The big item is of course the completion of the character device
    ABI. It has now replaced and surpassed the former unmaintainable
    sysfs ABI: we can now hammer (bitbang) individual lines or sets of
    lines and read individual lines or sets of lines from userspace,
    and we can also register to listen to GPIO events from userspace.

    As a tie-in we have two new tools in tools/gpio: gpio-hammer and
    gpio-event-mon that illustrate the proper use of the new ABI. As
    someone said: the wild west days of GPIO are now over.

    - Continued to remove the pointless ARCH_[WANT_OPTIONAL|REQUIRE]_GPIOLIB
    Kconfig symbols. I'm patching hexagon, openrisc, powerpc, sh,
    unicore, ia64 and microblaze. These are either ACKed by their
    maintainers or patched anyways after a grace period and no response
    from maintainers.

    Some archs (ARM) come in from their trees, and others (x86) are
    still not fixed, so I might send a second pull request to root it
    out later in this merge window, or just defer to v4.9.

    - The GPIO tools are moved to the tools build system.

    New drivers:

    - New driver for the MAX77620/MAX20024.

    - New driver for the Intel Merrifield.

    - Enabled PCA953x for the TI PCA9536.

    - Enabled PCA953x for the Intel Edison.

    - Enabled R8A7792 in the RCAR driver.

    Driver improvements:

    - The STMPE and F7188x now supports the .get_direction() callback.

    - The Xilinx driver supports setting multiple lines at once.

    - ACPI support for the Vulcan GPIO controller.

    - The MMIO GPIO driver supports device tree probing.

    - The Acer One 10 is supported through the _DEP ACPI attribute.

    Cleanups:

    - A major cleanup of the OF/DT support code. It is way easier to
    read and understand now, probably this improves performance too.

    - Drop a few redundant .owner assignments.

    - Remove CLPS711x boardfile support: we are 100% DT"

    * tag 'gpio-v4.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (67 commits)
    MAINTAINERS: Add INTEL MERRIFIELD GPIO entry
    gpio: dwapb: add missing fwnode_handle_put() in dwapb_gpio_get_pdata()
    gpio: merrifield: Protect irq_ack() and gpio_set() by lock
    gpio: merrifield: Introduce GPIO driver to support Merrifield
    gpio: intel-mid: Make it depend to X86_INTEL_MID
    gpio: intel-mid: Sort header block alphabetically
    gpio: intel-mid: Remove potentially harmful code
    gpio: rcar: add R8A7792 support
    gpiolib: remove duplicated include from gpiolib.c
    Revert "gpio: convince line to become input in irq helper"
    gpiolib: of_find_gpio(): Don't discard errors
    gpio: of: Allow overriding the device node
    gpio: free handles in fringe cases
    gpio: tps65218: Add platform_device_id table
    gpio: max77620: get gpio value based on direction
    gpio: lynxpoint: avoid potential warning on error path
    tools/gpio: add install section
    tools/gpio: move to tools buildsystem
    gpio: intel-mid: switch to devm_gpiochip_add_data()
    gpio: 74x164: Use spi_write() helper instead of open coding
    ...

    Linus Torvalds
     

27 Jun, 2016

1 commit


15 Jun, 2016

1 commit


14 Jun, 2016

1 commit


30 May, 2016

1 commit

  • Since commits 71d076ceb245f0d9 ("ARM: shmobile: Enable PM and
    PM_GENERIC_DOMAINS for SoCs with PM Domains") and 2ee98234b88174f2
    ("arm64: renesas: Enable PM and PM_GENERIC_DOMAINS for SoCs with PM
    Domains"), CONFIG_PM and CONFIG_PM_GENERIC_DOMAINS are enabled
    unconditionally for Renesas ARM-based SoCs. Hence the legacy clock
    domain is no longer used on these SoCs.

    Remove the related support code, and stop entering drivers/sh/ on ARM.

    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Simon Horman

    Geert Uytterhoeven
     

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
     

08 Dec, 2015

1 commit

  • Currently the reset/power off handlers (POWER_RESET) and Adaptive Voltage
    Scaling class (POWER_AVS) are not built when POWER_SUPPLY is disabled.
    The POWER_RESET is also not visible in drivers main section of config.

    However they do not really depend on power supply so they can be built
    always. The objects for power supply drivers already depend on
    particular Kconfig symbols so there is no need for any changes in
    drivers/power/Makefile.

    This allows selecting POWER_RESET from main drivers config section and
    fixes following build warning (encountered on ARM exynos defconfig when
    POWER_SUPPLY is disabled manually):

    warning: (ARCH_HISI && ARCH_INTEGRATOR && ARCH_EXYNOS && ARCH_VEXPRESS && REALVIEW_DT) selects POWER_RESET which has unmet direct dependencies (POWER_SUPPLY)
    warning: (ARCH_EXYNOS) selects POWER_RESET_SYSCON which has unmet direct dependencies (POWER_SUPPLY && POWER_RESET && OF)
    warning: (ARCH_EXYNOS) selects POWER_RESET_SYSCON_POWEROFF which has unmet direct dependencies (POWER_SUPPLY && POWER_RESET && OF)

    Reported-by: Pavel Fedin
    Signed-off-by: Krzysztof Kozlowski
    Signed-off-by: Sebastian Reichel

    Krzysztof Kozlowski
     

17 Nov, 2015

1 commit

  • Add support for registering as a LightNVM device. This allows us to
    evaluate the performance of the LightNVM subsystem.

    In /drivers/Makefile, LightNVM is moved above block device drivers
    to make sure that the LightNVM media managers have been initialized
    before drivers under /drivers/block are initialized.

    Signed-off-by: Matias Bjørling
    Fix by Jens Axboe to remove unneeded slab cache and the following
    memory leak.
    Signed-off-by: Jens Axboe

    Matias Bjørling
     

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
     

10 Oct, 2015

1 commit

  • This patch moves the NVMe driver from drivers/block/ to its own new
    drivers/nvme/host/ directory. This is in preparation of splitting the
    current monolithic driver up and add support for the upcoming NVMe
    over Fabrics standard. The drivers/nvme/host/ is chose to leave space
    for a NVMe target implementation in addition to this host side driver.

    Signed-off-by: Jay Sternberg
    [hch: rebased, renamed core.c to pci.c, slight tweaks]
    Signed-off-by: Christoph Hellwig
    Acked-by: Keith Busch
    Signed-off-by: Jens Axboe

    Jay Sternberg
     

08 Oct, 2015

1 commit

  • API to support programming FPGA's.

    The following functions are exported as GPL:
    * fpga_mgr_buf_load
    Load fpga from image in buffer

    * fpga_mgr_firmware_load
    Request firmware and load it to the FPGA.

    * fpga_mgr_register
    * fpga_mgr_unregister
    FPGA device drivers can be added by calling
    fpga_mgr_register() to register a set of
    fpga_manager_ops to do device specific stuff.

    * of_fpga_mgr_get
    * fpga_mgr_put
    Get/put a reference to a fpga manager.

    The following sysfs files are created:
    * /sys/class/fpga_manager//name
    Name of low level driver.

    * /sys/class/fpga_manager//state
    State of fpga manager

    Signed-off-by: Alan Tull
    Acked-by: Michal Simek
    Signed-off-by: Greg Kroah-Hartman

    Alan Tull
     

05 Oct, 2015

2 commits

  • Intel(R) Trace Hub (TH) is a set of hardware blocks (subdevices) that
    produce, switch and output trace data from multiple hardware and
    software sources over several types of trace output ports encoded
    in System Trace Protocol (MIPI STPv2) and is intended to perform
    full system debugging.

    For these subdevices, we create a bus, where they can be discovered
    and configured by userspace software.

    This patch creates this bus infrastructure, three types of devices
    (source, output, switch), resource allocation, some callback mechanisms
    to facilitate communication between the subdevices' drivers and some
    common sysfs attributes.

    Signed-off-by: Alexander Shishkin
    Signed-off-by: Greg Kroah-Hartman

    Alexander Shishkin
     
  • A System Trace Module (STM) is a device exporting data in System Trace
    Protocol (STP) format as defined by MIPI STP standards. Examples of such
    devices are Intel(R) Trace Hub and Coresight STM.

    This abstraction provides a unified interface for software trace sources
    to send their data over an STM device to a debug host. In order to do
    that, such a trace source needs to be assigned a pair of master/channel
    identifiers that all the data from this source will be tagged with. The
    STP decoder on the debug host side will use these master/channel tags to
    distinguish different trace streams from one another inside one STP
    stream.

    This abstraction provides a configfs-based policy management mechanism
    for dynamic allocation of these master/channel pairs based on trace
    source-supplied string identifier. It has the flexibility of being
    defined at runtime and at the same time (provided that the policy
    definition is aligned with the decoding end) consistency.

    For userspace trace sources, this abstraction provides write()-based and
    mmap()-based (if the underlying stm device allows this) output mechanism.

    For kernel-side trace sources, we provide "stm_source" device class that
    can be connected to an stm device at run time.

    Cc: linux-api@vger.kernel.org
    Reviewed-by: Mathieu Poirier
    Signed-off-by: Alexander Shishkin
    Signed-off-by: Greg Kroah-Hartman

    Alexander Shishkin
     

05 Sep, 2015

1 commit

  • Pull pin control updates from Linus Walleij:
    "This is the bulk of pin control changes for the v4.3 development
    cycle.

    Like with GPIO it's a lot of stuff. If my subsystems are any sign of
    the overall tempo of the kernel v4.3 will be a gigantic diff.

    [ It looks like 4.3 is calmer than 4.2 in most other subsystems, but
    we'll see - Linus ]

    Core changes:

    - It is possible configure groups in debugfs.

    - Consolidation of chained IRQ handler install/remove replacing all
    call sites where irq_set_handler_data() and
    irq_set_chained_handler() were done in succession with a combined
    call to irq_set_chained_handler_and_data(). This series was
    created by Thomas Gleixner after the problem was observed by
    Russell King.

    - Tglx also made another series of patches switching
    __irq_set_handler_locked() for irq_set_handler_locked() which is
    way cleaner.

    - Tglx also wrote a good bunch of patches to make use of
    irq_desc_get_xxx() accessors and avoid looking up irq_descs from
    IRQ numbers. The goal is to get rid of the irq number from the
    handlers in the IRQ flow which is nice.

    Driver feature enhancements:

    - Power management support for the SiRF SoC Atlas 7.

    - Power down support for the Qualcomm driver.

    - Intel Cherryview and Baytrail: switch drivers to use raw spinlocks
    in IRQ handlers to play nice with the realtime patch set.

    - Rework and new modes handling for Qualcomm SPMI-MPP.

    - Pinconf power source config for SH PFC.

    New drivers and subdrivers:

    - A new driver for Conexant Digicolor CX92755.

    - A new driver for UniPhier PH1-LD4, PH1-Pro4, PH1-sLD8, PH1-Pro5,
    ProXtream2 and PH1-LD6b SoC pin control support.

    - Reverse-egineered the S/PDIF settings for the Allwinner sun4i
    driver.

    - Support for Qualcomm Technologies QDF2xxx ARM64 SoCs

    - A new Freescale i.mx6ul subdriver.

    Cleanup:

    - Remove platform data support in a number of SH PFC subdrivers"

    * tag 'pinctrl-v4.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (95 commits)
    pinctrl: at91: fix null pointer dereference
    pinctrl: mediatek: Implement wake handler and suspend resume
    pinctrl: mediatek: Fix multiple registration issue.
    pinctrl: sh-pfc: r8a7794: add USB pin groups
    pinctrl: at91: Use generic irq_{request,release}_resources()
    pinctrl: cherryview: Use raw_spinlock for locking
    pinctrl: baytrail: Use raw_spinlock for locking
    pinctrl: imx6ul: Remove .owner field
    pinctrl: zynq: Fix typos in smc0_nand_grp and smc0_nor_grp
    pinctrl: sh-pfc: Implement pinconf power-source param for voltage switching
    clk: rockchip: add pclk_pd_pmu to the list of rk3288 critical clocks
    pinctrl: sun4i: add spdif to pin description.
    pinctrl: atlas7: clear ugly branch statements for pull and drivestrength
    pinctrl: baytrail: Serialize all register access
    pinctrl: baytrail: Drop FSF mailing address
    pinctrl: rockchip: only enable gpio clock when it setting
    pinctrl/mediatek: fix spelling mistake in dev_err error message
    pinctrl: cherryview: Serialize all register access
    pinctrl: UniPhier: PH1-Pro5: add I2C ch6 pin-mux setting
    pinctrl: nomadik: reflect current input value
    ...

    Linus Torvalds
     

04 Sep, 2015

1 commit

  • Pull ARM development updates from Russell King:
    "Included in this update:

    - moving PSCI code from ARM64/ARM to drivers/

    - removal of some architecture internals from global kernel view

    - addition of software based "privileged no access" support using the
    old domains register to turn off the ability for kernel
    loads/stores to access userspace. Only the proper accessors will
    be usable.

    - addition of early fixup support for early console

    - re-addition (and reimplementation) of OMAP special interconnect
    barrier

    - removal of finish_arch_switch()

    - only expose cpuX/online in sysfs if hotpluggable

    - a number of code cleanups"

    * 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: (41 commits)
    ARM: software-based priviledged-no-access support
    ARM: entry: provide uaccess assembly macro hooks
    ARM: entry: get rid of multiple macro definitions
    ARM: 8421/1: smp: Collapse arch_cpu_idle_dead() into cpu_die()
    ARM: uaccess: provide uaccess_save_and_enable() and uaccess_restore()
    ARM: mm: improve do_ldrd_abort macro
    ARM: entry: ensure that IRQs are enabled when calling syscall_trace_exit()
    ARM: entry: efficiency cleanups
    ARM: entry: get rid of asm_trace_hardirqs_on_cond
    ARM: uaccess: simplify user access assembly
    ARM: domains: remove DOMAIN_TABLE
    ARM: domains: keep vectors in separate domain
    ARM: domains: get rid of manager mode for user domain
    ARM: domains: move initial domain setting value to asm/domains.h
    ARM: domains: provide domain_mask()
    ARM: domains: switch to keeping domain value in register
    ARM: 8419/1: dma-mapping: harmonize definition of DMA_ERROR_CODE
    ARM: 8417/1: refactor bitops functions with BIT_MASK() and BIT_WORD()
    ARM: 8416/1: Feroceon: use of_iomap() to map register base
    ARM: 8415/1: early fixmap support for earlycon
    ...

    Linus Torvalds
     

06 Aug, 2015

1 commit

  • This patch adds just providers part of the framework just to enable easy
    review.

    Up until now, NVMEM drivers like eeprom were stored in drivers/misc,
    where they all had to duplicate pretty much the same code to register
    a sysfs file, allow in-kernel users to access the content of the devices
    they were driving, etc.

    This was also a problem as far as other in-kernel users were involved,
    since the solutions used were pretty much different from on driver to
    another, there was a rather big abstraction leak.

    This introduction of this framework aims at solving this. It also
    introduces DT representation for consumer devices to go get the data
    they require (MAC Addresses, SoC/Revision ID, part numbers, and so on)
    from the nvmems.

    Having regmap interface to this framework would give much better
    abstraction for nvmems on different buses.

    Signed-off-by: Maxime Ripard
    [Maxime Ripard: intial version of eeprom framework]
    Signed-off-by: Srinivas Kandagatla
    Tested-by: Stefan Wahren
    Tested-by: Philipp Zabel
    Tested-by: Rajendra Nayak
    Signed-off-by: Greg Kroah-Hartman

    Srinivas Kandagatla