1. 14 Dec, 2016 7 commits
    • Gabriel Krisman Bertazi's avatar
      blk-mq: Avoid memory reclaim when remapping queues · 36e1f3d1
      Gabriel Krisman Bertazi authored
      While stressing memory and IO at the same time we changed SMT settings,
      we were able to consistently trigger deadlocks in the mm system, which
      froze the entire machine.
      
      I think that under memory stress conditions, the large allocations
      performed by blk_mq_init_rq_map may trigger a reclaim, which stalls
      waiting on the block layer remmaping completion, thus deadlocking the
      system.  The trace below was collected after the machine stalled,
      waiting for the hotplug event completion.
      
      The simplest fix for this is to make allocations in this path
      non-reclaimable, with GFP_NOIO.  With this patch, We couldn't hit the
      issue anymore.
      
      This should apply on top of Jens's for-next branch cleanly.
      
      Changes since v1:
        - Use GFP_NOIO instead of GFP_NOWAIT.
      
       Call Trace:
      [c000000f0160aaf0] [c000000f0160ab50] 0xc000000f0160ab50 (unreliable)
      [c000000f0160acc0] [c000000000016624] __switch_to+0x2e4/0x430
      [c000000f0160ad20] [c000000000b1a880] __schedule+0x310/0x9b0
      [c000000f0160ae00] [c000000000b1af68] schedule+0x48/0xc0
      [c000000f0160ae30] [c000000000b1b4b0] schedule_preempt_disabled+0x20/0x30
      [c000000f0160ae50] [c000000000b1d4fc] __mutex_lock_slowpath+0xec/0x1f0
      [c000000f0160aed0] [c000000000b1d678] mutex_lock+0x78/0xa0
      [c000000f0160af00] [d000000019413cac] xfs_reclaim_inodes_ag+0x33c/0x380 [xfs]
      [c000000f0160b0b0] [d000000019415164] xfs_reclaim_inodes_nr+0x54/0x70 [xfs]
      [c000000f0160b0f0] [d0000000194297f8] xfs_fs_free_cached_objects+0x38/0x60 [xfs]
      [c000000f0160b120] [c0000000003172c8] super_cache_scan+0x1f8/0x210
      [c000000f0160b190] [c00000000026301c] shrink_slab.part.13+0x21c/0x4c0
      [c000000f0160b2d0] [c000000000268088] shrink_zone+0x2d8/0x3c0
      [c000000f0160b380] [c00000000026834c] do_try_to_free_pages+0x1dc/0x520
      [c000000f0160b450] [c00000000026876c] try_to_free_pages+0xdc/0x250
      [c000000f0160b4e0] [c000000000251978] __alloc_pages_nodemask+0x868/0x10d0
      [c000000f0160b6f0] [c000000000567030] blk_mq_init_rq_map+0x160/0x380
      [c000000f0160b7a0] [c00000000056758c] blk_mq_map_swqueue+0x33c/0x360
      [c000000f0160b820] [c000000000567904] blk_mq_queue_reinit+0x64/0xb0
      [c000000f0160b850] [c00000000056a16c] blk_mq_queue_reinit_notify+0x19c/0x250
      [c000000f0160b8a0] [c0000000000f5d38] notifier_call_chain+0x98/0x100
      [c000000f0160b8f0] [c0000000000c5fb0] __cpu_notify+0x70/0xe0
      [c000000f0160b930] [c0000000000c63c4] notify_prepare+0x44/0xb0
      [c000000f0160b9b0] [c0000000000c52f4] cpuhp_invoke_callback+0x84/0x250
      [c000000f0160ba10] [c0000000000c570c] cpuhp_up_callbacks+0x5c/0x120
      [c000000f0160ba60] [c0000000000c7cb8] _cpu_up+0xf8/0x1d0
      [c000000f0160bac0] [c0000000000c7eb0] do_cpu_up+0x120/0x150
      [c000000f0160bb40] [c0000000006fe024] cpu_subsys_online+0x64/0xe0
      [c000000f0160bb90] [c0000000006f5124] device_online+0xb4/0x120
      [c000000f0160bbd0] [c0000000006f5244] online_store+0xb4/0xc0
      [c000000f0160bc20] [c0000000006f0a68] dev_attr_store+0x68/0xa0
      [c000000f0160bc60] [c0000000003ccc30] sysfs_kf_write+0x80/0xb0
      [c000000f0160bca0] [c0000000003cbabc] kernfs_fop_write+0x17c/0x250
      [c000000f0160bcf0] [c00000000030fe6c] __vfs_write+0x6c/0x1e0
      [c000000f0160bd90] [c000000000311490] vfs_write+0xd0/0x270
      [c000000f0160bde0] [c0000000003131fc] SyS_write+0x6c/0x110
      [c000000f0160be30] [c000000000009204] system_call+0x38/0xec
      Signed-off-by: default avatarGabriel Krisman Bertazi <krisman@linux.vnet.ibm.com>
      Cc: Brian King <brking@linux.vnet.ibm.com>
      Cc: Douglas Miller <dougmill@linux.vnet.ibm.com>
      Cc: linux-block@vger.kernel.org
      Cc: linux-scsi@vger.kernel.org
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      36e1f3d1
    • Shaohua Li's avatar
      block_dev: don't update file access position for sync direct IO · 7a62a523
      Shaohua Li authored
      For sync direct IO, generic_file_direct_write/generic_file_read_iter
      will update file access position. Don't duplicate the update in
      .direct_IO. This cause my raid array can't assemble.
      
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Jens Axboe <axboe@fb.com>
      Signed-off-by: default avatarShaohua Li <shli@fb.com>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      7a62a523
    • Andy Lutomirski's avatar
      nvme/pci: Log PCI_STATUS when the controller dies · d2a61918
      Andy Lutomirski authored
      When debugging nvme controller crashes, it's nice to know whether
      the controller died cleanly so that the failure is just reflected in
      CSTS, it died and put an error in PCI_STATUS, or whether it died so
      badly that it stopped responding to PCI configuration space reads.
      
      I've seen a failure that gives 0xffff in PCI_STATUS on a Samsung
      "SM951 NVMe SAMSUNG 256GB" with firmware "BXW75D0Q".
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarAndy Lutomirski <luto@kernel.org>
      Reviewed-by: default avatarKeith Busch <keith.busch@intel.com>
      
      Fixed up white space and hunk reject.
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      d2a61918
    • NeilBrown's avatar
      block_dev: don't test bdev->bd_contains when it is not stable · bcc7f5b4
      NeilBrown authored
      bdev->bd_contains is not stable before calling __blkdev_get().
      When __blkdev_get() is called on a parition with ->bd_openers == 0
      it sets
        bdev->bd_contains = bdev;
      which is not correct for a partition.
      After a call to __blkdev_get() succeeds, ->bd_openers will be > 0
      and then ->bd_contains is stable.
      
      When FMODE_EXCL is used, blkdev_get() calls
         bd_start_claiming() ->  bd_prepare_to_claim() -> bd_may_claim()
      
      This call happens before __blkdev_get() is called, so ->bd_contains
      is not stable.  So bd_may_claim() cannot safely use ->bd_contains.
      It currently tries to use it, and this can lead to a BUG_ON().
      
      This happens when a whole device is already open with a bd_holder (in
      use by dm in my particular example) and two threads race to open a
      partition of that device for the first time, one opening with O_EXCL and
      one without.
      
      The thread that doesn't use O_EXCL gets through blkdev_get() to
      __blkdev_get(), gains the ->bd_mutex, and sets bdev->bd_contains = bdev;
      
      Immediately thereafter the other thread, using FMODE_EXCL, calls
      bd_start_claiming() from blkdev_get().  This should fail because the
      whole device has a holder, but because bdev->bd_contains == bdev
      bd_may_claim() incorrectly reports success.
      This thread continues and blocks on bd_mutex.
      
      The first thread then sets bdev->bd_contains correctly and drops the mutex.
      The thread using FMODE_EXCL then continues and when it calls bd_may_claim()
      again in:
      			BUG_ON(!bd_may_claim(bdev, whole, holder));
      The BUG_ON fires.
      
      Fix this by removing the dependency on ->bd_contains in
      bd_may_claim().  As bd_may_claim() has direct access to the whole
      device, it can simply test if the target bdev is the whole device.
      
      Fixes: 6b4517a7 ("block: implement bd_claiming and claiming block")
      Cc: stable@vger.kernel.org (v2.6.35+)
      Signed-off-by: default avatarNeilBrown <neilb@suse.com>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      bcc7f5b4
    • Linus Torvalds's avatar
      Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · f4000cd9
      Linus Torvalds authored
      Pull arm64 updates from Catalin Marinas:
      
       - struct thread_info moved off-stack (also touching
         include/linux/thread_info.h and include/linux/restart_block.h)
      
       - cpus_have_cap() reworked to avoid __builtin_constant_p() for static
         key use (also touching drivers/irqchip/irq-gic-v3.c)
      
       - uprobes support (currently only for native 64-bit tasks)
      
       - Emulation of kernel Privileged Access Never (PAN) using TTBR0_EL1
         switching to a reserved page table
      
       - CPU capacity information passing via DT or sysfs (used by the
         scheduler)
      
       - support for systems without FP/SIMD (IOW, kernel avoids touching
         these registers; there is no soft-float ABI, nor kernel emulation for
         AArch64 FP/SIMD)
      
       - handling of hardware watchpoint with unaligned addresses, varied
         lengths and offsets from base
      
       - use of the page table contiguous hint for kernel mappings
      
       - hugetlb fixes for sizes involving the contiguous hint
      
       - remove unnecessary I-cache invalidation in flush_cache_range()
      
       - CNTHCTL_EL2 access fix for CPUs with VHE support (ARMv8.1)
      
       - boot-time checks for writable+executable kernel mappings
      
       - simplify asm/opcodes.h and avoid including the 32-bit ARM counterpart
         and make the arm64 kernel headers self-consistent (Xen headers patch
         merged separately)
      
       - Workaround for broken .inst support in certain binutils versions
      
      * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (60 commits)
        arm64: Disable PAN on uaccess_enable()
        arm64: Work around broken .inst when defective gas is detected
        arm64: Add detection code for broken .inst support in binutils
        arm64: Remove reference to asm/opcodes.h
        arm64: Get rid of asm/opcodes.h
        arm64: smp: Prevent raw_smp_processor_id() recursion
        arm64: head.S: Fix CNTHCTL_EL2 access on VHE system
        arm64: Remove I-cache invalidation from flush_cache_range()
        arm64: Enable HIBERNATION in defconfig
        arm64: Enable CONFIG_ARM64_SW_TTBR0_PAN
        arm64: xen: Enable user access before a privcmd hvc call
        arm64: Handle faults caused by inadvertent user access with PAN enabled
        arm64: Disable TTBR0_EL1 during normal kernel execution
        arm64: Introduce uaccess_{disable,enable} functionality based on TTBR0_EL1
        arm64: Factor out TTBR0_EL1 post-update workaround into a specific asm macro
        arm64: Factor out PAN enabling/disabling into separate uaccess_* macros
        arm64: Update the synchronous external abort fault description
        selftests: arm64: add test for unaligned/inexact watchpoint handling
        arm64: Allow hw watchpoint of length 3,5,6 and 7
        arm64: hw_breakpoint: Handle inexact watchpoint addresses
        ...
      f4000cd9
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 2ec4584e
      Linus Torvalds authored
      Pull s390 updates from Martin Schwidefsky:
       "The main bulk of the s390 patches for the 4.10 merge window:
      
         - Add support for the contiguous memory allocator.
      
         - The recovery for I/O errors in the dasd device driver is improved,
           the driver will now remove channel paths that are not working
           properly.
      
         - Additional fields are added to /proc/sysinfo, the extended
           partition name and the partition UUID.
      
         - New naming for PCI devices with system defined UIDs.
      
         - The last few remaining alloc_bootmem calls are converted to
           memblock.
      
         - The thread_info structure is stripped down and moved to the
           task_struct. The only field left in thread_info is the flags field.
      
         - Rework of the arch topology code to fix a fake numa issue.
      
         - Refactoring of the atomic primitives and add a new preempt_count
           implementation.
      
         - Clocksource steering for the STP sync check offsets.
      
         - The s390 specific headers are changed to make them usable with
           CLANG.
      
         - Bug fixes and cleanup"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (70 commits)
        s390/cpumf: Use configuration level indication for sampling data
        s390: provide memmove implementation
        s390: cleanup arch/s390/kernel Makefile
        s390: fix initrd corruptions with gcov/kcov instrumented kernels
        s390: exclude early C code from gcov profiling
        s390/dasd: channel path aware error recovery
        s390/dasd: extend dasd path handling
        s390: remove unused labels from entry.S
        s390/vmlogrdr: fix IUCV buffer allocation
        s390/crypto: unlock on error in prng_tdes_read()
        s390/sysinfo: show partition extended name and UUID if available
        s390/numa: pin all possible cpus to nodes early
        s390/numa: establish cpu to node mapping early
        s390/topology: use cpu_topology array instead of per cpu variable
        s390/smp: initialize cpu_present_mask in setup_arch
        s390/topology: always use s390 specific sched_domain_topology_level
        s390/smp: use smp_get_base_cpu() helper function
        s390/numa: always use logical cpu and core ids
        s390: Remove VLAIS in ptff() and clear_table()
        s390: fix machine check panic stack switch
        ...
      2ec4584e
    • Linus Torvalds's avatar
      Merge tag 'for-linus-4.10-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · aa3ecf38
      Linus Torvalds authored
      Pull xen updates from Juergen Gross:
       "Xen features and fixes for 4.10
      
        These are some fixes, a move of some arm related headers to share them
        between arm and arm64 and a series introducing a helper to make code
        more readable.
      
        The most notable change is David stepping down as maintainer of the
        Xen hypervisor interface. This results in me sending you the pull
        requests for Xen related code from now on"
      
      * tag 'for-linus-4.10-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip: (29 commits)
        xen/balloon: Only mark a page as managed when it is released
        xenbus: fix deadlock on writes to /proc/xen/xenbus
        xen/scsifront: don't request a slot on the ring until request is ready
        xen/x86: Increase xen_e820_map to E820_X_MAX possible entries
        x86: Make E820_X_MAX unconditionally larger than E820MAX
        xen/pci: Bubble up error and fix description.
        xen: xenbus: set error code on failure
        xen: set error code on failures
        arm/xen: Use alloc_percpu rather than __alloc_percpu
        arm/arm64: xen: Move shared architecture headers to include/xen/arm
        xen/events: use xen_vcpu_id mapping for EVTCHNOP_status
        xen/gntdev: Use VM_MIXEDMAP instead of VM_IO to avoid NUMA balancing
        xen-scsifront: Add a missing call to kfree
        MAINTAINERS: update XEN HYPERVISOR INTERFACE
        xenfs: Use proc_create_mount_point() to create /proc/xen
        xen-platform: use builtin_pci_driver
        xen-netback: fix error handling output
        xen: make use of xenbus_read_unsigned() in xenbus
        xen: make use of xenbus_read_unsigned() in xen-pciback
        xen: make use of xenbus_read_unsigned() in xen-fbfront
        ...
      aa3ecf38
  2. 13 Dec, 2016 33 commits
    • Linus Torvalds's avatar
      Merge branch 'stable/for-linus-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb · b5cab0da
      Linus Torvalds authored
      Pull swiotlb updates from Konrad Rzeszutek Wilk:
      
       - minor fixes (rate limiting), remove certain functions
      
       - support for DMA_ATTR_SKIP_CPU_SYNC which is an optimization
         in the DMA API
      
      * 'stable/for-linus-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb:
        swiotlb: Minor fix-ups for DMA_ATTR_SKIP_CPU_SYNC support
        swiotlb: Add support for DMA_ATTR_SKIP_CPU_SYNC
        swiotlb-xen: Enforce return of DMA_ERROR_CODE in mapping function
        swiotlb: Drop unused functions swiotlb_map_sg and swiotlb_unmap_sg
        swiotlb: Rate-limit printing when running out of SW-IOMMU space
      b5cab0da
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 93173b5b
      Linus Torvalds authored
      Pull KVM updates from Paolo Bonzini:
       "Small release, the most interesting stuff is x86 nested virt
        improvements.
      
        x86:
         - userspace can now hide nested VMX features from guests
         - nested VMX can now run Hyper-V in a guest
         - support for AVX512_4VNNIW and AVX512_FMAPS in KVM
         - infrastructure support for virtual Intel GPUs.
      
        PPC:
         - support for KVM guests on POWER9
         - improved support for interrupt polling
         - optimizations and cleanups.
      
        s390:
         - two small optimizations, more stuff is in flight and will be in
           4.11.
      
        ARM:
         - support for the GICv3 ITS on 32bit platforms"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (94 commits)
        arm64: KVM: pmu: Reset PMSELR_EL0.SEL to a sane value before entering the guest
        KVM: arm/arm64: timer: Check for properly initialized timer on init
        KVM: arm/arm64: vgic-v2: Limit ITARGETSR bits to number of VCPUs
        KVM: x86: Handle the kthread worker using the new API
        KVM: nVMX: invvpid handling improvements
        KVM: nVMX: check host CR3 on vmentry and vmexit
        KVM: nVMX: introduce nested_vmx_load_cr3 and call it on vmentry
        KVM: nVMX: propagate errors from prepare_vmcs02
        KVM: nVMX: fix CR3 load if L2 uses PAE paging and EPT
        KVM: nVMX: load GUEST_EFER after GUEST_CR0 during emulated VM-entry
        KVM: nVMX: generate MSR_IA32_CR{0,4}_FIXED1 from guest CPUID
        KVM: nVMX: fix checks on CR{0,4} during virtual VMX operation
        KVM: nVMX: support restore of VMX capability MSRs
        KVM: nVMX: generate non-true VMX MSRs based on true versions
        KVM: x86: Do not clear RFLAGS.TF when a singlestep trap occurs.
        KVM: x86: Add kvm_skip_emulated_instruction and use it.
        KVM: VMX: Move skip_emulated_instruction out of nested_vmx_check_vmcs12
        KVM: VMX: Reorder some skip_emulated_instruction calls
        KVM: x86: Add a return value to kvm_emulate_cpuid
        KVM: PPC: Book3S: Move prototypes for KVM functions into kvm_ppc.h
        ...
      93173b5b
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-linus-v4.10' of... · 1c59e1ed
      Linus Torvalds authored
      Merge tag 'hwmon-for-linus-v4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon updates from Guenter Roeck:
      
       - new drivers for TMP108 and TC654
      
       - hwmon core code cleanup
      
       - coretemp driver cleanup
      
       - fix overflow issues in several drivers
      
       - minor fixes, cleanups and enhancements in various drivers
      
      * tag 'hwmon-for-linus-v4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (41 commits)
        hwmon: (g762) Fix overflows and crash seen when writing limit attributes
        hwmon: (emcw201) Fix overflows seen when writing into limit attributes
        hwmon: (emc2103) Fix overflows seen when temperature limit attributes
        hwmon: (lm85) Fix overflows seen when writing voltage limit attributes
        hwmon: (lm87) Fix overflow seen when writing voltage limit attributes
        hwmon: (nct7802) Fix overflows seen when writing into limit attributes
        hwmon: (adt7470) Fix overflows seen when writing into limit attributes
        hwmon: (adt7462) Fix overflows seen when writing into limit attributes
        hwmon: (adm1026) Fix overflows seen when writing into limit attributes
        hwmon: (adm1025) Fix overflows seen when writing voltage limits
        hwmon: (via-cputemp) Convert to hotplug state machine
        devicetree: hwmon: Add documentation for TMP108 driver.
        hwmon: Add Texas Instruments TMP108 temperature sensor driver.
        hwmon: (core) Simplify sysfs attribute name allocation
        hwmon: (core) Rename groups parameter in API to extra_groups
        hwmon: (core) Explain why at least two attribute groups are allocated
        hwmon: (core) Make is_visible callback truly mandatory
        hwmon: (core) Deprecate hwmon_device_register()
        hwmon: (core) Clarify use of chip attributes
        hwmon: (core) Add support for string attributes to new API
        ...
      1c59e1ed
    • Linus Torvalds's avatar
      Merge tag 'spi-v4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · bb3dd056
      Linus Torvalds authored
      Pull spi updates from Mark Brown:
       "The nicest things about this release for me is seeing some older
        drivers getting some cleanups and modernization, it's really good to
        see things moving forwards even for older drivers.
      
        In content terms it's a fairly humdrum release but where the work has
        been happening is great.
      
         - Support for simultaneous use of internal and GPIO chip selects for
           devices that require the use of the internal select even if it's
           not connected and a GPIO is actually routed to the slave device.
      
         - A major rework and cleanup of the fsl-espi driver from Heiner
           Kallweit which should make it work substantially better.
      
         - DMA support for Freescale DSPI IPs.
      
         - New drivers for Freescale LPSPI IPs and Marvell Armada 3700.
      
         - Support for Allwinner H3"
      
      * tag 'spi-v4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (85 commits)
        spi: mvebu: fix baudrate calculation for armada variant
        spi: Add support for Armada 3700 SPI Controller
        spi: armada-3700: Add documentation for the Armada 3700 SPI Controller
        spi: fsl-lpspi: quit reading rx fifo under error condition
        spi: fsl-lpspi: use GPL as module license
        spi: fsl-espi: fix ioread16/iowrite16 endianness
        spi: fsl-espi: remove unused linearization code
        spi: fsl-espi: eliminate need for linearization when reading from hardware
        spi: fsl-espi: eliminate need for linearization when writing to hardware
        spi: fsl-espi: determine need for byte swap only once
        spi: fsl-lpspi: read lpspi tx/rx fifo size in probe()
        spi: fsl-lpspi: use wait_for_completion_timeout() while waiting transfer done
        spi: orion: fix comment to mention MVEBU
        spi: atmel: remove the use of private channel fields
        spi: atmel: trivial: remove unused fields in DMA structure
        spi: atmel: Use SPI core DMA mapping framework
        spi: atmel: Use core SPI_MASTER_MUST_[RT]X handling
        spi: atmel: trivial: move info banner to latest probe action
        spi: imx: replace schedule() with cond_resched()
        spi: imx: fix potential shift truncation
        ...
      bb3dd056
    • Linus Torvalds's avatar
      Merge branch 'for-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata · 7b882cb8
      Linus Torvalds authored
      Pull another libata patch from Tejun Heo:
       "One more patch from Adam added.
      
        It makes libata skip probing for NCQ prio unless the feature is
        explicitly requested by the user. This is necessary because some
        controllers lock up after the optional feature is probed"
      
      * 'for-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
        ata: avoid probing NCQ Prio Support if not explicitly requested
      7b882cb8
    • Adam Manzanares's avatar
      ata: avoid probing NCQ Prio Support if not explicitly requested · 9f56eca3
      Adam Manzanares authored
      Previously, when the ata device was being initialized we were
      probing for NCQ prio support by checking the identify information
      and also checking the log page that holds information about ncq prio
      support.
      
      This caused an error on an Intel HBA so the code is now updated to
      only probe for NCQ prio support when the sysfs variable controlling
      NCQ prio support is enabled.
      
      tj: Update formatting, switch to spin_[un]lock_irq() and update
          locking a bit, use REVALIDATE instead of RESET, and return -EIO
          instead of -EINVAL on config failure.
      Signed-off-by: default avatarAdam Manzanares <adam.manzanares@wdc.com>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      9f56eca3
    • Linus Torvalds's avatar
      Merge branch 'for-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata · b92e09bb
      Linus Torvalds authored
      Pull libata updates from Tejun Heo:
      
       - Adam added opt-in ATA command priority support.
      
       - There are machines which hide multiple nvme devices behind an ahci
         BAR. Dan Williams proposed a solution to force-switch the mode but
         deemed too hackishd. People are gonna discuss the proper way to
         handle the situation in nvme standard meetings. For now, detect and
         warn about the situation.
      
       - Low level driver specific changes.
      
      Christoph Hellwig pipes in about the hidden nvme warning:
       "I wish that was the case. We've pretty much agreed that we'll want to
        implement it as a virtual PCIe root bridge, similar to Intels other
        'innovation' VMD that we work around that way.
      
        But Intel management has apparently decided that they don't want to
        spend more cycles on this now that Lenovo has an optional BIOS that
        doesn't force this broken mode anymore, and no one outside of Intel
        has enough information to implement something like this.
      
        So for now I guess this warning is it, until Intel reconsideres and
        spends resources on fixing up the damage their Chipset people caused"
      
      * 'for-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
        ahci: warn about remapped NVMe devices
        ahci-remap.h: add ahci remapping definitions
        nvme: move NVMe class code to pci_ids.h
        pata: imx: support controller modes up to PIO4
        pata: imx: add support of setting timings for PIO modes
        pata: imx: set controller PIO mode with .set_piomode callback
        pata: imx: sort headers out
        ata: set ncq_prio_enabled iff device has support
        ata: ATA Command Priority Disabled By Default
        ata: Enabling ATA Command Priorities
        block: Add iocontext priority to request
        ahci: qoriq: added ls1046a platform support
      b92e09bb
    • Linus Torvalds's avatar
      Merge branch 'for-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq · c11a6cfb
      Linus Torvalds authored
      Pull workqueue updates from Tejun Heo:
       "Mostly patches to initialize workqueue subsystem earlier and get rid
        of keventd_up().
      
        The patches were headed for the last merge cycle but got delayed due
        to a bug found late minute, which is fixed now.
      
        Also, to help debugging, destroy_workqueue() is more chatty now on a
        sanity check failure."
      
      * 'for-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
        workqueue: move wq_numa_init() to workqueue_init()
        workqueue: remove keventd_up()
        debugobj, workqueue: remove keventd_up() usage
        slab, workqueue: remove keventd_up() usage
        power, workqueue: remove keventd_up() usage
        tty, workqueue: remove keventd_up() usage
        mce, workqueue: remove keventd_up() usage
        workqueue: make workqueue available early during boot
        workqueue: dump workqueue state on sanity check failures in destroy_workqueue()
      c11a6cfb
    • Linus Torvalds's avatar
      Merge branch 'for-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu · e6efef72
      Linus Torvalds authored
      Pull percpu update from Tejun Heo:
       "This includes just one patch to reject non-power-of-2 alignments and
        trigger warning. Interestingly, this actually caught a bug in XEN
        ARM64"
      
      * 'for-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu:
        percpu: ensure the requested alignment is power of two
      e6efef72
    • Linus Torvalds's avatar
      Merge tag 'char-misc-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · b78b499a
      Linus Torvalds authored
      Pull char/misc driver updates from Greg KH:
       "Here's the big char/misc driver patches for 4.10-rc1. Lots of tiny
        changes over lots of "minor" driver subsystems, the largest being some
        new FPGA drivers. Other than that, a few other new drivers, but no new
        driver subsystems added for this kernel cycle, a nice change.
      
        All of these have been in linux-next with no reported issues"
      
      * tag 'char-misc-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (107 commits)
        uio-hv-generic: store physical addresses instead of virtual
        Tools: hv: kvp: configurable external scripts path
        uio-hv-generic: new userspace i/o driver for VMBus
        vmbus: add support for dynamic device id's
        hv: change clockevents unbind tactics
        hv: acquire vmbus_connection.channel_mutex in vmbus_free_channels()
        hyperv: Fix spelling of HV_UNKOWN
        mei: bus: enable non-blocking RX
        mei: fix the back to back interrupt handling
        mei: synchronize irq before initiating a reset.
        VME: Remove shutdown entry from vme_driver
        auxdisplay: ht16k33: select framebuffer helper modules
        MAINTAINERS: add git url for fpga
        fpga: Clarify how write_init works streaming modes
        fpga zynq: Fix incorrect ISR state on bootup
        fpga zynq: Remove priv->dev
        fpga zynq: Add missing \n to messages
        fpga: Add COMPILE_TEST to all drivers
        uio: pruss: add clk_disable()
        char/pcmcia: add some error checking in scr24x_read()
        ...
      b78b499a
    • Linus Torvalds's avatar
      Merge tag 'driver-core-4.10-rc1' of... · 098c3055
      Linus Torvalds authored
      Merge tag 'driver-core-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
      
      Pull driver core updates from Greg KH:
       "Here's the new driver core patches for 4.10-rc1.
      
        Big thing here is the nice addition of "functional dependencies" to
        the driver core. The idea has been talked about for a very long time,
        great job to Rafael for stepping up and implementing it. It's been
        tested for longer than the 4.9-rc1 date, we held off on merging it
        earlier in order to feel more comfortable about it.
      
        Other than that, it's just a handful of small other patches, some good
        cleanups to the mess that is the firmware class code, and we have a
        test driver for the deferred probe logic.
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'driver-core-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (30 commits)
        firmware: Correct handling of fw_state_wait() return value
        driver core: Silence device links sphinx warning
        firmware: remove warning at documentation generation time
        drivers: base: dma-mapping: Fix typo in dmam_alloc_non_coherent comments
        driver core: test_async: fix up typo found by 0-day
        firmware: move fw_state_is_done() into UHM section
        firmware: do not use fw_lock for fw_state protection
        firmware: drop bit ops in favor of simple state machine
        firmware: refactor loading status
        firmware: fix usermode helper fallback loading
        driver core: firmware_class: convert to use class_groups
        driver core: devcoredump: convert to use class_groups
        driver core: class: add class_groups support
        kernfs: Declare two local data structures static
        driver-core: fix platform_no_drv_owner.cocci warnings
        drivers/base/memory.c: Remove unused 'first_page' variable
        driver core: add CLASS_ATTR_WO()
        drivers: base: cacheinfo: support DT overrides for cache properties
        drivers: base: cacheinfo: add pr_fmt logging
        drivers: base: cacheinfo: fix boot error message when acpi is enabled
        ...
      098c3055
    • Linus Torvalds's avatar
      Merge tag 'staging-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · 72cca7ba
      Linus Torvalds authored
      Pull staging/IIO updates from Greg KH:
       "Here's the "big" staging/iio pull request for 4.10-rc1.
      
        Not as big as 4.9 was, but still just over a thousand changes. We
        almost broke even of lines added vs. removed, as the slicoss driver
        was removed (got a "clean" driver for the same hardware through the
        netdev tree), and some iio drivers were also dropped, but I think we
        ended up adding a few thousand lines to the source tree in the end.
        Other than that it's a lot of minor fixes all over the place, nothing
        major stands out at all.
      
        All of these have been in linux-next for a while. There will be a
        merge conflict with Al's vfs tree in the lustre code, but the
        resolution for that should be pretty simple, that too has been in
        linux-next"
      
      * tag 'staging-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (1002 commits)
        staging: comedi: comedidev.h: Document usage of 'detach' handler
        staging: fsl-mc: remove unnecessary info prints from bus driver
        staging: fsl-mc: add sysfs ABI doc
        staging/lustre/o2iblnd: Fix misspelled attemps->attempts
        staging/lustre/o2iblnd: Fix misspelling intialized->intialized
        staging/lustre: Convert all bare unsigned to unsigned int
        staging/lustre/socklnd: Fix whitespace problem
        staging/lustre/o2iblnd: Add missing space
        staging/lustre/lnetselftest: Fix potential integer overflow
        staging: greybus: audio_module: remove redundant OOM message
        staging: dgnc: Fix lines longer than 80 characters
        staging: dgnc: fix blank line after '{' warnings.
        staging/android: remove Sync Framework tasks from TODO
        staging/lustre/osc: Revert erroneous list_for_each_entry_safe use
        staging: slicoss: remove the staging driver
        staging: lustre: libcfs: remove lnet upcall code
        staging: lustre: remove set but unused variables
        staging: lustre: osc: set lock data for readahead lock
        staging: lustre: import: don't reconnect during connect interpret
        staging: lustre: clio: remove mtime check in vvp_io_fault_start()
        ...
      72cca7ba
    • Linus Torvalds's avatar
      Merge tag 'tty-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · 5266e703
      Linus Torvalds authored
      Pull tty/serial updates from Greg KH:
       "Here's the tty/serial patchset for 4.10-rc1.
      
        It's been a quiet kernel cycle for this subsystem, just a small number
        of changes. A few new serial drivers, and some cleanups to the old
        vgacon logic, and other minor serial driver changes as well.
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'tty-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (54 commits)
        serial: 8250_mid fix calltrace when hotplug 8250 serial controller
        console: Move userspace I/O out of console_lock to fix lockdep warning
        tty: nozomi: avoid sprintf buffer overflow
        serial: 8250_pci: Detach low-level driver during PCI error recovery
        serial: core: don't check port twice in a row
        mxs-auart: count FIFO overrun errors
        serial: 8250_dw: Add support for IrDA SIR mode
        serial: 8250: Expose set_ldisc function
        serial: 8250: Add IrDA to UART capabilities
        serial: 8250_dma: power off device after TX is done
        serial: 8250_port: export serial8250_rpm_{get|put}_tx()
        serial: sunsu: Free memory when probe fails
        serial: sunhv: Free memory when remove() is called
        vt: fix Scroll Lock LED trigger name
        tty: typo in comments in drivers/tty/vt/keyboard.c
        tty: amba-pl011: Add earlycon support for SBSA UART
        tty: nozomi: use permission-specific DEVICE_ATTR variants
        tty: serial: Make the STM32 serial port depend on it's arch
        serial: ifx6x60: Free memory when probe fails
        serial: ioc4_serial: Free memory when kzalloc fails during probe
        ...
      5266e703
    • Linus Torvalds's avatar
      Merge tag 'usb-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 03f8d4cc
      Linus Torvalds authored
      Pull USB/PHY updates from Greg KH:
       "Here's the big set of USB/PHY patches for 4.10-rc1.
      
        A number of new drivers are here in this set of changes. We have a new
        USB controller type "mtu3", a new usb-serial driver, and the usual
        churn in the gadget subsystem and the xhci host controller driver,
        along with a few other new small drivers added. And lots of little
        other changes all over the USB and PHY driver tree. Full details are
        in the shortlog
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'usb-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (309 commits)
        USB: serial: option: add dlink dwm-158
        USB: serial: option: add support for Telit LE922A PIDs 0x1040, 0x1041
        USB: OHCI: nxp: fix code warnings
        USB: OHCI: nxp: remove useless extern declaration
        USB: OHCI: at91: remove useless extern declaration
        usb: misc: rio500: fix result type for error message
        usb: mtu3: fix U3 port link issue
        usb: mtu3: enable auto switch from U3 to U2
        usbip: fix warning in vhci_hcd_probe/lockdep_init_map
        usb: core: usbport: Use proper LED API to fix potential crash
        usbip: add missing compile time generated files to .gitignore
        usb: hcd.h: construct hub class request constants from simpler constants
        USB: OHCI: ohci-pxa27x: remove useless functions
        USB: OHCI: omap: remove useless extern declaration
        USB: OHCI: ohci-omap: remove useless functions
        USB: OHCI: ohci-s3c2410: remove useless functions
        USB: cdc-acm: add device id for GW Instek AFG-125
        fsl/usb: Workarourd for USB erratum-A005697
        usb: hub: Wait for connection to be reestablished after port reset
        usbip: vudc: Refactor init_vudc_hw() to be more obvious
        ...
      03f8d4cc
    • Linus Torvalds's avatar
      Merge tag 'acpi-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · a67485d4
      Linus Torvalds authored
      Pull ACPI updates from Rafael Wysocki:
       "The ACPICA code in the kernel gets updated as usual (included is
        upstream revision 20160930 and a few commits from the next one, with
        the rest waiting for an issue discovered in linux-next to be
        addressed) which brings in a couple of fixes and cleanups
      
        On top of that initial support for APEI on ARM64 is added, two new
        pieces of documentation are introduced, the properties-parsing code is
        updated to follow changes in the (external) documentation it is based
        on and there are a few updates of SoC drivers, some new blacklist
        entries, plus some assorted fixes and cleanups
      
        Specifics:
      
         - ACPICA update including upstream revision 20160930 and several
           commits beyond it (Bob Moore, Lv Zheng)
      
         - Initial support for ACPI APEI on ARM64 (Tomasz Nowicki)
      
         - New document describing the handling of _OSI and _REV in Linux (Len
           Brown)
      
         - New document describing the usage rules for _DSD properties (Rafael
           Wysocki)
      
         - Update of the ACPI properties-parsing code to reflect recent
           changes in the (external) documentation it is based on (Rafael
           Wysocki)
      
         - Updates of the ACPI LPSS and ACPI APD SoC drivers for additional
           hardware support (Andy Shevchenko, Nehal Shah)
      
         - New blacklist entries for _REV and video handling (Alex Hung, Hans
           de Goede, Michael Pobega)
      
         - ACPI battery driver fix to fall back to _BIF if _BIX fails (Dave
           Lambley)
      
         - NMI notifications handling fix for APEI (Prarit Bhargava)
      
         - Error code path fix for the ACPI CPPC library (Dan Carpenter)
      
         - Assorted cleanups (Andy Shevchenko, Longpeng Mike)"
      
      * tag 'acpi-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (31 commits)
        ACPICA: Utilities: Add new decode function for parser values
        ACPI / osl: Refactor acpi_os_get_root_pointer() to drop 'else':s
        ACPI / osl: Propagate actual error code for kstrtoul()
        ACPI / property: Document usage rules for _DSD properties
        ACPI: Document _OSI and _REV for Linux BIOS writers
        ACPI / APEI / ARM64: APEI initial support for ARM64
        ACPI / APEI: Fix NMI notification handling
        ACPICA: Tables: Add an error message complaining driver bugs
        ACPICA: Tables: Add acpi_tb_unload_table()
        ACPICA: Tables: Cleanup acpi_tb_install_and_load_table()
        ACPICA: Events: Fix acpi_ev_initialize_region() return value
        ACPICA: Back port of "ACPICA: Dispatcher: Tune interpreter lock around AcpiEvInitializeRegion()"
        ACPICA: Namespace: Add acpi_ns_handle_to_name()
        ACPI / CPPC: set an error code on probe error path
        ACPI / video: Add force_native quirk for HP Pavilion dv6
        ACPI / video: Add force_native quirk for Dell XPS 17 L702X
        ACPI / property: Hierarchical properties support update
        ACPI / LPSS: enable hard LLP for DMA
        ACPI / battery: If _BIX fails, retry with _BIF
        ACPI / video: Move ACPI_VIDEO_NOTIFY_* defines to acpi/video.h
        ..
      a67485d4
    • Linus Torvalds's avatar
      Merge tag 'pm-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 7b9dc3f7
      Linus Torvalds authored
      Pull power management updates from Rafael Wysocki:
       "Again, cpufreq gets more changes than the other parts this time (one
        new driver, one old driver less, a bunch of enhancements of the
        existing code, new CPU IDs, fixes, cleanups)
      
        There also are some changes in cpuidle (idle injection rework, a
        couple of new CPU IDs, online/offline rework in intel_idle, fixes and
        cleanups), in the generic power domains framework (mostly related to
        supporting power domains containing CPUs), and in the Operating
        Performance Points (OPP) library (mostly related to supporting devices
        with multiple voltage regulators)
      
        In addition to that, the system sleep state selection interface is
        modified to make it easier for distributions with unchanged user space
        to support suspend-to-idle as the default system suspend method, some
        issues are fixed in the PM core, the latency tolerance PM QoS
        framework is improved a bit, the Intel RAPL power capping driver is
        cleaned up and there are some fixes and cleanups in the devfreq
        subsystem
      
        Specifics:
      
         - New cpufreq driver for Broadcom STB SoCs and a Device Tree binding
           for it (Markus Mayer)
      
         - Support for ARM Integrator/AP and Integrator/CP in the generic DT
           cpufreq driver and elimination of the old Integrator cpufreq driver
           (Linus Walleij)
      
         - Support for the zx296718, r8a7743 and r8a7745, Socionext UniPhier,
           and PXA SoCs in the the generic DT cpufreq driver (Baoyou Xie,
           Geert Uytterhoeven, Masahiro Yamada, Robert Jarzmik)
      
         - cpufreq core fix to eliminate races that may lead to using inactive
           policy objects and related cleanups (Rafael Wysocki)
      
         - cpufreq schedutil governor update to make it use SCHED_FIFO kernel
           threads (instead of regular workqueues) for doing delayed work (to
           reduce the response latency in some cases) and related cleanups
           (Viresh Kumar)
      
         - New cpufreq sysfs attribute for resetting statistics (Markus Mayer)
      
         - cpufreq governors fixes and cleanups (Chen Yu, Stratos Karafotis,
           Viresh Kumar)
      
         - Support for using generic cpufreq governors in the intel_pstate
           driver (Rafael Wysocki)
      
         - Support for per-logical-CPU P-state limits and the EPP/EPB (Energy
           Performance Preference/Energy Performance Bias) knobs in the
           intel_pstate driver (Srinivas Pandruvada)
      
         - New CPU ID for Knights Mill in intel_pstate (Piotr Luc)
      
         - intel_pstate driver modification to use the P-state selection
           algorithm based on CPU load on platforms with the system profile in
           the ACPI tables set to "mobile" (Srinivas Pandruvada)
      
         - intel_pstate driver cleanups (Arnd Bergmann, Rafael Wysocki,
           Srinivas Pandruvada)
      
         - cpufreq powernv driver updates including fast switching support
           (for the schedutil governor), fixes and cleanus (Akshay Adiga,
           Andrew Donnellan, Denis Kirjanov)
      
         - acpi-cpufreq driver rework to switch it over to the new CPU
           offline/online state machine (Sebastian Andrzej Siewior)
      
         - Assorted cleanups in cpufreq drivers (Wei Yongjun, Prashanth
           Prakash)
      
         - Idle injection rework (to make it use the regular idle path instead
           of a home-grown custom one) and related powerclamp thermal driver
           updates (Peter Zijlstra, Jacob Pan, Petr Mladek, Sebastian Andrzej
           Siewior)
      
         - New CPU IDs for Atom Z34xx and Knights Mill in intel_idle (Andy
           Shevchenko, Piotr Luc)
      
         - intel_idle driver cleanups and switch over to using the new CPU
           offline/online state machine (Anna-Maria Gleixner, Sebastian
           Andrzej Siewior)
      
         - cpuidle DT driver update to support suspend-to-idle properly
           (Sudeep Holla)
      
         - cpuidle core cleanups and misc updates (Daniel Lezcano, Pan Bian,
           Rafael Wysocki)
      
         - Preliminary support for power domains including CPUs in the generic
           power domains (genpd) framework and related DT bindings (Lina Iyer)
      
         - Assorted fixes and cleanups in the generic power domains (genpd)
           framework (Colin Ian King, Dan Carpenter, Geert Uytterhoeven)
      
         - Preliminary support for devices with multiple voltage regulators
           and related fixes and cleanups in the Operating Performance Points
           (OPP) library (Viresh Kumar, Masahiro Yamada, Stephen Boyd)
      
         - System sleep state selection interface rework to make it easier to
           support suspend-to-idle as the default system suspend method
           (Rafael Wysocki)
      
         - PM core fixes and cleanups, mostly related to the interactions
           between the system suspend and runtime PM frameworks (Ulf Hansson,
           Sahitya Tummala, Tony Lindgren)
      
         - Latency tolerance PM QoS framework imorovements (Andrew Lutomirski)
      
         - New Knights Mill CPU ID for the Intel RAPL power capping driver
           (Piotr Luc)
      
         - Intel RAPL power capping driver fixes, cleanups and switch over to
           using the new CPU offline/online state machine (Jacob Pan, Thomas
           Gleixner, Sebastian Andrzej Siewior)
      
         - Fixes and cleanups in the exynos-ppmu, exynos-nocp, rk3399_dmc,
           rockchip-dfi devfreq drivers and the devfreq core (Axel Lin,
           Chanwoo Choi, Javier Martinez Canillas, MyungJoo Ham, Viresh Kumar)
      
         - Fix for false-positive KASAN warnings during resume from ACPI S3
           (suspend-to-RAM) on x86 (Josh Poimboeuf)
      
         - Memory map verification during resume from hibernation on x86 to
           ensure a consistent address space layout (Chen Yu)
      
         - Wakeup sources debugging enhancement (Xing Wei)
      
         - rockchip-io AVS driver cleanup (Shawn Lin)"
      
      * tag 'pm-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (127 commits)
        devfreq: rk3399_dmc: Don't use OPP structures outside of RCU locks
        devfreq: rk3399_dmc: Remove dangling rcu_read_unlock()
        devfreq: exynos: Don't use OPP structures outside of RCU locks
        Documentation: intel_pstate: Document HWP energy/performance hints
        cpufreq: intel_pstate: Support for energy performance hints with HWP
        cpufreq: intel_pstate: Add locking around HWP requests
        PM / sleep: Print active wakeup sources when blocking on wakeup_count reads
        PM / core: Fix bug in the error handling of async suspend
        PM / wakeirq: Fix dedicated wakeirq for drivers not using autosuspend
        PM / Domains: Fix compatible for domain idle state
        PM / OPP: Don't WARN on multiple calls to dev_pm_opp_set_regulators()
        PM / OPP: Allow platform specific custom set_opp() callbacks
        PM / OPP: Separate out _generic_set_opp()
        PM / OPP: Add infrastructure to manage multiple regulators
        PM / OPP: Pass struct dev_pm_opp_supply to _set_opp_voltage()
        PM / OPP: Manage supply's voltage/current in a separate structure
        PM / OPP: Don't use OPP structure outside of rcu protected section
        PM / OPP: Reword binding supporting multiple regulators per device
        PM / OPP: Fix incorrect cpu-supply property in binding
        cpuidle: Add a kerneldoc comment to cpuidle_use_deepest_state()
        ..
      7b9dc3f7
    • Linus Torvalds's avatar
      Merge branch 'for-4.10/block' of git://git.kernel.dk/linux-block · 36869cb9
      Linus Torvalds authored
      Pull block layer updates from Jens Axboe:
       "This is the main block pull request this series. Contrary to previous
        release, I've kept the core and driver changes in the same branch. We
        always ended up having dependencies between the two for obvious
        reasons, so makes more sense to keep them together. That said, I'll
        probably try and keep more topical branches going forward, especially
        for cycles that end up being as busy as this one.
      
        The major parts of this pull request is:
      
         - Improved support for O_DIRECT on block devices, with a small
           private implementation instead of using the pig that is
           fs/direct-io.c. From Christoph.
      
         - Request completion tracking in a scalable fashion. This is utilized
           by two components in this pull, the new hybrid polling and the
           writeback queue throttling code.
      
         - Improved support for polling with O_DIRECT, adding a hybrid mode
           that combines pure polling with an initial sleep. From me.
      
         - Support for automatic throttling of writeback queues on the block
           side. This uses feedback from the device completion latencies to
           scale the queue on the block side up or down. From me.
      
         - Support from SMR drives in the block layer and for SD. From Hannes
           and Shaun.
      
         - Multi-connection support for nbd. From Josef.
      
         - Cleanup of request and bio flags, so we have a clear split between
           which are bio (or rq) private, and which ones are shared. From
           Christoph.
      
         - A set of patches from Bart, that improve how we handle queue
           stopping and starting in blk-mq.
      
         - Support for WRITE_ZEROES from Chaitanya.
      
         - Lightnvm updates from Javier/Matias.
      
         - Supoort for FC for the nvme-over-fabrics code. From James Smart.
      
         - A bunch of fixes from a whole slew of people, too many to name
           here"
      
      * 'for-4.10/block' of git://git.kernel.dk/linux-block: (182 commits)
        blk-stat: fix a few cases of missing batch flushing
        blk-flush: run the queue when inserting blk-mq flush
        elevator: make the rqhash helpers exported
        blk-mq: abstract out blk_mq_dispatch_rq_list() helper
        blk-mq: add blk_mq_start_stopped_hw_queue()
        block: improve handling of the magic discard payload
        blk-wbt: don't throttle discard or write zeroes
        nbd: use dev_err_ratelimited in io path
        nbd: reset the setup task for NBD_CLEAR_SOCK
        nvme-fabrics: Add FC LLDD loopback driver to test FC-NVME
        nvme-fabrics: Add target support for FC transport
        nvme-fabrics: Add host support for FC transport
        nvme-fabrics: Add FC transport LLDD api definitions
        nvme-fabrics: Add FC transport FC-NVME definitions
        nvme-fabrics: Add FC transport error codes to nvme.h
        Add type 0x28 NVME type code to scsi fc headers
        nvme-fabrics: patch target code in prep for FC transport support
        nvme-fabrics: set sqe.command_id in core not transports
        parser: add u64 number parser
        nvme-rdma: align to generic ib_event logging helper
        ...
      36869cb9
    • Linus Torvalds's avatar
      Merge tag 'drm-for-v4.10' of git://people.freedesktop.org/~airlied/linux · 9439b371
      Linus Torvalds authored
      Pull drm updates from Dave Airlie:
       "This is the main pull request for drm for 4.10 kernel.
      
        New drivers:
         - ZTE VOU display driver (zxdrm)
         - Amlogic Meson Graphic Controller GXBB/GXL/GXM SoCs (meson)
         - MXSFB support (mxsfb)
      
        Core:
         - Format handling has been reworked
         - Better atomic state debugging
         - drm_mm leak debugging
         - Atomic explicit fencing support
         - fbdev helper ops
         - Documentation updates
         - MST fbcon fixes
      
        Bridge:
         - Silicon Image SiI8620 driver
      
        Panel:
         - Add support for new simple panels
      
        i915:
         - GVT Device model
         - Better HDMI2.0 support on skylake
         - More watermark fixes
         - GPU idling rework for suspend/resume
         - DP Audio workarounds
         - Scheduler prep-work
         - Opregion CADL handling
         - GPU scheduler and priority boosting
      
        amdgfx/radeon:
         - Support for virtual devices
         - New VM manager for non-contig VRAM buffers
         - UVD powergating
         - SI register header cleanup
         - Cursor fixes
         - Powermanagement fixes
      
        nouveau:
         - Powermangement reworks for better voltage/clock changes
         - Atomic modesetting support
         - Displayport Multistream (MST) support.
         - GP102/104 hang and cursor fixes
         - GP106 support
      
        hisilicon:
         - hibmc support (BMC chip for aarch64 servers)
      
        armada:
         - add tracing support for overlay change
         - refactor plane support
         - de-midlayer the driver
      
        omapdrm:
         - Timing code cleanups
      
        rcar-du:
         - R8A7792/R8A7796 support
         - Misc fixes.
      
        sunxi:
         - A31 SoC display engine support
      
        imx-drm:
         - YUV format support
         - Cleanup plane atomic update
      
        mali-dp:
         - Misc fixes
      
        dw-hdmi:
         - Add support for HDMI i2c master controller
      
        tegra:
         - IOMMU support fixes
         - Error handling fixes
      
        tda998x:
         - Fix connector registration
         - Improved robustness
         - Fix infoframe/audio compliance
      
        virtio:
         - fix busid issues
         - allocate more vbufs
      
        qxl:
         - misc fixes and cleanups.
      
        vc4:
         - Fragment shader threading
         - ETC1 support
         - VEC (tv-out) support
      
        msm:
         - A5XX GPU support
         - Lots of atomic changes
      
        tilcdc:
         - Misc fixes and cleanups.
      
        etnaviv:
         - Fix dma-buf export path
         - DRAW_INSTANCED support
         - fix driver on i.MX6SX
      
        exynos:
         - HDMI refactoring
      
        fsl-dcu:
         - fbdev changes"
      
      * tag 'drm-for-v4.10' of git://people.freedesktop.org/~airlied/linux: (1343 commits)
        drm/nouveau/kms/nv50: fix atomic regression on original G80
        drm/nouveau/bl: Do not register interface if Apple GMUX detected
        drm/nouveau/bl: Assign different names to interfaces
        drm/nouveau/bios/dp: fix handling of LevelEntryTableIndex on DP table 4.2
        drm/nouveau/ltc: protect clearing of comptags with mutex
        drm/nouveau/gr/gf100-: handle GPC/TPC/MPC trap
        drm/nouveau/core: recognise GP106 chipset
        drm/nouveau/ttm: wait for bo fence to signal before unmapping vmas
        drm/nouveau/gr/gf100-: FECS intr handling is not relevant on proprietary ucode
        drm/nouveau/gr/gf100-: properly ack all FECS error interrupts
        drm/nouveau/fifo/gf100-: recover from host mmu faults
        drm: Add fake controlD* symlinks for backwards compat
        drm/vc4: Don't use drm_put_dev
        drm/vc4: Document VEC DT binding
        drm/vc4: Add support for the VEC (Video Encoder) IP
        drm: Add TV connector states to drm_connector_state
        drm: Turn DRM_MODE_SUBCONNECTOR_xx definitions into an enum
        drm/vc4: Fix ->clock_select setting for the VEC encoder
        drm/amdgpu/dce6: Set MASTER_UPDATE_MODE to 0 in resume_mc_access as well
        drm/amdgpu: use pin rather than pin_restricted in a few cases
        ...
      9439b371
    • Linus Torvalds's avatar
      Merge tag 'fbdev-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux · 7079efc9
      Linus Torvalds authored
      Pull fbdev update from Tomi Valkeinen:
       "No one has stepped up to take the job, so I've marked fbdev as orphan"
      
      * tag 'fbdev-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux:
        fbdev: remove current maintainer
      7079efc9
    • Linus Torvalds's avatar
      Merge tag 'vfio-v4.10-rc1' of git://github.com/awilliam/linux-vfio · edc5f445
      Linus Torvalds authored
      Pull VFIO updates from Alex Williamson:
      
       - VFIO updates for v4.10 primarily include a new Mediated Device
         interface, which essentially allows software defined devices to be
         exposed to users through VFIO. The host vendor driver providing this
         virtual device polices, or mediates user access to the device.
      
         These devices often incorporate portions of real devices, for
         instance the primary initial users of this interface expose vGPUs
         which allow the user to map mediated devices, or mdevs, to a portion
         of a physical GPU. QEMU composes these mdevs into PCI representations
         using the existing VFIO user API. This enables both Intel KVM-GT
         support, which is also expected to arrive into Linux mainline during
         the v4.10 merge window, as well as NVIDIA vGPU, and also Channel I/O
         devices (aka CCW devices) for s390 virtualization support. (Kirti
         Wankhede, Neo Jia)
      
       - Drop unnecessary uses of pcibios_err_to_errno() (Cao Jin)
      
       - Fixes to VFIO capability chain handling (Eric Auger)
      
       - Error handling fixes for fallout from mdev (Christophe JAILLET)
      
       - Notifiers to expose struct kvm to mdev vendor drivers (Jike Song)
      
       - type1 IOMMU model search fixes (Kirti Wankhede, Neo Jia)
      
      * tag 'vfio-v4.10-rc1' of git://github.com/awilliam/linux-vfio: (30 commits)
        vfio iommu type1: Fix size argument to vfio_find_dma() in pin_pages/unpin_pages
        vfio iommu type1: Fix size argument to vfio_find_dma() during DMA UNMAP.
        vfio iommu type1: WARN_ON if notifier block is not unregistered
        kvm: set/clear kvm to/from vfio_group when group add/delete
        vfio: support notifier chain in vfio_group
        vfio: vfio_register_notifier: classify iommu notifier
        vfio: Fix handling of error returned by 'vfio_group_get_from_dev()'
        vfio: fix vfio_info_cap_add/shift
        vfio/pci: Drop unnecessary pcibios_err_to_errno()
        MAINTAINERS: Add entry VFIO based Mediated device drivers
        docs: Sample driver to demonstrate how to use Mediated device framework.
        docs: Sysfs ABI for mediated device framework
        docs: Add Documentation for Mediated devices
        vfio: Define device_api strings
        vfio_platform: Updated to use vfio_set_irqs_validate_and_prepare()
        vfio_pci: Updated to use vfio_set_irqs_validate_and_prepare()
        vfio: Introduce vfio_set_irqs_validate_and_prepare()
        vfio_pci: Update vfio_pci to use vfio_info_add_capability()
        vfio: Introduce common function to add capabilities
        vfio iommu: Add blocking notifier to notify DMA_UNMAP
        ...
      edc5f445
    • Linus Torvalds's avatar
      Merge tag 'gcc-plugins-v4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 22d8262c
      Linus Torvalds authored
      Pull gcc plugins updates from Kees Cook:
       "Minor changes to the gcc plugins:
      
         - add the gcc plugins Makefile to MAINTAINERS to route things
           correctly
      
         - hide cyc_complexity behind !CONFIG_TEST for the future unhiding of
           plugins generally"
      
      * tag 'gcc-plugins-v4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        gcc-plugins: Adjust Kconfig to avoid cyc_complexity
        MAINTAINERS: add GCC plugins Makefile
      22d8262c
    • Linus Torvalds's avatar
      Merge tag 'pstore-v4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 52281b38
      Linus Torvalds authored
      Pull pstore updates from Kees Cook:
       "Improvements and fixes to pstore subsystem:
      
         - add additional checks for bad platform data
      
         - remove bounce buffer in console writer
      
         - protect read/unlink race with a mutex
      
         - correctly give up during dump locking failures
      
         - increase ftrace bandwidth by splitting ftrace buffers per CPU"
      
      * tag 'pstore-v4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        ramoops: add pdata NULL check to ramoops_probe
        pstore: Convert console write to use ->write_buf
        pstore: Protect unlink with read_mutex
        pstore: Use global ftrace filters for function trace filtering
        ftrace: Provide API to use global filtering for ftrace ops
        pstore: Clarify context field przs as dprzs
        pstore: improve error report for failed setup
        pstore: Merge per-CPU ftrace records into one
        pstore: Add ftrace timestamp counter
        ramoops: Split ftrace buffer space into per-CPU zones
        pstore: Make ramoops_init_przs generic for other prz arrays
        pstore: Allow prz to control need for locking
        pstore: Warn on PSTORE_TYPE_PMSG using deprecated function
        pstore: Make spinlock per zone instead of global
        pstore: Actually give up during locking failure
      52281b38
    • Linus Torvalds's avatar
      Merge tag 'edac_for_4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp · daf34710
      Linus Torvalds authored
      Pull EDAC updates from Borislav Petkov:
      
       - add KNM support to sb_edac (Piotr Luc)
      
       - add AMD Zen support to amd64_edac (Yazen Ghannam)
      
       - misc small cleanups, improvements and fixes (Colin Ian King, Dave
         Hansen, Pan Bian, Thor Thayer, Wei Yongjun, Yanjiang Jin, yours
         truly)
      
      * tag 'edac_for_4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp: (26 commits)
        EDAC, amd64: Fix improper return value
        EDAC, amd64: Improve amd64-specific printing macros
        EDAC, amd64: Autoload amd64_edac_mod on Fam17h systems
        EDAC, amd64: Define and register UMC error decode function
        EDAC, amd64: Determine EDAC capabilities on Fam17h systems
        EDAC, amd64: Determine EDAC MC capabilities on Fam17h
        EDAC, amd64: Add Fam17h debug output
        EDAC, amd64: Add Fam17h scrubber support
        EDAC, mce_amd: Don't report poison bit on Fam15h, bank 4
        EDAC, amd64: Read MC registers on AMD Fam17h
        EDAC, amd64: Reserve correct PCI devices on AMD Fam17h
        EDAC, amd64: Add AMD Fam17h family type and ops
        EDAC, amd64: Extend ecc_enabled() to Fam17h
        EDAC, amd64: Don't force-enable ECC checking on newer systems
        EDAC, amd64: Add Deferred Error type
        EDAC, amd64: Rename __log_bus_error() to be more specific
        EDAC, amd64: Change target of pci_name from F2 to F3
        EDAC, mce_amd: Rename nb_bus_decoder to dram_ecc_decoder
        EDAC: Add LRDDR4 DRAM type
        EDAC, mpc85xx: Implement remove method for the platform driver
        ...
      daf34710
    • Linus Torvalds's avatar
      Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux · 9346116d
      Linus Torvalds authored
      Pull thermal management updates from Zhang Rui:
      
       - Thermal core code reorganization and cleanup. Two new files are
         created for thermal sysfs I/F code and thermal helper functions
         (Eduardo Valentin).
      
       - Sanitize hotplug and locking for x86_pkg_temp driver (Thomas
         Gleixner)
      
       - Update MAINTAINER file for pwm-fan driver and Samsung thermal driver
         (Lukasz Majewski)
      
       - Fix module auto-load for max77620, tango and db8500 thermal driver
         (Javier Martinez Canillas)
      
       - Fix a bug that thermal hwmon sysfs I/F returns wrong critical trip
         point temperature value (Krzysztof Kozlowski)
      
       - Add Skylake PCH 100 series support for intel_pch_thermal driver
         (OGAWA Hirofumi)
      
       - Small fixes and cleanups for platform thermal drivers (Julia Lawall,
         Luis Henriques, Leo Yan, Stephen Boyd, Shawn Lin, Javi Merino and
         Lukasz Luba)
      
      * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux: (76 commits)
        MAINTAINERS: Samsung: Update maintainer for PWM FAN and SAMSUNG THERMAL
        thermal/x86 pkg temp: Convert to hotplug state machine
        thermal/x86_pkg_temp: Sanitize package management
        thermal/x86_pkg_temp: Move work into package struct
        thermal/x86_pkg_temp: Move work scheduled flag into package struct
        thermal/x86_pkg_temp: Sanitize locking
        thermal/x86_pkg_temp: Cleanup code some more
        thermal/x86_pkg_temp: Cleanup namespace
        thermal/x86_pkg_temp: Get rid of ref counting
        thermal/x86_pkg_temp: Sanitize callback (de)initialization
        thermal/x86_pkg_temp: Replace open coded cpu search
        thermal/x86_pkg_temp: Remove redundant package search
        thermal/x86_pkg_temp: Cleanup thermal interrupt handling
        thermal: hwmon: Properly report critical temperature in sysfs
        devfreq_cooling: pass a pointer to devfreq in the power model callbacks
        devfreq_cooling: make the structs devfreq_cooling_xxx visible for all
        dt-bindings: rockchip-thermal: fix the misleading description
        thermal: rockchip: improve the warning log
        thermal: db8500: Fix module autoload
        thermal: tango: Fix module autoload
        ...
      9346116d
    • Linus Torvalds's avatar
      Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux · b8d2798f
      Linus Torvalds authored
      Pull clk updates from Stephen Boyd:
       "This is a fairly quiet release. We don't have any patches to the core
        framework. The only patch that can even be considered "core" adds
        another clk_get() variant. The rest of the changes are in drivers for
        various SoCs, and we have a few bits for ARM shmobile architecture
        code (dts and mach) due to the dependency we're breaking between
        shmobile architecture code and its clk driver. Those shmobile bits
        have also been pulled into arm-soc tree. Here's the summary:
      
        Core:
      
         - Support for devm_get_clk_from_child() used with DT bindings that
           have subnodes with the 'clocks' property
      
        New Drivers:
      
         - Allwinner A64 (sun50i)
         - i.MX imx6ull
         - Socionext's UniPhier SoC CPUs
         - Mediatek MT2701 SoCs
         - Rockchip rk1108 SoCs
         - Qualcomm MSM8994/MSM8992 SoCS
         - Qualcomm RPM Clocks
         - Hisilicon Hi3516CV300 and Hi3798CV200 CRG
         - Oxford Semiconductor OX820 and OX810SE SoCs
         - Renesas RZ/G1M and RZ/GIE SoCs
         - Renesas R-Car RST driver for mode pin states
      
        Updates:
      
         - Four Allwinner SoCs are migrated to the new style clk driver
         - Rockchip rk3399,rk3066 PLL optimizations
         - i.MX LVDS display glitch fixes and AV PLL precision improvements
         - Qualcomm MSM8996 GPU GDSCs, hw controlled GDSCs, and Alpha PLL
           support
         - Explicit demodularization of always builtin drivers
         - Freescale Qoriq ls1012a and ls1046a support
         - Exynos 5433 parent typo fix and critical clock tagging
         - Renesas r8a7743/r8a7745 CPG
         - Renesas R-Car M3-W CSI2/VIN/SYS-DMAC/(H)SCIF/I2C/DRIF/gfx support
         - stm32f4* LSI, LSE, RTC, and QSPI clocks
         - pxa27x and pxa25x cpufreq as clks
         - TI omap36xx sprz319 advisory 2.1 workaround
         - Broadcom bcm2835 rate change propogation to PLLH_AUX from VEC"
      
      * tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (150 commits)
        clk: bcm: Fix 'maybe-uninitialized' warning in bcm2835_clock_choose_div_and_prate()
        clk: add devm_get_clk_from_child() API
        clk: st: clk-flexgen: Unmap region obtained by of_iomap
        clk: keystone: pll: Unmap region obtained by of_iomap
        clk:mmp:clk-of-mmp2: Free memory and Unmap region obtained by kzalloc and of_iomap
        clk:mmp:clk-of-pxa910: Free memory and Unmap region obtained by kzmalloc and of_iomap
        clk: mmp: clk-of-pxa1928: Free memory obtained by kzalloc
        clk: cdce925: Fix limit check
        clk: bcm: Make COMMON_CLK_IPROC into a library
        clk: qoriq: added ls1012a clock configuration
        clk: ti: dra7: fix "failed to lookup clock node gmac_gmii_ref_clk_div" boot message
        clk: bcm: Allow rate change propagation to PLLH_AUX on VEC clock
        clk: bcm: Support rate change propagation on bcm2835 clocks
        clk: bcm2835: Avoid overwriting the div info when disabling a pll_div clk
        clk: ti: omap36xx: Work around sprz319 advisory 2.1
        clk: clk-wm831x: fix a logic error
        clk: uniphier: add cpufreq data for LD11, LD20 SoCs
        clk: uniphier: add CPU-gear change (cpufreq) support
        clk: qcom: Put venus core0/1 gdscs to hw control mode
        clk: qcom: gdsc: Add support for gdscs with HW control
        ...
      b8d2798f
    • Linus Torvalds's avatar
      Merge tag 'rpmsg-v4.10' of git://github.com/andersson/remoteproc · 96128810
      Linus Torvalds authored
      Pull rpmsg updates from Bjorn Andersson:
       "Argument validation in public functions, function stubs for
        COMPILE_TEST-ing clients, preparation for exposing rpmsg endponts
        to user space and minor Qualcomm SMD fixes"
      
      * tag 'rpmsg-v4.10' of git://github.com/andersson/remoteproc:
        dt-binding: soc: qcom: smd: Add label property
        rpmsg: qcom_smd: Correct return value for O_NONBLOCK
        rpmsg: Provide function stubs for API
        rpmsg: Handle invalid parameters in public API
        rpmsg: Support drivers without primary endpoint
        rpmsg: Introduce a driver override mechanism
        rpmsg: smd: Reduce restrictions when finding channel
      96128810
    • Linus Torvalds's avatar
      Merge tag 'rproc-v4.10' of git://github.com/andersson/remoteproc · edc57ea9
      Linus Torvalds authored
      Pull remoteproc updates from Bjorn Andersson:
      
       - introduce remoteproc "subdevice" support, which allows remoteproc
         driver to associate devices to the "running" state of the remoteproc,
         allowing devices to be probed and removed as the remote processor is
         booted, shut down or recovering from a crash.
      
       - handling of virtio device resources was improved, vring memory is now
         allocated as part of other memory allocation. This ensures that all
         vrings for all virtio devices are allocated before we boot the remote
         processor.
      
       - the debugfs mechanism for starting and stopping remoteproc instances
         was replaced with a sysfs interface, also providing a mechanism for
         specifying firmware to use by the instance. This allows user space to
         load and boot use case specific firmware on remote processors.
      
       - new drivers for the ST Slimcore and Qualcomm Hexagon DSP as well as
         removal of the unused StE modem loader.
      
       - finally support for crash recovery in the Qualcomm Wirelss subsystem
         (used for WiFi/BT/FM on a number of platforms) and a number of bug
         fixes and cleanups
      
      * tag 'rproc-v4.10' of git://github.com/andersson/remoteproc: (49 commits)
        remoteproc: qcom_adsp_pil: select qcom_scm
        remoteproc: Drop wait in __rproc_boot()
        remoteproc/ste: Delete unused driver
        remoteproc: Remove "experimental" warning
        remoteproc: qcom_adsp_pil: select qcom_scm
        dt-binding: soc: qcom: smd: Add label property
        remoteproc: qcom: mdt_loader: add include for sizes
        remoteproc: Update last rproc_put users to rproc_free
        remoteproc: qcom: adsp: Add missing MODULE_DEVICE_TABLE
        remoteproc: wcnss-pil: add QCOM_SMD dependency
        dmaengine: st_fdma: Revert: "Revert: Update st_fdma to 'depends on REMOTEPROC'"
        remoteproc: Add support for xo clock
        remoteproc: adsp-pil: fix recursive dependency
        remoteproc: Introduce Qualcomm ADSP PIL
        dt-binding: remoteproc: Introduce ADSP loader binding
        remoteproc: qcom_wcnss: Fix circular module dependency
        remoteproc: Merge table_ptr and cached_table pointers
        remoteproc: Remove custom vdev handler list
        remoteproc: Update max_notifyid as we allocate vrings
        remoteproc: Decouple vdev resources and devices
        ...
      edc57ea9
    • Linus Torvalds's avatar
      Merge tag 'mmc-v4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc · 5233c331
      Linus Torvalds authored
      Pull MMC updates from Ulf Hansson:
       "It's been an busy period for mmc. Quite some changes in the mmc core,
        two new mmc host drivers, some existing drivers being extended to
        support new IP versions and lots of other updates.
      
        MMC core:
         - Delete eMMC packed command support
         - Introduce mmc_abort_tuning() to enable eMMC tuning to fail
           gracefully
         - Introduce mmc_can_retune() to see if a host can be retuned
         - Re-work and improve the sequence when sending a CMD6 for mmc
         - Enable CDM13 polling when switching to HS and HS DDR mode for mmc
         - Relax checking for CMD6 errors after switch to HS200
         - Re-factoring the code dealing with the mmc block queue
         - Recognize whether the eMMC card supports CMDQ
         - Fix 4K native sector check
         - Don't power off the card when starting the host
         - Increase MMC_IOC_MAX_BYTES to support bigger firmware binaries
         - Improve error handling and drop meaningless BUG_ONs()
         - Lots of clean-ups and changes to improve the quality of the code
      
        MMC host:
         - sdhci: Fix tuning sequence and clean-up the related code
         - sdhci: Add support to via DT override broken SDHCI cap register
           bits
         - sdhci-cadence: Add new driver for Cadence SD4HC SDHCI variant
         - sdhci-msm: Update clock management
         - sdhci-msm: Add support for eMMC HS400 mode
         - sdhci-msm: Deploy runtime/system PM support
         - sdhci-iproc: Extend driver support to newer IP versions
         - sdhci-pci: Add support for Intel GLK
         - sdhci-pci: Add support for Intel NI byt sdio
         - sdhci-acpi: Add support for 80860F14 UID 2 SDIO bus
         - sdhci: Lots of various small improvements and clean-ups
         - tmio: Add support for tuning
         - sh_mobile_sdhi: Add support for tuning
         - sh_mobile_sdhi: Extend driver to support SDHI IP on R7S72100 SoC
         - sh_mobile_sdhi: remove support for sh7372
         - davinci: Use mmc_of_parse() to enable generic mmc DT bindings
         - meson: Add new driver to support GX platforms
         - dw_mmc: Deploy generic runtime/system PM support
         - dw_mmc: Lots of various small improvements
      
        As a part of the mmc changes this time, I have also pulled in an
        immutable branch/tag (soc-device-match-tag1) hosted by Geert
        Uytterhoeven, to share the implementation of the new
        soc_device_match() interface. This is needed by these mmc related
        changes:
      
         - mmc: sdhci-of-esdhc: Get correct IP version for T4240-R1.0-R2.0
         - soc: fsl: add GUTS driver for QorIQ platforms"
      
      * tag 'mmc-v4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc: (136 commits)
        mmc: sdhci-cadence: add Cadence SD4HC support
        mmc: sdhci: export sdhci_execute_tuning()
        mmc: sdhci: Tidy tuning loop
        mmc: sdhci: Simplify tuning block size logic
        mmc: sdhci: Factor out tuning helper functions
        mmc: sdhci: Use mmc_abort_tuning()
        mmc: mmc: Introduce mmc_abort_tuning()
        mmc: sdhci: Always allow tuning to fall back to fixed sampling
        mmc: sdhci: Fix tuning reset after exhausting the maximum number of loops
        mmc: sdhci: Fix recovery from tuning timeout
        Revert "mmc: sdhci: Reset cmd and data circuits after tuning failure"
        mmc: mmc: Relax checking for switch errors after HS200 switch
        mmc: sdhci-acpi: support 80860F14 UID 2 SDIO bus
        mmc: sdhci-of-at91: remove bogus MMC_SDHCI_IO_ACCESSORS select
        mmc: sdhci-pci: Use ACPI to get max frequency for Intel NI byt sdio
        mmc: sdhci-pci: Add PCI ID for Intel NI byt sdio
        mmc: sdhci-s3c: add spin_unlock_irq() before calling clk_round_rate
        mmc: dw_mmc: display the clock message only one time when card is polling
        mmc: dw_mmc: add the debug message for polling and non-removable
        mmc: dw_mmc: check the "present" variable before checking flags
        ...
      5233c331
    • Linus Torvalds's avatar
      Merge tag 'regulator-v4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator · 58f253d2
      Linus Torvalds authored
      Pull regulator updates from Mark Brown:
       "A quiet release for the regulator API, conference season must've been
        slowing everyone down:
      
         - a new interface allowing drivers to provide an interface for
           reading a more detailed description of error conditions which
           allows devices using these regulators to build
      
         - ACPI support for the fixed voltage regulator.
      
         - cleanups for the TI TWL drivers to reduce code duplication"
      
      * tag 'regulator-v4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (24 commits)
        regulator: tps65086: Fix 25mV ranges for BUCK regulators 1, 2, and 6
        regulator: Fix regulator_get_error_flags() signature mismatch
        regulator: core: add newline in debug message
        regulator: tps65086: Fix 25mV ranges for BUCK regulators
        regulator: core: Correct type of mode in regulator_mode_constrain
        regulator: max77620: add documentation for MPOK property
        regulator: max77620: add support to configure MPOK
        regulator: twl6030: Remove unused fields from struct twlreg_info
        regulator: twl: Remove unused fields from struct twlreg_info
        regulator: twl: split twl6030 logic into its own file
        regulator: twl: kill unused functions
        regulator: twl: make driver DT only
        regulator: twl-regulator: rework fixed regulator definition
        regulator: max77620: remove unused variable
        regulator: pwm: Add missing quotes to DT example
        regulator: stw481x-vmmc: fix ages old enable error
        regulator: gpio: properly check return value of of_get_named_gpio
        regulator: lp873x: Add support for populating input supply
        regulator: axp20x: Fix axp809 ldo_io registration error on cold boot
        regulators: helpers: Fix handling of bypass_val_on in get_bypass_regmap
        ...
      58f253d2
    • Linus Torvalds's avatar
      Merge tag 'regmap-v4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · 96955c96
      Linus Torvalds authored
      Pull regmap fixlet from Mark Brown:
       "The only change for regmap this merge window is a single fix for an
        unused variable"
      
      * tag 'regmap-v4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
        regmap: cache: Remove unused 'blksize' variable
      96955c96
    • Linus Torvalds's avatar
      Merge tag 'leds_for_4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds · 1f0a53f6
      Linus Torvalds authored
      Pull LED updates from Jacek Anaszewski:
      
       - userspace LED class driver - it can be useful for testing triggers
         and can also be used to implement virtual LEDs
      
       - LED class driver for NIC78bx device
      
       - LED core fixes for preventing potential races while setting
         brightness when software blinking is enabled
      
       - improvements in LED documentation to mention semantics on changing
         brightness while trigger is active
      
      * tag 'leds_for_4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds:
        leds: pca955x: Add ACPI support
        leds: netxbig: fix module autoload for OF registration
        leds: pca963x: Add ACPI support
        leds: leds-cobalt-raq: use builtin_platform_driver
        led: core: Fix blink_brightness setting race
        led: core: Use atomic bit-field for the blink-flags
        leds: Add user LED driver for NIC78bx device
        leds: verify vendor and change license in mlxcpld driver
        leds: pca963x: enable low-power state
        leds: pca9532: Use default trigger value from platform data
        leds: pca963x: workaround group blink scaling issue
        cleanup LED documentation and make it match reality
        leds: lp3952: Export I2C module alias information for module autoload
        leds: mc13783: Fix MC13892 keypad led access
        ledtrig-cpu.c: fix english
        leds/leds-lp5523.txt: make documentation match reality
        tools/leds: Add uledmon program for monitoring userspace LEDs
        leds: Use macro for max device node name size
        leds: Introduce userspace LED class driver
        mfd: qcom-pm8xxx: Clean up PM8XXX namespace
      1f0a53f6
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-v4.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · 20d5ba49
      Linus Torvalds authored
      Pull pinctrl updates from Linus Walleij:
       "Bulk pin control changes for the v4.10 kernel cycle:
      
        No core changes this time. Mainly gradual improvement and
        feature growth in the drivers.
      
        New drivers:
      
         - New driver for TI DA850/OMAP-L138/AM18XX pinconf
      
         - The SX150x was moved over from the GPIO subsystem and reimagined as
           a pin control driver with GPIO support in a joint effort by three
           independent users of this hardware. The result was amazingly good!
      
         - New subdriver for the Oxnas OX820
      
        Improvements:
      
         - The sunxi driver now supports the generic pin control bindings
           rather than the sunxi-specific. Add debouncing support to the
           driver.
      
         - Simplifications in pinctrl-single adding a generic parser.
      
         - Two downstream fixes and move the Raspberry Pi BCM2835 over to use
           the generic GPIOLIB_IRQCHIP"
      
      * tag 'pinctrl-v4.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (92 commits)
        pinctrl: sx150x: use new nested IRQ infrastructure
        pinctrl: sx150x: handle missing 'advanced' reg in sx1504 and sx1505
        pinctrl: sx150x: rename 'reg_advance' to 'reg_advanced'
        pinctrl: sx150x: access the correct bits in the 4-bit regs of sx150[147]
        pinctrl: mt8173: set GPIO16 to usb iddig mode
        pinctrl: bcm2835: switch to GPIOLIB_IRQCHIP
        pinctrl: New driver for TI DA850/OMAP-L138/AM18XX pinconf
        devicetree: bindings: pinctrl: Add binding for ti,da850-pupd
        Documentation: pinctrl: palmas: Add ti,palmas-powerhold-override property definition
        pinctrl: intel: set default handler to be handle_bad_irq()
        pinctrl: sx150x: add support for sx1501, sx1504, sx1505 and sx1507
        pinctrl: sx150x: sort chips by part number
        pinctrl: sx150x: use correct registers for reg_sense (sx1502 and sx1508)
        pinctrl: imx: fix imx_pinctrl_desc initialization
        pinctrl: sx150x: support setting multiple pins at once
        pinctrl: sx150x: various spelling fixes and some white-space cleanup
        pinctrl: mediatek: use builtin_platform_driver
        pinctrl: stm32: use builtin_platform_driver
        pinctrl: sunxi: Testing the wrong variable
        pinctrl: nomadik: split up and comments MC0 pins
        ...
      20d5ba49
    • Linus Torvalds's avatar
      Merge tag 'gpio-v4.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio · 061ad503
      Linus Torvalds authored
      Pull GPIO updates from Luinus Walleij:
       "Bulk GPIO changes for the v4.10 kernel cycle:
      
        Core changes:
      
         - Simplify threaded interrupt handling: instead of passing numbed
           parameters to gpiochip_irqchip_add_chained() we create a new call:
           gpiochip_irqchip_add_nested() so the two types are clearly
           semantically different. Also make sure that all nested chips call
           gpiochip_set_nested_irqchip() which is necessary for IRQ resend to
           work properly if it happens.
      
         - Return error on seek operations for the chardev.
      
         - Clamp values set as part of gpio[d]_direction_output() so that
           anything != 0 will be send down to the driver as "1" not the value
           passed in.
      
         - ACPI can now support naming of GPIO lines, hogs and holes in the
           GPIO lists.
      
        New drivers:
      
         - The SX150x driver was deemed unfit for the GPIO subsystem and was
           moved over to a combined GPIO+pinctrl driver in the pinctrl
           subsystem.
      
        New features:
      
         - Various cleanups to various drivers"
      
      * tag 'gpio-v4.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (49 commits)
        gpio: merrifield: Implement gpio_get_direction callback
        gpio: merrifield: Add support for hardware debouncer
        gpio: chardev: Return error for seek operations
        gpio: arizona: Tidy up probe error path
        gpio: arizona: Remove pointless set of platform drvdata
        gpio: pl061: delete platform data handling
        gpio: pl061: move platform data into driver
        gpio: pl061: rename variable from chip to pl061
        gpio: pl061: rename state container struct
        gpio: pl061: use local state for parent IRQ storage
        gpio: set explicit nesting on drivers
        gpio: simplify adding threaded interrupts
        gpio: vf610: use builtin_platform_driver
        gpio: axp209: use correct register for GPIO input status
        gpio: stmpe: fix interrupt handling bug
        gpio: em: depnd on ARCH_SHMOBILE
        gpio: zx: depend on ARCH_ZX
        gpio: x86: update config dependencies for x86 specific hardware
        gpio: mb86s7x: use builtin_platform_driver
        gpio: etraxfs: use builtin_platform_driver
        ...
      061ad503