--- /dev/null
+From 961a7aeafab477f63d9eef26afde9cbb8badcd0f Mon Sep 17 00:00:00 2001
+From: Peter Ujfalusi <peter.ujfalusi@ti.com>
+Date: Mon, 1 Oct 2012 12:29:26 +0300
+Subject: ASoC: dmaengine: Correct Makefile when sound is built as module
+
+From: Peter Ujfalusi <peter.ujfalusi@ti.com>
+
+commit 961a7aeafab477f63d9eef26afde9cbb8badcd0f upstream.
+
+soc-dmaengine-pcm library need to be part of the snd-soc-core in order to
+be able to compile ASoC as modules when dmaengine is enabled on the platform.
+
+Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
+Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
+Cc: Florian Fainelli <florian@openwrt.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/soc/Makefile | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+--- a/sound/soc/Makefile
++++ b/sound/soc/Makefile
+@@ -1,8 +1,9 @@
+ snd-soc-core-objs := soc-core.o soc-dapm.o soc-jack.o soc-cache.o soc-utils.o
+ snd-soc-core-objs += soc-pcm.o soc-io.o
+
+-snd-soc-dmaengine-pcm-objs := soc-dmaengine-pcm.o
+-obj-$(CONFIG_SND_SOC_DMAENGINE_PCM) += snd-soc-dmaengine-pcm.o
++ifneq ($(CONFIG_SND_SOC_DMAENGINE_PCM),)
++snd-soc-core-objs += soc-dmaengine-pcm.o
++endif
+
+ obj-$(CONFIG_SND_SOC) += snd-soc-core.o
+ obj-$(CONFIG_SND_SOC) += codecs/
--- /dev/null
+From 9a30a61f3516871c5c638fd7c025fbaa11ddf7fe Mon Sep 17 00:00:00 2001
+From: Jani Nikula <jani.nikula@intel.com>
+Date: Mon, 12 Nov 2012 14:33:45 +0200
+Subject: drm/i915: do not default to 18 bpp for eDP if missing from VBT
+
+From: Jani Nikula <jani.nikula@intel.com>
+
+commit 9a30a61f3516871c5c638fd7c025fbaa11ddf7fe upstream.
+
+commit 500a8cc466a24e2fbc4c86ef9c6467ae2ffdeb0c
+Author: Zhenyu Wang <zhenyuw@linux.intel.com>
+Date: Wed Jan 13 11:19:52 2010 +0800
+
+ drm/i915: parse eDP panel color depth from VBT block
+
+originally introduced parsing bpp for eDP from VBT, with a default of 18
+bpp if the eDP BIOS data block is not present. Turns out that default seems
+to break the Macbook Pro with retina display, as noted in
+
+commit 4344b813f105a19f793f1fd93ad775b784648b95
+Author: Daniel Vetter <daniel.vetter@ffwll.ch>
+Date: Fri Aug 10 11:10:20 2012 +0200
+
+ drm/i915: ignore eDP bpc settings from vbt
+
+Since we can't ignore bpc settings from VBT completely after all, get rid
+of the default. Do not clamp eDP to 18 bpp by default if the eDP BDB is
+missing from VBT.
+
+Signed-off-by: Jani Nikula <jani.nikula@intel.com>
+Tested-by: Henrik Rydberg <rydberg@euromail.se>
+[danvet: paste in the updated commit message from irc.]
+Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/i915/intel_bios.c | 11 ++---------
+ drivers/gpu/drm/i915/intel_display.c | 2 +-
+ 2 files changed, 3 insertions(+), 10 deletions(-)
+
+--- a/drivers/gpu/drm/i915/intel_bios.c
++++ b/drivers/gpu/drm/i915/intel_bios.c
+@@ -500,12 +500,8 @@ parse_edp(struct drm_i915_private *dev_p
+
+ edp = find_section(bdb, BDB_EDP);
+ if (!edp) {
+- if (SUPPORTS_EDP(dev_priv->dev) && dev_priv->edp.support) {
+- DRM_DEBUG_KMS("No eDP BDB found but eDP panel "
+- "supported, assume %dbpp panel color "
+- "depth.\n",
+- dev_priv->edp.bpp);
+- }
++ if (SUPPORTS_EDP(dev_priv->dev) && dev_priv->edp.support)
++ DRM_DEBUG_KMS("No eDP BDB found but eDP panel supported.\n");
+ return;
+ }
+
+@@ -658,9 +654,6 @@ init_vbt_defaults(struct drm_i915_privat
+ dev_priv->lvds_use_ssc = 1;
+ dev_priv->lvds_ssc_freq = intel_bios_ssc_frequency(dev, 1);
+ DRM_DEBUG_KMS("Set default to SSC at %dMHz\n", dev_priv->lvds_ssc_freq);
+-
+- /* eDP data */
+- dev_priv->edp.bpp = 18;
+ }
+
+ static int __init intel_no_opregion_vbt_callback(const struct dmi_system_id *id)
+--- a/drivers/gpu/drm/i915/intel_display.c
++++ b/drivers/gpu/drm/i915/intel_display.c
+@@ -3795,7 +3795,7 @@ static bool intel_choose_pipe_bpp_dither
+ /* Use VBT settings if we have an eDP panel */
+ unsigned int edp_bpc = dev_priv->edp.bpp / 3;
+
+- if (edp_bpc < display_bpc) {
++ if (edp_bpc && edp_bpc < display_bpc) {
+ DRM_DEBUG_KMS("clamping display bpc (was %d) to eDP (%d)\n", display_bpc, edp_bpc);
+ display_bpc = edp_bpc;
+ }
--- /dev/null
+From 2f4f649a69a9eb51f6e98130e19dd90a260a4145 Mon Sep 17 00:00:00 2001
+From: Jani Nikula <jani.nikula@intel.com>
+Date: Mon, 12 Nov 2012 14:33:44 +0200
+Subject: drm/i915: do not ignore eDP bpc settings from vbt
+
+From: Jani Nikula <jani.nikula@intel.com>
+
+commit 2f4f649a69a9eb51f6e98130e19dd90a260a4145 upstream.
+
+There are laptops out there that need the eDP bpc from VBT. This is
+effectively a revert of
+
+commit 4344b813f105a19f793f1fd93ad775b784648b95
+Author: Daniel Vetter <daniel.vetter@ffwll.ch>
+Date: Fri Aug 10 11:10:20 2012 +0200
+
+ drm/i915: ignore eDP bpc settings from vbt
+
+but putting the VBT check after the EDID check to see them both in dmesg if
+this clamps more than the EDID. We have enough history with bpc clamping to
+warrant the extra debug info.
+
+Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=47641
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=56401
+Signed-off-by: Jani Nikula <jani.nikula@intel.com>
+Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/i915/intel_display.c | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+--- a/drivers/gpu/drm/i915/intel_display.c
++++ b/drivers/gpu/drm/i915/intel_display.c
+@@ -3791,6 +3791,17 @@ static bool intel_choose_pipe_bpp_dither
+ }
+ }
+
++ if (intel_encoder->type == INTEL_OUTPUT_EDP) {
++ /* Use VBT settings if we have an eDP panel */
++ unsigned int edp_bpc = dev_priv->edp.bpp / 3;
++
++ if (edp_bpc < display_bpc) {
++ DRM_DEBUG_KMS("clamping display bpc (was %d) to eDP (%d)\n", display_bpc, edp_bpc);
++ display_bpc = edp_bpc;
++ }
++ continue;
++ }
++
+ /*
+ * HDMI is either 12 or 8, so if the display lets 10bpc sneak
+ * through, clamp it down. (Note: >12bpc will be caught below.)
--- /dev/null
+From 24bef66e74d647aebd34e0bef7693512b7912029 Mon Sep 17 00:00:00 2001
+From: Mauro Carvalho Chehab <mchehab@redhat.com>
+Date: Wed, 24 Oct 2012 10:30:01 -0200
+Subject: edac: Fix the dimm filling for csrows-based layouts
+
+From: Mauro Carvalho Chehab <mchehab@redhat.com>
+
+commit 24bef66e74d647aebd34e0bef7693512b7912029 upstream.
+
+The driver is currently filling data in a wrong way, on drivers
+for csrows-based memory controller, when the first layer is a
+csrow.
+
+This is not easily to notice, as, in general, memories are
+filed in dual, interleaved, symetric mode, as very few memory
+controllers support asymetric modes.
+
+While digging into a bug for i82795_edac driver, the asymetric
+mode there is now working, allowing us to fill the machine with
+4x1GB ranks at channel 0, and 2x512GB at channel 1:
+
+Channel 0 ranks:
+EDAC DEBUG: i82975x_init_csrows: DIMM A0: from page 0x00000000 to 0x0003ffff (size: 0x00040000 pages)
+EDAC DEBUG: i82975x_init_csrows: DIMM A1: from page 0x00040000 to 0x0007ffff (size: 0x00040000 pages)
+EDAC DEBUG: i82975x_init_csrows: DIMM A2: from page 0x00080000 to 0x000bffff (size: 0x00040000 pages)
+EDAC DEBUG: i82975x_init_csrows: DIMM A3: from page 0x000c0000 to 0x000fffff (size: 0x00040000 pages)
+
+Channel 1 ranks:
+EDAC DEBUG: i82975x_init_csrows: DIMM B0: from page 0x00100000 to 0x0011ffff (size: 0x00020000 pages)
+EDAC DEBUG: i82975x_init_csrows: DIMM B1: from page 0x00120000 to 0x0013ffff (size: 0x00020000 pages)
+
+Instead of properly showing the memories as such, before this patch, it
+shows the memory layout as:
+
+ +-----------------------------------+
+ | mc0 |
+ | csrow0 | csrow1 | csrow2 |
+----------+-----------------------------------+
+channel1: | 1024 MB | 1024 MB | 512 MB |
+channel0: | 1024 MB | 1024 MB | 512 MB |
+----------+-----------------------------------+
+
+as if both channels were symetric, grouping the DIMMs on a wrong
+layout.
+
+After this patch, the memory is correctly represented.
+So, for csrows at layers[0], it shows:
+
+ +-----------------------------------------------+
+ | mc0 |
+ | csrow0 | csrow1 | csrow2 | csrow3 |
+----------+-----------------------------------------------+
+channel1: | 512 MB | 512 MB | 0 MB | 0 MB |
+channel0: | 1024 MB | 1024 MB | 1024 MB | 1024 MB |
+----------+-----------------------------------------------+
+
+For csrows at layers[1], it shows:
+
+ +-----------------------+
+ | mc0 |
+ | channel0 | channel1 |
+--------+-----------------------+
+csrow3: | 1024 MB | 0 MB |
+csrow2: | 1024 MB | 0 MB |
+--------+-----------------------+
+csrow1: | 1024 MB | 512 MB |
+csrow0: | 1024 MB | 512 MB |
+--------+-----------------------+
+
+So, no matter of what comes first, the information between
+channel and csrow will be properly represented.
+
+Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
+Signed-off-by: CAI Qian <caiqian@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/edac/edac_mc.c | 14 +++++++++++---
+ 1 file changed, 11 insertions(+), 3 deletions(-)
+
+--- a/drivers/edac/edac_mc.c
++++ b/drivers/edac/edac_mc.c
+@@ -416,10 +416,18 @@ struct mem_ctl_info *edac_mc_alloc(unsig
+ dimm->cschannel = chn;
+
+ /* Increment csrow location */
+- row++;
+- if (row == tot_csrows) {
+- row = 0;
++ if (layers[0].is_virt_csrow) {
+ chn++;
++ if (chn == tot_channels) {
++ chn = 0;
++ row++;
++ }
++ } else {
++ row++;
++ if (row == tot_csrows) {
++ row = 0;
++ chn++;
++ }
+ }
+
+ /* Increment dimm location */
--- /dev/null
+From 479696840239e0cc43efb3c917bdcad2174d2215 Mon Sep 17 00:00:00 2001
+From: Mauro Carvalho Chehab <mchehab@redhat.com>
+Date: Mon, 15 Oct 2012 21:48:48 -0300
+Subject: i82975x_edac: Fix dimm label initialization
+
+From: Mauro Carvalho Chehab <mchehab@redhat.com>
+
+commit 479696840239e0cc43efb3c917bdcad2174d2215 upstream.
+
+The driver has only 4 hardcoded labels, but allows much more memory.
+Fix it by removing the hardcoded logic, using snprintf() instead.
+
+[ 19.833972] general protection fault: 0000 [#1] SMP
+[ 19.837733] Modules linked in: i82975x_edac(+) edac_core firewire_ohci firewire_core crc_itu_t nouveau mxm_wmi wmi video i2c_algo_bit drm_kms_helper ttm drm i2c_core
+[ 19.837733] CPU 0
+[ 19.837733] Pid: 390, comm: udevd Not tainted 3.6.1-1.fc17.x86_64.debug #1 Dell Inc. Precision WorkStation 390 /0MY510
+[ 19.837733] RIP: 0010:[<ffffffff813463a8>] [<ffffffff813463a8>] strncpy+0x18/0x30
+[ 19.837733] RSP: 0018:ffff880078535b68 EFLAGS: 00010202
+[ 19.837733] RAX: ffff880069fa9708 RBX: ffff880078588000 RCX: ffff880069fa9708
+[ 19.837733] RDX: 000000000000001f RSI: 5f706f5f63616465 RDI: ffff880069fa9708
+[ 19.837733] RBP: ffff880078535b68 R08: ffff880069fa9727 R09: 000000000000fffe
+[ 19.837733] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000003
+[ 19.837733] R13: 0000000000000000 R14: ffff880069fa9290 R15: ffff880079624a80
+[ 19.837733] FS: 00007f3de01ee840(0000) GS:ffff88007c400000(0000) knlGS:0000000000000000
+[ 19.837733] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
+[ 19.837733] CR2: 00007f3de00b9000 CR3: 0000000078dbc000 CR4: 00000000000007f0
+[ 19.837733] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
+[ 19.837733] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
+[ 19.837733] Process udevd (pid: 390, threadinfo ffff880078534000, task ffff880079642450)
+[ 19.837733] Stack:
+[ 19.837733] ffff880078535c18 ffffffffa017c6b8 00040000816d627f ffff880079624a88
+[ 19.837733] ffffc90004cd6000 ffff880079624520 ffff88007ac21148 0000000000000000
+[ 19.837733] 0000000000000000 0004000000000000 feda000078535bc8 ffffffff810d696d
+[ 19.837733] Call Trace:
+[ 19.837733] [<ffffffffa017c6b8>] i82975x_init_one+0x2e6/0x3e6 [i82975x_edac]
+...
+
+Fix bug reported at:
+ https://bugzilla.redhat.com/show_bug.cgi?id=848149
+And, very likely:
+ https://bbs.archlinux.org/viewtopic.php?id=148033
+ https://bugzilla.kernel.org/show_bug.cgi?id=47171
+
+Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
+Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
+Signed-off-by: CAI Qian <caiqian@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/edac/i82975x_edac.c | 11 ++++-------
+ 1 file changed, 4 insertions(+), 7 deletions(-)
+
+--- a/drivers/edac/i82975x_edac.c
++++ b/drivers/edac/i82975x_edac.c
+@@ -370,10 +370,6 @@ static enum dev_type i82975x_dram_type(v
+ static void i82975x_init_csrows(struct mem_ctl_info *mci,
+ struct pci_dev *pdev, void __iomem *mch_window)
+ {
+- static const char *labels[4] = {
+- "DIMM A1", "DIMM A2",
+- "DIMM B1", "DIMM B2"
+- };
+ struct csrow_info *csrow;
+ unsigned long last_cumul_size;
+ u8 value;
+@@ -423,9 +419,10 @@ static void i82975x_init_csrows(struct m
+ dimm = mci->csrows[index]->channels[chan]->dimm;
+
+ dimm->nr_pages = nr_pages / csrow->nr_channels;
+- strncpy(csrow->channels[chan]->dimm->label,
+- labels[(index >> 1) + (chan * 2)],
+- EDAC_MC_LABEL_LEN);
++
++ snprintf(csrow->channels[chan]->dimm->label, EDAC_MC_LABEL_LEN, "DIMM %c%d",
++ (chan == 0) ? 'A' : 'B',
++ index);
+ dimm->grain = 1 << 7; /* 128Byte cache-line resolution */
+ dimm->dtype = i82975x_dram_type(mch_window, index);
+ dimm->mtype = MEM_DDR2; /* I82975x supports only DDR2 */
--- /dev/null
+From 55220bb3e5f917dd5fee1153c612f9a83599f639 Mon Sep 17 00:00:00 2001
+From: Florian Fainelli <florian@openwrt.org>
+Date: Mon, 10 Dec 2012 12:25:32 -0800
+Subject: Input: matrix-keymap - provide proper module license
+
+From: Florian Fainelli <florian@openwrt.org>
+
+commit 55220bb3e5f917dd5fee1153c612f9a83599f639 upstream.
+
+The matrix-keymap module is currently lacking a proper module license,
+add one so we don't have this module tainting the entire kernel. This
+issue has been present since commit 1932811f426f ("Input: matrix-keymap
+- uninline and prepare for device tree support")
+
+Signed-off-by: Florian Fainelli <florian@openwrt.org>
+Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/input/matrix-keymap.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/drivers/input/matrix-keymap.c
++++ b/drivers/input/matrix-keymap.c
+@@ -23,6 +23,7 @@
+ #include <linux/input.h>
+ #include <linux/of.h>
+ #include <linux/export.h>
++#include <linux/module.h>
+ #include <linux/input/matrix_keypad.h>
+
+ static bool matrix_keypad_map_key(struct input_dev *input_dev,
+@@ -161,3 +162,5 @@ int matrix_keypad_build_keymap(const str
+ return 0;
+ }
+ EXPORT_SYMBOL(matrix_keypad_build_keymap);
++
++MODULE_LICENSE("GPL");
revert-misapplied-mmc-sh-mmcif-avoid-oops-on-spurious-interrupts.patch
mmc-sh-mmcif-avoid-oops-on-spurious-interrupts-second-try.patch
arm-7566-1-vfp-fix-save-and-restore-when-running-on-pre-vfpv3-and-config_vfpv3-set.patch
+asoc-dmaengine-correct-makefile-when-sound-is-built-as-module.patch
+staging-ipack-bridges-tpci200-avoid-kernel-bug-when-uninstalling-a-device.patch
+input-matrix-keymap-provide-proper-module-license.patch
+i82975x_edac-fix-dimm-label-initialization.patch
+edac-fix-the-dimm-filling-for-csrows-based-layouts.patch
+workqueue-convert-bug_on-s-in-__queue_delayed_work-to-warn_on_once-s.patch
+drm-i915-do-not-ignore-edp-bpc-settings-from-vbt.patch
+drm-i915-do-not-default-to-18-bpp-for-edp-if-missing-from-vbt.patch
--- /dev/null
+From 9e58d05a1b24d2c0471c3b4df8f473a7543d7647 Mon Sep 17 00:00:00 2001
+From: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
+Date: Fri, 20 Jul 2012 09:39:03 +0200
+Subject: Staging: ipack/bridges/tpci200: avoid kernel bug when uninstalling a device
+
+From: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
+
+commit 9e58d05a1b24d2c0471c3b4df8f473a7543d7647 upstream.
+
+Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/staging/ipack/bridges/tpci200.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/staging/ipack/bridges/tpci200.c
++++ b/drivers/staging/ipack/bridges/tpci200.c
+@@ -604,8 +604,8 @@ static int tpci200_slot_unregister(struc
+ if (mutex_lock_interruptible(&tpci200->mutex))
+ return -ERESTARTSYS;
+
+- ipack_device_unregister(dev);
+ tpci200->slots[dev->slot].dev = NULL;
++ ipack_device_unregister(dev);
+ mutex_unlock(&tpci200->mutex);
+
+ return 0;
--- /dev/null
+From fc4b514f2727f74a4587c31db87e0e93465518c3 Mon Sep 17 00:00:00 2001
+From: Tejun Heo <tj@kernel.org>
+Date: Tue, 4 Dec 2012 07:40:39 -0800
+Subject: workqueue: convert BUG_ON()s in __queue_delayed_work() to WARN_ON_ONCE()s
+
+From: Tejun Heo <tj@kernel.org>
+
+commit fc4b514f2727f74a4587c31db87e0e93465518c3 upstream.
+
+8852aac25e ("workqueue: mod_delayed_work_on() shouldn't queue timer on
+0 delay") unexpectedly uncovered a very nasty abuse of delayed_work in
+megaraid - it allocated work_struct, casted it to delayed_work and
+then pass that into queue_delayed_work().
+
+Previously, this was okay because 0 @delay short-circuited to
+queue_work() before doing anything with delayed_work. 8852aac25e
+moved 0 @delay test into __queue_delayed_work() after sanity check on
+delayed_work making megaraid trigger BUG_ON().
+
+Although megaraid is already fixed by c1d390d8e6 ("megaraid: fix
+BUG_ON() from incorrect use of delayed work"), this patch converts
+BUG_ON()s in __queue_delayed_work() to WARN_ON_ONCE()s so that such
+abusers, if there are more, trigger warning but don't crash the
+machine.
+
+Signed-off-by: Tejun Heo <tj@kernel.org>
+Cc: Xiaotian Feng <xtfeng@gmail.com>
+Signed-off-by: Shuah Khan <shuah.khan@hp.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ kernel/workqueue.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/kernel/workqueue.c
++++ b/kernel/workqueue.c
+@@ -1143,8 +1143,8 @@ int queue_delayed_work_on(int cpu, struc
+ if (!test_and_set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work))) {
+ unsigned int lcpu;
+
+- BUG_ON(timer_pending(timer));
+- BUG_ON(!list_empty(&work->entry));
++ WARN_ON_ONCE(timer_pending(timer));
++ WARN_ON_ONCE(!list_empty(&work->entry));
+
+ timer_stats_timer_set_start_info(&dwork->timer);
+