1. 03 Nov, 2015 32 commits
  2. 02 Nov, 2015 8 commits
    • Linus Torvalds's avatar
      Merge tag 'gpio-v4.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio · e86328c4
      Linus Torvalds authored
      Pull GPIO updates from Linus Walleij:
       "Here is the bulk of GPIO changes for the v4.4 development cycle.
      
        The only changes hitting outside drivers/gpio are in the pin control
        subsystem and these seem to have settled nicely in linux-next.
      
        Development mistakes and catfights are nicely documented in the
        reverts as you can see.  The outcome of the ABI fight is that we're
        working on a chardev ABI for GPIO now, where hope to show results for
        the v4.5 kernel.
      
        Summary of changes:
      
        GPIO core:
         - Define and handle flags for open drain/open collector and open
           source/open emitter, also know as "single-ended" configurations.
         - Generic request/free operations that handle calling out to the
           (optional) pin control backend.
         - Some refactoring related to an ABI change that did not happen, yet
           provide useful.
         - Added a real-time compliance checklist.  Many GPIO chips have
           irqchips, and need to think this over with the RT patches going
           upstream.
         - Restructure, fix and clean up Kconfig menus a bit.
      
        New drivers:
         - New driver for AMD Promony.
         - New driver for ACCES 104-IDIO-16, a port-mapped I/O card,
           ISA-style.  Very retro.
      
        Subdriver changes:
         - OMAP changes to handle real time requirements.
         - Handle trigger types for edge and level IRQs on PL061 properly.  As
           this hardware is very common it needs to set a proper example for
           others to follow.
         - Some container_of() cleanups.
         - Delete the unused MSM driver in favor of the driver that is
           embedded inside the pin control driver.
         - Cleanup of the ath79 GPIO driver used by many, many OpenWRT router
           targets.
         - A consolidated IT87xx driver replacing the earlier very specific
           IT8761e driver.
         - Handle the TI TCA9539 in the PCA953x driver.  Also handle ACPI
           devices in this subdriver.
         - Drop xilinx arch dependencies as these FPGAs seem to profilate over
           a few different architectures.  MIPS and ARM come to mind"
      
      * tag 'gpio-v4.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (57 commits)
        gpio: fix up SPI submenu
        gpio: drop surplus I2C dependencies
        gpio: drop surplus X86 dependencies
        gpio: dt-bindings: document the official use of "ngpios"
        gpio: MAINTAINERS: Add an entry for the ATH79 GPIO driver
        gpio / ACPI: Allow shared GPIO event to be read via operation region
        gpio: group port-mapped I/O drivers in a menu
        gpio: Add ACCES 104-IDIO-16 driver maintainer entry
        gpio: zynq: Document interrupt-controller DT binding
        gpio: xilinx: Drop architecture dependencies
        gpio: generic: Revert to old error handling in bgpio_map
        gpio: add a real time compliance notes
        Revert "gpio: add a real time compliance checklist"
        gpio: Add GPIO support for the ACCES 104-IDIO-16
        gpio: driver for AMD Promontory
        gpio: xlp: Convert to use gpiolib irqchip helpers
        gpio: add a real time compliance checklist
        gpio/xilinx: enable for MIPS
        gpiolib: Add and use OF_GPIO_SINGLE_ENDED flag
        gpiolib: Split GPIO flags parsing and GPIO configuration
        ...
      e86328c4
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-v4.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · bc9d8c20
      Linus Torvalds authored
      Pull pin control updates from Linus Walleij:
       "This is the big bulk of pin control changes for the v4.4 kernel
        development cycle.  Development pace is high in pin control again this
        merge window.  28 contributors, 83 patches.
      
        It hits a few sites outside the pin control subsystem:
      
         - Device tree bindings in Documentation (as usual)
         - MAINTAINERS
         - drivers/base/* for the "init" state handling by Doug Anderson.
           This has been ACKed by Greg.
         - drivers/usb/renesas_usbhs/rcar2.c, for a dependent Renesas change
           in the USB subsystem.  This has been ACKed by both Greg and Felipe.
         - arch/arm/boot/dts/sama5d2.dtsi - this should ideally have gone
           through the ARM SoC tree but ended up here.
      
        This time I am using Geert Uytterhoeven as submaintainer for SH PFC
        since the are three-four people working in parallel with new Renesas
        ASICs.
      
        Summary of changes:
      
        Infrastructure:
      
         - Doug Anderson wrote a patch adding an "init" state different from
           the "default" state for pin control state handling in the core
           framework.  This is applied before the driver's probe() call if
           defined and takes precedence over "default".  If both are defined,
           "init" will be applied *before* probe() and "default" will be
           applied *after* probe().
      
        Significant subdriver improvements:
      
         - SH PFC is switched to getting GPIO ranges from the device tree
           ranges property on DT platforms.
         - Got rid of CONFIG_ARCH_SHMOBILE_LEGACY, we are all modernized.
         - Got rid of SH PFC hardcoded IRQ numbers.
         - Allwinner sunxi external interrupt through the "r" controller.
         - Moved the Cygnus driver to use DT-provided GPIO ranges.
      
        New drivers:
      
         - Atmel PIO4 pin controller for the SAMA4D2 family
      
        New subdrivers:
      
         - Rockchip RK3036 subdriver
         - Renesas SH PFC R8A7795 subdriver
         - Allwinner sunxi A83T PIO subdriver
         - Freescale i.MX7d iomux lpsr subdriver
         - Marvell Berlin BG4CT subdriver
         - SiRF Atlas 7 step B SoC subdriver
         - Intel Broxton SoC subdriver
      
        Apart from this, the usual slew if syntactic and semantic fixes"
      
      * tag 'pinctrl-v4.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (81 commits)
        pinctrl: pinconf: remove needless loop
        pinctrl: uniphier: guard uniphier directory with CONFIG_PINCTRL_UNIPHIER
        pinctrl: zynq: fix UTF-8 errors
        pinctrl: zynq: Initialize early
        pinctrl: at91: add missing of_node_put
        pinctrl: tegra-xusb: Correct lane mux options
        pinctrl: intel: Add Intel Broxton pin controller support
        pinctrl: intel: Allow requesting pins which are in ACPI mode as GPIOs
        pinctrl: intel: Add support for multiple GPIO chips sharing the interrupt
        drivers/pinctrl: Add the concept of an "init" state
        pinctrl: uniphier: set input-enable before pin-muxing
        pinctrl: cygnus: Add new compatible string for gpio controller driver
        pinctrl: cygnus: Remove GPIO to Pinctrl pin mapping from driver
        pinctrl: cygnus: Optional DT property to support pin mappings
        pinctrl: sunxi: Add irq pinmuxing to sun6i "r" pincontroller
        pinctrl: sunxi: Fix irq_of_xlate for the r_pio pinctrl block
        pinctrl: sh-pfc: Remove obsolete r8a7778 platform_device_id entry
        pinctrl: sh-pfc: Remove obsolete r8a7779 platform_device_id entry
        pinctrl: sh-pfc: Stop including <linux/platform_data/gpio-rcar.h>
        usb: renesas_usbhs: Remove unneeded #include <linux/platform_data/gpio-rcar.h>
        ...
      bc9d8c20
    • Linus Torvalds's avatar
      Merge tag 'edac_for_4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp · 9ff3ca58
      Linus Torvalds authored
      Pull EDAC updates from Borislav Petkov:
       "A bunch of fixes all over the place and some hw enablement this time.
      
         - Convert EDAC to debugfs wrappers and make drivers use those
           (Borislav Petkov)
      
         - L3 and SoC support for xgene_edac (Loc Ho)
      
         - AMD F15h, models 0x60-6f support to amd64_edac (Aravind
           Gopalakrishnan)
      
         - Fixes and cleanups all over the place"
      
      * tag 'edac_for_4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp: (22 commits)
        EDAC: Fix PAGES_TO_MiB macro misuse
        EDAC, altera: SoCFPGA EDAC should not look for ECC_CORR_EN
        EDAC: Use edac_debugfs_remove_recursive()
        EDAC, ppc4xx_edac: Fix module autoload for OF platform driver
        Documentation/EDAC: Add reference documents section for amd64_edac
        EDAC, amd64_edac: Update copyright and remove changelog
        EDAC, amd64_edac: Extend scrub rate support to F15hM60h
        EDAC: Don't allow empty DIMM labels
        EDAC: Fix sysfs dimm_label store operation
        EDAC: Fix sysfs dimm_label show operation
        arm64, EDAC: Add L3/SoC DT subnodes to the APM X-Gene SoC EDAC node
        EDAC, xgene: Add SoC support
        EDAC, xgene: Fix possible sprintf() overflow issue
        EDAC, xgene: Add L3 support
        EDAC, Documentation: Update X-Gene EDAC binding for L3/SoC subnodes
        EDAC, sb_edac: Fix TAD presence check for sbridge_mci_bind_devs()
        EDAC, ghes_edac: Remove redundant memory_type array
        EDAC, xgene: Convert to debugfs wrappers
        EDAC, i5100: Convert to debugfs wrappers
        EDAC, altera: Convert to debugfs wrappers
        ...
      9ff3ca58
    • Linus Torvalds's avatar
      Merge tag 'mmc-v4.4' of git://git.linaro.org/people/ulf.hansson/mmc · 17a13590
      Linus Torvalds authored
      Pull MMC updates from Ulf Hansson:
       "MMC core:
         - Add new API to set VCCQ voltage - mmc_regulator_set_vqmmc()
         - Add new ioctl to allow userspace to send multi commands
         - Wait for card busy signalling before starting SDIO requests
         - Remove MMC_CLKGATE
         - Enable tuning for DDR50 mode
         - Some code clean-up/improvements to mmc pwrseq
         - Use highest priority for eMMC restart handler
         - Add DT bindings for eMMC hardware reset support
         - Extend the mmc_send_tuning() API
         - Improve ios show for debugfs
         - A couple of code optimizations
      
        MMC host:
         - Some generic OF improvements
         - Various code clean-ups
         - sirf: Add support for DDR50
         - sunxi: Add support for card busy detection
         - mediatek: Use MMC_CAP_RUNTIME_RESUME
         - mediatek: Add support for eMMC HW-reset
         - mediatek: Add support for HS400
         - dw_mmc: Convert to use the new mmc_regulator_set_vqmmc() API
         - dw_mmc: Add external DMA interface support
         - dw_mmc: Some various improvements
         - dw_mmc-rockchip: MMC tuning with the clock phase framework
         - sdhci: Properly clear IRQs during resume
         - sdhci: Enable tuning for DDR50 mode
         - sdhci-of-esdhc: Use IRQ mode for card detection
         - sdhci-of-esdhc: Support both BE and LE host controller
         - sdhci-pci: Build o2micro support in the same module
         - sdhci-pci: Support for new Intel host controllers
         - sdhci-acpi: Support for new Intel host controllers"
      
      * tag 'mmc-v4.4' of git://git.linaro.org/people/ulf.hansson/mmc: (73 commits)
        mmc: dw_mmc: fix the wrong setting for UHS-DDR50 mode
        mmc: dw_mmc: fix the CardThreshold boundary at CardThrCtl register
        mmc: dw_mmc: NULL dereference in error message
        mmc: pwrseq: Use highest priority for eMMC restart handler
        mmc: mediatek: add HS400 support
        mmc: mmc: extend the mmc_send_tuning()
        mmc: mediatek: add implement of ops->hw_reset()
        mmc: mediatek: fix got GPD checksum error interrupt when data transfer
        mmc: mediatek: change the argument "ddr" to "timing"
        mmc: mediatek: make cmd_ints_mask to const
        mmc: dt-bindings: update Mediatek MMC bindings
        mmc: core: Add DT bindings for eMMC hardware reset support
        mmc: omap_hsmmc: Enable omap_hsmmc for Keystone 2
        mmc: sdhci-acpi: Add more ACPI HIDs for Intel controllers
        mmc: sdhci-pci: Add more PCI IDs for Intel controllers
        arm: lpc18xx_defconfig: remove CONFIG_MMC_DW_IDMAC
        arm: hisi_defconfig: remove CONFIG_MMC_DW_IDMAC
        arm: exynos_defconfig: remove CONFIG_MMC_DW_IDMAC
        arc: axs10x_defconfig: remove CONFIG_MMC_DW_IDMAC
        mips: pistachio_defconfig: remove CONFIG_MMC_DW_IDMAC
        ...
      17a13590
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-linus-v4.4' of... · 66b01996
      Linus Torvalds authored
      Merge tag 'hwmon-for-linus-v4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon updates from Guenter Roeck:
       "New driver for MAX31790, added support for TMP75C, as well as cleanups
        and minor improvements in various drivers"
      
      * tag 'hwmon-for-linus-v4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (fam15h_power) Add max compute unit accumulated power
        hwmon: (fam15h_power) Enable power1_input on AMD Carrizo
        hwmon: (fam15h_power) Refactor attributes for dynamically added
        hwmon: (ina2xx) remove no longer used variable 'kind'
        hwmon: (nct6775) Introduce separate temperature labels for NCT6792 and NCT6793
        hwmon: (nct6775) NCT6791D and NCT6792D have an additional temperature source
        hwmon: (ina2xx) give precedence to DT over checking for platform data.
        hwmon: (ina2xx) convert driver to using regmap
        hwmon: (coretemp) Increase limit of maximum core ID from 32 to 128.
        hwmon: (lm75) Add support for TMP75C
        hwmon: (ibmpowernv) Add OF compatibility table entry
        hwmon: (abx500) drop the use of IRQF_NO_SUSPEND
        hwmon: (max31790) Fix dereference of ERR_PTR
        hwmon: Driver for Maxim MAX31790
      66b01996
    • Linus Torvalds's avatar
      mm: get rid of 'vmalloc_info' from /proc/meminfo · a5ad88ce
      Linus Torvalds authored
      It turns out that at least some versions of glibc end up reading
      /proc/meminfo at every single startup, because glibc wants to know the
      amount of memory the machine has.  And while that's arguably insane,
      it's just how things are.
      
      And it turns out that it's not all that expensive most of the time, but
      the vmalloc information statistics (amount of virtual memory used in the
      vmalloc space, and the biggest remaining chunk) can be rather expensive
      to compute.
      
      The 'get_vmalloc_info()' function actually showed up on my profiles as
      4% of the CPU usage of "make test" in the git source repository, because
      the git tests are lots of very short-lived shell-scripts etc.
      
      It turns out that apparently this same silly vmalloc info gathering
      shows up on the facebook servers too, according to Dave Jones.  So it's
      not just "make test" for git.
      
      We had two patches to just cache the information (one by me, one by
      Ingo) to mitigate this issue, but the whole vmalloc information of of
      rather dubious value to begin with, and people who *actually* want to
      know what the situation is wrt the vmalloc area should just look at the
      much more complete /proc/vmallocinfo instead.
      
      In fact, according to my testing - and perhaps more importantly,
      according to that big search engine in the sky: Google - there is
      nothing out there that actually cares about those two expensive fields:
      VmallocUsed and VmallocChunk.
      
      So let's try to just remove them entirely.  Actually, this just removes
      the computation and reports the numbers as zero for now, just to try to
      be minimally intrusive.
      
      If this breaks anything, we'll obviously have to re-introduce the code
      to compute this all and add the caching patches on top.  But if given
      the option, I'd really prefer to just remove this bad idea entirely
      rather than add even more code to work around our historical mistake
      that likely nobody really cares about.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a5ad88ce
    • Linus Torvalds's avatar
      Merge branch 'fs-file-descriptor-optimization' · 2e002662
      Linus Torvalds authored
      Merge file descriptor allocation speedup.
      
      Eric Dumazet has a test-case for a fairly common network deamon load
      pattern: openign and closing a lot of sockets that each have very little
      work done on them.  It turns out that in that case, the cost of just
      finding the correct file descriptor number can be a dominating factor.
      
      We've long had a trivial optimization for allocating file descriptors
      sequentially, but that optimization ends up being not very effective
      when other file descriptors are being closed concurrently, and the fd
      patterns are not some simple FIFO pattern.  In such cases we ended up
      spending a lot of time just scanning the bitmap of open file descriptors
      in order to find the next file descriptor number to open.
      
      This trivial patch-series mitigates that by simply introducing a
      second-level bitmap of which words in the first bitmap are already fully
      allocated.  That cuts down the cost of scanning by an order of magnitude
      in some pathological (but realistic) cases.
      
      The second patch is an even more trivial patch to avoid unnecessarily
      dirtying the cacheline for the close-on-exec bit array that normally
      ends up being all empty.
      
      * fs-file-descriptor-optimization:
        vfs: conditionally clear close-on-exec flag
        vfs: Fix pathological performance case for __alloc_fd()
      2e002662
    • Linus Torvalds's avatar
      Linux 4.3 · 6a13feb9
      Linus Torvalds authored
      6a13feb9