arm: dts: Add Novena to Makefile
arm: Add novena_defconfig
arm: imx: clk-imx6q: Hack to get HDMI output working
arch: arm: imx: Reset PCIe PHY on suspend/resume

This solves ERR005723, which has been separately merged upstream.
fs: pstore: add eeprom-based pstore backend

Some boards ship with an onboard I2C EEPROM that can be used to log
crashes and such in between reboots.  This can be more reliable,
especially when performing cold boots where the RAM contents can be lost.
clk: Support for clock parents and rates assigned from device tree

This patch adds helper functions to configure clock parents and rates
as specified through 'assigned-clock-parents', 'assigned-clock-rates'
DT properties for a clock provider or clock consumer device.
The helpers are now being called by the bus code for the platform, I2C
and SPI busses, before the driver probing and also in the clock core
after registration of a clock provider.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
dma: imx-sdma: Fix DMA freezing on underrun

The DMA engine didn't handle partial buffers.  This patch fixes partial
buffer support, and makes it so DMA stutters on underrun rather than freezing.
drivers: staging: imx-drm: Hack to work around LDB

The connector system tries to connect the device
/soc/aips-bus@02000000/ldb@020e0008/lvds-channel@1 which doesn't exist
on a dual-lane LVDS system.  Ignore this failure.
drivers: staging: imx-drm: Fix audio buffer sizes

Pulseaudio connects to dw-hdmi-audio with a period size of 1024 and a
buffer size of 4408 or so.  Because of this, it overruns its buffer and
panics.

Inform ALSA that we'd like the buffer size to be a multiple
of the period size, to prevent this problem.

Signed-off-by: Sean Cross <xobs@kosagi.com>
hid: Add custom driver for Lenovo ThinkPad Compact Bluetooth Keyboard

This keyboard requires some custom mappings for all keys to be
available, and the Fn-lock toggle needs to be controlled in software.

Signed-off-by: Jamie Lentin <jm@lentin.co.uk>
block: cgroups, kconfig, build bits for BFQ-v7r5-3.16

Update Kconfig.iosched and do the related Makefile changes to include
kernel configuration options for BFQ. Also add the bfqio controller
to the cgroups subsystem.

Signed-off-by: Paolo Valente <paolo.valente@unimore.it>
Signed-off-by: Arianna Avanzini <avanzini.arianna@gmail.com>
block: introduce the BFQ-v7r5 I/O sched for 3.16

Add the BFQ-v7r5 I/O scheduler to 3.16.
The general structure is borrowed from CFQ, as much of the code for
handling I/O contexts. Over time, several useful features have been
ported from CFQ as well (details in the changelog in README.BFQ). A
(bfq_)queue is associated to each task doing I/O on a device, and each
time a scheduling decision has to be made a queue is selected and served
until it expires.

    - Slices are given in the service domain: tasks are assigned
      budgets, measured in number of sectors. Once got the disk, a task
      must however consume its assigned budget within a configurable
      maximum time (by default, the maximum possible value of the
      budgets is automatically computed to comply with this timeout).
      This allows the desired latency vs "throughput boosting" tradeoff
      to be set.

    - Budgets are scheduled according to a variant of WF2Q+, implemented
      using an augmented rb-tree to take eligibility into account while
      preserving an O(log N) overall complexity.

    - A low-latency tunable is provided; if enabled, both interactive
      and soft real-time applications are guaranteed a very low latency.

    - Latency guarantees are preserved also in the presence of NCQ.

    - Also with flash-based devices, a high throughput is achieved
      while still preserving latency guarantees.

    - BFQ features Early Queue Merge (EQM), a sort of fusion of the
      cooperating-queue-merging and the preemption mechanisms present
      in CFQ. EQM is in fact a unified mechanism that tries to get a
      sequential read pattern, and hence a high throughput, with any
      set of processes performing interleaved I/O over a contiguous
      sequence of sectors.

    - BFQ supports full hierarchical scheduling, exporting a cgroups
      interface.  Since each node has a full scheduler, each group can
      be assigned its own weight.

    - If the cgroups interface is not used, only I/O priorities can be
      assigned to processes, with ioprio values mapped to weights
      with the relation weight = IOPRIO_BE_NR - ioprio.

    - ioprio classes are served in strict priority order, i.e., lower
      priority queues are not served as long as there are higher
      priority queues.  Among queues in the same class the bandwidth is
      distributed in proportion to the weight of each queue. A very
      thin extra bandwidth is however guaranteed to the Idle class, to
      prevent it from starving.

Signed-off-by: Paolo Valente <paolo.valente@unimore.it>
Signed-off-by: Arianna Avanzini <avanzini.arianna@gmail.com>
block, bfq: add Early Queue Merge (EQM) to BFQ-v7r5 for 3.16.0

A set of processes may happen  to  perform interleaved reads, i.e.,requests
whose union would give rise to a  sequential read  pattern.  There are two
typical  cases: in the first  case,   processes  read  fixed-size chunks of
data at a fixed distance from each other, while in the second case processes
may read variable-size chunks at  variable distances. The latter case occurs
for  example with  QEMU, which  splits the  I/O generated  by the  guest into
multiple chunks,  and lets these chunks  be served by a  pool of cooperating
processes,  iteratively  assigning  the  next  chunk of  I/O  to  the first
available  process. CFQ  uses actual  queue merging  for the  first type of
rocesses, whereas it  uses preemption to get a sequential  read pattern out
of the read requests  performed by the second type of  processes. In the end
it uses  two different  mechanisms to  achieve the  same goal: boosting the
throughput with interleaved I/O.

This patch introduces  Early Queue Merge (EQM), a unified mechanism to get a
sequential  read pattern  with both  types of  processes. The  main idea is
checking newly arrived requests against the next request of the active queue
both in case of actual request insert and in case of request merge. By doing
so, both the types of processes can be handled by just merging their queues.
EQM is  then simpler and  more compact than the  pair of mechanisms used in
CFQ.

Finally, EQM  also preserves the  typical low-latency properties of BFQ, by
properly restoring the weight-raising state of  a queue when it gets back to
a non-merged state.

Signed-off-by: Mauro Andreolini <mauro.andreolini@unimore.it>
Signed-off-by: Arianna Avanzini <avanzini.arianna@gmail.com>
Signed-off-by: Paolo Valente <paolo.valente@unimore.it>
devicetree: bindings: Add Everest Semicodunctor

Everest Semiconductor makes audio codecs.

Signed-off-by: Sean Cross <xobs@kosagi.com>
ASoC: add es8328 codec driver

Add a codec driver for the Everest ES8328.  It supports two separate audio
outputs and two separate audio inputs.

Signed-off-by: Sean Cross <xobs@kosagi.com>
ASoC: fsl: add imx-es8328 machine driver

This adds an initial machine driver for the ES8328 audio codec on Freescale
boards.  The driver supports headphones and an audio regulator for an onboard
speaker amp.

Signed-off-by: Sean Cross <xobs@kosagi.com>
drivers: gpu: i2c: Add it6251 LVDS to DP converter
pwm: imx: Support very long period lengths

The IMX PWM block supports using both the system clock and a 32 kHz
clock for driving PWM events.  For very long period lengths, use the
32 kHz clock instead of the high-speed clock.

Signed-off-by: Sean Cross <xobs@kosagi.com>
ASoC: fsl: Fix building of imx-es8328 on PPC

The imx-es8328 driver fails to build on PPC because it explicitly depends on
SND_SOC_IMX_PCM_FIQ, which itself doesn't build on PPC.  Instead, rely on
the SND_SOC_FSL_SSI config option to pull in the necessary libraries.

While we're at it, remove SND_SOC_FSL_UTILS, which also is not needed.

Signed-off-by: Sean Cross <xobs@kosagi.com>
mfd: stmpe: support gpio over irq under device tree

The stmpe_platform_data supports irq_over_gpio, which allows the
system to read STMPE events whenever an IRQ occurs on a GPIO pin.
This patch adds the ability to use a GPIO as an IRQ source for
boards configuring the STMPE in device tree.

Signed-off-by: Sean Cross <xobs@kosagi.com>