1. 22 Jan, 2014 6 commits
    • Alex Williamson's avatar
      intel-iommu: fix off-by-one in pagetable freeing · 08336fd2
      Alex Williamson authored
      dma_pte_free_level() has an off-by-one error when checking whether a pte
      is completely covered by a range.  Take for example the case of
      attempting to free pfn 0x0 - 0x1ff, ie.  512 entries covering the first
      2M superpage.
      
      The level_size() is 0x200 and we test:
      
        static void dma_pte_free_level(...
      	...
      
      	if (!(0 > 0 || 0x1ff < 0 + 0x200)) {
      		...
      	}
      
      Clearly the 2nd test is true, which means we fail to take the branch to
      clear and free the pagetable entry.  As a result, we're leaking
      pagetables and failing to install new pages over the range.
      
      This was found with a PCI device assigned to a QEMU guest using vfio-pci
      without a VGA device present.  The first 1M of guest address space is
      mapped with various combinations of 4K pages, but eventually the range
      is entirely freed and replaced with a 2M contiguous mapping.
      intel-iommu errors out with something like:
      
        ERROR: DMA PTE for vPFN 0x0 already set (to 5c2b8003 not 849c00083)
      
      In this case 5c2b8003 is the pointer to the previous leaf page that was
      neither freed nor cleared and 849c00083 is the superpage entry that
      we're trying to replace it with.
      Signed-off-by: default avatarAlex Williamson <alex.williamson@redhat.com>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Cc: Joerg Roedel <joro@8bytes.org>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      08336fd2
    • Jan Kara's avatar
      fsnotify: remove pointless NULL initializers · 56b27cf6
      Jan Kara authored
      We usually rely on the fact that struct members not specified in the
      initializer are set to NULL.  So do that with fsnotify function pointers
      as well.
      Signed-off-by: default avatarJan Kara <jack@suse.cz>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Cc: Eric Paris <eparis@parisplace.org>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      56b27cf6
    • Jan Kara's avatar
      fsnotify: remove .should_send_event callback · 83c4c4b0
      Jan Kara authored
      After removing event structure creation from the generic layer there is
      no reason for separate .should_send_event and .handle_event callbacks.
      So just remove the first one.
      Signed-off-by: default avatarJan Kara <jack@suse.cz>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Cc: Eric Paris <eparis@parisplace.org>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      83c4c4b0
    • Jan Kara's avatar
      fsnotify: do not share events between notification groups · 7053aee2
      Jan Kara authored
      Currently fsnotify framework creates one event structure for each
      notification event and links this event into all interested notification
      groups.  This is done so that we save memory when several notification
      groups are interested in the event.  However the need for event
      structure shared between inotify & fanotify bloats the event structure
      so the result is often higher memory consumption.
      
      Another problem is that fsnotify framework keeps path references with
      outstanding events so that fanotify can return open file descriptors
      with its events.  This has the undesirable effect that filesystem cannot
      be unmounted while there are outstanding events - a regression for
      inotify compared to a situation before it was converted to fsnotify
      framework.  For fanotify this problem is hard to avoid and users of
      fanotify should kind of expect this behavior when they ask for file
      descriptors from notified files.
      
      This patch changes fsnotify and its users to create separate event
      structure for each group.  This allows for much simpler code (~400 lines
      removed by this patch) and also smaller event structures.  For example
      on 64-bit system original struct fsnotify_event consumes 120 bytes, plus
      additional space for file name, additional 24 bytes for second and each
      subsequent group linking the event, and additional 32 bytes for each
      inotify group for private data.  After the conversion inotify event
      consumes 48 bytes plus space for file name which is considerably less
      memory unless file names are long and there are several groups
      interested in the events (both of which are uncommon).  Fanotify event
      fits in 56 bytes after the conversion (fanotify doesn't care about file
      names so its events don't have to have it allocated).  A win unless
      there are four or more fanotify groups interested in the event.
      
      The conversion also solves the problem with unmount when only inotify is
      used as we don't have to grab path references for inotify events.
      
      [hughd@google.com: fanotify: fix corruption preventing startup]
      Signed-off-by: default avatarJan Kara <jack@suse.cz>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Cc: Eric Paris <eparis@parisplace.org>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarHugh Dickins <hughd@google.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      7053aee2
    • Jan Kara's avatar
      inotify: provide function for name length rounding · e9fe6904
      Jan Kara authored
      Rounding of name length when passing it to userspace was done in several
      places.  Provide a function to do it and use it in all places.
      Signed-off-by: default avatarJan Kara <jack@suse.cz>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Cc: Eric Paris <eparis@parisplace.org>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e9fe6904
    • Dan Williams's avatar
      dma-debug: introduce debug_dma_assert_idle() · 0abdd7a8
      Dan Williams authored
      Record actively mapped pages and provide an api for asserting a given
      page is dma inactive before execution proceeds.  Placing
      debug_dma_assert_idle() in cow_user_page() flagged the violation of the
      dma-api in the NET_DMA implementation (see commit 77873803 "net_dma:
      mark broken").
      
      The implementation includes the capability to count, in a limited way,
      repeat mappings of the same page that occur without an intervening
      unmap.  This 'overlap' counter is limited to the few bits of tag space
      in a radix tree.  This mechanism is added to mitigate false negative
      cases where, for example, a page is dma mapped twice and
      debug_dma_assert_idle() is called after the page is un-mapped once.
      Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
      Cc: Joerg Roedel <joro@8bytes.org>
      Cc: Vinod Koul <vinod.koul@intel.com>
      Cc: Russell King <rmk+kernel@arm.linux.org.uk>
      Cc: James Bottomley <JBottomley@Parallels.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0abdd7a8
  2. 21 Jan, 2014 34 commits
    • Linus Torvalds's avatar
      Merge tag 'for-v3.14' of git://git.infradead.org/battery-2.6 · 03d11a0e
      Linus Torvalds authored
      Pull battery updates from Dmitry Eremin-Solenikov:
       "I'm picking up power supply maintainership from Anton Vorontov.  Could
        you please pull battery-2.6 git tree changes prepared for the v3.14
        release.
      
        Highlights:
      
         - Power supply notifier
      
         - Several drivers gained DT support
      
         - Added Maxim 14577 driver
      
         - Change of maintainer"
      
      * tag 'for-v3.14' of git://git.infradead.org/battery-2.6:
        MAINTAINERS: Pick up power supply maintainership
        max17042_battery: Add IRQF_ONESHOT flag to use default irq handler
        gpio-charger: Support wakeup events
        power_supply: Add charger support for Maxim 14577
        dt: Binding documentation for isp1704 charger
        isp1704_charger: Add DT support
        charger-manager: of_cm_parse_desc() should be static
        bq2415x_charger: Add DT support
        power_supply: Add power_supply_get_by_phandle
        bq2415x_charger: Use power_supply notifier for automode
        power: reset: Add as3722 power-off driver
        mfd: AS3722: Add dt node properties for system power controller
        charger-manager: Support deivce tree in charger manager driver
        charger-manager: Modify the way of checking battery's temperature
        power_supply: Add power_supply notifier
      03d11a0e
    • Linus Torvalds's avatar
      Merge tag 'mfd-3.14-1' of git://git.linaro.org/people/ljones/mfd · ac266635
      Linus Torvalds authored
      Pull MFD changes from Lee Jones:
       "New drivers
         - Samsung Maxim 14577; Micro USB, Regulator, IRQ Controller and
           Battery Charger
         - TI/National Semiconductor LP3943 I2C GPIO Expander and PWM
           Generator
      
        Existing driver adaptions
         - Expansion of Wolfson Arizona DSP and High-Pass filter controls
         - TI TWL6040 default Regmap support and Regcache addition/bypass
         - Some nice Smatch catch fixes
         - Conversion of TI OMAP-USB and TI TWL6030 to endian neutralness
         - ChromeOS EC timing (delay) adaptions and added dependency on OF
         - Many constifications of 'struct {mfd_cell,regmap_irq,et.al}'
         - Watchdog support added for NVIDIA AS3722
         - Convert functions to static in TI AM335x
         - Realigned previously defeated functionality in TI AM335x
         - IIO ADC-TSC concurrency dead-lock/timeout resolution
         - Addition of Power Management and Clock support for Samsung core
         - DEFINE_PCI_DEVICE_TABLE macro removal from MFD Subsystem
         - Greater use of irqdomain functionality in ST-E AB8500
         - Removal of 'include/linux/mfd/abx500/ab8500-gpio.h'
         - Wolfson WM831x PMIC Power Management changes s/poweroff/shutdown/
         - Device Tree documentation added for TI/Nat Semi LP3943
         - Version detection and voltage tables for TI TPS6586x PMIC devices
         - Simplification of Freescale MC13XXX (de-)initialisation routines
         - Clean-up and simplification of the Realtek parent driver
         - Added support for RTL8402 Realtek PCI-Express card reader
         - Resource leak fix for Maxim 77686
         - Possible suspend BUG() fix in OMAP USB TLL
         - Support for new Wolfson WM5110 Revision (D)
         - Testing of automatic assignment of of_node in mfd_add_device()
         - Reversion of the above when it started to cause issues
         - Remove legacy Platform Data from;
                    TI TWL Core, Qualcomm SSBI and ST-E ABx500 Pinctrl
         - Clean-ups; tabbing issues, function name changes, 'drvdata = NULL'
                    removal, unused uninitialised warning mitigation, error
                    message clarity, removal of redundant/duplicate checks,
                    licensing (GPL -> GPL2), coding consistency, duplicate
                    function declaration, ret checks, commit corrections,
                    redundant of_match_ptr() helper removal, spelling,
                    #if-deffery removal and header guards name changes"
      
      * tag 'mfd-3.14-1' of git://git.linaro.org/people/ljones/mfd: (78 commits)
        mfd: wm5110: Add register patch for rev D chip
        mfd: omap-usb-tll: Don't hold lock during pm_runtime_get/put_sync()
        gpio: lp3943: Remove redundant of_match_ptr helper
        mfd: sta2x11-mfd: Use named constants for pci_power_t values
        Documentation: mfd: Fix LDO index in s2mps11.txt
        mfd: Cleanup mfd-mcp-sa11x0.h header
        mfd: max8997: Use "IS_ENABLED(CONFIG_OF)" for DT code.
        mfd: twl6030: Fix endianness problem in IRQ handler
        mfd: sec-core: Add cells for S5M8767-clocks
        mfd: max14577: Remove redundant of_match_ptr helper
        mfd: twl6040: Fix sparse non static symbol warning
        mfd: Revert "mfd: Always assign of_node in mfd_add_device()"
        mfd: rtsx: Fix sparse non static symbol warning
        mfd: max77693: Set proper maximum register for MUIC regmap
        mfd: max77686: Fix regmap resource leak on driver remove
        mfd: Represent correct filenames in file headers
        mfd: rtsx: Add support for card reader rtl8402
        mfd: rtsx: Add set pull control macro and simplify rtl8411
        mfd: max8997: Enforce mfd_add_devices() return value check
        mfd: mc13xxx: Simplify probe() & remove()
        ...
      ac266635
    • Linus Torvalds's avatar
      Merge tag 'sound-3.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · d4371f94
      Linus Torvalds authored
      Pull sound updates from Takashi Iwai:
       "It was holiday season, so no wonder that there are little changes in
        framework level, although diffstat shows quite many changes spreaded
        over sound/* directories.  Most of changes are cleanups, code
        refactoring and fixes.
      
        Some highlights:
         - Removal of OSS sleep_on usages by Arnd
         - Simplified memalloc helper codes, drop obsoleted features; now it's
           built into PCM driver instead of an individual module
         - Warn if PCM buffer preallocation fails, which will show page
           allocation issues more clearly
         - Compress offload API updates for sample rates by Vinod
         - PCM glitch workaround on ctxfi emu20k1 by Sarah
         - Drop cs46xx DSP blobs, using firmware loader now
         - USB-audio quitks for Plantronics Gamecom 780, Creative VF0420, and
           Focusrite Saffire 6
      
        HD-audio specifics:
         - Standardize Kconfigs of HD-audio codec drivers; now "make
           localmodconfig" recognizes configs properly (finally!)
         - Parallel PM implementation by Mengdong
         - BayleyBay/ValleyView2 board fixups
         - Broadwell audio support
         - Runtime PM improvement (PantherPoint, etc)
         - Quirks: Dell subwooer, Gigabyte mobo jack detection oddity, Dell
           AiO click noise fixes, Dell headset mic fixes, etc
         - Automatic bind with HDMI codec parser without generic parser
         - More AD codec fixes (since 3.12 regression) including the automatic
           stereo mix support
         - Common Thinkpad ACPI helper for Realtek and Conexant codecs
      
        ASoC specifics:
         - Update to the generic DMA code to support deferred probe and
           managed resources
         - New drivers for BCM2835 (used in Raspberry Pi), Tegra with MAX98090
           and Analog Devices AXI I2S and S/PDIF controller IPs
         - Device tree support for the simple card, max98090 and cs42l52
         - Conversion of the Samsung drivers to native dmaengine, making them
           multiplatform compatible and hopefully helping keep them more
           modern and up to date.
         - More regmap conversions, including a very welcome one for twl6040
           from Peter Ujfalusi
         - A big overhaul of the DaVinci drivers also from Peter Ujfalusi
         - Lots of DMA updates from Lars-Peter
         - Improvements to the constraints handling code from Lars-Peter
         - A very helpful conversion of the TWL4030 driver to regmap from Peter
         - A new driver for the Freescale ESAI controller from Nicolin Chen
         - Conversion of some of the drivers to use params_width()
         - Extensions to DPCM for use with compressed audio from Liam"
      
      * tag 'sound-3.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (396 commits)
        ASoC: dapm: Fix double prefix addition
        ASoC: compress: Add suport for DPCM into compressed audio
        ASoC: DPCM: make some DPCM API calls non static for compressed usage
        ASoC: core: Fix possible NULL pointer dereference of pcm->config
        ALSA: hda - add headset mic detect quirks for some Dell machines
        ASoC: tlv320aic32x4: Fix regmap range_min
        ASoC: core: Return -ENOTSUPP from set_sysclk() if no operation provided
        ASoC: dapm: Change prototype of soc_widget_read
        ASoC: samsung: Remove SND_DMAENGINE_PCM_FLAG_NO_RESIDUE flag
        ASoC: axi-{spdif,i2s}: Remove SND_DMAENGINE_PCM_FLAG_NO_RESIDUE flag
        ASoC: generic-dmaengine-pcm: Check DMA residue granularity
        ASoC: generic-dmaengine-pcm: Check NO_RESIDUE flag at runtime
        dma: pl330: Set residue_granularity
        dma: Indicate residue granularity in dma_slave_caps
        ASoC: simple-card: fix one bug to writing to the platform data
        ASoC: pcm: Use snd_pcm_rate_mask_intersect() helper
        ALSA: Add helper function for intersecting two rate masks
        ASoC: s6000: Don't mix SNDRV_PCM_RATE_CONTINUOUS with specific rates
        ASoC: fsl: Don't mix SNDRV_PCM_RATE_CONTINUOUS with specific rates
        ASoC: pcm: Properly initialize hw->rate_max
        ...
      d4371f94
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-v3.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · a547df99
      Linus Torvalds authored
      Pull bulk pin control changes from Linus Walleij:
       "This has been queued and tested for a while.  Lots of action here,
        like in the GPIO tree, embedded stuff like this is really hot now it
        seems.  Details in the signed tag.  I'm especially happy about the
        Qualcomm driver as it is used in such a huge subset of mobile handsets
        out there, and these platforms in general need better upstream support
      
         - New driver for the Qualcomm TLMM pin controller and its msm8x74
           subdriver.
      
         - New driver for the Broadcom Capri BCM281xx SoC.
      
         - New subdriver for the imx25 pin controller.
      
         - New subdriver for the Tegra124 pin controller.
      
         - Lock GPIO lines as IRQs for select combined pin control and GPIO
           drivers for baytrail and sirf.
      
         - Some semi-big refactorings and extenstions to the sirf driver.
      
         - Lots of patching, cleanup and fixing in the Renesas "PFC" driver
           and associated subdrivers as usual.  It is settling down a little
           bit now it seems.
      
         - Minor fixes and incremental updates here and there as usual"
      
      * tag 'pinctrl-v3.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (72 commits)
        pinctrl: sunxi: Honor GPIO output initial vaules
        pinctrl: capri: add dependency on OF
        ARM: bcm11351: Enable pinctrl for Broadcom Capri SoCs
        ARM: pinctrl: Add Broadcom Capri pinctrl driver
        pinctrl: Add pinctrl binding for Broadcom Capri SoCs
        pinctrl: Add void * to pinctrl_pin_desc
        pinctrl: st: Fix a typo in probe
        pinctrl: Fix some typos and grammar issues in the documentation
        pinctrl: sirf: lock IRQs when starting them
        pinctrl: sirf: put gpio interrupt pin into input status automatically
        pinctrl: sirf: use only one irq_domain for the whole device node
        pinctrl: single: fix infinite loop caused by bad mask
        pinctrl: single: fix pcs_disable with bits_per_mux
        pinctrl: single: fix DT bindings documentation
        pinctrl: as3722: Set pin to output mode for some function
        pinctrl: sirf: add pin group for USP0 with only RX or TX frame sync
        pinctrl: sirf: fix the pins of sdmmc5 connected with TriG
        pinctrl: sirf: add lost usp1_uart_nostreamctrl group for atlas6
        pinctrl: sunxi: Add Allwinner A20 clock output pin functions
        pinctrl/lantiq: fix typo
        ...
      a547df99
    • Linus Torvalds's avatar
      Merge tag 'gpio-v3.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio · 8e509660
      Linus Torvalds authored
      Pull GPIO tree bulk changes from Linus Walleij:
       "A big set this merge window, as we have much going on in this
        subsystem.  The changes to other subsystems (notably a slew of ARM
        machines as I am doing away with their custom APIs) have all been
        ACKed to the extent possible.
      
        Major changes this time:
      
         - Some core improvements and cleanups to the new GPIO descriptor API.
           This seems to be working now so we can start the exodus to this
           API, moving gradually away from the global GPIO numberspace.
      
         - Incremental improvements to the ACPI GPIO core, and move the few
           GPIO ACPI clients we have to the GPIO descriptor API right *now*
           before we go any further.  We actually managed to contain this
           *before* we started to litter the kernel with yet another hackish
           global numberspace for the ACPI GPIOs, which is a big win.
      
         - The RFkill GPIO driver and all platforms using it have been
           migrated to use the GPIO descriptors rather than fixed number
           assignments.  Tegra machine has been migrated as part of this.
      
         - New drivers for MOXA ART, Xtensa GPIO32 and SMSC SCH311x.  Those
           should be really good examples of how I expect a nice GPIO driver
           to look these days.
      
         - Do away with custom GPIO implementations on a major part of the ARM
           machines: ks8695, lpc32xx, mv78xx0.  Make a first step towards the
           same in the horribly convoluted Samsung S3C include forest.  We
           expect to continue to clean this up as we move forward.
      
         - Flag GPIO lines used for IRQ on adnp, bcm-kona, em, intel-mid and
           lynxpoint.
      
           This makes the GPIOlib core aware that a certain GPIO line is used
           for IRQs and can then enforce some semantics such as disallowing a
           GPIO line marked as in use for IRQ to be switched to output mode.
      
         - Drop all use of irq_set_chip_and_handler_name().  The name provided
           in these cases were just unhelpful tags like "mux" or "demux".
      
         - Extend the MCP23s08 driver to handle interrupts.
      
         - Minor incremental improvements for rcar, lynxpoint, em 74x164 and
           msm drivers.
      
         - Some non-urgent bug fixes here and there, duplicate #includes and
           that usual kind of cleanups"
      
      Fix up broken Kconfig file manually to make this all compile.
      
      * tag 'gpio-v3.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (71 commits)
        gpio: mcp23s08: fix casting caused build warning
        gpio: mcp23s08: depend on OF_GPIO
        gpio: mcp23s08: Add irq functionality for i2c chips
        ARM: S5P[v210|c100|64x0]: Fix build error
        gpio: pxa: clamp gpio get value to [0,1]
        ARM: s3c24xx: explicit dependency on <plat/gpio-cfg.h>
        ARM: S3C[24|64]xx: move includes back under <mach/> scope
        Documentation / ACPI: update to GPIO descriptor API
        gpio / ACPI: get rid of acpi_gpio.h
        gpio / ACPI: register to ACPI events automatically
        mmc: sdhci-acpi: convert to use GPIO descriptor API
        ARM: s3c24xx: fix build error
        gpio: f7188x: set can_sleep attribute
        gpio: samsung: Update documentation
        gpio: samsung: Remove hardware.h inclusion
        gpio: xtensa: depend on HAVE_XTENSA_GPIO32
        gpio: clps711x: Enable driver compilation with COMPILE_TEST
        gpio: clps711x: Use of_match_ptr()
        net: rfkill: gpio: convert to descriptor-based GPIO interface
        leds: s3c24xx: Fix build failure
        ...
      8e509660
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 02d0a752
      Linus Torvalds authored
      Pull i2c updates from Wolfram Sang:
       "For 3.14, the I2C subsystem has the following to offer:
      
         - new drivers for Renesas RIIC and RobotFuzz OSIF
         - driver cleanups & improvements & bugfixes
      
        Pretty standard stuff this time, I'd say.  There is more complex stuff
        coming up, but I didn't have the bandwidth between the years to pull
        it in for this release.  Sadly"
      
      * 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (26 commits)
        i2c: s3c2410: fix quirk usage for 64-bit
        i2c: pnx: Use devm_*() functions
        i2c: at91: add a new compatibility string for the at91sam9261
        i2c-ismt: support I2C_SMBUS_I2C_BLOCK_DATA transaction type
        i2c: Add bus driver for for OSIF USB i2c device.
        i2c: i2c-tiny-usb: Remove RobotFuzz USB vendor:product ID
        i2c: designware: remove HAVE_CLK build dependecy
        Documentation: i2c: Remove obsolete example
        i2c: nomadik: remove platform data header
        i2c: nomadik: auto-calculate slave setup time
        i2c: viperboard: remove superfluous assignment
        i2c: xilinx: Use devm_* functions
        i2c: xilinx: Do not enable irq before irq handler
        i2c: xilinx: Fix i2c checkpatch warnings
        i2c: at91: document clock properties
        i2c: isch: Use devm_request_region()
        i2c: viperboard: Use devm_kzalloc() functions
        i2c: imx: propagate irq error code in probe
        i2c: s3c2410: dont need CPU_FREQ transitions for exynos series
        i2c: s3c2410: Add polling mode support
        ...
      02d0a752
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security · fb2e2c85
      Linus Torvalds authored
      Pull security layer updates from James Morris:
       "Changes for this kernel include maintenance updates for Smack, SELinux
        (and several networking fixes), IMA and TPM"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: (39 commits)
        SELinux: Fix memory leak upon loading policy
        tpm/tpm-sysfs: active_show() can be static
        tpm: tpm_tis: Fix compile problems with CONFIG_PM_SLEEP/CONFIG_PNP
        tpm: Make tpm-dev allocate a per-file structure
        tpm: Use the ops structure instead of a copy in tpm_vendor_specific
        tpm: Create a tpm_class_ops structure and use it in the drivers
        tpm: Pull all driver sysfs code into tpm-sysfs.c
        tpm: Move sysfs functions from tpm-interface to tpm-sysfs
        tpm: Pull everything related to /dev/tpmX into tpm-dev.c
        char: tpm: nuvoton: remove unused variable
        tpm: MAINTAINERS: Cleanup TPM Maintainers file
        tpm/tpm_i2c_atmel: fix coccinelle warnings
        tpm/tpm_ibmvtpm: fix unreachable code warning (smatch warning)
        tpm/tpm_i2c_stm_st33: Check return code of get_burstcount
        tpm/tpm_ppi: Check return value of acpi_get_name
        tpm/tpm_ppi: Do not compare strcmp(a,b) == -1
        ima: remove unneeded size_limit argument from ima_eventdigest_init_common()
        ima: update IMA-templates.txt documentation
        ima: pass HASH_ALGO__LAST as hash algo in ima_eventdigest_init()
        ima: change the default hash algorithm to SHA1 in ima_eventdigest_ng_init()
        ...
      fb2e2c85
    • Charles Keepax's avatar
      mfd: wm5110: Add register patch for rev D chip · 02915661
      Charles Keepax authored
      Evaluation of revision D of WM5110 suggests updates to the register
      patch for optimal performance. For the sake of clarity rev C of the chip
      does not require a register patch.
      Signed-off-by: default avatarCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      02915661
    • Roger Quadros's avatar
      mfd: omap-usb-tll: Don't hold lock during pm_runtime_get/put_sync() · 76a0775d
      Roger Quadros authored
      pm_runtime_get/put_sync() can sleep so don't hold spinlock while
      calling them.
      
      This patch prevents a BUG() during system suspend when
      CONFIG_DEBUG_ATOMIC_SLEEP is enabled.
      
      Bug is present in Kernel versions v3.9 onwards.
      Reported-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      Signed-off-by: default avatarRoger Quadros <rogerq@ti.com>
      Tested-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      76a0775d
    • Sachin Kamat's avatar
      gpio: lp3943: Remove redundant of_match_ptr helper · 3b1ba0cb
      Sachin Kamat authored
      'lp3943_gpio_of_match' is always compiled in. Hence the
      helper macro is not needed.
      Signed-off-by: default avatarSachin Kamat <sachin.kamat@linaro.org>
      Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      3b1ba0cb
    • Julia Lawall's avatar
      mfd: sta2x11-mfd: Use named constants for pci_power_t values · 4d1d9980
      Julia Lawall authored
      If nothing more than to improve code readability.
      
      The semantic patch that makes this change is as follows:
      (http://coccinelle.lip6.fr/)
      
      // <smpl>
      @@
      expression pdev;
      @@
      
      pci_set_power_state(pdev,
      - 0
      + PCI_D0
       )
      // </smpl>
      Signed-off-by: default avatarJulia Lawall <Julia.Lawall@lip6.fr>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      4d1d9980
    • Sachin Kamat's avatar
      Documentation: mfd: Fix LDO index in s2mps11.txt · 94100e7b
      Sachin Kamat authored
      LDO indices start from 1. Fix the example appropriately.
      Signed-off-by: default avatarSachin Kamat <sachin.kamat@linaro.org>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      94100e7b
    • Sachin Kamat's avatar
      mfd: Cleanup mfd-mcp-sa11x0.h header · 7ff6d7a0
      Sachin Kamat authored
      Commit a1fd844c ("ARM: sa1100: move platform_data definitions")
      moved the file to the current location but forgot to remove the pointer
      to its previous location. Clean it up. While at it also change the header
      file protection macros appropriately.
      Signed-off-by: default avatarSachin Kamat <sachin.kamat@linaro.org>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      7ff6d7a0
    • Manish Badarkhe's avatar
      mfd: max8997: Use "IS_ENABLED(CONFIG_OF)" for DT code. · 01c3f110
      Manish Badarkhe authored
      Instead of "#if define CONFIG_OF" use "IS_ENABLED(CONFIG_OF)"
      option for DT code to avoid if-deffery in code.
      Signed-off-by: default avatarManish Badarkhe <badarkhe.manish@gmail.com>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      01c3f110
    • Danke Xie's avatar
      mfd: twl6030: Fix endianness problem in IRQ handler · 754fa7bc
      Danke Xie authored
      The current TWL 6030 IRQ handler assumes little endianness.
      This change makes it endian-neutral.
      Signed-off-by: default avatarDanke Xie <d.xie@sta.samsung.com>
      Signed-off-by: default avatarTaras Kondratiuk <taras.kondratiuk@linaro.org>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      754fa7bc
    • Tushar Behera's avatar
      mfd: sec-core: Add cells for S5M8767-clocks · 39fed00f
      Tushar Behera authored
      S5M8767 chip has 3 crystal oscillators running at 32KHz. These are
      supported by s2mps11-clk driver.
      Signed-off-by: default avatarTushar Behera <tushar.behera@linaro.org>
      Reviewed-by: default avatarTomasz Figa <t.figa@samsung.com>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      39fed00f
    • Sachin Kamat's avatar
      mfd: max14577: Remove redundant of_match_ptr helper · ae679c12
      Sachin Kamat authored
      'max14577_dt_match' is always compiled in. Hence the helper macro
      is not needed.
      Signed-off-by: default avatarSachin Kamat <sachin.kamat@linaro.org>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      ae679c12
    • Wei Yongjun's avatar
      mfd: twl6040: Fix sparse non static symbol warning · adc01fbd
      Wei Yongjun authored
      Fixes the following sparse warning:
      
      drivers/mfd/twl6040.c:89:20: warning:
       symbol 'twl6040_patch' was not declared. Should it be static?
      Signed-off-by: default avatarWei Yongjun <yongjun_wei@trendmicro.com.cn>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      adc01fbd
    • Lee Jones's avatar
      mfd: Revert "mfd: Always assign of_node in mfd_add_device()" · 60a4992a
      Lee Jones authored
      This reverts commit 68044bee13770918e0b28dd44aa98c889ec7558f.
      
      We've had confirmed reports of this patch causing unforeseen issues
      with existing MFD users. It has been agreed by the original author
      and myself that reversion is the best solution.
      Acked-by: default avatarStephen Warren <swarren@nvidia.com>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      60a4992a
    • Wei Yongjun's avatar
      mfd: rtsx: Fix sparse non static symbol warning · b5167bc4
      Wei Yongjun authored
      Fixes the following sparse warning:
      
      drivers/mfd/rtl8411.c:473:6: warning:
       symbol 'rtl8411_init_common_params' was not declared. Should it be static?
      Signed-off-by: default avatarWei Yongjun <yongjun_wei@trendmicro.com.cn>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      b5167bc4
    • Krzysztof Kozlowski's avatar
      mfd: max77693: Set proper maximum register for MUIC regmap · 75ad1327
      Krzysztof Kozlowski authored
      The MUIC block in max77693 has different I2C address than PMIC. The
      driver allocated two regmaps: for PMIC and MUIC. However it used the
      same regmap_config (with max_register field) for both regmaps. Actual
      maximum address of register for MUIC is different than for PMIC.
      
      Define another regmap_config for MUIC with proper max_register value.
      Signed-off-by: default avatarKrzysztof Kozlowski <k.kozlowski@samsung.com>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      75ad1327
    • Krzysztof Kozlowski's avatar
      mfd: max77686: Fix regmap resource leak on driver remove · 74142ffc
      Krzysztof Kozlowski authored
      The regmap used by max77686 MFD driver was not freed with regmap_exit()
      on driver exit. This lead to leak of resources.
      
      Replace regmap_init_i2c() call in driver probe with initialization of
      managed register map so the regmap will be properly freed by the device
      management code.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarKrzysztof Kozlowski <k.kozlowski@samsung.com>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      74142ffc
    • Laszlo Papp's avatar
      mfd: Represent correct filenames in file headers · f876a975
      Laszlo Papp authored
      The original author(s) probably copy/pasted these headers from the
      existing public header files.
      Signed-off-by: default avatarLaszlo Papp <lpapp@kde.org>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      f876a975
    • Micky Ching's avatar
      mfd: rtsx: Add support for card reader rtl8402 · 56cb3cc1
      Micky Ching authored
      rtl8402 is much like rtl8411, so just add it to rtl8411.c
      Signed-off-by: default avatarMicky Ching <micky_ching@realsil.com.cn>
      Reviewed-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      56cb3cc1
    • Micky Ching's avatar
      mfd: rtsx: Add set pull control macro and simplify rtl8411 · 0da14eeb
      Micky Ching authored
      Add set pull control macro to reduce code for setting pull control, and
      use a common init function to reduce code for rtl8411.c. So this patch
      is used to just simplify code.
      Signed-off-by: default avatarMicky Ching <micky_ching@realsil.com.cn>
      Reviewed-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      0da14eeb
    • Laszlo Papp's avatar
      mfd: max8997: Enforce mfd_add_devices() return value check · c1ec8fc3
      Laszlo Papp authored
      The original author provided a random return value check which is
      redundant and seemingly floating. This patch not only relocates
      the check so it is more clearly associated with the invokation of
      mfd_add_devices(), but provides a store for the error value. We
      also print a meaningful message on error before returning.
      Signed-off-by: default avatarLaszlo Papp <lpapp@kde.org>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      c1ec8fc3
    • Alexander Shiyan's avatar
      mfd: mc13xxx: Simplify probe() & remove() · db9ef449
      Alexander Shiyan authored
      This patch simplifies probe() and remove() functions by moving
      some initialisation code out from the I2C/SPI init() and exit()
      functions and into the core driver.
      Signed-off-by: default avatarAlexander Shiyan <shc_work@mail.ru>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      db9ef449
    • Alexander Shiyan's avatar
      mfd: mc13xxx: Remove useless symbol MFD_MC13783 · e5a3da21
      Alexander Shiyan authored
      Symbol MFD_MC13783 always selected by MFD_MC13XXX, so no need
      to keep additional symbol.
      Signed-off-by: default avatarAlexander Shiyan <shc_work@mail.ru>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      e5a3da21
    • Alexander Shiyan's avatar
      mfd: mc13xxx: Remove duplicate mc13xxx_get_flags() declaration · 03b1e302
      Alexander Shiyan authored
      mc13xxx_get_flags() declaration given twice.
      This patch removes this duplicate.
      Signed-off-by: default avatarAlexander Shiyan <shc_work@mail.ru>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      03b1e302
    • Stephen Boyd's avatar
      mfd: ssbi: Mark match table const · 12eda2a2
      Stephen Boyd authored
      This is a read-only data structure.
      Signed-off-by: default avatarStephen Boyd <sboyd@codeaurora.org>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      12eda2a2
    • Stephen Boyd's avatar
      mfd: ssbi: Constify buffer in ssbi_write · 5eec14cc
      Stephen Boyd authored
      In preparation for passing a const pointer directly to
      ssbi_write() from the regmap APIs.
      Signed-off-by: default avatarStephen Boyd <sboyd@codeaurora.org>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      5eec14cc
    • Stephen Boyd's avatar
      mfd: ssbi: Remove platform data structs and hide ssbi type enum · bae911a0
      Stephen Boyd authored
      The ssbi driver assumes that the device is DT based. Remove the
      platform data structs that will never be used and hide the enum
      in the only C file that uses it.
      Signed-off-by: default avatarStephen Boyd <sboyd@codeaurora.org>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      bae911a0
    • Stephen Warren's avatar
      mfd: Always assign of_node in mfd_add_device() · a7c42b25
      Stephen Warren authored
      mfd_add_device() assigns .of_node in the device objects it creates only
      if the mfd_cell for the device has the .of_compatible field set and the
      DT node for the top-level MFD device contains a child whose compatible
      property matches the cell's .of_compatible field.
      
      This leaves .of_node unset in many cases. When this happens, entries in
      the DT /aliases property which refer to the top-level MFD DT node will
      never match the MFD child devices, hence causing the requested alias not
      to be honored.
      
      Solve this by setting each MFD child device's .of_node equal to the top-
      level MFD device's .of_node field in the cases where it would otherwise
      remain unset.
      
      The first use-case for this will be aliases for the TPS6586x's RTC
      device.
      Signed-off-by: default avatarStephen Warren <swarren@nvidia.com>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      a7c42b25
    • Rhyland Klein's avatar
      mfd: cros ec: spi: Add delay for raising CS · 01e73c89
      Rhyland Klein authored
      The EC has specific timing it requires. Add support for an optional delay
      after raising CS to fix timing issues. This is configurable based on
      a DT property "google,cros-ec-spi-msg-delay".
      
      If this property isn't set, then no delay will be added. However, if set
      it will cause a delay equal to the value passed to it to be inserted at
      the end of a transaction.
      Signed-off-by: default avatarRhyland Klein <rklein@nvidia.com>
      Reviewed-by: default avatarBernie Thompson <bhthompson@chromium.org>
      Reviewed-by: default avatarAndrew Bresticker <abrestic@chromium.org>
      Acked-by: default avatarMark Rutland <mark.rutland@arm.com>
      Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      01e73c89