aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Hutchings <ben@decadent.org.uk>2016-03-07 22:19:34 +0000
committerBen Hutchings <ben@decadent.org.uk>2016-03-07 22:19:34 +0000
commitacdae5bf41433b47cd6a8113709c4f8d4addbad4 (patch)
treee4c9e635d302e1fcd9ae0259dd681ebb67167650
parent54a4358d990371644ef50d60da0fe97d9ba9a847 (diff)
parent2ca405fcfcdbc675826d8d14a2449cfdae2313b9 (diff)
downloadkernel_replicant_linux-acdae5bf41433b47cd6a8113709c4f8d4addbad4.tar.gz
kernel_replicant_linux-acdae5bf41433b47cd6a8113709c4f8d4addbad4.tar.bz2
kernel_replicant_linux-acdae5bf41433b47cd6a8113709c4f8d4addbad4.zip
Merge tag 'debian/4.4.4-1'
Drop changes to the ABI reference and ignore list. Drop most of the new patches as they're already upstream. Drop the -rt featureset update.
-rw-r--r--debian/changelog471
-rw-r--r--debian/config/armhf/config.armmp1
-rw-r--r--debian/installer/armhf/modules/armhf-armmp/core-modules14
-rw-r--r--debian/installer/armhf/modules/armhf-armmp/mmc-modules7
-rw-r--r--debian/installer/armhf/modules/armhf-armmp/usb-modules14
-rw-r--r--debian/installer/modules/mmc-modules12
-rw-r--r--debian/installer/modules/usb-modules4
-rw-r--r--debian/installer/package-list2
-rw-r--r--debian/patches/bugfix/all/revert-drm-radeon-call-hpd_irq_event-on-resume.patch22
-rw-r--r--debian/patches/bugfix/all/uas-fix-high-order-alloc.patch29
-rw-r--r--debian/patches/features/arm/device-tree/ARM-dts-imx6dlq-wandboard-revb1.dts-use-unique-model-id.patch59
-rw-r--r--debian/patches/features/arm/device-tree/ARM-dts-kirkwood-add-for-buffalo-linkstation-ls-qvl.patch187
-rw-r--r--debian/patches/features/arm/device-tree/ARM-dts-kirkwood-relicense-dts-of-ls-wvl-vl-and-ls-wxl-ws.patch117
-rw-r--r--debian/patches/features/arm/device-tree/ARM-dts-kirkwood-split-lswvl-dts-to-linkstation-lsvl-and-.patch771
-rw-r--r--debian/patches/features/arm/device-tree/ARM-dts-kirkwood-split-lswxl-dts-to-linkstation-lswsxl-an.patch975
-rw-r--r--debian/patches/features/arm/device-tree/ARM-dts-orion5x-add-for-buffalo-linkstation-ls-gl.patch132
-rw-r--r--debian/patches/features/arm/device-tree/ARM-dts-orion5x-split-linkstation-lswtgl-into-common-and-.patch699
-rw-r--r--debian/patches/series9
18 files changed, 3482 insertions, 43 deletions
diff --git a/debian/changelog b/debian/changelog
index f285fc251ec0..5e2bdda39a7a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -32,6 +32,476 @@ linux (4.5~rc4-1~exp1) experimental; urgency=medium
-- Ben Hutchings <ben@decadent.org.uk> Thu, 18 Feb 2016 01:57:20 +0000
+linux (4.4.4-1) unstable; urgency=medium
+
+ [ Salvatore Bonaccorso ]
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.4.3
+ - [x86] mm: Fix types used in pgprot cacheability flags translations
+ - [x86] mm/pat: Avoid truncation when converting cpa->numpages to address
+ - [x86] uaccess/64: Make the __copy_user_nocache() assembly code
+ more readable
+ - [x86] uaccess/64: Handle the caching of 4-byte nocache copies
+ properly in __copy_user_nocache()
+ - [x86] mm: Fix vmalloc_fault() to handle large pages properly
+ - ALSA: hda - Cancel probe work instead of flush at remove
+ - ALSA: pcm: Fix rwsem deadlock for non-atomic PCM stream
+ - ALSA: seq: Fix leak of pool buffer at concurrent writes
+ - ALSA: seq: Fix double port list deletion
+ - [armhf] phy: twl4030-usb: Relase usb phy on unload
+ - [armhf] phy: twl4030-usb: Fix unbalanced pm_runtime_enable on
+ module reload
+ - staging/speakup: Use tty_ldisc_ref() for paste kworker
+ - pty: fix possible use after free of tty->driver_data
+ - pty: make sure super_block is still valid in final /dev/tty close
+ - tty: Add support for PCIe WCH382 2S multi-IO card
+ - [x86] serial: 8250_pci: Add Intel Broadwell ports
+ - [armhf] serial: omap: Prevent DoS using unprivileged ioctl(TIOCSRS485)
+ - ext4: fix scheduling in atomic on group checksum failure
+ - ext4: fix potential integer overflow
+ - ext4: don't read blocks from disk after extents being swapped
+ - btrfs: handle invalid num_stripes in sys_array
+ - Btrfs: fix fitrim discarding device area reserved for boot loader's use
+ - Revert "btrfs: clear PF_NOFREEZE in cleaner_kthread()"
+ - btrfs: properly set the termination value of ctx->pos in readdir
+ - Btrfs: fix invalid page accesses in extent_same (dedup) ioctl
+ - Btrfs: fix page reading in extent_same ioctl leading to csum errors
+ - Btrfs: fix hang on extent buffer lock caused by the inode_paths ioctl
+ - Btrfs: fix direct IO requests not reporting IO error to user space
+ - ptrace: use fsuid, fsgid, effective creds for fs access checks
+ - tracing: Fix freak link error caused by branch tracer
+ - tracepoints: Do not trace when cpu is offline
+ - klist: fix starting point removed bug in klist iterators
+ - scsi: add Synology to 1024 sector blacklist
+ - iscsi-target: Fix potential dead-lock during node acl delete
+ - SCSI: fix crashes in sd and sr runtime PM
+ - drivers/scsi/sg.c: mark VMA as VM_IO to prevent migration
+ - scsi_dh_rdac: always retry MODE SELECT on command lock violation
+ - SCSI: Add Marvell Console to VPD blacklist
+ - scsi: fix soft lockup in scsi_remove_target() on module removal
+ - iio: adis_buffer: Fix out-of-bounds memory access
+ - iio:adc:ti_am335x_adc Fix buffered mode by identifying as software buffer.
+ - iio-light: Use a signed return type for ltr501_match_samp_freq()
+ - iio: add HAS_IOMEM dependency to VF610_ADC
+ - iio: add IIO_TRIGGER dependency to STK8BA50
+ - iio: dac: mcp4725: set iio name property in sysfs
+ - iio: light: acpi-als: Report data as processed
+ - iio: pressure: mpl115: fix temperature offset sign
+ - iio: inkern: fix a NULL dereference on error
+ - cifs: Ratelimit kernel log messages
+ - cifs: fix race between call_async() and reconnect()
+ - cifs_dbg() outputs an uninitialized buffer in cifs_readdir()
+ - cifs: fix erroneous return value
+ - NFS: Fix attribute cache revalidation
+ - pNFS/flexfiles: Fix an Oopsable typo in ff_mirror_match_fh()
+ - nfs: Fix race in __update_open_stateid()
+ - pNFS/flexfiles: Fix an XDR encoding bug in layoutreturn
+ - udf: limit the maximum number of indirect extents in a row
+ - udf: Prevent buffer overrun with multi-byte characters
+ - udf: Check output buffer length when converting name to CS0
+ - SUNRPC: Fixup socket wait for memory
+ - [powerpc] eeh: Fix PE location code
+ - [powerpc] eeh: Fix stale cached primary bus
+ - [powerpc] powernv: Fix stale PE primary bus
+ - [powerpc] ioda: Set "read" permission when "write" is set
+ - [armhf] mvebu: remove duplicated regulator definition in Armada 388 GP
+ - [arm64] mm: avoid calling apply_to_page_range on empty range
+ - [armel,armhf] 8519/1: ICST: try other dividends than 1
+ - [armel,armhf] 8517/1: ICST: avoid arithmetic overflow in icst_hz()
+ - [armhf] dts: Fix wl12xx missing clocks that cause hangs
+ - [armhf] dts: Fix omap5 PMIC control lines for RTC writes
+ - [armhf] dts: omap5-board-common: enable rtc and charging of backup battery
+ - [armhf] OMAP2+: Fix wait_dll_lock_timed for rodata
+ - [armhf] OMAP2+: Fix l2_inv_api_params for rodata
+ - [armhf] OMAP2+: Fix l2dis_3630 for rodata
+ - [armhf] OMAP2+: Fix save_secure_ram_context for rodata
+ - [armhf] OMAP2+: Fix ppa_zero_params and ppa_por_params for rodata
+ - [arm64] dma-mapping: fix handling of devices registered before
+ arch_initcall
+ - [arm,arm64] KVM: Fix reference to uninitialised VGIC
+ - [powerpc*] KVM: PPC: Fix emulation of H_SET_DABR/X on POWER8
+ - [powerpc*] KVM: PPC: Fix ONE_REG AltiVec support
+ - mm: soft-offline: check return value in second __get_any_page() call
+ - libnvdimm: fix namespace object confusion in is_uuid_busy()
+ - mm: fix mlock accouting
+ - mm: replace vma_lock_anon_vma with anon_vma_lock_read/write
+ - mm: fix regression in remap_file_pages() emulation
+ - Input: elantech - mark protocols v2 and v3 as semi-mt
+ - [x86] Input: i8042 - add Fujitsu Lifebook U745 to the nomux list
+ - string_helpers: fix precision loss for some inputs
+ - Input: vmmouse - fix absolute device registration
+ - [x86] iommu/vt-d: Don't skip PCI devices when disabling IOTLB
+ - [x86] iommu/amd: Correct the wrong setting of alias DTE in do_attach
+ - [x86] iommu/vt-d: Fix mm refcounting to hold mm_count not mm_users
+ - [x86] iommu/vt-d: Fix 64-bit accesses to 32-bit DMAR_GSTS_REG
+ - [x86] iommu/vt-d: Clear PPR bit to ensure we get more page
+ request interrupts
+ - Revert "xhci: don't finish a TD if we get a short-transfer event mid TD"
+ - xhci: Fix list corruption in urb dequeue at host removal
+ - fs/hugetlbfs/inode.c: fix bugs in hugetlb_vmtruncate_list()
+ - [s390x] numa: fix /proc/<pid>/numa_maps for hugetlbfs on s390
+ - memcg: only free spare array when readers are done
+ - radix-tree: fix race in gang lookup
+ - drivers/hwspinlock: fix race between radix tree insertion and lookup
+ - radix-tree: fix oops after radix_tree_iter_retry
+ - dump_stack: avoid potential deadlocks
+ - mm,thp: khugepaged: call pte flush at the time of collapse
+ - [x86] intel_scu_ipcutil: underflow in scu_reg_access()
+ - ipc/shm: handle removed segments gracefully in shm_mmap()
+ - devm_memremap_release(): fix memremap'd addr handling
+ - futex: Drop refcount if requeue_pi() acquired the rtmutex
+ - ovl: allow zero size xattr
+ - ovl: use a minimal buffer in ovl_copy_xattr
+ - ovl: check dentry positiveness in ovl_cleanup_whiteouts()
+ - ovl: root: copy attr
+ - ovl: setattr: check permissions before copy-up
+ - libxfs: pack the agfl header structure so XFS_AGFL_SIZE is correct
+ - xfs: inode recovery readahead can race with inode buffer creation
+ - Revert "xfs: clear PF_NOFREEZE for xfsaild kthread"
+ - xfs: log mount failures don't wait for buffers to be released
+ - prctl: take mmap sem for writing to protect against others
+ - timerfd: Handle relative timers with CONFIG_TIME_LOW_RES proper
+ - posix-timers: Handle relative timers with CONFIG_TIME_LOW_RES proper
+ - itimers: Handle relative timers with CONFIG_TIME_LOW_RES proper
+ - modules: fix modparam async_probe request
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.4.4
+ - af_iucv: Validate socket address length in iucv_sock_bind()
+ - gro: Make GRO aware of lightweight tunnels.
+ - tunnels: Allow IPv6 UDP checksums to be correctly controlled.
+ - lwt: fix rx checksum setting for lwt devices tunneling over ipv6
+ - tcp: fix NULL deref in tcp_v4_send_ack()
+ - af_unix: fix struct pid memory leak
+ - pptp: fix illegal memory access caused by multiple bind()s
+ - sctp: allow setting SCTP_SACK_IMMEDIATELY by the application
+ - tipc: fix connection abort during subscription cancel
+ - inet: frag: Always orphan skbs inside ip_defrag()
+ - tcp: beware of alignments in tcp_get_info()
+ - ipv6: enforce flowi6_oif usage in ip6_dst_lookup_tail()
+ - ipv6/udp: use sticky pktinfo egress ifindex on connect()
+ - ipv6: addrconf: Fix recursive spin lock call
+ - ipv6: fix a lockdep splat
+ - unix: correctly track in-flight fds in sending process user_struct
+ (regression in 4.3.3-6; CVE-2016-2550)
+ - tcp: do not drop syn_recv on all icmp reports
+ - net:Add sysctl_max_skb_frags
+ - tg3: Fix for tg3 transmit queue 0 timed out when too many gso_segs
+ - enic: increment devcmd2 result ring in case of timeout
+ - sctp: translate network order to host order when users get a hmacid
+ - net: Copy inner L3 and L4 headers as unaligned on GRE TEB
+ - flow_dissector: Fix unaligned access in __skb_flow_dissector when used by
+ eth_get_headlen
+ - bpf: fix branch offset adjustment on backjumps after patching
+ ctx expansion
+ - bonding: Fix ARP monitor validation
+ - ipv4: fix memory leaks in ip_cmsg_send() callers
+ - af_unix: Don't set err in unix_stream_read_generic unless there was
+ an error
+ - af_unix: Guard against other == sk in unix_dgram_sendmsg
+ - tipc: fix premature addition of node to lookup table
+ - tcp: md5: release request socket instead of listener
+ - qmi_wwan: add "4G LTE usb-modem U901"
+ - net/mlx4_en: Count HW buffer overrun only once
+ - net/mlx4_en: Choose time-stamping shift value according to HW frequency
+ - net/mlx4_en: Avoid changing dev->features directly in run-time
+ - l2tp: Fix error creating L2TP tunnels
+ - pppoe: fix reference counting in PPPoE proxy
+ - net_sched fix: reclassification needs to consider ether protocol changes
+ - route: check and remove route cache when we get route
+ - tcp/dccp: fix another race at listener dismantle
+ - IFF_NO_QUEUE: Fix for drivers not calling ether_setup()
+ - rtnl: RTM_GETNETCONF: fix wrong return value
+ - tipc: unlock in error path
+ - unix_diag: fix incorrect sign extension in unix_lookup_by_ino
+ - sctp: Fix port hash table size computation
+ - ext4: fix bh->b_state corruption
+ - [s390x] KVM: fix guest fprs memory leak
+ - devm_memremap: Fix error value when memremap failed
+ - efi: Make efivarfs entries immutable by default
+ - efi: Add pstore variables to the deletion whitelist
+ - bcache: fix a livelock when we cause a huge number of cache misses
+ - bcache: Add a cond_resched() call to gc
+ - bcache: clear BCACHE_DEV_UNLINK_DONE flag when attaching a backing device
+ - bcache: fix a leak in bch_cached_dev_run()
+ - bcache: unregister reboot notifier if bcache fails to unregister device
+ - bcache: allows use of register in udev to avoid "device_busy" error.
+ - bcache: prevent crash on changing writeback_running
+ - bcache: Change refill_dirty() to always scan entire disk if necessary
+ - dm thin: fix race condition when destroying thin pool workqueue
+ - can: ems_usb: Fix possible tx overflow
+ - usb: dwc3: Fix assignment of EP transfer resources
+ - USB: cp210x: add IDs for GE B650V3 and B850V3 boards
+ - USB: option: add support for SIM7100E
+ - USB: option: add "4G LTE usb-modem U901"
+ - [armhf] spi: omap2-mcspi: Prevent duplicate gpio_request
+ - iw_cxgb3: Fix incorrectly returning error on success
+ - [x86] drm/i915: shut up gen8+ SDE irq dmesg noise
+ - ocfs2: unlock inode if deleting inode from orphan fails
+ - mm: thp: fix SMP race condition between THP page fault and MADV_DONTNEED
+ - mm: numa: quickly fail allocations for NUMA balancing on full nodes
+ - genirq: Validate action before dereferencing it in
+ handle_irq_event_percpu()
+ - [s390x] KVM: fix memory overwrites when vx is disabled
+ - Btrfs: add missing brelse when superblock checksum fails
+ - Btrfs: igrab inode in writepage
+ - btrfs: statfs: report zero available if metadata are exhausted
+ - Btrfs: send, don't BUG_ON() when an empty symlink is found
+ - Btrfs: fix number of transaction units required to create symlink
+ - Btrfs: fix transaction handle leak on failure to create hard link
+ - Btrfs: Initialize btrfs_root->highest_objectid when loading tree root and
+ subvolume roots
+ - btrfs: initialize the seq counter in struct btrfs_device
+ - [s390x] fix normalization bug in exception table sorting
+ - [s390x] dasd: prevent incorrect length error under z/VM after PAV changes
+ - [s390x] dasd: fix refcount for PAV reassignment
+ - [s390x] dasd: fix performance drop
+ - [s390x] compat: correct restore of high gprs on signal return
+ - [s390x] fpu: signals vs. floating point control register
+ - locks: fix unlock when fcntl_setlk races with a close
+ - rtlwifi: rtl8192cu: Add missing parameter setup
+ - rtlwifi: rtl8192ce: Fix handling of module parameters
+ - rtlwifi: rtl8192de: Fix incorrect module parameter descriptions
+ - rtlwifi: rtl8723ae: Fix initialization of module parameters
+ - rtlwifi: rtl8192se: Fix module parameter initialization
+ - rtlwifi: rtl8188ee: Fix module parameter initialization
+ - rtlwifi: rtl8723be: Fix module parameter initialization
+ - [x86] mei: fix fasync return value on error
+ - [x86] mei: validate request value in client notify request ioctl
+ - namei: ->d_inode of a pinned dentry is stable only for positives
+ - [armhf] rc: sunxi-cir: Initialize the spinlock properly
+ - gspca: ov534/topro: prevent a division by 0
+ - vb2: fix a regression in poll() behavior for output,streams
+ - tda1004x: only update the frontend properties if locked
+ - dm snapshot: fix hung bios when copy error occurs
+ - dm: fix dm_rq_target_io leak on faults with .request_fn DM w/ blk-mq paths
+ - posix-clock: Fix return code on the poll method's error path
+ - mmc: sdhci-pci: Do not default to 33 Ohm driver strength for Intel SPT
+ - mmc: sdhci: Fix DMA descriptor with zero data length
+ - mmc: sdio: Fix invalid vdd in voltage switch power cycle
+ - mmc: mmc: Fix incorrect use of driver strength switching HS200 and HS400
+ - mmc: sdhci: Fix sdhci_runtime_pm_bus_on/off()
+ - mmc: core: Enable tuning according to the actual timing
+ - [armhf, arm64] mmc: mmci: fix an ages old detection error
+ - [x86] mmc: sdhci-acpi: Fix card detect race for Intel BXT/APL
+ - [x86] mmc: sdhci-pci: Fix card detect race for Intel BXT/APL
+ - mmc: sdhci: Allow override of mmc host operations
+ - mmc: sdhci: Allow override of get_cd() called from sdhci_request()
+ - [x86] Drivers: hv: vmbus: Fix a Host signaling bug
+ - Bluetooth: Use continuous scanning when creating LE connections
+ - Bluetooth: Add support of Toshiba Broadcom based devices
+ - Bluetooth: Fix incorrect removing of IRKs
+ - Bluetooth: 6lowpan: Fix kernel NULL pointer dereferences
+ - Bluetooth: 6lowpan: Fix handling of uncompressed IPv6 packets
+ - time: Avoid signed overflow in timekeeping_get_ns()
+ - cputime: Prevent 32bit overflow in time[val|spec]_to_cputime()
+ - [mips*] Revert "MIPS: Fix PAGE_MASK definition"
+ - [mips*el/loongson-3] Loongson-3: Fix SMP_ASK_C0COUNT IPI handler
+ - [mips*] hpet: Choose a safe value for the ETIME check
+ - [mips*] Fix buffer overflow in syscall_get_arguments()
+ - EDAC: Robustify workqueues destruction
+ - EDAC, mc_sysfs: Fix freeing bus' name
+ - [sparc64] fix incorrect sign extension in sys_sparc64_personality
+ - [armhf] clk: exynos: use irqsave version of spin_lock to avoid deadlock
+ with irqs
+ - [armhf] regulator: axp20x: Fix GPIO LDO enable value for AXP22x
+ - virtio_balloon: fix race by fill and leak
+ - virtio_balloon: fix race between migration and ballooning
+ - virtio_pci: fix use after free on release
+ - [x86] drm/vmwgfx: Fix an incorrect lock check
+ - [x86] drm/vmwgfx: Fix a width / pitch mismatch on framebuffer updates
+ - [x86] drm/vmwgfx: respect 'nomodeset'
+ - [x86] drm/amdgpu: Fix off-by-one errors in amdgpu_vm_bo_map
+ - [x86] drm/amdgpu: call hpd_irq_event on resume
+ - [x86] drm/amdgpu: fix lost sync_to if scheduler is enabled.
+ - [x86] drm/amdgpu: fix tonga smu resume
+ - [x86] drm/amdgpu: fix amdgpu_bo_pin_restricted VRAM placing v2
+ - [x86] drm/amdgpu: no need to load MC firmware on fiji
+ - [x86] drm/amdgpu: move gmc7 support out of CIK dependency
+ - [x86] drm/amdgpu: iceland use CI based MC IP
+ - [x86] drm/amdgpu: The VI specific EXE bit should only apply to GMC
+ v8.0 above
+ - [x86] drm/amdgpu: pull topaz gmc bits into gmc_v7
+ - [x86] drm/amdgpu: drop topaz support from gmc8 module
+ - [x86] drm/amdgpu: don't load MEC2 on topaz
+ - [x86] drm/amdgpu: remove exp hardware support from iceland
+ - [x86] drm/amdgpu: fix s4 resume
+ - [x86] drm/amdgpu: remove unnecessary forward declaration
+ - [x86] drm/amdgpu: hold reference to fences in amdgpu_sa_bo_new (v2)
+ - [x86] drm/amdgpu: fix issue with overlapping userptrs
+ - [x86] drm/amdgpu: use post-decrement in error handling
+ - [x86] drm/amdgpu: Don't hang in amdgpu_flip_work_func on disabled crtc.
+ - [x86] drm/amdgpu/pm: adjust display configuration after powerstate
+ - drm/nouveau/kms: take mode_config mutex in connector hotplug path
+ - drm/nouveau/display: Enable vblank irqs after display engine is on again.
+ (regression in 4.4)
+ - drm/nouveau/disp/dp: ensure sink is powered up before attempting
+ link training
+ - drm/nouveau: platform: Fix deferred probe
+ - drm/radeon: Fix off-by-one errors in radeon_vm_bo_set_addr
+ - drm/radeon: Fix "slow" audio over DP on DCE8+
+ - drm/radeon: clean up fujitsu quirks
+ - drm/radeon: properly byte swap vce firmware setup
+ - drm/radeon: cleaned up VCO output settings for DP audio
+ - drm/radeon: Add a common function for DFS handling
+ - drm/radeon: fix DP audio support for APU with DCE4.1 display engine
+ - drm/radeon: mask out WC from BO on unsupported arches
+ - drm/radeon: hold reference to fences in radeon_sa_bo_new
+ - drm: fix missing reference counting decrease
+ - [x86] drm/i915: Restore inhibiting the load of the default context
+ - [x86] drm/i915: intel_hpd_init(): Fix suspend/resume reprobing
+ - [x86] drm/i915: Init power domains early in driver load
+ - [x86] drm/i915: Make sure DC writes are coherent on flush.
+ - [x86] drm/i915/dp: fall back to 18 bpp when sink capability is unknown
+ - [x86] drm/i915: Don't reject primary plane windowing with color keying
+ enabled on SKL+
+ - [x86] drm/i915/skl: Don't skip mst encoders in skl_ddi_pll_select()
+ - [x86] drm/i915/dsi: defend gpio table against out of bounds access
+ - [x86] drm/i915/dsi: don't pass arbitrary data to sideband
+ - [x86] drm/i915: fix error path in intel_setup_gmbus()
+ - drm/qxl: use kmalloc_array to alloc reloc_info in
+ qxl_process_single_command
+ - drm/radeon: use post-decrement in error handling
+ - drm: No-Op redundant calls to drm_vblank_off() (v2)
+ - drm: Prevent vblank counter bumps > 1 with active vblank clients. (v2)
+ (regression in 4.4)
+ - drm: Fix drm_vblank_pre/post_modeset regression from Linux 4.4
+ - drm: Fix treatment of drm_vblank_offdelay in drm_vblank_on() (v2)
+ - drm/radeon: Don't hang in radeon_flip_work_func on disabled crtc. (v2)
+ - drm/radeon/pm: adjust display configuration after powerstate
+ - make sure that freeing shmem fast symlinks is RCU-delayed
+ - [x86] toshiba_acpi: Fix blank screen at boot if transflective backlight is
+ supported
+ - [x86] ideapad-laptop: Add Lenovo ideapad Y700-17ISK to no_hw_rfkill
+ dmi list
+ - [x86] ideapad-laptop: Add Lenovo Yoga 700 to no_hw_rfkill dmi list
+ - [x86] ACPI / video: Add disable_backlight_sysfs_if quirk for the Toshiba
+ Portege R700
+ - [x86] ACPI / video: Add disable_backlight_sysfs_if quirk for the Toshiba
+ Satellite R830
+ - [x86] ACPI: Revert "ACPI / video: Add Dell Inspiron 5737 to the blacklist"
+ - [x86] ACPI / PCI / hotplug: unlock in error path in acpiphp_enable_slot()
+ - nfit: fix multi-interface dimm handling, acpi6.1 compatibility
+ - dmaengine: dw: fix cyclic transfer setup
+ - dmaengine: dw: fix cyclic transfer callbacks
+ - dmaengine: dw: disable BLOCK IRQs for non-cyclic xfer
+ - IB/cm: Fix a recently introduced deadlock
+ - IB/qib: fix mcast detach when qp not attached
+ - IB/qib: Support creating qps with GFP_NOIO flag
+ - IB/mlx5: Expose correct maximum number of CQE capacity
+ - Thermal: initialize thermal zone device correctly
+ - Thermal: handle thermal zone device properly during system sleep
+ - Thermal: do thermal zone update after a cooling device registered
+ - hwmon: (dell-smm) Blacklist Dell Studio XPS 8000
+ - hwmon: (gpio-fan) Remove un-necessary speed_index lookup for thermal hook
+ - hwmon: (ads1015) Handle negative conversion values correctly
+ - cpufreq: pxa2xx: fix pxa_cpufreq_change_voltage prototype
+ - cpufreq: Fix NULL reference crash while accessing policy->governor_data
+ - seccomp: always propagate NO_NEW_PRIVS on tsync
+ - libceph: fix ceph_msg_revoke()
+ - libceph: don't bail early from try_read() when skipping a message
+ - libceph: use the right footer size when skipping a message
+ - libceph: don't spam dmesg with stray reply warnings
+ - sd: Optimal I/O size is in bytes, not sectors
+ - Staging: speakup: Fix getting port information
+ - cdc-acm:exclude Samsung phone 04e8:685d
+ - tick/nohz: Set the correct expiry when switching to nohz/lowres mode
+ - rfkill: fix rfkill_fop_read wait_event usage
+ - mac80211: Requeue work after scan complete for all VIF types.
+ - workqueue: handle NUMA_NO_NODE for unbound pool_workqueue lookup
+ - Revert "workqueue: make sure delayed work run in local cpu"
+ - ALSA: hda - Apply clock gate workaround to Skylake, too
+ - ALSA: hda - Fixing background noise on Dell Inspiron 3162
+ - target: Fix LUN_RESET active I/O handling for ACK_KREF
+ - target: Fix LUN_RESET active TMR descriptor handling
+ - target: Fix TAS handling for multi-session se_node_acls
+ - target: Fix remote-port TMR ABORT + se_cmd fabric stop
+ - target: Fix race with SCF_SEND_DELAYED_TAS handling
+ - qla2xxx: Fix stale pointer access.
+ - libata: fix sff host state machine locking while polling
+ - PCI/AER: Flush workqueue on device remove to avoid use-after-free
+ - cpuset: make mm migration asynchronous
+ - cgroup: make sure a parent css isn't offlined before its children
+ - writeback: keep superblock pinned during cgroup writeback
+ association switches
+ - phy: core: fix wrong err handle for phy_power_on
+ - [x86] i2c: i801: Adding Intel Lewisburg support for iTCO
+ - bio: return EINTR if copying to user space got interrupted
+ - block: fix use-after-free in dio_bio_complete
+ - nfs: fix nfs_size_to_loff_t
+ - NFSv4: Fix a dentry leak on alias use
+ - KVM: async_pf: do not warn on page allocation failures
+ - [armhf,arm64] KVM: vgic: Ensure bitmaps are long enough
+ - [x86] KVM: fix missed hardware breakpoints
+ - [x86] KVM: fix conversion of addresses to linear in 32-bit protected mode
+ - [x86] KVM: MMU: fix ubsan index-out-of-range warning
+ - [powerpc] eeh: Fix partial hotplug criterion
+ - tracing: Fix showing function event in available_events
+ - sunrpc/cache: fix off-by-one in qword_get()
+ - kernel/resource.c: fix muxed resource handling in __request_region()
+ - do_last(): don't let a bogus return value from ->open() et.al. to
+ confuse us
+ - [armhf] OMAP2+: Fix onenand initialization to avoid filesystem corruption
+ - [armhf] xen: correctly handle DMA mapping of compound pages
+ - xen/scsiback: correct frontend counting
+ - xen/pciback: Check PF instead of VF for PCI_COMMAND_MEMORY
+ - xen/pciback: Save the number of MSI-X entries to be copied later.
+ - xen/pcifront: Fix mysterious crashes when NUMA locality information
+ was extracted.
+ - should_follow_link(): validate ->d_seq after having decided to follow
+ - do_last(): ELOOP failure exit should be done after leaving RCU mode
+ - [x86] mpx: Fix off-by-one comparison with nr_registers
+ - [x86] entry/compat: Add missing CLAC to entry_INT80_32
+ - [x86] irq: Call chip->irq_set_affinity in proper context
+ - [x86] irq: Fix a race in x86_vector_free_irqs()
+ - [x86] irq: Validate that irq descriptor is still active
+ - [x86] irq: Do not use apic_chip_data.old_domain as temporary buffer
+ - [x86] irq: Reorganize the return path in assign_irq_vector
+ - [x86] irq: Reorganize the search in assign_irq_vector
+ - [x86] irq: Check vector allocation early
+ - [x86] irq: Copy vectormask instead of an AND operation
+ - [x86] irq: Remove offline cpus from vector cleanup
+ - [x86] irq: Clear move_in_progress before sending cleanup IPI
+ - [x86] irq: Remove the cpumask allocation from send_cleanup_vector()
+ - [x86] irq: Remove outgoing CPU from vector cleanup mask
+ - [x86] irq: Call irq_force_move_complete with irq descriptor
+ - [x86] irq: Plug vector cleanup race
+ - IB/cma: Fix RDMA port validation for iWarp
+ - security: let security modules use PTRACE_MODE_* with bitmasks
+ - iwlwifi: dvm: fix WoWLAN
+ - iwlwifi: pcie: properly configure the debug buffer size for 8000
+ - iwlwifi: update and fix 7265 series PCI IDs
+ - iwlwifi: mvm: don't allow sched scans without matches to be started
+
+ [ Roger Shimizu ]
+ * [armhf] dts: imx6dlq-wandboard-revb1: use unique model id
+ (Closes: #813881).
+ * [armel] dts: Add various device-tree fixes and improvements for
+ Buffalo Linkstation devices.
+
+ [ Ben Hutchings ]
+ * udeb: Include more modules, including those needed on Firefly-RK3288,
+ thanks to Vagrant Cascadian (Closes: #815476)
+ - [armhf] core-modules: Include regulator drivers by default
+ - mmc-modules: Include MMC controller drivers by default
+ - mmc-modules: Depends on usb-modules
+ - usb-modules: Include USB PHY drivers by default
+ * uas: Fix high-order alloc
+ * Fix/ignore module ABI changes in 4.4.4 as appropriate
+ * Revert "drm/radeon: call hpd_irq_event on resume", reported to cause
+ regressions (crash/hang) on some systems
+ * [powerpc*] Fix module linking to work with binutils 2.26 (Closes: #808043):
+ - Simplify module TOC handling
+ - Fix dedotify for binutils >= 2.26
+
+ [ Ian Campbell ]
+ * [armhf] dts: Add DTB for Novena, patches from Vagrant Cascadian
+ (Closes: #815324)
+
+ [ Uwe Kleine-König ]
+ * [armhf] enable AXP20X_POWER (Closes: #815971)
+ * [rt] Update to 4.4.3-rt9
+
+ -- Ben Hutchings <ben@decadent.org.uk> Mon, 07 Mar 2016 19:27:18 +0000
+
linux (4.4.2-3) unstable; urgency=medium
* [x86] efi-bgrt: Fix kernel panic when mapping BGRT data (Closes: #815125)
@@ -423,6 +893,7 @@ linux (4.3.5-1) unstable; urgency=medium
* SCSI: fix crashes in sd and sr runtime PM (Closes: #801925)
* rt2x00: fix monitor mode regression (regression in 4.2)
* pipe: limit the per-user amount of pages allocated in pipes (CVE-2013-4312)
+ [Original reference is incorrect; should be CVE-2016-2847.]
* [powerpc*] Enable CRYPTO_DEV_VMX and enable CRYPTO_DEV_VMX_ENCRYPT as
module (Closes: #813640)
* debian/copyright: Add licence information for drivers/crypto/vmx/*.pl
diff --git a/debian/config/armhf/config.armmp b/debian/config/armhf/config.armmp
index 850a45a98f40..622477d20540 100644
--- a/debian/config/armhf/config.armmp
+++ b/debian/config/armhf/config.armmp
@@ -776,6 +776,7 @@ CONFIG_BATTERY_BQ27XXX=m
CONFIG_BATTERY_RX51=m
CONFIG_CHARGER_ISP1704=m
CONFIG_CHARGER_BQ2415X=m
+CONFIG_AXP20X_POWER=m
##
## file: drivers/power/avs/Kconfig
diff --git a/debian/installer/armhf/modules/armhf-armmp/core-modules b/debian/installer/armhf/modules/armhf-armmp/core-modules
index 7ea5f6dff255..ff4ff9f954f3 100644
--- a/debian/installer/armhf/modules/armhf-armmp/core-modules
+++ b/debian/installer/armhf/modules/armhf-armmp/core-modules
@@ -14,16 +14,4 @@ phy-omap-control ?
phy-ti-pipe3 ?
# Regulators
-anatop-regulator ?
-axp20x-regulator ?
-da9052-regulator ?
-gpio-regulator ?
-mc13783-regulator ?
-mc13892-regulator ?
-pbias-regulator
-pfuze100-regulator ?
-s2mpa01 ?
-s2mps11 ?
-s5m8767 ?
-ti-abb-regulator ?
-vexpress ?
+drivers/regulator/**
diff --git a/debian/installer/armhf/modules/armhf-armmp/mmc-modules b/debian/installer/armhf/modules/armhf-armmp/mmc-modules
index 287ff3faf951..dadfd5334d62 100644
--- a/debian/installer/armhf/modules/armhf-armmp/mmc-modules
+++ b/debian/installer/armhf/modules/armhf-armmp/mmc-modules
@@ -1,8 +1 @@
#include <mmc-modules>
-sdhci-esdhc-imx
-sdhci-tegra
-mmci
-omap_hsmmc
-sunxi-mmc
-dw_mmc-exynos
-sdhci-bcm2835
diff --git a/debian/installer/armhf/modules/armhf-armmp/usb-modules b/debian/installer/armhf/modules/armhf-armmp/usb-modules
index 663e91543f0d..7861c823c809 100644
--- a/debian/installer/armhf/modules/armhf-armmp/usb-modules
+++ b/debian/installer/armhf/modules/armhf-armmp/usb-modules
@@ -9,17 +9,3 @@ ehci-orion
ehci-tegra
ci_hdrc_imx
dwc2
-
-# USB PHYs
-phy-am335x ?
-phy-am335x-control ?
-phy-exynos-usb2
-phy-exynos5-usbdrd ?
-phy-generic ?
-phy-mxs-usb
-phy-omap-usb2
-phy-sun4i-usb
-phy-sun9i-usb ?
-phy-tegra-usb ?
-phy-twl4030-usb ?
-phy-twl6030-usb ?
diff --git a/debian/installer/modules/mmc-modules b/debian/installer/modules/mmc-modules
index ce8b1764fe8f..1375eb69e742 100644
--- a/debian/installer/modules/mmc-modules
+++ b/debian/installer/modules/mmc-modules
@@ -1,9 +1,5 @@
mmc_block
-sdhci
-sdhci-pci ?
-sdhci-acpi ?
-ricoh_mmc ?
-tifm_sd ?
-dw_mmc ?
-dw_mmc_pltfm ?
-toshsd ?
+drivers/mmc/host/**
+
+# Adds a dependency on pcmcia-modules
+sdricoh_cs -
diff --git a/debian/installer/modules/usb-modules b/debian/installer/modules/usb-modules
index 3198f1039c6e..7e87f8153278 100644
--- a/debian/installer/modules/usb-modules
+++ b/debian/installer/modules/usb-modules
@@ -7,3 +7,7 @@ sl811_cs -
sl811-hcd -
u132-hcd -
whci-hcd -
+
+# Include USB PHY drivers by default
+drivers/phy/phy-*-usb* ?
+drivers/usb/phy/* ?
diff --git a/debian/installer/package-list b/debian/installer/package-list
index 74dfeb16204a..f51c4436b352 100644
--- a/debian/installer/package-list
+++ b/debian/installer/package-list
@@ -300,7 +300,7 @@ Description: MMC/SD/SDIO core modules
This package contains core modules for MMC/SD/SDIO support.
Package: mmc-modules
-Depends: kernel-image, core-modules, mmc-core-modules
+Depends: kernel-image, core-modules, mmc-core-modules, usb-modules
Priority: extra
Description: MMC/SD card modules
This package contains modules needed to support MMC (multimedia) and
diff --git a/debian/patches/bugfix/all/revert-drm-radeon-call-hpd_irq_event-on-resume.patch b/debian/patches/bugfix/all/revert-drm-radeon-call-hpd_irq_event-on-resume.patch
new file mode 100644
index 000000000000..8ad228d9fbff
--- /dev/null
+++ b/debian/patches/bugfix/all/revert-drm-radeon-call-hpd_irq_event-on-resume.patch
@@ -0,0 +1,22 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Mon, 7 Mar 2016 07:55:44 +0000
+Subject: Revert "drm/radeon: call hpd_irq_event on resume"
+
+This reverts commit dbb17a21c131eca94eb31136eee9a7fe5aff00d9,
+reported to cause regressions (crash/hang) on some systems.
+---
+ drivers/gpu/drm/radeon/radeon_device.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c
+index 902b59cebac5..4197ca1bb1e4 100644
+--- a/drivers/gpu/drm/radeon/radeon_device.c
++++ b/drivers/gpu/drm/radeon/radeon_device.c
+@@ -1744,7 +1744,6 @@ int radeon_resume_kms(struct drm_device *dev, bool resume, bool fbcon)
+ }
+
+ drm_kms_helper_poll_enable(dev);
+- drm_helper_hpd_irq_event(dev);
+
+ /* set the power state here in case we are a PX system or headless */
+ if ((rdev->pm.pm_method == PM_METHOD_DPM) && rdev->pm.dpm_enabled)
diff --git a/debian/patches/bugfix/all/uas-fix-high-order-alloc.patch b/debian/patches/bugfix/all/uas-fix-high-order-alloc.patch
new file mode 100644
index 000000000000..25b4fae4b9b6
--- /dev/null
+++ b/debian/patches/bugfix/all/uas-fix-high-order-alloc.patch
@@ -0,0 +1,29 @@
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Fri, 04 Mar 2016 07:18:00 +0000
+Subject: uas: Fix high-order alloc
+Origin: http://thread.gmane.org/gmane.linux.usb.general/138042/focus=111495
+
+Can you try building a kernel with the following line in drivers/usb/storage/uas.c :
+
+ .can_queue = 65536, /* Is there a limit on the _host_ ? */
+
+(around line 815) Replaced with
+
+ .can_queue = MAX_CMNDS,
+
+That should help as MAX_CMNDS is 256, so claiming that we can queue more
+is not helpful, and that likely is what is causing this quite high order alloc.
+
+Reported-and-tested-by: Yves-Alexis Perez <corsac@corsac.net>
+---
+--- a/drivers/usb/storage/uas.c
++++ b/drivers/usb/storage/uas.c
+@@ -812,7 +812,7 @@ static struct scsi_host_template uas_hos
+ .slave_configure = uas_slave_configure,
+ .eh_abort_handler = uas_eh_abort_handler,
+ .eh_bus_reset_handler = uas_eh_bus_reset_handler,
+- .can_queue = 65536, /* Is there a limit on the _host_ ? */
++ .can_queue = MAX_CMNDS, /* Is there a limit on the _host_ ? */
+ .this_id = -1,
+ .sg_tablesize = SG_NONE,
+ .skip_settle_delay = 1,
diff --git a/debian/patches/features/arm/device-tree/ARM-dts-imx6dlq-wandboard-revb1.dts-use-unique-model-id.patch b/debian/patches/features/arm/device-tree/ARM-dts-imx6dlq-wandboard-revb1.dts-use-unique-model-id.patch
new file mode 100644
index 000000000000..63d2c5ee213e
--- /dev/null
+++ b/debian/patches/features/arm/device-tree/ARM-dts-imx6dlq-wandboard-revb1.dts-use-unique-model-id.patch
@@ -0,0 +1,59 @@
+From: Heinrich Schuchardt <xypron.glpk@gmx.de>
+Date: Mon, 8 Feb 2016 01:55:08 +0100
+Subject: [PATCH] ARM: dts: imx6dlq-wandboard-revb1.dts: use unique model id
+Origin: https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/commit/?id=ee10774a9b48e8785f1426e273059c4ba038a27f
+Bug-Debian: https://bugs.debian.org/813881
+
+Downstream packages like Debian flash-kernel use
+/proc/device-tree/model
+to determine which dtb file to install.
+
+Hence each dts in the Linux kernel should provide a unique model
+identifier.
+
+Commit 8536239e371f ("ARM: dts: Restructure imx6qdl-wandboard.dtsi for new
+rev C1 board.")' created new files imx6dl-wandboard-revb1.dts and
+imx6q-wandboard-revb1.dts but used the same model identifier as in
+imx6dl-wandboard.dts and imx6q-wandboard.dts.
+
+This patch provides unique model identifiers for revision B1 of
+the Wandboard Dual and Wandbaord Quad.
+
+The patch leaves imx6dl-wandboard.dts and imx6q-wandboard.dts unchanged
+because it is not foreseeable if the same dts will valid for future
+board revisions or not. Furthermore we should avoid unnecessary
+changes.
+
+Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
+Signed-off-by: Shawn Guo <shawnguo@kernel.org>
+---
+ arch/arm/boot/dts/imx6dl-wandboard-revb1.dts | 2 +-
+ arch/arm/boot/dts/imx6q-wandboard-revb1.dts | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/arch/arm/boot/dts/imx6dl-wandboard-revb1.dts b/arch/arm/boot/dts/imx6dl-wandboard-revb1.dts
+index f607d4f1d244..8c314eee4fdd 100644
+--- a/arch/arm/boot/dts/imx6dl-wandboard-revb1.dts
++++ b/arch/arm/boot/dts/imx6dl-wandboard-revb1.dts
+@@ -13,7 +13,7 @@
+ #include "imx6qdl-wandboard-revb1.dtsi"
+
+ / {
+- model = "Wandboard i.MX6 Dual Lite Board";
++ model = "Wandboard i.MX6 Dual Lite Board rev B1";
+ compatible = "wand,imx6dl-wandboard", "fsl,imx6dl";
+
+ memory {
+diff --git a/arch/arm/boot/dts/imx6q-wandboard-revb1.dts b/arch/arm/boot/dts/imx6q-wandboard-revb1.dts
+index 20bf3c282623..9207d80f9cfb 100644
+--- a/arch/arm/boot/dts/imx6q-wandboard-revb1.dts
++++ b/arch/arm/boot/dts/imx6q-wandboard-revb1.dts
+@@ -13,7 +13,7 @@
+ #include "imx6qdl-wandboard-revb1.dtsi"
+
+ / {
+- model = "Wandboard i.MX6 Quad Board";
++ model = "Wandboard i.MX6 Quad Board rev B1";
+ compatible = "wand,imx6q-wandboard", "fsl,imx6q";
+
+ memory {
diff --git a/debian/patches/features/arm/device-tree/ARM-dts-kirkwood-add-for-buffalo-linkstation-ls-qvl.patch b/debian/patches/features/arm/device-tree/ARM-dts-kirkwood-add-for-buffalo-linkstation-ls-qvl.patch
new file mode 100644
index 000000000000..c6b44d05bb3c
--- /dev/null
+++ b/debian/patches/features/arm/device-tree/ARM-dts-kirkwood-add-for-buffalo-linkstation-ls-qvl.patch
@@ -0,0 +1,187 @@
+From: Mario Lange <mario_lange@gmx.net>
+Date: Tue, 26 Jan 2016 01:44:10 +0900
+Subject: ARM: dts: kirkwood: add device tree for buffalo linkstation ls-qvl
+Origin: https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/commit/?id=5dda254d0cc5cbdcc81dbce0985c35b68dd5e3b1
+
+Add dts file to support Buffalo Linkstation LS-QVL,
+which is marvell kirkwood based 4-bay 3.5" HDD NAS.
+Product info:
+ - (JPN) http://buffalo.jp/product/hdd/network/ls-qvl_r5/
+ - (ENG) http://www.buffalotech.com/products/network-storage/home-and-small-office/linkstation-pro-quad
+
+Signed-off-by: Mario Lange <mario_lange@gmx.net>
+Signed-off-by: Roger Shimizu <rogershimizu@gmail.com>
+Reviewed-by: Andrew Lunn <andrew@lunn.ch>
+Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
+---
+ .../devicetree/bindings/arm/marvell,kirkwood.txt | 1 +
+ arch/arm/boot/dts/Makefile | 1 +
+ arch/arm/boot/dts/kirkwood-linkstation-lsqvl.dts | 135 +++++++++++++++++++++
+ 3 files changed, 137 insertions(+)
+ create mode 100644 arch/arm/boot/dts/kirkwood-linkstation-lsqvl.dts
+
+diff --git a/Documentation/devicetree/bindings/arm/marvell,kirkwood.txt b/Documentation/devicetree/bindings/arm/marvell,kirkwood.txt
+index 0fc6faa4cddb..7d28fe4bf654 100644
+--- a/Documentation/devicetree/bindings/arm/marvell,kirkwood.txt
++++ b/Documentation/devicetree/bindings/arm/marvell,kirkwood.txt
+@@ -19,6 +19,7 @@ SoC. Currently known SoC compatibles are:
+ And in addition, the compatible shall be extended with the specific
+ board. Currently known boards are:
+
++"buffalo,linkstation-lsqvl"
+ "buffalo,linkstation-lsvl"
+ "buffalo,linkstation-lswsxl"
+ "buffalo,linkstation-lswxl"
+diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
+index 91833f905aef..30d316dc050f 100644
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -189,6 +189,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
+ kirkwood-is2.dtb \
+ kirkwood-km_kirkwood.dtb \
+ kirkwood-laplug.dtb \
++ kirkwood-linkstation-lsqvl.dtb \
+ kirkwood-linkstation-lsvl.dtb \
+ kirkwood-linkstation-lswsxl.dtb \
+ kirkwood-linkstation-lswvl.dtb \
+diff --git a/arch/arm/boot/dts/kirkwood-linkstation-lsqvl.dts b/arch/arm/boot/dts/kirkwood-linkstation-lsqvl.dts
+new file mode 100644
+index 000000000000..6dc0df2969f0
+--- /dev/null
++++ b/arch/arm/boot/dts/kirkwood-linkstation-lsqvl.dts
+@@ -0,0 +1,135 @@
++/*
++ * Device Tree file for Buffalo Linkstation LS-QVL
++ *
++ * Copyright (C) 2016, Mario Lange <mario_lange@gmx.net>
++ *
++ * Based on kirkwood-linkstation-lswvl.dts,
++ * Copyright (C) 2015, 2016
++ * Roger Shimizu <rogershimizu@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 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.
++ *
++ * 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 , 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 "kirkwood-linkstation-6282.dtsi"
++
++/ {
++ model = "Buffalo Linkstation LS-QVL";
++ compatible = "buffalo,lsqvl", "marvell,kirkwood-88f6282", "marvell,kirkwood";
++
++ memory { /* 256 MB */
++ device_type = "memory";
++ reg = <0x00000000 0x10000000>;
++ };
++
++ ocp@f1000000 {
++ pinctrl: pin-controller@10000 {
++ pmx_power_hdd1: pmx-power-hdd1 {
++ marvell,pins = "mpp9";
++ marvell,function = "gpio";
++ };
++ pmx_led_hdderr0: pmx-led-hdderr0 {
++ marvell,pins = "mpp34";
++ marvell,function = "gpio";
++ };
++ pmx_led_hdderr1: pmx-led-hdderr1 {
++ marvell,pins = "mpp35";
++ marvell,function = "gpio";
++ };
++ pmx_led_hdderr2: pmx-led-hdderr2 {
++ marvell,pins = "mpp24";
++ marvell,function = "gpio";
++ };
++ pmx_led_hdderr3: pmx-led-hdderr3 {
++ marvell,pins = "mpp25";
++ marvell,function = "gpio";
++ };
++ };
++
++ sata@80000 {
++ nr-ports = <2>;
++ };
++ };
++
++ gpio_leds {
++ pinctrl-0 = <&pmx_led_function_red &pmx_led_alarm
++ &pmx_led_info &pmx_led_power
++ &pmx_led_function_blue
++ &pmx_led_hdderr0
++ &pmx_led_hdderr1
++ &pmx_led_hdderr2
++ &pmx_led_hdderr3>;
++
++ red-hdderr0-led {
++ label = "linkstation:red:hdderr0";
++ gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
++ };
++
++ red-hdderr1-led {
++ label = "linkstation:red:hdderr1";
++ gpios = <&gpio1 3 GPIO_ACTIVE_LOW>;
++ };
++
++ red-hdderr2-led {
++ label = "linkstation:red:hdderr2";
++ gpios = <&gpio0 24 GPIO_ACTIVE_LOW>;
++ };
++
++ red-hdderr3-led {
++ label = "linkstation:red:hdderr3";
++ gpios = <&gpio0 25 GPIO_ACTIVE_LOW>;
++ };
++ };
++
++ regulators {
++ pinctrl-0 = <&pmx_power_hdd0 &pmx_power_hdd1 &pmx_usb_vbus>;
++
++ hdd_power1: regulator@3 {
++ compatible = "regulator-fixed";
++ reg = <3>;
++ regulator-name = "HDD1 Power";
++ regulator-min-microvolt = <5000000>;
++ regulator-max-microvolt = <5000000>;
++ enable-active-high;
++ regulator-always-on;
++ regulator-boot-on;
++ gpio = <&gpio0 9 GPIO_ACTIVE_HIGH>;
++ };
++ };
++};
diff --git a/debian/patches/features/arm/device-tree/ARM-dts-kirkwood-relicense-dts-of-ls-wvl-vl-and-ls-wxl-ws.patch b/debian/patches/features/arm/device-tree/ARM-dts-kirkwood-relicense-dts-of-ls-wvl-vl-and-ls-wxl-ws.patch
new file mode 100644
index 000000000000..fdfdd63eea3f
--- /dev/null
+++ b/debian/patches/features/arm/device-tree/ARM-dts-kirkwood-relicense-dts-of-ls-wvl-vl-and-ls-wxl-ws.patch
@@ -0,0 +1,117 @@
+From: Roger Shimizu <rogershimizu@gmail.com>
+Date: Thu, 21 Jan 2016 23:38:48 +0900
+Subject: ARM: dts: kirkwood: relicense dts of ls-wvl/vl and ls-wxl/wsxl under GPLv2/X11
+Origin: https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/commit/?id=3e2f2db885fb0cb16ae8949d4d2283f1ac272329
+
+Signed-off-by: Roger Shimizu <rogershimizu@gmail.com>
+Reviewed-by: Andrew Lunn <andrew@lunn.ch>
+Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
+---
+ arch/arm/boot/dts/kirkwood-lswvl.dts | 41 ++++++++++++++++++++++++++++++++----
+ arch/arm/boot/dts/kirkwood-lswxl.dts | 41 ++++++++++++++++++++++++++++++++----
+ 2 files changed, 74 insertions(+), 8 deletions(-)
+
+diff --git a/arch/arm/boot/dts/kirkwood-lswvl.dts b/arch/arm/boot/dts/kirkwood-lswvl.dts
+index 36eec7392ab4..04bdc4f19a9f 100644
+--- a/arch/arm/boot/dts/kirkwood-lswvl.dts
++++ b/arch/arm/boot/dts/kirkwood-lswvl.dts
+@@ -4,10 +4,43 @@
+ * Copyright (C) 2015, 2016
+ * Roger Shimizu <rogershimizu@gmail.com>
+ *
+- * This program 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 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.
++ *
++ * 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 , 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/;
+diff --git a/arch/arm/boot/dts/kirkwood-lswxl.dts b/arch/arm/boot/dts/kirkwood-lswxl.dts
+index b13ec20a7088..930899d13c5d 100644
+--- a/arch/arm/boot/dts/kirkwood-lswxl.dts
++++ b/arch/arm/boot/dts/kirkwood-lswxl.dts
+@@ -4,10 +4,43 @@
+ * Copyright (C) 2015, 2016
+ * Roger Shimizu <rogershimizu@gmail.com>
+ *
+- * This program 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 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.
++ *
++ * 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 , 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/;
diff --git a/debian/patches/features/arm/device-tree/ARM-dts-kirkwood-split-lswvl-dts-to-linkstation-lsvl-and-.patch b/debian/patches/features/arm/device-tree/ARM-dts-kirkwood-split-lswvl-dts-to-linkstation-lsvl-and-.patch
new file mode 100644
index 000000000000..c7f01bf7a0b6
--- /dev/null
+++ b/debian/patches/features/arm/device-tree/ARM-dts-kirkwood-split-lswvl-dts-to-linkstation-lsvl-and-.patch
@@ -0,0 +1,771 @@
+From: Roger Shimizu <rogershimizu@gmail.com>
+Date: Thu, 21 Jan 2016 23:38:50 +0900
+Subject: ARM: dts: kirkwood: split lswvl dts to linkstation lsvl and lswvl
+Origin: https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/commit/?id=60ff189ca05dedac97af8d9e51c285a44bc9e5a5
+
+LS-WVL/VL are both kirkwood-6282 based NAS devices, which share
+many MPP pins. However they are slightly different:
+ - LS-WVL is 2-Bay NAS, and LS-VL is only 1-Bay.
+ - There're two red LED indicator on LS-WVL to show when HDD fails,
+ which is similar to LS-WXL, but there's no such on LS-VL.
+
+So after the split, common part goes into .dtsi file:
+ - kirkwood-linkstation-6282.dtsi
+while all rest part goes into device specific .dts file:
+ - kirkwood-linkstation-lsvl.dts
+ - kirkwood-linkstation-lswvl.dts
+
+Signed-off-by: Roger Shimizu <rogershimizu@gmail.com>
+Reviewed-by: Andrew Lunn <andrew@lunn.ch>
+Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
+---
+ .../devicetree/bindings/arm/marvell,kirkwood.txt | 3 +-
+ arch/arm/boot/dts/Makefile | 3 +-
+ arch/arm/boot/dts/kirkwood-linkstation-6282.dtsi | 192 ++++++++++++
+ arch/arm/boot/dts/kirkwood-linkstation-lsvl.dts | 57 ++++
+ arch/arm/boot/dts/kirkwood-linkstation-lswvl.dts | 112 +++++++
+ arch/arm/boot/dts/kirkwood-lswvl.dts | 335 ---------------------
+ 6 files changed, 365 insertions(+), 337 deletions(-)
+ create mode 100644 arch/arm/boot/dts/kirkwood-linkstation-6282.dtsi
+ create mode 100644 arch/arm/boot/dts/kirkwood-linkstation-lsvl.dts
+ create mode 100644 arch/arm/boot/dts/kirkwood-linkstation-lswvl.dts
+ delete mode 100644 arch/arm/boot/dts/kirkwood-lswvl.dts
+
+--- a/Documentation/devicetree/bindings/arm/marvell,kirkwood.txt
++++ b/Documentation/devicetree/bindings/arm/marvell,kirkwood.txt
+@@ -19,10 +19,11 @@ SoC. Currently known SoC compatibles are
+ And in addition, the compatible shall be extended with the specific
+ board. Currently known boards are:
+
++"buffalo,linkstation-lsvl"
+ "buffalo,linkstation-lswsxl"
+ "buffalo,linkstation-lswxl"
++"buffalo,linkstation-lswvl"
+ "buffalo,lschlv2"
+-"buffalo,lswvl"
+ "buffalo,lsxhl"
+ "buffalo,lsxl"
+ "cloudengines,pogo02"
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -189,10 +189,11 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
+ kirkwood-is2.dtb \
+ kirkwood-km_kirkwood.dtb \
+ kirkwood-laplug.dtb \
++ kirkwood-linkstation-lsvl.dtb \
+ kirkwood-linkstation-lswsxl.dtb \
++ kirkwood-linkstation-lswvl.dtb \
+ kirkwood-linkstation-lswxl.dtb \
+ kirkwood-lschlv2.dtb \
+- kirkwood-lswvl.dtb \
+ kirkwood-lsxhl.dtb \
+ kirkwood-mplcec4.dtb \
+ kirkwood-mv88f6281gtw-ge.dtb \
+--- /dev/null
++++ b/arch/arm/boot/dts/kirkwood-linkstation-6282.dtsi
+@@ -0,0 +1,192 @@
++/*
++ * Device Tree common file for kirkwood-6282 based Buffalo Linkstation
++ *
++ * Copyright (C) 2015, 2016
++ * Roger Shimizu <rogershimizu@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 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.
++ *
++ * 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 , 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.
++ */
++
++#include "kirkwood.dtsi"
++#include "kirkwood-6282.dtsi"
++#include "kirkwood-linkstation.dtsi"
++
++/ {
++ ocp@f1000000 {
++ pinctrl: pin-controller@10000 {
++ pmx_power_hdd0: pmx-power-hdd0 {
++ marvell,pins = "mpp8";
++ marvell,function = "gpio";
++ };
++ pmx_usb_vbus: pmx-usb-vbus {
++ marvell,pins = "mpp12";
++ marvell,function = "gpio";
++ };
++ pmx_fan_high: pmx-fan-high {
++ marvell,pins = "mpp16";
++ marvell,function = "gpio";
++ };
++ pmx_fan_low: pmx-fan-low {
++ marvell,pins = "mpp17";
++ marvell,function = "gpio";
++ };
++ pmx_led_alarm: pmx-led-alarm {
++ marvell,pins = "mpp36";
++ marvell,function = "gpio";
++ };
++ pmx_led_function_red: pmx-led-function-red {
++ marvell,pins = "mpp37";
++ marvell,function = "gpio";
++ };
++ pmx_led_info: pmx-led-info {
++ marvell,pins = "mpp38";
++ marvell,function = "gpio";
++ };
++ pmx_led_function_blue: pmx-led-function-blue {
++ marvell,pins = "mpp39";
++ marvell,function = "gpio";
++ };
++ pmx_led_power: pmx-led-power {
++ marvell,pins = "mpp40";
++ marvell,function = "gpio";
++ };
++ pmx_fan_lock: pmx-fan-lock {
++ marvell,pins = "mpp43";
++ marvell,function = "gpio";
++ };
++ pmx_button_function: pmx-button-function {
++ marvell,pins = "mpp45";
++ marvell,function = "gpio";
++ };
++ pmx_power_switch: pmx-power-switch {
++ marvell,pins = "mpp46";
++ marvell,function = "gpio";
++ };
++ pmx_power_auto_switch: pmx-power-auto-switch {
++ marvell,pins = "mpp47";
++ marvell,function = "gpio";
++ };
++ };
++ };
++
++ gpio_keys {
++ function-button {
++ gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
++ };
++
++ power-on-switch {
++ gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
++ };
++
++ power-auto-switch {
++ gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
++ };
++ };
++
++ gpio_leds {
++ red-alarm-led {
++ label = "linkstation:red:alarm";
++ gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
++ };
++
++ red-function-led {
++ label = "linkstation:red:function";
++ gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
++ };
++
++ amber-info-led {
++ label = "linkstation:amber:info";
++ gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
++ };
++
++ blue-function-led {
++ label = "linkstation:blue:function";
++ gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
++ };
++
++ blue-power-led {
++ label = "linkstation:blue:power";
++ gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
++ default-state = "keep";
++ };
++ };
++
++ gpio_fan {
++ compatible = "gpio-fan";
++ pinctrl-0 = <&pmx_fan_low &pmx_fan_high &pmx_fan_lock>;
++ pinctrl-names = "default";
++
++ gpios = <&gpio0 17 GPIO_ACTIVE_LOW
++ &gpio0 16 GPIO_ACTIVE_LOW>;
++
++ gpio-fan,speed-map = <0 3
++ 1500 2
++ 3250 1
++ 5000 0>;
++
++ alarm-gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
++ };
++
++ regulators {
++ usb_power: regulator@1 {
++ gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>;
++ };
++
++ hdd_power0: regulator@2 {
++ gpio = <&gpio0 8 GPIO_ACTIVE_HIGH>;
++ };
++ };
++};
++
++&mdio {
++ status = "okay";
++
++ ethphy0: ethernet-phy@0 {
++ device_type = "ethernet-phy";
++ reg = <0>;
++ };
++};
++
++&eth0 {
++ status = "okay";
++
++ ethernet0-port@0 {
++ phy-handle = <&ethphy0>;
++ };
++};
+--- /dev/null
++++ b/arch/arm/boot/dts/kirkwood-linkstation-lsvl.dts
+@@ -0,0 +1,57 @@
++/*
++ * Device Tree file for Buffalo Linkstation LS-VL
++ *
++ * Copyright (C) 2015, 2016
++ * Roger Shimizu <rogershimizu@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 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.
++ *
++ * 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 , 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 "kirkwood-linkstation-6282.dtsi"
++
++/ {
++ model = "Buffalo Linkstation LS-VL";
++ compatible = "buffalo,lsvl", "marvell,kirkwood-88f6282", "marvell,kirkwood";
++
++ memory { /* 256 MB */
++ device_type = "memory";
++ reg = <0x00000000 0x10000000>;
++ };
++};
+--- /dev/null
++++ b/arch/arm/boot/dts/kirkwood-linkstation-lswvl.dts
+@@ -0,0 +1,112 @@
++/*
++ * Device Tree file for Buffalo Linkstation LS-WVL
++ *
++ * Copyright (C) 2015, 2016
++ * Roger Shimizu <rogershimizu@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 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.
++ *
++ * 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 , 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 "kirkwood-linkstation-6282.dtsi"
++
++/ {
++ model = "Buffalo Linkstation LS-WVL";
++ compatible = "buffalo,lswvl","marvell,kirkwood-88f6282", "marvell,kirkwood";
++
++ memory { /* 256 MB */
++ device_type = "memory";
++ reg = <0x00000000 0x10000000>;
++ };
++
++ ocp@f1000000 {
++ pinctrl: pin-controller@10000 {
++ pmx_power_hdd1: pmx-power-hdd1 {
++ marvell,pins = "mpp9";
++ marvell,function = "gpio";
++ };
++ pmx_led_hdderr0: pmx-led-hdderr0 {
++ marvell,pins = "mpp34";
++ marvell,function = "gpio";
++ };
++ pmx_led_hdderr1: pmx-led-hdderr1 {
++ marvell,pins = "mpp35";
++ marvell,function = "gpio";
++ };
++ };
++
++ sata@80000 {
++ nr-ports = <2>;
++ };
++ };
++
++ gpio_leds {
++ pinctrl-0 = <&pmx_led_function_red &pmx_led_alarm
++ &pmx_led_info &pmx_led_power
++ &pmx_led_function_blue
++ &pmx_led_hdderr0
++ &pmx_led_hdderr1>;
++
++ red-hdderr0-led {
++ label = "linkstation:red:hdderr0";
++ gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
++ };
++
++ red-hdderr1-led {
++ label = "linkstation:red:hdderr1";
++ gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>;
++ };
++ };
++
++ regulators {
++ pinctrl-0 = <&pmx_power_hdd0 &pmx_power_hdd1 &pmx_usb_vbus>;
++
++ hdd_power1: regulator@3 {
++ compatible = "regulator-fixed";
++ reg = <3>;
++ regulator-name = "HDD1 Power";
++ regulator-min-microvolt = <5000000>;
++ regulator-max-microvolt = <5000000>;
++ enable-active-high;
++ regulator-always-on;
++ regulator-boot-on;
++ gpio = <&gpio0 9 GPIO_ACTIVE_HIGH>;
++ };
++ };
++};
+--- a/arch/arm/boot/dts/kirkwood-lswvl.dts
++++ /dev/null
+@@ -1,335 +0,0 @@
+-/*
+- * Device Tree file for Buffalo Linkstation LS-WVL/VL
+- *
+- * Copyright (C) 2015, 2016
+- * Roger Shimizu <rogershimizu@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 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.
+- *
+- * 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 , 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 "kirkwood.dtsi"
+-#include "kirkwood-6282.dtsi"
+-
+-/ {
+- model = "Buffalo Linkstation LS-WVL/VL";
+- compatible = "buffalo,lswvl", "buffalo,lsvl", "marvell,kirkwood-88f6282", "marvell,kirkwood";
+-
+- memory { /* 256 MB */
+- device_type = "memory";
+- reg = <0x00000000 0x10000000>;
+- };
+-
+- chosen {
+- bootargs = "console=ttyS0,115200n8 earlyprintk";
+- stdout-path = &uart0;
+- };
+-
+- mbus {
+- pcie-controller {
+- status = "okay";
+- pcie@1,0 {
+- status = "okay";
+- };
+- };
+- };
+-
+- ocp@f1000000 {
+- pinctrl: pin-controller@10000 {
+- pmx_power_hdd0: pmx-power-hdd0 {
+- marvell,pins = "mpp8";
+- marvell,function = "gpio";
+- };
+- pmx_power_hdd1: pmx-power-hdd1 {
+- marvell,pins = "mpp9";
+- marvell,function = "gpio";
+- };
+- pmx_usb_vbus: pmx-usb-vbus {
+- marvell,pins = "mpp12";
+- marvell,function = "gpio";
+- };
+- pmx_fan_high: pmx-fan-high {
+- marvell,pins = "mpp16";
+- marvell,function = "gpio";
+- };
+- pmx_fan_low: pmx-fan-low {
+- marvell,pins = "mpp17";
+- marvell,function = "gpio";
+- };
+- pmx_led_hdderr0: pmx-led-hdderr0 {
+- marvell,pins = "mpp34";
+- marvell,function = "gpio";
+- };
+- pmx_led_hdderr1: pmx-led-hdderr1 {
+- marvell,pins = "mpp35";
+- marvell,function = "gpio";
+- };
+- pmx_led_alarm: pmx-led-alarm {
+- marvell,pins = "mpp36";
+- marvell,function = "gpio";
+- };
+- pmx_led_function_red: pmx-led-function-red {
+- marvell,pins = "mpp37";
+- marvell,function = "gpio";
+- };
+- pmx_led_info: pmx-led-info {
+- marvell,pins = "mpp38";
+- marvell,function = "gpio";
+- };
+- pmx_led_function_blue: pmx-led-function-blue {
+- marvell,pins = "mpp39";
+- marvell,function = "gpio";
+- };
+- pmx_led_power: pmx-led-power {
+- marvell,pins = "mpp40";
+- marvell,function = "gpio";
+- };
+- pmx_fan_lock: pmx-fan-lock {
+- marvell,pins = "mpp43";
+- marvell,function = "gpio";
+- };
+- pmx_button_function: pmx-button-function {
+- marvell,pins = "mpp45";
+- marvell,function = "gpio";
+- };
+- pmx_power_switch: pmx-power-switch {
+- marvell,pins = "mpp46";
+- marvell,function = "gpio";
+- };
+- pmx_power_auto_switch: pmx-power-auto-switch {
+- marvell,pins = "mpp47";
+- marvell,function = "gpio";
+- };
+- };
+-
+- serial@12000 {
+- status = "okay";
+- };
+-
+- sata@80000 {
+- status = "okay";
+- nr-ports = <2>;
+- };
+-
+- spi@10600 {
+- status = "okay";
+-
+- m25p40@0 {
+- #address-cells = <1>;
+- #size-cells = <1>;
+- compatible = "st,m25p40", "jedec,spi-nor";
+- reg = <0>;
+- spi-max-frequency = <25000000>;
+- mode = <0>;
+-
+- partition@0 {
+- reg = <0x0 0x60000>;
+- label = "uboot";
+- read-only;
+- };
+-
+- partition@60000 {
+- reg = <0x60000 0x10000>;
+- label = "dtb";
+- read-only;
+- };
+-
+- partition@70000 {
+- reg = <0x70000 0x10000>;
+- label = "uboot_env";
+- };
+- };
+- };
+- };
+-
+- gpio_keys {
+- compatible = "gpio-keys";
+- #address-cells = <1>;
+- #size-cells = <0>;
+- pinctrl-0 = <&pmx_button_function &pmx_power_switch
+- &pmx_power_auto_switch>;
+- pinctrl-names = "default";
+-
+- button@1 {
+- label = "Function Button";
+- linux,code = <KEY_OPTION>;
+- gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
+- };
+-
+- button@2 {
+- label = "Power-on Switch";
+- linux,code = <KEY_RESERVED>;
+- linux,input-type = <5>;
+- gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
+- };
+-
+- button@3 {
+- label = "Power-auto Switch";
+- linux,code = <KEY_ESC>;
+- linux,input-type = <5>;
+- gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
+- };
+- };
+-
+- gpio_leds {
+- compatible = "gpio-leds";
+- pinctrl-0 = <&pmx_led_function_red &pmx_led_alarm
+- &pmx_led_info &pmx_led_power
+- &pmx_led_function_blue
+- &pmx_led_hdderr0
+- &pmx_led_hdderr1>;
+- pinctrl-names = "default";
+-
+- led@1 {
+- label = "lswvl:red:alarm";
+- gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
+- };
+-
+- led@2 {
+- label = "lswvl:red:func";
+- gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
+- };
+-
+- led@3 {
+- label = "lswvl:amber:info";
+- gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
+- };
+-
+- led@4 {
+- label = "lswvl:blue:func";
+- gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
+- };
+-
+- led@5 {
+- label = "lswvl:blue:power";
+- gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
+- default-state = "keep";
+- };
+-
+- led@6 {
+- label = "lswvl:red:hdderr0";
+- gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
+- };
+-
+- led@7 {
+- label = "lswvl:red:hdderr1";
+- gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>;
+- };
+- };
+-
+- gpio_fan {
+- compatible = "gpio-fan";
+- pinctrl-0 = <&pmx_fan_low &pmx_fan_high &pmx_fan_lock>;
+- pinctrl-names = "default";
+-
+- gpios = <&gpio0 17 GPIO_ACTIVE_LOW
+- &gpio0 16 GPIO_ACTIVE_LOW>;
+-
+- gpio-fan,speed-map = <0 3
+- 1500 2
+- 3250 1
+- 5000 0>;
+-
+- alarm-gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
+- };
+-
+- restart_poweroff {
+- compatible = "restart-poweroff";
+- };
+-
+- regulators {
+- compatible = "simple-bus";
+- #address-cells = <1>;
+- #size-cells = <0>;
+- pinctrl-0 = <&pmx_power_hdd0 &pmx_power_hdd1 &pmx_usb_vbus>;
+- pinctrl-names = "default";
+-
+- usb_power: regulator@1 {
+- compatible = "regulator-fixed";
+- reg = <1>;
+- regulator-name = "USB Power";
+- regulator-min-microvolt = <5000000>;
+- regulator-max-microvolt = <5000000>;
+- enable-active-high;
+- regulator-always-on;
+- regulator-boot-on;
+- gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>;
+- };
+- hdd_power0: regulator@2 {
+- compatible = "regulator-fixed";
+- reg = <2>;
+- regulator-name = "HDD0 Power";
+- regulator-min-microvolt = <5000000>;
+- regulator-max-microvolt = <5000000>;
+- enable-active-high;
+- regulator-always-on;
+- regulator-boot-on;
+- gpio = <&gpio0 8 GPIO_ACTIVE_HIGH>;
+- };
+- hdd_power1: regulator@3 {
+- compatible = "regulator-fixed";
+- reg = <3>;
+- regulator-name = "HDD1 Power";
+- regulator-min-microvolt = <5000000>;
+- regulator-max-microvolt = <5000000>;
+- enable-active-high;
+- regulator-always-on;
+- regulator-boot-on;
+- gpio = <&gpio0 9 GPIO_ACTIVE_HIGH>;
+- };
+- };
+-};
+-
+-&mdio {
+- status = "okay";
+-
+- ethphy0: ethernet-phy@0 {
+- device_type = "ethernet-phy";
+- reg = <0>;
+- };
+-};
+-
+-&eth0 {
+- status = "okay";
+-
+- ethernet0-port@0 {
+- phy-handle = <&ethphy0>;
+- };
+-};
diff --git a/debian/patches/features/arm/device-tree/ARM-dts-kirkwood-split-lswxl-dts-to-linkstation-lswsxl-an.patch b/debian/patches/features/arm/device-tree/ARM-dts-kirkwood-split-lswxl-dts-to-linkstation-lswsxl-an.patch
new file mode 100644
index 000000000000..126df4196e0f
--- /dev/null
+++ b/debian/patches/features/arm/device-tree/ARM-dts-kirkwood-split-lswxl-dts-to-linkstation-lswsxl-an.patch
@@ -0,0 +1,975 @@
+From: Roger Shimizu <rogershimizu@gmail.com>
+Date: Thu, 21 Jan 2016 23:38:49 +0900
+Subject: ARM: dts: kirkwood: split lswxl dts to linkstation lswsxl and lswxl
+Origin: https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/commit/?id=b05465ff5b5e90d6d25d3f6c4e8ac6b2b3159435
+
+LS-WXL/WSXL are both kirkwood-6281 based 2-Bay NAS devices, which share
+many MPP pins. However they are slightly different:
+ - There're two red LED indicator on LS-WXL to show when HDD fails,
+ but there's no such on LS-WSXL.
+ - There's 4-level speed adjustable FAN on LS-WXL, but not LS-WSXL.
+
+So after the split, common part goes into .dtsi file:
+ - kirkwood-linkstation.dtsi
+ - kirkwood-linkstation-duo-6281.dtsi
+while all rest part goes into device specific .dts file:
+ - kirkwood-linkstation-lswsxl.dts
+ - kirkwood-linkstation-lswxl.dts
+
+Signed-off-by: Roger Shimizu <rogershimizu@gmail.com>
+Reviewed-by: Andrew Lunn <andrew@lunn.ch>
+Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
+---
+ .../devicetree/bindings/arm/marvell,kirkwood.txt | 3 +-
+ arch/arm/boot/dts/Makefile | 3 +-
+ .../boot/dts/kirkwood-linkstation-duo-6281.dtsi | 186 ++++++++++++
+ arch/arm/boot/dts/kirkwood-linkstation-lswsxl.dts | 57 ++++
+ arch/arm/boot/dts/kirkwood-linkstation-lswxl.dts | 116 +++++++
+ arch/arm/boot/dts/kirkwood-linkstation.dtsi | 202 +++++++++++++
+ arch/arm/boot/dts/kirkwood-lswxl.dts | 335 ---------------------
+ 7 files changed, 565 insertions(+), 337 deletions(-)
+ create mode 100644 arch/arm/boot/dts/kirkwood-linkstation-duo-6281.dtsi
+ create mode 100644 arch/arm/boot/dts/kirkwood-linkstation-lswsxl.dts
+ create mode 100644 arch/arm/boot/dts/kirkwood-linkstation-lswxl.dts
+ create mode 100644 arch/arm/boot/dts/kirkwood-linkstation.dtsi
+ delete mode 100644 arch/arm/boot/dts/kirkwood-lswxl.dts
+
+--- a/Documentation/devicetree/bindings/arm/marvell,kirkwood.txt
++++ b/Documentation/devicetree/bindings/arm/marvell,kirkwood.txt
+@@ -19,9 +19,10 @@ SoC. Currently known SoC compatibles are
+ And in addition, the compatible shall be extended with the specific
+ board. Currently known boards are:
+
++"buffalo,linkstation-lswsxl"
++"buffalo,linkstation-lswxl"
+ "buffalo,lschlv2"
+ "buffalo,lswvl"
+-"buffalo,lswxl"
+ "buffalo,lsxhl"
+ "buffalo,lsxl"
+ "cloudengines,pogo02"
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -189,9 +189,10 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
+ kirkwood-is2.dtb \
+ kirkwood-km_kirkwood.dtb \
+ kirkwood-laplug.dtb \
++ kirkwood-linkstation-lswsxl.dtb \
++ kirkwood-linkstation-lswxl.dtb \
+ kirkwood-lschlv2.dtb \
+ kirkwood-lswvl.dtb \
+- kirkwood-lswxl.dtb \
+ kirkwood-lsxhl.dtb \
+ kirkwood-mplcec4.dtb \
+ kirkwood-mv88f6281gtw-ge.dtb \
+--- /dev/null
++++ b/arch/arm/boot/dts/kirkwood-linkstation-duo-6281.dtsi
+@@ -0,0 +1,186 @@
++/*
++ * Device Tree common file for kirkwood-6281 based 2-Bay Buffalo Linkstation
++ *
++ * Copyright (C) 2015, 2016
++ * Roger Shimizu <rogershimizu@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 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.
++ *
++ * 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 , 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.
++ */
++
++#include "kirkwood.dtsi"
++#include "kirkwood-6281.dtsi"
++#include "kirkwood-linkstation.dtsi"
++
++/ {
++ ocp@f1000000 {
++ pinctrl: pin-controller@10000 {
++ pmx_power_hdd0: pmx-power-hdd0 {
++ marvell,pins = "mpp28";
++ marvell,function = "gpio";
++ };
++ pmx_power_hdd1: pmx-power-hdd1 {
++ marvell,pins = "mpp29";
++ marvell,function = "gpio";
++ };
++ pmx_usb_vbus: pmx-usb-vbus {
++ marvell,pins = "mpp37";
++ marvell,function = "gpio";
++ };
++ pmx_led_alarm: pmx-led-alarm {
++ marvell,pins = "mpp49";
++ marvell,function = "gpio";
++ };
++ pmx_led_function_red: pmx-led-function-red {
++ marvell,pins = "mpp34";
++ marvell,function = "gpio";
++ };
++ pmx_led_function_blue: pmx-led-function-blue {
++ marvell,pins = "mpp36";
++ marvell,function = "gpio";
++ };
++ pmx_led_info: pmx-led-info {
++ marvell,pins = "mpp38";
++ marvell,function = "gpio";
++ };
++ pmx_led_power: pmx-led-power {
++ marvell,pins = "mpp39";
++ marvell,function = "gpio";
++ };
++ pmx_button_function: pmx-button-function {
++ marvell,pins = "mpp41";
++ marvell,function = "gpio";
++ };
++ pmx_power_switch: pmx-power-switch {
++ marvell,pins = "mpp42";
++ marvell,function = "gpio";
++ };
++ pmx_power_auto_switch: pmx-power-auto-switch {
++ marvell,pins = "mpp43";
++ marvell,function = "gpio";
++ };
++ };
++
++ sata@80000 {
++ nr-ports = <2>;
++ };
++ };
++
++ gpio_keys {
++ function-button {
++ gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
++ };
++
++ power-on-switch {
++ gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
++ };
++
++ power-auto-switch {
++ gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
++ };
++ };
++
++ gpio_leds {
++ red-alarm-led {
++ label = "linkstation:red:alarm";
++ gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
++ };
++
++ red-function-led {
++ label = "linkstation:red:function";
++ gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
++ };
++
++ amber-info-led {
++ label = "linkstation:amber:info";
++ gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
++ };
++
++ blue-function-led {
++ label = "linkstation:blue:function";
++ gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
++ };
++
++ blue-power-led {
++ label = "linkstation:blue:power";
++ gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
++ default-state = "keep";
++ };
++ };
++
++ regulators {
++ pinctrl-0 = <&pmx_power_hdd0 &pmx_power_hdd1 &pmx_usb_vbus>;
++
++ usb_power: regulator@1 {
++ gpio = <&gpio1 5 GPIO_ACTIVE_HIGH>;
++ };
++
++ hdd_power0: regulator@2 {
++ gpio = <&gpio0 28 GPIO_ACTIVE_HIGH>;
++ };
++
++ hdd_power1: regulator@3 {
++ compatible = "regulator-fixed";
++ reg = <3>;
++ regulator-name = "HDD1 Power";
++ regulator-min-microvolt = <5000000>;
++ regulator-max-microvolt = <5000000>;
++ enable-active-high;
++ regulator-always-on;
++ regulator-boot-on;
++ gpio = <&gpio0 29 GPIO_ACTIVE_HIGH>;
++ };
++ };
++};
++
++&mdio {
++ status = "okay";
++
++ ethphy1: ethernet-phy@8 {
++ device_type = "ethernet-phy";
++ reg = <8>;
++ };
++};
++
++&eth1 {
++ status = "okay";
++
++ ethernet1-port@0 {
++ phy-handle = <&ethphy1>;
++ };
++};
+--- /dev/null
++++ b/arch/arm/boot/dts/kirkwood-linkstation-lswsxl.dts
+@@ -0,0 +1,57 @@
++/*
++ * Device Tree file for Buffalo Linkstation LS-WSXL
++ *
++ * Copyright (C) 2015, 2016
++ * Roger Shimizu <rogershimizu@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 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.
++ *
++ * 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 , 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 "kirkwood-linkstation-duo-6281.dtsi"
++
++/ {
++ model = "Buffalo Linkstation LS-WSXL";
++ compatible = "buffalo,lswsxl", "marvell,kirkwood-88f6281", "marvell,kirkwood";
++
++ memory { /* 128 MB */
++ device_type = "memory";
++ reg = <0x00000000 0x8000000>;
++ };
++};
+--- /dev/null
++++ b/arch/arm/boot/dts/kirkwood-linkstation-lswxl.dts
+@@ -0,0 +1,116 @@
++/*
++ * Device Tree file for Buffalo Linkstation LS-WXL
++ *
++ * Copyright (C) 2015, 2016
++ * Roger Shimizu <rogershimizu@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 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.
++ *
++ * 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 , 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 "kirkwood-linkstation-duo-6281.dtsi"
++
++/ {
++ model = "Buffalo Linkstation LS-WXL";
++ compatible = "buffalo,lswxl", "marvell,kirkwood-88f6281", "marvell,kirkwood";
++
++ memory { /* 128 MB */
++ device_type = "memory";
++ reg = <0x00000000 0x8000000>;
++ };
++
++ ocp@f1000000 {
++ pinctrl: pin-controller@10000 {
++ pmx_led_hdderr0: pmx-led-hdderr0 {
++ marvell,pins = "mpp8";
++ marvell,function = "gpio";
++ };
++ pmx_led_hdderr1: pmx-led-hdderr1 {
++ marvell,pins = "mpp46";
++ marvell,function = "gpio";
++ };
++ pmx_fan_lock: pmx-fan-lock {
++ marvell,pins = "mpp40";
++ marvell,function = "gpio";
++ };
++ pmx_fan_high: pmx-fan-high {
++ marvell,pins = "mpp47";
++ marvell,function = "gpio";
++ };
++ pmx_fan_low: pmx-fan-low {
++ marvell,pins = "mpp48";
++ marvell,function = "gpio";
++ };
++ };
++ };
++
++ gpio_leds {
++ pinctrl-0 = <&pmx_led_function_red &pmx_led_alarm
++ &pmx_led_info &pmx_led_power
++ &pmx_led_function_blue
++ &pmx_led_hdderr0
++ &pmx_led_hdderr1>;
++
++ red-hdderr0-led {
++ label = "linkstation:red:hdderr0";
++ gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>;
++ };
++
++ red-hdderr1-led {
++ label = "linkstation:red:hdderr1";
++ gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>;
++ };
++ };
++
++ gpio_fan {
++ compatible = "gpio-fan";
++ pinctrl-0 = <&pmx_fan_low &pmx_fan_high &pmx_fan_lock>;
++ pinctrl-names = "default";
++
++ gpios = <&gpio1 16 GPIO_ACTIVE_LOW
++ &gpio1 15 GPIO_ACTIVE_LOW>;
++
++ gpio-fan,speed-map = <0 3
++ 1500 2
++ 3250 1
++ 5000 0>;
++
++ alarm-gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
++ };
++};
+--- /dev/null
++++ b/arch/arm/boot/dts/kirkwood-linkstation.dtsi
+@@ -0,0 +1,202 @@
++/*
++ * Device Tree common file for kirkwood based Buffalo Linkstation
++ *
++ * Copyright (C) 2015, 2016
++ * Roger Shimizu <rogershimizu@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 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.
++ *
++ * 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 , 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.
++ */
++
++/ {
++ chosen {
++ bootargs = "console=ttyS0,115200n8 earlyprintk";
++ stdout-path = &uart0;
++ };
++
++ mbus {
++ pcie-controller {
++ status = "okay";
++ pcie@1,0 {
++ status = "okay";
++ };
++ };
++ };
++
++ ocp@f1000000 {
++ pinctrl: pin-controller@10000 {
++ pmx_power_hdd0: pmx-power-hdd0 {
++ marvell,function = "gpio";
++ };
++ pmx_usb_vbus: pmx-usb-vbus {
++ marvell,function = "gpio";
++ };
++ pmx_led_alarm: pmx-led-alarm {
++ marvell,function = "gpio";
++ };
++ pmx_led_function_red: pmx-led-function-red {
++ marvell,function = "gpio";
++ };
++ pmx_led_function_blue: pmx-led-function-blue {
++ marvell,function = "gpio";
++ };
++ pmx_led_info: pmx-led-info {
++ marvell,function = "gpio";
++ };
++ pmx_led_power: pmx-led-power {
++ marvell,function = "gpio";
++ };
++ pmx_button_function: pmx-button-function {
++ marvell,function = "gpio";
++ };
++ pmx_power_switch: pmx-power-switch {
++ marvell,function = "gpio";
++ };
++ pmx_power_auto_switch: pmx-power-auto-switch {
++ marvell,function = "gpio";
++ };
++ };
++
++ serial@12000 {
++ status = "okay";
++ };
++
++ sata@80000 {
++ status = "okay";
++ nr-ports = <1>;
++ };
++
++ spi@10600 {
++ status = "okay";
++
++ m25p40@0 {
++ #address-cells = <1>;
++ #size-cells = <1>;
++ compatible = "st,m25p40", "jedec,spi-nor";
++ reg = <0>;
++ spi-max-frequency = <25000000>;
++ mode = <0>;
++
++ partition@0 {
++ reg = <0x0 0x60000>;
++ label = "uboot";
++ read-only;
++ };
++
++ partition@60000 {
++ reg = <0x60000 0x10000>;
++ label = "dtb";
++ read-only;
++ };
++
++ partition@70000 {
++ reg = <0x70000 0x10000>;
++ label = "uboot_env";
++ };
++ };
++ };
++ };
++
++ gpio_keys {
++ compatible = "gpio-keys";
++ #address-cells = <1>;
++ #size-cells = <0>;
++ pinctrl-0 = <&pmx_button_function &pmx_power_switch
++ &pmx_power_auto_switch>;
++ pinctrl-names = "default";
++
++ function-button {
++ label = "Function Button";
++ linux,code = <KEY_OPTION>;
++ };
++
++ power-on-switch {
++ label = "Power-on Switch";
++ linux,code = <KEY_RESERVED>;
++ linux,input-type = <5>;
++ };
++
++ power-auto-switch {
++ label = "Power-auto Switch";
++ linux,code = <KEY_ESC>;
++ linux,input-type = <5>;
++ };
++ };
++
++ gpio_leds {
++ compatible = "gpio-leds";
++ pinctrl-0 = <&pmx_led_function_red &pmx_led_alarm
++ &pmx_led_info &pmx_led_power
++ &pmx_led_function_blue>;
++ pinctrl-names = "default";
++ };
++
++ restart_poweroff {
++ compatible = "restart-poweroff";
++ };
++
++ regulators {
++ compatible = "simple-bus";
++ #address-cells = <1>;
++ #size-cells = <0>;
++ pinctrl-0 = <&pmx_power_hdd0 &pmx_usb_vbus>;
++ pinctrl-names = "default";
++
++ usb_power: regulator@1 {
++ compatible = "regulator-fixed";
++ reg = <1>;
++ regulator-name = "USB Power";
++ regulator-min-microvolt = <5000000>;
++ regulator-max-microvolt = <5000000>;
++ enable-active-high;
++ regulator-always-on;
++ regulator-boot-on;
++ };
++
++ hdd_power0: regulator@2 {
++ compatible = "regulator-fixed";
++ reg = <2>;
++ regulator-name = "HDD0 Power";
++ regulator-min-microvolt = <5000000>;
++ regulator-max-microvolt = <5000000>;
++ enable-active-high;
++ regulator-always-on;
++ regulator-boot-on;
++ };
++ };
++};
+--- a/arch/arm/boot/dts/kirkwood-lswxl.dts
++++ /dev/null
+@@ -1,335 +0,0 @@
+-/*
+- * Device Tree file for Buffalo Linkstation LS-WXL/WSXL
+- *
+- * Copyright (C) 2015, 2016
+- * Roger Shimizu <rogershimizu@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 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.
+- *
+- * 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 , 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 "kirkwood.dtsi"
+-#include "kirkwood-6281.dtsi"
+-
+-/ {
+- model = "Buffalo Linkstation LS-WXL/WSXL";
+- compatible = "buffalo,lswxl", "marvell,kirkwood-88f6281", "marvell,kirkwood";
+-
+- memory { /* 128 MB */
+- device_type = "memory";
+- reg = <0x00000000 0x8000000>;
+- };
+-
+- chosen {
+- bootargs = "console=ttyS0,115200n8 earlyprintk";
+- stdout-path = &uart0;
+- };
+-
+- mbus {
+- pcie-controller {
+- status = "okay";
+- pcie@1,0 {
+- status = "okay";
+- };
+- };
+- };
+-
+- ocp@f1000000 {
+- pinctrl: pin-controller@10000 {
+- pmx_power_hdd0: pmx-power-hdd0 {
+- marvell,pins = "mpp28";
+- marvell,function = "gpio";
+- };
+- pmx_power_hdd1: pmx-power-hdd1 {
+- marvell,pins = "mpp29";
+- marvell,function = "gpio";
+- };
+- pmx_usb_vbus: pmx-usb-vbus {
+- marvell,pins = "mpp37";
+- marvell,function = "gpio";
+- };
+- pmx_fan_high: pmx-fan-high {
+- marvell,pins = "mpp47";
+- marvell,function = "gpio";
+- };
+- pmx_fan_low: pmx-fan-low {
+- marvell,pins = "mpp48";
+- marvell,function = "gpio";
+- };
+- pmx_led_hdderr0: pmx-led-hdderr0 {
+- marvell,pins = "mpp8";
+- marvell,function = "gpio";
+- };
+- pmx_led_hdderr1: pmx-led-hdderr1 {
+- marvell,pins = "mpp46";
+- marvell,function = "gpio";
+- };
+- pmx_led_alarm: pmx-led-alarm {
+- marvell,pins = "mpp49";
+- marvell,function = "gpio";
+- };
+- pmx_led_function_red: pmx-led-function-red {
+- marvell,pins = "mpp34";
+- marvell,function = "gpio";
+- };
+- pmx_led_function_blue: pmx-led-function-blue {
+- marvell,pins = "mpp36";
+- marvell,function = "gpio";
+- };
+- pmx_led_info: pmx-led-info {
+- marvell,pins = "mpp38";
+- marvell,function = "gpio";
+- };
+- pmx_led_power: pmx-led-power {
+- marvell,pins = "mpp39";
+- marvell,function = "gpio";
+- };
+- pmx_fan_lock: pmx-fan-lock {
+- marvell,pins = "mpp40";
+- marvell,function = "gpio";
+- };
+- pmx_button_function: pmx-button-function {
+- marvell,pins = "mpp41";
+- marvell,function = "gpio";
+- };
+- pmx_power_switch: pmx-power-switch {
+- marvell,pins = "mpp42";
+- marvell,function = "gpio";
+- };
+- pmx_power_auto_switch: pmx-power-auto-switch {
+- marvell,pins = "mpp43";
+- marvell,function = "gpio";
+- };
+- };
+-
+- serial@12000 {
+- status = "okay";
+- };
+-
+- sata@80000 {
+- status = "okay";
+- nr-ports = <2>;
+- };
+-
+- spi@10600 {
+- status = "okay";
+-
+- m25p40@0 {
+- #address-cells = <1>;
+- #size-cells = <1>;
+- compatible = "st,m25p40", "jedec,spi-nor";
+- reg = <0>;
+- spi-max-frequency = <25000000>;
+- mode = <0>;
+-
+- partition@0 {
+- reg = <0x0 0x60000>;
+- label = "uboot";
+- read-only;
+- };
+-
+- partition@60000 {
+- reg = <0x60000 0x10000>;
+- label = "dtb";
+- read-only;
+- };
+-
+- partition@70000 {
+- reg = <0x70000 0x10000>;
+- label = "uboot_env";
+- };
+- };
+- };
+- };
+-
+- gpio_keys {
+- compatible = "gpio-keys";
+- #address-cells = <1>;
+- #size-cells = <0>;
+- pinctrl-0 = <&pmx_button_function &pmx_power_switch
+- &pmx_power_auto_switch>;
+- pinctrl-names = "default";
+-
+- button@1 {
+- label = "Function Button";
+- linux,code = <KEY_OPTION>;
+- gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
+- };
+-
+- button@2 {
+- label = "Power-on Switch";
+- linux,code = <KEY_RESERVED>;
+- linux,input-type = <5>;
+- gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
+- };
+-
+- button@3 {
+- label = "Power-auto Switch";
+- linux,code = <KEY_ESC>;
+- linux,input-type = <5>;
+- gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
+- };
+- };
+-
+- gpio_leds {
+- compatible = "gpio-leds";
+- pinctrl-0 = <&pmx_led_function_red &pmx_led_alarm
+- &pmx_led_info &pmx_led_power
+- &pmx_led_function_blue
+- &pmx_led_hdderr0
+- &pmx_led_hdderr1>;
+- pinctrl-names = "default";
+-
+- led@1 {
+- label = "lswxl:blue:func";
+- gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
+- };
+-
+- led@2 {
+- label = "lswxl:red:alarm";
+- gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
+- };
+-
+- led@3 {
+- label = "lswxl:amber:info";
+- gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
+- };
+-
+- led@4 {
+- label = "lswxl:blue:power";
+- gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
+- default-state = "keep";
+- };
+-
+- led@5 {
+- label = "lswxl:red:func";
+- gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
+- };
+-
+- led@6 {
+- label = "lswxl:red:hdderr0";
+- gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>;
+- };
+-
+- led@7 {
+- label = "lswxl:red:hdderr1";
+- gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>;
+- };
+- };
+-
+- gpio_fan {
+- compatible = "gpio-fan";
+- pinctrl-0 = <&pmx_fan_low &pmx_fan_high &pmx_fan_lock>;
+- pinctrl-names = "default";
+-
+- gpios = <&gpio1 16 GPIO_ACTIVE_LOW
+- &gpio1 15 GPIO_ACTIVE_LOW>;
+-
+- gpio-fan,speed-map = <0 3
+- 1500 2
+- 3250 1
+- 5000 0>;
+-
+- alarm-gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
+- };
+-
+- restart_poweroff {
+- compatible = "restart-poweroff";
+- };
+-
+- regulators {
+- compatible = "simple-bus";
+- #address-cells = <1>;
+- #size-cells = <0>;
+- pinctrl-0 = <&pmx_power_hdd0 &pmx_power_hdd1 &pmx_usb_vbus>;
+- pinctrl-names = "default";
+-
+- usb_power: regulator@1 {
+- compatible = "regulator-fixed";
+- reg = <1>;
+- regulator-name = "USB Power";
+- regulator-min-microvolt = <5000000>;
+- regulator-max-microvolt = <5000000>;
+- enable-active-high;
+- regulator-always-on;
+- regulator-boot-on;
+- gpio = <&gpio1 5 GPIO_ACTIVE_HIGH>;
+- };
+- hdd_power0: regulator@2 {
+- compatible = "regulator-fixed";
+- reg = <2>;
+- regulator-name = "HDD0 Power";
+- regulator-min-microvolt = <5000000>;
+- regulator-max-microvolt = <5000000>;
+- enable-active-high;
+- regulator-always-on;
+- regulator-boot-on;
+- gpio = <&gpio0 28 GPIO_ACTIVE_HIGH>;
+- };
+- hdd_power1: regulator@3 {
+- compatible = "regulator-fixed";
+- reg = <3>;
+- regulator-name = "HDD1 Power";
+- regulator-min-microvolt = <5000000>;
+- regulator-max-microvolt = <5000000>;
+- enable-active-high;
+- regulator-always-on;
+- regulator-boot-on;
+- gpio = <&gpio0 29 GPIO_ACTIVE_HIGH>;
+- };
+- };
+-};
+-
+-&mdio {
+- status = "okay";
+-
+- ethphy1: ethernet-phy@8 {
+- device_type = "ethernet-phy";
+- reg = <8>;
+- };
+-};
+-
+-&eth1 {
+- status = "okay";
+-
+- ethernet1-port@0 {
+- phy-handle = <&ethphy1>;
+- };
+-};
diff --git a/debian/patches/features/arm/device-tree/ARM-dts-orion5x-add-for-buffalo-linkstation-ls-gl.patch b/debian/patches/features/arm/device-tree/ARM-dts-orion5x-add-for-buffalo-linkstation-ls-gl.patch
new file mode 100644
index 000000000000..8b9049ec8a42
--- /dev/null
+++ b/debian/patches/features/arm/device-tree/ARM-dts-orion5x-add-for-buffalo-linkstation-ls-gl.patch
@@ -0,0 +1,132 @@
+From: Roger Shimizu <rogershimizu@gmail.com>
+Date: Sat, 6 Feb 2016 14:59:53 +0900
+Subject: ARM: dts: orion5x: add device tree for buffalo linkstation ls-gl
+Origin: https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/commit/?id=b1742ffa9ddb347a8bcb8e5f7dcf4d3a790f9041
+
+Add dts file to support Buffalo Linkstation LS-GL
+(a.k.a Buffalo Linkstation Pro/Live), which is marvell orion5x based
+3.5" HDD NAS.
+
+Product info:
+ - (JPN) http://buffalo.jp/products/catalog/item/l/ls-gl/
+ - (ENG) http://www.buffalotech.com/products/network-storage/linkstation/linkstation-pro
+
+This device tree is based on the board file:
+ arch/arm/mach-orion5x/kurobox_pro-setup.c
+However, that board file also support Kurobox Pro, which is not supported by
+device tree yet. So the board file is not removed.
+
+Signed-off-by: Roger Shimizu <rogershimizu@gmail.com>
+Reviewed-by: Andrew Lunn <andrew@lunn.ch>
+Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
+---
+ arch/arm/boot/dts/Makefile | 1 +
+ arch/arm/boot/dts/orion5x-linkstation-lsgl.dts | 87 ++++++++++++++++++++++++++
+ 2 files changed, 88 insertions(+)
+ create mode 100644 arch/arm/boot/dts/orion5x-linkstation-lsgl.dts
+
+diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
+index 30d316dc050f..66f464dd814a 100644
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -517,6 +517,7 @@ dtb-$(CONFIG_SOC_DRA7XX) += \
+ dtb-$(CONFIG_ARCH_ORION5X) += \
+ orion5x-lacie-d2-network.dtb \
+ orion5x-lacie-ethernet-disk-mini-v2.dtb \
++ orion5x-linkstation-lsgl.dtb \
+ orion5x-linkstation-lswtgl.dtb \
+ orion5x-lswsgl.dtb \
+ orion5x-maxtor-shared-storage-2.dtb \
+diff --git a/arch/arm/boot/dts/orion5x-linkstation-lsgl.dts b/arch/arm/boot/dts/orion5x-linkstation-lsgl.dts
+new file mode 100644
+index 000000000000..1cf644bfd7ea
+--- /dev/null
++++ b/arch/arm/boot/dts/orion5x-linkstation-lsgl.dts
+@@ -0,0 +1,87 @@
++/*
++ * Device Tree file for Buffalo Linkstation LS-GL
++ * (also known as Buffalo Linkstation Pro/Live)
++ *
++ * Copyright (C) 2016
++ * Roger Shimizu <rogershimizu@gmail.com>
++ *
++ * Based on the board file arch/arm/mach-orion5x/kurobox_pro-setup.c
++ * Copyright (C) Ronen Shitrit <rshitrit@marvell.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.
++ *
++ * 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 , 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 "orion5x-linkstation.dtsi"
++#include <dt-bindings/gpio/gpio.h>
++
++/ {
++ model = "Buffalo Linkstation Pro/Live";
++ compatible = "buffalo,lsgl", "marvell,orion5x-88f5182", "marvell,orion5x";
++
++ memory { /* 128 MB */
++ device_type = "memory";
++ reg = <0x00000000 0x8000000>;
++ };
++};
++
++&pinctrl {
++ pmx_power_hdd: pmx-power-hdd {
++ marvell,pins = "mpp1";
++ marvell,function = "gpio";
++ };
++
++ pmx_power_usb: pmx-power-usb {
++ marvell,pins = "mpp9";
++ marvell,function = "gpio";
++ };
++};
++
++&hdd_power {
++ gpios = <&gpio0 1 GPIO_ACTIVE_HIGH>;
++};
++
++&usb_power {
++ gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>;
++};
++
++&ehci1 {
++ status = "okay";
++};
diff --git a/debian/patches/features/arm/device-tree/ARM-dts-orion5x-split-linkstation-lswtgl-into-common-and-.patch b/debian/patches/features/arm/device-tree/ARM-dts-orion5x-split-linkstation-lswtgl-into-common-and-.patch
new file mode 100644
index 000000000000..837133ae487c
--- /dev/null
+++ b/debian/patches/features/arm/device-tree/ARM-dts-orion5x-split-linkstation-lswtgl-into-common-and-.patch
@@ -0,0 +1,699 @@
+From: Roger Shimizu <rogershimizu@gmail.com>
+Date: Sat, 6 Feb 2016 14:59:52 +0900
+Subject: ARM: dts: orion5x: split linkstation lswtgl into common and device parts
+Origin: https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/commit/?id=305e0b2a7a85e8bd65818cb3636b205f784ed377
+
+In order to support more linkstation devices, common part of current
+.dts file goes into .dtsi file. Some .dtsi start with "mvebu-" prefix
+because other kirkwood based linkstation devices are similar, and
+will be migrated to use these .dtsi some time later.
+ - orion5x-linkstation.dtsi
+ - mvebu-linkstation-fan.dtsi
+ - mvebu-linkstation-gpio-simple.dtsi
+while all rest part remains in device specific .dts file:
+ - orion5x-linkstation-lswtgl.dts
+
+Signed-off-by: Roger Shimizu <rogershimizu@gmail.com>
+Reviewed-by: Andrew Lunn <andrew@lunn.ch>
+Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
+---
+ arch/arm/boot/dts/mvebu-linkstation-fan.dtsi | 72 ++++++
+ .../boot/dts/mvebu-linkstation-gpio-simple.dtsi | 105 +++++++++
+ arch/arm/boot/dts/orion5x-linkstation-lswtgl.dts | 243 ++++-----------------
+ arch/arm/boot/dts/orion5x-linkstation.dtsi | 180 +++++++++++++++
+ 4 files changed, 402 insertions(+), 198 deletions(-)
+ create mode 100644 arch/arm/boot/dts/mvebu-linkstation-fan.dtsi
+ create mode 100644 arch/arm/boot/dts/mvebu-linkstation-gpio-simple.dtsi
+ create mode 100644 arch/arm/boot/dts/orion5x-linkstation.dtsi
+
+--- /dev/null
++++ b/arch/arm/boot/dts/mvebu-linkstation-fan.dtsi
+@@ -0,0 +1,72 @@
++/*
++ * Device Tree common file for gpio-fan on Buffalo Linkstation
++ *
++ * Copyright (C) 2015, 2016
++ * Roger Shimizu <rogershimizu@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 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.
++ *
++ * 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 , 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.
++ */
++
++/ {
++ gpio_fan {
++ compatible = "gpio-fan";
++ pinctrl-0 = <&pmx_fan_low &pmx_fan_high &pmx_fan_lock>;
++ pinctrl-names = "default";
++
++ gpio-fan,speed-map =
++ <0 3
++ 1500 2
++ 3250 1
++ 5000 0>;
++ };
++};
++
++&pinctrl {
++ pmx_fan_low: pmx-fan-low {
++ marvell,function = "gpio";
++ };
++
++ pmx_fan_high: pmx-fan-high {
++ marvell,function = "gpio";
++ };
++
++ pmx_fan_lock: pmx-fan-lock {
++ marvell,function = "gpio";
++ };
++};
+--- /dev/null
++++ b/arch/arm/boot/dts/mvebu-linkstation-gpio-simple.dtsi
+@@ -0,0 +1,105 @@
++/*
++ * Device Tree common file for gpio-{keys,leds} on Buffalo Linkstation
++ *
++ * Copyright (C) 2015, 2016
++ * Roger Shimizu <rogershimizu@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 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.
++ *
++ * 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 , 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.
++ */
++
++#include <dt-bindings/input/input.h>
++
++/ {
++ gpio_keys {
++ compatible = "gpio-keys";
++ #address-cells = <1>;
++ #size-cells = <0>;
++ pinctrl-0 = <&pmx_power_switch>;
++ pinctrl-names = "default";
++
++ power-on-switch {
++ label = "Power-on Switch";
++ linux,code = <KEY_RESERVED>;
++ linux,input-type = <5>;
++ };
++
++ power-auto-switch {
++ label = "Power-auto Switch";
++ linux,code = <KEY_ESC>;
++ linux,input-type = <5>;
++ };
++ };
++
++ gpio_leds {
++ compatible = "gpio-leds";
++ pinctrl-0 = <&pmx_led_power &pmx_led_alarm &pmx_led_info>;
++ pinctrl-names = "default";
++
++ blue-power-led {
++ label = "linkstation:blue:power";
++ default-state = "keep";
++ };
++
++ red-alarm-led {
++ label = "linkstation:red:alarm";
++ };
++
++ amber-info-led {
++ label = "linkstation:amber:info";
++ };
++ };
++};
++
++&pinctrl {
++ pmx_power_switch: pmx-power-switch {
++ marvell,function = "gpio";
++ };
++
++ pmx_led_power: pmx-leds {
++ marvell,function = "gpio";
++ };
++
++ pmx_led_alarm: pmx-leds {
++ marvell,function = "gpio";
++ };
++
++ pmx_led_info: pmx-leds {
++ marvell,function = "gpio";
++ };
++};
+--- a/arch/arm/boot/dts/orion5x-linkstation-lswtgl.dts
++++ b/arch/arm/boot/dts/orion5x-linkstation-lswtgl.dts
+@@ -45,9 +45,10 @@
+
+ /dts-v1/;
+
++#include "orion5x-linkstation.dtsi"
++#include "mvebu-linkstation-gpio-simple.dtsi"
++#include "mvebu-linkstation-fan.dtsi"
+ #include <dt-bindings/gpio/gpio.h>
+-#include <dt-bindings/input/input.h>
+-#include "orion5x-mv88f5182.dtsi"
+
+ / {
+ model = "Buffalo Linkstation LS-WTGL";
+@@ -58,247 +59,93 @@
+ reg = <0x00000000 0x4000000>;
+ };
+
+- chosen {
+- bootargs = "console=ttyS0,115200n8 earlyprintk";
+- linux,stdout-path = &uart0;
+- };
+-
+- soc {
+- ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000>,
+- <MBUS_ID(0x09, 0x00) 0 0xf2200000 0x800>,
+- <MBUS_ID(0x01, 0x0f) 0 0xf4000000 0x40000>;
+-
+- internal-regs {
+- pinctrl: pinctrl@10000 {
+- pinctrl-names = "default";
+-
+- pmx_led_power: pmx-leds {
+- marvell,pins = "mpp0";
+- marvell,function = "gpio";
+- };
+-
+- pmx_led_alarm: pmx-leds {
+- marvell,pins = "mpp2";
+- marvell,function = "gpio";
+- };
+-
+- pmx_led_info: pmx-leds {
+- marvell,pins = "mpp3";
+- marvell,function = "gpio";
+- };
+-
+- pmx_power_hdd: pmx-power-hdd {
+- marvell,pins = "mpp1";
+- marvell,function = "gpio";
+- };
+-
+- pmx_usb_power: pmx-usb-power {
+- marvell,pins = "mpp9";
+- marvell,function = "gpio";
+- };
+-
+- pmx_sata0: pmx-sata0 {
+- marvell,pins = "mpp12";
+- marvell,function = "sata0";
+- };
+-
+- pmx_sata1: pmx-sata1 {
+- marvell,pins = "mpp13";
+- marvell,function = "sata1";
+- };
+-
+- pmx_fan_high: pmx-fan-high {
+- marvell,pins = "mpp14";
+- marvell,function = "gpio";
+- };
+-
+- pmx_fan_low: pmx-fan-low {
+- marvell,pins = "mpp17";
+- marvell,function = "gpio";
+- };
+-
+- pmx_fan_lock: pmx-fan-lock {
+- marvell,pins = "mpp6";
+- marvell,function = "gpio";
+- };
+-
+- pmx_power_switch: pmx-power-switch {
+- marvell,pins = "mpp8", "mpp10";
+- marvell,function = "gpio";
+- };
+- };
+- };
+- };
+-
+ gpio_keys {
+- compatible = "gpio-keys";
+- #address-cells = <1>;
+- #size-cells = <0>;
+- pinctrl-0 = <&pmx_power_switch>;
+- pinctrl-names = "default";
+-
+- button@1 {
+- label = "Power-on Switch";
+- linux,code = <KEY_RESERVED>;
+- linux,input-type = <5>;
++ power-on-switch {
+ gpios = <&gpio0 8 GPIO_ACTIVE_LOW>;
+ };
+
+- button@2 {
+- label = "Power-auto Switch";
+- linux,code = <KEY_ESC>;
+- linux,input-type = <5>;
++ power-auto-switch {
+ gpios = <&gpio0 10 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ gpio_leds {
+- compatible = "gpio-leds";
+- pinctrl-0 = <&pmx_led_power &pmx_led_alarm
+- &pmx_led_info>;
+- pinctrl-names = "default";
+-
+- led@1 {
+- label = "lswtgl:blue:power";
++ blue-power-led {
+ gpios = <&gpio0 0 GPIO_ACTIVE_LOW>;
+- default-state = "keep";
+ };
+
+- led@2 {
+- label = "lswtgl:red:alarm";
++ red-alarm-led {
+ gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
+ };
+
+- led@3 {
+- label = "lswtgl:amber:info";
++ amber-info-led {
+ gpios = <&gpio0 3 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ gpio_fan {
+- compatible = "gpio-fan";
+- pinctrl-0 = <&pmx_fan_low &pmx_fan_high &pmx_fan_lock>;
+- pinctrl-names = "default";
+-
+ gpios = <&gpio0 14 GPIO_ACTIVE_LOW
+ &gpio0 17 GPIO_ACTIVE_LOW>;
+
+- gpio-fan,speed-map = <0 3
+- 1500 2
+- 3250 1
+- 5000 0>;
+-
+ alarm-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>;
+ };
++};
+
+- restart_poweroff {
+- compatible = "restart-poweroff";
++&pinctrl {
++ pmx_led_power: pmx-leds {
++ marvell,pins = "mpp0";
++ marvell,function = "gpio";
+ };
+
+- regulators {
+- compatible = "simple-bus";
+- #address-cells = <1>;
+- #size-cells = <0>;
+- pinctrl-0 = <&pmx_power_hdd &pmx_usb_power>;
+- pinctrl-names = "default";
+-
+- usb_power: regulator@1 {
+- compatible = "regulator-fixed";
+- reg = <1>;
+- regulator-name = "USB Power";
+- regulator-min-microvolt = <5000000>;
+- regulator-max-microvolt = <5000000>;
+- enable-active-high;
+- regulator-always-on;
+- regulator-boot-on;
+- gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>;
+- };
++ pmx_power_hdd: pmx-power-hdd {
++ marvell,pins = "mpp1";
++ marvell,function = "gpio";
++ };
+
+- hdd_power: regulator@2 {
+- compatible = "regulator-fixed";
+- reg = <2>;
+- regulator-name = "HDD Power";
+- regulator-min-microvolt = <5000000>;
+- regulator-max-microvolt = <5000000>;
+- enable-active-high;
+- regulator-always-on;
+- regulator-boot-on;
+- gpios = <&gpio0 1 GPIO_ACTIVE_HIGH>;
+- };
++ pmx_led_alarm: pmx-leds {
++ marvell,pins = "mpp2";
++ marvell,function = "gpio";
+ };
+-};
+
+-&devbus_bootcs {
+- status = "okay";
+- devbus,keep-config;
+-
+- flash@0 {
+- compatible = "jedec-flash";
+- reg = <0 0x40000>;
+- bank-width = <1>;
+-
+- partitions {
+- compatible = "fixed-partitions";
+- #address-cells = <1>;
+- #size-cells = <1>;
+-
+- header@0 {
+- reg = <0 0x30000>;
+- read-only;
+- };
+-
+- uboot@30000 {
+- reg = <0x30000 0xF000>;
+- read-only;
+- };
+-
+- uboot_env@3F000 {
+- reg = <0x3F000 0x1000>;
+- };
+- };
++ pmx_led_info: pmx-leds {
++ marvell,pins = "mpp3";
++ marvell,function = "gpio";
+ };
+-};
+
+-&mdio {
+- status = "okay";
++ pmx_fan_lock: pmx-fan-lock {
++ marvell,pins = "mpp6";
++ marvell,function = "gpio";
++ };
+
+- ethphy: ethernet-phy {
+- reg = <8>;
++ pmx_power_switch: pmx-power-switch {
++ marvell,pins = "mpp8", "mpp10";
++ marvell,function = "gpio";
+ };
+-};
+
+-&eth {
+- status = "okay";
++ pmx_power_usb: pmx-power-usb {
++ marvell,pins = "mpp9";
++ marvell,function = "gpio";
++ };
+
+- ethernet-port@0 {
+- phy-handle = <&ethphy>;
++ pmx_fan_high: pmx-fan-high {
++ marvell,pins = "mpp14";
++ marvell,function = "gpio";
+ };
+-};
+
+-&ehci0 {
+- status = "okay";
++ pmx_fan_low: pmx-fan-low {
++ marvell,pins = "mpp17";
++ marvell,function = "gpio";
++ };
+ };
+
+-&i2c {
+- status = "okay";
+-
+- rtc {
+- compatible = "ricoh,rs5c372a";
+- reg = <0x32>;
+- };
++&hdd_power {
++ gpios = <&gpio0 1 GPIO_ACTIVE_HIGH>;
+ };
+
+-&wdt {
+- status = "disabled";
++&usb_power {
++ gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>;
+ };
+
+ &sata {
+- pinctrl-0 = <&pmx_sata0 &pmx_sata1>;
+- pinctrl-names = "default";
+- status = "okay";
+ nr-ports = <2>;
+ };
+-
+-&uart0 {
+- status = "okay";
+-};
+--- /dev/null
++++ b/arch/arm/boot/dts/orion5x-linkstation.dtsi
+@@ -0,0 +1,180 @@
++/*
++ * Device Tree common file for orion5x based Buffalo Linkstation
++ *
++ * Copyright (C) 2015, 2016
++ * Roger Shimizu <rogershimizu@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 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.
++ *
++ * 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 , 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.
++ */
++
++#include "orion5x-mv88f5182.dtsi"
++
++/ {
++ chosen {
++ bootargs = "console=ttyS0,115200n8 earlyprintk";
++ linux,stdout-path = &uart0;
++ };
++
++ soc {
++ ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000>,
++ <MBUS_ID(0x09, 0x00) 0 0xf2200000 0x800>,
++ <MBUS_ID(0x01, 0x0f) 0 0xf4000000 0x40000>;
++ };
++
++ restart_poweroff {
++ compatible = "restart-poweroff";
++ };
++
++ regulators {
++ compatible = "simple-bus";
++ #address-cells = <1>;
++ #size-cells = <0>;
++ pinctrl-0 = <&pmx_power_usb &pmx_power_hdd>;
++ pinctrl-names = "default";
++
++ usb_power: regulator@1 {
++ compatible = "regulator-fixed";
++ reg = <1>;
++ regulator-name = "USB Power";
++ regulator-min-microvolt = <5000000>;
++ regulator-max-microvolt = <5000000>;
++ enable-active-high;
++ regulator-always-on;
++ regulator-boot-on;
++ };
++
++ hdd_power: regulator@2 {
++ compatible = "regulator-fixed";
++ reg = <2>;
++ regulator-name = "HDD Power";
++ regulator-min-microvolt = <5000000>;
++ regulator-max-microvolt = <5000000>;
++ enable-active-high;
++ regulator-always-on;
++ regulator-boot-on;
++ };
++ };
++};
++
++&pinctrl {
++ pmx_power_hdd: pmx-power-hdd {
++ marvell,function = "gpio";
++ };
++
++ pmx_power_usb: pmx-power-usb {
++ marvell,function = "gpio";
++ };
++};
++
++&devbus_bootcs {
++ status = "okay";
++ devbus,keep-config;
++
++ flash@0 {
++ compatible = "jedec-flash";
++ reg = <0 0x40000>;
++ bank-width = <1>;
++
++ partitions {
++ compatible = "fixed-partitions";
++ #address-cells = <1>;
++ #size-cells = <1>;
++
++ header@0 {
++ reg = <0 0x30000>;
++ read-only;
++ };
++
++ uboot@30000 {
++ reg = <0x30000 0xF000>;
++ read-only;
++ };
++
++ uboot_env@3F000 {
++ reg = <0x3F000 0x1000>;
++ };
++ };
++ };
++};
++
++&mdio {
++ status = "okay";
++
++ ethphy: ethernet-phy {
++ reg = <8>;
++ };
++};
++
++&eth {
++ status = "okay";
++
++ ethernet-port@0 {
++ phy-handle = <&ethphy>;
++ };
++};
++
++&ehci0 {
++ status = "okay";
++};
++
++&i2c {
++ status = "okay";
++
++ rtc {
++ compatible = "ricoh,rs5c372a";
++ reg = <0x32>;
++ };
++};
++
++&wdt {
++ status = "disabled";
++};
++
++&sata {
++ status = "okay";
++ nr-ports = <1>;
++};
++
++&uart0 {
++ status = "okay";
++};
++
++&uart1 {
++ status = "okay";
++};
diff --git a/debian/patches/series b/debian/patches/series
index eff715db2d97..3b197417d92f 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -50,6 +50,13 @@ features/mips/MIPS-octeon-Add-support-for-the-UBNT-E200-board.patch
features/x86/x86-memtest-WARN-if-bad-RAM-found.patch
features/x86/x86-make-x32-syscall-support-conditional.patch
features/sparc/hwrng-n2-attach-on-t5-m5-t7-m7-sparc-cpus.patch
+features/arm/device-tree/ARM-dts-imx6dlq-wandboard-revb1.dts-use-unique-model-id.patch
+features/arm/device-tree/ARM-dts-kirkwood-relicense-dts-of-ls-wvl-vl-and-ls-wxl-ws.patch
+features/arm/device-tree/ARM-dts-kirkwood-split-lswxl-dts-to-linkstation-lswsxl-an.patch
+features/arm/device-tree/ARM-dts-kirkwood-split-lswvl-dts-to-linkstation-lsvl-and-.patch
+features/arm/device-tree/ARM-dts-kirkwood-add-for-buffalo-linkstation-ls-qvl.patch
+features/arm/device-tree/ARM-dts-orion5x-split-linkstation-lswtgl-into-common-and-.patch
+features/arm/device-tree/ARM-dts-orion5x-add-for-buffalo-linkstation-ls-gl.patch
# Miscellaneous bug fixes
bugfix/all/misc-bmp085-Enable-building-as-a-module.patch
@@ -76,3 +83,5 @@ bugfix/x86/x86-efi-setup-separate-efi-page-tables-in-kexec-path.patch
debian/i386-686-pae-pci-set-pci-nobios-by-default.patch
bugfix/x86/x86-efi-bgrt-fix-kernel-panic-when-mapping-bgrt-data.patch
bugfix/x86/x86-efi-bgrt-replace-early_memremap-with-memremap.patch
+bugfix/all/uas-fix-high-order-alloc.patch
+bugfix/all/revert-drm-radeon-call-hpd_irq_event-on-resume.patch