Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivi...
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 4 Jun 2014 15:50:34 +0000 (08:50 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 4 Jun 2014 15:50:34 +0000 (08:50 -0700)
Pull trivial tree changes from Jiri Kosina:
 "Usual pile of patches from trivial tree that make the world go round"

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (23 commits)
  staging: go7007: remove reference to CONFIG_KMOD
  aic7xxx: Remove obsolete preprocessor define
  of: dma: doc fixes
  doc: fix incorrect formula to calculate CommitLimit value
  doc: Note need of bc in the kernel build from 3.10 onwards
  mm: Fix printk typo in dmapool.c
  modpost: Fix comment typo "Modules.symvers"
  Kconfig.debug: Grammar s/addition/additional/
  wimax: Spelling s/than/that/, wording s/destinatary/recipient/
  aic7xxx: Spelling s/termnation/termination/
  arm64: mm: Remove superfluous "the" in comment
  of: Spelling s/anonymouns/anonymous/
  dma: imx-sdma: Spelling s/determnine/determine/
  ath10k: Improve grammar in comments
  ath6kl: Spelling s/determnine/determine/
  of: Improve grammar for of_alias_get_id() documentation
  drm/exynos: Spelling s/contro/control/
  radio-bcm2048.c: fix wrong overflow check
  doc: printk-formats: do not mention casts for u64/s64
  doc: spelling error changes
  ...

15 files changed:
1  2 
Documentation/devicetree/bindings/arm/omap/omap.txt
Documentation/devicetree/bindings/pinctrl/brcm,bcm11351-pinctrl.txt
Documentation/devicetree/bindings/spi/spi-bus.txt
Documentation/edac.txt
Documentation/filesystems/proc.txt
Documentation/gpio/consumer.txt
Documentation/hid/uhid.txt
Documentation/networking/can.txt
Documentation/virtual/kvm/api.txt
arch/arm64/include/asm/pgtable.h
drivers/net/wireless/ath/ath10k/wmi.h
drivers/of/base.c
drivers/pci/pci.c
include/linux/of_platform.h
lib/Kconfig.debug

index 189baba40cd64b83bce95140b53b7af82b1d2f65,aa71962352ffd84c74ad022a67f2b2c27402f434..d22b216f5d230f57812f98034580c603b4a6e30d
@@@ -80,10 -80,7 +80,10 @@@ SoCs
    compatible = "ti,omap5432", "ti,omap5"
  
  - DRA742
 -  compatible = "ti,dra7xx", "ti,dra7"
 +  compatible = "ti,dra742", "ti,dra74", "ti,dra7"
 +
 +- DRA722
 +  compatible = "ti,dra722", "ti,dra72", "ti,dra7"
  
  - AM4372
    compatible = "ti,am4372", "ti,am43"
@@@ -102,15 -99,6 +102,15 @@@ Boards
  - OMAP4 PandaBoard : Low cost community board
    compatible = "ti,omap4-panda", "ti,omap4430"
  
 +- OMAP4 DuoVero with Parlor : Commercial expansion board with daughter board
 +  compatible = "gumstix,omap4-duovero-parlor", "gumstix,omap4-duovero", "ti,omap4430", "ti,omap4";
 +
 +- OMAP4 VAR-STK-OM44 : Commercial dev kit with VAR-OM44CustomBoard and VAR-SOM-OM44 w/WLAN
 +  compatible = "variscite,var-stk-om44", "variscite,var-som-om44", "ti,omap4460", "ti,omap4";
 +
 +- OMAP4 VAR-DVK-OM44 : Commercial dev kit with VAR-OM44CustomBoard, VAR-SOM-OM44 w/WLAN and LCD touchscreen
 +  compatible = "variscite,var-dvk-om44", "variscite,var-som-om44", "ti,omap4460", "ti,omap4";
 +
  - OMAP3 EVM : Software Development Board for OMAP35x, AM/DM37x
    compatible = "ti,omap3-evm", "ti,omap3"
  
  - AM43x EPOS EVM
    compatible = "ti,am43x-epos-evm", "ti,am4372", "ti,am43"
  
 -- DRA7 EVM:  Software Development Board for DRA7XX
 -  compatible = "ti,dra7-evm", "ti,dra7"
 +- AM437x GP EVM
 +  compatible = "ti,am437x-gp-evm", "ti,am4372", "ti,am43"
 +
- - DRA742 EVM:  Software Developement Board for DRA742
++- DRA742 EVM:  Software Development Board for DRA742
 +  compatible = "ti,dra7-evm", "ti,dra742", "ti,dra74", "ti,dra7"
 +
 +- DRA722 EVM: Software Development Board for DRA722
 +  compatible = "ti,dra72-evm", "ti,dra722", "ti,dra72", "ti,dra7"
index 67a5db95f189b5b1b0078e26a532670f36c9c9db,54a6e821d5255a0dbd43295ba24449696be0f450..4eaae32821aead3fe29314c10eedea734d5ea736
@@@ -73,9 -73,9 +73,9 @@@ Optional Properties (for standard pins)
                                Otherwise:
                                        0: fast slew rate
                                        1: normal slew rate
- - input-enable:                       No arguements. Enable input (does not affect
+ - input-enable:                       No arguments. Enable input (does not affect
                                output.)
- - input-disable:              No arguements. Disable input (does not affect
+ - input-disable:              No arguments. Disable input (does not affect
                                output.)
  - drive-strength:             Integer. Drive strength in mA.  Valid values are
                                2, 4, 6, 8, 10, 12, 14, 16 mA.
@@@ -99,9 -99,9 +99,9 @@@ Optional Properties (for I2C pins)
                                Otherwise:
                                        0: fast slew rate
                                        1: normal slew rate
- - input-enable:                       No arguements. Enable input (does not affect
+ - input-enable:                       No arguments. Enable input (does not affect
                                output.)
- - input-disable:              No arguements. Disable input (does not affect
+ - input-disable:              No arguments. Disable input (does not affect
                                output.)
  
  Optional Properties (for HDMI pins):
  - slew-rate:                  Integer. Controls slew rate.
                                        0: Standard(100kbps)& Fast(400kbps) mode
                                        1: Highspeed (3.4Mbps) mode
- - input-enable:                       No arguements. Enable input (does not affect
+ - input-enable:                       No arguments. Enable input (does not affect
                                output.)
- - input-disable:              No arguements. Disable input (does not affect
+ - input-disable:              No arguments. Disable input (does not affect
                                output.)
  
  Example:
  // pin controller node
  pinctrl@35004800 {
 -      compatible = "brcmbcm11351-pinctrl";
 +      compatible = "brcm,bcm11351-pinctrl";
        reg = <0x35004800 0x430>;
  
        // pin configuration node
index 22d57404fdc33cf0a4c5798240fa3f5a32f0dde4,cc128ae6134a379bd83c78f9d3956fa033eff090..bbaa857dd68fd938612b8c137badc79faf2c9479
@@@ -55,15 -55,13 +55,15 @@@ contain the following properties
                chip select active high
  - spi-3wire       - (optional) Empty property indicating device requires
                    3-wire mode.
 +- spi-lsb-first   - (optional) Empty property indicating device requires
 +              LSB first mode.
  - spi-tx-bus-width - (optional) The bus width(number of data wires) that
                        used for MOSI. Defaults to 1 if not present.
  - spi-rx-bus-width - (optional) The bus width(number of data wires) that
                        used for MISO. Defaults to 1 if not present.
  
  Some SPI controllers and devices support Dual and Quad SPI transfer mode.
- It allows data in SPI system transfered in 2 wires(DUAL) or 4 wires(QUAD).
+ It allows data in the SPI system to be transferred in 2 wires(DUAL) or 4 wires(QUAD).
  Now the value that spi-tx-bus-width and spi-rx-bus-width can receive is
  only 1(SINGLE), 2(DUAL) and 4(QUAD).
  Dual/Quad mode is not allowed when 3-wire mode is used.
diff --combined Documentation/edac.txt
index cb4c2cefd45a452b3dabb2bb55587136643c9efb,8bdc07c40b941a2a293ce774bec8380f3bd92305..73fff13e848f42bc127abf02d87b7029a2afd883
@@@ -6,7 -6,7 +6,7 @@@ Written by Doug Thompson <dougthompson@
  7 Dec 2005
  17 Jul 2007   Updated
  
 -(c) Mauro Carvalho Chehab <mchehab@redhat.com>
 +(c) Mauro Carvalho Chehab
  05 Aug 2009   Nehalem interface
  
  EDAC is maintained and written by:
@@@ -550,7 -550,7 +550,7 @@@ installs itself as
        /sys/devices/systm/edac/test-instance
  
  in this directory are various controls, a symlink and one or more 'instance'
- directorys.
+ directories.
  
  The standard default controls are:
  
index 264bcde0c51c55629066e9809af3bab99fe05c8c,324328d1846421874a2e1cc071f6ec7499c0ee82..ddc531a74d04970810485e2cd5c2d4ba1cb74435
@@@ -234,7 -234,7 +234,7 @@@ Table 1-2: Contents of the status file
   ShdPnd                      bitmap of shared pending signals for the process
   SigBlk                      bitmap of blocked signals
   SigIgn                      bitmap of ignored signals
-  SigCgt                      bitmap of catched signals
+  SigCgt                      bitmap of caught signals
   CapInh                      bitmap of inheritable capabilities
   CapPrm                      bitmap of permitted capabilities
   CapEff                      bitmap of effective capabilities
@@@ -300,7 -300,7 +300,7 @@@ Table 1-4: Contents of the stat files (
    pending       bitmap of pending signals
    blocked       bitmap of blocked signals
    sigign        bitmap of ignored signals
-   sigcatch      bitmap of catched signals
+   sigcatch      bitmap of caught signals
    wchan         address where process went to sleep
    0             (place holder)
    0             (place holder)
@@@ -854,7 -854,8 +854,8 @@@ WritebackTmp: Memory used by FUSE for t
                if strict overcommit accounting is enabled (mode 2 in
                'vm.overcommit_memory').
                The CommitLimit is calculated with the following formula:
-               CommitLimit = ('vm.overcommit_ratio' * Physical RAM) + Swap
+               CommitLimit = ([total RAM pages] - [total huge TLB pages]) *
+                              overcommit_ratio / 100 + [total swap pages]
                For example, on a system with 1G of physical RAM and 7G
                of swap with a `vm.overcommit_ratio` of 30 it would
                yield a CommitLimit of 7.3G.
@@@ -1245,9 -1246,8 +1246,9 @@@ second).  The meanings of the columns a
  
  The "intr" line gives counts of interrupts  serviced since boot time, for each
  of the  possible system interrupts.   The first  column  is the  total of  all
 -interrupts serviced; each  subsequent column is the  total for that particular
 -interrupt.
 +interrupts serviced  including  unnumbered  architecture specific  interrupts;
 +each  subsequent column is the  total for that particular numbered interrupt.
 +Unnumbered interrupts are not shown, only summed into the total.
  
  The "ctxt" line gives the total number of context switches across all CPUs.
  
@@@ -1649,21 -1649,18 +1650,21 @@@ pids, so one need to either stop or fre
  if precise results are needed.
  
  
 -3.7   /proc/<pid>/fdinfo/<fd> - Information about opened file
 +3.8   /proc/<pid>/fdinfo/<fd> - Information about opened file
  ---------------------------------------------------------------
  This file provides information associated with an opened file. The regular
 -files have at least two fields -- 'pos' and 'flags'. The 'pos' represents
 -the current offset of the opened file in decimal form [see lseek(2) for
 -details] and 'flags' denotes the octal O_xxx mask the file has been
 -created with [see open(2) for details].
 +files have at least three fields -- 'pos', 'flags' and mnt_id. The 'pos'
 +represents the current offset of the opened file in decimal form [see lseek(2)
 +for details], 'flags' denotes the octal O_xxx mask the file has been
 +created with [see open(2) for details] and 'mnt_id' represents mount ID of
 +the file system containing the opened file [see 3.5 /proc/<pid>/mountinfo
 +for details].
  
  A typical output is
  
        pos:    0
        flags:  0100002
 +      mnt_id: 19
  
  The files such as eventfd, fsnotify, signalfd, epoll among the regular pos/flags
  pair provide additional information particular to the objects they represent.
        ~~~~~~~~~~~~~
        pos:    0
        flags:  04002
 +      mnt_id: 9
        eventfd-count:  5a
  
        where 'eventfd-count' is hex value of a counter.
        ~~~~~~~~~~~~~~
        pos:    0
        flags:  04002
 +      mnt_id: 9
        sigmask:        0000000000000200
  
        where 'sigmask' is hex value of the signal mask associated
        ~~~~~~~~~~~
        pos:    0
        flags:  02
 +      mnt_id: 9
        tfd:        5 events:       1d data: ffffffffffffffff
  
        where 'tfd' is a target file descriptor number in decimal form,
  
        pos:    0
        flags:  02
 +      mnt_id: 9
        fanotify flags:10 event-flags:0
        fanotify mnt_id:12 mflags:40 mask:38 ignored_mask:40000003
        fanotify ino:4f969 sdev:800013 mflags:0 mask:3b ignored_mask:40000000 fhandle-bytes:8 fhandle-type:1 f_handle:69f90400c275b5b4
index 09854fe59307874864b001f5f92e93519fc40faf,0ff8eb072749fd1ad20568d4dfda1ed7ff1483c3..d8abfc31abbebf136bccee55174a8321f7c92ba3
@@@ -41,7 -41,7 +41,7 @@@ Both functions return either a valid GP
  with IS_ERR() (they will never return a NULL pointer). -ENOENT will be returned
  if and only if no GPIO has been assigned to the device/function/index triplet,
  other error codes are used for cases where a GPIO has been assigned but an error
- occured while trying to acquire it. This is useful to discriminate between mere
+ occurred while trying to acquire it. This is useful to discriminate between mere
  errors and an absence of GPIO for optional GPIO parameters.
  
  Device-managed variants of these functions are also defined:
@@@ -154,7 -154,6 +154,7 @@@ raw line value
        void gpiod_set_raw_value(struct gpio_desc *desc, int value)
        int gpiod_get_raw_value_cansleep(const struct gpio_desc *desc)
        void gpiod_set_raw_value_cansleep(struct gpio_desc *desc, int value)
 +      int gpiod_direction_output_raw(struct gpio_desc *desc, int value)
  
  The active-low state of a GPIO can also be queried using the following call:
  
index ee6593608c8efd00ab4201a886efb46a3a30cad0,31cabfd674979e6f107498d0a8f0af171cd85a11..54c8f9706a952691799ef65f7552e449eeb45bfb
@@@ -93,11 -93,6 +93,11 @@@ the request was handled successfully
    event to the kernel. The payload is of type struct uhid_create_req and
    contains information about your device. You can start I/O now.
  
 +  UHID_CREATE2:
 +  Same as UHID_CREATE, but the HID report descriptor data (rd_data) is an array
 +  inside struct uhid_create2_req, instead of a pointer to a separate array.
 +  Enables use from languages that don't support pointers, e.g. Python.
 +
    UHID_DESTROY:
    This destroys the internal HID device. No further I/O will be accepted. There
    may still be pending messages that you can receive with read() but no further
    contains a data-payload. This is the raw data that you read from your device.
    The kernel will parse the HID reports and react on it.
  
 +  UHID_INPUT2:
 +  Same as UHID_INPUT, but the data array is the last field of uhid_input2_req.
 +  Enables userspace to write only the required bytes to kernel (ev.type +
 +  ev.u.input2.size + the part of the data array that matters), instead of
 +  the entire struct uhid_input2_req.
 +
    UHID_FEATURE_ANSWER:
    If you receive a UHID_FEATURE request you must answer with this request. You
    must copy the "id" field from the request into the answer. Set the "err" field
  
  read()
  ------
- read() will return a queued ouput report. These output reports can be of type
+ read() will return a queued output report. These output reports can be of type
  UHID_START, UHID_STOP, UHID_OPEN, UHID_CLOSE, UHID_OUTPUT or UHID_OUTPUT_EV. No
  reaction is required to any of them but you should handle them according to your
  needs. Only UHID_OUTPUT and UHID_OUTPUT_EV have payloads.
index 2fa44cbe81b73433f40db59ea50dc4ebbca917aa,988be279a10274ce8e08a90760e9d050168d6667..4f7ae5261364ac4a2c09b0063e900e5c05a0fda3
@@@ -706,7 -706,7 +706,7 @@@ solution for a couple of reasons
  
      RX_NO_AUTOTIMER:    Prevent automatically starting the timeout monitor.
  
-     RX_ANNOUNCE_RESUME: If passed at RX_SETUP and a receive timeout occured, a
+     RX_ANNOUNCE_RESUME: If passed at RX_SETUP and a receive timeout occurred, a
        RX_CHANGED message will be generated when the (cyclic) receive restarts.
  
      TX_RESET_MULTI_IDX: Reset the index for the multiple frame transmission.
        in case of a bus-off condition after the specified delay time
        in milliseconds. By default it's off.
  
 -    "bitrate 125000 sample_point 0.875"
 +    "bitrate 125000 sample-point 0.875"
        Shows the real bit-rate in bits/sec and the sample-point in the
        range 0.000..0.999. If the calculation of bit-timing parameters
        is enabled in the kernel (CONFIG_CAN_CALC_BITTIMING=y), the
index 75f20c6038a9290f801703981d600c9fd5f34796,fe97350c7b4de1a531de150b0a7275b405557bf9..0fe36497642c90087514e4d2b0707d7f794d0949
@@@ -1794,11 -1794,6 +1794,11 @@@ registers, find a list below
    PPC   | KVM_REG_PPC_MMCR0     | 64
    PPC   | KVM_REG_PPC_MMCR1     | 64
    PPC   | KVM_REG_PPC_MMCRA     | 64
 +  PPC   | KVM_REG_PPC_MMCR2     | 64
 +  PPC   | KVM_REG_PPC_MMCRS     | 64
 +  PPC   | KVM_REG_PPC_SIAR      | 64
 +  PPC   | KVM_REG_PPC_SDAR      | 64
 +  PPC   | KVM_REG_PPC_SIER      | 64
    PPC   | KVM_REG_PPC_PMC1      | 32
    PPC   | KVM_REG_PPC_PMC2      | 32
    PPC   | KVM_REG_PPC_PMC3      | 32
    PPC   | KVM_REG_PPC_PPR     | 64
    PPC   | KVM_REG_PPC_ARCH_COMPAT 32
    PPC   | KVM_REG_PPC_DABRX     | 32
 +  PPC   | KVM_REG_PPC_WORT      | 64
    PPC   | KVM_REG_PPC_TM_GPR0 | 64
            ...
    PPC   | KVM_REG_PPC_TM_GPR31        | 64
@@@ -2072,7 -2066,7 +2072,7 @@@ the "Server" class MMU emulation suppor
  This can in turn be used by userspace to generate the appropriate
  device-tree properties for the guest operating system.
  
- The structure contains some global informations, followed by an
+ The structure contains some global information, followed by an
  array of supported segment page sizes:
  
        struct kvm_ppc_smmu_info {
@@@ -2132,7 -2126,7 +2132,7 @@@ into the hash PTE second double word)
  4.75 KVM_IRQFD
  
  Capability: KVM_CAP_IRQFD
 -Architectures: x86
 +Architectures: x86 s390
  Type: vm ioctl
  Parameters: struct kvm_irqfd (in)
  Returns: 0 on success, -1 on error
@@@ -2217,8 -2211,6 +2217,8 @@@ KVM_S390_SIGP_STOP (vcpu) - sigp restar
  KVM_S390_PROGRAM_INT (vcpu) - program check; code in parm
  KVM_S390_SIGP_SET_PREFIX (vcpu) - sigp set prefix; prefix address in parm
  KVM_S390_RESTART (vcpu) - restart
 +KVM_S390_INT_CLOCK_COMP (vcpu) - clock comparator interrupt
 +KVM_S390_INT_CPU_TIMER (vcpu) - CPU timer interrupt
  KVM_S390_INT_VIRTIO (vm) - virtio external interrupt; external interrupt
                           parameters in parm and parm64
  KVM_S390_INT_SERVICE (vm) - sclp external interrupt; sclp parameter in parm
@@@ -2322,8 -2314,8 +2322,8 @@@ struct kvm_create_device 
  
  4.80 KVM_SET_DEVICE_ATTR/KVM_GET_DEVICE_ATTR
  
 -Capability: KVM_CAP_DEVICE_CTRL
 -Type: device ioctl
 +Capability: KVM_CAP_DEVICE_CTRL, KVM_CAP_VM_ATTRIBUTES for vm device
 +Type: device ioctl, vm ioctl
  Parameters: struct kvm_device_attr
  Returns: 0 on success, -1 on error
  Errors:
@@@ -2348,8 -2340,8 +2348,8 @@@ struct kvm_device_attr 
  
  4.81 KVM_HAS_DEVICE_ATTR
  
 -Capability: KVM_CAP_DEVICE_CTRL
 -Type: device ioctl
 +Capability: KVM_CAP_DEVICE_CTRL, KVM_CAP_VM_ATTRIBUTES for vm device
 +Type: device ioctl, vm ioctl
  Parameters: struct kvm_device_attr
  Returns: 0 on success, -1 on error
  Errors:
@@@ -2384,8 -2376,6 +2384,8 @@@ Possible features
          Depends on KVM_CAP_ARM_PSCI.
        - KVM_ARM_VCPU_EL1_32BIT: Starts the CPU in a 32bit mode.
          Depends on KVM_CAP_ARM_EL1_32BIT (arm64 only).
 +      - KVM_ARM_VCPU_PSCI_0_2: Emulate PSCI v0.2 for the CPU.
 +        Depends on KVM_CAP_ARM_PSCI_0_2.
  
  
  4.83 KVM_ARM_PREFERRED_TARGET
@@@ -2748,21 -2738,6 +2748,21 @@@ It gets triggered whenever both KVM_CAP
  external interrupt has just been delivered into the guest. User space
  should put the acknowledged interrupt vector into the 'epr' field.
  
 +              /* KVM_EXIT_SYSTEM_EVENT */
 +              struct {
 +#define KVM_SYSTEM_EVENT_SHUTDOWN       1
 +#define KVM_SYSTEM_EVENT_RESET          2
 +                      __u32 type;
 +                      __u64 flags;
 +              } system_event;
 +
 +If exit_reason is KVM_EXIT_SYSTEM_EVENT then the vcpu has triggered
 +a system-level event using some architecture specific mechanism (hypercall
 +or some special instruction). In case of ARM/ARM64, this is triggered using
 +HVC instruction based PSCI call from the vcpu. The 'type' field describes
 +the system-level event type. The 'flags' field describes architecture
 +specific flags for the system-level event.
 +
                /* Fix the size of the union. */
                char padding[256];
        };
index 7b1c67a0b485b6ca7fa55e661e898b1938f4de26,97c39bab06be68e95f87c7fafb519a077dd7232c..e2f96748859b8ca75000db2d94126caeb69d6735
@@@ -266,7 -266,7 +266,7 @@@ static inline pmd_t pte_pmd(pte_t pte
  
  #define pmd_page(pmd)           pfn_to_page(__phys_to_pfn(pmd_val(pmd) & PHYS_MASK))
  
 -#define set_pmd_at(mm, addr, pmdp, pmd)       set_pmd(pmdp, pmd)
 +#define set_pmd_at(mm, addr, pmdp, pmd)       set_pte_at(mm, addr, (pte_t *)pmdp, pmd_pte(pmd))
  
  static inline int has_transparent_hugepage(void)
  {
@@@ -406,7 -406,7 +406,7 @@@ extern pgd_t idmap_pg_dir[PTRS_PER_PGD]
  
  /*
   * Ensure that there are not more swap files than can be encoded in the kernel
-  * the PTEs.
+  * PTEs.
   */
  #define MAX_SWAPFILES_CHECK() BUILD_BUG_ON(MAX_SWAPFILES_SHIFT > __SWP_TYPE_BITS)
  
index 4fcc96aa9513b89a45e11fd9c2d8da79414204c9,8bce1113b75390fb7d07e641e4c2828693b37eb4..f51d5ca0141fc61cfe2e84859c2ea2ca66160eca
@@@ -1265,7 -1265,7 +1265,7 @@@ struct wmi_resource_config 
         */
        __le32 rx_decap_mode;
  
-       /* what is the maximum scan requests than can be queued */
+       /* what is the maximum number of scan requests that can be queued */
        __le32 scan_max_pending_reqs;
  
        /* maximum VDEV that could use BMISS offload */
@@@ -1450,7 -1450,7 +1450,7 @@@ struct wmi_resource_config_10x 
         */
        __le32 rx_decap_mode;
  
-       /* what is the maximum scan requests than can be queued */
+       /* what is the maximum number of scan requests that can be queued */
        __le32 scan_max_pending_reqs;
  
        /* maximum VDEV that could use BMISS offload */
@@@ -2277,6 -2277,7 +2277,6 @@@ struct wmi_pdev_param_map 
        u32 bcnflt_stats_update_period;
        u32 pmf_qos;
        u32 arp_ac_override;
 -      u32 arpdhcp_ac_override;
        u32 dcs;
        u32 ani_enable;
        u32 ani_poll_period;
@@@ -3402,24 -3403,6 +3402,24 @@@ struct wmi_bcn_tx_arg 
        const void *bcn;
  };
  
 +enum wmi_bcn_tx_ref_flags {
 +      WMI_BCN_TX_REF_FLAG_DTIM_ZERO = 0x1,
 +      WMI_BCN_TX_REF_FLAG_DELIVER_CAB = 0x2,
 +};
 +
 +struct wmi_bcn_tx_ref_cmd {
 +      __le32 vdev_id;
 +      __le32 data_len;
 +      /* physical address of the frame - dma pointer */
 +      __le32 data_ptr;
 +      /* id for host to track */
 +      __le32 msdu_id;
 +      /* frame ctrl to setup PPDU desc */
 +      __le32 frame_control;
 +      /* to control CABQ traffic: WMI_BCN_TX_REF_FLAG_ */
 +      __le32 flags;
 +} __packed;
 +
  /* Beacon filter */
  #define WMI_BCN_FILTER_ALL   0 /* Filter all beacons */
  #define WMI_BCN_FILTER_NONE  1 /* Pass all beacons */
@@@ -3876,12 -3859,6 +3876,12 @@@ enum wmi_peer_smps_state 
        WMI_PEER_SMPS_DYNAMIC = 0x2
  };
  
 +enum wmi_peer_chwidth {
 +      WMI_PEER_CHWIDTH_20MHZ = 0,
 +      WMI_PEER_CHWIDTH_40MHZ = 1,
 +      WMI_PEER_CHWIDTH_80MHZ = 2,
 +};
 +
  enum wmi_peer_param {
        WMI_PEER_SMPS_STATE = 0x1, /* see %wmi_peer_smps_state */
        WMI_PEER_AMPDU      = 0x2,
@@@ -4062,10 -4039,6 +4062,10 @@@ struct wmi_chan_info_event 
        __le32 cycle_count;
  } __packed;
  
 +struct wmi_peer_sta_kickout_event {
 +      struct wmi_mac_addr peer_macaddr;
 +} __packed;
 +
  #define WMI_CHAN_INFO_FLAG_COMPLETE BIT(0)
  
  /* FIXME: empirically extrapolated */
@@@ -4199,7 -4172,7 +4199,7 @@@ int ath10k_wmi_wait_for_unified_ready(s
  int ath10k_wmi_connect_htc_service(struct ath10k *ar);
  int ath10k_wmi_pdev_set_channel(struct ath10k *ar,
                                const struct wmi_channel_arg *);
 -int ath10k_wmi_pdev_suspend_target(struct ath10k *ar);
 +int ath10k_wmi_pdev_suspend_target(struct ath10k *ar, u32 suspend_opt);
  int ath10k_wmi_pdev_resume_target(struct ath10k *ar);
  int ath10k_wmi_pdev_set_regdomain(struct ath10k *ar, u16 rd, u16 rd2g,
                                  u16 rd5g, u16 ctl2g, u16 ctl5g);
@@@ -4246,7 -4219,8 +4246,7 @@@ int ath10k_wmi_set_ap_ps_param(struct a
                               enum wmi_ap_ps_peer_param param_id, u32 value);
  int ath10k_wmi_scan_chan_list(struct ath10k *ar,
                              const struct wmi_scan_chan_list_arg *arg);
 -int ath10k_wmi_beacon_send_nowait(struct ath10k *ar,
 -                                const struct wmi_bcn_tx_arg *arg);
 +int ath10k_wmi_beacon_send_ref_nowait(struct ath10k_vif *arvif);
  int ath10k_wmi_pdev_set_wmm_params(struct ath10k *ar,
                        const struct wmi_pdev_set_wmm_params_arg *arg);
  int ath10k_wmi_request_stats(struct ath10k *ar, enum wmi_stats_id stats_id);
diff --combined drivers/of/base.c
index 32e969d9531909e575a37b80fb0debd3f4ae73d2,ce1d3d8a0cd844bd918c2a465fc665e126158327..aab9728271fdbfe27b199a9325bfed84063b928d
@@@ -1828,17 -1828,17 +1828,17 @@@ int of_update_property(struct device_no
                next = &(*next)->next;
        }
        raw_spin_unlock_irqrestore(&devtree_lock, flags);
 -      if (rc)
 -              return rc;
 +      if (!found)
 +              return -ENODEV;
 +
 +      /* At early boot, bail out and defer setup to of_init() */
 +      if (!of_kset)
 +              return found ? 0 : -ENODEV;
  
        /* Update the sysfs attribute */
 -      if (oldprop)
 -              sysfs_remove_bin_file(&np->kobj, &oldprop->attr);
 +      sysfs_remove_bin_file(&np->kobj, &oldprop->attr);
        __of_add_property_sysfs(np, newprop);
  
 -      if (!found)
 -              return -ENODEV;
 -
        return 0;
  }
  
@@@ -2040,8 -2040,8 +2040,8 @@@ void of_alias_scan(void * (*dt_alloc)(u
   * @np:               Pointer to the given device_node
   * @stem:     Alias stem of the given device_node
   *
-  * The function travels the lookup table to get alias id for the given
-  * device_node and alias stem.  It returns the alias id if find it.
+  * The function travels the lookup table to get the alias id for the given
+  * device_node and alias stem.  It returns the alias id if found.
   */
  int of_alias_get_id(struct device_node *np, const char *stem)
  {
@@@ -2196,65 -2196,64 +2196,65 @@@ struct device_node *of_graph_get_next_e
                                        struct device_node *prev)
  {
        struct device_node *endpoint;
 -      struct device_node *port = NULL;
 +      struct device_node *port;
  
        if (!parent)
                return NULL;
  
 +      /*
 +       * Start by locating the port node. If no previous endpoint is specified
 +       * search for the first port node, otherwise get the previous endpoint
 +       * parent port node.
 +       */
        if (!prev) {
                struct device_node *node;
 -              /*
 -               * It's the first call, we have to find a port subnode
 -               * within this node or within an optional 'ports' node.
 -               */
 +
                node = of_get_child_by_name(parent, "ports");
                if (node)
                        parent = node;
  
                port = of_get_child_by_name(parent, "port");
 -
 -              if (port) {
 -                      /* Found a port, get an endpoint. */
 -                      endpoint = of_get_next_child(port, NULL);
 -                      of_node_put(port);
 -              } else {
 -                      endpoint = NULL;
 -              }
 -
 -              if (!endpoint)
 -                      pr_err("%s(): no endpoint nodes specified for %s\n",
 -                             __func__, parent->full_name);
                of_node_put(node);
  
 -              return endpoint;
 -      }
 -
 -      port = of_get_parent(prev);
 -      if (WARN_ONCE(!port, "%s(): endpoint %s has no parent node\n",
 -                    __func__, prev->full_name))
 -              return NULL;
 +              if (!port) {
 +                      pr_err("%s(): no port node found in %s\n",
 +                             __func__, parent->full_name);
 +                      return NULL;
 +              }
 +      } else {
 +              port = of_get_parent(prev);
 +              if (WARN_ONCE(!port, "%s(): endpoint %s has no parent node\n",
 +                            __func__, prev->full_name))
 +                      return NULL;
  
 -      /* Avoid dropping prev node refcount to 0. */
 -      of_node_get(prev);
 -      endpoint = of_get_next_child(port, prev);
 -      if (endpoint) {
 -              of_node_put(port);
 -              return endpoint;
 +              /*
 +               * Avoid dropping prev node refcount to 0 when getting the next
 +               * child below.
 +               */
 +              of_node_get(prev);
        }
  
 -      /* No more endpoints under this port, try the next one. */
 -      do {
 -              port = of_get_next_child(parent, port);
 -              if (!port)
 -                      return NULL;
 -      } while (of_node_cmp(port->name, "port"));
 +      while (1) {
 +              /*
 +               * Now that we have a port node, get the next endpoint by
 +               * getting the next child. If the previous endpoint is NULL this
 +               * will return the first child.
 +               */
 +              endpoint = of_get_next_child(port, prev);
 +              if (endpoint) {
 +                      of_node_put(port);
 +                      return endpoint;
 +              }
  
 -      /* Pick up the first endpoint in this port. */
 -      endpoint = of_get_next_child(port, NULL);
 -      of_node_put(port);
 +              /* No more endpoints under this port, try the next one. */
 +              prev = NULL;
  
 -      return endpoint;
 +              do {
 +                      port = of_get_next_child(parent, port);
 +                      if (!port)
 +                              return NULL;
 +              } while (of_node_cmp(port->name, "port"));
 +      }
  }
  EXPORT_SYMBOL(of_graph_get_next_endpoint);
  
diff --combined drivers/pci/pci.c
index 7ae7aa0166b6c61552c29dec36213defd8bcc5e7,9b26c192f3279c8a39daa857d4e846f31a08b8b4..436a76ab4bb1925228709e40bf97aa841551bb9c
@@@ -106,7 -106,7 +106,7 @@@ static bool pcie_ari_disabled
   * Given a PCI bus, returns the highest PCI bus number present in the set
   * including the given PCI bus and its list of child PCI buses.
   */
- unsigned char pci_bus_max_busnr(struct pci_busbus)
+ unsigned char pci_bus_max_busnr(struct pci_bus *bus)
  {
        struct pci_bus *tmp;
        unsigned char max, n;
@@@ -1371,7 -1371,7 +1371,7 @@@ static void pcim_release(struct device 
                pci_disable_device(dev);
  }
  
- static struct pci_devres * get_pci_dr(struct pci_dev *pdev)
+ static struct pci_devres *get_pci_dr(struct pci_dev *pdev)
  {
        struct pci_devres *dr, *new_dr;
  
        return devres_get(&pdev->dev, new_dr, NULL, NULL);
  }
  
- static struct pci_devres * find_pci_dr(struct pci_dev *pdev)
+ static struct pci_devres *find_pci_dr(struct pci_dev *pdev)
  {
        if (pci_is_managed(pdev))
                return devres_find(&pdev->dev, pcim_release, NULL, NULL);
@@@ -1468,17 -1468,6 +1468,17 @@@ void __weak pcibios_release_device(stru
   */
  void __weak pcibios_disable_device (struct pci_dev *dev) {}
  
 +/**
 + * pcibios_penalize_isa_irq - penalize an ISA IRQ
 + * @irq: ISA IRQ to penalize
 + * @active: IRQ active or not
 + *
 + * Permits the platform to provide architecture-specific functionality when
 + * penalizing ISA IRQs. This is the default implementation. Architecture
 + * implementations can override this.
 + */
 +void __weak pcibios_penalize_isa_irq(int irq, int active) {}
 +
  static void do_pci_disable_device(struct pci_dev *dev)
  {
        u16 pci_command;
@@@ -3078,8 -3067,7 +3078,8 @@@ int pci_wait_for_pending_transaction(st
        if (!pci_is_pcie(dev))
                return 1;
  
 -      return pci_wait_for_pending(dev, PCI_EXP_DEVSTA, PCI_EXP_DEVSTA_TRPND);
 +      return pci_wait_for_pending(dev, pci_pcie_cap(dev) + PCI_EXP_DEVSTA,
 +                                  PCI_EXP_DEVSTA_TRPND);
  }
  EXPORT_SYMBOL(pci_wait_for_pending_transaction);
  
@@@ -3121,7 -3109,7 +3121,7 @@@ static int pci_af_flr(struct pci_dev *d
                return 0;
  
        /* Wait for Transaction Pending bit clean */
 -      if (pci_wait_for_pending(dev, PCI_AF_STATUS, PCI_AF_STATUS_TP))
 +      if (pci_wait_for_pending(dev, pos + PCI_AF_STATUS, PCI_AF_STATUS_TP))
                goto clear;
  
        dev_err(&dev->dev, "transaction is not cleared; "
@@@ -3317,27 -3305,8 +3317,27 @@@ static void pci_dev_unlock(struct pci_d
        pci_cfg_access_unlock(dev);
  }
  
 +/**
 + * pci_reset_notify - notify device driver of reset
 + * @dev: device to be notified of reset
 + * @prepare: 'true' if device is about to be reset; 'false' if reset attempt
 + *           completed
 + *
 + * Must be called prior to device access being disabled and after device
 + * access is restored.
 + */
 +static void pci_reset_notify(struct pci_dev *dev, bool prepare)
 +{
 +      const struct pci_error_handlers *err_handler =
 +                      dev->driver ? dev->driver->err_handler : NULL;
 +      if (err_handler && err_handler->reset_notify)
 +              err_handler->reset_notify(dev, prepare);
 +}
 +
  static void pci_dev_save_and_disable(struct pci_dev *dev)
  {
 +      pci_reset_notify(dev, true);
 +
        /*
         * Wake-up device prior to save.  PM registers default to D0 after
         * reset and a simple register restore doesn't reliably return
  static void pci_dev_restore(struct pci_dev *dev)
  {
        pci_restore_state(dev);
 +      pci_reset_notify(dev, false);
  }
  
  static int pci_dev_reset(struct pci_dev *dev, int probe)
  
        return rc;
  }
 +
  /**
   * __pci_reset_function - reset a PCI device function
   * @dev: PCI device to reset
@@@ -4158,7 -4125,7 +4158,7 @@@ int pci_set_vga_state(struct pci_dev *d
        u16 cmd;
        int rc;
  
 -      WARN_ON((flags & PCI_VGA_STATE_CHANGE_DECODES) & (command_bits & ~(PCI_COMMAND_IO|PCI_COMMAND_MEMORY)));
 +      WARN_ON((flags & PCI_VGA_STATE_CHANGE_DECODES) && (command_bits & ~(PCI_COMMAND_IO|PCI_COMMAND_MEMORY)));
  
        /* ARCH specific VGA enables */
        rc = pci_set_vga_state_arch(dev, decode, command_bits, flags);
index b1010eeaac0d39107424ea30d9ce071912564294,8cdd53bf1114a819b36905a9e056ebefebe0d6c5..d96e1badbee05b31538df9c34b1c298a1cc2ca1e
@@@ -37,7 -37,7 +37,7 @@@
   * Note: Using an auxdata lookup table should be considered a last resort when
   * converting a platform to use the DT.  Normally the automatically generated
   * device name will not matter, and drivers should obtain data from the device
-  * node instead of from an anonymouns platform_data pointer.
+  * node instead of from an anonymous platform_data pointer.
   */
  struct of_dev_auxdata {
        char *compatible;
@@@ -72,7 -72,6 +72,7 @@@ extern int of_platform_populate(struct 
                                const struct of_device_id *matches,
                                const struct of_dev_auxdata *lookup,
                                struct device *parent);
 +extern int of_platform_depopulate(struct device *parent);
  #else
  static inline int of_platform_populate(struct device_node *root,
                                        const struct of_device_id *matches,
  {
        return -ENODEV;
  }
 +static inline int of_platform_depopulate(struct device *parent)
 +{
 +      return -ENODEV;
 +}
  #endif
  
  #endif        /* _LINUX_OF_PLATFORM_H */
diff --combined lib/Kconfig.debug
index 819ac51202c01006e105f91355d492db6bdd6eb6,fc77167a7e433e4158344c05a9ea27133ecf0963..99c8bfee1b00de9325604370dae516a44cac6115
@@@ -505,7 -505,8 +505,7 @@@ config DEBUG_VM_R
        bool "Debug VM red-black trees"
        depends on DEBUG_VM
        help
 -        Enable this to turn on more extended checks in the virtual-memory
 -        system that may impact performance.
 +        Enable VM red-black tree debugging information and extra validations.
  
          If unsure, say N.
  
@@@ -575,8 -576,8 +575,8 @@@ config DEBUG_HIGHME
        bool "Highmem debugging"
        depends on DEBUG_KERNEL && HIGHMEM
        help
-         This options enables addition error checking for high memory systems.
-         Disable for production systems.
+         This option enables additional error checking for high memory
+         systems.  Disable for production systems.
  
  config HAVE_DEBUG_STACKOVERFLOW
        bool
@@@ -1044,6 -1045,16 +1044,6 @@@ config DEBUG_BUGVERBOS
          of the BUG call as well as the EIP and oops trace.  This aids
          debugging but costs about 70-100K of memory.
  
 -config DEBUG_WRITECOUNT
 -      bool "Debug filesystem writers count"
 -      depends on DEBUG_KERNEL
 -      help
 -        Enable this to catch wrong use of the writers count in struct
 -        vfsmount.  This will increase the size of each file struct by
 -        32 bits.
 -
 -        If unsure, say N.
 -
  config DEBUG_LIST
        bool "Debug linked list manipulation"
        depends on DEBUG_KERNEL