Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 63d16fa3 authored by Imran Khan's avatar Imran Khan
Browse files

Merge tag 'lsk-v3.18-16.04-android' into 'msm-3.18'



LSK Android 16.04 v3.18

* origin/tmp-a79bee58: (1037 commits)
  mm: vmalloc: don't remove inexistent guard hole in remove_vm_area()
  arm64: Don't relocate non-existent initrd
  mm/early_ioremap: add explicit #include of asm/early_ioremap.h
  compiler, atomics, kasan: Provide READ_ONCE_NOCHECK()
  locking: Remove atomicy checks from {READ,WRITE}_ONCE
  ARM64: kasan: print memory assignment
  UPSTREAM: arm64: Fix text patching logic when using fixmap
  Linux 3.18.31
  crypto: algif_skcipher - Fix race condition in skcipher_check_key
  crypto: algif_skcipher - Remove custom release parent function
  crypto: algif_skcipher - Add nokey compatibility path
  crypto: algif_skcipher - Require setkey before accept(2)
  ALSA: hda - Fix regression of monitor_present flag in eld proc file
  arm64: errata: Add -mpc-relative-literal-loads to build flags
  mm/page_alloc: prevent merging between isolated and other pageblocks
  mm: use 'unsigned int' for page order
  mm: page_alloc: pass PFN to __free_pages_bootmem
  ocfs2/dlm: fix BUG in dlm_move_lockres_to_recovery_list
  ocfs2/dlm: fix race between convert and recovery
  Input: ati_remote2 - fix crashes on detecting device with invalid descriptor
  ideapad-laptop: Add ideapad Y700 (15) to the no_hw_rfkill DMI list
  staging: comedi: ni_mio_common: fix the ni_write[blw]() functions
  rapidio/rionet: fix deadlock on SMP
  fs/coredump: prevent fsuid=0 dumps into user-controlled directories
  tracing: Fix trace_printk() to print when not using bprintk()
  KVM: fix spin_lock_init order on x86
  KVM: VMX: avoid guest hang on invalid invept instruction
  target: Fix target_release_cmd_kref shutdown comp leak
  bitops: Do not default to __clear_bit() for __clear_bit_unlock()
  ALSA: usb-audio: add Microsoft HD-5001 to quirks
  splice: handle zero nr_pages in splice_to_pipe()
  tracing: Fix crash from reading trace_pipe with sendfile
  USB: uas: Reduce can_queue to MAX_CMNDS
  USB: cdc-acm: more sanity checking
  USB: usb_driver_claim_interface: add sanity checking
  USB: iowarrior: fix oops with malicious USB descriptors
  x86/apic: Fix suspicious RCU usage in smp_trace_call_function_interrupt()
  Thermal: Ignore invalid trip points
  Input: synaptics - handle spurious release of trackstick buttons, again
  Input: ims-pcu - sanity check against missing interfaces
  mmc: sdhci: Fix override of timeout clk wrt max_busy_timeout
  x86/iopl: Fix iopl capability check on Xen PV
  ARM: dts: sunxi: Adjust touchscreen compatible for sun5i and later
  nfsd: fix deadlock secinfo+readdir compound
  ALSA: usb-audio: Fix NULL dereference in create_fixed_stream_quirk()
  mmc: mmc_spi: Add Card Detect comments and fix CD GPIO case
  ALSA: hda - Fix unconditional GPIO toggle via automute
  HID: i2c-hid: fix OOB write in i2c_hid_set_or_send_report()
  net: mvneta: enable change MAC address when interface is up
  md: multipath: don't hardcopy bio in .make_request path
  drm/radeon: rework fbdev handling on chips with no connectors
  radeon/fb: add wrapper functions around fb connector add/remove
  Input: powermate - fix oops with malicious USB descriptors
  s390/pci: enforce fmb page boundary rule
  s390/pci: extract software counters from fmb
  ALSA: intel8x0: Add clock quirk entry for AD1981B on IBM ThinkPad X41.
  ALSA: hda - Add new GPU codec ID 0x10de0083 to snd-hda
  ALSA: hda - Add new GPU codec ID 0x10de0082 to snd-hda
  ALSA: hda - Add new GPU codec ID 0x10de007d to snd-hda
  bus: imx-weim: Take the 'status' property value into account
  xtensa: clear all DBREAKC registers on start
  xtensa: fix preemption in {clear,copy}_user_highpage
  xtensa: ISS: don't hang if stdin EOF is reached
  ALSA: hda - fix the mic mute button and led problem for a Lenovo AIO
  Bluetooth: btusb: Add a new AR3012 ID 13d3:3472
  EDAC/sb_edac: Fix computation of channel address
  jbd2: fix FS corruption possibility in jbd2_journal_destroy() on umount path
  sg: fix dxferp in from_to case
  drm/radeon: Don't drop DP 2.7 Ghz link setup on some cards.
  drm/radeon: disable runtime pm on PX laptops without dGPU power control
  be2iscsi: set the boot_kset pointer to NULL in case of failure
  x86/PCI: Mark Broadwell-EP Home Agent & PCU as having non-compliant BARs
  bcache: fix cache_set_flush() NULL pointer dereference on OOM
  bcache: cleaned up error handling around register_cache()
  bcache: fix race of writeback thread starting before complete initialization
  sched/cputime: Fix steal_account_process_tick() to always return jiffies
  perf/x86/intel: Add definition for PT PMI bit
  x86: Add new MSRs and MSR bits used for Intel Skylake PMU support
  KVM: i8254: change PIT discard tick policy
  usb: hub: fix a typo in hub_port_init() leading to wrong logic
  of: alloc anywhere from memblock if range not specified
  mtip32xx: Handle FTL rebuild failure state during device initialization
  mtip32xx: fix incorrectly setting MTIP_DDF_SEC_LOCK_BIT
  mtip32xx: Handle safe removal during IO
  mtip32xx: fix crash on surprise removal of the drive
  mtip32xx: fix rmmod issue
  mtip32xx: Avoid issuing standby immediate cmd during FTL rebuild
  mtip32xx: Print exact time when an internal command is interrupted
  quota: Fix possible GPF due to uninitialised pointers
  xfs: fix two memory leaks in xfs_attr_list.c error paths
  nfsd4: fix bad bounds checking
  watchdog: rc32434_wdt: fix ioctl error handling
  [media] bttv: Width must be a multiple of 16 when capturing planar formats
  IB/srpt: Simplify srpt_handle_tsk_mgmt()
  mmc: sdhci: fix data timeout (part 2)
  mmc: sdhci: fix data timeout (part 1)
  Bluetooth: btusb: Add a new AR3012 ID 04ca:3014
  crypto: ccp - memset request context to zero during import
  md/raid5: Compare apples to apples (or sectors to sectors)
  PCI: Disable IO/MEM decoding for devices with non-compliant BARs
  PCI: Add dev->has_secondary_link to track downstream PCIe links
  x86, irq: Keep balance of IOAPIC pin reference count
  mtd: onenand: fix deadlock in onenand_block_markbad
  aacraid: Fix memory leak in aac_fib_map_free
  Bluetooth: Add new AR3012 ID 0489:e095
  Bluetooth: btusb: Add new AR3012 ID 13d3:3395
  perf tools: Dont stop PMU parsing on alias parse error
  ext4: iterate over buffer heads correctly in move_extent_per_page()
  [media] saa7134: Fix bytesperline not being set correctly for planar formats
  [media] adv7511: TX_EDID_PRESENT is still 1 after a disconnect
  scripts/coccinelle: modernize &
  clk: rockchip: Add pclk_peri to critical clocks on RK3066/RK3188
  clk: rockchip: add pclk_cpu to the list of rk3188 critical clocks
  fs: sdcardfs: build fix
  include/linux/poison.h: fix LIST_POISON{1,2} offset
  KEYS: Fix handling of stored error in a negatively instantiated user key
  KVM: x86: Reload pit counters for all channels when restoring state
  Revert "drm/radeon: call hpd_irq_event on resume"
  modules: fix longstanding /proc/kallsyms vs module insertion race.
  btrfs: async-thread: Fix a use-after-free error for trace
  security: let security modules use PTRACE_MODE_* with bitmasks
  kernel/resource.c: fix muxed resource handling in __request_region()
  [media] si2157: return -EINVAL if firmware blob is too big
  [media] si2157: Bounds check firmware
  btrfs: initialize the seq counter in struct btrfs_device
  Btrfs: fix transaction handle leak on failure to create hard link
  Btrfs: fix number of transaction units required to create symlink
  Btrfs: send, don't BUG_ON() when an empty symlink is found
  btrfs: statfs: report zero available if metadata are exhausted
  Btrfs: igrab inode in writepage
  Btrfs: add missing brelse when superblock checksum fails
  iw_cxgb3: Fix incorrectly returning error on success
  arm64: kill off the libgcc dependency
  lib/clz_tab.c: put in lib-y rather than obj-y
  compiler-gcc.h: neatening
  compiler-gcc: integrate the various compiler-gcc[345].h files
  lib/ucs2_string: Correct ucs2 -> utf8 conversion
  efi: Add pstore variables to the deletion whitelist
  efi: Make efivarfs entries immutable by default
  efi: Make our variable validation list include the guid
  efi: Do variable name validation tests in utf8
  efi: Use ucs2_as_utf8 in efivarfs instead of open coding a bad version
  efi: efivar_create_sysfs_entry() should return negative error codes
  lib/ucs2_string: Add ucs2 -> utf8 helper functions
  ARM: 8457/1: psci-smp is built only for SMP
  drm/gma500: Use correct unref in the gem bo create function
  module: wrapper for symbol name.
  iio: pressure: mpl115: fix temperature offset sign
  iio: dac: mcp4725: set iio name property in sysfs
  iio: adis_buffer: Fix out-of-bounds memory access
  ptrace: use fsuid, fsgid, effective creds for fs access checks
  HID: multitouch: fix input mode switching on some Elan panels
  sched: Fix crash in sched_init_numa()
  ALSA: hda - Implement loopback control switch for Realtek and other codecs
  ALSA: usb-audio: Set correct type for some UAC2 mixer controls.
  HID: fix hid_ignore_special_drivers module parameter
  HID: core: do not scan reports if the group is already set
  usb: retry reset if a device times out
  ARM: dts: armada-375: use armada-370-sata for SATA
  tools/hv: Use include/uapi with __EXPORTED_HEADERS__
  tools: hv: Makefile: Add hv_fcopy_daemon to Makefile
  staging: comedi: ni_tiocmd: change mistaken use of start_src for start_arg
  net: irda: Fix use-after-free in irtty_open()
  crypto: ccp - Don't assume export/import areas are aligned
  crypto: ccp - Limit the amount of information exported
  [media] pwc: Add USB id for Philips Spc880nc webcam
  [media] media: v4l2-compat-ioctl32: fix missing length copy in put_v4l2_buffer32
  tty: Fix GPF in flush_to_ldisc(), part 2
  crypto: ccp - Add hash state import and export support
  EDAC, amd64_edac: Shift wrapping issue in f1x_get_norm_dct_addr()
  fuse: break infinite loop in fuse_fill_write_pages()
  ovl: fix permission checking for setattr
  powerpc: Fix dedotify for binutils >= 2.26
  arm64: account for sparsemem section alignment when choosing vmemmap offset
  arm64: vmemmap: use virtual projection of linear region
  drm/dp/mst: Reverse order of MST enable and clearing VC payload table.
  drm/dp/mst: move GUID storage from mgr, port to only mst branch
  irqchip/omap-intc: Add support for spurious irq handling
  irqchip: omap-intc: Improve IRQ handler
  MAINTAINERS: return arch/sh to maintained state, with new maintainers
  ALSA: hda - Fixup inverted internal mic for Lenovo E50-80
  net: Fix skb_set_peeked use-after-free bug
  net: Clone skb before setting peeked flag
  BACKPORT: selinux: restrict kernel module loading
  android: base-cfg: enable CONFIG_QUOTA
  ANDROID: dm: rename dm-linear methods for dm-android-verity
  ANDROID: mmc: Add CONFIG_MMC_SIMULATE_MAX_SPEED
  ANDROID: dm verity fec: add sysfs attribute fec/corrected
  sdcardfs: remove unneeded __init and __exit
  sdcardfs: Remove unused code
  ANDROID: dm: Mounting root as linear device when verity disabled
  BACKPORT: nl80211: Stop scheduled scan if netlink client disappears
  sdcardfs: remove effectless config option
  trace: cpufreq: fix typo in min/max cpufreq
  inotify: Fix erroneous update of bit count
  CHROMIUM: usb: gadget: f_accessory: add .raw_request callback
  CHROMIUM: usb: gadget: audio_source: add .free_func callback
  ANDROID: usb: gadget: Add support for MTP OS desc
  CHROMIUM: usb: gadget: f_mtp: fix usb_ss_ep_comp_descriptor
  CHROMIUM: usb: gadget: f_mtp: Add SuperSpeed support
  sdcardfs: Add support for d_canonicalize
  vfs: add d_canonical_path for stacked filesystem support
  kasan: add functions to clear stack poison
  kasan: fix kmemleak false-positive in kasan_module_alloc()
  kasan: always taint kernel on report
  mm, slub, kasan: enable user tracking by default with KASAN=y
  kasan: use IS_ALIGNED in memory_is_poisoned_8()
  kasan: Fix a type conversion error
  lib: test_kasan: add some testcases
  kasan: update reference to kasan prototype repo
  kasan: move KASAN_SANITIZE in arch/x86/boot/Makefile
  kasan: various fixes in documentation
  kasan: update log messages
  kasan: accurately determine the type of the bad access
  kasan: update reported bug types for kernel memory accesses
  kasan: update reported bug types for not user nor kernel memory accesses
  mm/kasan: prevent deadlock in kasan reporting
  mm/kasan: don't use kasan shadow pointer in generic functions
  mm/kasan: MODULE_VADDR is not available on all archs
  mm/kasan: rename kasan_enabled() to kasan_report_enabled()
  arm64: KASAN depends on !(ARM64_16K_PAGES && ARM64_VA_BITS_48)
  arm64: kasan: fix issues reported by sparse
  arm64: add KASAN support
  sdcardfs: Bring up to date with Android M permissions:
  Changed type-casting in packagelist management
  Port of sdcardfs to 3.18
  Included sdcardfs source code for kernel 3.0
  BACKPORT: FROMLIST: mm: ASLR: use get_random_long()
  FROMLIST: drivers: char: random: add get_random_long()
  ANDROID: usb: u_ether: Add missing rx_work init
  Revert "mmc: core: Hold a wake lock accross delayed work + mmc rescan"
  Revert "mmc: Extend wakelock if bus is dead"
  ANDROID: dm-crypt: Remove WQ_NON_REENTRANT flag.
  ANDROID: recommended.cfg: Setup verity root A/B
  ANDROID: dm-android-verity: Rebase on top of 4.1
  ANDROID: dm: Rebase on top of 4.1
  ANDROID: dm: Add android verity target
  UPSTREAM: lib/string.c: introduce strreplace()
  CHROMIUM: dm: boot time specification of dm=
  ANDROID: dm-crypt: run in a WQ_HIGHPRI workqueue
  ANDROID: dm-verity: run in a WQ_HIGHPRI workqueue
  ANDROID: mmc: move to a SCHED_FIFO thread
  net: tcp: fix rtable leak in tcp_is_local[6]
  UPSTREAM: arm64: cpu hotplug: ensure we mask out CPU_TASKS_FROZEN in notifiers
  android: base-cfg: Add CONFIG_IP_MULTICAST
  kasan: fix last shadow judgement in memory_is_poisoned_16()
  mm/mempool.c: kasan: poison mempool elements
  mm/mempool: avoid KASAN marking mempool poison checks as use-after-free
  mm/mempool: allow NULL `pool' pointer in mempool_destroy()
  mm/mempool.c: kasan: poison mempool elements
  mm, mempool: poison elements backed by slab allocator
  mm, mempool: disallow mempools based on slab caches with constructors
  mm, mempool: do not allow atomic resizing
  x86/kasan, mm: Introduce generic kasan_populate_zero_shadow()
  x86/kasan: Define KASAN_SHADOW_OFFSET per architecture
  kasan: remove duplicate definition of the macro KASAN_FREE_PAGE
  kasan: show gcc version requirements in Kconfig and Documentation
  kasan: Makefile: shut up warnings if CONFIG_COMPILE_TEST=y
  kasan, module: move MODULE_ALIGN macro into <linux/moduleloader.h>
  kasan, module, vmalloc: rework shadow allocation for modules
  kasan: enable instrumentation of global variables
  module: fix types of device tables aliases
  kernel: add support for .init_array.* constructors
  mm: vmalloc: pass additional vm_flags to __vmalloc_node_range()
  mm: vmalloc: add flag preventing guard hole allocation
  kasan: enable stack instrumentation
  x86_64: kasan: add interceptors for memset/memmove/memcpy functions
  lib: add kasan test module
  kmemleak: disable kasan instrumentation for kmemleak
  fs: dcache: manually unpoison dname after allocation to shut up kasan's reports
  mm: slub: add kernel address sanitizer support for slub allocator
  mm: slub: introduce metadata_access_enable()/metadata_access_disable()
  mm: slub: share object_err function
  mm: slub: introduce virt_to_obj function
  mm: page_alloc: add kasan hooks on alloc and free paths
  x86_64: add KASan support
  kasan: disable memory hotplug
  kasan: add kernel address sanitizer infrastructure
  compiler: introduce __alias(symbol) shortcut
  MODULE_DEVICE_TABLE: fix some callsites
  arm64: Move some head.text functions to executable section
  arm64: introduce VA_START macro - the first kernel virtual address.
  arm64: support initrd outside kernel linear map
  mm: add utility for early copy from unmapped ram
  arm64: Change memcpy in kernel to use the copy template file
  arm64: move PGD_SIZE definition to pgalloc.h
  arm64: pgalloc: consistently use PGALLOC_GFP
  arm64: use ENDPIPROC() to annotate position independent assembler routines
  arm64: add macros for common adrp usages
  arm64: guard asm/assembler.h against multiple inclusions
  x86/iopl/64: Properly context-switch IOPL on Xen PV
  Linux 3.18.30
  PM / OPP: Fix incorrect comments
  PM / OPP: Initialize regulator pointer to an error value
  PM / OPP: Initialize u_volt_min/max to a valid value
  PM / OPP: Fix NULL pointer dereference crash when disabling OPPs
  PM / OPP: Add dev_pm_opp_set_rate()
  regulator: core: Define regulator_set_voltage_triplet()
  PM / OPP: Manage device clk
  PM / OPP: Parse clock-latency and voltage-tolerance for v1 bindings
  PM / OPP: Introduce dev_pm_opp_get_max_transition_latency()
  PM / OPP: Introduce dev_pm_opp_get_max_volt_latency()
  PM / OPP: Disable OPPs that aren't supported by the regulator
  PM / OPP: get/put regulators from OPP core
  PM / OPP: build bug fix
  PM / OPP: Use snprintf() instead of sprintf()
  PM / OPP: Set cpu_dev->id in cpumask first
  PM / OPP: Fix parsing of opp-microvolt and opp-microamp properties
  PM / OPP: Parse 'opp-<prop>-<name>' bindings
  PM / OPP: Parse 'opp-supported-hw' binding
  PM / OPP: Add missing doc comments
  PM / OPP: Rename OPP nodes as opp@<opp-hz>
  PM / OPP: Remove 'operating-points-names' binding
  PM / OPP: Add {opp-microvolt|opp-microamp}-<name> binding
  PM / OPP: Add "opp-supported-hw" binding
  PM / OPP: Add opp_rcu_lockdep_assert() to _find_device_opp()
  PM / OPP: Hold dev_opp_list_lock for writers
  PM / OPP: Protect updates to list_dev with mutex
  PM / OPP: Propagate error properly from dev_pm_opp_set_sharing_cpus()
  PM / OPP: Parse all power-supply related bindings together
  PM / OPP: Rename routines specific to old bindings with _v1
  PM / OPP: Improve print messages with pr_fmt
  PM / OPP: passing NULL to PTR_ERR()
  PM / OPP: Move cpu specific code to opp/cpu.c
  PM / OPP: Move opp core to its own directory
  PM / OPP: Prefix exported opp routines with dev_pm_opp_
  PM / OPP: Rename opp init/free table routines
  PM / OPP: Return suspend_opp only if it is enabled
  imx6q: free OPP table created during ->init()
  exynos5440: free OPP table created during ->init()
  cpufreq: arm_big_little: free OPP table created during ->init()
  PM / OPP: reuse of_parse_phandle()
  PM: Convert dev_pm_put_subsys_data() into a void function
  PM: Update function header for dev_pm_get_subsys_data()
  arm64: psci: move psci firmware calls out of line
  Revert "MIPS: Kconfig: Disable SMP/CPS for 64-bit"
  ld-version: Fix awk regex compile failure
  tracing: Fix check for cpu online when event is disabled
  Revert "drm/radeon/pm: adjust display configuration after powerstate"
  KVM: VMX: disable PEBS before a guest entry
  KVM: PPC: Book3S HV: Sanitize special-purpose register values on guest exit
  ARM: dts: dra7: do not gate cpsw clock due to errata i877
  ARM: dts: dra7: Add CPSW and MDIO module nodes for dra7
  target: Drop incorrect ABORT_TASK put for completed commands
  ovl: copy new uid/gid into overlayfs runtime inode
  ovl: fix getcwd() failure after unsuccessful rmdir
  mac80211: Fix Public Action frame RX in AP mode
  ASoC: wm_adsp: Fix enum ctl accesses in a wrong type
  ASoC: wm8994: Fix enum ctl accesses in a wrong type
  ASoC: wm8958: Fix enum ctl accesses in a wrong type
  can: gs_usb: fixed disconnect bug by removing erroneous use of kfree()
  mac80211: minstrel_ht: set default tx aggregation timeout to 0
  iwlwifi: mvm: inc pending frames counter also when txing non-sta
  mac80211: fix use of uninitialised values in RX aggregation
  cfg80211/wext: fix message ordering
  wext: fix message delay/ordering
  Linux 3.18.29
  arm64: kernel: pause/unpause function graph tracer in cpu_suspend()
  ipv6: drop frames with attached skb->sk in forwarding
  Correct backport for ip6_gre: release cached dst on tunnel removal
  KVM: x86: move steal time initialization to vcpu entry time
  tools: Add a "make all" rule
  HID: usbhid: fix recursive deadlock
  iwlwifi: pcie: support loading FW with extended mem range
  ubi: Fix out of bounds write in volume update code
  MIPS: traps: Fix SIGFPE information leak from `do_ov' and `do_trap_or_bp'
  block: bio: introduce helpers to get the 1st and last bvec
  ALSA: hda - Fix mic issues on Acer Aspire E1-472
  PM / sleep / x86: Fix crash on graph trace through x86 suspend
  drm/radeon/pm: update current crtc info after setting the powerstate
  USB: qcserial: add Sierra Wireless EM74xx device ID
  USB: qcserial: add Sierra Wireless MC74xx/EM74xx
  drm/ast: Fix incorrect register check for DRAM width
  ALSA: seq: oss: Don't drain at closing a client
  ALSA: usb-audio: Add a quirk for Plantronics DA45
  USB: serial: option: add support for Quectel UC20
  USB: serial: option: add support for Telit LE922 PID 0x1045
  USB: cp210x: Add ID for Parrot NMEA GPS Flight Recorder
  USB: qcserial: add Dell Wireless 5809e Gobi 4G HSPA+ (rev3)
  ALSA: hdsp: Fix wrong boolean ctl value accesses
  ALSA: hdspm: Fix zero-division
  ALSA: hdspm: Fix wrong boolean ctl value accesses
  arm/arm64: KVM: Fix ioctl error handling
  Fix cifs_uniqueid_to_ino_t() function for s390x
  CIFS: Fix SMB2+ interim response processing for read requests
  cifs: fix out-of-bounds access in lease parsing
  ALSA: timer: Fix ioctls for X32 ABI
  ALSA: timer: Fix broken compat timer user status ioctl
  ALSA: rawmidi: Fix ioctls X32 ABI
  ALSA: ctl: Fix ioctls for X32 ABI
  vfio: fix ioctl error handling
  do_last(): don't let a bogus return value from ->open() et.al. to confuse us
  hpfs: don't truncate the file when delete fails
  mm: thp: fix SMP race condition between THP page fault and MADV_DONTNEED
  libata: Align ata_device's id on a cacheline
  iommu/amd: Apply workaround for ATS write permission check
  iommu/amd: Fix boot warning when device 00:00.0 is not iommu covered
  ALSA: hda - Fix headset support and noise on HP EliteBook 755 G2
  ALSA: hda - Fixup speaker pass-through control for nid 0x14 on ALC225
  ALSA: hda/realtek - Support Dell headset mode for ALC225
  ALSA: hda - Fixing background noise on Dell Inspiron 3162
  Fix directory hardlinks from deleted directories
  jffs2: Fix page lock / f->sem deadlock
  Revert "jffs2: Fix lock acquisition order bug in jffs2_write_begin"
  KVM: x86: MMU: fix ubsan index-out-of-range warning
  ALSA: hda - Add mic mute hotkey quirk for Lenovo ThinkCentre AIO
  ALSA: hda - Fixing speaker noise on the two latest thinkpad models
  ALSA: hda - Fix headphone noise after Dell XPS 13 resume back from S3
  ALSA: hda/realtek - Dell XPS one ALC3260 speaker no sound after resume back
  ALSA: hda/realtek - Support Dell headset mode for ALC298
  ALSA: hda/realtek - Support Dell headset mode for ALC288
  ALSA: hda - Enable docking station for an HP machine
  ALSA: hda - Enable mic mute hotkey and LEDs for an HP machine
  ALSA: hda/realtek - Supported HP mute Led for ALC286
  ALSA: hda/realtek - Clean up mute/mic GPIO LED handling
  usb: chipidea: otg: change workqueue ci_otg as freezable
  libceph: don't bail early from try_read() when skipping a message
  tracing: Fix showing function event in available_events
  KVM: async_pf: do not warn on page allocation failures
  KVM: arm/arm64: vgic: Ensure bitmaps are long enough
  sunrpc/cache: fix off-by-one in qword_get()
  drm/radeon/pm: adjust display configuration after powerstate
  s390/compat: correct restore of high gprs on signal return
  can: ems_usb: Fix possible tx overflow
  hwmon: (ads1015) Handle negative conversion values correctly
  Adding Intel Lewisburg device IDs for SATA
  ahci: Order SATA device IDs for codename Lewisburg
  USB: option: add "4G LTE usb-modem U901"
  usb: cp210x support SEL C662 Vendor/Device
  USB: cp210x: add IDs for GE B650V3 and B850V3 boards
  USB: cp210x: add ID for ELV Marble Sound Board 1
  USB: option: add support for SIM7100E
  NFSv4: Fix a dentry leak on alias use
  usb: dwc3: Fix assignment of EP transfer resources
  [media] adv7604: fix tx 5v detect regression
  xen/pcifront: Fix mysterious crashes when NUMA locality information was extracted.
  xen/pciback: Don't allow MSI-X ops if PCI_COMMAND_MEMORY is not set.
  xen/pciback: Return error on XEN_PCI_OP_enable_msix when device has MSI or MSI-X enabled
  xen/pciback: Save xen_pci_op commands before processing it
  iwlwifi: mvm: don't allow sched scans without matches to be started
  libata: fix HDIO_GET_32BIT ioctl
  nfs: fix nfs_size_to_loff_t
  xen/scsiback: correct frontend counting
  x86/entry/compat: Add missing CLAC to entry_INT80_32
  target: Fix race with SCF_SEND_DELAYED_TAS handling
  target: Fix remote-port TMR ABORT + se_cmd fabric stop
  target: Fix TAS handling for multi-session se_node_acls
  target: Fix LUN_RESET active I/O handling for ACK_KREF
  target: fix COMPARE_AND_WRITE non zero SGL offset data corruption
  target: Fix race for SCF_COMPARE_AND_WRITE_POST checking
  iscsi-target: Fix rx_login_comp hang after login failure
  Linux 3.18.28
  fs-writeback: unplug before cond_resched in writeback_sb_inodes
  ext4: fix crashes in dioread_nolock mode
  ALSA: pcm: Fix rwsem deadlock for non-atomic PCM stream
  ALSA: pcm: More kerneldoc updates
  drm/qxl: use kmalloc_array to alloc reloc_info in qxl_process_single_command
  drm/radeon: use post-decrement in error handling
  ALSA: seq: Fix double port list deletion
  tracing: Fix freak link error caused by branch tracer
  tracepoints: Do not trace when cpu is offline
  dmaengine: dw: disable BLOCK IRQs for non-cyclic xfer
  ALSA: seq: Fix leak of pool buffer at concurrent writes
  ALSA: seq: Drop superfluous error/debug messages after malloc failures
  powerpc/powernv: Shorten EEH function names
  ALSA: usb-audio: avoid freeing umidi object twice
  EVM: Use crypto_memneq() for digest comparisons
  ext4: don't read blocks from disk after extents being swapped
  ext4: move_extent improve bh vanishing success factor
  ext4: fix potential integer overflow
  btrfs: properly set the termination value of ctx->pos in readdir
  ARM: 8519/1: ICST: try other dividends than 1
  s390/dasd: fix refcount for PAV reassignment
  s390/dasd: prevent incorrect length error under z/VM after PAV changes
  cifs: fix erroneous return value
  drm/radeon: hold reference to fences in radeon_sa_bo_new
  ahci: Intel DNV device IDs SATA
  phy: twl4030-usb: Fix unbalanced pm_runtime_enable on module reload
  phy: twl4030-usb: Relase usb phy on unload
  phy: core: fix wrong err handle for phy_power_on
  phy: core: Fixup return value of phy_exit when !pm_runtime_enabled
  ALSA: timer: Fix race at concurrent reads
  ALSA: timer: Handle disconnection more safely
  ALSA: timer: Fix race between stop and interrupt
  ARM: 8517/1: ICST: avoid arithmetic overflow in icst_hz()
  ALSA: timer: Fix wrong instance passed to slave callbacks
  drm/i915/dsi: don't pass arbitrary data to sideband
  drm/i915/dsi: defend gpio table against out of bounds access
  ALSA: dummy: Implement timer backend switching more safely
  klist: fix starting point removed bug in klist iterators
  ALSA: hda - Fix speaker output from VAIO AiO machines
  pty: make sure super_block is still valid in final /dev/tty close
  pty: fix possible use after free of tty->driver_data
  tty: Add support for PCIe WCH382 2S multi-IO card
  tty: Add support for the WCH384 4S multi-IO card
  parport: Add support for the WCH382 2S/1P multi-IO card
  qla2xxx: Use pci_enable_msix_range() instead of pci_enable_msix()
  crypto: user - lock crypto_alg_list on alg dump
  ALSA: hda - Fix static checker warning in patch_hdmi.c
  SCSI: Add Marvell Console to VPD blacklist
  scsi_dh_rdac: always retry MODE SELECT on command lock violation
  Btrfs: fix hang on extent buffer lock caused by the inode_paths ioctl
  target: Fix LUN_RESET active TMR descriptor handling
  target: Remove first argument of target_{get,put}_sess_cmd()
  ASoC: dpcm: fix the BE state on hw_free
  cputime: Prevent 32bit overflow in time[val|spec]_to_cputime()
  MIPS: Fix buffer overflow in syscall_get_arguments()
  libata: fix sff host state machine locking while polling
  intel_scu_ipcutil: underflow in scu_reg_access()
  qla2xxx: terminate exchange when command is aborted by LIO
  qla2xxx: added sess generations to detect RSCN update races
  qla2xxx: Mark port lost when we receive an RSCN for it.
  qla2xxx: Abort stale cmds on qla_tgt_wq when plogi arrives
  qla2xxx: drop cmds/tmrs arrived while session is being deleted
  qla2xxx: delay plogi/prli ack until existing sessions are deleted
  qla2xxx: cleanup cmd in qla workqueue before processing TMR
  qla2xxx: kill sessions/log out initiator on RSCN and port down events
  libata: disable forced PORTS_IMPL for >= AHCI 1.3
  PCI/AER: Flush workqueue on device remove to avoid use-after-free
  ASoC: rt5645: fix the shift bit of IN1 boost
  iommu/vt-d: Fix 64-bit accesses to 32-bit DMAR_GSTS_REG
  qla2xxx: fix busy wait regression
  Linux 3.18.27
  xfrm: dst_entries_init() per-net dst_ops
  xen-netfront: update num_queues to real created
  xen-netfront: respect user provided max_queues
  xen-netback: respect user provided max_queues
  team: Replace rcu_read_lock with a mutex in team_vlan_rx_kill_vid
  ppp, slip: Validate VJ compression slot parameters completely
  isdn_ppp: Add checks for allocation failure in isdn_ppp_open()
  ipv6: update skb->csum when CE mark is propagated
  net: bpf: reject invalid shifts
  phonet: properly unshare skbs in phonet_rcv()
  bonding: Prevent IPv6 link local address on enslaved devices
  tcp_yeah: don't set ssthresh below 2
  ipv6: tcp: add rcu locking in tcp_v6_send_synack()
  net: sctp: prevent writes to cookie_hmac_alg from accessing invalid memory
  vxlan: fix test which detect duplicate vxlan iface
  net: possible use after free in dst_release
  net: sched: fix missing free per cpu on qstats
  net: filter: make JITs zero A for SKF_AD_ALU_XOR_X
  bridge: Only call /sbin/bridge-stp for the initial network namespace
  unix: properly account for FDs passed over unix sockets
  connector: bump skb->users before callback invocation
  sctp: sctp should release assoc when sctp_make_abort_user return NULL in sctp_close
  ipv6/addrlabel: fix ip6addrlbl_get()
  veth: don’t modify ip_summed; doing so treats packets with bad checksums as good.
  X.509: Don't strip leading 00's from key ID when constructing key description
  radix-tree: fix oops after radix_tree_iter_retry
  mm: replace vma_lock_anon_vma with anon_vma_lock_read/write
  ocfs2/dlm: clear refmap bit of recovery lock while doing local recovery cleanup
  dump_stack: avoid potential deadlocks
  drm/dp/mst: Calculate MST PBN with 31.32 fixed point
  drm: Add drm_fixp_from_fraction and drm_fixp2int_ceil
  drm: fix missing reference counting decrease
  ARM: nomadik: set up MCDATDIR2
  [media] saa7134-alsa: Only frees registered sound cards
  ALSA: timer: Fix leftover link at closing
  ALSA: timer: Fix double unlink of active_list
  [media] tda1004x: only update the frontend properties if locked
  xhci: Fix list corruption in urb dequeue at host removal
  usb: xhci: apply XHCI_PME_STUCK_QUIRK to Intel Broxton-M platforms
  usb: xhci: set SSIC port unused only if xhci_suspend succeeds
  usb: xhci: add a quirk bit for ssic port unused
  usb: xhci: handle both SSIC ports in PME stuck quirk
  xhci: Move xhci_pme_quirk() behind #ifdef CONFIG_PM
  xhci: Workaround to get D3 working in Intel xHCI
  xhci: call BIOS workaround to enable runtime suspend on Intel Braswell
  radix-tree: fix race in gang lookup
  drivers/scsi/sg.c: mark VMA as VM_IO to prevent migration
  ALSA: seq: Fix lockdep warnings due to double mutex locks
  ALSA: rawmidi: Fix race at copying & updating the position
  ALSA: rawmidi: Make snd_rawmidi_transmit() race-free
  ALSA: hda - Add fixup for Mac Mini 7,1 model
  drm/radeon: mask out WC from BO on unsupported arches
  drm/radeon: Always disable RADEON_GEM_GTT_UC along with RADEON_GEM_GTT_WC
  drm: add helper to check for wc memory support
  ALSA: timer: Fix link corruption due to double start or stop
  ALSA: timer: Code cleanup
  ALSA: timer: Harden slave timer list handling
  ALSA: seq: Fix yet another races among ALSA timer accesses
  ALSA: pcm: Fix potential deadlock in OSS emulation
  ALSA: rawmidi: Remove kernel WARNING for NULL user-space buffer check
  ALSA: seq: Fix race at closing in virmidi driver
  crypto: algif_hash - wait for crypto_ahash_init() to complete
  ALSA: usb-audio: Add quirk for Microsoft LifeCam HD-6000
  ALSA: usb-audio: Add native DSD support for PS Audio NuWave DAC
  ALSA: usb: Add native DSD support for Aune X1S
  drm/i915/dp: fall back to 18 bpp when sink capability is unknown
  crypto: shash - Fix has_key setting
  ARM: dts: at91: sama5d4: fix instance id of DBGU
  rfkill: fix rfkill_fop_read wait_event usage
  mac80211: Requeue work after scan complete for all VIF types.
  arm64: restore bogomips information in /proc/cpuinfo
  USB: fix invalid memory access in hub_activate()
  serial: 8250_pci: Add Intel Broadwell ports
  x86/mm/pat: Avoid truncation when converting cpa->numpages to address
  Staging: speakup: Fix getting port information
  drm/vmwgfx: respect 'nomodeset'
  ALSA: dummy: Disable switching timer backend via sysfs
  seccomp: always propagate NO_NEW_PRIVS on tsync
  irqchip/atmel-aic: Fix wrong bit operation for IRQ priority
  staging/speakup: Use tty_ldisc_ref() for paste kworker
  n_tty: Fix unsafe reference to "other" ldisc
  tty: Fix unsafe ldisc reference via ioctl(TIOCGETD)
  SCSI: fix crashes in sd and sr runtime PM
  powerpc/eeh: Fix PE location code
  arm64: mm: avoid calling apply_to_page_range on empty range
  ALSA: bebob: Use a signed return type for get_formation_index
  ALSA: usb-audio: Fix TEAC UD-501/UD-503/NT-503 usb delay
  ALSA: compress: Disable GET_CODEC_CAPS ioctl for some architectures
  USB: option: fix Cinterion AHxx enumeration
  USB: serial: ftdi_sio: add support for Yaesu SCU-18 cable
  ALSA: seq: Degrade the error message for too many opens
  ALSA: seq: Fix incorrect sanity check at snd_seq_oss_synth_cleanup()
  USB: serial: option: Adding support for Telit LE922
  USB: serial: visor: fix crash on detecting device without write_urbs
  USB: visor: fix null-deref at probe
  USB: cp210x: add ID for IAI USB to RS485 adaptor
  usb: hub: do not clear BOS field during reset device
  cdc-acm:exclude Samsung phone 04e8:685d
  usb: cdc-acm: send zero packet for intel 7260 modem
  usb: cdc-acm: handle unlinked urb in acm read callback
  ideapad-laptop: Add Lenovo Yoga 700 to no_hw_rfkill dmi list
  ideapad-laptop: Add Lenovo Yoga 900 to no_hw_rfkill dmi list
  ACPI / PCI / hotplug: unlock in error path in acpiphp_enable_slot()
  MIPS: Fix some missing CONFIG_CPU_MIPSR6 #ifdefs
  HID: hidpp: update input_configured callback
  usb: gadget: build audio_source function only if SND is enabled
  usb: gadget: function: fix unused func warning
  kbuild: Makefile.clean: make Kbuild and Makefile optional
  iscsi-target: Fix potential dead-lock during node acl delete
  ideapad-laptop: Add Lenovo ideapad Y700-17ISK to no_hw_rfkill dmi list
  IB/qib: Support creating qps with GFP_NOIO flag
  IB/qib: fix mcast detach when qp not attached
  crypto: crc32c - Fix crc32c soft dependency
  crypto: algif_hash - Fix race condition in hash_check_key
  crypto: af_alg - Forbid bind(2) when nokey child sockets are present
  crypto: algif_hash - Remove custom release parent function
  crypto: af_alg - Allow af_af_alg_release_parent to be called on nokey path
  crypto: algif_hash - Require setkey before accept(2)
  crypto: hash - Add crypto_ahash_has_setkey
  mac802154: fix typo IEEE802515 to IEEE802154
  crypto: af_alg - Add nokey compatibility path
  crypto: af_alg - Fix socket double-free when accept fails
  crypto: af_alg - Disallow bind/setkey/... after accept(2)
  printk: do cond_resched() between lines while outputting to consoles
  kernel/panic.c: turn off locks debug before releasing console lock
  panic: release stale console lock to always get the logbuf printed out
  memcg: only free spare array when readers are done
  mm: soft-offline: check return value in second __get_any_page() call
  zram: try vmalloc() after kmalloc()
  zram/zcomp: use GFP_NOIO to allocate streams
  ocfs2/dlm: ignore cleaning the migration mle that is inuse
  scripts/bloat-o-meter: fix python3 syntax error
  dma-debug: switch check from _text to _stext
  m32r: fix m32104ut_defconfig build fail
  cifs_dbg() outputs an uninitialized buffer in cifs_readdir()
  cifs: fix race between call_async() and reconnect()
  cifs: Ratelimit kernel log messages
  cifs: convert printk(LEVEL...) to pr_<level>
  cifs: convert to print_hex_dump() instead of custom implementation
  sparc64: fix incorrect sign extension in sys_sparc64_personality
  mmc: core: Enable tuning according to the actual timing
  mmc: core: enable CMD19 tuning for DDR50 mode
  mmc: core: Simplify by adding mmc_execute_tuning()
  mmc: core: Fix error paths and messages in mmc_init_card
  mmc: mmci: fix an ages old detection error
  dmaengine: dw: fix cyclic transfer callbacks
  dmaengine: dw: fix cyclic transfer setup
  dmaengine: dw: Make error prints unique. Part #1
  KVM: PPC: Fix ONE_REG AltiVec support
  parisc: Fix __ARCH_SI_PREAMBLE_SIZE
  virtio_balloon: fix race between migration and ballooning
  Input: elantech - mark protocols v2 and v3 as semi-mt
  xfs: handle dquot buffer readahead in log recovery correctly
  xfs: inode recovery readahead can race with inode buffer creation
  s390: fix normalization bug in exception table sorting
  drm/nouveau/kms: take mode_config mutex in connector hotplug path
  uml: flush stdout before forking
  uml: fix hostfs mknod()
  dm snapshot: fix hung bios when copy error occurs
  locks: fix unlock when fcntl_setlk races with a close
  locks: update comments that refer to inode->i_flock
  iwlwifi: update and fix 7265 series PCI IDs
  PCI: host: Mark PCIe/PCI (MSI) IRQ cascade handlers as IRQF_NO_THREAD
  PCI: imx6: Use tabs for indentation
  PCI: Fix minimum allocation address overwrite
  drm/dp/mst: fix in RAD element access
  gpu: drm: drm_dp_mst_topology.c: Fix improper use of strncat
  drm/dp/mst: fix in MSTB RAD initialization
  drm/dp/mst: process broadcast messages correctly
  udf: Check output buffer length when converting name to CS0
  udf: Prevent buffer overrun with multi-byte characters
  Input: i8042 - add Fujitsu Lifebook U745 to the nomux list
  wlcore/wl12xx: spi: fix NULL pointer dereference (Oops)
  bcache: Change refill_dirty() to always scan entire disk if necessary
  bcache: prevent crash on changing writeback_running
  bcache: allows use of register in udev to avoid "device_busy" error.
  bcache: unregister reboot notifier if bcache fails to unregister device
  bcache: fix a leak in bch_cached_dev_run()
  bcache: clear BCACHE_DEV_UNLINK_DONE flag when attaching a backing device
  bcache: Add a cond_resched() call to gc
  bcache: fix a livelock when we cause a huge number of cache misses
  rtlwifi: rtl_pci: Fix kernel panic
  NFS: Fix attribute cache revalidation
  NFS: Remove the "NFS_CAP_CHANGE_ATTR" capability
  rtlwifi: rtl8192cu: Add missing parameter setup
  rtlwifi: rtl8192ce: Fix handling of module parameters
  rtlwifi: rtl8192se: Fix module parameter initialization
  rtlwifi: rtl8192de: Fix incorrect module parameter descriptions
  rtlwifi: rtl8188ee: Fix module parameter initialization
  posix-clock: Fix return code on the poll method's error path
  Thermal: do thermal zone update after a cooling device registered
  Thermal: handle thermal zone device properly during system sleep
  Thermal: initialize thermal zone device correctly
  nfs: Fix race in __update_open_stateid()
  udf: limit the maximum number of indirect extents in a row
  mmc: sdhci: Fix sdhci_runtime_pm_bus_on/off()
  mmc: sdio: Fix invalid vdd in voltage switch power cycle
  drm/radeon: clean up fujitsu quirks
  drm/radeon: Fix off-by-one errors in radeon_vm_bo_set_addr
  android: recommended.cfg: enable taskstats
  Revert "usb: gadget: composite: Fix corruption when changing configuration"
  selinux: nlmsgtab: add SOCK_DESTROY to the netlink mapping tables
  drm/radeon: fence PT updates manually v2
  futex: Drop refcount if requeue_pi() acquired the rtmutex
  dm thin: fix race condition when destroying thin pool workqueue
  EDAC: Robustify workqueues destruction
  ovl: check dentry positiveness in ovl_cleanup_whiteouts()
  wlcore/wl12xx: spi: fix oops on firmware load
  rtlwifi: fix memory leak for USB device
  Bluetooth: Add support of Toshiba Broadcom based devices
  ovl: root: copy attr
  KVM: PPC: Fix emulation of H_SET_DABR/X on POWER8
  time: Avoid signed overflow in timekeeping_get_ns()
  drm/radeon: call hpd_irq_event on resume
  tools lib traceevent: Fix output of %llu for 64 bit values read on 32 bit machines
  [media] media: dvb-core: Don't force CAN_INVERSION_AUTO in oneshot mode
  [media] gspca: ov534/topro: prevent a division by 0
  [media] vb2: fix a regression in poll() behavior for output,streams
  ovl: use a minimal buffer in ovl_copy_xattr
  ovl: allow zero size xattr
  Revert "net: wireless: Add CONFIG_WIFI_CONTROL_FUNC option"
  neigh: Better handling of transition to NUD_PROBE state
  net: diag: support v4mapped sockets in inet_diag_find_one_icsk()
  net: tcp: deal with listen sockets properly in tcp_abort.
  net: diag: Support destroying TCP sockets.
  net: diag: Support SOCK_DESTROY for inet sockets.
  net: diag: Add the ability to destroy a socket.
  net: diag: split inet_diag_dump_one_icsk into two
  ipv6: inet6_sk() should use sk_fullsock()
  net: add sk_fullsock() helper
  Linux 3.18.26
  Revert "workqueue: make sure delayed work run in local cpu"
  KEYS: Fix keyring ref leak in join_session_keyring()
  KEYS: Fix race between read and revoke
  net: check both type and procotol for tcp sockets
  usb: Use the USB_SS_MULT() macro to decode burst multiplier for log message
  usb: core : hub: Fix BOS 'NULL pointer' kernel panic
  usb: musb: USB_TI_CPPI41_DMA requires dmaengine support
  usb: gadget: pxa27x: fix suspend callback
  USB: whci-hcd: add check for dma mapping error
  USB: add quirk for devices with broken LPM
  USB: cp210x: Remove CP2110 ID from compatibility list
  USB: serial: Another Infineon flash loader USB ID
  USB: cdc_acm: Ignore Infineon Flash Loader utility
  rbd: don't leak parent_spec in rbd_dev_probe_parent()
  RDS: verify the underlying transport exists before creating a connection
  iwlwifi: bump firmware API for mvm devices to 12
  iwlwifi: 7000: fix reported firmware name for 7265D
  ALSA: hda/hdmi - apply Skylake fix-ups to Broxton display codec
  ceph: fix message length computation
  ocfs2: fix umask ignored issue
  nfs: if we have no valid attrs, then don't declare the attribute cache valid
  nfs4: start callback_ident at idr 1
  nfsd: serialize state seqid morphing operations
  firewire: ohci: fix JMicron JMB38x IT context discovery
  ext4, jbd2: ensure entering into panic after recording an error in superblock
  rbd: don't put snap_context twice in rbd_queue_workfn()
  Btrfs: fix race when listing an inode's xattrs
  Btrfs: fix race leading to BUG_ON when running delalloc for nodatacow
  Btrfs: fix race leading to incorrect item deletion when dropping extents
  Btrfs: fix file corruption and data loss after cloning inline extents
  RDS: fix race condition when sending a message on unbound socket
  UPSTREAM: selinux: fix bug in conditional rules handling
  UPSTREAM: KEYS: Fix keyring ref leak in join_session_keyring()
  ion: fix page pool cache policy
  UPSTREAM: memcg: Only free spare array when readers are done
  unix: avoid use-after-free in ep_remove_wait_queue
  af_unix: Revert 'lock_interruptible' in stream receive code
  fou: clean up socket with kfree_rcu
  bluetooth: Validate socket address length in sco_sock_bind().
  pptp: verify sockaddr_len in pptp_bind() and pptp_connect()
  skbuff: Fix offset error in skb_reorder_vlan_header
  vlan: Fix untag operations of stacked vlans with REORDER_HEADER off
  net: fix IP early demux races
  sh_eth: fix kernel oops in skb_put()
  net: add validation for the socket syscall protocol argument
  ipv6: sctp: clone options to avoid use after free
  net: qca_spi: fix transmit queue timeout handling
  sctp: also copy sk_tsflags when copying the socket
  sctp: update the netstamp_needed counter when copying sockets
  sctp: use the same clock as if sock source timestamps were on
  atl1c: Improve driver not to do order 4 GFP_ATOMIC allocation
  gre6: allow to update all parameters via rtnl
  arm64: Add dtb files to archclean rule
  UPSTREAM: seccomp: cap SECCOMP_RET_ERRNO data to MAX_ERRNO
  Input: xpad - fix clash of presence handling with LED setting
  Input: xpad - query wireless controller state at init
  Input: xpad - move the input device creation to a new function
  Input: xpad - x360w: report dpad as buttons and axes
  Input: xpad - factor out URB submission in xpad_play_effect
  Input: xpad - remove needless bulk out URB used for LED setup
  Input: xpad - use ida() for finding the pad_nr
  Input: xpad - clarify LED enumeration
  Input: xpad - fix Razer Atrox Arcade Stick button mapping
  Input: xpad - add Covert Forces edition of the Xbox One controller
  Input: xpad - re-send LED command on present event
  Input: xpad - set the LEDs properly on XBox Wireless controllers
  Input: xpad - add rumble support for Xbox One controller
  Input: initialize device counter variables with -1
  xt_qtaguid: fix a race condition in if_tag_stat_update
  FROMLIST: x86: mm: support ARCH_MMAP_RND_BITS.
  FROMLIST: arm64: mm: support ARCH_MMAP_RND_BITS.
  FROMLIST: arm: mm: support ARCH_MMAP_RND_BITS.
  FROMLIST: mm: mmap: Add new /proc tunable for mmap_base ASLR.
  Revert "mm: mmap: Add new /proc tunable for mmap_base ASLR."
  Revert "arm: mm: support ARCH_MMAP_RND_BITS."
  UPSTREAM: HID: hid-input: allow input_configured callback return errors
  Revert "HID: Add input_register callback."
  usb: gadget: rndis: use %z format specifier for size_t
  of: Fix build warnings
  UPSTREAM: include/linux/poison.h: fix LIST_POISON{1,2} offset
  UPSTREAM: mm: more aggressive page stealing for UNMOVABLE allocations
  UPSTREAM: mm: always steal split buddies in fallback allocations
  UPSTREAM: mm: when stealing freepages, also take pages created by splitting buddy page
  ANDROID: rtc-palmas: correct for bcd year
  UPSTREAM: proc: actually make proc_fd_permission() thread-friendly
  ANDROID: android: base-cfg: enable CONFIG_DM_VERITY_FEC
  UPSTREAM: dm verity: add ignore_zero_blocks feature
  UPSTREAM: dm verity: add support for forward error correction
  UPSTREAM: dm verity: factor out verity_for_bv_block()
  UPSTREAM: dm verity: factor out structures and functions useful to separate object
  UPSTREAM: dm verity: move dm-verity.c to dm-verity-target.c
  UPSTREAM: dm verity: separate function for parsing opt args
  UPSTREAM: dm verity: clean up duplicate hashing code
  ANDROID: dm verity: port upstream changes to 3.18
  BACKPORT: mm: /proc/pid/smaps:: show proportional swap share of the mapping
  of: handle both '/' and ':' in path strings
  of: unittest: Add option string test case with longer path
  of: unittest: Add options string testcase variants
  of: fix handling of '/' in options for of_find_node_by_path()
  of/unittest: Fix the wrong expected value in of_selftest_property_string
  of/unittest: remove the duplicate of_changeset_init
  of/overlay: Remove unused variable
  of/overlay: Directly include idr.h
  of: Drop superfluous dependance for OF_OVERLAY
  of: Add prompt for OF_OVERLAY config
  of/pci: Remove duplicate kfree in of_pci_get_host_bridge_resources()
  of/fdt: fix sparse warning
  of: EXPORT_SYMBOL_GPL of_property_read_u64_array
  of/unittest: Overlays with sub-devices tests
  of/unittest: Remove obsolete code
  of/platform: Handle of_populate drivers in notifier
  of/overlay: Do not generate duplicate nodes
  Removes OF_UNITTEST dependency on OF_DYNAMIC config symbol
  drivers: of: Export of_reserved_mem_device_{init,release}
  of: Delete unnecessary check before calling "of_node_put()"
  of: Drop ->next pointer from struct device_node
  of: support passing console options with stdout-path
  of: add optional options parameter to of_find_node_by_path()
  of: Remove unneeded and incorrect MODULE_DEVICE_TABLE
  of: base, fix of_property_read_string_helper kernel-doc
  of: remove select of non-existant OF_DEVICE config symbol
  of/overlay: Add overlay unittests
  of/overlay: Introduce DT overlay support
  of/reconfig: Add OF_DYNAMIC notifier for platform_bus_type
  of/reconfig: Always use the same structure for notifiers
  of/reconfig: Add debug output for OF_RECONFIG notifiers
  of/reconfig: Add empty stubs for the of_reconfig methods
  of/reconfig: Add of_reconfig_get_state_change() of notifier helper.
  of/resolver: Switch to new local fixups format.
  of: Refactor __of_node_alloc() into __of_node_dup()
  of: Use vargs in __of_node_alloc
  of: Properly set the OF_POPULATED_BUS flag on root node
  of/fdt: export fdt blob as /sys/firmware/fdt
  of: Change of_device_is_available() to return bool
  of.h: Keep extern declaration of of_* variables when !CONFIG_OF
  of/irq: Export of_irq_get()
  of/platform: Move platform devices under /sys/devices/platform
  of: check for size < 0 after rounding in early_init_dt_add_memory_arch
  of/fdt: Don't clear initial_boot_params if fdt_check_header() fails
  of/unittest: Remove test devices after adding them
  of: Fix padding in _OF_DECLARE macro definition
  of: Request and map make argument name constant
  of/unittest: Rename selftest.c to unittest.c
  of: Eliminate of_allnodes list
  of: introduce of_property_read_s32
  Linux 3.18.25
  ipv6: sctp: implement sctp_v6_destroy_sock()
  net/neighbour: fix crash at dumping device-agnostic proxy entries
  ipv6: add complete rcu protection around np->opt
  ipv6: distinguish frag queues by device for multicast and link-local packets
  broadcom: fix PHY_ID_BCM5481 entry in the id table
  net: ip6mr: fix static mfc/dev leaks on table destruction
  net: ipmr: fix static mfc/dev leaks on table destruction
  net, scm: fix PaX detected msg_controllen overflow in scm_detach_fds
  tcp: initialize tp->copied_seq in case of cross SYN connection
  tcp: fix potential huge kmalloc() calls in TCP_REPAIR
  tcp: md5: fix lockdep annotation
  net: qmi_wwan: add XS Stick W100-2 from 4G Systems
  snmp: Remove duplicate OUTMCAST stat increment
  ip_tunnel: disable preemption when updating per-cpu tstats
  sctp: translate host order to network order when setting a hmacid
  packet: fix tpacket_snd max frame len
  packet: infer protocol from ethernet header if unset
  packet: only allow extra vlan len on ethernet devices
  packet: tpacket_snd(): fix signed/unsigned comparison
  packet: always probe for transport header
  packet: do skb_probe_transport_header when we actually have data
  tools/net: Use include/uapi with __EXPORTED_HEADERS__
  Revert "net: Fix skb_set_peeked use-after-free bug"
  ipv6: addrconf: validate new MTU before applying it
  KVM: x86: Use new is_noncanonical_address in _linearize
  KVM: x86: work around infinite loop in microcode when #AC is delivered
  ARM: orion: Fix DSA platform device after mvmdio conversion
  RDS: verify the underlying transport exists before creating a connection
  packet: race condition in packet_bind
  ipv4: disable BH when changing ip local port range
  ipv6: clean up dev_snmp6 proc entry when we fail to initialize inet6_dev
  sfc: push partner queue for skb->xmit_more
  sit: fix sit0 percpu double allocations
  mmc: Extend wakelock if bus is dead
  Revert "mmc: mmcblk: Add support for deferred SD bus resume"
  Revert "mmc: block: Remove call to mmc_blk_set_blksize"
  ipv6: gre: support SIT encapsulation
  qmi_wwan: add Sierra Wireless MC74xx/EM74xx
  virtio-net: drop NETIF_F_FRAGLIST
  net: fix a race in dst_release()
  net: avoid NULL deref in inet_ctl_sock_destroy()
  qmi_wwan: fix entry for HP lt4112 LTE/HSPA+ Gobi 4G Module
  ipmr: fix possible race resulting from improper usage of IP_INC_STATS_BH() in preemptible context.
  stmmac: Correctly report PTP capabilities.
  net/mlx4: Copy/set only sizeof struct mlx4_eqe bytes
  RDS-TCP: Recover correctly from pskb_pull()/pksb_trim() failure in rds_tcp_data_recv
  ppp: fix pppoe_dev deletion condition in pppoe_release()
  macvtap: unbreak receiving of gro skb with frag list
  irda: precedence bug in irlmp_seq_hb_idx()
  audit: create private file name copies when auditing inodes
  audit: correctly record file names with different path name types
  mptfusion: prevent some memory corruption
  mfd: wm5110: Add register patch for rev E and above
  [media] gscpa_m5602: use msecs_to_jiffies for conversions
  [media] v4l: vsp1: Fix VI6_WPF_SZCLIP_SIZE_MASK macro
  [media] v4l: vsp1: Fix VI6_DPR_ROUTE_FP_MASK macro
  [media] v4l: vsp1: Fix VI6_DPR_ROUTE_FXA_MASK macro
  [media] usbvision: fix locking error
  Input: zhenhua - ensure we have BITREVERSE
  Input: omap4-keypad - fix memory leak
  Input: serio - fix blocking of parport
  Input: psmouse - add small delay for IBM trackpoint pass-through mode
  HID: quirks: add QUIRK_NOGET for an other TPV touchscreen
  HID: apple: Add support for the 2015 Macbook Pro
  usb: musb: fix cppi channel teardown for isoch transfer
  usb: musb: cppi41: improve rx channel abort routine
  USB: symbolserial: Correct transferred data size
  usb: chipidea: debug: add runtime pm for register access
  s390/3270: redraw screen on unsolicited device end
  iommu/amd: Handle integer overflow in dma_ops_area_alloc
  client MUST ignore EncryptionKeyLength if CAP_EXTENDED_SECURITY is set
  USB: usbtmc: add device quirk for Rigol DS6104
  sched: Fix cpu_active_mask/cpu_online_mask race
  PCI: Add VPD function 0 quirk for Intel Ethernet devices
  PCI: Add dev_flags bit to access VPD through function 0
  PCI: Add flag for devices that don't reset on D3hot->D0 transition
  KEYS: Fix crash when attempt to garbage collect an uninstantiated keyring
  KEYS: Fix race between key destruction and finding a keyring by name
  ext4: fix loss of delalloc extent info in ext4_zero_range()
  ext4: allocate entire range in zero range
  vhost/scsi: potential memory corruption
  serial: 8250_pci: Add support for 12 port Exar boards
  serial: 8250_pci: Add support for 16 port Exar boards
  md/raid5: fix locking in handle_stripe_clean_event()
  IB/cm: Fix rb-tree duplicate free and use-after-free
  mvsas: Fix NULL pointer dereference in mvs_slot_task_free
  Revert "md: allow a partially recovered device to be hot-added to an array."
  md/raid10: submit_bio_wait() returns 0 on success
  md/raid1: submit_bio_wait() returns 0 on success
  crypto: api - Only abort operations on fatal signal
  module: Fix locking in symbol_put_addr()
  xen-blkfront: check for null drvdata in blkback_changed (XenbusStateClosing)
  xhci: Add spurious wakeup quirk for LynxPoint-LP controllers
  xhci: handle no ping response error properly
  dm btree: fix leak of bufio-backed block in btree_split_beneath error path
  dm btree remove: fix a bug when rebalancing nodes after removal
  Revert "ARM64: unwind: Fix PC calculation"
  rbd: require stable pages if message data CRCs are enabled
  iio: mxs-lradc: Fix temperature offset
  drm/radeon: don't try to recreate sysfs entries on resume
  ...

Conflicts:
	Makefile
	android/configs/android-recommended.cfg
	arch/Kconfig
	arch/arm/mm/mmap.c
	arch/arm64/Kconfig
	arch/arm64/include/asm/kasan.h
	arch/arm64/include/asm/pgalloc.h
	arch/arm64/kernel/setup.c
	arch/arm64/lib/memcpy.S
	arch/arm64/lib/memmove.S
	arch/arm64/lib/memset.S
	arch/arm64/mm/kasan_init.c
	arch/arm64/mm/mmap.c
	arch/mips/mm/mmap.c
	arch/powerpc/mm/mmap.c
	arch/x86/mm/kasan_init_64.c
	arch/x86/mm/mmap.c
	drivers/bluetooth/ath3k.c
	drivers/bluetooth/btusb.c
	drivers/firmware/efi/libstub/Makefile
	drivers/hid/hid-logitech-hidpp.c
	drivers/hid/hid-magicmouse.c
	drivers/hid/hid-ntrig.c
	drivers/hid/hid-rmi.c
	drivers/hid/hid-sony.c
	drivers/mmc/card/Kconfig
	drivers/mmc/card/block.c
	drivers/mmc/card/queue.c
	drivers/mmc/card/queue.h
	drivers/mmc/core/core.c
	drivers/mmc/core/core.h
	drivers/net/wireless/Kconfig
	drivers/of/Kconfig
	drivers/of/Makefile
	drivers/scsi/sd.c
	drivers/staging/android/ion/ion_system_heap.c
	drivers/usb/dwc3/gadget.c
	drivers/usb/gadget/Kconfig
	drivers/usb/gadget/function/f_fs.c
	drivers/usb/gadget/function/f_mtp.c
	drivers/usb/gadget/function/u_ether.c
	drivers/usb/serial/option.c
	drivers/usb/serial/qcserial.c
	include/linux/compiler-gcc.h
	include/linux/kasan.h
	include/linux/vmalloc.h
	kernel/module.c
	kernel/sysctl.c
	lib/Kconfig.kasan
	lib/radix-tree.c
	lib/test_kasan.c
	mm/kasan/Makefile
	mm/kasan/kasan.c
	mm/kasan/kasan.h
	mm/kasan/kasan_init.c
	mm/kasan/report.c
	mm/mempool.c
	mm/page_alloc.c
	mm/slub.c
	scripts/Makefile.lib
	scripts/module-common.lds
	sound/core/compress_offload.c

USB and MMC related changes were ignored completely as suggested
by respective teams. Changes related to DM-VERITY were skipped in
this upmerge as they will be pulled in by corresponding team on
need basis.

Change-Id: I3e94c43cf595440299c91562e1226b1e4c77abeb
Signed-off-by: default avatarImran Khan <kimran@codeaurora.org>
parents a4ef0784 a79bee58
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -26,3 +26,9 @@ switching-sched.txt
	- Switching I/O schedulers at runtime
writeback_cache_control.txt
	- Control of volatile write back caches
mmc-max-speed.txt
	- eMMC layer speed simulation, related to /sys/block/mmcblk*/
          attributes:
            max_read_speed
            max_write_speed
            cache_size
+38 −0
Original line number Diff line number Diff line
eMMC Block layer simulation speed controls in /sys/block/mmcblk*/
===============================================

Turned on with CONFIG_MMC_SIMULATE_MAX_SPEED which enables MMC device speed
limiting. Used to test and simulate the behavior of the system when
confronted with a slow MMC.

Enables max_read_speed, max_write_speed and cache_size attributes and module
default parameters to control the write or read maximum KB/second speed
behaviors.

NB: There is room for improving the algorithm for aspects tied directly to
eMMC specific behavior. For instance, wear leveling and stalls from an
exhausted erase pool. We would expect that if there was a need to provide
similar speed simulation controls to other types of block devices, aspects of
their behavior are modelled separately (e.g. head seek times, heat assist,
shingling and rotational latency).

/sys/block/mmcblk0/max_read_speed:

Number of KB/second reads allowed to the block device. Used to test and
simulate the behavior of the system when confronted with a slow reading MMC.
Set to 0 or "off" to place no speed limit.

/sys/block/mmcblk0/max_write_speed:

Number of KB/second writes allowed to the block device. Used to test and
simulate the behavior of the system when confronted with a slow writing MMC.
Set to 0 or "off" to place no speed limit.

/sys/block/mmcblk0/cache_size:

Number of MB of high speed memory or high speed SLC cache expected on the
eMMC device being simulated. Used to help simulate the write-back behavior
more accurately. The assumption is the cache has no delay, but draws down
in the background to the MLC/TLC primary store at the max_write_speed rate.
Any write speed delays will show up when the cache is full, or when an I/O
request to flush is issued.
+42 −0
Original line number Diff line number Diff line
Boot time creation of mapped devices
===================================

It is possible to configure a device mapper device to act as the root
device for your system in two ways.

The first is to build an initial ramdisk which boots to a minimal
userspace which configures the device, then pivot_root(8) in to it.

For simple device mapper configurations, it is possible to boot directly
using the following kernel command line:

dm="<name> <uuid> <ro>,table line 1,...,table line n"

name = the name to associate with the device
	after boot, udev, if used, will use that name to label
	the device node.
uuid = may be 'none' or the UUID desired for the device.
ro = may be "ro" or "rw".  If "ro", the device and device table will be
	marked read-only.

Each table line may be as normal when using the dmsetup tool except for
two variations:
1. Any use of commas will be interpreted as a newline
2. Quotation marks cannot be escaped and cannot be used without
   terminating the dm= argument.

Unless renamed by udev, the device node created will be dm-0 as the
first minor number for the device-mapper is used during early creation.

Example
=======

- Booting to a linear array made up of user-mode linux block devices:

  dm="lroot none 0, 0 4096 linear 98:16 0, 4096 4096 linear 98:32 0" \
  root=/dev/dm-0

Will boot to a rw dm-linear target of 8192 sectors split across two
block devices identified by their major:minor numbers.  After boot, udev
will rename this target to /dev/mapper/lroot (depending on the rules).
No uuid was assigned.
+482 −0
Original line number Diff line number Diff line
@@ -23,3 +23,485 @@ cpu@0 {
		198000  850000
	>;
};

Binding 2: operating-points-v2
============================

* Property: operating-points-v2

Devices supporting OPPs must set their "operating-points-v2" property with
phandle to a OPP table in their DT node. The OPP core will use this phandle to
find the operating points for the device.

If required, this can be extended for SoC vendor specfic bindings. Such bindings
should be documented as Documentation/devicetree/bindings/power/<vendor>-opp.txt
and should have a compatible description like: "operating-points-v2-<vendor>".

* OPP Table Node

This describes the OPPs belonging to a device. This node can have following
properties:

Required properties:
- compatible: Allow OPPs to express their compatibility. It should be:
  "operating-points-v2".

- OPP nodes: One or more OPP nodes describing voltage-current-frequency
  combinations. Their name isn't significant but their phandle can be used to
  reference an OPP.

Optional properties:
- opp-shared: Indicates that device nodes using this OPP Table Node's phandle
  switch their DVFS state together, i.e. they share clock/voltage/current lines.
  Missing property means devices have independent clock/voltage/current lines,
  but they share OPP tables.

- status: Marks the OPP table enabled/disabled.


* OPP Node

This defines voltage-current-frequency combinations along with other related
properties.

Required properties:
- opp-hz: Frequency in Hz, expressed as a 64-bit big-endian integer.

Optional properties:
- opp-microvolt: voltage in micro Volts.

  A single regulator's voltage is specified with an array of size one or three.
  Single entry is for target voltage and three entries are for <target min max>
  voltages.

  Entries for multiple regulators must be present in the same order as
  regulators are specified in device's DT node.

- opp-microvolt-<name>: Named opp-microvolt property. This is exactly similar to
  the above opp-microvolt property, but allows multiple voltage ranges to be
  provided for the same OPP. At runtime, the platform can pick a <name> and
  matching opp-microvolt-<name> property will be enabled for all OPPs. If the
  platform doesn't pick a specific <name> or the <name> doesn't match with any
  opp-microvolt-<name> properties, then opp-microvolt property shall be used, if
  present.

- opp-microamp: The maximum current drawn by the device in microamperes
  considering system specific parameters (such as transients, process, aging,
  maximum operating temperature range etc.) as necessary. This may be used to
  set the most efficient regulator operating mode.

  Should only be set if opp-microvolt is set for the OPP.

  Entries for multiple regulators must be present in the same order as
  regulators are specified in device's DT node. If this property isn't required
  for few regulators, then this should be marked as zero for them. If it isn't
  required for any regulator, then this property need not be present.

- opp-microamp-<name>: Named opp-microamp property. Similar to
  opp-microvolt-<name> property, but for microamp instead.

- clock-latency-ns: Specifies the maximum possible transition latency (in
  nanoseconds) for switching to this OPP from any other OPP.

- turbo-mode: Marks the OPP to be used only for turbo modes. Turbo mode is
  available on some platforms, where the device can run over its operating
  frequency for a short duration of time limited by the device's power, current
  and thermal limits.

- opp-suspend: Marks the OPP to be used during device suspend. Only one OPP in
  the table should have this.

- opp-supported-hw: This enables us to select only a subset of OPPs from the
  larger OPP table, based on what version of the hardware we are running on. We
  still can't have multiple nodes with the same opp-hz value in OPP table.

  It's an user defined array containing a hierarchy of hardware version numbers,
  supported by the OPP. For example: a platform with hierarchy of three levels
  of versions (A, B and C), this field should be like <X Y Z>, where X
  corresponds to Version hierarchy A, Y corresponds to version hierarchy B and Z
  corresponds to version hierarchy C.

  Each level of hierarchy is represented by a 32 bit value, and so there can be
  only 32 different supported version per hierarchy. i.e. 1 bit per version. A
  value of 0xFFFFFFFF will enable the OPP for all versions for that hierarchy
  level. And a value of 0x00000000 will disable the OPP completely, and so we
  never want that to happen.

  If 32 values aren't sufficient for a version hierarchy, than that version
  hierarchy can be contained in multiple 32 bit values. i.e. <X Y Z1 Z2> in the
  above example, Z1 & Z2 refer to the version hierarchy Z.

- status: Marks the node enabled/disabled.

Example 1: Single cluster Dual-core ARM cortex A9, switch DVFS states together.

/ {
	cpus {
		#address-cells = <1>;
		#size-cells = <0>;

		cpu@0 {
			compatible = "arm,cortex-a9";
			reg = <0>;
			next-level-cache = <&L2>;
			clocks = <&clk_controller 0>;
			clock-names = "cpu";
			cpu-supply = <&cpu_supply0>;
			operating-points-v2 = <&cpu0_opp_table>;
		};

		cpu@1 {
			compatible = "arm,cortex-a9";
			reg = <1>;
			next-level-cache = <&L2>;
			clocks = <&clk_controller 0>;
			clock-names = "cpu";
			cpu-supply = <&cpu_supply0>;
			operating-points-v2 = <&cpu0_opp_table>;
		};
	};

	cpu0_opp_table: opp_table0 {
		compatible = "operating-points-v2";
		opp-shared;

		opp@1000000000 {
			opp-hz = /bits/ 64 <1000000000>;
			opp-microvolt = <970000 975000 985000>;
			opp-microamp = <70000>;
			clock-latency-ns = <300000>;
			opp-suspend;
		};
		opp@1100000000 {
			opp-hz = /bits/ 64 <1100000000>;
			opp-microvolt = <980000 1000000 1010000>;
			opp-microamp = <80000>;
			clock-latency-ns = <310000>;
		};
		opp@1200000000 {
			opp-hz = /bits/ 64 <1200000000>;
			opp-microvolt = <1025000>;
			clock-latency-ns = <290000>;
			turbo-mode;
		};
	};
};

Example 2: Single cluster, Quad-core Qualcom-krait, switches DVFS states
independently.

/ {
	cpus {
		#address-cells = <1>;
		#size-cells = <0>;

		cpu@0 {
			compatible = "qcom,krait";
			reg = <0>;
			next-level-cache = <&L2>;
			clocks = <&clk_controller 0>;
			clock-names = "cpu";
			cpu-supply = <&cpu_supply0>;
			operating-points-v2 = <&cpu_opp_table>;
		};

		cpu@1 {
			compatible = "qcom,krait";
			reg = <1>;
			next-level-cache = <&L2>;
			clocks = <&clk_controller 1>;
			clock-names = "cpu";
			cpu-supply = <&cpu_supply1>;
			operating-points-v2 = <&cpu_opp_table>;
		};

		cpu@2 {
			compatible = "qcom,krait";
			reg = <2>;
			next-level-cache = <&L2>;
			clocks = <&clk_controller 2>;
			clock-names = "cpu";
			cpu-supply = <&cpu_supply2>;
			operating-points-v2 = <&cpu_opp_table>;
		};

		cpu@3 {
			compatible = "qcom,krait";
			reg = <3>;
			next-level-cache = <&L2>;
			clocks = <&clk_controller 3>;
			clock-names = "cpu";
			cpu-supply = <&cpu_supply3>;
			operating-points-v2 = <&cpu_opp_table>;
		};
	};

	cpu_opp_table: opp_table {
		compatible = "operating-points-v2";

		/*
		 * Missing opp-shared property means CPUs switch DVFS states
		 * independently.
		 */

		opp@1000000000 {
			opp-hz = /bits/ 64 <1000000000>;
			opp-microvolt = <970000 975000 985000>;
			opp-microamp = <70000>;
			clock-latency-ns = <300000>;
			opp-suspend;
		};
		opp@1100000000 {
			opp-hz = /bits/ 64 <1100000000>;
			opp-microvolt = <980000 1000000 1010000>;
			opp-microamp = <80000>;
			clock-latency-ns = <310000>;
		};
		opp@1200000000 {
			opp-hz = /bits/ 64 <1200000000>;
			opp-microvolt = <1025000>;
			opp-microamp = <90000;
			lock-latency-ns = <290000>;
			turbo-mode;
		};
	};
};

Example 3: Dual-cluster, Dual-core per cluster. CPUs within a cluster switch
DVFS state together.

/ {
	cpus {
		#address-cells = <1>;
		#size-cells = <0>;

		cpu@0 {
			compatible = "arm,cortex-a7";
			reg = <0>;
			next-level-cache = <&L2>;
			clocks = <&clk_controller 0>;
			clock-names = "cpu";
			cpu-supply = <&cpu_supply0>;
			operating-points-v2 = <&cluster0_opp>;
		};

		cpu@1 {
			compatible = "arm,cortex-a7";
			reg = <1>;
			next-level-cache = <&L2>;
			clocks = <&clk_controller 0>;
			clock-names = "cpu";
			cpu-supply = <&cpu_supply0>;
			operating-points-v2 = <&cluster0_opp>;
		};

		cpu@100 {
			compatible = "arm,cortex-a15";
			reg = <100>;
			next-level-cache = <&L2>;
			clocks = <&clk_controller 1>;
			clock-names = "cpu";
			cpu-supply = <&cpu_supply1>;
			operating-points-v2 = <&cluster1_opp>;
		};

		cpu@101 {
			compatible = "arm,cortex-a15";
			reg = <101>;
			next-level-cache = <&L2>;
			clocks = <&clk_controller 1>;
			clock-names = "cpu";
			cpu-supply = <&cpu_supply1>;
			operating-points-v2 = <&cluster1_opp>;
		};
	};

	cluster0_opp: opp_table0 {
		compatible = "operating-points-v2";
		opp-shared;

		opp@1000000000 {
			opp-hz = /bits/ 64 <1000000000>;
			opp-microvolt = <970000 975000 985000>;
			opp-microamp = <70000>;
			clock-latency-ns = <300000>;
			opp-suspend;
		};
		opp@1100000000 {
			opp-hz = /bits/ 64 <1100000000>;
			opp-microvolt = <980000 1000000 1010000>;
			opp-microamp = <80000>;
			clock-latency-ns = <310000>;
		};
		opp@1200000000 {
			opp-hz = /bits/ 64 <1200000000>;
			opp-microvolt = <1025000>;
			opp-microamp = <90000>;
			clock-latency-ns = <290000>;
			turbo-mode;
		};
	};

	cluster1_opp: opp_table1 {
		compatible = "operating-points-v2";
		opp-shared;

		opp@1300000000 {
			opp-hz = /bits/ 64 <1300000000>;
			opp-microvolt = <1045000 1050000 1055000>;
			opp-microamp = <95000>;
			clock-latency-ns = <400000>;
			opp-suspend;
		};
		opp@1400000000 {
			opp-hz = /bits/ 64 <1400000000>;
			opp-microvolt = <1075000>;
			opp-microamp = <100000>;
			clock-latency-ns = <400000>;
		};
		opp@1500000000 {
			opp-hz = /bits/ 64 <1500000000>;
			opp-microvolt = <1010000 1100000 1110000>;
			opp-microamp = <95000>;
			clock-latency-ns = <400000>;
			turbo-mode;
		};
	};
};

Example 4: Handling multiple regulators

/ {
	cpus {
		cpu@0 {
			compatible = "arm,cortex-a7";
			...

			cpu-supply = <&cpu_supply0>, <&cpu_supply1>, <&cpu_supply2>;
			operating-points-v2 = <&cpu0_opp_table>;
		};
	};

	cpu0_opp_table: opp_table0 {
		compatible = "operating-points-v2";
		opp-shared;

		opp@1000000000 {
			opp-hz = /bits/ 64 <1000000000>;
			opp-microvolt = <970000>, /* Supply 0 */
					<960000>, /* Supply 1 */
					<960000>; /* Supply 2 */
			opp-microamp =  <70000>,  /* Supply 0 */
					<70000>,  /* Supply 1 */
					<70000>;  /* Supply 2 */
			clock-latency-ns = <300000>;
		};

		/* OR */

		opp@1000000000 {
			opp-hz = /bits/ 64 <1000000000>;
			opp-microvolt = <970000 975000 985000>, /* Supply 0 */
					<960000 965000 975000>, /* Supply 1 */
					<960000 965000 975000>; /* Supply 2 */
			opp-microamp =  <70000>,		/* Supply 0 */
					<70000>,		/* Supply 1 */
					<70000>;		/* Supply 2 */
			clock-latency-ns = <300000>;
		};

		/* OR */

		opp@1000000000 {
			opp-hz = /bits/ 64 <1000000000>;
			opp-microvolt = <970000 975000 985000>, /* Supply 0 */
					<960000 965000 975000>, /* Supply 1 */
					<960000 965000 975000>; /* Supply 2 */
			opp-microamp =  <70000>,		/* Supply 0 */
					<0>,			/* Supply 1 doesn't need this */
					<70000>;		/* Supply 2 */
			clock-latency-ns = <300000>;
		};
	};
};

Example 5: opp-supported-hw
(example: three level hierarchy of versions: cuts, substrate and process)

/ {
	cpus {
		cpu@0 {
			compatible = "arm,cortex-a7";
			...

			cpu-supply = <&cpu_supply>
			operating-points-v2 = <&cpu0_opp_table_slow>;
		};
	};

	opp_table {
		compatible = "operating-points-v2";
		status = "okay";
		opp-shared;

		opp@600000000 {
			/*
			 * Supports all substrate and process versions for 0xF
			 * cuts, i.e. only first four cuts.
			 */
			opp-supported-hw = <0xF 0xFFFFFFFF 0xFFFFFFFF>
			opp-hz = /bits/ 64 <600000000>;
			opp-microvolt = <900000 915000 925000>;
			...
		};

		opp@800000000 {
			/*
			 * Supports:
			 * - cuts: only one, 6th cut (represented by 6th bit).
			 * - substrate: supports 16 different substrate versions
			 * - process: supports 9 different process versions
			 */
			opp-supported-hw = <0x20 0xff0000ff 0x0000f4f0>
			opp-hz = /bits/ 64 <800000000>;
			opp-microvolt = <900000 915000 925000>;
			...
		};
	};
};

Example 6: opp-microvolt-<name>, opp-microamp-<name>:
(example: device with two possible microvolt ranges: slow and fast)

/ {
	cpus {
		cpu@0 {
			compatible = "arm,cortex-a7";
			...

			operating-points-v2 = <&cpu0_opp_table>;
		};
	};

	cpu0_opp_table: opp_table0 {
		compatible = "operating-points-v2";
		opp-shared;

		opp@1000000000 {
			opp-hz = /bits/ 64 <1000000000>;
			opp-microvolt-slow = <900000 915000 925000>;
			opp-microvolt-fast = <970000 975000 985000>;
			opp-microamp-slow =  <70000>;
			opp-microamp-fast =  <71000>;
		};

		opp@1200000000 {
			opp-hz = /bits/ 64 <1200000000>;
			opp-microvolt-slow = <900000 915000 925000>, /* Supply vcc0 */
					      <910000 925000 935000>; /* Supply vcc1 */
			opp-microvolt-fast = <970000 975000 985000>, /* Supply vcc0 */
					     <960000 965000 975000>; /* Supply vcc1 */
			opp-microamp =  <70000>; /* Will be used for both slow/fast */
		};
	};
};
+14 −0
Original line number Diff line number Diff line
* OF selftest platform device

** selftest

Required properties:
- compatible: must be "selftest"

All other properties are optional.

Example:
	selftest {
		compatible = "selftest";
		status = "okay";
	};
Loading