[kernel] r22488 - in dists/wheezy-backports/linux: . debian debian/config debian/config/alpha debian/config/armhf debian/config/kernelarch-x86 debian/installer/alpha debian/installer/hppa/modules/hppa debian/installer/hppa/modules/hppa-parisc64-smp debian/patches debian/patches/bugfix/all debian/patches/bugfix/arm64 debian/patches/bugfix/sh4 debian/patches/bugfix/x86 debian/patches/debian debian/patches/features/all debian/patches/features/all/arcmsr debian/patches/features/all/aufs3 debian/patches/features/all/kdbus debian/patches/features/arm debian/patches/features/x86/apple-tb

Ben Hutchings benh at moszumanska.debian.org
Tue Apr 7 21:44:06 UTC 2015


Author: benh
Date: Tue Apr  7 21:44:05 2015
New Revision: 22488

Log:
Merge changes from sid up to 3.16.7-ckt7-1

Added:
   dists/wheezy-backports/linux/debian/installer/alpha/
      - copied from r22440, dists/sid/linux/debian/installer/alpha/
   dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/virtio-modules
      - copied unchanged from r22440, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/virtio-modules
   dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/virtio-modules
      - copied unchanged from r22440, dists/sid/linux/debian/installer/hppa/modules/hppa/virtio-modules
   dists/wheezy-backports/linux/debian/patches/bugfix/all/aslr-fix-stack-randomization-on-64-bit-systems.patch
      - copied unchanged from r22440, dists/sid/linux/debian/patches/bugfix/all/aslr-fix-stack-randomization-on-64-bit-systems.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/all/keys-request_key-should-reget-expired-keys-rather-th.patch
      - copied unchanged from r22440, dists/sid/linux/debian/patches/bugfix/all/keys-request_key-should-reget-expired-keys-rather-th.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/all/vfs-read-file_handle-only-once-in-handle_to_path.patch
      - copied unchanged from r22440, dists/sid/linux/debian/patches/bugfix/all/vfs-read-file_handle-only-once-in-handle_to_path.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-dell-xps15.patch
      - copied unchanged from r22440, dists/sid/linux/debian/patches/bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-dell-xps15.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-samsung-510r.patch
      - copied unchanged from r22440, dists/sid/linux/debian/patches/bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-samsung-510r.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-samsung-730u3e-740u3e.patch
      - copied unchanged from r22440, dists/sid/linux/debian/patches/bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-samsung-730u3e-740u3e.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/x86/acpi-video-add-some-samsung-models-to-disable_native.patch
      - copied unchanged from r22440, dists/sid/linux/debian/patches/bugfix/x86/acpi-video-add-some-samsung-models-to-disable_native.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/x86/acpi-video-disable-native-backlight-on-samsung-series-9.patch
      - copied unchanged from r22440, dists/sid/linux/debian/patches/bugfix/x86/acpi-video-disable-native-backlight-on-samsung-series-9.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/x86/drm-i915-quietly-reject-attempts-to-create-non-pagealigned-stolen-objects.patch
      - copied unchanged from r22440, dists/sid/linux/debian/patches/bugfix/x86/drm-i915-quietly-reject-attempts-to-create-non-pagealigned-stolen-objects.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/x86/x86-hpet-force-enable-for-e6xx-based-systems.patch
      - copied unchanged from r22440, dists/sid/linux/debian/patches/bugfix/x86/x86-hpet-force-enable-for-e6xx-based-systems.patch
   dists/wheezy-backports/linux/debian/patches/debian/mm-fix-pagecache_get_page-abi-change-in-3.16.7-ckt6.patch
      - copied unchanged from r22440, dists/sid/linux/debian/patches/debian/mm-fix-pagecache_get_page-abi-change-in-3.16.7-ckt6.patch
   dists/wheezy-backports/linux/debian/patches/debian/no-clean.patch
      - copied unchanged from r22440, dists/sid/linux/debian/patches/debian/no-clean.patch
   dists/wheezy-backports/linux/debian/patches/debian/perf-fix-abi-change-in-3.16.7-ckt6.patch
      - copied unchanged from r22440, dists/sid/linux/debian/patches/debian/perf-fix-abi-change-in-3.16.7-ckt6.patch
   dists/wheezy-backports/linux/debian/patches/debian/qxl-disable-modeset-by-default.patch
      - copied unchanged from r22440, dists/sid/linux/debian/patches/debian/qxl-disable-modeset-by-default.patch
   dists/wheezy-backports/linux/debian/patches/debian/revert-quota-switch-get_dqblk-and-set_dqblk-to-use-b.patch
      - copied unchanged from r22440, dists/sid/linux/debian/patches/debian/revert-quota-switch-get_dqblk-and-set_dqblk-to-use-b.patch
   dists/wheezy-backports/linux/debian/patches/debian/rmap-fix-abi-change-in-3.16.7-ckt5.patch
      - copied unchanged from r22440, dists/sid/linux/debian/patches/debian/rmap-fix-abi-change-in-3.16.7-ckt5.patch
   dists/wheezy-backports/linux/debian/patches/debian/tcp-fix-abi-change-in-3.16.7-ckt7.patch
      - copied unchanged from r22440, dists/sid/linux/debian/patches/debian/tcp-fix-abi-change-in-3.16.7-ckt7.patch
   dists/wheezy-backports/linux/debian/patches/features/all/arcmsr/
      - copied from r22440, dists/sid/linux/debian/patches/features/all/arcmsr/
   dists/wheezy-backports/linux/debian/patches/features/all/kdbus/shm-add-memfd.h-to-uapi-export-list.patch
      - copied unchanged from r22440, dists/sid/linux/debian/patches/features/all/kdbus/shm-add-memfd.h-to-uapi-export-list.patch
   dists/wheezy-backports/linux/debian/patches/features/all/of.h-keep-extern-declaration-of-of_-variables-when-c.patch
      - copied unchanged from r22440, dists/sid/linux/debian/patches/features/all/of.h-keep-extern-declaration-of-of_-variables-when-c.patch
   dists/wheezy-backports/linux/debian/patches/features/all/simplefb-Add-support-for-enumerating-simplefb-dt-nod.patch
      - copied unchanged from r22440, dists/sid/linux/debian/patches/features/all/simplefb-Add-support-for-enumerating-simplefb-dt-nod.patch
   dists/wheezy-backports/linux/debian/patches/features/all/simplefb-Change-simplefb_init-from-module_init-to-fs.patch
      - copied unchanged from r22440, dists/sid/linux/debian/patches/features/all/simplefb-Change-simplefb_init-from-module_init-to-fs.patch
   dists/wheezy-backports/linux/debian/patches/features/all/simplefb-Fix-build-errors-when-CONFIG_COMMON_CLK-is-.patch
      - copied unchanged from r22440, dists/sid/linux/debian/patches/features/all/simplefb-Fix-build-errors-when-CONFIG_COMMON_CLK-is-.patch
   dists/wheezy-backports/linux/debian/patches/features/all/simplefb-Fix-build-failure-on-Sparc.patch
      - copied unchanged from r22440, dists/sid/linux/debian/patches/features/all/simplefb-Fix-build-failure-on-Sparc.patch
   dists/wheezy-backports/linux/debian/patches/features/all/simplefb-add-clock-handling-code.patch
      - copied unchanged from r22440, dists/sid/linux/debian/patches/features/all/simplefb-add-clock-handling-code.patch
   dists/wheezy-backports/linux/debian/patches/features/all/simplefb-add-goto-error-path-to-probe.patch
      - copied unchanged from r22440, dists/sid/linux/debian/patches/features/all/simplefb-add-goto-error-path-to-probe.patch
   dists/wheezy-backports/linux/debian/patches/features/all/simplefb-formalize-pseudo-palette-handling.patch
      - copied unchanged from r22440, dists/sid/linux/debian/patches/features/all/simplefb-formalize-pseudo-palette-handling.patch
   dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sun4i-Add-simplefb-node-with-de_fe0-de_be0-l.patch
      - copied unchanged from r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sun4i-Add-simplefb-node-with-de_fe0-de_be0-l.patch
   dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sun4i-Add-simplefb-node.patch
      - copied unchanged from r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sun4i-Add-simplefb-node.patch
   dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sun5i-Add-simplefb-node.patch
      - copied unchanged from r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sun5i-Add-simplefb-node.patch
   dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sun6i-Add-simplefb-node.patch
      - copied unchanged from r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sun6i-Add-simplefb-node.patch
   dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sun7i-Add-simplefb-node.patch
      - copied unchanged from r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sun7i-Add-simplefb-node.patch
   dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sunxi-Add-de_be0-clk-parent-pll-to-simplefb-.patch
      - copied unchanged from r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sunxi-Add-de_be0-clk-parent-pll-to-simplefb-.patch
   dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sunxi-Add-simplefb-nodes-for-de_be0-lcd0-de_.patch
      - copied unchanged from r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sunxi-Add-simplefb-nodes-for-de_be0-lcd0-de_.patch
   dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sunxi-Update-simplefb-nodes-so-that-u-boot-c.patch
      - copied unchanged from r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sunxi-Update-simplefb-nodes-so-that-u-boot-c.patch
   dists/wheezy-backports/linux/debian/patches/features/arm/dts-sun7i-Add-dts-file-for-Bananapro-board.patch
      - copied unchanged from r22440, dists/sid/linux/debian/patches/features/arm/dts-sun7i-Add-dts-file-for-Bananapro-board.patch
   dists/wheezy-backports/linux/debian/patches/features/arm/dts-sun7i-Add-support-for-A20-OLinuXino-Lime2.patch
      - copied unchanged from r22440, dists/sid/linux/debian/patches/features/arm/dts-sun7i-Add-support-for-A20-OLinuXino-Lime2.patch
   dists/wheezy-backports/linux/debian/patches/features/arm/dts-sun7i-Rename-sun7i-a20-ir-to-sun4i-a10-ir.patch
      - copied unchanged from r22440, dists/sid/linux/debian/patches/features/arm/dts-sun7i-Rename-sun7i-a20-ir-to-sun4i-a10-ir.patch
   dists/wheezy-backports/linux/debian/patches/features/arm/dts-sunxi-Add-IR-controllers-on-A20-to-dtsi.patch
      - copied unchanged from r22440, dists/sid/linux/debian/patches/features/arm/dts-sunxi-Add-IR-controllers-on-A20-to-dtsi.patch
Deleted:
   dists/wheezy-backports/linux/debian/config/alpha/config.alpha-legacy
   dists/wheezy-backports/linux/debian/patches/bugfix/all/Revert-swiotlb-xen-pass-dev_addr-to-swiotlb_tbl_unma.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/all/crypto-add-missing-crypto-module-aliases.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/all/crypto-include-crypto-module-prefix-in-template.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/all/crypto-prefix-module-autoloading-with-crypto.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/all/net-sctp-fix-slab-corruption-from-use-after-free-on-.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/all/netfilter-conntrack-disable-generic-tracking-for-kno.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/arm64/clocksource-arch_timer-Only-use-the-virtual-counter-.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/sh4/scripts-recordmcount.pl-there-is-no-m32-option-on-super-h.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/x86/kvm-x86-sysenter-emulation-is-broken.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/x86/x86-tls-interpret-an-all-zero-struct-user_desc-as-no.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/x86/x86-tls-ldt-stop-checking-lm-in-ldt_empty.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/x86/x86-vdso-use-asm-volatile-in-__getcpu.patch
   dists/wheezy-backports/linux/debian/patches/bugfix/x86/x86_64-vdso-fix-the-vdso-address-randomization-algor.patch
Modified:
   dists/wheezy-backports/linux/   (props changed)
   dists/wheezy-backports/linux/debian/changelog
   dists/wheezy-backports/linux/debian/config/alpha/defines
   dists/wheezy-backports/linux/debian/config/armhf/config.armmp
   dists/wheezy-backports/linux/debian/config/config
   dists/wheezy-backports/linux/debian/config/defines
   dists/wheezy-backports/linux/debian/config/kernelarch-x86/config
   dists/wheezy-backports/linux/debian/patches/features/all/aufs3/aufs3-mmap.patch
   dists/wheezy-backports/linux/debian/patches/features/x86/apple-tb/pci-suspend-resume-quirks-for-apple-thunderbolt.patch
   dists/wheezy-backports/linux/debian/patches/series

Modified: dists/wheezy-backports/linux/debian/changelog
==============================================================================
--- dists/wheezy-backports/linux/debian/changelog	Mon Apr  6 23:38:13 2015	(r22487)
+++ dists/wheezy-backports/linux/debian/changelog	Tue Apr  7 21:44:05 2015	(r22488)
@@ -1,10 +1,222 @@
-linux (3.16.7-ckt4-3~bpo70+2) UNRELEASED; urgency=medium
+linux (3.16.7-ckt7-1~bpo70+1) UNRELEASED; urgency=medium
 
-  * linux-image: Depend on initramfs-tools without any alternatives,
-    as apt still tries to install a broken version of dracut
+  * Rebuild for wheezy:
+    - Disable architectures that weren't part of wheezy
+    - Use gcc-4.6 for all architectures
+    - Change ABI number to 0.bpo.4
+    - [arm] btrfs: Work around bug in gcc-4.6 (fixes FTBFS)
+    - linux-image: Depend on initramfs-tools without any alternatives, so
+      that neither apt nor aptitude will automatically switch to dracut
+      (Closes: #771379)
 
  -- Ben Hutchings <ben at decadent.org.uk>  Wed, 25 Feb 2015 02:17:23 +0000
 
+linux (3.16.7-ckt7-1) unstable; urgency=medium
+
+  * New upstream stable update:
+    http://kernel.ubuntu.com/stable/ChangeLog-3.16.7-ckt5
+    - [x86] vdso: Use asm volatile in __getcpu
+    - SCSI: fix regression in scsi_send_eh_cmnd() (regression in 3.16)
+    - Btrfs: don't delay inode ref updates during log replay
+      (regression in 3.16.7)
+    - mm: propagate error from stack expansion even for guard page
+    - vfio-pci: Fix the check on pci device type in vfio_pci_probe()
+    - rpc: fix xdr_truncate_encode to handle buffer ending on page boundary
+      (regression in 3.16)
+    - [arm64] efi: add missing call to early_ioremap_reset()
+      (regression in 3.16)
+    - exit: fix race between wait_consider_task() and wait_task_zombie()
+      (regression in 3.15)
+    - mm: prevent endless growth of anon_vma hierarchy
+    - mm: protect set_page_dirty() from ongoing truncation
+    - mm, vmscan: prevent kswapd livelock due to pfmemalloc-throttled process
+      being killed
+    - sched/deadline: Fix migration of SCHED_DEADLINE tasks
+    - HID: roccat: potential out of bounds in pyra_sysfs_write_settings()
+    - mm: Don't count the stack guard page towards RLIMIT_STACK
+    - mm: fix corner case in anon_vma endless growing prevention
+    - [arm*][xen] introduce xen_arch_need_swiotlb
+    - fsnotify: next_i is freed during fsnotify_unmount_inodes.
+    - [armhf] ASoC: eukrea-tlv320: Fix of_node_put() call with uninitialized
+      object (regression in 3.15)
+    - HID: i2c-hid: Do not free buffers in i2c_hid_stop() (regression in 3.15)
+    - ALSA: fireworks: fix an endianness bug for transaction length
+      (regression in 3.16)
+    - [armhf] mtd: nand: omap: Fix NAND enumeration on 3430 LDP
+      (regression in 3.13)
+    - ocfs2: fix the wrong directory passed to ocfs2_lookup_ino_from_name()
+      when link file (regression in 3.14)
+    - [powerpc*] Fix bad NULL pointer check in udbg_uart_getc_poll()
+      (regression in 3.12)
+    - nilfs2: fix the nilfs_iget() vs. nilfs_new_inode() races
+    - [armhf] OMAP4: PM: Only do static dependency configuration in
+      omap4_init_static_deps (regression in 3.11)
+    - [armel,armhf] Revert "ARM: 7830/1: delay: don't bother reporting bogomips
+      in /proc/cpuinfo" (regression in 3.12)
+    - gre: fix the inner mac header in nbma tunnel xmit path
+      (regression in 3.16.7-ckt3)
+    - netlink: Always copy on mmap TX.
+    - netlink: Don't reorder loads/stores before marking mmap netlink frame as
+      available
+    - batman-adv: Unify fragment size calculation (regression in 3.13)
+    - batman-adv: avoid NULL dereferences and fix if check (regression in 3.13)
+    - net: Fix stacked vlan offload features computation
+    - net: Reset secmark when scrubbing packet
+    - xen-netback: fixing the propagation of the transmit shaper timeout
+      (regression in 3.16)
+    - team: avoid possible underflow of count_pending value for notify_peers
+      and mcast_rejoin (regression in 3.12)
+    - usb: gadget: gadgetfs: Free memory allocated by memdup_user()
+      (regression in 3.15)
+    - iwlwifi: mvm: fix Rx with both chains (regression in 3.16)
+    - LOCKD: Fix a race when initialising nlmsvc_timeout (regression in 3.11)
+    - NFSv4.1: Fix client id trunking on Linux
+    - vhost-scsi: Add missing virtio-scsi -> TCM attribute conversion
+    - xhci: Check if slot is already in default state before moving it there
+      (regression in 3.14)
+    - USB: console: fix uninitialised ldisc semaphore (regression in 3.12)
+    - USB: console: fix potential use after free
+    - [armhf] usb: dwc3: gadget: Fix TRB preparation during SG
+    - [x86] ftrace/jprobes: Fix conflict between jprobes and function graph
+      tracing
+    - clk: Don't try to use a struct clk* after it could have been freed
+    - [x86] drm/i915: Evict CS TLBs between batches
+    - [xen] Revert "swiotlb-xen: pass dev_addr to swiotlb_tbl_unmap_single"
+      (regression in 3.16.7-ckt4)
+    http://kernel.ubuntu.com/stable/ChangeLog-3.16.7-ckt6
+    - ipvs: uninitialized data with IP_VS_IPV6
+    - netfilter: nfnetlink: validate nfnetlink header from batch
+    - time: settimeofday: Validate the values of tv from user
+    - drm/radeon: fix VM flush on cayman/aruba (v3)
+    - drm/radeon: fix VM flush on SI (v3)
+    - drm/radeon: fix VM flush on CIK (v3)
+    - drm/radeon: add a dpm quirk list (regression around 3.14)
+    - can: dev: fix crtlmode_supported check
+    - can: kvaser_usb: Don't free packets when tight on URBs
+    - drm/radeon: use rv515_ring_start on r5xx (regression in 3.12)
+    - PCI: Mark Atheros AR93xx to avoid bus reset (regression in 3.14)
+    - [x86] PCI: Clip bridge windows to fit in upstream windows
+      (regression in 3.16)
+    - [armhf] mvebu: completely disable hardware I/O coherency
+    - cifs: fix deadlock in cifs_ioctl_clone()
+    - ipr: wait for aborted command responses
+    - libata: allow sata_sil24 to opt-out of tag ordered submission
+      (regression in 3.14.4, 3.15)
+    - [media] vb2: fix vb2_thread_stop race conditions
+    - [i386/586] apic: Re-enable PCI_MSI support for non-SMP X86_32
+      (regression in 3.12)
+    - dm cache: share cache-metadata object across inactive and active DM
+      tables
+    - dm cache: fix problematic dual use of a single migration count variable
+    - Input: evdev - fix EVIOCG{type} ioctl
+    - tty: Fix pty master poll() after slave closes v2 (regression in 3.12)
+    - [armhf] bus: omap_l3_noc: Add resume hook to restore context
+      (regression in 3.16)
+    - decompress_bunzip2: off by one in get_next_block()
+    - kbuild: Fix removal of the debian/ directory (regression in 3.16)
+    - mm: get rid of radix tree gfp mask for pagecache_get_page
+      (regression in 3.16)
+    - regulator: core: fix race condition in regulator_put()
+    - ASoC: simple-card: Fix crash in asoc_simple_card_unref()
+      (regression in 3.15)
+    - [ppc64el] xmon: Fix another endiannes issue in RTAS call from xmon
+    - nfs: fix dio deadlock when O_DIRECT flag is flipped
+    - mac80211: properly set CCK flag in radiotap (regression in 3.12)
+    - [x86] drm/i915: Only fence tiled region of object.
+    - can: kvaser_usb: Do not sleep in atomic context
+    - can: kvaser_usb: Send correct context to URB completion
+    - rbd: fix rbd_dev_parent_get() when parent_overlap == 0
+    - rbd: drop parent_ref in rbd_dev_unprobe() unconditionally
+    - dm cache: fix missing ERR_PTR returns and handling
+    - dm thin: don't allow messages to be sent to a pool target in READ_ONLY
+      or FAIL mode
+    - [armhf] mvebu: don't set the PL310 in I/O coherency mode when I/O
+      coherency is disabled
+    - vm: add VM_FAULT_SIGSEGV handling support
+    - vm: make stack guard page errors return VM_FAULT_SIGSEGV rather than
+      SIGBUS
+    - perf: Tighten (and fix) the grouping condition
+    - iwlwifi: mvm: drop non VO frames when flushing (regression in 3.16)
+    - memcg: remove extra newlines from memcg oom kill log (regression in 3.15)
+    - ipv4: try to cache dst_entries which would cause a redirect
+      (regression in 3.16) (CVE-2015-1465)
+    http://kernel.ubuntu.com/stable/ChangeLog-3.16.7-ckt7
+    - [ppc64el] powerpc: add little endian flag to syscall_get_arch()
+    - [arm64] Fix up /proc/cpuinfo
+    - cifs: Complete oplock break jobs before closing file handle
+      (regression in 3.15)
+    - [arm64,or1k] lib/checksum.c: fix carry in csum_tcpudp_nofold
+    - [mips*] Fix kernel lockup or crash after CPU offline/online
+    - md/raid5: fix another livelock caused by non-aligned writes.
+      (regression in 3.16)
+    - drm/radeon: fix PLLs on RS880 and older v2 (regression in 3.15)
+      (Closes: #770790)
+    - [armhf/armmp-lpae] 8299/1: mm: ensure local active ASID is marked as
+      allocated on rollover
+    - PCI: Handle read-only BARs on AMD CS553x devices
+      (regression in 3.16.7-ckt4)
+    - mm: pagewalk: call pte_hole() for VM_PFNMAP during walk_page_range
+    - nilfs2: fix deadlock of segment constructor over I_SYNC flag
+    - ip: zero sockaddr returned on error queue
+    - net: rps: fix cpu unplug
+    - ipv6: stop sending PTB packets for MTU < 1280
+    - udp_diag: Fix socket skipping within chain
+    - ping: Fix race in free in receive path
+    - net: don't OOPS on socket aio
+    - ipv4: tcp: get rid of ugly unicast_sock
+    - ppp: deflate: never return len larger than output buffer
+    - [x86] hyperv: Fix the error processing in netvsc_send()
+    - Bluetooth: ath3k: workaround the compatibility issue with xHCI controller
+    - ceph: introduce global empty snap context
+    - drm/vmwgfx: Don't use memory accounting for kernel-side fence objects
+    - net:socket: set msg_namelen to 0 if msg_name is passed as NULL in msghdr
+      struct from userland.
+    - virtio_pci: defer kfree until release callback
+
+  [ Ian Campbell ]
+  * [armhf] Add DTB for Olimex A20-OLinuXino-LIME2. (Closes: #777455)
+  * [armhf] Enable CONFIG_BACKLIGHT_GPIO as a module. (Closes: #778783)
+  * [armhf] Enable FB_SIMPLE on sunxi platform, backporting fixes and DTS
+    entries.
+
+  [ Ben Hutchings ]
+  * shm: add memfd.h to UAPI export list, so kdbus will build
+  * [x86] HPET force enable for e6xx based systems (Closes: #772951)
+  * vfs: read file_handle only once in handle_to_path (CVE-2015-1420)
+  * ASLR: fix stack randomization on 64-bit systems (CVE-2015-1593)
+  * Revert "quota: Switch ->get_dqblk() and ->set_dqblk() to use bytes as
+    space units" to avoid ABI change
+  * rmap: Fix ABI change in 3.16.7-ckt5
+  * perf: Fix ABI change in 3.16.7-ckt6
+  * mm: Fix pagecache_get_page() ABI change in 3.16.7-ckt6
+  * tcp: Fix ABI change in 3.16.7-ckt7
+  * [x86] ACPI / video: Add disable_native_backlight quirk for various
+    Samsung models and Dell XPS15 L521X (Closes: #772440)
+  * [x86] ALSA: Enable SND_SOC, SND_SOC_INTEL_SST, SND_SOC_INTEL_HASWELL_MACH,
+    SND_SOC_INTEL_BYT_RT5640_MACH, SND_SOC_INTEL_BYT_MAX98090_MACH as modules
+    (Closes: #773835)
+  * arcmsr: Backport changes up to Linux 3.18 (Closes: #698821)
+  * [x86] drm/i915: Quietly reject attempts to create non-pagealigned stolen
+    objects (Closes: #763155)
+  * KEYS: request_key() should reget expired keys rather than give EKEYEXPIRED
+    (Closes: #758870)
+  * drm: Enable DRM_BOCHS, DRM_QXL as modules
+    - qxl: Disable by default, as it is incompatible with wheezy's
+      xserver-xorg-video-qxl. It can be forced to load with module
+      parameter modeset=1.
+  * of.h: Keep extern declaration of of_* variables when !CONFIG_OF
+    (for simplefb)
+
+  [ Helge Deller ]
+  * [alpha] build debian-installer udeb packages
+  * [hppa] build virtio udeb packages
+
+  [ Uwe Kleine-König ]
+  * Add support for Bananapro board, thanks Karsten Merker for the patch.
+    (Closes: 779311)
+
+ -- Ben Hutchings <ben at decadent.org.uk>  Sun, 01 Mar 2015 15:13:40 +0000
+
 linux (3.16.7-ckt4-3~bpo70+1) wheezy-backports; urgency=low
 
   * Rebuild for wheezy:

Modified: dists/wheezy-backports/linux/debian/config/alpha/defines
==============================================================================
--- dists/wheezy-backports/linux/debian/config/alpha/defines	Mon Apr  6 23:38:13 2015	(r22487)
+++ dists/wheezy-backports/linux/debian/config/alpha/defines	Tue Apr  7 21:44:05 2015	(r22488)
@@ -1,5 +1,5 @@
 [base]
-flavours: alpha-generic alpha-smp alpha-legacy
+flavours: alpha-generic alpha-smp
 kernel-arch: alpha
 
 [build]
@@ -16,7 +16,3 @@
 [alpha-smp_description]
 hardware: Alpha SMP
 hardware-long: DEC Alpha SMP systems with extended kernel start address (Wildfire, Titan, Marvel)
-
-[alpha-legacy_description]
-hardware: Alpha Legacy
-hardware-long: DEC Alpha systems with legacy kernel start address

Modified: dists/wheezy-backports/linux/debian/config/armhf/config.armmp
==============================================================================
--- dists/wheezy-backports/linux/debian/config/armhf/config.armmp	Mon Apr  6 23:38:13 2015	(r22487)
+++ dists/wheezy-backports/linux/debian/config/armhf/config.armmp	Tue Apr  7 21:44:05 2015	(r22488)
@@ -832,6 +832,11 @@
 CONFIG_USB_MXS_PHY=m
 
 ##
+## file: drivers/video/backlight/Kconfig
+##
+CONFIG_BACKLIGHT_GPIO=m
+
+##
 ## file: drivers/video/console/Kconfig
 ##
 CONFIG_FRAMEBUFFER_CONSOLE=y

Modified: dists/wheezy-backports/linux/debian/config/config
==============================================================================
--- dists/wheezy-backports/linux/debian/config/config	Mon Apr  6 23:38:13 2015	(r22487)
+++ dists/wheezy-backports/linux/debian/config/config	Tue Apr  7 21:44:05 2015	(r22488)
@@ -500,6 +500,11 @@
 # CONFIG_DRM_AST is not set
 
 ##
+## file: drivers/gpu/drm/bochs/Kconfig
+##
+CONFIG_DRM_BOCHS=m
+
+##
 ## file: drivers/gpu/drm/bridge/Kconfig
 ##
 # CONFIG_DRM_PTN3460 is not set
@@ -530,6 +535,11 @@
 CONFIG_DRM_NOUVEAU_BACKLIGHT=y
 
 ##
+## file: drivers/gpu/drm/qxl/Kconfig
+##
+CONFIG_DRM_QXL=m
+
+##
 ## file: drivers/gpu/drm/radeon/Kconfig
 ##
 # CONFIG_DRM_RADEON_UMS is not set

Modified: dists/wheezy-backports/linux/debian/config/defines
==============================================================================
--- dists/wheezy-backports/linux/debian/config/defines	Mon Apr  6 23:38:13 2015	(r22487)
+++ dists/wheezy-backports/linux/debian/config/defines	Tue Apr  7 21:44:05 2015	(r22488)
@@ -5,6 +5,8 @@
  module:arch/x86/kvm/kvm
  module:drivers/mtd/spi-nor/spi-nor
  module:drivers/net/wireless/iwlwifi/iwlwifi
+ module:sound/i2c/other/snd-ak4113
+ module:sound/i2c/other/snd-ak4114
 # Apparently not used OOT
  __add_pages
  __remove_pages

Modified: dists/wheezy-backports/linux/debian/config/kernelarch-x86/config
==============================================================================
--- dists/wheezy-backports/linux/debian/config/kernelarch-x86/config	Mon Apr  6 23:38:13 2015	(r22487)
+++ dists/wheezy-backports/linux/debian/config/kernelarch-x86/config	Tue Apr  7 21:44:05 2015	(r22488)
@@ -1914,3 +1914,16 @@
 ##
 CONFIG_SND_HDA_INTEL=m
 
+##
+## file: sound/soc/Kconfig
+##
+CONFIG_SND_SOC=m
+
+##
+## file: sound/soc/intel/Kconfig
+##
+CONFIG_SND_SOC_INTEL_SST=m
+CONFIG_SND_SOC_INTEL_HASWELL_MACH=m
+CONFIG_SND_SOC_INTEL_BYT_RT5640_MACH=m
+CONFIG_SND_SOC_INTEL_BYT_MAX98090_MACH=m
+

Copied: dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/virtio-modules (from r22440, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/virtio-modules)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa-parisc64-smp/virtio-modules	Tue Apr  7 21:44:05 2015	(r22488, copy of r22440, dists/sid/linux/debian/installer/hppa/modules/hppa-parisc64-smp/virtio-modules)
@@ -0,0 +1 @@
+#include "../hppa/virtio-modules"

Copied: dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/virtio-modules (from r22440, dists/sid/linux/debian/installer/hppa/modules/hppa/virtio-modules)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/installer/hppa/modules/hppa/virtio-modules	Tue Apr  7 21:44:05 2015	(r22488, copy of r22440, dists/sid/linux/debian/installer/hppa/modules/hppa/virtio-modules)
@@ -0,0 +1 @@
+#include <virtio-modules>

Copied: dists/wheezy-backports/linux/debian/patches/bugfix/all/aslr-fix-stack-randomization-on-64-bit-systems.patch (from r22440, dists/sid/linux/debian/patches/bugfix/all/aslr-fix-stack-randomization-on-64-bit-systems.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/all/aslr-fix-stack-randomization-on-64-bit-systems.patch	Tue Apr  7 21:44:05 2015	(r22488, copy of r22440, dists/sid/linux/debian/patches/bugfix/all/aslr-fix-stack-randomization-on-64-bit-systems.patch)
@@ -0,0 +1,98 @@
+From: Hector Marco-Gisbert <hecmargi at upv.es>
+Date: Sat, 14 Feb 2015 09:33:50 -0800
+Subject: ASLR: fix stack randomization on 64-bit systems
+Origin: http://article.gmane.org/gmane.linux.kernel/1888210
+
+The issue is that the stack for processes is not properly randomized on 64 bit
+architectures due to an integer overflow.
+
+The affected function is randomize_stack_top() in file "fs/binfmt_elf.c":
+
+static unsigned long randomize_stack_top(unsigned long stack_top)
+{
+         unsigned int random_variable = 0;
+
+         if ((current->flags & PF_RANDOMIZE) &&
+                 !(current->personality & ADDR_NO_RANDOMIZE)) {
+                 random_variable = get_random_int() & STACK_RND_MASK;
+                 random_variable <<= PAGE_SHIFT;
+         }
+         return PAGE_ALIGN(stack_top) + random_variable;
+         return PAGE_ALIGN(stack_top) - random_variable;
+}
+
+Note that, it declares the "random_variable" variable as "unsigned int". Since
+the result of the shifting operation between STACK_RND_MASK (which is
+0x3fffff on x86_64, 22 bits) and PAGE_SHIFT (which is 12 on x86_64):
+
+random_variable <<= PAGE_SHIFT;
+
+then the two leftmost bits are dropped when storing the result in the
+"random_variable". This variable shall be at least 34 bits long to hold the
+(22+12) result.
+
+These two dropped bits have an impact on the entropy of process stack.
+Concretely, the total stack entropy is reduced by four: from 2^28 to 2^30 (One
+fourth of expected entropy).
+
+This patch restores back the entropy by correcting the types involved in the
+operations in the functions randomize_stack_top() and stack_maxrandom_size().
+
+The successful fix can be tested with:
+$ for i in `seq 1 10`; do cat /proc/self/maps | grep stack; done
+7ffeda566000-7ffeda587000 rw-p 00000000 00:00 0                          [stack]
+7fff5a332000-7fff5a353000 rw-p 00000000 00:00 0                          [stack]
+7ffcdb7a1000-7ffcdb7c2000 rw-p 00000000 00:00 0                          [stack]
+7ffd5e2c4000-7ffd5e2e5000 rw-p 00000000 00:00 0                          [stack]
+...
+
+Once corrected, the leading bytes should be between 7ffc and 7fff, rather
+than always being 7fff.
+
+CVE-2015-1593
+
+Signed-off-by: Hector Marco-Gisbert <hecmargi at upv.es>
+Signed-off-by: Ismael Ripoll <iripoll at upv.es>
+[kees: rebase, fix 80 char, clean up commit message, add test example, cve]
+Signed-off-by: Kees Cook <keescook at chromium.org>
+Cc: stable at vger.kernel.org
+---
+ arch/x86/mm/mmap.c | 6 +++---
+ fs/binfmt_elf.c    | 5 +++--
+ 2 files changed, 6 insertions(+), 5 deletions(-)
+
+--- a/arch/x86/mm/mmap.c
++++ b/arch/x86/mm/mmap.c
+@@ -35,12 +35,12 @@ struct __read_mostly va_alignment va_ali
+ 	.flags = -1,
+ };
+ 
+-static unsigned int stack_maxrandom_size(void)
++static unsigned long stack_maxrandom_size(void)
+ {
+-	unsigned int max = 0;
++	unsigned long max = 0;
+ 	if ((current->flags & PF_RANDOMIZE) &&
+ 		!(current->personality & ADDR_NO_RANDOMIZE)) {
+-		max = ((-1U) & STACK_RND_MASK) << PAGE_SHIFT;
++		max = ((-1UL) & STACK_RND_MASK) << PAGE_SHIFT;
+ 	}
+ 
+ 	return max;
+--- a/fs/binfmt_elf.c
++++ b/fs/binfmt_elf.c
+@@ -554,11 +554,12 @@ out:
+ 
+ static unsigned long randomize_stack_top(unsigned long stack_top)
+ {
+-	unsigned int random_variable = 0;
++	unsigned long random_variable = 0;
+ 
+ 	if ((current->flags & PF_RANDOMIZE) &&
+ 		!(current->personality & ADDR_NO_RANDOMIZE)) {
+-		random_variable = get_random_int() & STACK_RND_MASK;
++		random_variable = (unsigned long) get_random_int();
++		random_variable &= STACK_RND_MASK;
+ 		random_variable <<= PAGE_SHIFT;
+ 	}
+ #ifdef CONFIG_STACK_GROWSUP

Copied: dists/wheezy-backports/linux/debian/patches/bugfix/all/keys-request_key-should-reget-expired-keys-rather-th.patch (from r22440, dists/sid/linux/debian/patches/bugfix/all/keys-request_key-should-reget-expired-keys-rather-th.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/all/keys-request_key-should-reget-expired-keys-rather-th.patch	Tue Apr  7 21:44:05 2015	(r22488, copy of r22440, dists/sid/linux/debian/patches/bugfix/all/keys-request_key-should-reget-expired-keys-rather-th.patch)
@@ -0,0 +1,102 @@
+From: David Howells <dhowells at redhat.com>
+Date: Mon, 1 Dec 2014 22:52:53 +0000
+Subject: KEYS: request_key() should reget expired keys rather than give
+ EKEYEXPIRED
+Origin: https://git.kernel.org/linus/0b0a84154eff56913e91df29de5c3a03a0029e38
+
+Since the keyring facility can be viewed as a cache (at least in some
+applications), the local expiration time on the key should probably be viewed
+as a 'needs updating after this time' property rather than an absolute 'anyone
+now wanting to use this object is out of luck' property.
+
+Since request_key() is the main interface for the usage of keys, this should
+update or replace an expired key rather than issuing EKEYEXPIRED if the local
+expiration has been reached (ie. it should refresh the cache).
+
+For absolute conditions where refreshing the cache probably doesn't help, the
+key can be negatively instantiated using KEYCTL_REJECT_KEY with EKEYEXPIRED
+given as the error to issue.  This will still cause request_key() to return
+EKEYEXPIRED as that was explicitly set.
+
+In the future, if the key type has an update op available, we might want to
+upcall with the expired key and allow the upcall to update it.  We would pass
+a different operation name (the first column in /etc/request-key.conf) to the
+request-key program.
+
+request_key() returning EKEYEXPIRED is causing an NFS problem which Chuck
+Lever describes thusly:
+
+	After about 10 minutes, my NFSv4 functional tests fail because the
+	ownership of the test files goes to "-2". Looking at /proc/keys
+	shows that the id_resolv keys that map to my test user ID have
+	expired. The ownership problem persists until the expired keys are
+	purged from the keyring, and fresh keys are obtained.
+
+	I bisected the problem to 3.13 commit b2a4df200d57 ("KEYS: Expand
+	the capacity of a keyring"). This commit inadvertantly changes the
+	API contract of the internal function keyring_search_aux().
+
+	The root cause appears to be that b2a4df200d57 made "no state check"
+	the default behavior. "No state check" means the keyring search
+	iterator function skips checking the key's expiry timeout, and
+	returns expired keys.  request_key_and_link() depends on getting
+	an -EAGAIN result code to know when to perform an upcall to refresh
+	an expired key.
+
+This patch can be tested directly by:
+
+	keyctl request2 user debug:fred a @s
+	keyctl timeout %user:debug:fred 3
+	sleep 4
+	keyctl request2 user debug:fred a @s
+
+Without the patch, the last command gives error EKEYEXPIRED, but with the
+command it gives a new key.
+
+Reported-by: Carl Hetherington <cth at carlh.net>
+Reported-by: Chuck Lever <chuck.lever at oracle.com>
+Signed-off-by: David Howells <dhowells at redhat.com>
+Tested-by: Chuck Lever <chuck.lever at oracle.com>
+[bwh: Backported to 3.16:
+ - Renumber KEYRING_SEARCH_SKIP_EXPIRED
+ - Adjust context]
+---
+ security/keys/internal.h    | 1 +
+ security/keys/keyring.c     | 3 ++-
+ security/keys/request_key.c | 3 ++-
+ 3 files changed, 5 insertions(+), 2 deletions(-)
+
+--- a/security/keys/internal.h
++++ b/security/keys/internal.h
+@@ -121,6 +121,7 @@ struct keyring_search_context {
+ #define KEYRING_SEARCH_NO_UPDATE_TIME	0x0008	/* Don't update times */
+ #define KEYRING_SEARCH_NO_CHECK_PERM	0x0010	/* Don't check permissions */
+ #define KEYRING_SEARCH_DETECT_TOO_DEEP	0x0020	/* Give an error on excessive depth */
++#define KEYRING_SEARCH_SKIP_EXPIRED	0x0040	/* Ignore expired keys (intention to replace) */
+ 
+ 	int (*iterator)(const void *object, void *iterator_data);
+ 
+--- a/security/keys/keyring.c
++++ b/security/keys/keyring.c
+@@ -526,7 +526,8 @@ static int keyring_search_iterator(const
+ 		}
+ 
+ 		if (key->expiry && ctx->now.tv_sec >= key->expiry) {
+-			ctx->result = ERR_PTR(-EKEYEXPIRED);
++			if (!(ctx->flags & KEYRING_SEARCH_SKIP_EXPIRED))
++				ctx->result = ERR_PTR(-EKEYEXPIRED);
+ 			kleave(" = %d [expire]", ctx->skipped_ret);
+ 			goto skipped;
+ 		}
+--- a/security/keys/request_key.c
++++ b/security/keys/request_key.c
+@@ -533,7 +533,8 @@ struct key *request_key_and_link(struct
+ 		.cred			= current_cred(),
+ 		.match			= type->match,
+ 		.match_data		= description,
+-		.flags			= KEYRING_SEARCH_LOOKUP_DIRECT,
++		.flags			= (KEYRING_SEARCH_LOOKUP_DIRECT |
++					   KEYRING_SEARCH_SKIP_EXPIRED),
+ 	};
+ 	struct key *key;
+ 	key_ref_t key_ref;

Copied: dists/wheezy-backports/linux/debian/patches/bugfix/all/vfs-read-file_handle-only-once-in-handle_to_path.patch (from r22440, dists/sid/linux/debian/patches/bugfix/all/vfs-read-file_handle-only-once-in-handle_to_path.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/all/vfs-read-file_handle-only-once-in-handle_to_path.patch	Tue Apr  7 21:44:05 2015	(r22488, copy of r22440, dists/sid/linux/debian/patches/bugfix/all/vfs-read-file_handle-only-once-in-handle_to_path.patch)
@@ -0,0 +1,37 @@
+From: Sasha Levin <sasha.levin at oracle.com>
+Subject: vfs: read file_handle only once in handle_to_path
+Date: Wed, 28 Jan 2015 15:30:43 -0500
+Origin: http://article.gmane.org/gmane.linux.file-systems/92438
+
+We used to read file_handle twice. Once to get the amount of extra bytes, and
+once to fetch the entire structure.
+
+This may be problematic since we do size verifications only after the first
+read, so if the number of extra bytes changes in userspace between the first
+and second calls, we'll have an incoherent view of file_handle.
+
+Instead, read the constant size once, and copy that over to the final
+structure without having to re-read it again.
+
+Signed-off-by: Sasha Levin <sasha.levin at oracle.com>
+---
+Change in v2:
+ - Use the f_handle pointer rather than size of struct
+
+ fs/fhandle.c |    5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+--- a/fs/fhandle.c
++++ b/fs/fhandle.c
+@@ -195,8 +195,9 @@ static int handle_to_path(int mountdirfd
+ 		goto out_err;
+ 	}
+ 	/* copy the full handle */
+-	if (copy_from_user(handle, ufh,
+-			   sizeof(struct file_handle) +
++	*handle = f_handle;
++	if (copy_from_user(&handle->f_handle,
++			   &ufh->f_handle,
+ 			   f_handle.handle_bytes)) {
+ 		retval = -EFAULT;
+ 		goto out_handle;

Copied: dists/wheezy-backports/linux/debian/patches/bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-dell-xps15.patch (from r22440, dists/sid/linux/debian/patches/bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-dell-xps15.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-dell-xps15.patch	Tue Apr  7 21:44:05 2015	(r22488, copy of r22440, dists/sid/linux/debian/patches/bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-dell-xps15.patch)
@@ -0,0 +1,34 @@
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Mon, 5 Jan 2015 08:57:04 +0100
+Subject: ACPI / video: Add disable_native_backlight quirk for Dell XPS15 L521X
+Origin: https://git.kernel.org/linus/6a3ef10bacb08860805e9053f919786dc34760ba
+
+The L521X variant of the Dell XPS15 has integrated nvidia graphics, and
+backlight control does not work properly when using the native interfaces.
+
+Link: https://bugzilla.redhat.com/show_bug.cgi?id=1163574
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki at intel.com>
+---
+ drivers/acpi/video.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+--- a/drivers/acpi/video.c
++++ b/drivers/acpi/video.c
+@@ -711,6 +711,16 @@ static struct dmi_system_id video_dmi_ta
+ 		DMI_MATCH(DMI_PRODUCT_NAME, "370R4E/370R4V/370R5E/3570RE/370R5V"),
+ 		},
+ 	},
++
++	{
++	 /* https://bugzilla.redhat.com/show_bug.cgi?id=1163574 */
++	 .callback = video_disable_native_backlight,
++	 .ident = "Dell XPS15 L521X",
++	 .matches = {
++		DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
++		DMI_MATCH(DMI_PRODUCT_NAME, "XPS L521X"),
++		},
++	},
+ 	{}
+ };
+ 

Copied: dists/wheezy-backports/linux/debian/patches/bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-samsung-510r.patch (from r22440, dists/sid/linux/debian/patches/bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-samsung-510r.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-samsung-510r.patch	Tue Apr  7 21:44:05 2015	(r22488, copy of r22440, dists/sid/linux/debian/patches/bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-samsung-510r.patch)
@@ -0,0 +1,35 @@
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Sat, 7 Feb 2015 09:53:53 +0100
+Subject: ACPI / video: Add disable_native_backlight quirk for Samsung 510R
+Origin: https://git.kernel.org/linus/e77a16355a29230b99bafe55834a8252e55308ec
+
+Backlight control through the native intel interface does not work properly
+on the Samsung 510R, where as using the acpi_video interface does work, add
+a quirk for this.
+
+Link: https://bugzilla.redhat.com/show_bug.cgi?id=1186097
+Cc: All applicable <stable at vger.kernel.org>
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki at intel.com>
+---
+ drivers/acpi/video.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+--- a/drivers/acpi/video.c
++++ b/drivers/acpi/video.c
+@@ -712,6 +712,15 @@ static struct dmi_system_id video_dmi_ta
+ 		},
+ 	},
+ 	{
++	 /* https://bugzilla.redhat.com/show_bug.cgi?id=1186097 */
++	 .callback = video_disable_native_backlight,
++	 .ident = "SAMSUNG 3570R/370R/470R/450R/510R/4450RV",
++	 .matches = {
++		DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
++		DMI_MATCH(DMI_PRODUCT_NAME, "3570R/370R/470R/450R/510R/4450RV"),
++		},
++	},
++	{
+ 	 /* https://bugzilla.redhat.com/show_bug.cgi?id=1094948 */
+ 	 .callback = video_disable_native_backlight,
+ 	 .ident = "SAMSUNG 730U3E/740U3E",

Copied: dists/wheezy-backports/linux/debian/patches/bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-samsung-730u3e-740u3e.patch (from r22440, dists/sid/linux/debian/patches/bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-samsung-730u3e-740u3e.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-samsung-730u3e-740u3e.patch	Tue Apr  7 21:44:05 2015	(r22488, copy of r22440, dists/sid/linux/debian/patches/bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-samsung-730u3e-740u3e.patch)
@@ -0,0 +1,34 @@
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Fri, 9 Jan 2015 16:22:57 +0100
+Subject: ACPI / video: Add disable_native_backlight quirk for Samsung
+ 730U3E/740U3E
+Origin: https://git.kernel.org/linus/3295d73002f4be341069a000aec4b8d7e5ea8d2c
+
+The Samsung 730U3E/740U3E has integrated ATI Radeon graphics, and backlight
+control does not work properly when using the native interfaces.
+
+Link: https://bugzilla.redhat.com/show_bug.cgi?id=1094948
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki at intel.com>
+---
+ drivers/acpi/video.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+--- a/drivers/acpi/video.c
++++ b/drivers/acpi/video.c
+@@ -711,6 +711,15 @@ static struct dmi_system_id video_dmi_ta
+ 		DMI_MATCH(DMI_PRODUCT_NAME, "370R4E/370R4V/370R5E/3570RE/370R5V"),
+ 		},
+ 	},
++	{
++	 /* https://bugzilla.redhat.com/show_bug.cgi?id=1094948 */
++	 .callback = video_disable_native_backlight,
++	 .ident = "SAMSUNG 730U3E/740U3E",
++	 .matches = {
++		DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
++		DMI_MATCH(DMI_PRODUCT_NAME, "730U3E/740U3E"),
++		},
++	},
+ 
+ 	{
+ 	 /* https://bugzilla.redhat.com/show_bug.cgi?id=1163574 */

Copied: dists/wheezy-backports/linux/debian/patches/bugfix/x86/acpi-video-add-some-samsung-models-to-disable_native.patch (from r22440, dists/sid/linux/debian/patches/bugfix/x86/acpi-video-add-some-samsung-models-to-disable_native.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/x86/acpi-video-add-some-samsung-models-to-disable_native.patch	Tue Apr  7 21:44:05 2015	(r22488, copy of r22440, dists/sid/linux/debian/patches/bugfix/x86/acpi-video-add-some-samsung-models-to-disable_native.patch)
@@ -0,0 +1,52 @@
+From: Aaron Lu <aaron.lu at intel.com>
+Date: Mon, 22 Dec 2014 15:18:05 +0800
+Subject: ACPI / video: Add some Samsung models to disable_native_backlight
+ list
+Origin: https://git.kernel.org/linus/7d0b93499f4879ddbc75d594f4ea216ba964f78e
+
+Several Samsung laptop models (SAMSUNG 870Z5E/880Z5E/680Z5E and
+SAMSUNG 370R4E/370R4V/370R5E/3570RE/370R5V) do not have a working
+native backlight control interface so restore their acpi_videoX
+interface.
+
+Link: https://bugzilla.kernel.org/show_bug.cgi?id=84221
+Link: https://bugzilla.kernel.org/show_bug.cgi?id=84651
+For SAMSUNG 870Z5E/880Z5E/680Z5E:
+Reported-and-tested-by: Brent Saner <brent.saner at gmail.com>
+Reported-by: Vitaliy Filippov <vitalif at yourcmc.ru>
+Reported-by: Laszlo KREKACS <laszlo.krekacs.list at gmail.com>
+For SAMSUNG 370R4E/370R4V/370R5E/3570RE/370R5V:
+Reported-by: Vladimir Perepechin <vovochka13 at gmail.com>
+Cc: 3.17+ <stable at vger.kernel.org> # 3.17+
+Signed-off-by: Aaron Lu <aaron.lu at intel.com>
+Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki at intel.com>
+---
+ drivers/acpi/video.c | 17 +++++++++++++++++
+ 1 file changed, 17 insertions(+)
+
+--- a/drivers/acpi/video.c
++++ b/drivers/acpi/video.c
+@@ -694,6 +694,23 @@ static struct dmi_system_id video_dmi_ta
+ 		DMI_MATCH(DMI_PRODUCT_NAME, "HP ENVY 15 Notebook PC"),
+ 		},
+ 	},
++
++	{
++	 .callback = video_disable_native_backlight,
++	 .ident = "SAMSUNG 870Z5E/880Z5E/680Z5E",
++	 .matches = {
++		DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
++		DMI_MATCH(DMI_PRODUCT_NAME, "870Z5E/880Z5E/680Z5E"),
++		},
++	},
++	{
++	 .callback = video_disable_native_backlight,
++	 .ident = "SAMSUNG 370R4E/370R4V/370R5E/3570RE/370R5V",
++	 .matches = {
++		DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
++		DMI_MATCH(DMI_PRODUCT_NAME, "370R4E/370R4V/370R5E/3570RE/370R5V"),
++		},
++	},
+ 	{}
+ };
+ 

Copied: dists/wheezy-backports/linux/debian/patches/bugfix/x86/acpi-video-disable-native-backlight-on-samsung-series-9.patch (from r22440, dists/sid/linux/debian/patches/bugfix/x86/acpi-video-disable-native-backlight-on-samsung-series-9.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/x86/acpi-video-disable-native-backlight-on-samsung-series-9.patch	Tue Apr  7 21:44:05 2015	(r22488, copy of r22440, dists/sid/linux/debian/patches/bugfix/x86/acpi-video-disable-native-backlight-on-samsung-series-9.patch)
@@ -0,0 +1,46 @@
+From: Jens Reyer <jens.reyer at gmail.com>
+Date: Tue, 17 Feb 2015 19:07:29 +0100
+Subject: ACPI / video: Disable native backlight on Samsung Series 9 laptops
+Origin: https://git.kernel.org/linus/3120d03cf64d7f9fd71231827af2c1550aa4caa7
+
+Add video_disable_native_backlight quirk for SAMSUNG 900X3C/900X3D/
+900X3E/900X4C/900X4D laptops.
+
+The native intel backlight controls do not work correctly on SAMSUNG
+Series 9 (900X3C/900X3D/900X3E/900X4C/900X4D) laptops:
+One machine has an completely dimmed (= black) display after boot at the
+GDM login screen and brightness controls work only between 0 and 5%
+(= no effect).
+Another machine has the same brightness control issues if an external
+HDMI monitor is or gets connected, although the initial brightness is
+ok.
+After login to Gnome both machines always work fine.
+
+Tested on both machines.
+
+Link: https://bugs.freedesktop.org/show_bug.cgi?id=87286
+Link: https://bugs.debian.org/772440
+Signed-off-by: Jens Reyer <jens.reyer at gmail.com>
+Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki at intel.com>
+---
+ drivers/acpi/video.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+--- a/drivers/acpi/video.c
++++ b/drivers/acpi/video.c
+@@ -729,6 +729,15 @@ static struct dmi_system_id video_dmi_ta
+ 		DMI_MATCH(DMI_PRODUCT_NAME, "730U3E/740U3E"),
+ 		},
+ 	},
++	{
++	 /* https://bugs.freedesktop.org/show_bug.cgi?id=87286 */
++	 .callback = video_disable_native_backlight,
++	 .ident = "SAMSUNG 900X3C/900X3D/900X3E/900X4C/900X4D",
++	 .matches = {
++		DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
++		DMI_MATCH(DMI_PRODUCT_NAME, "900X3C/900X3D/900X3E/900X4C/900X4D"),
++		},
++	},
+ 
+ 	{
+ 	 /* https://bugzilla.redhat.com/show_bug.cgi?id=1163574 */

Copied: dists/wheezy-backports/linux/debian/patches/bugfix/x86/drm-i915-quietly-reject-attempts-to-create-non-pagealigned-stolen-objects.patch (from r22440, dists/sid/linux/debian/patches/bugfix/x86/drm-i915-quietly-reject-attempts-to-create-non-pagealigned-stolen-objects.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/x86/drm-i915-quietly-reject-attempts-to-create-non-pagealigned-stolen-objects.patch	Tue Apr  7 21:44:05 2015	(r22488, copy of r22440, dists/sid/linux/debian/patches/bugfix/x86/drm-i915-quietly-reject-attempts-to-create-non-pagealigned-stolen-objects.patch)
@@ -0,0 +1,52 @@
+Subject: drm/i915: Quietly reject attempts to create non-pagealigned stolen
+ objects
+From: Chris Wilson <chris at chris-wilson.co.uk>
+Date: Wed, 10 Dec 2014 08:17:11 +0000
+Origin: http://patchwork.freedesktop.org/patch/38659/
+Bug: https://bugs.freedesktop.org/show_bug.cgi?id=86883
+Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=763155
+Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=764528
+Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=768027
+Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=771227
+
+This added as a BUG_ON as it considered that no one would ever request
+an unaligned object. However, it turns out that some BIOSes will
+allocate a scanout that is offset from 0 and not aligned to a page
+boundary, and we were passing this through and hitting the BUG_ON during
+boot.
+
+Quietly reject such a request to reserve the unaligned stolen object and
+let the boot continue, restoring previous behaviour (i.e. no BIOS
+framebuffer preservation).
+
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=86883
+Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
+Cc: stable at vger.kernel.org
+Tested-By: PRC QA PRTS (Patch Regression Test System Contact: shuang.he at intel.com)
+Tested-by: Johannes W <jargon <at> molb.org>
+---
+drivers/gpu/drm/i915/i915_gem_stolen.c | 10 ++++++----
+ 1 file changed, 6 insertions(+), 4 deletions(-)
+
+--- a/drivers/gpu/drm/i915/i915_gem_stolen.c
++++ b/drivers/gpu/drm/i915/i915_gem_stolen.c
+@@ -431,13 +431,15 @@ i915_gem_object_create_stolen_for_preall
+ 	DRM_DEBUG_KMS("creating preallocated stolen object: stolen_offset=%x, gtt_offset=%x, size=%x\n",
+ 			stolen_offset, gtt_offset, size);
+ 
+-	/* KISS and expect everything to be page-aligned */
+-	BUG_ON(stolen_offset & 4095);
+-	BUG_ON(size & 4095);
+-
+ 	if (WARN_ON(size == 0))
+ 		return NULL;
+ 
++	/* KISS and expect everything to be GTT page-aligned */
++	if ((stolen_offset | size) & 4095) {
++		DRM_DEBUG_KMS("request for unaligned stolen object, denied\n");
++		return NULL;
++	}
++
+ 	stolen = kzalloc(sizeof(*stolen), GFP_KERNEL);
+ 	if (!stolen)
+ 		return NULL;

Copied: dists/wheezy-backports/linux/debian/patches/bugfix/x86/x86-hpet-force-enable-for-e6xx-based-systems.patch (from r22440, dists/sid/linux/debian/patches/bugfix/x86/x86-hpet-force-enable-for-e6xx-based-systems.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/bugfix/x86/x86-hpet-force-enable-for-e6xx-based-systems.patch	Tue Apr  7 21:44:05 2015	(r22488, copy of r22440, dists/sid/linux/debian/patches/bugfix/x86/x86-hpet-force-enable-for-e6xx-based-systems.patch)
@@ -0,0 +1,63 @@
+From: Peter Neubauer <pneubauer at bluerwhite.org>
+Date: Fri, 12 Sep 2014 13:06:13 +0200
+Subject: x86: HPET force enable for e6xx based systems
+Origin: https://git.kernel.org/linus/2e151c70dfb0075ff83bec305c52a9da1ba49089
+
+As the Soekris net6501 and other e6xx based systems do not have
+any ACPI implementation, HPET won't get enabled.
+This patch enables HPET on such platforms.
+
+[    0.430149] pci 0000:00:01.0: Force enabled HPET at 0xfed00000
+[    0.644838] HPET: 3 timers in total, 0 timers will be used for per-cpu timer
+
+Original patch by Peter Neubauer (http://www.mail-archive.com/soekris-tech@lists.soekris.com/msg06462.html)
+slightly modified by Conrad Kostecki <ck at conrad-kostecki.de> and massaged
+accoring to Thomas Gleixners <tglx at linutronix.de> by me.
+
+Suggested-by: Conrad Kostecki <ck at conrad-kostecki.de>
+Signed-off-by: Eric Sesterhenn <eric.sesterhenn at lsexperts.de>
+Cc: Peter Neubauer <pneubauer at bluerwhite.org>
+Link: http://lkml.kernel.org/r/5412D3A5.2030909@lsexperts.de
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+---
+ arch/x86/kernel/quirks.c | 18 ++++++++++++++++++
+ include/linux/pci_ids.h  |  1 +
+ 2 files changed, 19 insertions(+)
+
+--- a/arch/x86/kernel/quirks.c
++++ b/arch/x86/kernel/quirks.c
+@@ -498,6 +498,24 @@ void force_hpet_resume(void)
+ }
+ 
+ /*
++ * According to the datasheet e6xx systems have the HPET hardwired to
++ * 0xfed00000
++ */
++static void e6xx_force_enable_hpet(struct pci_dev *dev)
++{
++	if (hpet_address || force_hpet_address)
++		return;
++
++	force_hpet_address = 0xFED00000;
++	force_hpet_resume_type = NONE_FORCE_HPET_RESUME;
++	dev_printk(KERN_DEBUG, &dev->dev, "Force enabled HPET at "
++		"0x%lx\n", force_hpet_address);
++	return;
++}
++DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_E6XX_CU,
++			 e6xx_force_enable_hpet);
++
++/*
+  * HPET MSI on some boards (ATI SB700/SB800) has side effect on
+  * floppy DMA. Disable HPET MSI on such platforms.
+  * See erratum #27 (Misinterpreted MSI Requests May Result in
+--- a/include/linux/pci_ids.h
++++ b/include/linux/pci_ids.h
+@@ -2859,6 +2859,7 @@
+ #define PCI_DEVICE_ID_INTEL_82372FB_1	0x7601
+ #define PCI_DEVICE_ID_INTEL_SCH_LPC	0x8119
+ #define PCI_DEVICE_ID_INTEL_SCH_IDE	0x811a
++#define PCI_DEVICE_ID_INTEL_E6XX_CU	0x8183
+ #define PCI_DEVICE_ID_INTEL_ITC_LPC	0x8186
+ #define PCI_DEVICE_ID_INTEL_82454GX	0x84c4
+ #define PCI_DEVICE_ID_INTEL_82450GX	0x84c5

Copied: dists/wheezy-backports/linux/debian/patches/debian/mm-fix-pagecache_get_page-abi-change-in-3.16.7-ckt6.patch (from r22440, dists/sid/linux/debian/patches/debian/mm-fix-pagecache_get_page-abi-change-in-3.16.7-ckt6.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/debian/mm-fix-pagecache_get_page-abi-change-in-3.16.7-ckt6.patch	Tue Apr  7 21:44:05 2015	(r22488, copy of r22440, dists/sid/linux/debian/patches/debian/mm-fix-pagecache_get_page-abi-change-in-3.16.7-ckt6.patch)
@@ -0,0 +1,46 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Tue, 24 Feb 2015 20:05:05 +0000
+Subject: mm: Fix pagecache_get_page() ABI change in 3.16.7-ckt6
+Forwarded: not-needed
+
+The last parameter to pagecache_get_page() was dropped, as some
+callers passed the wrong value and it is really redundant.
+
+As most filesystems need this function, we should keep the old
+function signature for OOT modules.  Rename the function, add a
+wrapper with the old name and parameters, and add a macro to make all
+new callers use the new function.
+
+---
+--- a/include/linux/pagemap.h
++++ b/include/linux/pagemap.h
+@@ -267,7 +267,12 @@ pgoff_t page_cache_prev_hole(struct addr
+ #define FGP_NOWAIT		0x00000020
+ 
+ struct page *pagecache_get_page(struct address_space *mapping, pgoff_t offset,
+-		int fgp_flags, gfp_t cache_gfp_mask);
++				int fgp_flags, gfp_t cache_gfp_mask,
++				gfp_t radix_gfp_mask);
++struct page *
++pagecache_get_page_fixed(struct address_space *mapping, pgoff_t offset,
++			 int fgp_flags, gfp_t cache_gfp_mask);
++#define pagecache_get_page pagecache_get_page_fixed
+ 
+ /**
+  * find_get_page - find and get a page reference
+--- a/mm/filemap.c
++++ b/mm/filemap.c
+@@ -2674,3 +2674,13 @@ int try_to_release_page(struct page *pag
+ }
+ 
+ EXPORT_SYMBOL(try_to_release_page);
++
++#undef pagecache_get_page
++struct page *pagecache_get_page(struct address_space *mapping, pgoff_t offset,
++				int fgp_flags, gfp_t cache_gfp_mask,
++				gfp_t radix_gfp_mask __always_unused)
++{
++	return pagecache_get_page_fixed(mapping, offset, fgp_flags,
++					cache_gfp_mask);
++}
++EXPORT_SYMBOL(pagecache_get_page);

Copied: dists/wheezy-backports/linux/debian/patches/debian/no-clean.patch (from r22440, dists/sid/linux/debian/patches/debian/no-clean.patch)
==============================================================================

Copied: dists/wheezy-backports/linux/debian/patches/debian/perf-fix-abi-change-in-3.16.7-ckt6.patch (from r22440, dists/sid/linux/debian/patches/debian/perf-fix-abi-change-in-3.16.7-ckt6.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/debian/perf-fix-abi-change-in-3.16.7-ckt6.patch	Tue Apr  7 21:44:05 2015	(r22488, copy of r22440, dists/sid/linux/debian/patches/debian/perf-fix-abi-change-in-3.16.7-ckt6.patch)
@@ -0,0 +1,32 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Tue, 24 Feb 2015 09:53:48 +0000
+Subject: perf: Fix ABI change in 3.16.7-ckt6
+Forwarded: not-needed
+
+Commit c3c87e770458 ('perf: Tighten (and fix) the grouping condition')
+removed perf_event_context::type and its type definition.  Add them
+back.
+
+--- a/include/linux/perf_event.h
++++ b/include/linux/perf_event.h
+@@ -453,6 +453,12 @@ struct perf_event {
+ #endif /* CONFIG_PERF_EVENTS */
+ };
+ 
++/* now unused */
++enum perf_event_context_type {
++	task_context,
++	cpu_context,
++};
++
+ /**
+  * struct perf_event_context - event context structure
+  *
+@@ -460,6 +466,7 @@ struct perf_event {
+  */
+ struct perf_event_context {
+ 	struct pmu			*pmu;
++	enum perf_event_context_type	type; /* now unused */
+ 	/*
+ 	 * Protect the states of the events in the list,
+ 	 * nr_active, and the list:

Copied: dists/wheezy-backports/linux/debian/patches/debian/qxl-disable-modeset-by-default.patch (from r22440, dists/sid/linux/debian/patches/debian/qxl-disable-modeset-by-default.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/debian/qxl-disable-modeset-by-default.patch	Tue Apr  7 21:44:05 2015	(r22488, copy of r22440, dists/sid/linux/debian/patches/debian/qxl-disable-modeset-by-default.patch)
@@ -0,0 +1,20 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Subject: qxl: Disable by default
+Forwarded: not-needed
+
+This kernel driver is incompatible with older versions of
+xserver-xorg-video-qxl, so do not enable it by default.  It should be
+enabled by a modprobe configuration file installed by
+xserver-xorg-video-qxl in jessie.
+
+--- a/drivers/gpu/drm/qxl/qxl_drv.c
++++ b/drivers/gpu/drm/qxl/qxl_drv.c
+@@ -47,7 +47,7 @@ static DEFINE_PCI_DEVICE_TABLE(pciidlist
+ };
+ MODULE_DEVICE_TABLE(pci, pciidlist);
+ 
+-static int qxl_modeset = -1;
++static int qxl_modeset = 0;
+ int qxl_num_crtc = 4;
+ 
+ MODULE_PARM_DESC(modeset, "Disable/Enable modesetting");

Copied: dists/wheezy-backports/linux/debian/patches/debian/revert-quota-switch-get_dqblk-and-set_dqblk-to-use-b.patch (from r22440, dists/sid/linux/debian/patches/debian/revert-quota-switch-get_dqblk-and-set_dqblk-to-use-b.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/debian/revert-quota-switch-get_dqblk-and-set_dqblk-to-use-b.patch	Tue Apr  7 21:44:05 2015	(r22488, copy of r22440, dists/sid/linux/debian/patches/debian/revert-quota-switch-get_dqblk-and-set_dqblk-to-use-b.patch)
@@ -0,0 +1,940 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Tue, 24 Feb 2015 06:11:44 +0000
+Subject: Revert "quota: Switch ->get_dqblk() and ->set_dqblk() to use bytes as space units"
+Forwarded: not-needed
+
+This reverts commit e5c1cda088832f58c8477ac993ed70ec98fa1221.  based
+on commit 14bf61ffe6ac54afcd1e888a4407fe16054483db upstream.  It makes
+a module ABI change and doesn't seem worth the trouble.  We can
+probably fix the issue later in a somewhat uglier way without the ABI
+change.
+---
+ fs/gfs2/quota.c          |  49 +++++++-------
+ fs/quota/dquot.c         |  83 ++++++++++++------------
+ fs/quota/quota.c         | 162 ++++++++---------------------------------------
+ fs/xfs/xfs_qm.h          |   4 +-
+ fs/xfs/xfs_qm_syscalls.c | 156 ++++++++++++++++++++++++++-------------------
+ fs/xfs/xfs_quotaops.c    |   8 +--
+ include/linux/quota.h    |  47 +-------------
+ include/linux/quotaops.h |   4 +-
+ 8 files changed, 195 insertions(+), 318 deletions(-)
+
+diff --git a/fs/gfs2/quota.c b/fs/gfs2/quota.c
+index dc482ff..64b29f7 100644
+--- a/fs/gfs2/quota.c
++++ b/fs/gfs2/quota.c
+@@ -667,7 +667,7 @@ static void do_qc(struct gfs2_quota_data *qd, s64 change)
+ 
+ static int gfs2_adjust_quota(struct gfs2_inode *ip, loff_t loc,
+ 			     s64 change, struct gfs2_quota_data *qd,
+-			     struct qc_dqblk *fdq)
++			     struct fs_disk_quota *fdq)
+ {
+ 	struct inode *inode = &ip->i_inode;
+ 	struct gfs2_sbd *sdp = GFS2_SB(inode);
+@@ -697,16 +697,16 @@ static int gfs2_adjust_quota(struct gfs2_inode *ip, loff_t loc,
+ 	be64_add_cpu(&q.qu_value, change);
+ 	qd->qd_qb.qb_value = q.qu_value;
+ 	if (fdq) {
+-		if (fdq->d_fieldmask & QC_SPC_SOFT) {
+-			q.qu_warn = cpu_to_be64(fdq->d_spc_softlimit >> sdp->sd_sb.sb_bsize_shift);
++		if (fdq->d_fieldmask & FS_DQ_BSOFT) {
++			q.qu_warn = cpu_to_be64(fdq->d_blk_softlimit >> sdp->sd_fsb2bb_shift);
+ 			qd->qd_qb.qb_warn = q.qu_warn;
+ 		}
+-		if (fdq->d_fieldmask & QC_SPC_HARD) {
+-			q.qu_limit = cpu_to_be64(fdq->d_spc_hardlimit >> sdp->sd_sb.sb_bsize_shift);
++		if (fdq->d_fieldmask & FS_DQ_BHARD) {
++			q.qu_limit = cpu_to_be64(fdq->d_blk_hardlimit >> sdp->sd_fsb2bb_shift);
+ 			qd->qd_qb.qb_limit = q.qu_limit;
+ 		}
+-		if (fdq->d_fieldmask & QC_SPACE) {
+-			q.qu_value = cpu_to_be64(fdq->d_space >> sdp->sd_sb.sb_bsize_shift);
++		if (fdq->d_fieldmask & FS_DQ_BCOUNT) {
++			q.qu_value = cpu_to_be64(fdq->d_bcount >> sdp->sd_fsb2bb_shift);
+ 			qd->qd_qb.qb_value = q.qu_value;
+ 		}
+ 	}
+@@ -1502,7 +1502,7 @@ static int gfs2_quota_get_xstate(struct super_block *sb,
+ }
+ 
+ static int gfs2_get_dqblk(struct super_block *sb, struct kqid qid,
+-			  struct qc_dqblk *fdq)
++			  struct fs_disk_quota *fdq)
+ {
+ 	struct gfs2_sbd *sdp = sb->s_fs_info;
+ 	struct gfs2_quota_lvb *qlvb;
+@@ -1510,7 +1510,7 @@ static int gfs2_get_dqblk(struct super_block *sb, struct kqid qid,
+ 	struct gfs2_holder q_gh;
+ 	int error;
+ 
+-	memset(fdq, 0, sizeof(*fdq));
++	memset(fdq, 0, sizeof(struct fs_disk_quota));
+ 
+ 	if (sdp->sd_args.ar_quota == GFS2_QUOTA_OFF)
+ 		return -ESRCH; /* Crazy XFS error code */
+@@ -1527,9 +1527,12 @@ static int gfs2_get_dqblk(struct super_block *sb, struct kqid qid,
+ 		goto out;
+ 
+ 	qlvb = (struct gfs2_quota_lvb *)qd->qd_gl->gl_lksb.sb_lvbptr;
+-	fdq->d_spc_hardlimit = be64_to_cpu(qlvb->qb_limit) << sdp->sd_sb.sb_bsize_shift;
+-	fdq->d_spc_softlimit = be64_to_cpu(qlvb->qb_warn) << sdp->sd_sb.sb_bsize_shift;
+-	fdq->d_space = be64_to_cpu(qlvb->qb_value) << sdp->sd_sb.sb_bsize_shift;
++	fdq->d_version = FS_DQUOT_VERSION;
++	fdq->d_flags = (qid.type == USRQUOTA) ? FS_USER_QUOTA : FS_GROUP_QUOTA;
++	fdq->d_id = from_kqid_munged(current_user_ns(), qid);
++	fdq->d_blk_hardlimit = be64_to_cpu(qlvb->qb_limit) << sdp->sd_fsb2bb_shift;
++	fdq->d_blk_softlimit = be64_to_cpu(qlvb->qb_warn) << sdp->sd_fsb2bb_shift;
++	fdq->d_bcount = be64_to_cpu(qlvb->qb_value) << sdp->sd_fsb2bb_shift;
+ 
+ 	gfs2_glock_dq_uninit(&q_gh);
+ out:
+@@ -1538,10 +1541,10 @@ out:
+ }
+ 
+ /* GFS2 only supports a subset of the XFS fields */
+-#define GFS2_FIELDMASK (QC_SPC_SOFT|QC_SPC_HARD|QC_SPACE)
++#define GFS2_FIELDMASK (FS_DQ_BSOFT|FS_DQ_BHARD|FS_DQ_BCOUNT)
+ 
+ static int gfs2_set_dqblk(struct super_block *sb, struct kqid qid,
+-			  struct qc_dqblk *fdq)
++			  struct fs_disk_quota *fdq)
+ {
+ 	struct gfs2_sbd *sdp = sb->s_fs_info;
+ 	struct gfs2_inode *ip = GFS2_I(sdp->sd_quota_inode);
+@@ -1585,17 +1588,17 @@ static int gfs2_set_dqblk(struct super_block *sb, struct kqid qid,
+ 		goto out_i;
+ 
+ 	/* If nothing has changed, this is a no-op */
+-	if ((fdq->d_fieldmask & QC_SPC_SOFT) &&
+-	    ((fdq->d_spc_softlimit >> sdp->sd_sb.sb_bsize_shift) == be64_to_cpu(qd->qd_qb.qb_warn)))
+-		fdq->d_fieldmask ^= QC_SPC_SOFT;
++	if ((fdq->d_fieldmask & FS_DQ_BSOFT) &&
++	    ((fdq->d_blk_softlimit >> sdp->sd_fsb2bb_shift) == be64_to_cpu(qd->qd_qb.qb_warn)))
++		fdq->d_fieldmask ^= FS_DQ_BSOFT;
+ 
+-	if ((fdq->d_fieldmask & QC_SPC_HARD) &&
+-	    ((fdq->d_spc_hardlimit >> sdp->sd_sb.sb_bsize_shift) == be64_to_cpu(qd->qd_qb.qb_limit)))
+-		fdq->d_fieldmask ^= QC_SPC_HARD;
++	if ((fdq->d_fieldmask & FS_DQ_BHARD) &&
++	    ((fdq->d_blk_hardlimit >> sdp->sd_fsb2bb_shift) == be64_to_cpu(qd->qd_qb.qb_limit)))
++		fdq->d_fieldmask ^= FS_DQ_BHARD;
+ 
+-	if ((fdq->d_fieldmask & QC_SPACE) &&
+-	    ((fdq->d_space >> sdp->sd_sb.sb_bsize_shift) == be64_to_cpu(qd->qd_qb.qb_value)))
+-		fdq->d_fieldmask ^= QC_SPACE;
++	if ((fdq->d_fieldmask & FS_DQ_BCOUNT) &&
++	    ((fdq->d_bcount >> sdp->sd_fsb2bb_shift) == be64_to_cpu(qd->qd_qb.qb_value)))
++		fdq->d_fieldmask ^= FS_DQ_BCOUNT;
+ 
+ 	if (fdq->d_fieldmask == 0)
+ 		goto out_i;
+diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c
+index 6a35035..f56a357 100644
+--- a/fs/quota/dquot.c
++++ b/fs/quota/dquot.c
+@@ -2407,25 +2407,30 @@ static inline qsize_t stoqb(qsize_t space)
+ }
+ 
+ /* Generic routine for getting common part of quota structure */
+-static void do_get_dqblk(struct dquot *dquot, struct qc_dqblk *di)
++static void do_get_dqblk(struct dquot *dquot, struct fs_disk_quota *di)
+ {
+ 	struct mem_dqblk *dm = &dquot->dq_dqb;
+ 
+ 	memset(di, 0, sizeof(*di));
++	di->d_version = FS_DQUOT_VERSION;
++	di->d_flags = dquot->dq_id.type == USRQUOTA ?
++			FS_USER_QUOTA : FS_GROUP_QUOTA;
++	di->d_id = from_kqid_munged(current_user_ns(), dquot->dq_id);
++
+ 	spin_lock(&dq_data_lock);
+-	di->d_spc_hardlimit = dm->dqb_bhardlimit;
+-	di->d_spc_softlimit = dm->dqb_bsoftlimit;
++	di->d_blk_hardlimit = stoqb(dm->dqb_bhardlimit);
++	di->d_blk_softlimit = stoqb(dm->dqb_bsoftlimit);
+ 	di->d_ino_hardlimit = dm->dqb_ihardlimit;
+ 	di->d_ino_softlimit = dm->dqb_isoftlimit;
+-	di->d_space = dm->dqb_curspace + dm->dqb_rsvspace;
+-	di->d_ino_count = dm->dqb_curinodes;
+-	di->d_spc_timer = dm->dqb_btime;
+-	di->d_ino_timer = dm->dqb_itime;
++	di->d_bcount = dm->dqb_curspace + dm->dqb_rsvspace;
++	di->d_icount = dm->dqb_curinodes;
++	di->d_btimer = dm->dqb_btime;
++	di->d_itimer = dm->dqb_itime;
+ 	spin_unlock(&dq_data_lock);
+ }
+ 
+ int dquot_get_dqblk(struct super_block *sb, struct kqid qid,
+-		    struct qc_dqblk *di)
++		    struct fs_disk_quota *di)
+ {
+ 	struct dquot *dquot;
+ 
+@@ -2439,70 +2444,70 @@ int dquot_get_dqblk(struct super_block *sb, struct kqid qid,
+ }
+ EXPORT_SYMBOL(dquot_get_dqblk);
+ 
+-#define VFS_QC_MASK \
+-	(QC_SPACE | QC_SPC_SOFT | QC_SPC_HARD | \
+-	 QC_INO_COUNT | QC_INO_SOFT | QC_INO_HARD | \
+-	 QC_SPC_TIMER | QC_INO_TIMER)
++#define VFS_FS_DQ_MASK \
++	(FS_DQ_BCOUNT | FS_DQ_BSOFT | FS_DQ_BHARD | \
++	 FS_DQ_ICOUNT | FS_DQ_ISOFT | FS_DQ_IHARD | \
++	 FS_DQ_BTIMER | FS_DQ_ITIMER)
+ 
+ /* Generic routine for setting common part of quota structure */
+-static int do_set_dqblk(struct dquot *dquot, struct qc_dqblk *di)
++static int do_set_dqblk(struct dquot *dquot, struct fs_disk_quota *di)
+ {
+ 	struct mem_dqblk *dm = &dquot->dq_dqb;
+ 	int check_blim = 0, check_ilim = 0;
+ 	struct mem_dqinfo *dqi = &sb_dqopt(dquot->dq_sb)->info[dquot->dq_id.type];
+ 
+-	if (di->d_fieldmask & ~VFS_QC_MASK)
++	if (di->d_fieldmask & ~VFS_FS_DQ_MASK)
+ 		return -EINVAL;
+ 
+-	if (((di->d_fieldmask & QC_SPC_SOFT) &&
+-	     stoqb(di->d_spc_softlimit) > dqi->dqi_maxblimit) ||
+-	    ((di->d_fieldmask & QC_SPC_HARD) &&
+-	     stoqb(di->d_spc_hardlimit) > dqi->dqi_maxblimit) ||
+-	    ((di->d_fieldmask & QC_INO_SOFT) &&
++	if (((di->d_fieldmask & FS_DQ_BSOFT) &&
++	     (di->d_blk_softlimit > dqi->dqi_maxblimit)) ||
++	    ((di->d_fieldmask & FS_DQ_BHARD) &&
++	     (di->d_blk_hardlimit > dqi->dqi_maxblimit)) ||
++	    ((di->d_fieldmask & FS_DQ_ISOFT) &&
+ 	     (di->d_ino_softlimit > dqi->dqi_maxilimit)) ||
+-	    ((di->d_fieldmask & QC_INO_HARD) &&
++	    ((di->d_fieldmask & FS_DQ_IHARD) &&
+ 	     (di->d_ino_hardlimit > dqi->dqi_maxilimit)))
+ 		return -ERANGE;
+ 
+ 	spin_lock(&dq_data_lock);
+-	if (di->d_fieldmask & QC_SPACE) {
+-		dm->dqb_curspace = di->d_space - dm->dqb_rsvspace;
++	if (di->d_fieldmask & FS_DQ_BCOUNT) {
++		dm->dqb_curspace = di->d_bcount - dm->dqb_rsvspace;
+ 		check_blim = 1;
+ 		set_bit(DQ_LASTSET_B + QIF_SPACE_B, &dquot->dq_flags);
+ 	}
+ 
+-	if (di->d_fieldmask & QC_SPC_SOFT)
+-		dm->dqb_bsoftlimit = di->d_spc_softlimit;
+-	if (di->d_fieldmask & QC_SPC_HARD)
+-		dm->dqb_bhardlimit = di->d_spc_hardlimit;
+-	if (di->d_fieldmask & (QC_SPC_SOFT | QC_SPC_HARD)) {
++	if (di->d_fieldmask & FS_DQ_BSOFT)
++		dm->dqb_bsoftlimit = qbtos(di->d_blk_softlimit);
++	if (di->d_fieldmask & FS_DQ_BHARD)
++		dm->dqb_bhardlimit = qbtos(di->d_blk_hardlimit);
++	if (di->d_fieldmask & (FS_DQ_BSOFT | FS_DQ_BHARD)) {
+ 		check_blim = 1;
+ 		set_bit(DQ_LASTSET_B + QIF_BLIMITS_B, &dquot->dq_flags);
+ 	}
+ 
+-	if (di->d_fieldmask & QC_INO_COUNT) {
+-		dm->dqb_curinodes = di->d_ino_count;
++	if (di->d_fieldmask & FS_DQ_ICOUNT) {
++		dm->dqb_curinodes = di->d_icount;
+ 		check_ilim = 1;
+ 		set_bit(DQ_LASTSET_B + QIF_INODES_B, &dquot->dq_flags);
+ 	}
+ 
+-	if (di->d_fieldmask & QC_INO_SOFT)
++	if (di->d_fieldmask & FS_DQ_ISOFT)
+ 		dm->dqb_isoftlimit = di->d_ino_softlimit;
+-	if (di->d_fieldmask & QC_INO_HARD)
++	if (di->d_fieldmask & FS_DQ_IHARD)
+ 		dm->dqb_ihardlimit = di->d_ino_hardlimit;
+-	if (di->d_fieldmask & (QC_INO_SOFT | QC_INO_HARD)) {
++	if (di->d_fieldmask & (FS_DQ_ISOFT | FS_DQ_IHARD)) {
+ 		check_ilim = 1;
+ 		set_bit(DQ_LASTSET_B + QIF_ILIMITS_B, &dquot->dq_flags);
+ 	}
+ 
+-	if (di->d_fieldmask & QC_SPC_TIMER) {
+-		dm->dqb_btime = di->d_spc_timer;
++	if (di->d_fieldmask & FS_DQ_BTIMER) {
++		dm->dqb_btime = di->d_btimer;
+ 		check_blim = 1;
+ 		set_bit(DQ_LASTSET_B + QIF_BTIME_B, &dquot->dq_flags);
+ 	}
+ 
+-	if (di->d_fieldmask & QC_INO_TIMER) {
+-		dm->dqb_itime = di->d_ino_timer;
++	if (di->d_fieldmask & FS_DQ_ITIMER) {
++		dm->dqb_itime = di->d_itimer;
+ 		check_ilim = 1;
+ 		set_bit(DQ_LASTSET_B + QIF_ITIME_B, &dquot->dq_flags);
+ 	}
+@@ -2512,7 +2517,7 @@ static int do_set_dqblk(struct dquot *dquot, struct qc_dqblk *di)
+ 		    dm->dqb_curspace < dm->dqb_bsoftlimit) {
+ 			dm->dqb_btime = 0;
+ 			clear_bit(DQ_BLKS_B, &dquot->dq_flags);
+-		} else if (!(di->d_fieldmask & QC_SPC_TIMER))
++		} else if (!(di->d_fieldmask & FS_DQ_BTIMER))
+ 			/* Set grace only if user hasn't provided his own... */
+ 			dm->dqb_btime = get_seconds() + dqi->dqi_bgrace;
+ 	}
+@@ -2521,7 +2526,7 @@ static int do_set_dqblk(struct dquot *dquot, struct qc_dqblk *di)
+ 		    dm->dqb_curinodes < dm->dqb_isoftlimit) {
+ 			dm->dqb_itime = 0;
+ 			clear_bit(DQ_INODES_B, &dquot->dq_flags);
+-		} else if (!(di->d_fieldmask & QC_INO_TIMER))
++		} else if (!(di->d_fieldmask & FS_DQ_ITIMER))
+ 			/* Set grace only if user hasn't provided his own... */
+ 			dm->dqb_itime = get_seconds() + dqi->dqi_igrace;
+ 	}
+@@ -2537,7 +2542,7 @@ static int do_set_dqblk(struct dquot *dquot, struct qc_dqblk *di)
+ }
+ 
+ int dquot_set_dqblk(struct super_block *sb, struct kqid qid,
+-		  struct qc_dqblk *di)
++		  struct fs_disk_quota *di)
+ {
+ 	struct dquot *dquot;
+ 	int rc;
+diff --git a/fs/quota/quota.c b/fs/quota/quota.c
+index 47bd897..ff3f0b3 100644
+--- a/fs/quota/quota.c
++++ b/fs/quota/quota.c
+@@ -115,27 +115,17 @@ static int quota_setinfo(struct super_block *sb, int type, void __user *addr)
+ 	return sb->s_qcop->set_info(sb, type, &info);
+ }
+ 
+-static inline qsize_t qbtos(qsize_t blocks)
+-{
+-	return blocks << QIF_DQBLKSIZE_BITS;
+-}
+-
+-static inline qsize_t stoqb(qsize_t space)
+-{
+-	return (space + QIF_DQBLKSIZE - 1) >> QIF_DQBLKSIZE_BITS;
+-}
+-
+-static void copy_to_if_dqblk(struct if_dqblk *dst, struct qc_dqblk *src)
++static void copy_to_if_dqblk(struct if_dqblk *dst, struct fs_disk_quota *src)
+ {
+ 	memset(dst, 0, sizeof(*dst));
+-	dst->dqb_bhardlimit = stoqb(src->d_spc_hardlimit);
+-	dst->dqb_bsoftlimit = stoqb(src->d_spc_softlimit);
+-	dst->dqb_curspace = src->d_space;
++	dst->dqb_bhardlimit = src->d_blk_hardlimit;
++	dst->dqb_bsoftlimit = src->d_blk_softlimit;
++	dst->dqb_curspace = src->d_bcount;
+ 	dst->dqb_ihardlimit = src->d_ino_hardlimit;
+ 	dst->dqb_isoftlimit = src->d_ino_softlimit;
+-	dst->dqb_curinodes = src->d_ino_count;
+-	dst->dqb_btime = src->d_spc_timer;
+-	dst->dqb_itime = src->d_ino_timer;
++	dst->dqb_curinodes = src->d_icount;
++	dst->dqb_btime = src->d_btimer;
++	dst->dqb_itime = src->d_itimer;
+ 	dst->dqb_valid = QIF_ALL;
+ }
+ 
+@@ -143,7 +133,7 @@ static int quota_getquota(struct super_block *sb, int type, qid_t id,
+ 			  void __user *addr)
+ {
+ 	struct kqid qid;
+-	struct qc_dqblk fdq;
++	struct fs_disk_quota fdq;
+ 	struct if_dqblk idq;
+ 	int ret;
+ 
+@@ -161,36 +151,36 @@ static int quota_getquota(struct super_block *sb, int type, qid_t id,
+ 	return 0;
+ }
+ 
+-static void copy_from_if_dqblk(struct qc_dqblk *dst, struct if_dqblk *src)
++static void copy_from_if_dqblk(struct fs_disk_quota *dst, struct if_dqblk *src)
+ {
+-	dst->d_spc_hardlimit = qbtos(src->dqb_bhardlimit);
+-	dst->d_spc_softlimit = qbtos(src->dqb_bsoftlimit);
+-	dst->d_space = src->dqb_curspace;
++	dst->d_blk_hardlimit = src->dqb_bhardlimit;
++	dst->d_blk_softlimit  = src->dqb_bsoftlimit;
++	dst->d_bcount = src->dqb_curspace;
+ 	dst->d_ino_hardlimit = src->dqb_ihardlimit;
+ 	dst->d_ino_softlimit = src->dqb_isoftlimit;
+-	dst->d_ino_count = src->dqb_curinodes;
+-	dst->d_spc_timer = src->dqb_btime;
+-	dst->d_ino_timer = src->dqb_itime;
++	dst->d_icount = src->dqb_curinodes;
++	dst->d_btimer = src->dqb_btime;
++	dst->d_itimer = src->dqb_itime;
+ 
+ 	dst->d_fieldmask = 0;
+ 	if (src->dqb_valid & QIF_BLIMITS)
+-		dst->d_fieldmask |= QC_SPC_SOFT | QC_SPC_HARD;
++		dst->d_fieldmask |= FS_DQ_BSOFT | FS_DQ_BHARD;
+ 	if (src->dqb_valid & QIF_SPACE)
+-		dst->d_fieldmask |= QC_SPACE;
++		dst->d_fieldmask |= FS_DQ_BCOUNT;
+ 	if (src->dqb_valid & QIF_ILIMITS)
+-		dst->d_fieldmask |= QC_INO_SOFT | QC_INO_HARD;
++		dst->d_fieldmask |= FS_DQ_ISOFT | FS_DQ_IHARD;
+ 	if (src->dqb_valid & QIF_INODES)
+-		dst->d_fieldmask |= QC_INO_COUNT;
++		dst->d_fieldmask |= FS_DQ_ICOUNT;
+ 	if (src->dqb_valid & QIF_BTIME)
+-		dst->d_fieldmask |= QC_SPC_TIMER;
++		dst->d_fieldmask |= FS_DQ_BTIMER;
+ 	if (src->dqb_valid & QIF_ITIME)
+-		dst->d_fieldmask |= QC_INO_TIMER;
++		dst->d_fieldmask |= FS_DQ_ITIMER;
+ }
+ 
+ static int quota_setquota(struct super_block *sb, int type, qid_t id,
+ 			  void __user *addr)
+ {
+-	struct qc_dqblk fdq;
++	struct fs_disk_quota fdq;
+ 	struct if_dqblk idq;
+ 	struct kqid qid;
+ 
+@@ -254,78 +244,10 @@ static int quota_getxstatev(struct super_block *sb, void __user *addr)
+ 	return ret;
+ }
+ 
+-/*
+- * XFS defines BBTOB and BTOBB macros inside fs/xfs/ and we cannot move them
+- * out of there as xfsprogs rely on definitions being in that header file. So
+- * just define same functions here for quota purposes.
+- */
+-#define XFS_BB_SHIFT 9
+-
+-static inline u64 quota_bbtob(u64 blocks)
+-{
+-	return blocks << XFS_BB_SHIFT;
+-}
+-
+-static inline u64 quota_btobb(u64 bytes)
+-{
+-	return (bytes + (1 << XFS_BB_SHIFT) - 1) >> XFS_BB_SHIFT;
+-}
+-
+-static void copy_from_xfs_dqblk(struct qc_dqblk *dst, struct fs_disk_quota *src)
+-{
+-	dst->d_spc_hardlimit = quota_bbtob(src->d_blk_hardlimit);
+-	dst->d_spc_softlimit = quota_bbtob(src->d_blk_softlimit);
+-	dst->d_ino_hardlimit = src->d_ino_hardlimit;
+-	dst->d_ino_softlimit = src->d_ino_softlimit;
+-	dst->d_space = quota_bbtob(src->d_bcount);
+-	dst->d_ino_count = src->d_icount;
+-	dst->d_ino_timer = src->d_itimer;
+-	dst->d_spc_timer = src->d_btimer;
+-	dst->d_ino_warns = src->d_iwarns;
+-	dst->d_spc_warns = src->d_bwarns;
+-	dst->d_rt_spc_hardlimit = quota_bbtob(src->d_rtb_hardlimit);
+-	dst->d_rt_spc_softlimit = quota_bbtob(src->d_rtb_softlimit);
+-	dst->d_rt_space = quota_bbtob(src->d_rtbcount);
+-	dst->d_rt_spc_timer = src->d_rtbtimer;
+-	dst->d_rt_spc_warns = src->d_rtbwarns;
+-	dst->d_fieldmask = 0;
+-	if (src->d_fieldmask & FS_DQ_ISOFT)
+-		dst->d_fieldmask |= QC_INO_SOFT;
+-	if (src->d_fieldmask & FS_DQ_IHARD)
+-		dst->d_fieldmask |= QC_INO_HARD;
+-	if (src->d_fieldmask & FS_DQ_BSOFT)
+-		dst->d_fieldmask |= QC_SPC_SOFT;
+-	if (src->d_fieldmask & FS_DQ_BHARD)
+-		dst->d_fieldmask |= QC_SPC_HARD;
+-	if (src->d_fieldmask & FS_DQ_RTBSOFT)
+-		dst->d_fieldmask |= QC_RT_SPC_SOFT;
+-	if (src->d_fieldmask & FS_DQ_RTBHARD)
+-		dst->d_fieldmask |= QC_RT_SPC_HARD;
+-	if (src->d_fieldmask & FS_DQ_BTIMER)
+-		dst->d_fieldmask |= QC_SPC_TIMER;
+-	if (src->d_fieldmask & FS_DQ_ITIMER)
+-		dst->d_fieldmask |= QC_INO_TIMER;
+-	if (src->d_fieldmask & FS_DQ_RTBTIMER)
+-		dst->d_fieldmask |= QC_RT_SPC_TIMER;
+-	if (src->d_fieldmask & FS_DQ_BWARNS)
+-		dst->d_fieldmask |= QC_SPC_WARNS;
+-	if (src->d_fieldmask & FS_DQ_IWARNS)
+-		dst->d_fieldmask |= QC_INO_WARNS;
+-	if (src->d_fieldmask & FS_DQ_RTBWARNS)
+-		dst->d_fieldmask |= QC_RT_SPC_WARNS;
+-	if (src->d_fieldmask & FS_DQ_BCOUNT)
+-		dst->d_fieldmask |= QC_SPACE;
+-	if (src->d_fieldmask & FS_DQ_ICOUNT)
+-		dst->d_fieldmask |= QC_INO_COUNT;
+-	if (src->d_fieldmask & FS_DQ_RTBCOUNT)
+-		dst->d_fieldmask |= QC_RT_SPACE;
+-}
+-
+ static int quota_setxquota(struct super_block *sb, int type, qid_t id,
+ 			   void __user *addr)
+ {
+ 	struct fs_disk_quota fdq;
+-	struct qc_dqblk qdq;
+ 	struct kqid qid;
+ 
+ 	if (copy_from_user(&fdq, addr, sizeof(fdq)))
+@@ -335,44 +257,13 @@ static int quota_setxquota(struct super_block *sb, int type, qid_t id,
+ 	qid = make_kqid(current_user_ns(), type, id);
+ 	if (!qid_valid(qid))
+ 		return -EINVAL;
+-	copy_from_xfs_dqblk(&qdq, &fdq);
+-	return sb->s_qcop->set_dqblk(sb, qid, &qdq);
+-}
+-
+-static void copy_to_xfs_dqblk(struct fs_disk_quota *dst, struct qc_dqblk *src,
+-			      int type, qid_t id)
+-{
+-	memset(dst, 0, sizeof(*dst));
+-	dst->d_version = FS_DQUOT_VERSION;
+-	dst->d_id = id;
+-	if (type == USRQUOTA)
+-		dst->d_flags = FS_USER_QUOTA;
+-	else if (type == PRJQUOTA)
+-		dst->d_flags = FS_PROJ_QUOTA;
+-	else
+-		dst->d_flags = FS_GROUP_QUOTA;
+-	dst->d_blk_hardlimit = quota_btobb(src->d_spc_hardlimit);
+-	dst->d_blk_softlimit = quota_btobb(src->d_spc_softlimit);
+-	dst->d_ino_hardlimit = src->d_ino_hardlimit;
+-	dst->d_ino_softlimit = src->d_ino_softlimit;
+-	dst->d_bcount = quota_btobb(src->d_space);
+-	dst->d_icount = src->d_ino_count;
+-	dst->d_itimer = src->d_ino_timer;
+-	dst->d_btimer = src->d_spc_timer;
+-	dst->d_iwarns = src->d_ino_warns;
+-	dst->d_bwarns = src->d_spc_warns;
+-	dst->d_rtb_hardlimit = quota_btobb(src->d_rt_spc_hardlimit);
+-	dst->d_rtb_softlimit = quota_btobb(src->d_rt_spc_softlimit);
+-	dst->d_rtbcount = quota_btobb(src->d_rt_space);
+-	dst->d_rtbtimer = src->d_rt_spc_timer;
+-	dst->d_rtbwarns = src->d_rt_spc_warns;
++	return sb->s_qcop->set_dqblk(sb, qid, &fdq);
+ }
+ 
+ static int quota_getxquota(struct super_block *sb, int type, qid_t id,
+ 			   void __user *addr)
+ {
+ 	struct fs_disk_quota fdq;
+-	struct qc_dqblk qdq;
+ 	struct kqid qid;
+ 	int ret;
+ 
+@@ -381,11 +272,8 @@ static int quota_getxquota(struct super_block *sb, int type, qid_t id,
+ 	qid = make_kqid(current_user_ns(), type, id);
+ 	if (!qid_valid(qid))
+ 		return -EINVAL;
+-	ret = sb->s_qcop->get_dqblk(sb, qid, &qdq);
+-	if (ret)
+-		return ret;
+-	copy_to_xfs_dqblk(&fdq, &qdq, type, id);
+-	if (copy_to_user(addr, &fdq, sizeof(fdq)))
++	ret = sb->s_qcop->get_dqblk(sb, qid, &fdq);
++	if (!ret && copy_to_user(addr, &fdq, sizeof(fdq)))
+ 		return -EFAULT;
+ 	return ret;
+ }
+diff --git a/fs/xfs/xfs_qm.h b/fs/xfs/xfs_qm.h
+index f251bed..797fd46 100644
+--- a/fs/xfs/xfs_qm.h
++++ b/fs/xfs/xfs_qm.h
+@@ -167,9 +167,9 @@ extern void		xfs_qm_dqrele_all_inodes(struct xfs_mount *, uint);
+ /* quota ops */
+ extern int		xfs_qm_scall_trunc_qfiles(struct xfs_mount *, uint);
+ extern int		xfs_qm_scall_getquota(struct xfs_mount *, xfs_dqid_t,
+-					uint, struct qc_dqblk *);
++					uint, struct fs_disk_quota *);
+ extern int		xfs_qm_scall_setqlim(struct xfs_mount *, xfs_dqid_t, uint,
+-					struct qc_dqblk *);
++					struct fs_disk_quota *);
+ extern int		xfs_qm_scall_getqstat(struct xfs_mount *,
+ 					struct fs_quota_stat *);
+ extern int		xfs_qm_scall_getqstatv(struct xfs_mount *,
+diff --git a/fs/xfs/xfs_qm_syscalls.c b/fs/xfs/xfs_qm_syscalls.c
+index 670882e..bbc813c 100644
+--- a/fs/xfs/xfs_qm_syscalls.c
++++ b/fs/xfs/xfs_qm_syscalls.c
+@@ -40,6 +40,7 @@ STATIC int	xfs_qm_log_quotaoff(xfs_mount_t *, xfs_qoff_logitem_t **, uint);
+ STATIC int	xfs_qm_log_quotaoff_end(xfs_mount_t *, xfs_qoff_logitem_t *,
+ 					uint);
+ STATIC uint	xfs_qm_export_flags(uint);
++STATIC uint	xfs_qm_export_qtype_flags(uint);
+ 
+ /*
+  * Turn off quota accounting and/or enforcement for all udquots and/or
+@@ -573,8 +574,8 @@ xfs_qm_scall_getqstatv(
+ 	return 0;
+ }
+ 
+-#define XFS_QC_MASK \
+-	(QC_LIMIT_MASK | QC_TIMER_MASK | QC_WARNS_MASK)
++#define XFS_DQ_MASK \
++	(FS_DQ_LIMIT_MASK | FS_DQ_TIMER_MASK | FS_DQ_WARNS_MASK)
+ 
+ /*
+  * Adjust quota limits, and start/stop timers accordingly.
+@@ -584,7 +585,7 @@ xfs_qm_scall_setqlim(
+ 	struct xfs_mount	*mp,
+ 	xfs_dqid_t		id,
+ 	uint			type,
+-	struct qc_dqblk		*newlim)
++	fs_disk_quota_t		*newlim)
+ {
+ 	struct xfs_quotainfo	*q = mp->m_quotainfo;
+ 	struct xfs_disk_dquot	*ddq;
+@@ -593,9 +594,9 @@ xfs_qm_scall_setqlim(
+ 	int			error;
+ 	xfs_qcnt_t		hard, soft;
+ 
+-	if (newlim->d_fieldmask & ~XFS_QC_MASK)
++	if (newlim->d_fieldmask & ~XFS_DQ_MASK)
+ 		return EINVAL;
+-	if ((newlim->d_fieldmask & XFS_QC_MASK) == 0)
++	if ((newlim->d_fieldmask & XFS_DQ_MASK) == 0)
+ 		return 0;
+ 
+ 	/*
+@@ -633,11 +634,11 @@ xfs_qm_scall_setqlim(
+ 	/*
+ 	 * Make sure that hardlimits are >= soft limits before changing.
+ 	 */
+-	hard = (newlim->d_fieldmask & QC_SPC_HARD) ?
+-		(xfs_qcnt_t) XFS_B_TO_FSB(mp, newlim->d_spc_hardlimit) :
++	hard = (newlim->d_fieldmask & FS_DQ_BHARD) ?
++		(xfs_qcnt_t) XFS_BB_TO_FSB(mp, newlim->d_blk_hardlimit) :
+ 			be64_to_cpu(ddq->d_blk_hardlimit);
+-	soft = (newlim->d_fieldmask & QC_SPC_SOFT) ?
+-		(xfs_qcnt_t) XFS_B_TO_FSB(mp, newlim->d_spc_softlimit) :
++	soft = (newlim->d_fieldmask & FS_DQ_BSOFT) ?
++		(xfs_qcnt_t) XFS_BB_TO_FSB(mp, newlim->d_blk_softlimit) :
+ 			be64_to_cpu(ddq->d_blk_softlimit);
+ 	if (hard == 0 || hard >= soft) {
+ 		ddq->d_blk_hardlimit = cpu_to_be64(hard);
+@@ -650,11 +651,11 @@ xfs_qm_scall_setqlim(
+ 	} else {
+ 		xfs_debug(mp, "blkhard %Ld < blksoft %Ld", hard, soft);
+ 	}
+-	hard = (newlim->d_fieldmask & QC_RT_SPC_HARD) ?
+-		(xfs_qcnt_t) XFS_B_TO_FSB(mp, newlim->d_rt_spc_hardlimit) :
++	hard = (newlim->d_fieldmask & FS_DQ_RTBHARD) ?
++		(xfs_qcnt_t) XFS_BB_TO_FSB(mp, newlim->d_rtb_hardlimit) :
+ 			be64_to_cpu(ddq->d_rtb_hardlimit);
+-	soft = (newlim->d_fieldmask & QC_RT_SPC_SOFT) ?
+-		(xfs_qcnt_t) XFS_B_TO_FSB(mp, newlim->d_rt_spc_softlimit) :
++	soft = (newlim->d_fieldmask & FS_DQ_RTBSOFT) ?
++		(xfs_qcnt_t) XFS_BB_TO_FSB(mp, newlim->d_rtb_softlimit) :
+ 			be64_to_cpu(ddq->d_rtb_softlimit);
+ 	if (hard == 0 || hard >= soft) {
+ 		ddq->d_rtb_hardlimit = cpu_to_be64(hard);
+@@ -667,10 +668,10 @@ xfs_qm_scall_setqlim(
+ 		xfs_debug(mp, "rtbhard %Ld < rtbsoft %Ld", hard, soft);
+ 	}
+ 
+-	hard = (newlim->d_fieldmask & QC_INO_HARD) ?
++	hard = (newlim->d_fieldmask & FS_DQ_IHARD) ?
+ 		(xfs_qcnt_t) newlim->d_ino_hardlimit :
+ 			be64_to_cpu(ddq->d_ino_hardlimit);
+-	soft = (newlim->d_fieldmask & QC_INO_SOFT) ?
++	soft = (newlim->d_fieldmask & FS_DQ_ISOFT) ?
+ 		(xfs_qcnt_t) newlim->d_ino_softlimit :
+ 			be64_to_cpu(ddq->d_ino_softlimit);
+ 	if (hard == 0 || hard >= soft) {
+@@ -687,12 +688,12 @@ xfs_qm_scall_setqlim(
+ 	/*
+ 	 * Update warnings counter(s) if requested
+ 	 */
+-	if (newlim->d_fieldmask & QC_SPC_WARNS)
+-		ddq->d_bwarns = cpu_to_be16(newlim->d_spc_warns);
+-	if (newlim->d_fieldmask & QC_INO_WARNS)
+-		ddq->d_iwarns = cpu_to_be16(newlim->d_ino_warns);
+-	if (newlim->d_fieldmask & QC_RT_SPC_WARNS)
+-		ddq->d_rtbwarns = cpu_to_be16(newlim->d_rt_spc_warns);
++	if (newlim->d_fieldmask & FS_DQ_BWARNS)
++		ddq->d_bwarns = cpu_to_be16(newlim->d_bwarns);
++	if (newlim->d_fieldmask & FS_DQ_IWARNS)
++		ddq->d_iwarns = cpu_to_be16(newlim->d_iwarns);
++	if (newlim->d_fieldmask & FS_DQ_RTBWARNS)
++		ddq->d_rtbwarns = cpu_to_be16(newlim->d_rtbwarns);
+ 
+ 	if (id == 0) {
+ 		/*
+@@ -702,24 +703,24 @@ xfs_qm_scall_setqlim(
+ 		 * soft and hard limit values (already done, above), and
+ 		 * for warnings.
+ 		 */
+-		if (newlim->d_fieldmask & QC_SPC_TIMER) {
+-			q->qi_btimelimit = newlim->d_spc_timer;
+-			ddq->d_btimer = cpu_to_be32(newlim->d_spc_timer);
++		if (newlim->d_fieldmask & FS_DQ_BTIMER) {
++			q->qi_btimelimit = newlim->d_btimer;
++			ddq->d_btimer = cpu_to_be32(newlim->d_btimer);
+ 		}
+-		if (newlim->d_fieldmask & QC_INO_TIMER) {
+-			q->qi_itimelimit = newlim->d_ino_timer;
+-			ddq->d_itimer = cpu_to_be32(newlim->d_ino_timer);
++		if (newlim->d_fieldmask & FS_DQ_ITIMER) {
++			q->qi_itimelimit = newlim->d_itimer;
++			ddq->d_itimer = cpu_to_be32(newlim->d_itimer);
+ 		}
+-		if (newlim->d_fieldmask & QC_RT_SPC_TIMER) {
+-			q->qi_rtbtimelimit = newlim->d_rt_spc_timer;
+-			ddq->d_rtbtimer = cpu_to_be32(newlim->d_rt_spc_timer);
++		if (newlim->d_fieldmask & FS_DQ_RTBTIMER) {
++			q->qi_rtbtimelimit = newlim->d_rtbtimer;
++			ddq->d_rtbtimer = cpu_to_be32(newlim->d_rtbtimer);
+ 		}
+-		if (newlim->d_fieldmask & QC_SPC_WARNS)
+-			q->qi_bwarnlimit = newlim->d_spc_warns;
+-		if (newlim->d_fieldmask & QC_INO_WARNS)
+-			q->qi_iwarnlimit = newlim->d_ino_warns;
+-		if (newlim->d_fieldmask & QC_RT_SPC_WARNS)
+-			q->qi_rtbwarnlimit = newlim->d_rt_spc_warns;
++		if (newlim->d_fieldmask & FS_DQ_BWARNS)
++			q->qi_bwarnlimit = newlim->d_bwarns;
++		if (newlim->d_fieldmask & FS_DQ_IWARNS)
++			q->qi_iwarnlimit = newlim->d_iwarns;
++		if (newlim->d_fieldmask & FS_DQ_RTBWARNS)
++			q->qi_rtbwarnlimit = newlim->d_rtbwarns;
+ 	} else {
+ 		/*
+ 		 * If the user is now over quota, start the timelimit.
+@@ -830,7 +831,7 @@ xfs_qm_scall_getquota(
+ 	struct xfs_mount	*mp,
+ 	xfs_dqid_t		id,
+ 	uint			type,
+-	struct qc_dqblk		*dst)
++	struct fs_disk_quota	*dst)
+ {
+ 	struct xfs_dquot	*dqp;
+ 	int			error;
+@@ -854,25 +855,28 @@ xfs_qm_scall_getquota(
+ 	}
+ 
+ 	memset(dst, 0, sizeof(*dst));
+-	dst->d_spc_hardlimit =
+-		XFS_FSB_TO_B(mp, be64_to_cpu(dqp->q_core.d_blk_hardlimit));
+-	dst->d_spc_softlimit =
+-		XFS_FSB_TO_B(mp, be64_to_cpu(dqp->q_core.d_blk_softlimit));
++	dst->d_version = FS_DQUOT_VERSION;
++	dst->d_flags = xfs_qm_export_qtype_flags(dqp->q_core.d_flags);
++	dst->d_id = be32_to_cpu(dqp->q_core.d_id);
++	dst->d_blk_hardlimit =
++		XFS_FSB_TO_BB(mp, be64_to_cpu(dqp->q_core.d_blk_hardlimit));
++	dst->d_blk_softlimit =
++		XFS_FSB_TO_BB(mp, be64_to_cpu(dqp->q_core.d_blk_softlimit));
+ 	dst->d_ino_hardlimit = be64_to_cpu(dqp->q_core.d_ino_hardlimit);
+ 	dst->d_ino_softlimit = be64_to_cpu(dqp->q_core.d_ino_softlimit);
+-	dst->d_space = XFS_FSB_TO_B(mp, dqp->q_res_bcount);
+-	dst->d_ino_count = dqp->q_res_icount;
+-	dst->d_spc_timer = be32_to_cpu(dqp->q_core.d_btimer);
+-	dst->d_ino_timer = be32_to_cpu(dqp->q_core.d_itimer);
+-	dst->d_ino_warns = be16_to_cpu(dqp->q_core.d_iwarns);
+-	dst->d_spc_warns = be16_to_cpu(dqp->q_core.d_bwarns);
+-	dst->d_rt_spc_hardlimit =
+-		XFS_FSB_TO_B(mp, be64_to_cpu(dqp->q_core.d_rtb_hardlimit));
+-	dst->d_rt_spc_softlimit =
+-		XFS_FSB_TO_B(mp, be64_to_cpu(dqp->q_core.d_rtb_softlimit));
+-	dst->d_rt_space = XFS_FSB_TO_B(mp, dqp->q_res_rtbcount);
+-	dst->d_rt_spc_timer = be32_to_cpu(dqp->q_core.d_rtbtimer);
+-	dst->d_rt_spc_warns = be16_to_cpu(dqp->q_core.d_rtbwarns);
++	dst->d_bcount = XFS_FSB_TO_BB(mp, dqp->q_res_bcount);
++	dst->d_icount = dqp->q_res_icount;
++	dst->d_btimer = be32_to_cpu(dqp->q_core.d_btimer);
++	dst->d_itimer = be32_to_cpu(dqp->q_core.d_itimer);
++	dst->d_iwarns = be16_to_cpu(dqp->q_core.d_iwarns);
++	dst->d_bwarns = be16_to_cpu(dqp->q_core.d_bwarns);
++	dst->d_rtb_hardlimit =
++		XFS_FSB_TO_BB(mp, be64_to_cpu(dqp->q_core.d_rtb_hardlimit));
++	dst->d_rtb_softlimit =
++		XFS_FSB_TO_BB(mp, be64_to_cpu(dqp->q_core.d_rtb_softlimit));
++	dst->d_rtbcount = XFS_FSB_TO_BB(mp, dqp->q_res_rtbcount);
++	dst->d_rtbtimer = be32_to_cpu(dqp->q_core.d_rtbtimer);
++	dst->d_rtbwarns = be16_to_cpu(dqp->q_core.d_rtbwarns);
+ 
+ 	/*
+ 	 * Internally, we don't reset all the timers when quota enforcement
+@@ -885,23 +889,23 @@ xfs_qm_scall_getquota(
+ 	     dqp->q_core.d_flags == XFS_DQ_GROUP) ||
+ 	    (!XFS_IS_PQUOTA_ENFORCED(mp) &&
+ 	     dqp->q_core.d_flags == XFS_DQ_PROJ)) {
+-		dst->d_spc_timer = 0;
+-		dst->d_ino_timer = 0;
+-		dst->d_rt_spc_timer = 0;
++		dst->d_btimer = 0;
++		dst->d_itimer = 0;
++		dst->d_rtbtimer = 0;
+ 	}
+ 
+ #ifdef DEBUG
+-	if (((XFS_IS_UQUOTA_ENFORCED(mp) && type == XFS_DQ_USER) ||
+-	     (XFS_IS_GQUOTA_ENFORCED(mp) && type == XFS_DQ_GROUP) ||
+-	     (XFS_IS_PQUOTA_ENFORCED(mp) && type == XFS_DQ_PROJ)) &&
+-	    id != 0) {
+-		if ((dst->d_space > dst->d_spc_softlimit) &&
+-		    (dst->d_spc_softlimit > 0)) {
+-			ASSERT(dst->d_spc_timer != 0);
++	if (((XFS_IS_UQUOTA_ENFORCED(mp) && dst->d_flags == FS_USER_QUOTA) ||
++	     (XFS_IS_GQUOTA_ENFORCED(mp) && dst->d_flags == FS_GROUP_QUOTA) ||
++	     (XFS_IS_PQUOTA_ENFORCED(mp) && dst->d_flags == FS_PROJ_QUOTA)) &&
++	    dst->d_id != 0) {
++		if ((dst->d_bcount > dst->d_blk_softlimit) &&
++		    (dst->d_blk_softlimit > 0)) {
++			ASSERT(dst->d_btimer != 0);
+ 		}
+-		if ((dst->d_ino_count > dst->d_ino_softlimit) &&
++		if ((dst->d_icount > dst->d_ino_softlimit) &&
+ 		    (dst->d_ino_softlimit > 0)) {
+-			ASSERT(dst->d_ino_timer != 0);
++			ASSERT(dst->d_itimer != 0);
+ 		}
+ 	}
+ #endif
+@@ -911,6 +915,26 @@ out_put:
+ }
+ 
+ STATIC uint
++xfs_qm_export_qtype_flags(
++	uint flags)
++{
++	/*
++	 * Can't be more than one, or none.
++	 */
++	ASSERT((flags & (FS_PROJ_QUOTA | FS_USER_QUOTA)) !=
++		(FS_PROJ_QUOTA | FS_USER_QUOTA));
++	ASSERT((flags & (FS_PROJ_QUOTA | FS_GROUP_QUOTA)) !=
++		(FS_PROJ_QUOTA | FS_GROUP_QUOTA));
++	ASSERT((flags & (FS_USER_QUOTA | FS_GROUP_QUOTA)) !=
++		(FS_USER_QUOTA | FS_GROUP_QUOTA));
++	ASSERT((flags & (FS_PROJ_QUOTA|FS_USER_QUOTA|FS_GROUP_QUOTA)) != 0);
++
++	return (flags & XFS_DQ_USER) ?
++		FS_USER_QUOTA : (flags & XFS_DQ_PROJ) ?
++			FS_PROJ_QUOTA : FS_GROUP_QUOTA;
++}
++
++STATIC uint
+ xfs_qm_export_flags(
+ 	uint flags)
+ {
+diff --git a/fs/xfs/xfs_quotaops.c b/fs/xfs/xfs_quotaops.c
+index ece0f31..2ad1b98 100644
+--- a/fs/xfs/xfs_quotaops.c
++++ b/fs/xfs/xfs_quotaops.c
+@@ -133,7 +133,7 @@ STATIC int
+ xfs_fs_get_dqblk(
+ 	struct super_block	*sb,
+ 	struct kqid		qid,
+-	struct qc_dqblk		*qdq)
++	struct fs_disk_quota	*fdq)
+ {
+ 	struct xfs_mount	*mp = XFS_M(sb);
+ 
+@@ -143,14 +143,14 @@ xfs_fs_get_dqblk(
+ 		return -ESRCH;
+ 
+ 	return -xfs_qm_scall_getquota(mp, from_kqid(&init_user_ns, qid),
+-				      xfs_quota_type(qid.type), qdq);
++				      xfs_quota_type(qid.type), fdq);
+ }
+ 
+ STATIC int
+ xfs_fs_set_dqblk(
+ 	struct super_block	*sb,
+ 	struct kqid		qid,
+-	struct qc_dqblk		*qdq)
++	struct fs_disk_quota	*fdq)
+ {
+ 	struct xfs_mount	*mp = XFS_M(sb);
+ 
+@@ -162,7 +162,7 @@ xfs_fs_set_dqblk(
+ 		return -ESRCH;
+ 
+ 	return -xfs_qm_scall_setqlim(mp, from_kqid(&init_user_ns, qid),
+-				     xfs_quota_type(qid.type), qdq);
++				     xfs_quota_type(qid.type), fdq);
+ }
+ 
+ const struct quotactl_ops xfs_quotactl_operations = {
+diff --git a/include/linux/quota.h b/include/linux/quota.h
+index 6724c12..0f3c5d3 100644
+--- a/include/linux/quota.h
++++ b/include/linux/quota.h
+@@ -316,49 +316,6 @@ struct dquot_operations {
+ 
+ struct path;
+ 
+-/* Structure for communicating via ->get_dqblk() & ->set_dqblk() */
+-struct qc_dqblk {
+-	int d_fieldmask;	/* mask of fields to change in ->set_dqblk() */
+-	u64 d_spc_hardlimit;	/* absolute limit on used space */
+-	u64 d_spc_softlimit;	/* preferred limit on used space */
+-	u64 d_ino_hardlimit;	/* maximum # allocated inodes */
+-	u64 d_ino_softlimit;	/* preferred inode limit */
+-	u64 d_space;		/* Space owned by the user */
+-	u64 d_ino_count;	/* # inodes owned by the user */
+-	s64 d_ino_timer;	/* zero if within inode limits */
+-				/* if not, we refuse service */
+-	s64 d_spc_timer;	/* similar to above; for space */
+-	int d_ino_warns;	/* # warnings issued wrt num inodes */
+-	int d_spc_warns;	/* # warnings issued wrt used space */
+-	u64 d_rt_spc_hardlimit;	/* absolute limit on realtime space */
+-	u64 d_rt_spc_softlimit;	/* preferred limit on RT space */
+-	u64 d_rt_space;		/* realtime space owned */
+-	s64 d_rt_spc_timer;	/* similar to above; for RT space */
+-	int d_rt_spc_warns;	/* # warnings issued wrt RT space */
+-};
+-
+-/* Field specifiers for ->set_dqblk() in struct qc_dqblk */
+-#define	QC_INO_SOFT	(1<<0)
+-#define	QC_INO_HARD	(1<<1)
+-#define	QC_SPC_SOFT	(1<<2)
+-#define	QC_SPC_HARD	(1<<3)
+-#define	QC_RT_SPC_SOFT	(1<<4)
+-#define	QC_RT_SPC_HARD	(1<<5)
+-#define QC_LIMIT_MASK (QC_INO_SOFT | QC_INO_HARD | QC_SPC_SOFT | QC_SPC_HARD | \
+-		       QC_RT_SPC_SOFT | QC_RT_SPC_HARD)
+-#define	QC_SPC_TIMER	(1<<6)
+-#define	QC_INO_TIMER	(1<<7)
+-#define	QC_RT_SPC_TIMER	(1<<8)
+-#define QC_TIMER_MASK (QC_SPC_TIMER | QC_INO_TIMER | QC_RT_SPC_TIMER)
+-#define	QC_SPC_WARNS	(1<<9)
+-#define	QC_INO_WARNS	(1<<10)
+-#define	QC_RT_SPC_WARNS	(1<<11)
+-#define QC_WARNS_MASK (QC_SPC_WARNS | QC_INO_WARNS | QC_RT_SPC_WARNS)
+-#define	QC_SPACE	(1<<12)
+-#define	QC_INO_COUNT	(1<<13)
+-#define	QC_RT_SPACE	(1<<14)
+-#define QC_ACCT_MASK (QC_SPACE | QC_INO_COUNT | QC_RT_SPACE)
+-
+ /* Operations handling requests from userspace */
+ struct quotactl_ops {
+ 	int (*quota_on)(struct super_block *, int, int, struct path *);
+@@ -367,8 +324,8 @@ struct quotactl_ops {
+ 	int (*quota_sync)(struct super_block *, int);
+ 	int (*get_info)(struct super_block *, int, struct if_dqinfo *);
+ 	int (*set_info)(struct super_block *, int, struct if_dqinfo *);
+-	int (*get_dqblk)(struct super_block *, struct kqid, struct qc_dqblk *);
+-	int (*set_dqblk)(struct super_block *, struct kqid, struct qc_dqblk *);
++	int (*get_dqblk)(struct super_block *, struct kqid, struct fs_disk_quota *);
++	int (*set_dqblk)(struct super_block *, struct kqid, struct fs_disk_quota *);
+ 	int (*get_xstate)(struct super_block *, struct fs_quota_stat *);
+ 	int (*set_xstate)(struct super_block *, unsigned int, int);
+ 	int (*get_xstatev)(struct super_block *, struct fs_quota_statv *);
+diff --git a/include/linux/quotaops.h b/include/linux/quotaops.h
+index bfaf713..1d3eee5 100644
+--- a/include/linux/quotaops.h
++++ b/include/linux/quotaops.h
+@@ -98,9 +98,9 @@ int dquot_quota_sync(struct super_block *sb, int type);
+ int dquot_get_dqinfo(struct super_block *sb, int type, struct if_dqinfo *ii);
+ int dquot_set_dqinfo(struct super_block *sb, int type, struct if_dqinfo *ii);
+ int dquot_get_dqblk(struct super_block *sb, struct kqid id,
+-		struct qc_dqblk *di);
++		struct fs_disk_quota *di);
+ int dquot_set_dqblk(struct super_block *sb, struct kqid id,
+-		struct qc_dqblk *di);
++		struct fs_disk_quota *di);
+ 
+ int __dquot_transfer(struct inode *inode, struct dquot **transfer_to);
+ int dquot_transfer(struct inode *inode, struct iattr *iattr);

Copied: dists/wheezy-backports/linux/debian/patches/debian/rmap-fix-abi-change-in-3.16.7-ckt5.patch (from r22440, dists/sid/linux/debian/patches/debian/rmap-fix-abi-change-in-3.16.7-ckt5.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/debian/rmap-fix-abi-change-in-3.16.7-ckt5.patch	Tue Apr  7 21:44:05 2015	(r22488, copy of r22440, dists/sid/linux/debian/patches/debian/rmap-fix-abi-change-in-3.16.7-ckt5.patch)
@@ -0,0 +1,50 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Mon, 23 Feb 2015 05:09:41 +0000
+Subject: rmap: Fix ABI change in 3.16.7-ckt5
+Forwarded: not-needed
+
+'mm: prevent endless growth of anon_vma hierarchy' in 3.16.7-ckt5
+added two new members to struct anon_vma.
+
+This structure is always allocated by anon_vma_alloc() so it is OK to
+add members, but we need to add them at the end and hide them from
+genksyms.
+
+--- a/include/linux/rmap.h
++++ b/include/linux/rmap.h
+@@ -37,16 +37,6 @@ struct anon_vma {
+ 	atomic_t refcount;
+ 
+ 	/*
+-	 * Count of child anon_vmas and VMAs which points to this anon_vma.
+-	 *
+-	 * This counter is used for making decision about reusing anon_vma
+-	 * instead of forking new one. See comments in function anon_vma_clone.
+-	 */
+-	unsigned degree;
+-
+-	struct anon_vma *parent;	/* Parent of this anon_vma */
+-
+-	/*
+ 	 * NOTE: the LSB of the rb_root.rb_node is set by
+ 	 * mm_take_all_locks() _after_ taking the above lock. So the
+ 	 * rb_root must only be read/written after taking the above lock
+@@ -55,6 +45,18 @@ struct anon_vma {
+ 	 * mm_take_all_locks() (mm_all_locks_mutex).
+ 	 */
+ 	struct rb_root rb_root;	/* Interval tree of private "related" vmas */
++
++#ifndef __GENKSYMS__
++	/*
++	 * Count of child anon_vmas and VMAs which points to this anon_vma.
++	 *
++	 * This counter is used for making decision about reusing anon_vma
++	 * instead of forking new one. See comments in function anon_vma_clone.
++	 */
++	unsigned degree;
++
++	struct anon_vma *parent;	/* Parent of this anon_vma */
++#endif
+ };
+ 
+ /*

Copied: dists/wheezy-backports/linux/debian/patches/debian/tcp-fix-abi-change-in-3.16.7-ckt7.patch (from r22440, dists/sid/linux/debian/patches/debian/tcp-fix-abi-change-in-3.16.7-ckt7.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/debian/tcp-fix-abi-change-in-3.16.7-ckt7.patch	Tue Apr  7 21:44:05 2015	(r22488, copy of r22440, dists/sid/linux/debian/patches/debian/tcp-fix-abi-change-in-3.16.7-ckt7.patch)
@@ -0,0 +1,84 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Wed, 25 Feb 2015 00:29:03 +0000
+Subject: tcp: Fix ABI change in 3.16.7-ckt7
+Forwarded: not-needed
+
+Commit bdbbb8527b6f ('ipv4: tcp: get rid of ugly unicast_sock')
+added netns_ipv4::tcp_sk.  As struct netns_ipv4 is embedded in
+struct net, we can't add any members there.  Instead, move it
+to the end of the containing structure and adjust its users
+accordingly.
+
+---
+--- a/include/net/net_namespace.h
++++ b/include/net/net_namespace.h
+@@ -130,6 +130,9 @@ struct net {
+ #endif
+ 	struct sock		*diag_nlsk;
+ 	atomic_t		fnhe_genid;
++#ifndef __GENKSYMS__
++	struct sock  * __percpu	*tcp_sk;
++#endif
+ };
+ 
+ #include <linux/seq_file_net.h>
+--- a/include/net/netns/ipv4.h
++++ b/include/net/netns/ipv4.h
+@@ -52,7 +52,6 @@ struct netns_ipv4 {
+ 	struct inet_peer_base	*peers;
+ 	struct tcpm_hash_bucket	*tcp_metrics_hash;
+ 	unsigned int		tcp_metrics_hash_log;
+-	struct sock  * __percpu	*tcp_sk;
+ 	struct netns_frags	frags;
+ #ifdef CONFIG_NETFILTER
+ 	struct xt_table		*iptable_filter;
+--- a/net/ipv4/tcp_ipv4.c
++++ b/net/ipv4/tcp_ipv4.c
+@@ -684,7 +684,7 @@ static void tcp_v4_send_reset(struct soc
+ 
+ 	net = dev_net(skb_dst(skb)->dev);
+ 	arg.tos = ip_hdr(skb)->tos;
+-	ip_send_unicast_reply(*this_cpu_ptr(net->ipv4.tcp_sk),
++	ip_send_unicast_reply(*this_cpu_ptr(net->tcp_sk),
+ 			      skb, ip_hdr(skb)->saddr,
+ 			      ip_hdr(skb)->daddr, &arg, arg.iov[0].iov_len);
+ 
+@@ -768,7 +768,7 @@ static void tcp_v4_send_ack(struct sk_bu
+ 	if (oif)
+ 		arg.bound_dev_if = oif;
+ 	arg.tos = tos;
+-	ip_send_unicast_reply(*this_cpu_ptr(net->ipv4.tcp_sk),
++	ip_send_unicast_reply(*this_cpu_ptr(net->tcp_sk),
+ 			      skb, ip_hdr(skb)->saddr,
+ 			      ip_hdr(skb)->daddr, &arg, arg.iov[0].iov_len);
+ 
+@@ -2539,16 +2539,16 @@ static void __net_exit tcp_sk_exit(struc
+ 	int cpu;
+ 
+ 	for_each_possible_cpu(cpu)
+-		inet_ctl_sock_destroy(*per_cpu_ptr(net->ipv4.tcp_sk, cpu));
+-	free_percpu(net->ipv4.tcp_sk);
++		inet_ctl_sock_destroy(*per_cpu_ptr(net->tcp_sk, cpu));
++	free_percpu(net->tcp_sk);
+ }
+ 
+ static int __net_init tcp_sk_init(struct net *net)
+ {
+ 	int res, cpu;
+ 
+-	net->ipv4.tcp_sk = alloc_percpu(struct sock *);
+-	if (!net->ipv4.tcp_sk)
++	net->tcp_sk = alloc_percpu(struct sock *);
++	if (!net->tcp_sk)
+ 		return -ENOMEM;
+ 
+ 	for_each_possible_cpu(cpu) {
+@@ -2558,7 +2558,7 @@ static int __net_init tcp_sk_init(struct
+ 					   IPPROTO_TCP, net);
+ 		if (res)
+ 			goto fail;
+-		*per_cpu_ptr(net->ipv4.tcp_sk, cpu) = sk;
++		*per_cpu_ptr(net->tcp_sk, cpu) = sk;
+ 	}
+ 	net->ipv4.sysctl_tcp_ecn = 2;
+ 	return 0;

Modified: dists/wheezy-backports/linux/debian/patches/features/all/aufs3/aufs3-mmap.patch
==============================================================================
--- dists/wheezy-backports/linux/debian/patches/features/all/aufs3/aufs3-mmap.patch	Mon Apr  6 23:38:13 2015	(r22487)
+++ dists/wheezy-backports/linux/debian/patches/features/all/aufs3/aufs3-mmap.patch	Tue Apr  7 21:44:05 2015	(r22488)
@@ -8,11 +8,9 @@
 
 aufs3.16 mmap patch
 
-diff --git a/fs/buffer.c b/fs/buffer.c
-index eba6e4f..31f0b2d 100644
 --- a/fs/buffer.c
 +++ b/fs/buffer.c
-@@ -2460,7 +2460,7 @@ int block_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf,
+@@ -2470,7 +2470,7 @@ int block_page_mkwrite(struct vm_area_st
  	 * Update file times before taking page lock. We may end up failing the
  	 * fault so this update may be superfluous but who really cares...
  	 */
@@ -21,11 +19,9 @@
  
  	ret = __block_page_mkwrite(vma, vmf, get_block);
  	sb_end_pagefault(sb);
-diff --git a/fs/proc/nommu.c b/fs/proc/nommu.c
-index d4a3574..1397181 100644
 --- a/fs/proc/nommu.c
 +++ b/fs/proc/nommu.c
-@@ -45,7 +45,10 @@ static int nommu_region_show(struct seq_file *m, struct vm_region *region)
+@@ -45,7 +45,10 @@ static int nommu_region_show(struct seq_
  	file = region->vm_file;
  
  	if (file) {
@@ -37,11 +33,9 @@
  		dev = inode->i_sb->s_dev;
  		ino = inode->i_ino;
  	}
-diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
-index cfa63ee..bf4919e 100644
 --- a/fs/proc/task_mmu.c
 +++ b/fs/proc/task_mmu.c
-@@ -265,7 +265,10 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
+@@ -265,7 +265,10 @@ show_map_vma(struct seq_file *m, struct
  	const char *name = NULL;
  
  	if (file) {
@@ -53,7 +47,7 @@
  		dev = inode->i_sb->s_dev;
  		ino = inode->i_ino;
  		pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT;
-@@ -1390,7 +1393,7 @@ static int show_numa_map(struct seq_file *m, void *v, int is_pid)
+@@ -1390,7 +1393,7 @@ static int show_numa_map(struct seq_file
  	struct proc_maps_private *proc_priv = &numa_priv->proc_maps;
  	struct vm_area_struct *vma = v;
  	struct numa_maps *md = &numa_priv->md;
@@ -62,11 +56,9 @@
  	struct task_struct *task = proc_priv->task;
  	struct mm_struct *mm = vma->vm_mm;
  	struct mm_walk walk = {};
-diff --git a/fs/proc/task_nommu.c b/fs/proc/task_nommu.c
-index 678455d..0ef7ef4 100644
 --- a/fs/proc/task_nommu.c
 +++ b/fs/proc/task_nommu.c
-@@ -141,7 +141,10 @@ static int nommu_vma_show(struct seq_file *m, struct vm_area_struct *vma,
+@@ -141,7 +141,10 @@ static int nommu_vma_show(struct seq_fil
  	file = vma->vm_file;
  
  	if (file) {
@@ -78,11 +70,9 @@
  		dev = inode->i_sb->s_dev;
  		ino = inode->i_ino;
  		pgoff = (loff_t)vma->vm_pgoff << PAGE_SHIFT;
-diff --git a/include/linux/mm.h b/include/linux/mm.h
-index e03dd29..dd32624 100644
 --- a/include/linux/mm.h
 +++ b/include/linux/mm.h
-@@ -1184,6 +1184,28 @@ static inline int fixup_user_fault(struct task_struct *tsk,
+@@ -1187,6 +1187,28 @@ static inline int fixup_user_fault(struc
  }
  #endif
  
@@ -111,8 +101,6 @@
  extern int access_process_vm(struct task_struct *tsk, unsigned long addr, void *buf, int len, int write);
  extern int access_remote_vm(struct mm_struct *mm, unsigned long addr,
  		void *buf, int len, int write);
-diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
-index 96c5750..a087ecd 100644
 --- a/include/linux/mm_types.h
 +++ b/include/linux/mm_types.h
 @@ -232,6 +232,7 @@ struct vm_region {
@@ -131,11 +119,9 @@
  	void * vm_private_data;		/* was vm_pte (shared mem) */
  
  #ifndef CONFIG_MMU
-diff --git a/kernel/fork.c b/kernel/fork.c
-index 6a13c46..714302c 100644
 --- a/kernel/fork.c
 +++ b/kernel/fork.c
-@@ -416,7 +416,7 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
+@@ -416,7 +416,7 @@ static int dup_mmap(struct mm_struct *mm
  			struct inode *inode = file_inode(file);
  			struct address_space *mapping = file->f_mapping;
  
@@ -144,11 +130,9 @@
  			if (tmp->vm_flags & VM_DENYWRITE)
  				atomic_dec(&inode->i_writecount);
  			mutex_lock(&mapping->i_mmap_mutex);
-diff --git a/mm/Makefile b/mm/Makefile
-index 4064f3e..0003fdf 100644
 --- a/mm/Makefile
 +++ b/mm/Makefile
-@@ -18,7 +18,7 @@ obj-y			:= filemap.o mempool.o oom_kill.o fadvise.o \
+@@ -18,7 +18,7 @@ obj-y			:= filemap.o mempool.o oom_kill.
  			   mm_init.o mmu_context.o percpu.o slab_common.o \
  			   compaction.o balloon_compaction.o vmacache.o \
  			   interval_tree.o list_lru.o workingset.o \
@@ -157,11 +141,9 @@
  
  obj-y += init-mm.o
  
-diff --git a/mm/filemap.c b/mm/filemap.c
-index 900edfa..f4dda0c 100644
 --- a/mm/filemap.c
 +++ b/mm/filemap.c
-@@ -2040,7 +2040,7 @@ int filemap_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf)
+@@ -2036,7 +2036,7 @@ int filemap_page_mkwrite(struct vm_area_
  	int ret = VM_FAULT_LOCKED;
  
  	sb_start_pagefault(inode->i_sb);
@@ -170,8 +152,6 @@
  	lock_page(page);
  	if (page->mapping != inode->i_mapping) {
  		unlock_page(page);
-diff --git a/mm/fremap.c b/mm/fremap.c
-index 72b8fa3..a00bbf0 100644
 --- a/mm/fremap.c
 +++ b/mm/fremap.c
 @@ -224,16 +224,28 @@ get_write_lock:
@@ -205,11 +185,9 @@
  				err = 0;
  			}
  			goto out_freed;
-diff --git a/mm/madvise.c b/mm/madvise.c
-index a402f8f..134e15d 100644
 --- a/mm/madvise.c
 +++ b/mm/madvise.c
-@@ -327,12 +327,12 @@ static long madvise_remove(struct vm_area_struct *vma,
+@@ -327,12 +327,12 @@ static long madvise_remove(struct vm_are
  	 * vma's reference to the file) can go away as soon as we drop
  	 * mmap_sem.
  	 */
@@ -224,12 +202,10 @@
  	down_read(&current->mm->mmap_sem);
  	return error;
  }
-diff --git a/mm/memory.c b/mm/memory.c
-index 8b44f76..69a72bf 100644
 --- a/mm/memory.c
 +++ b/mm/memory.c
-@@ -2161,7 +2161,7 @@ reuse:
- 			set_page_dirty_balance(dirty_page);
+@@ -2168,7 +2168,7 @@ reuse:
+ 
  			/* file_update_time outside page_lock */
  			if (vma->vm_file)
 -				file_update_time(vma->vm_file);
@@ -237,11 +213,9 @@
  		}
  		put_page(dirty_page);
  		if (page_mkwrite) {
-diff --git a/mm/mmap.c b/mm/mmap.c
-index 129b847..869d1d7 100644
 --- a/mm/mmap.c
 +++ b/mm/mmap.c
-@@ -253,7 +253,7 @@ static struct vm_area_struct *remove_vma(struct vm_area_struct *vma)
+@@ -253,7 +253,7 @@ static struct vm_area_struct *remove_vma
  	if (vma->vm_ops && vma->vm_ops->close)
  		vma->vm_ops->close(vma);
  	if (vma->vm_file)
@@ -250,7 +224,7 @@
  	mpol_put(vma_policy(vma));
  	kmem_cache_free(vm_area_cachep, vma);
  	return next;
-@@ -863,7 +863,7 @@ again:			remove_next = 1 + (end > next->vm_end);
+@@ -868,7 +868,7 @@ again:			remove_next = 1 + (end > next->
  	if (remove_next) {
  		if (file) {
  			uprobe_munmap(next, next->vm_start, next->vm_end);
@@ -259,7 +233,7 @@
  		}
  		if (next->anon_vma)
  			anon_vma_merge(vma, next);
-@@ -1643,8 +1643,8 @@ out:
+@@ -1648,8 +1648,8 @@ out:
  unmap_and_free_vma:
  	if (vm_flags & VM_DENYWRITE)
  		allow_write_access(file);
@@ -269,7 +243,7 @@
  
  	/* Undo any partial mapping done by a device driver. */
  	unmap_region(mm, vma, prev, vma->vm_start, vma->vm_end);
-@@ -2434,7 +2434,7 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
+@@ -2443,7 +2443,7 @@ static int __split_vma(struct mm_struct
  		goto out_free_mpol;
  
  	if (new->vm_file)
@@ -278,7 +252,7 @@
  
  	if (new->vm_ops && new->vm_ops->open)
  		new->vm_ops->open(new);
-@@ -2453,7 +2453,7 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
+@@ -2462,7 +2462,7 @@ static int __split_vma(struct mm_struct
  	if (new->vm_ops && new->vm_ops->close)
  		new->vm_ops->close(new);
  	if (new->vm_file)
@@ -287,7 +261,7 @@
  	unlink_anon_vmas(new);
   out_free_mpol:
  	mpol_put(vma_policy(new));
-@@ -2842,7 +2842,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
+@@ -2851,7 +2851,7 @@ struct vm_area_struct *copy_vma(struct v
  			if (anon_vma_clone(new_vma, vma))
  				goto out_free_mempol;
  			if (new_vma->vm_file)
@@ -296,11 +270,9 @@
  			if (new_vma->vm_ops && new_vma->vm_ops->open)
  				new_vma->vm_ops->open(new_vma);
  			vma_link(mm, new_vma, prev, rb_link, rb_parent);
-diff --git a/mm/msync.c b/mm/msync.c
-index 992a167..ce1915b 100644
 --- a/mm/msync.c
 +++ b/mm/msync.c
-@@ -84,13 +84,13 @@ SYSCALL_DEFINE3(msync, unsigned long, start, size_t, len, int, flags)
+@@ -84,13 +84,13 @@ SYSCALL_DEFINE3(msync, unsigned long, st
  		start = vma->vm_end;
  		if ((flags & MS_SYNC) && file &&
  				(vma->vm_flags & VM_SHARED)) {
@@ -316,11 +288,9 @@
  			if (error || start >= end)
  				goto out;
  			down_read(&mm->mmap_sem);
-diff --git a/mm/nommu.c b/mm/nommu.c
-index 4a852f6..b369644 100644
 --- a/mm/nommu.c
 +++ b/mm/nommu.c
-@@ -658,7 +658,7 @@ static void __put_nommu_region(struct vm_region *region)
+@@ -658,7 +658,7 @@ static void __put_nommu_region(struct vm
  		up_write(&nommu_region_sem);
  
  		if (region->vm_file)
@@ -329,7 +299,7 @@
  
  		/* IO memory and memory shared directly out of the pagecache
  		 * from ramfs/tmpfs mustn't be released here */
-@@ -823,7 +823,7 @@ static void delete_vma(struct mm_struct *mm, struct vm_area_struct *vma)
+@@ -823,7 +823,7 @@ static void delete_vma(struct mm_struct
  	if (vma->vm_ops && vma->vm_ops->close)
  		vma->vm_ops->close(vma);
  	if (vma->vm_file)
@@ -338,7 +308,7 @@
  	put_nommu_region(vma->vm_region);
  	kmem_cache_free(vm_area_cachep, vma);
  }
-@@ -1385,7 +1385,7 @@ unsigned long do_mmap_pgoff(struct file *file,
+@@ -1385,7 +1385,7 @@ unsigned long do_mmap_pgoff(struct file
  					goto error_just_free;
  				}
  			}
@@ -360,9 +330,6 @@
  	kmem_cache_free(vm_area_cachep, vma);
  	kleave(" = %d", ret);
  	return ret;
-diff --git a/mm/prfile.c b/mm/prfile.c
-new file mode 100644
-index 0000000..fc708d2
 --- /dev/null
 +++ b/mm/prfile.c
 @@ -0,0 +1,86 @@

Copied: dists/wheezy-backports/linux/debian/patches/features/all/kdbus/shm-add-memfd.h-to-uapi-export-list.patch (from r22440, dists/sid/linux/debian/patches/features/all/kdbus/shm-add-memfd.h-to-uapi-export-list.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/all/kdbus/shm-add-memfd.h-to-uapi-export-list.patch	Tue Apr  7 21:44:05 2015	(r22488, copy of r22440, dists/sid/linux/debian/patches/features/all/kdbus/shm-add-memfd.h-to-uapi-export-list.patch)
@@ -0,0 +1,27 @@
+From: David Drysdale <drysdale at google.com>
+Date: Tue, 9 Sep 2014 14:50:57 -0700
+Subject: shm: add memfd.h to UAPI export list
+Origin: https://git.kernel.org/linus/b01d072065b6f36550f486fe77f05b092225ba1b
+
+The new header file memfd.h from commit 9183df25fe7b ("shm: add
+memfd_create() syscall") should be exported.
+
+Signed-off-by: David Drysdale <drysdale at google.com>
+Reviewed-by: David Herrmann <dh.herrmann at gmail.com>
+Cc: Hugh Dickins <hughd at google.com>
+Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
+---
+ include/uapi/linux/Kbuild | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/include/uapi/linux/Kbuild
++++ b/include/uapi/linux/Kbuild
+@@ -241,6 +241,7 @@ header-y += matroxfb.h
+ header-y += mdio.h
+ header-y += media.h
+ header-y += mei.h
++header-y += memfd.h
+ header-y += mempolicy.h
+ header-y += meye.h
+ header-y += mic_common.h

Copied: dists/wheezy-backports/linux/debian/patches/features/all/of.h-keep-extern-declaration-of-of_-variables-when-c.patch (from r22440, dists/sid/linux/debian/patches/features/all/of.h-keep-extern-declaration-of-of_-variables-when-c.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/all/of.h-keep-extern-declaration-of-of_-variables-when-c.patch	Tue Apr  7 21:44:05 2015	(r22488, copy of r22440, dists/sid/linux/debian/patches/features/all/of.h-keep-extern-declaration-of-of_-variables-when-c.patch)
@@ -0,0 +1,39 @@
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Fri, 14 Nov 2014 13:26:52 +0100
+Subject: of.h: Keep extern declaration of of_* variables when !CONFIG_OF
+Origin: https://git.kernel.org/linus/6d09dc6b74caaca83e32e67f2454406041d58fb0
+
+Keep the extern declaration of of_allnodes and friends, when building without
+of support, this way code using them can be written like this:
+
+	if (IS_ENABLED(CONFIG_OF_PLATFORM) && of_chosen) {
+		for_each_child_of_node(of_chosen, np)
+			...
+	}
+
+And rely on the compiler optimizing it away, avoiding the need for #ifdef-ery.
+
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ti.com>
+---
+ include/linux/of.h | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+--- a/include/linux/of.h
++++ b/include/linux/of.h
+@@ -107,14 +107,13 @@ static inline struct device_node *of_nod
+ static inline void of_node_put(struct device_node *node) { }
+ #endif /* !CONFIG_OF_DYNAMIC */
+ 
+-#ifdef CONFIG_OF
+-
+ /* Pointer for first entry in chain of all nodes. */
+ extern struct device_node *of_allnodes;
+ extern struct device_node *of_chosen;
+ extern struct device_node *of_aliases;
+ extern raw_spinlock_t devtree_lock;
+ 
++#ifdef CONFIG_OF
+ static inline bool of_have_populated_dt(void)
+ {
+ 	return of_allnodes != NULL;

Copied: dists/wheezy-backports/linux/debian/patches/features/all/simplefb-Add-support-for-enumerating-simplefb-dt-nod.patch (from r22440, dists/sid/linux/debian/patches/features/all/simplefb-Add-support-for-enumerating-simplefb-dt-nod.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/all/simplefb-Add-support-for-enumerating-simplefb-dt-nod.patch	Tue Apr  7 21:44:05 2015	(r22488, copy of r22440, dists/sid/linux/debian/patches/features/all/simplefb-Add-support-for-enumerating-simplefb-dt-nod.patch)
@@ -0,0 +1,60 @@
+From f819ccbe992cfec6081acef7c5a06d770178b03e Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Fri, 14 Nov 2014 13:26:53 +0100
+Subject: [PATCH 04/15] simplefb: Add support for enumerating simplefb dt nodes
+ in /chosen
+Origin: https://git.kernel.org/linus/89c95001c00089836415aa7a78848ec2dec9f922
+
+Update simplefb to support the new preferred location for simplefb dt nodes
+under /chosen.
+
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ti.com>
+---
+ drivers/video/fbdev/simplefb.c | 23 ++++++++++++++++++++++-
+ 1 file changed, 22 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/video/fbdev/simplefb.c b/drivers/video/fbdev/simplefb.c
+index d192946..74c5edd 100644
+--- a/drivers/video/fbdev/simplefb.c
++++ b/drivers/video/fbdev/simplefb.c
+@@ -27,6 +27,7 @@
+ #include <linux/platform_data/simplefb.h>
+ #include <linux/platform_device.h>
+ #include <linux/clk-provider.h>
++#include <linux/of_platform.h>
+ 
+ static struct fb_fix_screeninfo simplefb_fix = {
+ 	.id		= "simple",
+@@ -392,7 +393,27 @@ static struct platform_driver simplefb_driver = {
+ 	.probe = simplefb_probe,
+ 	.remove = simplefb_remove,
+ };
+-module_platform_driver(simplefb_driver);
++
++static int __init simplefb_init(void)
++{
++	int ret;
++	struct device_node *np;
++
++	ret = platform_driver_register(&simplefb_driver);
++	if (ret)
++		return ret;
++
++	if (IS_ENABLED(CONFIG_OF) && of_chosen) {
++		for_each_child_of_node(of_chosen, np) {
++			if (of_device_is_compatible(np, "simple-framebuffer"))
++				of_platform_device_create(np, NULL, NULL);
++		}
++	}
++
++	return 0;
++}
++
++module_init(simplefb_init);
+ 
+ MODULE_AUTHOR("Stephen Warren <swarren at wwwdotorg.org>");
+ MODULE_DESCRIPTION("Simple framebuffer driver");
+-- 
+2.1.4
+

Copied: dists/wheezy-backports/linux/debian/patches/features/all/simplefb-Change-simplefb_init-from-module_init-to-fs.patch (from r22440, dists/sid/linux/debian/patches/features/all/simplefb-Change-simplefb_init-from-module_init-to-fs.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/all/simplefb-Change-simplefb_init-from-module_init-to-fs.patch	Tue Apr  7 21:44:05 2015	(r22488, copy of r22440, dists/sid/linux/debian/patches/features/all/simplefb-Change-simplefb_init-from-module_init-to-fs.patch)
@@ -0,0 +1,36 @@
+From 4fe57f1608272587892d50c524d98f96d311b115 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Fri, 14 Nov 2014 13:26:55 +0100
+Subject: [PATCH 05/15] simplefb: Change simplefb_init from module_init to
+ fs_initcall
+Origin: https://git.kernel.org/linus/0c5b240c7e0a7af56afd24db6570fa84d67728c2
+
+One of the reasons for having the simplefb nodes in /chosen, and doing
+explicit enumeration of the nodes there, is too allow enumerating them sooner,
+so that we get a console earlier on.
+
+Doing this earlier then fs_initcall is not useful, since the fb only turns
+into a console when fbcon intializes, which is a fs_initcall too.
+
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ti.com>
+---
+ drivers/video/fbdev/simplefb.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/video/fbdev/simplefb.c b/drivers/video/fbdev/simplefb.c
+index 74c5edd..8be9754 100644
+--- a/drivers/video/fbdev/simplefb.c
++++ b/drivers/video/fbdev/simplefb.c
+@@ -413,7 +413,7 @@ static int __init simplefb_init(void)
+ 	return 0;
+ }
+ 
+-module_init(simplefb_init);
++fs_initcall(simplefb_init);
+ 
+ MODULE_AUTHOR("Stephen Warren <swarren at wwwdotorg.org>");
+ MODULE_DESCRIPTION("Simple framebuffer driver");
+-- 
+2.1.4
+

Copied: dists/wheezy-backports/linux/debian/patches/features/all/simplefb-Fix-build-errors-when-CONFIG_COMMON_CLK-is-.patch (from r22440, dists/sid/linux/debian/patches/features/all/simplefb-Fix-build-errors-when-CONFIG_COMMON_CLK-is-.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/all/simplefb-Fix-build-errors-when-CONFIG_COMMON_CLK-is-.patch	Tue Apr  7 21:44:05 2015	(r22488, copy of r22440, dists/sid/linux/debian/patches/features/all/simplefb-Fix-build-errors-when-CONFIG_COMMON_CLK-is-.patch)
@@ -0,0 +1,39 @@
+From b516039bf5ce5464bc9a6eefac50c87415c9f318 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Tue, 25 Nov 2014 12:13:30 +0100
+Subject: [PATCH 06/15] simplefb: Fix build errors when CONFIG_COMMON_CLK is
+ not defined
+Origin: https://git.kernel.org/linus/8284731eb59e843a0608baf18828e0ad0d7f9d79
+
+Both CONFIG_OF and CONFIG_COMMON_CLK must be defined to be able to use of
+clocks.
+
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ti.com>
+---
+ drivers/video/fbdev/simplefb.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/video/fbdev/simplefb.c b/drivers/video/fbdev/simplefb.c
+index 8be9754..b2ae925 100644
+--- a/drivers/video/fbdev/simplefb.c
++++ b/drivers/video/fbdev/simplefb.c
+@@ -169,13 +169,13 @@ static int simplefb_parse_pd(struct platform_device *pdev,
+ 
+ struct simplefb_par {
+ 	u32 palette[PSEUDO_PALETTE_SIZE];
+-#ifdef CONFIG_OF
++#if defined CONFIG_OF && defined CONFIG_COMMON_CLK
+ 	int clk_count;
+ 	struct clk **clks;
+ #endif
+ };
+ 
+-#ifdef CONFIG_OF
++#if defined CONFIG_OF && defined CONFIG_COMMON_CLK
+ /*
+  * Clock handling code.
+  *
+-- 
+2.1.4
+

Copied: dists/wheezy-backports/linux/debian/patches/features/all/simplefb-Fix-build-failure-on-Sparc.patch (from r22440, dists/sid/linux/debian/patches/features/all/simplefb-Fix-build-failure-on-Sparc.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/all/simplefb-Fix-build-failure-on-Sparc.patch	Tue Apr  7 21:44:05 2015	(r22488, copy of r22440, dists/sid/linux/debian/patches/features/all/simplefb-Fix-build-failure-on-Sparc.patch)
@@ -0,0 +1,33 @@
+From 28f3658954b8a749d9c7109b20f69019dd671252 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Mon, 5 Jan 2015 09:15:16 +0100
+Subject: [PATCH 07/15] simplefb: Fix build failure on Sparc
+Origin: https://git.kernel.org/linus/d9e020197d371c90ad56cc4be388fc95e0c08e6f
+
+of_platform_device_create is only defined when CONFIG_OF_ADDRESS is set,
+which is normally always the case when CONFIG_OF is defined, except on Sparc,
+so explicitly check for CONFIG_OF_ADDRESS rather then for CONFIG_OF.
+
+Reported-by: kbuild test robot <fengguang.wu at intel.com>
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ti.com>
+---
+ drivers/video/fbdev/simplefb.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/video/fbdev/simplefb.c b/drivers/video/fbdev/simplefb.c
+index b2ae925..c90503c 100644
+--- a/drivers/video/fbdev/simplefb.c
++++ b/drivers/video/fbdev/simplefb.c
+@@ -403,7 +403,7 @@ static int __init simplefb_init(void)
+ 	if (ret)
+ 		return ret;
+ 
+-	if (IS_ENABLED(CONFIG_OF) && of_chosen) {
++	if (IS_ENABLED(CONFIG_OF_ADDRESS) && of_chosen) {
+ 		for_each_child_of_node(of_chosen, np) {
+ 			if (of_device_is_compatible(np, "simple-framebuffer"))
+ 				of_platform_device_create(np, NULL, NULL);
+-- 
+2.1.4
+

Copied: dists/wheezy-backports/linux/debian/patches/features/all/simplefb-add-clock-handling-code.patch (from r22440, dists/sid/linux/debian/patches/features/all/simplefb-add-clock-handling-code.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/all/simplefb-add-clock-handling-code.patch	Tue Apr  7 21:44:05 2015	(r22488, copy of r22440, dists/sid/linux/debian/patches/features/all/simplefb-add-clock-handling-code.patch)
@@ -0,0 +1,185 @@
+From 26007c1238d7923f0ef8ff7aed10ed89ee5ef5c5 Mon Sep 17 00:00:00 2001
+From: Luc Verhaegen <libv at skynet.be>
+Date: Fri, 14 Nov 2014 13:26:50 +0100
+Subject: [PATCH 03/15] simplefb: add clock handling code
+Origin: https://git.kernel.org/linus/fc219bfd5b2e488e3c246990869cfde5ca235c89
+
+This claims and enables clocks listed in the simple framebuffer dt node.
+This is needed so that the display engine, in case the required clocks
+are known by the kernel code and are described in the dt, will remain
+properly enabled.
+
+Signed-off-by: Luc Verhaegen <libv at skynet.be>
+[hdegoede at redhat.com: Change clks from list to dynamic array]
+Reviewed-by: Hans de Goede <hdegoede at redhat.com>
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Acked-by: Geert Uytterhoeven <geert at linux-m68k.org>
+Reviewed-by: Maxime Ripard <maxime.ripard at free-electrons.com>
+Reviewed-by: David Herrmann <dh.herrmann at gmail.com>
+Acked-by: Grant Likely <grant.likely at linaro.org>
+Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ti.com>
+
+---
+ drivers/video/fbdev/simplefb.c | 108 ++++++++++++++++++++++++++++++++++++++++-
+ 1 file changed, 107 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/video/fbdev/simplefb.c b/drivers/video/fbdev/simplefb.c
+index cdcf1fe..d192946 100644
+--- a/drivers/video/fbdev/simplefb.c
++++ b/drivers/video/fbdev/simplefb.c
+@@ -26,6 +26,7 @@
+ #include <linux/module.h>
+ #include <linux/platform_data/simplefb.h>
+ #include <linux/platform_device.h>
++#include <linux/clk-provider.h>
+ 
+ static struct fb_fix_screeninfo simplefb_fix = {
+ 	.id		= "simple",
+@@ -167,8 +168,105 @@ static int simplefb_parse_pd(struct platform_device *pdev,
+ 
+ struct simplefb_par {
+ 	u32 palette[PSEUDO_PALETTE_SIZE];
++#ifdef CONFIG_OF
++	int clk_count;
++	struct clk **clks;
++#endif
+ };
+ 
++#ifdef CONFIG_OF
++/*
++ * Clock handling code.
++ *
++ * Here we handle the clocks property of our "simple-framebuffer" dt node.
++ * This is necessary so that we can make sure that any clocks needed by
++ * the display engine that the bootloader set up for us (and for which it
++ * provided a simplefb dt node), stay up, for the life of the simplefb
++ * driver.
++ *
++ * When the driver unloads, we cleanly disable, and then release the clocks.
++ *
++ * We only complain about errors here, no action is taken as the most likely
++ * error can only happen due to a mismatch between the bootloader which set
++ * up simplefb, and the clock definitions in the device tree. Chances are
++ * that there are no adverse effects, and if there are, a clean teardown of
++ * the fb probe will not help us much either. So just complain and carry on,
++ * and hope that the user actually gets a working fb at the end of things.
++ */
++static int simplefb_clocks_init(struct simplefb_par *par,
++				struct platform_device *pdev)
++{
++	struct device_node *np = pdev->dev.of_node;
++	struct clk *clock;
++	int i, ret;
++
++	if (dev_get_platdata(&pdev->dev) || !np)
++		return 0;
++
++	par->clk_count = of_clk_get_parent_count(np);
++	if (par->clk_count <= 0)
++		return 0;
++
++	par->clks = kcalloc(par->clk_count, sizeof(struct clk *), GFP_KERNEL);
++	if (!par->clks)
++		return -ENOMEM;
++
++	for (i = 0; i < par->clk_count; i++) {
++		clock = of_clk_get(np, i);
++		if (IS_ERR(clock)) {
++			if (PTR_ERR(clock) == -EPROBE_DEFER) {
++				while (--i >= 0) {
++					if (par->clks[i])
++						clk_put(par->clks[i]);
++				}
++				kfree(par->clks);
++				return -EPROBE_DEFER;
++			}
++			dev_err(&pdev->dev, "%s: clock %d not found: %ld\n",
++				__func__, i, PTR_ERR(clock));
++			continue;
++		}
++		par->clks[i] = clock;
++	}
++
++	for (i = 0; i < par->clk_count; i++) {
++		if (par->clks[i]) {
++			ret = clk_prepare_enable(par->clks[i]);
++			if (ret) {
++				dev_err(&pdev->dev,
++					"%s: failed to enable clock %d: %d\n",
++					__func__, i, ret);
++				clk_put(par->clks[i]);
++				par->clks[i] = NULL;
++			}
++		}
++	}
++
++	return 0;
++}
++
++static void simplefb_clocks_destroy(struct simplefb_par *par)
++{
++	int i;
++
++	if (!par->clks)
++		return;
++
++	for (i = 0; i < par->clk_count; i++) {
++		if (par->clks[i]) {
++			clk_disable_unprepare(par->clks[i]);
++			clk_put(par->clks[i]);
++		}
++	}
++
++	kfree(par->clks);
++}
++#else
++static int simplefb_clocks_init(struct simplefb_par *par,
++	struct platform_device *pdev) { return 0; }
++static void simplefb_clocks_destroy(struct simplefb_par *par) { }
++#endif
++
+ static int simplefb_probe(struct platform_device *pdev)
+ {
+ 	int ret;
+@@ -236,6 +334,10 @@ static int simplefb_probe(struct platform_device *pdev)
+ 	}
+ 	info->pseudo_palette = par->palette;
+ 
++	ret = simplefb_clocks_init(par, pdev);
++	if (ret < 0)
++		goto error_unmap;
++
+ 	dev_info(&pdev->dev, "framebuffer at 0x%lx, 0x%x bytes, mapped to 0x%p\n",
+ 			     info->fix.smem_start, info->fix.smem_len,
+ 			     info->screen_base);
+@@ -247,13 +349,15 @@ static int simplefb_probe(struct platform_device *pdev)
+ 	ret = register_framebuffer(info);
+ 	if (ret < 0) {
+ 		dev_err(&pdev->dev, "Unable to register simplefb: %d\n", ret);
+-		goto error_unmap;
++		goto error_clocks;
+ 	}
+ 
+ 	dev_info(&pdev->dev, "fb%d: simplefb registered!\n", info->node);
+ 
+ 	return 0;
+ 
++error_clocks:
++	simplefb_clocks_destroy(par);
+ error_unmap:
+ 	iounmap(info->screen_base);
+ error_fb_release:
+@@ -264,8 +368,10 @@ error_fb_release:
+ static int simplefb_remove(struct platform_device *pdev)
+ {
+ 	struct fb_info *info = platform_get_drvdata(pdev);
++	struct simplefb_par *par = info->par;
+ 
+ 	unregister_framebuffer(info);
++	simplefb_clocks_destroy(par);
+ 	framebuffer_release(info);
+ 
+ 	return 0;
+-- 
+2.1.4
+

Copied: dists/wheezy-backports/linux/debian/patches/features/all/simplefb-add-goto-error-path-to-probe.patch (from r22440, dists/sid/linux/debian/patches/features/all/simplefb-add-goto-error-path-to-probe.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/all/simplefb-add-goto-error-path-to-probe.patch	Tue Apr  7 21:44:05 2015	(r22488, copy of r22440, dists/sid/linux/debian/patches/features/all/simplefb-add-goto-error-path-to-probe.patch)
@@ -0,0 +1,75 @@
+From e57f8f9adc3d2924c8bf312a66786885c84cd06c Mon Sep 17 00:00:00 2001
+From: Luc Verhaegen <libv at skynet.be>
+Date: Fri, 14 Nov 2014 13:26:49 +0100
+Subject: [PATCH 02/15] simplefb: add goto error path to probe
+Origin: https://git.kernel.org/linus/bf2fda157a9ab50f65da60a365ede3a5b529d025
+
+Use the usual kernel style of goto error_foo to free resources on probe
+error. This is a preparation patch for adding clocks support.
+
+While at it also update ioremap_wc error return from ENODEV to ENOMEM.
+
+Signed-off-by: Luc Verhaegen <libv at skynet.be>
+Acked-by: Stephen Warren <swarren at nvidia.com>
+Reviewed-by: Hans de Goede <hdegoede at redhat.com>
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Acked-by: Geert Uytterhoeven <geert at linux-m68k.org>
+Reviewed-by: Maxime Ripard <maxime.ripard at free-electrons.com>
+Reviewed-by: David Herrmann <dh.herrmann at gmail.com>
+Acked-by: Grant Likely <grant.likely at linaro.org>
+Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ti.com>
+---
+ drivers/video/fbdev/simplefb.c | 18 +++++++++++-------
+ 1 file changed, 11 insertions(+), 7 deletions(-)
+
+diff --git a/drivers/video/fbdev/simplefb.c b/drivers/video/fbdev/simplefb.c
+index ec112c1..cdcf1fe 100644
+--- a/drivers/video/fbdev/simplefb.c
++++ b/drivers/video/fbdev/simplefb.c
+@@ -220,8 +220,8 @@ static int simplefb_probe(struct platform_device *pdev)
+ 
+ 	info->apertures = alloc_apertures(1);
+ 	if (!info->apertures) {
+-		framebuffer_release(info);
+-		return -ENOMEM;
++		ret = -ENOMEM;
++		goto error_fb_release;
+ 	}
+ 	info->apertures->ranges[0].base = info->fix.smem_start;
+ 	info->apertures->ranges[0].size = info->fix.smem_len;
+@@ -231,8 +231,8 @@ static int simplefb_probe(struct platform_device *pdev)
+ 	info->screen_base = ioremap_wc(info->fix.smem_start,
+ 				       info->fix.smem_len);
+ 	if (!info->screen_base) {
+-		framebuffer_release(info);
+-		return -ENODEV;
++		ret = -ENOMEM;
++		goto error_fb_release;
+ 	}
+ 	info->pseudo_palette = par->palette;
+ 
+@@ -247,14 +247,18 @@ static int simplefb_probe(struct platform_device *pdev)
+ 	ret = register_framebuffer(info);
+ 	if (ret < 0) {
+ 		dev_err(&pdev->dev, "Unable to register simplefb: %d\n", ret);
+-		iounmap(info->screen_base);
+-		framebuffer_release(info);
+-		return ret;
++		goto error_unmap;
+ 	}
+ 
+ 	dev_info(&pdev->dev, "fb%d: simplefb registered!\n", info->node);
+ 
+ 	return 0;
++
++error_unmap:
++	iounmap(info->screen_base);
++error_fb_release:
++	framebuffer_release(info);
++	return ret;
+ }
+ 
+ static int simplefb_remove(struct platform_device *pdev)
+-- 
+2.1.4
+

Copied: dists/wheezy-backports/linux/debian/patches/features/all/simplefb-formalize-pseudo-palette-handling.patch (from r22440, dists/sid/linux/debian/patches/features/all/simplefb-formalize-pseudo-palette-handling.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/all/simplefb-formalize-pseudo-palette-handling.patch	Tue Apr  7 21:44:05 2015	(r22488, copy of r22440, dists/sid/linux/debian/patches/features/all/simplefb-formalize-pseudo-palette-handling.patch)
@@ -0,0 +1,90 @@
+From a3bf3921e8e032943cf39f17daa30d35f412e365 Mon Sep 17 00:00:00 2001
+From: Luc Verhaegen <libv at skynet.be>
+Date: Fri, 14 Nov 2014 13:26:48 +0100
+Subject: [PATCH 01/15] simplefb: formalize pseudo palette handling
+Origin: https://git.kernel.org/linus/1270be4a4fb852630280638cbb169b67c485b3e3
+
+Add a proper struct describing simplefb private data, with the palette in there,
+instead of directly storing the palette in the fb_info->par pointer.
+
+Signed-off-by: Luc Verhaegen <libv at skynet.be>
+Acked-by: Stephen Warren <swarren at nvidia.com>
+[hdegoede at redhat.com: drop unnecessary void * cast]
+Reviewed-by: Hans de Goede <hdegoede at redhat.com>
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Acked-by: Geert Uytterhoeven <geert at linux-m68k.org>
+Reviewed-by: Maxime Ripard <maxime.ripard at free-electrons.com>
+Reviewed-by: David Herrmann <dh.herrmann at gmail.com>
+Acked-by: Grant Likely <grant.likely at linaro.org>
+Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ti.com>
+
+---
+ drivers/video/fbdev/simplefb.c | 15 ++++++++++++---
+ 1 file changed, 12 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/video/fbdev/simplefb.c b/drivers/video/fbdev/simplefb.c
+index 210f3a0..ec112c1 100644
+--- a/drivers/video/fbdev/simplefb.c
++++ b/drivers/video/fbdev/simplefb.c
+@@ -41,6 +41,8 @@ static struct fb_var_screeninfo simplefb_var = {
+ 	.vmode		= FB_VMODE_NONINTERLACED,
+ };
+ 
++#define PSEUDO_PALETTE_SIZE 16
++
+ static int simplefb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
+ 			      u_int transp, struct fb_info *info)
+ {
+@@ -50,7 +52,7 @@ static int simplefb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
+ 	u32 cb = blue >> (16 - info->var.blue.length);
+ 	u32 value;
+ 
+-	if (regno >= 16)
++	if (regno >= PSEUDO_PALETTE_SIZE)
+ 		return -EINVAL;
+ 
+ 	value = (cr << info->var.red.offset) |
+@@ -163,11 +165,16 @@ static int simplefb_parse_pd(struct platform_device *pdev,
+ 	return 0;
+ }
+ 
++struct simplefb_par {
++	u32 palette[PSEUDO_PALETTE_SIZE];
++};
++
+ static int simplefb_probe(struct platform_device *pdev)
+ {
+ 	int ret;
+ 	struct simplefb_params params;
+ 	struct fb_info *info;
++	struct simplefb_par *par;
+ 	struct resource *mem;
+ 
+ 	if (fb_get_options("simplefb", NULL))
+@@ -188,11 +195,13 @@ static int simplefb_probe(struct platform_device *pdev)
+ 		return -EINVAL;
+ 	}
+ 
+-	info = framebuffer_alloc(sizeof(u32) * 16, &pdev->dev);
++	info = framebuffer_alloc(sizeof(struct simplefb_par), &pdev->dev);
+ 	if (!info)
+ 		return -ENOMEM;
+ 	platform_set_drvdata(pdev, info);
+ 
++	par = info->par;
++
+ 	info->fix = simplefb_fix;
+ 	info->fix.smem_start = mem->start;
+ 	info->fix.smem_len = resource_size(mem);
+@@ -225,7 +234,7 @@ static int simplefb_probe(struct platform_device *pdev)
+ 		framebuffer_release(info);
+ 		return -ENODEV;
+ 	}
+-	info->pseudo_palette = (void *)(info + 1);
++	info->pseudo_palette = par->palette;
+ 
+ 	dev_info(&pdev->dev, "framebuffer at 0x%lx, 0x%x bytes, mapped to 0x%p\n",
+ 			     info->fix.smem_start, info->fix.smem_len,
+-- 
+2.1.4
+

Copied: dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sun4i-Add-simplefb-node-with-de_fe0-de_be0-l.patch (from r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sun4i-Add-simplefb-node-with-de_fe0-de_be0-l.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sun4i-Add-simplefb-node-with-de_fe0-de_be0-l.patch	Tue Apr  7 21:44:05 2015	(r22488, copy of r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sun4i-Add-simplefb-node-with-de_fe0-de_be0-l.patch)
@@ -0,0 +1,44 @@
+From 5429cd33ae8abeada683b08bab6d13f6227e2734 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Mon, 19 Jan 2015 14:01:17 +0100
+Subject: [PATCH 14/15] ARM: dts: sun4i: Add simplefb node with
+ de_fe0-de_be0-lcd0-hdmi pipeline
+Origin: https://git.kernel.org/linus/8cedd6628472aa2d8f2f54dfcc36633e46a59db8
+
+Testing has shown that on sun4i the display backend engine does not have
+deep enough fifo-s causing flickering / tearing in full-hd mode due to
+fifo underruns. This can be avoided by letting the display frontend engine
+do the dma from memory, and then letting it feed the data directly into
+the backend unmodified, as the frontend does have deep enough fifo-s.
+
+Note since u-boot-v2015.01 has been released using the de_be0-lcd0-hdmi
+pipeline on sun4i, we need to keep that one around too (unfortunately).
+
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Signed-off-by: Maxime Ripard <maxime.ripard at free-electrons.com>
+---
+ arch/arm/boot/dts/sun4i-a10.dtsi | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
+index a9a657c..7e3e5dd 100644
+--- a/arch/arm/boot/dts/sun4i-a10.dtsi
++++ b/arch/arm/boot/dts/sun4i-a10.dtsi
+@@ -39,6 +39,14 @@
+ 				 <&ahb_gates 44>;
+ 			status = "disabled";
+ 		};
++
++		framebuffer at 1 {
++			compatible = "allwinner,simple-framebuffer", "simple-framebuffer";
++			allwinner,pipeline = "de_fe0-de_be0-lcd0-hdmi";
++			clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 43>,
++				 <&ahb_gates 44>, <&ahb_gates 46>;
++			status = "disabled";
++		};
+ 	};
+ 
+ 	cpus {
+-- 
+2.1.4
+

Copied: dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sun4i-Add-simplefb-node.patch (from r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sun4i-Add-simplefb-node.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sun4i-Add-simplefb-node.patch	Tue Apr  7 21:44:05 2015	(r22488, copy of r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sun4i-Add-simplefb-node.patch)
@@ -0,0 +1,40 @@
+From 1924660efb8ad8b0dfe6c16e3f9b865489617bc1 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Fri, 14 Nov 2014 16:34:34 +0100
+Subject: [PATCH 08/15] ARM: dts: sun4i: Add simplefb node
+Origin: https://git.kernel.org/linus/5790d4ee1e425fefef0e012d1415c25baeb9dae8
+
+Add a simplefb template node for u-boot to further fill and activate.
+
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Signed-off-by: Maxime Ripard <maxime.ripard at free-electrons.com>
+---
+ arch/arm/boot/dts/sun4i-a10.dtsi | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
+index d96e179..8aa412f 100644
+--- a/arch/arm/boot/dts/sun4i-a10.dtsi
++++ b/arch/arm/boot/dts/sun4i-a10.dtsi
+@@ -27,6 +27,18 @@
+ 		serial7 = &uart7;
+ 	};
+ 
++	chosen {
++		#address-cells = <1>;
++		#size-cells = <1>;
++		ranges;
++
++		framebuffer0-hdmi {
++			compatible = "simple-framebuffer";
++			clocks = <&ahb_gates 36>, <&ahb_gates 43>, <&ahb_gates 44>;
++			status = "disabled";
++		};
++	};
++
+ 	cpus {
+ 		#address-cells = <1>;
+ 		#size-cells = <0>;
+-- 
+2.1.4
+

Copied: dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sun5i-Add-simplefb-node.patch (from r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sun5i-Add-simplefb-node.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sun5i-Add-simplefb-node.patch	Tue Apr  7 21:44:05 2015	(r22488, copy of r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sun5i-Add-simplefb-node.patch)
@@ -0,0 +1,40 @@
+From 8b6ded18e0b025919bf6f99f2ec0cb579a40e099 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Fri, 14 Nov 2014 16:34:35 +0100
+Subject: [PATCH 09/15] ARM: dts: sun5i: Add simplefb node
+Origin: https://git.kernel.org/linus/d501841fc42a97a8b69449135eadf6e9c4589a87
+
+Add a simplefb template node for u-boot to further fill and activate.
+
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Signed-off-by: Maxime Ripard <maxime.ripard at free-electrons.com>
+---
+ arch/arm/boot/dts/sun5i-a10s.dtsi | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/arch/arm/boot/dts/sun5i-a10s.dtsi b/arch/arm/boot/dts/sun5i-a10s.dtsi
+index b64f705..3b0ea26 100644
+--- a/arch/arm/boot/dts/sun5i-a10s.dtsi
++++ b/arch/arm/boot/dts/sun5i-a10s.dtsi
+@@ -24,6 +24,18 @@
+ 		serial3 = &uart3;
+ 	};
+ 
++	chosen {
++		#address-cells = <1>;
++		#size-cells = <1>;
++		ranges;
++
++		framebuffer0-hdmi {
++			compatible = "simple-framebuffer";
++			clocks = <&ahb_gates 36>, <&ahb_gates 43>, <&ahb_gates 44>;
++			status = "disabled";
++		};
++	};
++
+ 	cpus {
+ 		cpu at 0 {
+ 			compatible = "arm,cortex-a8";
+-- 
+2.1.4
+

Copied: dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sun6i-Add-simplefb-node.patch (from r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sun6i-Add-simplefb-node.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sun6i-Add-simplefb-node.patch	Tue Apr  7 21:44:05 2015	(r22488, copy of r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sun6i-Add-simplefb-node.patch)
@@ -0,0 +1,38 @@
+From 81d90d6cc2132414c9af30c49b487651a03f4c82 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Fri, 14 Nov 2014 16:34:36 +0100
+Subject: [PATCH 10/15] ARM: dts: sun6i: Add simplefb node
+Origin: https://git.kernel.org/linus/e53a8b2201384ee1a2cfd1609c9ffdf951b041a1
+
+Add a simplefb template node for u-boot to further fill and activate.
+
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Signed-off-by: Maxime Ripard <maxime.ripard at free-electrons.com>
+---
+ arch/arm/boot/dts/sun6i-a31.dtsi | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/arch/arm/boot/dts/sun6i-a31.dtsi b/arch/arm/boot/dts/sun6i-a31.dtsi
+index a9dfa12..eedb1e0 100644
+--- a/arch/arm/boot/dts/sun6i-a31.dtsi
++++ b/arch/arm/boot/dts/sun6i-a31.dtsi
+@@ -25,6 +25,16 @@
+ 		serial5 = &uart5;
+ 	};
+ 
++	chosen {
++		#address-cells = <1>;
++		#size-cells = <1>;
++		ranges;
++
++		framebuffer0-hdmi {
++			compatible = "simple-framebuffer";
++			status = "disabled";
++		};
++	};
+ 
+ 	cpus {
+ 		enable-method = "allwinner,sun6i-a31";
+-- 
+2.1.4
+

Copied: dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sun7i-Add-simplefb-node.patch (from r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sun7i-Add-simplefb-node.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sun7i-Add-simplefb-node.patch	Tue Apr  7 21:44:05 2015	(r22488, copy of r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sun7i-Add-simplefb-node.patch)
@@ -0,0 +1,40 @@
+From 0c484cbb0f590f457abbe6616d817cd623b382fa Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Fri, 14 Nov 2014 16:34:37 +0100
+Subject: [PATCH 11/15] ARM: dts: sun7i: Add simplefb node
+Origin: https://git.kernel.org/linus/8efc5c2be5b29f7ceec83bb471da81690273e141
+
+Add a simplefb template node for u-boot to further fill and activate.
+
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Signed-off-by: Maxime Ripard <maxime.ripard at free-electrons.com>
+---
+ arch/arm/boot/dts/sun7i-a20.dtsi | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
+index 01e9466..bb01f9b 100644
+--- a/arch/arm/boot/dts/sun7i-a20.dtsi
++++ b/arch/arm/boot/dts/sun7i-a20.dtsi
+@@ -28,6 +28,18 @@
+ 		serial7 = &uart7;
+ 	};
+ 
++	chosen {
++		#address-cells = <1>;
++		#size-cells = <1>;
++		ranges;
++
++		framebuffer0-hdmi {
++			compatible = "simple-framebuffer";
++			clocks = <&ahb_gates 36>, <&ahb_gates 43>, <&ahb_gates 44>;
++			status = "disabled";
++		};
++	};
++
+ 	cpus {
+ 		#address-cells = <1>;
+ 		#size-cells = <0>;
+-- 
+2.1.4
+

Copied: dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sunxi-Add-de_be0-clk-parent-pll-to-simplefb-.patch (from r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sunxi-Add-de_be0-clk-parent-pll-to-simplefb-.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sunxi-Add-de_be0-clk-parent-pll-to-simplefb-.patch	Tue Apr  7 21:44:05 2015	(r22488, copy of r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sunxi-Add-de_be0-clk-parent-pll-to-simplefb-.patch)
@@ -0,0 +1,80 @@
+From 0c9c7408537a543b10035434d79842651f540d7d Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Sun, 16 Nov 2014 17:09:32 +0100
+Subject: [PATCH 12/15] ARM: dts: sunxi: Add de_be0 clk parent pll to simplefb
+ node
+Origin: https://git.kernel.org/linus/678e75d3e5526bee1b09f0e916096ec7f7d35c8e
+
+Avoid the parent pll for the mod-clk for de_be0 getting disabled when non of
+the other users are enabled (which can happen when none of i2c, spi and mmc
+are in use).
+
+Note for now we point directly to the parent rather then to the de_be0 mod-clk
+as that is not modelled in our devicetree yet.
+
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Signed-off-by: Maxime Ripard <maxime.ripard at free-electrons.com>
+---
+ arch/arm/boot/dts/sun4i-a10.dtsi  | 3 ++-
+ arch/arm/boot/dts/sun5i-a10s.dtsi | 3 ++-
+ arch/arm/boot/dts/sun6i-a31.dtsi  | 1 +
+ arch/arm/boot/dts/sun7i-a20.dtsi  | 3 ++-
+ 4 files changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
+index 8aa412f..e6aaad6 100644
+--- a/arch/arm/boot/dts/sun4i-a10.dtsi
++++ b/arch/arm/boot/dts/sun4i-a10.dtsi
+@@ -34,7 +34,8 @@
+ 
+ 		framebuffer0-hdmi {
+ 			compatible = "simple-framebuffer";
+-			clocks = <&ahb_gates 36>, <&ahb_gates 43>, <&ahb_gates 44>;
++			clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 43>,
++				 <&ahb_gates 44>;
+ 			status = "disabled";
+ 		};
+ 	};
+diff --git a/arch/arm/boot/dts/sun5i-a10s.dtsi b/arch/arm/boot/dts/sun5i-a10s.dtsi
+index 3b0ea26..7b9bb3f 100644
+--- a/arch/arm/boot/dts/sun5i-a10s.dtsi
++++ b/arch/arm/boot/dts/sun5i-a10s.dtsi
+@@ -31,7 +31,8 @@
+ 
+ 		framebuffer0-hdmi {
+ 			compatible = "simple-framebuffer";
+-			clocks = <&ahb_gates 36>, <&ahb_gates 43>, <&ahb_gates 44>;
++			clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 43>,
++				 <&ahb_gates 44>;
+ 			status = "disabled";
+ 		};
+ 	};
+diff --git a/arch/arm/boot/dts/sun6i-a31.dtsi b/arch/arm/boot/dts/sun6i-a31.dtsi
+index eedb1e0..842d2e6 100644
+--- a/arch/arm/boot/dts/sun6i-a31.dtsi
++++ b/arch/arm/boot/dts/sun6i-a31.dtsi
+@@ -32,6 +32,7 @@
+ 
+ 		framebuffer0-hdmi {
+ 			compatible = "simple-framebuffer";
++			clocks = <&pll6 0>;
+ 			status = "disabled";
+ 		};
+ 	};
+diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
+index bb01f9b..c120b4f 100644
+--- a/arch/arm/boot/dts/sun7i-a20.dtsi
++++ b/arch/arm/boot/dts/sun7i-a20.dtsi
+@@ -35,7 +35,8 @@
+ 
+ 		framebuffer0-hdmi {
+ 			compatible = "simple-framebuffer";
+-			clocks = <&ahb_gates 36>, <&ahb_gates 43>, <&ahb_gates 44>;
++			clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 43>,
++				 <&ahb_gates 44>;
+ 			status = "disabled";
+ 		};
+ 	};
+-- 
+2.1.4
+

Copied: dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sunxi-Add-simplefb-nodes-for-de_be0-lcd0-de_.patch (from r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sunxi-Add-simplefb-nodes-for-de_be0-lcd0-de_.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sunxi-Add-simplefb-nodes-for-de_be0-lcd0-de_.patch	Tue Apr  7 21:44:05 2015	(r22488, copy of r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sunxi-Add-simplefb-nodes-for-de_be0-lcd0-de_.patch)
@@ -0,0 +1,149 @@
+From fc020448ed2abd7d649153e248e3ec08d17ae1f5 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Mon, 19 Jan 2015 14:05:12 +0100
+Subject: [PATCH 15/15] ARM: dts: sunxi: Add simplefb nodes for de_be0-lcd0,
+ de_be0-lcd0-tve0 pipelines
+Origin: https://git.kernel.org/linus/fd18c7eac03540654abdbfedd52e6dfb3718b489
+
+Add simplefb nodes for "[de_fe0-]de_be0-lcd0" and "[de_fe0-]de_be0-lcd0-tve0"
+display pipelines for when u-boot has set up a pipeline to drive a LCD panel /
+VGA output rather then the HDMI output.
+
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Signed-off-by: Maxime Ripard <maxime.ripard at free-electrons.com>
+
+Conflicts:
+	arch/arm/boot/dts/sun8i-a23.dtsi
+
+[ ijc -- dropped arch/arm/boot/dts/sun8i-a23.dtsi changes, not in baseline ]
+---
+ arch/arm/boot/dts/sun4i-a10.dtsi  | 18 ++++++++++++++++++
+ arch/arm/boot/dts/sun5i-a10s.dtsi |  8 ++++++++
+ arch/arm/boot/dts/sun5i-a13.dtsi  | 14 ++++++++++++++
+ arch/arm/boot/dts/sun6i-a31.dtsi  |  8 ++++++++
+ arch/arm/boot/dts/sun7i-a20.dtsi  | 17 +++++++++++++++++
+ 5 files changed, 65 insertions(+)
+
+diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
+index 7e3e5dd..eae8bfd 100644
+--- a/arch/arm/boot/dts/sun4i-a10.dtsi
++++ b/arch/arm/boot/dts/sun4i-a10.dtsi
+@@ -47,6 +47,24 @@
+ 				 <&ahb_gates 44>, <&ahb_gates 46>;
+ 			status = "disabled";
+ 		};
++
++		framebuffer at 2 {
++			compatible = "allwinner,simple-framebuffer",
++				     "simple-framebuffer";
++			allwinner,pipeline = "de_fe0-de_be0-lcd0";
++			clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 44>,
++				 <&ahb_gates 46>;
++			status = "disabled";
++		};
++
++		framebuffer at 3 {
++			compatible = "allwinner,simple-framebuffer",
++				     "simple-framebuffer";
++			allwinner,pipeline = "de_fe0-de_be0-lcd0-tve0";
++			clocks = <&pll5 1>, <&ahb_gates 34>, <&ahb_gates 36>,
++				 <&ahb_gates 44>, <&ahb_gates 46>;
++			status = "disabled";
++		};
+ 	};
+ 
+ 	cpus {
+diff --git a/arch/arm/boot/dts/sun5i-a10s.dtsi b/arch/arm/boot/dts/sun5i-a10s.dtsi
+index 245a25b..95bbfea 100644
+--- a/arch/arm/boot/dts/sun5i-a10s.dtsi
++++ b/arch/arm/boot/dts/sun5i-a10s.dtsi
+@@ -36,6 +36,14 @@
+ 				 <&ahb_gates 44>;
+ 			status = "disabled";
+ 		};
++
++		framebuffer at 1 {
++			compatible = "allwinner,simple-framebuffer",
++				     "simple-framebuffer";
++			allwinner,pipeline = "de_be0-lcd0";
++			clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 44>;
++			status = "disabled";
++		};
+ 	};
+ 
+ 	cpus {
+diff --git a/arch/arm/boot/dts/sun5i-a13.dtsi b/arch/arm/boot/dts/sun5i-a13.dtsi
+index 3b2a94c..a194c1e 100644
+--- a/arch/arm/boot/dts/sun5i-a13.dtsi
++++ b/arch/arm/boot/dts/sun5i-a13.dtsi
+@@ -21,6 +21,20 @@
+ 		serial1 = &uart3;
+ 	};
+ 
++	chosen {
++		#address-cells = <1>;
++		#size-cells = <1>;
++		ranges;
++
++		framebuffer at 0 {
++			compatible = "allwinner,simple-framebuffer",
++				     "simple-framebuffer";
++			allwinner,pipeline = "de_be0-lcd0";
++			clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 44>;
++			status = "disabled";
++		};
++	};
++
+ 	cpus {
+ 		#address-cells = <1>;
+ 		#size-cells = <0>;
+diff --git a/arch/arm/boot/dts/sun6i-a31.dtsi b/arch/arm/boot/dts/sun6i-a31.dtsi
+index fe2c938..90cc322 100644
+--- a/arch/arm/boot/dts/sun6i-a31.dtsi
++++ b/arch/arm/boot/dts/sun6i-a31.dtsi
+@@ -36,6 +36,14 @@
+ 			clocks = <&pll6 0>;
+ 			status = "disabled";
+ 		};
++
++		framebuffer at 1 {
++			compatible = "allwinner,simple-framebuffer",
++				     "simple-framebuffer";
++			allwinner,pipeline = "de_be0-lcd0";
++			clocks = <&pll6 0>;
++			status = "disabled";
++		};
+ 	};
+ 
+ 	cpus {
+diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
+index e31ae3a..7d47914 100644
+--- a/arch/arm/boot/dts/sun7i-a20.dtsi
++++ b/arch/arm/boot/dts/sun7i-a20.dtsi
+@@ -40,6 +40,23 @@
+ 				 <&ahb_gates 44>;
+ 			status = "disabled";
+ 		};
++
++		framebuffer at 1 {
++			compatible = "allwinner,simple-framebuffer",
++				     "simple-framebuffer";
++			allwinner,pipeline = "de_be0-lcd0";
++			clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 44>;
++			status = "disabled";
++		};
++
++		framebuffer at 2 {
++			compatible = "allwinner,simple-framebuffer",
++				     "simple-framebuffer";
++			allwinner,pipeline = "de_be0-lcd0-tve0";
++			clocks = <&pll5 1>, <&ahb_gates 34>, <&ahb_gates 36>,
++				 <&ahb_gates 44>;
++			status = "disabled";
++		};
+ 	};
+ 
+ 	cpus {
+-- 
+2.1.4
+

Copied: dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sunxi-Update-simplefb-nodes-so-that-u-boot-c.patch (from r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sunxi-Update-simplefb-nodes-so-that-u-boot-c.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/arm/ARM-dts-sunxi-Update-simplefb-nodes-so-that-u-boot-c.patch	Tue Apr  7 21:44:05 2015	(r22488, copy of r22440, dists/sid/linux/debian/patches/features/arm/ARM-dts-sunxi-Update-simplefb-nodes-so-that-u-boot-c.patch)
@@ -0,0 +1,93 @@
+From cba654240791a0ac72310f0ba840f48a377277a3 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Tue, 18 Nov 2014 12:07:13 +0100
+Subject: [PATCH 13/15] ARM: dts: sunxi: Update simplefb nodes so that u-boot
+ can find them
+Origin: https://git.kernel.org/linus/a9f8cda32a3acc3150755fe973f7fa1867a7a5d6
+
+Review of the u-boot sunxi simplefb patches has led to the decision that
+u-boot should not use a specific path to find the nodes as this goes contrary
+to how devicetree usually works.
+
+Instead a platform specific compatible + properties should be used for this.
+
+The simplefb bindings have already been updated to reflect this, this patch
+brings the sunxi devicetree files in line with the new binding, and the
+actual u-boot implementation as it is going upstream.
+
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Signed-off-by: Maxime Ripard <maxime.ripard at free-electrons.com>
+---
+ arch/arm/boot/dts/sun4i-a10.dtsi  | 5 +++--
+ arch/arm/boot/dts/sun5i-a10s.dtsi | 5 +++--
+ arch/arm/boot/dts/sun6i-a31.dtsi  | 5 +++--
+ arch/arm/boot/dts/sun7i-a20.dtsi  | 5 +++--
+ 4 files changed, 12 insertions(+), 8 deletions(-)
+
+diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
+index e6aaad6..a9a657c 100644
+--- a/arch/arm/boot/dts/sun4i-a10.dtsi
++++ b/arch/arm/boot/dts/sun4i-a10.dtsi
+@@ -32,8 +32,9 @@
+ 		#size-cells = <1>;
+ 		ranges;
+ 
+-		framebuffer0-hdmi {
+-			compatible = "simple-framebuffer";
++		framebuffer at 0 {
++			compatible = "allwinner,simple-framebuffer", "simple-framebuffer";
++			allwinner,pipeline = "de_be0-lcd0-hdmi";
+ 			clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 43>,
+ 				 <&ahb_gates 44>;
+ 			status = "disabled";
+diff --git a/arch/arm/boot/dts/sun5i-a10s.dtsi b/arch/arm/boot/dts/sun5i-a10s.dtsi
+index 7b9bb3f..245a25b 100644
+--- a/arch/arm/boot/dts/sun5i-a10s.dtsi
++++ b/arch/arm/boot/dts/sun5i-a10s.dtsi
+@@ -29,8 +29,9 @@
+ 		#size-cells = <1>;
+ 		ranges;
+ 
+-		framebuffer0-hdmi {
+-			compatible = "simple-framebuffer";
++		framebuffer at 0 {
++			compatible = "allwinner,simple-framebuffer", "simple-framebuffer";
++			allwinner,pipeline = "de_be0-lcd0-hdmi";
+ 			clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 43>,
+ 				 <&ahb_gates 44>;
+ 			status = "disabled";
+diff --git a/arch/arm/boot/dts/sun6i-a31.dtsi b/arch/arm/boot/dts/sun6i-a31.dtsi
+index 842d2e6..fe2c938 100644
+--- a/arch/arm/boot/dts/sun6i-a31.dtsi
++++ b/arch/arm/boot/dts/sun6i-a31.dtsi
+@@ -30,8 +30,9 @@
+ 		#size-cells = <1>;
+ 		ranges;
+ 
+-		framebuffer0-hdmi {
+-			compatible = "simple-framebuffer";
++		framebuffer at 0 {
++			compatible = "allwinner,simple-framebuffer", "simple-framebuffer";
++			allwinner,pipeline = "de_be0-lcd0-hdmi";
+ 			clocks = <&pll6 0>;
+ 			status = "disabled";
+ 		};
+diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
+index c120b4f..e31ae3a 100644
+--- a/arch/arm/boot/dts/sun7i-a20.dtsi
++++ b/arch/arm/boot/dts/sun7i-a20.dtsi
+@@ -33,8 +33,9 @@
+ 		#size-cells = <1>;
+ 		ranges;
+ 
+-		framebuffer0-hdmi {
+-			compatible = "simple-framebuffer";
++		framebuffer at 0 {
++			compatible = "allwinner,simple-framebuffer", "simple-framebuffer";
++			allwinner,pipeline = "de_be0-lcd0-hdmi";
+ 			clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 43>,
+ 				 <&ahb_gates 44>;
+ 			status = "disabled";
+-- 
+2.1.4
+

Copied: dists/wheezy-backports/linux/debian/patches/features/arm/dts-sun7i-Add-dts-file-for-Bananapro-board.patch (from r22440, dists/sid/linux/debian/patches/features/arm/dts-sun7i-Add-dts-file-for-Bananapro-board.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/arm/dts-sun7i-Add-dts-file-for-Bananapro-board.patch	Tue Apr  7 21:44:05 2015	(r22488, copy of r22440, dists/sid/linux/debian/patches/features/arm/dts-sun7i-Add-dts-file-for-Bananapro-board.patch)
@@ -0,0 +1,296 @@
+From 10662a33dcd97f27004779df7e9188c124bc7076 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Sun, 18 Jan 2015 13:08:19 +0100
+Subject: ARM: dts: sun7i: Add dts file for Bananapro board
+Origin: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/patch/?id=10662a33dcd97f27004779df7e9188c124bc7076
+
+Add support for the new Bananapro A20 development board from lemaker.org.
+This board features 1G RAM, 2 USB A receptacles, 1 micro USB receptacle for
+OTG, 1 micro USB receptacle for power, HDMI, sata, Gbit ethernet, ir receiver,
+3.5 mm jack for a/v out, on board microphone, 40 gpio pins and sdio wifi.
+
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Signed-off-by: Maxime Ripard <maxime.ripard at free-electrons.com>
+[Karsten Merker: replace SUN4I_PINCTRL_10_MA, SUN4I_PINCTRL_NO_PULL and
+SUN4I_PINCTRL_PULL_UP with their corresponding values as these symbols are not
+yet defined in 3.16.]
+
+Index: linux-3.16.7-ckt7/arch/arm/boot/dts/Makefile
+===================================================================
+--- linux-3.16.7-ckt7.orig/arch/arm/boot/dts/Makefile
++++ linux-3.16.7-ckt7/arch/arm/boot/dts/Makefile
+@@ -377,6 +377,7 @@ dtb-$(CONFIG_MACH_SUN6I) += \
+ 	sun6i-a31-m9.dtb
+ dtb-$(CONFIG_MACH_SUN7I) += \
+ 	sun7i-a20-bananapi.dtb \
++	sun7i-a20-bananapro.dtb \
+ 	sun7i-a20-cubieboard2.dtb \
+ 	sun7i-a20-cubietruck.dtb \
+ 	sun7i-a20-i12-tvbox.dtb \
+Index: linux-3.16.7-ckt7/arch/arm/boot/dts/sun7i-a20-bananapro.dts
+===================================================================
+--- /dev/null
++++ linux-3.16.7-ckt7/arch/arm/boot/dts/sun7i-a20-bananapro.dts
+@@ -0,0 +1,262 @@
++/*
++ * Copyright 2015 Hans de Goede <hdegoede at redhat.com>
++ *
++ * This file is dual-licensed: you can use it either under the terms
++ * of the GPL or the X11 license, at your option. Note that this dual
++ * licensing only applies to this file, and not this project as a
++ * whole.
++ *
++ *  a) This file is free software; you can redistribute it and/or
++ *     modify it under the terms of the GNU General Public License as
++ *     published by the Free Software Foundation; either version 2 of the
++ *     License, or (at your option) any later version.
++ *
++ *     This file is distributed in the hope that it will be useful,
++ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *     GNU General Public License for more details.
++ *
++ *     You should have received a copy of the GNU General Public
++ *     License along with this file; if not, write to the Free
++ *     Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
++ *     MA 02110-1301 USA
++ *
++ * Or, alternatively,
++ *
++ *  b) Permission is hereby granted, free of charge, to any person
++ *     obtaining a copy of this software and associated documentation
++ *     files (the "Software"), to deal in the Software without
++ *     restriction, including without limitation the rights to use,
++ *     copy, modify, merge, publish, distribute, sublicense, and/or
++ *     sell copies of the Software, and to permit persons to whom the
++ *     Software is furnished to do so, subject to the following
++ *     conditions:
++ *
++ *     The above copyright notice and this permission notice shall be
++ *     included in all copies or substantial portions of the Software.
++ *
++ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
++ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
++ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
++ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
++ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
++ *     OTHER DEALINGS IN THE SOFTWARE.
++ */
++
++/dts-v1/;
++#include "sun7i-a20.dtsi"
++#include "sunxi-common-regulators.dtsi"
++#include <dt-bindings/gpio/gpio.h>
++#include <dt-bindings/interrupt-controller/arm-gic.h>
++
++/ {
++	model = "LeMaker Banana Pro";
++	compatible = "lemaker,bananapro", "allwinner,sun7i-a20";
++
++	leds {
++		compatible = "gpio-leds";
++		pinctrl-names = "default";
++		pinctrl-0 = <&led_pins_bananapro>;
++
++		blue {
++			label = "bananapro:blue:usr";
++			gpios = <&pio 6 2 GPIO_ACTIVE_HIGH>;
++		};
++
++		green {
++			label = "bananapro:green:usr";
++			gpios = <&pio 7 24 GPIO_ACTIVE_HIGH>;
++		};
++	};
++
++	reg_gmac_3v3: gmac-3v3 {
++		compatible = "regulator-fixed";
++		pinctrl-names = "default";
++		pinctrl-0 = <&gmac_power_pin_bananapro>;
++		regulator-name = "gmac-3v3";
++		regulator-min-microvolt = <3300000>;
++		regulator-max-microvolt = <3300000>;
++		startup-delay-us = <100000>;
++		enable-active-high;
++		gpio = <&pio 7 23 GPIO_ACTIVE_HIGH>;
++	};
++
++	reg_vmmc3: vmmc3 {
++		compatible = "regulator-fixed";
++		pinctrl-names = "default";
++		pinctrl-0 = <&vmmc3_pin_bananapro>;
++		regulator-name = "vmmc3";
++		regulator-min-microvolt = <3300000>;
++		regulator-max-microvolt = <3300000>;
++		enable-active-high;
++		gpio = <&pio 7 22 GPIO_ACTIVE_HIGH>;
++	};
++};
++
++&ahci {
++	status = "okay";
++};
++
++&ehci0 {
++	status = "okay";
++};
++
++&ehci1 {
++	status = "okay";
++};
++
++&gmac {
++	pinctrl-names = "default";
++	pinctrl-0 = <&gmac_pins_rgmii_a>;
++	phy = <&phy1>;
++	phy-mode = "rgmii";
++	phy-supply = <&reg_gmac_3v3>;
++	status = "okay";
++
++	phy1: ethernet-phy at 1 {
++		reg = <1>;
++	};
++};
++
++&i2c0 {
++	pinctrl-names = "default";
++	pinctrl-0 = <&i2c0_pins_a>;
++	status = "okay";
++
++	axp209: pmic at 34 {
++		compatible = "x-powers,axp209";
++		reg = <0x34>;
++		interrupt-parent = <&nmi_intc>;
++		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
++
++		interrupt-controller;
++		#interrupt-cells = <1>;
++	};
++};
++
++&i2c2 {
++	pinctrl-names = "default";
++	pinctrl-0 = <&i2c2_pins_a>;
++	status = "okay";
++};
++
++&ir0 {
++	pinctrl-names = "default";
++	pinctrl-0 = <&ir0_pins_a>;
++	status = "okay";
++};
++
++&mmc0 {
++	pinctrl-names = "default";
++	pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_bananapro>;
++	vmmc-supply = <&reg_vcc3v3>;
++	bus-width = <4>;
++	cd-gpios = <&pio 7 10 GPIO_ACTIVE_HIGH>; /* PH10 */
++	cd-inverted;
++	status = "okay";
++};
++
++&mmc3 {
++	pinctrl-names = "default";
++	pinctrl-0 = <&mmc3_pins_a>;
++	vmmc-supply = <&reg_vmmc3>;
++	bus-width = <4>;
++	non-removable;
++	status = "okay";
++};
++
++&ohci0 {
++	status = "okay";
++};
++
++&ohci1 {
++	status = "okay";
++};
++
++&pio {
++	gmac_power_pin_bananapro: gmac_power_pin at 0 {
++		allwinner,pins = "PH23";
++		allwinner,function = "gpio_out";
++		allwinner,drive = <0>;
++		allwinner,pull = <0>;
++	};
++
++	led_pins_bananapro: led_pins at 0 {
++		allwinner,pins = "PH24", "PG2";
++		allwinner,function = "gpio_out";
++		allwinner,drive = <0>;
++		allwinner,pull = <0>;
++	};
++
++	mmc0_cd_pin_bananapro: mmc0_cd_pin at 0 {
++		allwinner,pins = "PH10";
++		allwinner,function = "gpio_in";
++		allwinner,drive = <0>;
++		allwinner,pull = <1>;
++	};
++
++	usb1_vbus_pin_bananapro: usb1_vbus_pin at 0 {
++		allwinner,pins = "PH0";
++		allwinner,function = "gpio_out";
++		allwinner,drive = <0>;
++		allwinner,pull = <0>;
++	};
++
++	usb2_vbus_pin_bananapro: usb2_vbus_pin at 0 {
++		allwinner,pins = "PH1";
++		allwinner,function = "gpio_out";
++		allwinner,drive = <0>;
++		allwinner,pull = <0>;
++	};
++
++	vmmc3_pin_bananapro: vmmc3_pin at 0 {
++		allwinner,pins = "PH22";
++		allwinner,function = "gpio_out";
++		allwinner,drive = <0>;
++		allwinner,pull = <0>;
++	};
++};
++
++&reg_usb1_vbus {
++	pinctrl-0 = <&usb1_vbus_pin_bananapro>;
++	gpio = <&pio 7 0 GPIO_ACTIVE_HIGH>; /* PH0 */
++	status = "okay";
++};
++
++&reg_usb2_vbus {
++	pinctrl-0 = <&usb2_vbus_pin_bananapro>;
++	gpio = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */
++	status = "okay";
++};
++
++&spi0 {
++	pinctrl-names = "default";
++	pinctrl-0 = <&spi0_pins_a>;
++	status = "okay";
++};
++
++&uart0 {
++	pinctrl-names = "default";
++	pinctrl-0 = <&uart0_pins_a>;
++	status = "okay";
++};
++
++&uart2 {
++	pinctrl-names = "default";
++	pinctrl-0 = <&uart2_pins_a>;
++	status = "okay";
++};
++
++&uart7 {
++	pinctrl-names = "default";
++	pinctrl-0 = <&uart7_pins_a>;
++	status = "okay";
++};
++
++&usbphy {
++	usb1_vbus-supply = <&reg_usb1_vbus>;
++	usb2_vbus-supply = <&reg_usb2_vbus>;
++	status = "okay";
++};

Copied: dists/wheezy-backports/linux/debian/patches/features/arm/dts-sun7i-Add-support-for-A20-OLinuXino-Lime2.patch (from r22440, dists/sid/linux/debian/patches/features/arm/dts-sun7i-Add-support-for-A20-OLinuXino-Lime2.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/arm/dts-sun7i-Add-support-for-A20-OLinuXino-Lime2.patch	Tue Apr  7 21:44:05 2015	(r22488, copy of r22440, dists/sid/linux/debian/patches/features/arm/dts-sun7i-Add-support-for-A20-OLinuXino-Lime2.patch)
@@ -0,0 +1,255 @@
+From 518478811c95fafcbef64cf20172a3d6c8dceb27 Mon Sep 17 00:00:00 2001
+From: Iain Paton <ipaton0 at gmail.com>
+Date: Fri, 10 Oct 2014 14:15:24 +0100
+Subject: ARM: sun7i: add support for A20-OLinuXino-Lime2
+Origin: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/patch/?id=518478811c95fafcbef64cf20172a3d6c8dceb27
+
+This adds support for the Olimex A20-OLinuXino-Lime2
+https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXIno-LIME2
+
+Differences to previous Lime boards are 1GB RAM and gigabit ethernet
+
+Signed-off-by: Iain Paton <ipaton0 at gmail.com>
+Signed-off-by: Maxime Ripard <maxime.ripard at free-electrons.com>
+
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -381,6 +381,7 @@
+ 	sun7i-a20-cubietruck.dtb \
+ 	sun7i-a20-i12-tvbox.dtb \
+ 	sun7i-a20-olinuxino-lime.dtb \
++	sun7i-a20-olinuxino-lime2.dtb \
+ 	sun7i-a20-olinuxino-micro.dtb \
+ 	sun7i-a20-pcduino3.dtb
+ dtb-$(CONFIG_ARCH_TEGRA) += tegra20-harmony.dtb \
+--- /dev/null
++++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts
+@@ -0,0 +1,228 @@
++/*
++ * Copyright 2014 - Iain Paton <ipaton0 at gmail.com>
++ *
++ * This file is dual-licensed: you can use it either under the terms
++ * of the GPL or the X11 license, at your option. Note that this dual
++ * licensing only applies to this file, and not this project as a
++ * whole.
++ *
++ *  a) This library is free software; you can redistribute it and/or
++ *     modify it under the terms of the GNU General Public License as
++ *     published by the Free Software Foundation; either version 2 of the
++ *     License, or (at your option) any later version.
++ *
++ *     This library is distributed in the hope that it will be useful,
++ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *     GNU General Public License for more details.
++ *
++ *     You should have received a copy of the GNU General Public
++ *     License along with this library; if not, write to the Free
++ *     Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
++ *     MA 02110-1301 USA
++ *
++ * Or, alternatively,
++ *
++ *  b) Permission is hereby granted, free of charge, to any person
++ *     obtaining a copy of this software and associated documentation
++ *     files (the "Software"), to deal in the Software without
++ *     restriction, including without limitation the rights to use,
++ *     copy, modify, merge, publish, distribute, sublicense, and/or
++ *     sell copies of the Software, and to permit persons to whom the
++ *     Software is furnished to do so, subject to the following
++ *     conditions:
++ *
++ *     The above copyright notice and this permission notice shall be
++ *     included in all copies or substantial portions of the Software.
++ *
++ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
++ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
++ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
++ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
++ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
++ *     OTHER DEALINGS IN THE SOFTWARE.
++ */
++
++/dts-v1/;
++/include/ "sun7i-a20.dtsi"
++/include/ "sunxi-common-regulators.dtsi"
++
++/ {
++	model = "Olimex A20-OLinuXino-LIME2";
++	compatible = "olimex,a20-olinuxino-lime2", "allwinner,sun7i-a20";
++
++	soc at 01c00000 {
++		mmc0: mmc at 01c0f000 {
++			pinctrl-names = "default";
++			pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_reference_design>;
++			vmmc-supply = <&reg_vcc3v3>;
++			bus-width = <4>;
++			cd-gpios = <&pio 7 1 0>; /* PH1 */
++			cd-inverted;
++			status = "okay";
++		};
++
++		usbphy: phy at 01c13400 {
++			usb1_vbus-supply = <&reg_usb1_vbus>;
++			usb2_vbus-supply = <&reg_usb2_vbus>;
++			status = "okay";
++		};
++
++		ehci0: usb at 01c14000 {
++			status = "okay";
++		};
++
++		ohci0: usb at 01c14400 {
++			status = "okay";
++		};
++
++		ahci: sata at 01c18000 {
++			target-supply = <&reg_ahci_5v>;
++			status = "okay";
++		};
++
++		ehci1: usb at 01c1c000 {
++			status = "okay";
++		};
++
++		ohci1: usb at 01c1c400 {
++			status = "okay";
++		};
++
++		pinctrl at 01c20800 {
++			ahci_pwr_pin_olinuxinolime: ahci_pwr_pin at 1 {
++				allwinner,pins = "PC3";
++				allwinner,function = "gpio_out";
++				allwinner,drive = <0>;
++				allwinner,pull = <0>;
++			};
++
++			led_pins_olinuxinolime: led_pins at 0 {
++				allwinner,pins = "PH2";
++				allwinner,function = "gpio_out";
++				allwinner,drive = <1>;
++				allwinner,pull = <0>;
++			};
++		};
++
++		uart0: serial at 01c28000 {
++			pinctrl-names = "default";
++			pinctrl-0 = <&uart0_pins_a>;
++			status = "okay";
++		};
++
++		i2c0: i2c at 01c2ac00 {
++			pinctrl-names = "default";
++			pinctrl-0 = <&i2c0_pins_a>;
++			status = "okay";
++
++			axp209: pmic at 34 {
++				compatible = "x-powers,axp209";
++				reg = <0x34>;
++				interrupt-parent = <&nmi_intc>;
++				interrupts = <0 8>;
++
++				interrupt-controller;
++				#interrupt-cells = <1>;
++
++				acin-supply = <&reg_axp_ipsout>;
++				vin2-supply = <&reg_axp_ipsout>;
++				vin3-supply = <&reg_axp_ipsout>;
++				ldo24in-supply = <&reg_axp_ipsout>;
++				ldo3in-supply = <&reg_axp_ipsout>;
++
++				regulators {
++					vdd_rtc: ldo1 {
++						regulator-min-microvolt = <1300000>;
++						regulator-max-microvolt = <1300000>;
++						regulator-always-on;
++					};
++
++					avcc: ldo2 {
++						regulator-min-microvolt = <1800000>;
++						regulator-max-microvolt = <3300000>;
++						regulator-always-on;
++					};
++
++					vcc_csi0: ldo3 {
++						regulator-min-microvolt = <700000>;
++						regulator-max-microvolt = <3500000>;
++						regulator-always-on;
++					};
++
++					vcc_csi1: ldo4 {
++						regulator-min-microvolt = <1250000>;
++						regulator-max-microvolt = <3300000>;
++						regulator-always-on;
++					};
++
++					vdd_cpu: dcdc2 {
++						regulator-min-microvolt = <700000>;
++						regulator-max-microvolt = <2275000>;
++						regulator-always-on;
++					};
++
++					vdd_int: dcdc3 {
++						regulator-min-microvolt = <700000>;
++						regulator-max-microvolt = <3500000>;
++						regulator-always-on;
++					};
++				};
++			};
++		};
++
++		i2c1: i2c at 01c2b000 {
++			pinctrl-names = "default";
++			pinctrl-0 = <&i2c1_pins_a>;
++			status = "okay";
++		};
++
++		gmac: ethernet at 01c50000 {
++			pinctrl-names = "default";
++			pinctrl-0 = <&gmac_pins_rgmii_a>;
++			phy = <&phy1>;
++			phy-mode = "rgmii";
++			status = "okay";
++
++			phy1: ethernet-phy at 1 {
++				reg = <1>;
++			};
++		};
++	};
++
++	leds {
++		compatible = "gpio-leds";
++		pinctrl-names = "default";
++		pinctrl-0 = <&led_pins_olinuxinolime>;
++
++		green {
++			label = "a20-olinuxino-lime2:green:usr";
++			gpios = <&pio 7 2 0>;
++			default-state = "on";
++		};
++	};
++
++	reg_ahci_5v: ahci-5v {
++		pinctrl-0 = <&ahci_pwr_pin_olinuxinolime>;
++		gpio = <&pio 2 3 0>;
++		status = "okay";
++	};
++
++	reg_usb1_vbus: usb1-vbus {
++		status = "okay";
++	};
++
++	reg_usb2_vbus: usb2-vbus {
++		status = "okay";
++	};
++
++	reg_axp_ipsout: axp_ipsout {
++		compatible = "regulator-fixed";
++		regulator-name = "axp-ipsout";
++		regulator-min-microvolt = <5000000>;
++		regulator-max-microvolt = <5000000>;
++		regulator-always-on;
++	};
++};

Copied: dists/wheezy-backports/linux/debian/patches/features/arm/dts-sun7i-Rename-sun7i-a20-ir-to-sun4i-a10-ir.patch (from r22440, dists/sid/linux/debian/patches/features/arm/dts-sun7i-Rename-sun7i-a20-ir-to-sun4i-a10-ir.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/arm/dts-sun7i-Rename-sun7i-a20-ir-to-sun4i-a10-ir.patch	Tue Apr  7 21:44:05 2015	(r22488, copy of r22440, dists/sid/linux/debian/patches/features/arm/dts-sun7i-Rename-sun7i-a20-ir-to-sun4i-a10-ir.patch)
@@ -0,0 +1,39 @@
+From 1715a389949a4a3f03192268dfb3ac5710f2dd3c Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Mon, 30 Jun 2014 23:57:54 +0200
+Subject: ARM: dts: sun7i: Rename sun7i-a20-ir to sun4i-a10-ir
+Origin: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/patch/?id=1715a389949a4a3f03192268dfb3ac5710f2dd3c
+
+The sun7i block is the same as the one in the sun4i, rename the compatible
+to reflect this.
+
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+
+--
+
+I've already included the matching change to sunxi-cir.c in my pull-req to
+Mauro.
+Signed-off-by: Maxime Ripard <maxime.ripard at free-electrons.com>
+
+Index: linux-3.16.7-ckt7/arch/arm/boot/dts/sun7i-a20.dtsi
+===================================================================
+--- linux-3.16.7-ckt7.orig/arch/arm/boot/dts/sun7i-a20.dtsi
++++ linux-3.16.7-ckt7/arch/arm/boot/dts/sun7i-a20.dtsi
+@@ -800,7 +800,7 @@
+ 		};
+ 
+ 		ir0: ir at 01c21800 {
+-			compatible = "allwinner,sun7i-a20-ir";
++			compatible = "allwinner,sun4i-a10-ir";
+ 			clocks = <&apb0_gates 6>, <&ir0_clk>;
+ 			clock-names = "apb", "ir";
+ 			interrupts = <0 5 4>;
+@@ -809,7 +809,7 @@
+ 		};
+ 
+ 		ir1: ir at 01c21c00 {
+-			compatible = "allwinner,sun7i-a20-ir";
++			compatible = "allwinner,sun4i-a10-ir";
+ 			clocks = <&apb0_gates 7>, <&ir1_clk>;
+ 			clock-names = "apb", "ir";
+ 			interrupts = <0 6 4>;

Copied: dists/wheezy-backports/linux/debian/patches/features/arm/dts-sunxi-Add-IR-controllers-on-A20-to-dtsi.patch (from r22440, dists/sid/linux/debian/patches/features/arm/dts-sunxi-Add-IR-controllers-on-A20-to-dtsi.patch)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/wheezy-backports/linux/debian/patches/features/arm/dts-sunxi-Add-IR-controllers-on-A20-to-dtsi.patch	Tue Apr  7 21:44:05 2015	(r22488, copy of r22440, dists/sid/linux/debian/patches/features/arm/dts-sunxi-Add-IR-controllers-on-A20-to-dtsi.patch)
@@ -0,0 +1,41 @@
+From c1a0ee3d5322d488c539e20d40db88b181628670 Mon Sep 17 00:00:00 2001
+From: Alexander Bersenev <bay at hackerdom.ru>
+Date: Sat, 21 Jun 2014 17:04:05 +0600
+Subject: ARM: sunxi: Add IR controllers on A20 to dtsi
+Origin: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/patch/?id=c1a0ee3d5322d488c539e20d40db88b181628670
+
+This patch adds records for two IR controllers on A20
+
+Signed-off-by: Alexander Bersenev <bay at hackerdom.ru>
+Signed-off-by: Alexsey Shestacov <wingrime at linux-sunxi.org>
+Signed-off-by: Maxime Ripard <maxime.ripard at free-electrons.com>
+
+Index: linux-3.16.7-ckt7/arch/arm/boot/dts/sun7i-a20.dtsi
+===================================================================
+--- linux-3.16.7-ckt7.orig/arch/arm/boot/dts/sun7i-a20.dtsi
++++ linux-3.16.7-ckt7/arch/arm/boot/dts/sun7i-a20.dtsi
+@@ -799,6 +799,24 @@
+ 			status = "disabled";
+ 		};
+ 
++		ir0: ir at 01c21800 {
++			compatible = "allwinner,sun7i-a20-ir";
++			clocks = <&apb0_gates 6>, <&ir0_clk>;
++			clock-names = "apb", "ir";
++			interrupts = <0 5 4>;
++			reg = <0x01c21800 0x40>;
++			status = "disabled";
++		};
++
++		ir1: ir at 01c21c00 {
++			compatible = "allwinner,sun7i-a20-ir";
++			clocks = <&apb0_gates 7>, <&ir1_clk>;
++			clock-names = "apb", "ir";
++			interrupts = <0 6 4>;
++			reg = <0x01c21c00 0x40>;
++			status = "disabled";
++		};
++
+ 		sid: eeprom at 01c23800 {
+ 			compatible = "allwinner,sun7i-a20-sid";
+ 			reg = <0x01c23800 0x200>;

Modified: dists/wheezy-backports/linux/debian/patches/features/x86/apple-tb/pci-suspend-resume-quirks-for-apple-thunderbolt.patch
==============================================================================
--- dists/wheezy-backports/linux/debian/patches/features/x86/apple-tb/pci-suspend-resume-quirks-for-apple-thunderbolt.patch	Mon Apr  6 23:38:13 2015	(r22487)
+++ dists/wheezy-backports/linux/debian/patches/features/x86/apple-tb/pci-suspend-resume-quirks-for-apple-thunderbolt.patch	Tue Apr  7 21:44:05 2015	(r22488)
@@ -30,9 +30,9 @@
 
 --- a/drivers/pci/quirks.c
 +++ b/drivers/pci/quirks.c
-@@ -3006,6 +3006,103 @@ DECLARE_PCI_FIXUP_HEADER(0x1814, 0x0601,
- DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_REALTEK, 0x8169,
- 			 quirk_broken_intx_masking);
+@@ -3020,6 +3020,103 @@ static void quirk_no_bus_reset(struct pc
+  */
+ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATHEROS, 0x0030, quirk_no_bus_reset);
  
 +#ifdef CONFIG_ACPI
 +/*
@@ -136,7 +136,7 @@
  {
 --- a/include/linux/pci.h
 +++ b/include/linux/pci.h
-@@ -1485,7 +1485,9 @@ enum pci_fixup_pass {
+@@ -1489,7 +1489,9 @@ enum pci_fixup_pass {
  	pci_fixup_resume,	/* pci_device_resume() */
  	pci_fixup_suspend,	/* pci_device_suspend() */
  	pci_fixup_resume_early, /* pci_device_resume_early() */

Modified: dists/wheezy-backports/linux/debian/patches/series
==============================================================================
--- dists/wheezy-backports/linux/debian/patches/series	Mon Apr  6 23:38:13 2015	(r22487)
+++ dists/wheezy-backports/linux/debian/patches/series	Tue Apr  7 21:44:05 2015	(r22488)
@@ -45,6 +45,7 @@
 debian/cdc_ncm-cdc_mbim-use-ncm-by-default.patch
 debian/snd-pcsp-disable-autoload.patch
 bugfix/x86/viafb-autoload-on-olpc-xo1.5-only.patch
+debian/qxl-disable-modeset-by-default.patch
 
 # Arch bug fixes
 bugfix/arm/omap-musb-choice.patch
@@ -57,8 +58,14 @@
 bugfix/parisc/parisc-reduce-sigrtmin-from-37-to-32-to-behave-like-.patch
 bugfix/arm64/arm64-add-missing-dts-entry-for-X-Gene-platform.patch
 bugfix/arm64/arm64-removed-using-of-the-mask-attribute-in-the-dts.patch
-bugfix/arm64/clocksource-arch_timer-Only-use-the-virtual-counter-.patch
 bugfix/x86/acpi-video-run-_bcl-before-deciding-registering-back.patch
+bugfix/x86/x86-hpet-force-enable-for-e6xx-based-systems.patch
+bugfix/x86/acpi-video-add-some-samsung-models-to-disable_native.patch
+bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-dell-xps15.patch
+bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-samsung-730u3e-740u3e.patch
+bugfix/x86/acpi-video-add-disable_native_backlight-quirk-for-samsung-510r.patch
+bugfix/x86/acpi-video-disable-native-backlight-on-samsung-series-9.patch
+bugfix/x86/drm-i915-quietly-reject-attempts-to-create-non-pagealigned-stolen-objects.patch
 
 # Arch features
 features/mips/MIPS-Support-hard-limit-of-cpu-count-nr_cpu_ids.patch
@@ -108,6 +115,18 @@
 features/arm/dts-sun7i-Add-support-for-Olimex-A20-OLinuXino-LIME.patch
 features/arm/dts-sun7i-Add-board-support-for-LinkSprite-pcDuino-V3.patch
 features/arm/dts-sun7i-pcduino3-Relicense-the-device-tree-under-GPLv2-X11.patch
+features/arm/dts-sun7i-Add-support-for-A20-OLinuXino-Lime2.patch
+features/arm/dts-sunxi-Add-IR-controllers-on-A20-to-dtsi.patch
+features/arm/dts-sun7i-Rename-sun7i-a20-ir-to-sun4i-a10-ir.patch
+features/arm/dts-sun7i-Add-dts-file-for-Bananapro-board.patch
+features/arm/ARM-dts-sun4i-Add-simplefb-node.patch
+features/arm/ARM-dts-sun5i-Add-simplefb-node.patch
+features/arm/ARM-dts-sun6i-Add-simplefb-node.patch
+features/arm/ARM-dts-sun7i-Add-simplefb-node.patch
+features/arm/ARM-dts-sunxi-Add-de_be0-clk-parent-pll-to-simplefb-.patch
+features/arm/ARM-dts-sunxi-Update-simplefb-nodes-so-that-u-boot-c.patch
+features/arm/ARM-dts-sun4i-Add-simplefb-node-with-de_fe0-de_be0-l.patch
+features/arm/ARM-dts-sunxi-Add-simplefb-nodes-for-de_be0-lcd0-de_.patch
 features/arm64/drivers-net-Add-APM-X-Gene-SoC-ethernet-driver-suppo.patch
 features/arm64/drivers-net-NET_XGENE-should-depend-on-HAS_DMA.patch
 features/arm64/net-xgene-Check-negative-return-value-of-xgene_enet_.patch
@@ -154,9 +173,11 @@
 bugfix/all/xen-netback-support-frontends-without-feature-rx-not.patch
 bugfix/all/aufs-move-d_rcu-from-overlapping-d_child-to-overlapping-d.patch
 bugfix/all/net-mv643xx-disable-tso-by-default.patch
-bugfix/all/Revert-swiotlb-xen-pass-dev_addr-to-swiotlb_tbl_unma.patch
 bugfix/all/xen-balloon-cancel-ballooning-if-adding-new-memory-f.patch
 bugfix/all/xen-balloon-Don-t-continue-ballooning-when-BP_ECANCE.patch
+bugfix/all/vfs-read-file_handle-only-once-in-handle_to_path.patch
+bugfix/all/aslr-fix-stack-randomization-on-64-bit-systems.patch
+bugfix/all/keys-request_key-should-reget-expired-keys-rather-th.patch
 
 # memfd_create() & kdbus backport
 features/all/kdbus/mm-allow-drivers-to-prevent-new-writable-mappings.patch
@@ -174,6 +195,7 @@
 features/all/kdbus/m68k-Wire-up-memfd_create.patch
 features/all/kdbus/MIPS-Wire-up-new-syscalls-getrandom-and-memfd_create.patch
 features/all/kdbus/powerpc-Wire-up-sys_seccomp-sys_getrandom-and-sys_me.patch
+features/all/kdbus/shm-add-memfd.h-to-uapi-export-list.patch
 
 # Miscellaneous features
 features/all/efi-autoload-efivars.patch
@@ -189,6 +211,14 @@
 features/all/of-add-optional-options-parameter-to-of_find_node_by.patch
 features/all/of-support-passing-console-options-with-stdout-path.patch
 features/all/efi-expose-underlying-uefi-firmware-platform-size-to.patch
+features/all/simplefb-formalize-pseudo-palette-handling.patch
+features/all/simplefb-add-goto-error-path-to-probe.patch
+features/all/simplefb-add-clock-handling-code.patch
+features/all/of.h-keep-extern-declaration-of-of_-variables-when-c.patch
+features/all/simplefb-Add-support-for-enumerating-simplefb-dt-nod.patch
+features/all/simplefb-Change-simplefb_init-from-module_init-to-fs.patch
+features/all/simplefb-Fix-build-errors-when-CONFIG_COMMON_CLK-is-.patch
+features/all/simplefb-Fix-build-failure-on-Sparc.patch
 
 # Update r8723au to 3.17
 features/all/r8723au/0001-staging-rtl8723au-rtw_get_wps_ie23a-Remove-unused-de.patch
@@ -482,6 +512,27 @@
 features/all/iwlwifi-debug/iwlwifi-mvm-kill-iwl_mvm_fw_error_rxf_dump.patch
 features/all/iwlwifi-debug/iwlwifi-mvm-update-layout-of-firmware-error-dump.patch
 
+# Update arcmsr to 3.18
+features/all/arcmsr/0001-arcmsr-fix-command-timeout-under-heavy-load.patch
+features/all/arcmsr/0002-arcmsr-add-code-to-support-msi-x-and-msi-interrupt.patch
+features/all/arcmsr/0003-arcmsr-add-code-to-support-hibernation.patch
+features/all/arcmsr/0004-arcmsr-limit-max.-number-of-scsi-command-request.patch
+features/all/arcmsr/0005-arcmsr-return-status-of-abort-command.patch
+features/all/arcmsr/0006-arcmsr-store-adapter-type-in-pci-id-table.patch
+features/all/arcmsr/0007-arcmsr-revise-message_isr_bh_fn-to-remove-duplicate-.patch
+features/all/arcmsr/0008-arcmsr-remove-calling-arcmsr_hbb_enable_driver_mode.patch
+features/all/arcmsr/0009-arcmsr-modify-printing-adapter-model-number-and-f-w-.patch
+features/all/arcmsr/0010-arcmsr-clear-outbound-doorbell-buffer-completely.patch
+features/all/arcmsr/0011-arcmsr-rename-functions-and-variables.patch
+features/all/arcmsr/0012-arcmsr-revise-allocation-of-second-dma_coherent_hand.patch
+features/all/arcmsr/0013-arcmsr-fix-ioctl-data-read-write-error-for-adapter-t.patch
+features/all/arcmsr/0014-arcmsr-fix-sparse-warnings-and-errors.patch
+features/all/arcmsr/0015-arcmsr-modify-some-character-strings.patch
+features/all/arcmsr/0016-arcmsr-add-support-new-adapter-arc12x4-series.patch
+features/all/arcmsr/0017-arcmsr-call-scsi_scan_host-at-the-end-of-host-initia.patch
+features/all/arcmsr/0018-arcmsr-simplify-of-updating-doneq_index-and-postq_in.patch
+features/all/arcmsr/0019-arcmsr-simplify-ioctl-data-read-write.patch
+
 # Fix ABI changes
 debian/of-fix-abi-changes.patch
 debian/iovec-fix-abi-change-in-3.16.7-ckt1.patch
@@ -491,14 +542,8 @@
 debian/pci-fix-abi-change-in-3.16.7-ckt3.patch
 debian/vfs-avoid-abi-change-for-dentry-union-changes.patch
 debian/userns-fix-abi-change-in-3.16.7-ckt4.patch
-bugfix/all/netfilter-conntrack-disable-generic-tracking-for-kno.patch
-bugfix/x86/x86_64-vdso-fix-the-vdso-address-randomization-algor.patch
-bugfix/x86/x86-vdso-use-asm-volatile-in-__getcpu.patch
-bugfix/all/crypto-prefix-module-autoloading-with-crypto.patch
-bugfix/all/crypto-include-crypto-module-prefix-in-template.patch
-bugfix/all/crypto-add-missing-crypto-module-aliases.patch
-bugfix/x86/kvm-x86-sysenter-emulation-is-broken.patch
-bugfix/sh4/scripts-recordmcount.pl-there-is-no-m32-option-on-super-h.patch
-bugfix/x86/x86-tls-ldt-stop-checking-lm-in-ldt_empty.patch
-bugfix/x86/x86-tls-interpret-an-all-zero-struct-user_desc-as-no.patch
-bugfix/all/net-sctp-fix-slab-corruption-from-use-after-free-on-.patch
+debian/revert-quota-switch-get_dqblk-and-set_dqblk-to-use-b.patch
+debian/rmap-fix-abi-change-in-3.16.7-ckt5.patch
+debian/perf-fix-abi-change-in-3.16.7-ckt6.patch
+debian/mm-fix-pagecache_get_page-abi-change-in-3.16.7-ckt6.patch
+debian/tcp-fix-abi-change-in-3.16.7-ckt7.patch



More information about the Kernel-svn-changes mailing list