23 Aug, 2016

1 commit

  • The Kconfig currently controlling compilation of this code is:

    drivers/gpio/Kconfig:config GPIO_MSIC
    drivers/gpio/Kconfig: bool "Intel MSIC mixed signal gpio support"

    ...meaning that it currently is not being built as a module by anyone.

    Lets remove the couple traces of modular infrastructure use, so that
    when reading the driver there is no doubt it is builtin-only.

    We delete the MODULE_LICENSE tag etc. since all that information
    is already contained at the top of the file in the comments.

    We don't replace module.h with init.h since the file already has that.

    Cc: Alexandre Courbot
    Cc: Mathias Nyman
    Cc: linux-gpio@vger.kernel.org
    Signed-off-by: Paul Gortmaker
    Signed-off-by: Linus Walleij

    Paul Gortmaker
     

19 Aug, 2016

5 commits


11 Aug, 2016

7 commits

  • This patch adds support for the GPIO found in Broadcom's bcm63xx-gpio
    chips.
    This GPIO controller is used in the following Broadcom SoCs: BCM6338, BCM6345.
    It can be used in newer SoCs, without the capability of pin multiplexing.

    Signed-off-by: Christian Lamparter
    Signed-off-by: Álvaro Fernández Rojas
    Signed-off-by: Linus Walleij

    Christian Lamparter
     
  • This patch adds the device tree bindings for the Broadcom's BCM6345
    memory-mapped GPIO controllers.

    The gpios will be supported by gpio-mmio code of the
    GPIO generic library.

    Signed-off-by: Álvaro Fernández Rojas
    Signed-off-by: Linus Walleij

    Álvaro Fernández Rojas
     
  • Immutable branch between MFD and GPIO due for the v4.9 merge window

    Linus Walleij
     
  • The Diamond Systems GPIO-MM device features 48 lines of digital I/O via
    the emulation of dual 82C55A PPI chips. This driver provides GPIO
    support for these 48 channels of digital I/O. The base port addresses
    for the devices may be configured via the base array module parameter.

    Signed-off-by: William Breathitt Gray
    Signed-off-by: Linus Walleij

    William Breathitt Gray
     
  • This patch introduces a separate GPIO driver for Intel WhiskeyCove PMIC.
    This driver is based on gpio-crystalcove.c.

    Changes in v7:
    - Fixed various coding style comments from Andy Shevchenko
    Changes in v6:
    - Removed unnecessary wcove_gpio_remove()
    - Used devm_gpiochip_remove() instead of gpiochip_remove()
    - Various coding style changes per Mika's comment
    Changes in v5:
    - Revisited the interrupt handler code to iterate until all pending
    interrupts are handled. This change is to avoid missing interrupt
    when we're inside the interrupt handler.
    - Used regmap_bulk_read() to read address adjacent registers.
    Changes in v4:
    - Converted CTLI_INTCNT_XX macros to less verbose ones INT_DETECT_XX.
    - Add comments about why there is no .pm for the driver.
    - Header files re-ordered.
    - Various coding style change to address Andy's comments.
    Changes in v3:
    - Fixed the year in copyright line(2015-->2016).
    - Removed DRV_NAME macro.
    - Added kernel-doc for regmap_irq_chip of the wcove_gpio structure.
    - Line length fix.
    Changes in v2:
    - Typo fix (Whsikey --> Whiskey).
    - Included linux/gpio/driver.h instead of linux/gpio.h
    - Implemented .set_single_ended().
    - Added GPIO register description.
    - Replaced container_of() with gpiochip_get_data().
    - Removed unnecessary "if (gpio > WCOVE_VGPIO_NUM" check.
    - Removed the device id table and added MODULE_ALIAS().

    Signed-off-by: Ajay Thomas
    Signed-off-by: Bin Gao
    Reviewed-by: Andy Shevchenko
    Reviewed-by: Mika Westerberg
    Signed-off-by: Linus Walleij

    Bin Gao
     
  • The AXP209 PMIC has a bunch of GPIOs accessible, that are usually used to
    control LEDs or backlight.

    Add a driver for them

    Signed-off-by: Maxime Ripard
    Acked-by: Rob Herring
    Signed-off-by: Linus Walleij

    Maxime Ripard
     
  • Some i2c gpio devices are connected to a switchable power supply
    which needs to be enabled prior to probing the device. This patch
    allows the drive to enable the devices vcc regulator prior to probing.

    Signed-off-by: Phil Reid
    Signed-off-by: Linus Walleij

    Phil Reid
     

10 Aug, 2016

10 commits

  • The particularities of this variant are:
    - GPIO_XXX_LSB and GPIO_XXX_MSB memory locations are inverted compared
    to other variants.
    - There is no Edge detection, Rising Edge and Falling Edge registers.
    - IRQ flags are cleared when read, no need to write in Status register.

    Signed-off-by: Amelie DELAUNAY
    Signed-off-by: Patrice Chotard
    Reviewed-by: Linus Walleij
    Signed-off-by: Lee Jones

    Patrice Chotard
     
  • STMPE1600 is a 16-bit port expander.
    Datasheet is available here :
    http://www2.st.com/content/st_com/en/products/interfaces-and-transceivers/
    i-o-expanders-and-level-translators/i-o-expanders/stmpe1600.html

    Signed-off-by: Amelie DELAUNAY
    Signed-off-by: Patrice Chotard
    Acked-by: Linus Walleij
    Signed-off-by: Lee Jones

    Patrice Chotard
     
  • This patch adds a new compatible string for stmpe mfd to support
    stmpe1600 variant.

    Signed-off-by: Amelie DELAUNAY
    Acked-by: Linus Walleij
    Signed-off-by: Lee Jones

    Patrice Chotard
     
  • This update allows to use registers map as following :
    regs[reg_index + offset] instead of
    regs[reg_index] + offset

    This makes code clearer and will facilitate the addition of STMPE1600
    on which LSB and MSB registers are respectively located at addr and addr + 1.
    Despite for all others STMPE variant, LSB and MSB registers are respectively
    located in reverse order at addr + 1 and addr.

    For variant which have 3 registers's bank, we use LSB,CSB and MSB indexes
    which contains respectively LSB (or LOW), CSB (or MID) and MSB (or HIGH)
    register addresses (STMPE1801/STMPE24xx).
    For variant which have 2 registers's bank, we use LSB and CSB indexes only.
    In this case the CSB index contains the MSB regs address (STMPE 1601).

    Signed-off-by: Patrice Chotard
    Reviewed-by: Linus Walleij
    Signed-off-by: Lee Jones

    Patrice Chotard
     
  • this update allows to use registers map as following :
    regs[reg_index + offset] instead of
    regs[reg_index] + offset

    This makes code clearer and will facilitate the addition of STMPE1600
    on which LSB and MSB registers are respectively located at addr and addr + 1.
    Despite for all others STMPE variant, LSB and MSB registers are respectively
    located in reverse order at addr + 1 and addr.

    For variant which have 3 registers's bank, we use LSB,CSB and MSB indexes
    which contains respectively LSB (or LOW), CSB (or MID) and MSB (or HIGH)
    register addresses (STMPE1801/STMPE24xx).
    For variant which have 2 registers's bank, we use LSB and CSB indexes only.
    In this case the CSB index contains the MSB regs address (STMPE 1601).

    Signed-off-by: Patrice Chotard
    Reviewed-by: Linus Walleij
    Signed-off-by: Lee Jones

    Patrice Chotard
     
  • In order to prepare the ground to STMPE1600,
    as STMPE1600's SYS_CTRL register has the same layout as
    STMPE801 variant, unify STMPExxx_REG_SYS_CTRL_RESET/INT_EN/INT_HI
    bit masks to more generic STMPE_SYS_CTRL_RESET/INT_EN/INT_HI

    Signed-off-by: Patrice Chotard
    Signed-off-by: Lee Jones

    Patrice Chotard
     
  • On STMPE801/1801 datasheets, it's mentionned writing
    in interrupt status register has no effect, bits are
    cleared when reading.

    Signed-off-by: Amelie DELAUNAY
    Signed-off-by: Patrice Chotard
    Reviewed-by: Linus Walleij
    Signed-off-by: Lee Jones

    Patrice Chotard
     
  • By cross-checking STMPE 610/801/811/1601/2401/2403 datasheets,
    it appears that edge detection and rising/falling edge detection
    is not supported by all STMPE variant:

    GPIO GPIO
    Edge detection rising/falling
    edge detection
    610 | X | X |
    801 | | |
    811 | X | X |
    1600 | | |
    1601 | X | X |
    1801 | | X |
    2401 | X | X |
    2403 | X | X |

    Rework stmpe_dbg_show_one() and stmpe_gpio_irq to correctly
    take these cases into account.

    Signed-off-by: Patrice Chotard
    Reviewed-by: Linus Walleij
    Signed-off-by: Lee Jones

    Patrice Chotard
     
  • Reset was only implemented for STMPE1801 variant despite
    all variant have a SOFT_RESET bit.

    For STMPE2401/2403/801/1601/1801 SOFT_RESET bit is bit 7
    of SYS_CTRL register.
    For STMPE610/811 (which have the same variant id) SOFT_RESET
    bit is bit 1 of SYS_CTRL register.

    Signed-off-by: Patrice Chotard
    Acked-by: Linus Walleij
    Signed-off-by: Lee Jones

    Patrice Chotard
     
  • As STMPE1801/1601/24xx has a SYS_CTRL register and
    STMPE1601/2403 has even a SYS_CTRL2 register, add
    STMPE_IDX_SYS_CTRL/2 and update driver code accordingly

    This update prepares the ground for not yet supported STMPE1600
    which share similar REG_SYS_CTRL register.

    Signed-off-by: Patrice Chotard
    Acked-by: Linus Walleij
    Signed-off-by: Lee Jones

    Patrice Chotard
     

08 Aug, 2016

11 commits

  • The GPIOLIB is now selectable explicitly, and always available
    for all archs. All archs that require GPIOLIB are switched to
    select GPIOLIB directly. Delete the hairy ARCH_REQUIRE_GPIOLIB
    and ARCH_WANTS_OPTIONAL_GPIOLIB Kconfig symbols.

    Cc: Michael Büsch
    Signed-off-by: Linus Walleij

    Linus Walleij
     
  • A new user of the Kconfig selection of ARCH_REQUIRE_GPIOLIB
    has appeared. Replace with just selecting GPIOLIB.

    Acked-by: Arnd Bergmann
    Signed-off-by: Linus Walleij

    Linus Walleij
     
  • Replace "select ARCH_REQUIRE_GPIOLIB" with "select GPIOLIB"
    as this can now be selected directly.

    Cc: Michael Büsch
    Cc: Steven Miao
    Cc: adi-buildroot-devel@lists.sourceforge.net
    Signed-off-by: Linus Walleij

    Linus Walleij
     
  • This replaces:

    - "select ARCH_REQUIRE_GPIOLIB" with "select GPIOLIB" as this can
    now be selected directly.

    - "select ARCH_WANT_OPTIONAL_GPIOLIB" with no dependency: GPIOLIB
    is now selectable by everyone, so we need not declare our
    intent to select it.

    Cc: Michael Büsch
    Acked-by: Will Deacon
    Signed-off-by: Linus Walleij

    Linus Walleij
     
  • Linus Torvalds
     
  • Pull more block fixes from Jens Axboe:
    "As mentioned in the pull the other day, a few more fixes for this
    round, all related to the bio op changes in this series.

    Two fixes, and then a cleanup, renaming bio->bi_rw to bio->bi_opf. I
    wanted to do that change right after or right before -rc1, so that
    risk of conflict was reduced. I just rebased the series on top of
    current master, and no new ->bi_rw usage has snuck in"

    * 'for-linus' of git://git.kernel.dk/linux-block:
    block: rename bio bi_rw to bi_opf
    target: iblock_execute_sync_cache() should use bio_set_op_attrs()
    mm: make __swap_writepage() use bio_set_op_attrs()
    block/mm: make bdev_ops->rw_page() take a bool for read/write

    Linus Torvalds
     
  • Pull drm zpos property support from Dave Airlie:
    "This tree was waiting on some media stuff I hadn't had time to get a
    stable branchpoint off, so I just waited until it was all in your tree
    first.

    It's been around a bit on the list and shouldn't affect anything
    outside adding the generic API and moving some ARM drivers to using
    it"

    * tag 'drm-for-v4.8-zpos' of git://people.freedesktop.org/~airlied/linux:
    drm: rcar: use generic code for managing zpos plane property
    drm/exynos: use generic code for managing zpos plane property
    drm: sti: use generic zpos for plane
    drm: add generic zpos property

    Linus Torvalds
     
  • Since commit 63a4cc24867d, bio->bi_rw contains flags in the lower
    portion and the op code in the higher portions. This means that
    old code that relies on manually setting bi_rw is most likely
    going to be broken. Instead of letting that brokeness linger,
    rename the member, to force old and out-of-tree code to break
    at compile time instead of at runtime.

    No intended functional changes in this commit.

    Signed-off-by: Jens Axboe

    Jens Axboe
     
  • The original commit missed this function, it needs to mark it a
    write flush.

    Cc: Mike Christie
    Fixes: e742fc32fcb4 ("target: use bio op accessors")
    Signed-off-by: Jens Axboe

    Jens Axboe
     
  • Cleaner than manipulating bio->bi_rw flags directly.

    Signed-off-by: Jens Axboe

    Jens Axboe
     
  • Commit abf545484d31 changed it from an 'rw' flags type to the
    newer ops based interface, but now we're effectively leaking
    some bdev internals to the rest of the kernel. Since we only
    care about whether it's a read or a write at that level, just
    pass in a bool 'is_write' parameter instead.

    Then we can also move op_is_write() and friends back under
    CONFIG_BLOCK protection.

    Reviewed-by: Mike Christie
    Signed-off-by: Jens Axboe

    Jens Axboe
     

07 Aug, 2016

4 commits

  • Pull documentation fixes from Jonathan Corbet:
    "Three fixes for the docs build, including removing an annoying warning
    on 'make help' if sphinx isn't present"

    * tag 'doc-4.8-fixes' of git://git.lwn.net/linux:
    DocBook: use DOCBOOKS="" to ignore DocBooks instead of IGNORE_DOCBOOKS=1
    Documenation: update cgroup's document path
    Documentation/sphinx: do not warn about missing tools in 'make help'

    Linus Torvalds
     
  • Pull binfmt_misc update from James Bottomley:
    "This update is to allow architecture emulation containers to function
    such that the emulation binary can be housed outside the container
    itself. The container and fs parts both have acks from relevant
    experts.

    To use the new feature you have to add an F option to your binfmt_misc
    configuration"

    From the docs:
    "The usual behaviour of binfmt_misc is to spawn the binary lazily when
    the misc format file is invoked. However, this doesn't work very well
    in the face of mount namespaces and changeroots, so the F mode opens
    the binary as soon as the emulation is installed and uses the opened
    image to spawn the emulator, meaning it is always available once
    installed, regardless of how the environment changes"

    * tag 'binfmt-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/binfmt_misc:
    binfmt_misc: add F option description to documentation
    binfmt_misc: add persistent opened binary handler for containers
    fs: add filp_clone_open API

    Linus Torvalds
     
  • In most cases, EPERM is returned on immutable inode, and there're only a
    few places returning EACCES. I noticed this when running LTP on
    overlayfs, setxattr03 failed due to unexpected EACCES on immutable
    inode.

    So converting all EACCES to EPERM on immutable inode.

    Acked-by: Dave Chinner
    Signed-off-by: Eryu Guan
    Signed-off-by: Al Viro
    Signed-off-by: Linus Torvalds

    Eryu Guan
     
  • Pull more vfs updates from Al Viro:
    "Assorted cleanups and fixes.

    In the "trivial API change" department - ->d_compare() losing 'parent'
    argument"

    * 'for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    cachefiles: Fix race between inactivating and culling a cache object
    9p: use clone_fid()
    9p: fix braino introduced in "9p: new helper - v9fs_parent_fid()"
    vfs: make dentry_needs_remove_privs() internal
    vfs: remove file_needs_remove_privs()
    vfs: fix deadlock in file_remove_privs() on overlayfs
    get rid of 'parent' argument of ->d_compare()
    cifs, msdos, vfat, hfs+: don't bother with parent in ->d_compare()
    affs ->d_compare(): don't bother with ->d_inode
    fold _d_rehash() and __d_rehash() together
    fold dentry_rcuwalk_invalidate() into its only remaining caller

    Linus Torvalds
     

06 Aug, 2016

2 commits

  • …nel/git/dgc/linux-xfs

    Pull more xfs updates from Dave Chinner:
    "This is the second part of the XFS updates for this merge cycle, and
    contains the new reverse block mapping feature for XFS.

    Reverse mapping allows us to track the owner of a specific block on
    disk precisely. It is implemented as a set of btrees (one per
    allocation group) that track the owners of allocated extents.
    Effectively it is a "used space tree" that is updated when we allocate
    or free extents. i.e. it is coherent with the free space btrees we
    already maintain and never overlaps with them.

    This reverse mapping infrastructure is the building block of several
    upcoming features - reflink, copy-on-write data, dedupe, online
    metadata and data scrubbing, highly accurate bad sector/data loss
    reporting to users, and significantly improved reconstruction of
    damaged and corrupted filesystems. There's a lot of new stuff coming
    along in the next couple of cycles,a nd it all builds in the rmap
    infrastructure.

    As such, it's a huge chunk of new code with new on-disk format
    features and internal infrastructure. It warns at mount time as an
    experimental feature and that it may eat data (as we do with all new
    on-disk features until they stabilise). We have not released
    userspace suport for it yet - userspace support currently requires
    download from Darrick's xfsprogs repo and build from source, so the
    access to this feature is really developer/tester only at this point.
    Initial userspace support will be released at the same time kernel
    with this code in it is released.

    The new rmap enabled code regresses 3 xfstests - all are ENOSPC
    related corner cases, one of which Darrick posted a fix for a few
    hours ago. The other two are fixed by infrastructure that is part of
    the upcoming reflink patchset. This new ENOSPC infrastructure
    requires a on-disk format tweak required to keep mount times in
    check - we need to keep an on-disk count of allocated rmapbt blocks so
    we don't have to scan the entire btrees at mount time to count them.

    This is currently being tested and will be part of the fixes sent in
    the next week or two so users will not be exposed to this change"

    * tag 'xfs-rmap-for-linus-4.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs: (52 commits)
    xfs: move (and rename) the deferred bmap-free tracepoints
    xfs: collapse single use static functions
    xfs: remove unnecessary parentheses from log redo item recovery functions
    xfs: remove the extents array from the rmap update done log item
    xfs: in btree_lshift, only allocate temporary cursor when needed
    xfs: remove unnecesary lshift/rshift key initialization
    xfs: remove the get*keys and update_keys btree ops pointers
    xfs: enable the rmap btree functionality
    xfs: don't update rmapbt when fixing agfl
    xfs: disable XFS_IOC_SWAPEXT when rmap btree is enabled
    xfs: add rmap btree block detection to log recovery
    xfs: add rmap btree geometry feature flag
    xfs: propagate bmap updates to rmapbt
    xfs: enable the xfs_defer mechanism to process rmaps to update
    xfs: log rmap intent items
    xfs: create rmap update intent log items
    xfs: add rmap btree insert and delete helpers
    xfs: convert unwritten status of reverse mappings
    xfs: remove an extent from the rmap btree
    xfs: add an extent to the rmap btree
    ...

    Linus Torvalds
     
  • Pull qstr constification updates from Al Viro:
    "Fairly self-contained bunch - surprising lot of places passes struct
    qstr * as an argument when const struct qstr * would suffice; it
    complicates analysis for no good reason.

    I'd prefer to feed that separately from the assorted fixes (those are
    in #for-linus and with somewhat trickier topology)"

    * 'work.const-qstr' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    qstr: constify instances in adfs
    qstr: constify instances in lustre
    qstr: constify instances in f2fs
    qstr: constify instances in ext2
    qstr: constify instances in vfat
    qstr: constify instances in procfs
    qstr: constify instances in fuse
    qstr constify instances in fs/dcache.c
    qstr: constify instances in nfs
    qstr: constify instances in ocfs2
    qstr: constify instances in autofs4
    qstr: constify instances in hfs
    qstr: constify instances in hfsplus
    qstr: constify instances in logfs
    qstr: constify dentry_init_security

    Linus Torvalds