drm backport from v3.15-rc1

Sync to commit:

commit c9eaa447e77efe77b7fa4c953bd62de8297fd6c5
Author:     Linus Torvalds <torvalds@linux-foundation.org>
AuthorDate: Sun Apr 13 14:18:35 2014 -0700
Commit:     Linus Torvalds <torvalds@linux-foundation.org>
CommitDate: Sun Apr 13 14:18:35 2014 -0700

    Linux 3.15-rc1
atl1c: use androidboot.serialno to generate MAC

The androidboot.serialno appears to be appended by bootloader, and
unique per board.  So if present, prefer it to generate a pseudo-random
MAC (which will be persistent across reboots) to a purely random MAC.

Signed-off-by: Rob Clark <robdclark@gmail.com>
ath6kl-3.5: wlan updates for firetv

Sync w/ external compat-wireless tree from firetv src drop
"firetv_src_51.1.0_user_510047320".
pm8921-charger: fix reported status for battery-less-hw

Otherwise userspace will think there is a critically low battery and
immediately initiate shutdown or hibernate.
power-supply: fix POWER_SUPPLY=n compile errors
WIP: fix audio on firetv..

Not sure about this "pseudo" path, MM_UL12 appears to be missing, even
with android kernel.  Not sure what causes the driver to go ahead and
register itself with the missing links, but for now strip out that stuff
as it does not appear needed..
firetv: bump up thermal limits
ath6kl: hack around 10sec timeout in boot

move initialization later, after usb is already up, to avoid a timeout
in probe.
drm/msm: fix memory leak

Signed-off-by: Micah Richert <richert@braincorporation.com>
Signed-off-by: Rob Clark <robdclark@gmail.com>
drm/msm: default to XR24 rather than AR24

Since X11 is going to create an XR24 fb, if the pixel formats do not
match then crtc helpers will think it is a full modeset even if mode is
the same, which prevents smooth/flickerless handover from fbcon/plymouth
to X11.

Signed-off-by: Rob Clark <robdclark@gmail.com>
drm/msm/mdp4: cure for the cursor blues (v2)

The hw cursor is relatively adept at triggering underflows, which
manifest as a "blue flash" (since blue is configured as the underflow
color).  Juggle a few things around to tighten up the timing for setting
cursor registers in DONE irq.

And most importantly, don't ever disable the hw cursor.  Instead flip it
to a blank/empty cursor.  This seems far more reliable, as even simply
clearing the cursor-enable bit (with no other updates in previous/
following frames) can in some cases cause underflow.

v1: original
v2: add missing locking spotted by Micah

Cc: Micah Richert <richert@braincorporation.com>
Signed-off-by: Rob Clark <robdclark@gmail.com>
WIP: drm/msm/mdp5: fix potential crash in error/unload paths...
DOWNSTREAM: drm/msm: add glue for audio driver
DOWNSTREAM: drm/msm: use faster downstream iommu APIs

mapping/unmapping by range means less TLB invalidate overhead, which is
good for a few fps in xonotic, for example.
DOWNSTREAM: drm/msm: hacks to build for 8x74
DOWNSTREAM: drm/msm: register iommu domain

This API doesn't exist upstream.
WIP: drm/msm: add rd logging debugfs

To ease debugging, add debugfs file which can be cat/tail'd to log
submits, along with fence #.  If GPU hangs, you can look at 'gpu'
debugfs file to find last completed fence and current register state,
and compare with logged rd file to narrow down the DRAW_INDX which
triggered the GPU hang.

Conflicts:
	drivers/gpu/drm/msm/msm_gpu.c

Conflicts:
	drivers/gpu/drm/msm/Makefile
	drivers/gpu/drm/msm/msm_drv.h
WIP: drm/msm: add perf logging debugfs

Conflicts:
	drivers/gpu/drm/msm/Makefile
	drivers/gpu/drm/msm/adreno/a3xx_gpu.c
WIP: drm/msm: add trace points (v2)

v2: add mdp5 bits
WIP: perf/timechart: support for GPU

Show GPU as another "CPU" on the timeline, so we can see where it is
busy and idle.  Also show pending flips (green bar on the GPU), as well
as places where processes are blocked on a fence (yellow bar on the
process).

Currently a bit hacky.  And looking for drm/msm specific traces.  We
should probably make a set of generic traces that can be used by all drm
drivers, and use these trace events in perf.  (For other GPU's we
probably want a way to be able to visualize activity on multiple rings.)