1. 12 Nov, 2014 1 commit
  2. 10 Nov, 2014 1 commit
  3. 09 Nov, 2014 11 commits
    • Dave Airlie's avatar
      Merge tag 'topic/atomic-helpers-2014-11-09' of... · 122387a5
      Dave Airlie authored
      Merge tag 'topic/atomic-helpers-2014-11-09' of git://anongit.freedesktop.org/drm-intel into drm-next
      
      So here's my atomic series, finally all debugged&reviewed. Sean Paul has
      done a full detailed pass over it all, and a lot of other people have
      commented and provided feedback on some parts. Rob Clark also converted
      msm over the w/e and seems happy. The only small thing is that Rob wants
      to export the wait_for_vblank, which imo makes sense. Since there's other
      stuff still to do I think we should apply Rob's patch (once it has grown
      appropriate kerneldoc) later on top of this.
      
      This is just the core<->driver interface plus a big pile of helpers. Short
      recap of the main ideas:
      
      - There are essentially three helper libraries in this patch set:
      
        * Transitional helpers to use the new plane callbacks for legacy plane
          updates and in the crtc helper's ->mode_set callback. These helpers are
          only temporarily used to convert drivers to atomic, but they allow a
          nice separation between changing the driver backend and switching to
          the atomic commit logic.
      
        * Legacy helpers to implement all the legacy driver entry points
          (page_flip, set_config, plane vfuncs) on top of the new atomic driver
          interface. These are completely driver agnostic. The reason for having
          the legacy support as helpers is that drivers can switch step-by-step.
          And they could e.g. even keep the legacy page_flip code around for some
          old platforms where converting to full-blown atomic isn't worth it.
      
        * Atomic helpers which implement the various new ->atomic_* driver
          interfaces in terms of the revised crtc helper and new plane helper
          hooks.
      
      - The revised crtc helper implemenation essentially implements all the
        lessons learned in the i915 modeset rework (when using the atomic helpers
        only):
      
        * Enable/disable sequence for a given config are always the same and
          callbacks are always called in the same order. This contrast starkly
          with the crtc helpers, where the sequence of operations is heavily
          dependent on the previous config.
      
          One corollary of this is that if the configuration of a crtc only
          partially changes (e.g. a connector moves in a cloned config) the
          helper code will still disable/enable the full display pipeline. This
          is the only way to ensure that the enable/disable sequence is always
          the same.
      
        * It won't call disable or enable hooks more than once any more because
          it lost track of state, thanks to the atomic state tracking. And if
          drivers implement the ->reset hook properly (by either resetting the hw
          or reading out the hw state into the atomic structures) this even
          extends to the hardware state. So no more disable-me-harder kind of
          nonsense.
      
        * The only thing missing is the hw state readout/cross-check support, but
          if drivers have hw state readout support in their ->reset handlers it's
          simple to extend that to cross-check the hw state.
      
        * The crtc->mode_set callback is gone and its replacement only sets crtc
          timings and no longer updates the primary plane state. This way we can
          finally implement primary planes properly.
      
      - The new plane helpers should be suitable enough for pretty much
        everything, and a perfect fit for hardware with GO bits. Even if they
        don't fit the atomic helper library is rather flexible and exports all
        the functions for the individual steps to drivers. So drivers can pick
        what matches and implement their own magic for everything else.
      
      - A big difference compared to all previous atomic series is that this one
        doesn't implement async commit in a generic way. Imo driver requirements
        for that are too diverse to create anything reasonable sane which would
        actually work on a reasonable amount of different drivers. Also, we've
        never had a helper library for page_flips even, so it's really hard to
        know what might work and what's stupid without a bit of experience in the form
        of a few driver implementations.
      
        I think with the current flexibility for drivers to pick individual
        stages and existing helpers like drm_flip_queue it's rather easy though
        to implement proper async commit.
      
      - There's a few other differences of minor importance to earlier atomic
        series:
      
        * Common/generic properties are parsed in the callers/core and not in
          drivers, and passed to drivers by directly setting the right members in
          atomic state structures. That greatly simplifies all the transitional
          and legacy helpers an removes a lot of boilerplate code.
      
        * There's no crazy trylock mode used for the async commit since these
          helpers don't do async commit. A simple ordered flip queue of atomic
          state updates should be sufficient for preventing concurrent hw access
          anyway, as long as synchronous updates stall correctly with e.g.
          flush_work_queue or similar function. Abusing locks to enforce ordering
          isn't a good idea imo anyway.
      
        * These helpers reuse the existing ->mode_fixup hooks in the atomic_check
          callback. Which means that drivers need to adapat and move a lot less code
          into their atomic_check callbacks.
      
      Now this isn't everything needed in the drm core and helpers for full
      atomic support. But it's enough to start with converting drivers, and
      except for actually testing multiplane and multicrtc updates also enough to
      implement full atomic updates. Still missing are:
      
      - Per-plane locking. Since these helpers here encapsulate the locking
        completely this should be fairly easy to implement.
      
      - fbdev support for atomic_check/commit, so that multi-pipe finally works
        sanely in fbcon.
      
      - Adding and decoding shared/core properties. That just needs to be rebased
        from Rob's latest patch series, with minor adjustments so that the
        decoding happens in the core instead of in drivers.
      
      - Actually adding the atomic ioctl. Again just rebasing Rob's latest patch
        should be all that's needed.
      
      - Resolving how to deal with DPMS in atomic. Atomic is a good excuse to fix up
        the crazy semantics dpms currently has. I'm floating an RFC about this topic
        already.
      
      - Finally I couldn't test connector/encoder stealing properly since my test
        vehicle here doesn't allow a connector on different crtcs. So drivers
        which support this might see some surprises in that area. There is no semantic
        change though in how encoder stealing and assignment works (or at least no
        intended one), so I think the risk is minimal.
      
      As just mentioned I've done a fake conversion of an existing driver using
      crtc helpers to debug the helper code and validate the smooth transition
      approach. And that smooth transition was the really big motivation for
      this. It seems to actually work and consists of 3 phases:
      
      Phase 1: Rework driver backend for crtc/plane helpers
      
      The requirement here is that universal plane support is already implement. If
      universal plane support isn't implement yet it might be better though to just do
      it as part of this phase, directly using the new plane helpers. There are two
      big things to do:
      
      - Split up the existing ->update/disable_plane hooks into check/commit
        hooks and extract the crtc-wide prep/flush parts (like setting/clearing
        GO bits).
      
      - The other big change is to split the crtc->mode_set hook into the plane
        update (done using the plane helpers) and the crtc setup in a new
        ->mode_set_nofb hook.
      
      When phase 1 is complete the driver implements all the new callbacks which
      push the software state into hardware, but still using all the legacy entry
      points and crtc helpers. The transitional helpers serve as impendance
      mismatch here.
      
      Phase 2: Rework state handling
      
      This consists of rolling out the state handling helpers for planes, crtcs
      and connectors and reviewing all ->mode_fixup and similar hooks to make
      sure they don't depend upon implicit global state which might change in the
      atomic world. Any such code must be moved into ->atomic_check functions which
      just rely on the free-standing atomic state update structures.
      
      This phase also adds a few small pieces of fixup code to make sure the
      atomic state doesn't get out of sync in the legacy driver callbacks.
      
      Phase 3: Roll out atomic support
      
      Now it's just about replacing vfuncs with the ones provided by the helper
      and filling out the small missing pieces (like atomic_check logic or async
      commit support needed for page_flips). Due to the prep work in phase 1 no
      changes to the driver backend functions should be required, and because of
      the prep work in phase 2 atomic implementations can be rolled out
      step-by-step. So if async commit ins't implemented yet page_flip can be
      implemented with the legacy functions without wreaking havoc in the other
      operations.
      
      * tag 'topic/atomic-helpers-2014-11-09' of git://anongit.freedesktop.org/drm-intel:
        drm/atomic: Refcounting for plane_state->fb
        drm: Docbook integration and over sections for all the new helpers
        drm/atomic-helpers: functions for state duplicate/destroy/reset
        drm/atomic-helper: implement ->page_flip
        drm/atomic-helpers: document how to implement async commit
        drm/atomic: Integrate fence support
        drm/atomic-helper: implementatations for legacy interfaces
        drm: Atomic crtc/connector updates using crtc/plane helper interfaces
        drm/crtc-helper: Transitional functions using atomic plane helpers
        drm/plane-helper: transitional atomic plane helpers
        drm: Add atomic/plane helpers
        drm: Global atomic state handling
        drm: Add atomic driver interface definitions for objects
        drm/modeset_lock: document trylock_only in kerneldoc
        drm: fixup kerneldoc in drm_crtc.h
        drm: Pull drm_crtc.h into the kerneldoc template
        drm: Move drm_crtc_init from drm_crtc.h to drm_plane_helper.h
      122387a5
    • Linus Torvalds's avatar
      Linux 3.18-rc4 · 206c5f60
      Linus Torvalds authored
      206c5f60
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · ee867cf9
      Linus Torvalds authored
      Pull arm64 fixes from Catalin Marinas:
       - enable bpf syscall for compat
       - cpu_suspend fix when checking the idle state type
       - defconfig update
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: defconfig: update defconfig for 3.18
        arm64: compat: Enable bpf syscall
        arm64: psci: fix cpu_suspend to check idle state type for index
      ee867cf9
    • Linus Torvalds's avatar
      Merge tag 'armsoc-for-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · b1f368b5
      Linus Torvalds authored
      Pull ARM SoC fixes from Olof Johansson:
       "Another quiet week:
      
         - a fix to silence edma probe error on non-supported platforms from
           Arnd
         - a fix to enable the PL clock for Parallella, to make mainline
           usable with the SDK.
         - a somewhat verbose fix for the PLL clock tree on VF610
         - enabling of SD/MMC on one of the VF610-based boards (for testing)
         - a fix for i.MX where CONFIG_SPI used to be implicitly enabled and
           now needs to be added to the defconfig instead
         - another maintainer added for bcm2835: Lee Jones"
      
      * tag 'armsoc-for-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        ARM: dts: zynq: Enable PL clocks for Parallella
        dma: edma: move device registration to platform code
        ARM: dts: vf610: add SD node to cosmic dts
        MAINTAINERS: update bcm2835 entry
        ARM: imx: Fix the removal of CONFIG_SPI option
        ARM: imx: clk-vf610: define PLL's clock tree
      b1f368b5
    • Linus Torvalds's avatar
      Merge branch 'devicetree/merge' of git://git.kernel.org/pub/scm/linux/kernel/git/glikely/linux · a3157809
      Linus Torvalds authored
      Pull devicetree bugfix from Grant Likely:
       "One buffer overflow bug that shouldn't be left around"
      
      * 'devicetree/merge' of git://git.kernel.org/pub/scm/linux/kernel/git/glikely/linux:
        of: Fix overflow bug in string property parsing functions
      a3157809
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs · c4c23fb6
      Linus Torvalds authored
      Pull btrfs fix from Chris Mason:
       "It's a one liner for an error cleanup path that leads to crashes"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
        Btrfs: fix kfree on list_head in btrfs_lookup_csums_range error cleanup
      c4c23fb6
    • Linus Torvalds's avatar
      Merge tag 'driver-core-3.18-rc4' of... · 0b0c7dbd
      Linus Torvalds authored
      Merge tag 'driver-core-3.18-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
      
      Pull driver core fixes from Greg KH:
       "Here are 3 tiny fixes for 3.18-rc4.
      
        One fixes up a long-stading race condition in the driver core for
        removing directories in /sys/devices/virtual/ and the other 2 fix up
        the wording of a new Kconfig option that was added in 3.18-rc1"
      
      * tag 'driver-core-3.18-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
        tiny: rename ENABLE_DEV_COREDUMP to ALLOW_DEV_COREDUMP
        tiny: reverse logic for DISABLE_DEV_COREDUMP
        sysfs: driver core: Fix glue dir race condition by gdp_mutex
      0b0c7dbd
    • Linus Torvalds's avatar
      Merge tag 'staging-3.18-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · 86a7a167
      Linus Torvalds authored
      Pull staging driver fixes from Greg KH:
       "Here are some staging/iio fixes for 3.18-rc4.
      
        Nothing major, just a few bugfixes of things that have been reported"
      
      * tag 'staging-3.18-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
        staging:iio:ade7758: Remove "raw" from channel name
        staging:iio:ade7758: Fix check if channels are enabled in prenable
        staging:iio:ade7758: Fix NULL pointer deref when enabling buffer
        iio: as3935: allocate correct iio_device size
        io: accel: kxcjk-1013: Fix iio_event_spec direction
        iio: tsl4531: Fix compiler error when CONFIG_PM_OPS is not defined
        iio: adc: mxs-lradc: Disable the clock on probe failure
        iio: st_sensors: Fix buffer copy
        staging:iio:ad5933: Drop "raw" from channel names
        staging:iio:ad5933: Fix NULL pointer deref when enabling buffer
      86a7a167
    • Linus Torvalds's avatar
      Merge tag 'tty-3.18-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · 45a4c079
      Linus Torvalds authored
      Pull tty/serial fixes from Greg KH:
       "Here are some tiny serial/tty fixes for 3.18-rc4 that resolve some
        reported issues"
      
      * tag 'tty-3.18-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
        tty: Fix pty master poll() after slave closes v2
        serial: of-serial: fix uninitialized kmalloc variable
        tty/vt: don't set font mappings on vc not supporting this
        tty: serial: 8250_mtk: Fix quot calculation
        tty: Prevent "read/write wait queue active!" log flooding
        tty: Fix high cpu load if tty is unreleaseable
        serial: Fix divide-by-zero fault in uart_get_divisor()
      45a4c079
    • Linus Torvalds's avatar
      Merge tag 'usb-3.18-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · b9427910
      Linus Torvalds authored
      Pull USB fixes from Greg KH:
       "Here are some USB fixes for 3.18-rc4.
      
        Just a bunch of little fixes resolving reported issues and new device
        ids for existing drivers.  Full details are in the shortlog"
      
      * tag 'usb-3.18-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (26 commits)
        USB: Update default usb-storage delay_use value in kernel-parameters.txt
        USB: cdc-acm: add quirk for control-line state requests
        phy: omap-usb2: Enable runtime PM of omap-usb2 phy properly
        USB: storage: Fix timeout in usb_stor_euscsi_init() and usb_stor_huawei_e220_init()
        USB: cdc-acm: only raise DTR on transitions from B0
        Revert "storage: Replace magic number with define in usb_stor_euscsi_init()"
        usb: core: notify disconnection when core detects disconnect
        usb: core: need to call usb_phy_notify_connect after device setup
        uas: Add US_FL_NO_ATA_1X quirk for 2 more Seagate models
        xhci: no switching back on non-ULT Haswell
        USB: quirks: enable device-qualifier quirk for yet another Elan touchscreen
        USB: quirks: enable device-qualifier quirk for another Elan touchscreen
        MAINTAINERS: Remove duplicate entry for usbip driver
        usb: storage: fix build warnings !CONFIG_PM
        usb: Remove references to non-existent PLAT_S5P symbol
        uas: Add NO_ATA_1X for VIA VL711 devices
        xhci: Disable streams on Asmedia 1042 xhci controllers
        USB: HWA: fix a warning message
        uas: Add US_FL_NO_ATA_1X quirk for 1 more Seagate model
        usb-storage: handle a skipped data phase
        ...
      b9427910
    • Andreas Färber's avatar
      ARM: dts: zynq: Enable PL clocks for Parallella · 92c9e0c7
      Andreas Färber authored
      The Parallella board comes with a U-Boot bootloader that loads one of
      two predefined FPGA bitstreams before booting the kernel. Both define an
      AXI interface to the on-board Epiphany processor.
      
      Enable clocks FCLK0..FCLK3 for the Programmable Logic by default.
      
      Otherwise accessing, e.g., the ESYSRESET register freezes the board,
      as seen with the Epiphany SDK tools e-reset and e-hw-rev, using /dev/mem.
      
      Cc: <stable@vger.kernel.org> # 3.17.x
      Signed-off-by: default avatarAndreas Färber <afaerber@suse.de>
      Acked-by: default avatarMichal Simek <michal.simek@xilinx.com>
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      92c9e0c7
  4. 08 Nov, 2014 4 commits
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · fe606dff
      Linus Torvalds authored
      Pull i2c bugfixes from Wolfram Sang:
       "One bigger cleanup (FSF address removal) and two bugfixes for I2C"
      
      * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        i2c: core: Dispose OF IRQ mapping at client removal time
        i2c: at91: don't account as iowait
        i2c: remove FSF address
      fe606dff
    • Linus Torvalds's avatar
      Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a50d7156
      Linus Torvalds authored
      Pull irq fixes from Thomas Gleixner:
       "Two fixlets for the armada SoC interrupt controller"
      
      * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irqchip: armada-370-xp: Fix MPIC interrupt handling
        irqchip: armada-370-xp: Fix MSI interrupt handling
      a50d7156
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · ae04e1ca
      Linus Torvalds authored
      Pull media fixes from Mauro Carvalho Chehab:
       "For:
         - some regression fixes at the Remote Controller core and imon driver
         - a build fix for certain randconfigs with ir-hix5hd2
         - don't feed power to satellite system at ds3000 driver init
      
        It also contains some fixes for drivers added for Kernel 3.18:
         - some fixes at the new ISDB-S driver, and the corresponding bits to
           fix some descriptors for this Japanese TV standard at the DVB core
         - two warning cleanups for sp2 driver if PM is disabled
         - change the default mode for the new vivid driver"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media:
        [media] sp2: sp2_init() can be static
        [media] dvb:tc90522: fix always-false expression
        [media] dvb-core: set default properties of ISDB-S
        [media] dvb:tc90522: fix stats report
        [media] vivid: default to single planar device instances
        [media] imon: fix other RC type protocol support
        [media] ir-hix5hd2 fix build warning
        [media] ds3000: fix LNB supply voltage on Tevii S480 on initialization
        [media] rc5-decoder: BZ#85721: Fix RC5-SZ decoding
        [media] rc-core: fix protocol_change regression in ir_raw_event_register
      ae04e1ca
    • Linus Torvalds's avatar
      Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus · 6ac94d3a
      Linus Torvalds authored
      Pull MIPS updates from Ralf Baechle:
       "This weeks' round of MIPS bug fixes for 3.18:
      
         - wire up the bpf syscall
         - fix TLB dump output for R3000 class TLBs
         - fix strnlen_user return value if no NUL character was found.
         - fix build with binutils 2.24.51+.  While there is no binutils 2.25
           release yet, toolchains derived from binutils 2.24.51+ are already
           in common use.
         - the Octeon GPIO code forgot to offline GPIO IRQs.
         - fix build error for XLP.
         - fix possible BUG assertion with EVA for CMA"
      
      * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
        MIPS: Fix build with binutils 2.24.51+
        MIPS: R3000: Fix debug output for Virtual page number
        MIPS: Fix strnlen_user() return value in case of overlong strings.
        MIPS: CMA: Do not reserve memory if not required
        MIPS: Wire up bpf syscall.
        MIPS/Xlp: Remove the dead function destroy_irq() to fix build error
        MIPS: Octeon: Make Octeon GPIO IRQ chip CPU hotplug-aware
      6ac94d3a
  5. 07 Nov, 2014 13 commits
    • Linus Torvalds's avatar
      Merge tag 'xfs-for-linus-3.18-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs · 661b99e9
      Linus Torvalds authored
      Pull xfs fixes from Dave Chinner:
       "This update fixes a warning in the new pagecache_isize_extended() and
        updates some related comments, another fix for zero-range
        misbehaviour, and an unforntuately large set of fixes for regressions
        in the bulkstat code.
      
        The bulkstat fixes are large but necessary.  I wouldn't normally push
        such a rework for a -rcX update, but right now xfsdump can silently
        create incomplete dumps on 3.17 and it's possible that even xfsrestore
        won't notice that the dumps were incomplete.  Hence we need to get
        this update into 3.17-stable kernels ASAP.
      
        In more detail, the refactoring work I committed in 3.17 has exposed a
        major hole in our QA coverage.  With both xfsdump (the major user of
        bulkstat) and xfsrestore silently ignoring missing files in the
        dump/restore process, incomplete dumps were going unnoticed if they
        were being triggered.  Many of the dump/restore filesets were so small
        that they didn't evenhave a chance of triggering the loop iteration
        bugs we introduced in 3.17, so we didn't exercise the code
        sufficiently, either.
      
        We have already taken steps to improve QA coverage in xfstests to
        avoid this happening again, and I've done a lot of manual verification
        of dump/restore on very large data sets (tens of millions of inodes)
        of the past week to verify this patch set results in bulkstat behaving
        the same way as it does on 3.16.
      
        Unfortunately, the fixes are not exactly simple - in tracking down the
        problem historic API warts were discovered (e.g xfsdump has been
        working around a 20 year old bug in the bulkstat API for the past 10
        years) and so that complicated the process of diagnosing and fixing
        the problems.  i.e. we had to fix bugs in the code as well as
        discover and re-introduce the userspace visible API bugs that we
        unwittingly "fixed" in 3.17 that xfsdump relied on to work correctly.
      
        Summary:
      
         - incorrect warnings about i_mutex locking in pagecache_isize_extended()
           and updates comments to match expected locking
         - another zero-range bug fix for stray file size updates
         - a bunch of fixes for regression in the bulkstat code introduced in
           3.17"
      
      * tag 'xfs-for-linus-3.18-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs:
        xfs: track bulkstat progress by agino
        xfs: bulkstat error handling is broken
        xfs: bulkstat main loop logic is a mess
        xfs: bulkstat chunk-formatter has issues
        xfs: bulkstat chunk formatting cursor is broken
        xfs: bulkstat btree walk doesn't terminate
        mm: Fix comment before truncate_setsize()
        xfs: rework zero range to prevent invalid i_size updates
        mm: Remove false WARN_ON from pagecache_isize_extended()
        xfs: Check error during inode btree iteration in xfs_bulkstat()
        xfs: bulkstat doesn't release AGI buffer on error
      661b99e9
    • Linus Torvalds's avatar
      Merge tag 'regulator-v3.18-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator · 51f83ef0
      Linus Torvalds authored
      Pull regulator fixes from Mark Brown:
       "More changes than I'd like here, most of them for a single bug
        repeated in a bunch of drivers with data not being initialized
        correctly, plus a fix to lower the severity of a warning introduced in
        the last merge window which can legitimately go off so we don't want
        to alarm users excessively"
      
      * tag 'regulator-v3.18-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
        regulator: s2mpa01: zero-initialize regulator match table array
        regulator: max8660: zero-initialize regulator match table array
        regulator: max77802: zero-initialize regulator match table
        regulator: max77686: zero-initialize regulator match table
        regulator: max1586: zero-initialize regulator match table array
        regulator: max77693: Fix use of uninitialized regulator config
        regulator: of: Lower the severity of the error with no container
      51f83ef0
    • Linus Torvalds's avatar
      Merge tag 'spi-v3.18-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · 1395b9cf
      Linus Torvalds authored
      Pull spi bugfixes from Mark Brown:
       "A couple of small driver fixes for v3.18, both quite problematic if
        you hit a use case that's affected"
      
      * tag 'spi-v3.18-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
        spi: pxa2xx: toggle clocks on suspend if not disabled by runtime PM
        spi: fsl-dspi: Fix CTAR selection
      1395b9cf
    • Johannes Berg's avatar
      tiny: rename ENABLE_DEV_COREDUMP to ALLOW_DEV_COREDUMP · cd3d9ea1
      Johannes Berg authored
      The ENABLE_DEV_COREDUMP option is misleading as it implies that
      it gets the framework enabled, this isn't true it just allows it
      to get enabled if a driver needs it.
      
      Rename it to ALLOW_DEV_COREDUMP to better capture its semantics.
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      Reviewed-by: default avatarJosh Triplett <josh@joshtriplett.org>
      Acked-by: default avatarAristeu Rozanski <aris@redhat.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      cd3d9ea1
    • Aristeu Rozanski's avatar
      tiny: reverse logic for DISABLE_DEV_COREDUMP · 9c602699
      Aristeu Rozanski authored
      It's desirable for allnconfig and tinyconfig targets to result in the
      least amount of code possible. DISABLE_DEV_COREDUMP exists as a way to
      switch off DEV_COREDUMP regardless if any drivers select
      WANT_DEV_COREDUMP.
      
      This patch renames the option to ENABLE_DEV_COREDUMP and setting it to
      'n' (as in allnconfig or tinyconfig) will effectively disable device
      coredump.
      
      Cc: Josh Triplett <josh@joshtriplett.org>
      Reviewed-by: default avatarJosh Triplett <josh@joshtriplett.org>
      Signed-off-by: default avatarAristeu Rozanski <arozansk@redhat.com>
      Reviewed-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Acked-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      9c602699
    • Laurent Pinchart's avatar
      i2c: core: Dispose OF IRQ mapping at client removal time · e4df3a0b
      Laurent Pinchart authored
      Clients instantiated from OF get an IRQ mapping created at device
      registration time. Dispose the mapping when the client is removed.
      Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
      Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
      Cc: stable@kernel.org
      e4df3a0b
    • Wolfram Sang's avatar
      i2c: at91: don't account as iowait · 11cfbfb0
      Wolfram Sang authored
      iowait is for blkio [1]. I2C shouldn't use it.
      
      [1] https://lkml.org/lkml/2014/11/3/317Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
      Acked-by: default avatarLudovic Desroches <ludovic.desroches@atmel.com>
      Cc: stable@kernel.org
      11cfbfb0
    • Wolfram Sang's avatar
      i2c: remove FSF address · ca1f8da9
      Wolfram Sang authored
      We have a central copy of the GPL for that. Some addresses were already
      outdated.
      Signed-off-by: default avatarWolfram Sang <wsa+renesas@sang-engineering.com>
      ca1f8da9
    • Mark Knibbs's avatar
      USB: Update default usb-storage delay_use value in kernel-parameters.txt · 19101954
      Mark Knibbs authored
      Back in 2010 the default usb-storage delay_use time was reduced from 5 to 1
      second (commit a4a47bc0), but
      kernel-parameters.txt wasn't updated to reflect that.
      Signed-off-by: default avatarMark Knibbs <markk@clara.co.uk>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      19101954
    • Yijing Wang's avatar
      sysfs: driver core: Fix glue dir race condition by gdp_mutex · e4a60d13
      Yijing Wang authored
      There is a race condition when removing glue directory.
      It can be reproduced in following test:
      
      path 1: Add first child device
      device_add()
          get_device_parent()
                  /*find parent from glue_dirs.list*/
                  list_for_each_entry(k, &dev->class->p->glue_dirs.list, entry)
                          if (k->parent == parent_kobj) {
                                  kobj = kobject_get(k);
                                  break;
                          }
                  ....
                  class_dir_create_and_add()
      
      path2: Remove last child device under glue dir
      device_del()
          cleanup_device_parent()
                  cleanup_glue_dir()
                          kobject_put(glue_dir);
      
      If path2 has been called cleanup_glue_dir(), but not
      call kobject_put(glue_dir), the glue dir is still
      in parent's kset list. Meanwhile, path1 find the glue
      dir from the glue_dirs.list. Path2 may release glue dir
      before path1 call kobject_get(). So kernel will report
      the warning and bug_on.
      
      This is a "classic" problem we have of a kref in a list
      that can be found while the last instance could be removed
      at the same time.
      
      This patch reuse gdp_mutex to fix this race condition.
      
      The following calltrace is captured in kernel 3.4, but
      the latest kernel still has this bug.
      
      -----------------------------------------------------
      <4>[ 3965.441471] WARNING: at ...include/linux/kref.h:41 kobject_get+0x33/0x40()
      <4>[ 3965.441474] Hardware name: Romley
      <4>[ 3965.441475] Modules linked in: isd_iop(O) isd_xda(O)...
      ...
      <4>[ 3965.441605] Call Trace:
      <4>[ 3965.441611]  [<ffffffff8103717a>] warn_slowpath_common+0x7a/0xb0
      <4>[ 3965.441615]  [<ffffffff810371c5>] warn_slowpath_null+0x15/0x20
      <4>[ 3965.441618]  [<ffffffff81215963>] kobject_get+0x33/0x40
      <4>[ 3965.441624]  [<ffffffff812d1e45>] get_device_parent.isra.11+0x135/0x1f0
      <4>[ 3965.441627]  [<ffffffff812d22d4>] device_add+0xd4/0x6d0
      <4>[ 3965.441631]  [<ffffffff812d0dbc>] ? dev_set_name+0x3c/0x40
      ....
      <2>[ 3965.441912] kernel BUG at ..../fs/sysfs/group.c:65!
      <4>[ 3965.441915] invalid opcode: 0000 [#1] SMP
      ...
      <4>[ 3965.686743]  [<ffffffff811a677e>] sysfs_create_group+0xe/0x10
      <4>[ 3965.686748]  [<ffffffff810cfb04>] blk_trace_init_sysfs+0x14/0x20
      <4>[ 3965.686753]  [<ffffffff811fcabb>] blk_register_queue+0x3b/0x120
      <4>[ 3965.686756]  [<ffffffff812030bc>] add_disk+0x1cc/0x490
      ....
      -------------------------------------------------------
      Signed-off-by: default avatarYijing Wang <wangyijing@huawei.com>
      Signed-off-by: default avatarWeng Meiling <wengmeiling.weng@huawei.com>
      Cc: <stable@vger.kernel.org> #3.4+
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      e4a60d13
    • Manuel Lauss's avatar
      MIPS: Fix build with binutils 2.24.51+ · 842dfc11
      Manuel Lauss authored
      Starting with version 2.24.51.20140728 MIPS binutils complain loudly
      about mixing soft-float and hard-float object files, leading to this
      build failure since GCC is invoked with "-msoft-float" on MIPS:
      
      {standard input}: Warning: .gnu_attribute 4,3 requires `softfloat'
        LD      arch/mips/alchemy/common/built-in.o
      mipsel-softfloat-linux-gnu-ld: Warning: arch/mips/alchemy/common/built-in.o
       uses -msoft-float (set by arch/mips/alchemy/common/prom.o),
       arch/mips/alchemy/common/sleeper.o uses -mhard-float
      
      To fix this, we detect if GAS is new enough to support "-msoft-float" command
      option, and if it does, we can let GCC pass it to GAS;  but then we also need
      to sprinkle the files which make use of floating point registers with the
      necessary ".set hardfloat" directives.
      Signed-off-by: default avatarManuel Lauss <manuel.lauss@gmail.com>
      Cc: Linux-MIPS <linux-mips@linux-mips.org>
      Cc: Matthew Fortune <Matthew.Fortune@imgtec.com>
      Cc: Markos Chandras <Markos.Chandras@imgtec.com>
      Cc: Maciej W. Rozycki <macro@linux-mips.org>
      Patchwork: https://patchwork.linux-mips.org/patch/8355/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      842dfc11
    • Dave Airlie's avatar
      Merge tag 'topic/core-stuff-2014-11-05' of git://anongit.freedesktop.org/drm-intel into drm-next · 1f9e14ba
      Dave Airlie authored
      Just various stuff all over from a bunch of people. Shortlog gives a beter
      overview, it's really all misc drm patches.
      
      * tag 'topic/core-stuff-2014-11-05' of git://anongit.freedesktop.org/drm-intel:
        drm/edid: add #defines and helpers for ELD
        drm/dp: Add counters in the drm_dp_aux struct for I2C NACKs and DEFERs
        drm: Remove compiler BUG_ON() test
        drm: Fix DRM_FORCE_ON_DIGITAL use
        drm/gma500: Don't destroy DRM properties in the driver
        drm/i915: Don't destroy DRM properties in the driver
        drm: Add a note to drm_property_create() about property lifetime
        gpu: drm: Fix warning caused by a parameter description in drm_crtc.c
        drm/dp-helper: Move the legacy helpers to gma500
        drm/crtc: Remove duplicated ioctl code
        drm/crtc: Fix two typos
        gpu:drm: Fix typo in Documentation/DocBook/drm.xml
        gpu: drm: drm_dp_mst_topology.c: Fix improper use of strncat
        drm: drm_err: Remove unnecessary __func__ argument
        drm: Implement O_NONBLOCK support on /dev/dri/cardN
      1f9e14ba
    • Dave Airlie's avatar
      drm: drop README.drm, ancient scrolls · 5fa2704e
      Dave Airlie authored
      This stuff is ancient, we have docs now in the kernel,
      lets just drop it.
      
      Pointed out by Glenn
      Reviewed-by: default avatarThierry Reding <treding@nvidia.com>
      Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      5fa2704e
  6. 06 Nov, 2014 10 commits
    • Dave Chinner's avatar
      xfs: track bulkstat progress by agino · 00275899
      Dave Chinner authored
      The bulkstat main loop progress is tracked by the "lastino"
      variable, which is a full 64 bit inode. However, the loop actually
      works on agno/agino pairs, and so there's a significant disconnect
      between the rest of the loop and the main cursor. Convert this to
      use the agino, and pass the agino into the chunk formatting function
      and convert it too.
      
      This gets rid of the inconsistency in the loop processing, and
      finally makes it simple for us to skip inodes at any point in the
      loop simply by incrementing the agino cursor.
      
      cc: <stable@vger.kernel.org> # 3.17
      Signed-off-by: default avatarDave Chinner <dchinner@redhat.com>
      Reviewed-by: default avatarBrian Foster <bfoster@redhat.com>
      Signed-off-by: default avatarDave Chinner <david@fromorbit.com>
      00275899
    • Dave Chinner's avatar
      xfs: bulkstat error handling is broken · febe3cbe
      Dave Chinner authored
      The error propagation is a horror - xfs_bulkstat() returns
      a rval variable which is only set if there are formatter errors. Any
      sort of btree walk error or corruption will cause the bulkstat walk
      to terminate but will not pass an error back to userspace. Worse
      is the fact that formatter errors will also be ignored if any inodes
      were correctly formatted into the user buffer.
      
      Hence bulkstat can fail badly yet still report success to userspace.
      This causes significant issues with xfsdump not dumping everything
      in the filesystem yet reporting success. It's not until a restore
      fails that there is any indication that the dump was bad and tha
      bulkstat failed. This patch now triggers xfsdump to fail with
      bulkstat errors rather than silently missing files in the dump.
      
      This now causes bulkstat to fail when the lastino cookie does not
      fall inside an existing inode chunk. The pre-3.17 code tolerated
      that error by allowing the code to move to the next inode chunk
      as the agino target is guaranteed to fall into the next btree
      record.
      
      With the fixes up to this point in the series, xfsdump now passes on
      the troublesome filesystem image that exposes all these bugs.
      
      cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarDave Chinner <dchinner@redhat.com>
      Reviewed-by: default avatarBrian Foster <bfoster@redhat.com>
      febe3cbe
    • Dave Chinner's avatar
      xfs: bulkstat main loop logic is a mess · 6e57c542
      Dave Chinner authored
      There are a bunch of variables tha tare more wildy scoped than they
      need to be, obfuscated user buffer checks and tortured "next inode"
      tracking. This all needs cleaning up to expose the real issues that
      need fixing.
      
      cc: <stable@vger.kernel.org> # 3.17
      Signed-off-by: default avatarDave Chinner <dchinner@redhat.com>
      Reviewed-by: default avatarBrian Foster <bfoster@redhat.com>
      Signed-off-by: default avatarDave Chinner <david@fromorbit.com>
      6e57c542
    • Dave Chinner's avatar
      xfs: bulkstat chunk-formatter has issues · 2b831ac6
      Dave Chinner authored
      The loop construct has issues:
      	- clustidx is completely unused, so remove it.
      	- the loop tries to be smart by terminating when the
      	  "freecount" tells it that all inodes are free. Just drop
      	  it as in most cases we have to scan all inodes in the
      	  chunk anyway.
      	- move the "user buffer left" condition check to the only
      	  point where we consume space int eh user buffer.
      	- move the initialisation of agino out of the loop, leaving
      	  just a simple loop control logic using the clusteridx.
      
      Also, double handling of the user buffer variables leads to problems
      tracking the current state - use the cursor variables directly
      rather than keeping local copies and then having to update the
      cursor before returning.
      
      cc: <stable@vger.kernel.org> # 3.17
      Signed-off-by: default avatarDave Chinner <dchinner@redhat.com>
      Reviewed-by: default avatarBrian Foster <bfoster@redhat.com>
      Signed-off-by: default avatarDave Chinner <david@fromorbit.com>
      2b831ac6
    • Dave Chinner's avatar
      xfs: bulkstat chunk formatting cursor is broken · bf4a5af2
      Dave Chinner authored
      The xfs_bulkstat_agichunk formatting cursor takes buffer values from
      the main loop and passes them via the structure to the chunk
      formatter, and the writes the changed values back into the main loop
      local variables. Unfortunately, this complex dance is full of corner
      cases that aren't handled correctly.
      
      The biggest problem is that it is double handling the information in
      both the main loop and the chunk formatting function, leading to
      inconsistent updates and endless loops where progress is not made.
      
      To fix this, push the struct xfs_bulkstat_agichunk outwards to be
      the primary holder of user buffer information. this removes the
      double handling in the main loop.
      
      Also, pass the last inode processed by the chunk formatter as a
      separate parameter as it purely an output variable and is not
      related to the user buffer consumption cursor.
      
      Finally, the chunk formatting code is not shared by anyone, so make
      it local to xfs_itable.c.
      
      cc: <stable@vger.kernel.org> # 3.17
      Signed-off-by: default avatarDave Chinner <dchinner@redhat.com>
      Reviewed-by: default avatarBrian Foster <bfoster@redhat.com>
      Signed-off-by: default avatarDave Chinner <david@fromorbit.com>
      bf4a5af2
    • Dave Chinner's avatar
      xfs: bulkstat btree walk doesn't terminate · afa947cb
      Dave Chinner authored
      The bulkstat code has several different ways of detecting the end of
      an AG when doing a walk. They are not consistently detected, and the
      code that checks for the end of AG conditions is not consistently
      coded. Hence the are conditions where the walk code can get stuck in
      an endless loop making no progress and not triggering any
      termination conditions.
      
      Convert all the "tmp/i" status return codes from btree operations
      to a common name (stat) and apply end-of-ag detection to these
      operations consistently.
      
      cc: <stable@vger.kernel.org> # 3.17
      Signed-off-by: default avatarDave Chinner <dchinner@redhat.com>
      Reviewed-by: default avatarBrian Foster <bfoster@redhat.com>
      Signed-off-by: default avatarDave Chinner <david@fromorbit.com>
      afa947cb
    • Jan Kara's avatar
      mm: Fix comment before truncate_setsize() · 77783d06
      Jan Kara authored
      XFS doesn't always hold i_mutex when calling truncate_setsize() and it
      uses a different lock to serialize truncates and writes. So fix the
      comment before truncate_setsize().
      Reported-by: default avatarJan Beulich <JBeulich@suse.com>
      Signed-off-by: default avatarJan Kara <jack@suse.cz>
      Signed-off-by: default avatarDave Chinner <david@fromorbit.com>
      77783d06
    • Johan Hovold's avatar
      USB: cdc-acm: add quirk for control-line state requests · 2a8cdfde
      Johan Hovold authored
      Add new quirk for devices that cannot handle control-line state
      requests.
      
      Note that we currently send these requests to all devices, regardless of
      whether they claim to support it, but that errors are only logged if
      support is claimed.
      
      Since commit 0943d8ea ("USB: cdc-acm: use tty-port dtr_rts"), which
      only changed the timings for these requests slightly, this has been
      reported to cause occasional firmware crashes on Simtec Electronics
      Entropy Key devices after re-enumeration. Enable the quirk for this
      device.
      Reported-by: default avatarNix <nix@esperi.org.uk>
      Tested-by: default avatarNix <nix@esperi.org.uk>
      Cc: stable <stable@vger.kernel.org>	# v3.16
      Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      2a8cdfde
    • Greg Kroah-Hartman's avatar
      Merge tag 'fixes-for-v3.18-rc4' of... · e5452dd4
      Greg Kroah-Hartman authored
      Merge tag 'fixes-for-v3.18-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-linus
      
      Felipe writes:
      
      usb: fixes for v3.18-rc4
      
      A single fix this for dwc2 this time. Because of
      excessive debugging messages, dwc2 would sometimes
      fail enumeration. The fix is simple, just converting
      a dev_info() into dev_dbg().
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      e5452dd4
    • Francesco Ruggeri's avatar
      tty: Fix pty master poll() after slave closes v2 · c4dc3046
      Francesco Ruggeri authored
      Commit f95499c3 ("n_tty: Don't wait for buffer work in read() loop")
      introduces a race window where a pty master can be signalled that the pty
      slave was closed before all the data that the slave wrote is delivered.
      Commit f8747d4a ("tty: Fix pty master read() after slave closes") fixed the
      problem in case of n_tty_read, but the problem still exists for n_tty_poll.
      This can be seen by running 'for ((i=0; i<100;i++));do ./test.py ;done'
      where test.py is:
      
      import os, select, pty
      
      (pid, pty_fd) = pty.fork()
      
      if pid == 0:
         os.write(1, 'This string should be received by parent')
      else:
         poller = select.epoll()
         poller.register( pty_fd, select.EPOLLIN )
         ready = poller.poll( 1 * 1000 )
         for fd, events in ready:
            if not events & select.EPOLLIN:
               print 'missed POLLIN event'
            else:
               print os.read(fd, 100)
         poller.close()
      
      The string from the slave is missed several times.
      This patch takes the same approach as the fix for read and special cases
      this condition for poll.
      Tested on 3.16.
      Signed-off-by: default avatarFrancesco Ruggeri <fruggeri@arista.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      c4dc3046