]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.11-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 15 Oct 2013 18:49:25 +0000 (11:49 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 15 Oct 2013 18:49:25 +0000 (11:49 -0700)
added patches:
0311-ALSA-hda-Fix-mono-speakers-and-headset-mic-on-Dell-V.patch
compiler-gcc4-add-quirk-for-asm-goto-miscompilation-bug.patch
drm-i915-fix-rps.vlv_work-initialization.patch
drm-i915-hsw-disable-l3-caching-of-atomic-memory-operations.patch
drm-i915-only-apply-dpms-to-the-encoder-if-enabled.patch
drm-radeon-dpm-off-by-one-in-si_set_mc_special_registers.patch
drm-radeon-fix-hw-contexts-for-sumo2-asics.patch
drm-radeon-fix-typo-in-cp-dma-register-headers.patch
drm-radeon-forever-loop-on-error-in-radeon_do_test_moves.patch

queue-3.11/0311-ALSA-hda-Fix-mono-speakers-and-headset-mic-on-Dell-V.patch [new file with mode: 0644]
queue-3.11/compiler-gcc4-add-quirk-for-asm-goto-miscompilation-bug.patch [new file with mode: 0644]
queue-3.11/drm-i915-fix-rps.vlv_work-initialization.patch [new file with mode: 0644]
queue-3.11/drm-i915-hsw-disable-l3-caching-of-atomic-memory-operations.patch [new file with mode: 0644]
queue-3.11/drm-i915-only-apply-dpms-to-the-encoder-if-enabled.patch [new file with mode: 0644]
queue-3.11/drm-radeon-dpm-off-by-one-in-si_set_mc_special_registers.patch [new file with mode: 0644]
queue-3.11/drm-radeon-fix-hw-contexts-for-sumo2-asics.patch [new file with mode: 0644]
queue-3.11/drm-radeon-fix-typo-in-cp-dma-register-headers.patch [new file with mode: 0644]
queue-3.11/drm-radeon-forever-loop-on-error-in-radeon_do_test_moves.patch [new file with mode: 0644]
queue-3.11/series

diff --git a/queue-3.11/0311-ALSA-hda-Fix-mono-speakers-and-headset-mic-on-Dell-V.patch b/queue-3.11/0311-ALSA-hda-Fix-mono-speakers-and-headset-mic-on-Dell-V.patch
new file mode 100644 (file)
index 0000000..6a573ed
--- /dev/null
@@ -0,0 +1,89 @@
+From 15c446e077c9f961528aa2bca781ce60ca12bd35 Mon Sep 17 00:00:00 2001
+From: David Henningsson <david.henningsson@canonical.com>
+Date: Mon, 7 Oct 2013 10:39:59 +0200
+Subject: ALSA: hda - Fix mono speakers and headset mic on Dell Vostro 5470
+
+From: David Henningsson <david.henningsson@canonical.com>
+
+This is a backport for stable. The original commit SHA is
+338cae565c53755de9f87d6a801517940d2d56f7.
+
+On this machine, DAC on node 0x03 seems to give mono output.
+
+Also, it needs additional patches for headset mic support.
+It supports CTIA style headsets only.
+
+Alsa-info available at the bug link below.
+
+BugLink: https://bugs.launchpad.net/bugs/1236228
+Signed-off-by: David Henningsson <david.henningsson@canonical.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ sound/pci/hda/patch_realtek.c |   27 +++++++++++++++++++++++++++
+ 1 file changed, 27 insertions(+)
+
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -3308,6 +3308,15 @@ static void alc269_fixup_limit_int_mic_b
+       }
+ }
++static void alc290_fixup_mono_speakers(struct hda_codec *codec,
++                                     const struct hda_fixup *fix, int action)
++{
++      if (action == HDA_FIXUP_ACT_PRE_PROBE)
++              /* Remove DAC node 0x03, as it seems to be
++                 giving mono output */
++              snd_hda_override_wcaps(codec, 0x03, 0);
++}
++
+ enum {
+       ALC269_FIXUP_SONY_VAIO,
+       ALC275_FIXUP_SONY_VAIO_GPIO2,
+@@ -3335,6 +3344,8 @@ enum {
+       ALC269_FIXUP_PINCFG_NO_HP_TO_LINEOUT,
+       ALC269_FIXUP_DELL1_MIC_NO_PRESENCE,
+       ALC269_FIXUP_DELL2_MIC_NO_PRESENCE,
++      ALC269_FIXUP_DELL3_MIC_NO_PRESENCE,
++      ALC290_FIXUP_MONO_SPEAKERS,
+       ALC269_FIXUP_HEADSET_MODE,
+       ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC,
+       ALC269_FIXUP_ASUS_X101_FUNC,
+@@ -3522,6 +3533,15 @@ static const struct hda_fixup alc269_fix
+               .chained = true,
+               .chain_id = ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC
+       },
++      [ALC269_FIXUP_DELL3_MIC_NO_PRESENCE] = {
++              .type = HDA_FIXUP_PINS,
++              .v.pins = (const struct hda_pintbl[]) {
++                      { 0x1a, 0x01a1913c }, /* use as headset mic, without its own jack detect */
++                      { }
++              },
++              .chained = true,
++              .chain_id = ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC
++      },
+       [ALC269_FIXUP_HEADSET_MODE] = {
+               .type = HDA_FIXUP_FUNC,
+               .v.func = alc_fixup_headset_mode,
+@@ -3603,6 +3623,12 @@ static const struct hda_fixup alc269_fix
+                       { }
+               },
+       },
++      [ALC290_FIXUP_MONO_SPEAKERS] = {
++              .type = HDA_FIXUP_FUNC,
++              .v.func = alc290_fixup_mono_speakers,
++              .chained = true,
++              .chain_id = ALC269_FIXUP_DELL3_MIC_NO_PRESENCE,
++      },
+ };
+ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
+@@ -3639,6 +3665,7 @@ static const struct snd_pci_quirk alc269
+       SND_PCI_QUIRK(0x1028, 0x0608, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE),
+       SND_PCI_QUIRK(0x1028, 0x0609, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE),
+       SND_PCI_QUIRK(0x1028, 0x0613, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE),
++      SND_PCI_QUIRK(0x1028, 0x0616, "Dell Vostro 5470", ALC290_FIXUP_MONO_SPEAKERS),
+       SND_PCI_QUIRK(0x1028, 0x15cc, "Dell X5 Precision", ALC269_FIXUP_DELL2_MIC_NO_PRESENCE),
+       SND_PCI_QUIRK(0x1028, 0x15cd, "Dell X5 Precision", ALC269_FIXUP_DELL2_MIC_NO_PRESENCE),
+       SND_PCI_QUIRK(0x103c, 0x1586, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC2),
diff --git a/queue-3.11/compiler-gcc4-add-quirk-for-asm-goto-miscompilation-bug.patch b/queue-3.11/compiler-gcc4-add-quirk-for-asm-goto-miscompilation-bug.patch
new file mode 100644 (file)
index 0000000..6ec4e8a
--- /dev/null
@@ -0,0 +1,158 @@
+From 3f0116c3238a96bc18ad4b4acefe4e7be32fa861 Mon Sep 17 00:00:00 2001
+From: Ingo Molnar <mingo@kernel.org>
+Date: Thu, 10 Oct 2013 10:16:30 +0200
+Subject: compiler/gcc4: Add quirk for 'asm goto' miscompilation bug
+
+From: Ingo Molnar <mingo@kernel.org>
+
+commit 3f0116c3238a96bc18ad4b4acefe4e7be32fa861 upstream.
+
+Fengguang Wu, Oleg Nesterov and Peter Zijlstra tracked down
+a kernel crash to a GCC bug: GCC miscompiles certain 'asm goto'
+constructs, as outlined here:
+
+  http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670
+
+Implement a workaround suggested by Jakub Jelinek.
+
+Reported-and-tested-by: Fengguang Wu <fengguang.wu@intel.com>
+Reported-by: Oleg Nesterov <oleg@redhat.com>
+Reported-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
+Suggested-by: Jakub Jelinek <jakub@redhat.com>
+Reviewed-by: Richard Henderson <rth@twiddle.net>
+Cc: Linus Torvalds <torvalds@linux-foundation.org>
+Cc: Andrew Morton <akpm@linux-foundation.org>
+Link: http://lkml.kernel.org/r/20131015062351.GA4666@gmail.com
+Signed-off-by: Ingo Molnar <mingo@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/arm/include/asm/jump_label.h     |    2 +-
+ arch/mips/include/asm/jump_label.h    |    2 +-
+ arch/powerpc/include/asm/jump_label.h |    2 +-
+ arch/s390/include/asm/jump_label.h    |    2 +-
+ arch/sparc/include/asm/jump_label.h   |    2 +-
+ arch/x86/include/asm/cpufeature.h     |    6 +++---
+ arch/x86/include/asm/jump_label.h     |    2 +-
+ include/linux/compiler-gcc4.h         |   15 +++++++++++++++
+ 8 files changed, 24 insertions(+), 9 deletions(-)
+
+--- a/arch/arm/include/asm/jump_label.h
++++ b/arch/arm/include/asm/jump_label.h
+@@ -16,7 +16,7 @@
+ static __always_inline bool arch_static_branch(struct static_key *key)
+ {
+-      asm goto("1:\n\t"
++      asm_volatile_goto("1:\n\t"
+                JUMP_LABEL_NOP "\n\t"
+                ".pushsection __jump_table,  \"aw\"\n\t"
+                ".word 1b, %l[l_yes], %c0\n\t"
+--- a/arch/mips/include/asm/jump_label.h
++++ b/arch/mips/include/asm/jump_label.h
+@@ -22,7 +22,7 @@
+ static __always_inline bool arch_static_branch(struct static_key *key)
+ {
+-      asm goto("1:\tnop\n\t"
++      asm_volatile_goto("1:\tnop\n\t"
+               "nop\n\t"
+               ".pushsection __jump_table,  \"aw\"\n\t"
+               WORD_INSN " 1b, %l[l_yes], %0\n\t"
+--- a/arch/powerpc/include/asm/jump_label.h
++++ b/arch/powerpc/include/asm/jump_label.h
+@@ -19,7 +19,7 @@
+ static __always_inline bool arch_static_branch(struct static_key *key)
+ {
+-      asm goto("1:\n\t"
++      asm_volatile_goto("1:\n\t"
+                "nop\n\t"
+                ".pushsection __jump_table,  \"aw\"\n\t"
+                JUMP_ENTRY_TYPE "1b, %l[l_yes], %c0\n\t"
+--- a/arch/s390/include/asm/jump_label.h
++++ b/arch/s390/include/asm/jump_label.h
+@@ -15,7 +15,7 @@
+ static __always_inline bool arch_static_branch(struct static_key *key)
+ {
+-      asm goto("0:    brcl 0,0\n"
++      asm_volatile_goto("0:   brcl 0,0\n"
+               ".pushsection __jump_table, \"aw\"\n"
+               ASM_ALIGN "\n"
+               ASM_PTR " 0b, %l[label], %0\n"
+--- a/arch/sparc/include/asm/jump_label.h
++++ b/arch/sparc/include/asm/jump_label.h
+@@ -9,7 +9,7 @@
+ static __always_inline bool arch_static_branch(struct static_key *key)
+ {
+-              asm goto("1:\n\t"
++              asm_volatile_goto("1:\n\t"
+                        "nop\n\t"
+                        "nop\n\t"
+                        ".pushsection __jump_table,  \"aw\"\n\t"
+--- a/arch/x86/include/asm/cpufeature.h
++++ b/arch/x86/include/asm/cpufeature.h
+@@ -373,7 +373,7 @@ static __always_inline __pure bool __sta
+                * Catch too early usage of this before alternatives
+                * have run.
+                */
+-              asm goto("1: jmp %l[t_warn]\n"
++              asm_volatile_goto("1: jmp %l[t_warn]\n"
+                        "2:\n"
+                        ".section .altinstructions,\"a\"\n"
+                        " .long 1b - .\n"
+@@ -386,7 +386,7 @@ static __always_inline __pure bool __sta
+                        : : "i" (X86_FEATURE_ALWAYS) : : t_warn);
+ #endif
+-              asm goto("1: jmp %l[t_no]\n"
++              asm_volatile_goto("1: jmp %l[t_no]\n"
+                        "2:\n"
+                        ".section .altinstructions,\"a\"\n"
+                        " .long 1b - .\n"
+@@ -448,7 +448,7 @@ static __always_inline __pure bool _stat
+  * have. Thus, we force the jump to the widest, 4-byte, signed relative
+  * offset even though the last would often fit in less bytes.
+  */
+-              asm goto("1: .byte 0xe9\n .long %l[t_dynamic] - 2f\n"
++              asm_volatile_goto("1: .byte 0xe9\n .long %l[t_dynamic] - 2f\n"
+                        "2:\n"
+                        ".section .altinstructions,\"a\"\n"
+                        " .long 1b - .\n"              /* src offset */
+--- a/arch/x86/include/asm/jump_label.h
++++ b/arch/x86/include/asm/jump_label.h
+@@ -13,7 +13,7 @@
+ static __always_inline bool arch_static_branch(struct static_key *key)
+ {
+-      asm goto("1:"
++      asm_volatile_goto("1:"
+               STATIC_KEY_INITIAL_NOP
+               ".pushsection __jump_table,  \"aw\" \n\t"
+               _ASM_ALIGN "\n\t"
+--- a/include/linux/compiler-gcc4.h
++++ b/include/linux/compiler-gcc4.h
+@@ -65,6 +65,21 @@
+ #define __visible __attribute__((externally_visible))
+ #endif
++/*
++ * GCC 'asm goto' miscompiles certain code sequences:
++ *
++ *   http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670
++ *
++ * Work it around via a compiler barrier quirk suggested by Jakub Jelinek.
++ * Fixed in GCC 4.8.2 and later versions.
++ *
++ * (asm goto is automatically volatile - the naming reflects this.)
++ */
++#if GCC_VERSION <= 40801
++# define asm_volatile_goto(x...)      do { asm goto(x); asm (""); } while (0)
++#else
++# define asm_volatile_goto(x...)      do { asm goto(x); } while (0)
++#endif
+ #ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP
+ #if GCC_VERSION >= 40400
diff --git a/queue-3.11/drm-i915-fix-rps.vlv_work-initialization.patch b/queue-3.11/drm-i915-fix-rps.vlv_work-initialization.patch
new file mode 100644 (file)
index 0000000..1b860fc
--- /dev/null
@@ -0,0 +1,65 @@
+From 671952a2a290a90017c64e75b7dd0343b0d005b4 Mon Sep 17 00:00:00 2001
+From: Imre Deak <imre.deak@intel.com>
+Date: Tue, 1 Oct 2013 18:11:26 +0300
+Subject: drm/i915: fix rps.vlv_work initialization
+
+From: Imre Deak <imre.deak@intel.com>
+
+commit 671952a2a290a90017c64e75b7dd0343b0d005b4 upstream.
+
+During driver loading we are initializing rps.vlv_work in
+valleyview_enable_rps() via the rps.delayed_resume_work delayed work.
+This is too late since we are using vlv_work already via
+i915_driver_load()->intel_uncore_sanitize()->
+intel_disable_gt_powersave(). This at least leads to the following
+kernel warning:
+
+ INFO: trying to register non-static key.
+ the code is fine but needs lockdep annotation.
+ turning off the locking correctness validator.
+
+Fix this by initialzing vlv_work before we call intel_uncore_sanitize().
+
+The regression was introduced in
+
+commit 7dcd2677ea912573d9ed4bcd629b0023b2d11505
+Author: Konstantin Khlebnikov <khlebnikov@openvz.org>
+Date:   Wed Jul 17 10:22:58 2013 +0400
+
+    drm/i915: fix long-standing SNB regression in power consumption
+    after resume
+
+though there was no good reason to initialize the static vlv_work from
+another delayed work to begin with (especially since this will happen
+multiple times).
+
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=69397
+Tested-by: shui yangwei <yangweix.shui@intel.com>
+Signed-off-by: Imre Deak <imre.deak@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_pm.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/gpu/drm/i915/intel_pm.c
++++ b/drivers/gpu/drm/i915/intel_pm.c
+@@ -3603,8 +3603,6 @@ static void valleyview_enable_rps(struct
+                                     dev_priv->rps.rpe_delay),
+                        dev_priv->rps.rpe_delay);
+-      INIT_DELAYED_WORK(&dev_priv->rps.vlv_work, vlv_rps_timer_work);
+-
+       valleyview_set_rps(dev_priv->dev, dev_priv->rps.rpe_delay);
+       /* requires MSI enabled */
+@@ -5567,6 +5565,8 @@ void intel_pm_init(struct drm_device *de
+       INIT_DELAYED_WORK(&dev_priv->rps.delayed_resume_work,
+                         intel_gen6_powersave_work);
++
++      INIT_DELAYED_WORK(&dev_priv->rps.vlv_work, vlv_rps_timer_work);
+ }
+ int sandybridge_pcode_read(struct drm_i915_private *dev_priv, u8 mbox, u32 *val)
diff --git a/queue-3.11/drm-i915-hsw-disable-l3-caching-of-atomic-memory-operations.patch b/queue-3.11/drm-i915-hsw-disable-l3-caching-of-atomic-memory-operations.patch
new file mode 100644 (file)
index 0000000..3f8f069
--- /dev/null
@@ -0,0 +1,62 @@
+From f3fc4884ebe6ae649d3723be14b219230d3b7fd2 Mon Sep 17 00:00:00 2001
+From: Francisco Jerez <currojerez@riseup.net>
+Date: Wed, 2 Oct 2013 15:53:16 -0700
+Subject: drm/i915/hsw: Disable L3 caching of atomic memory operations.
+
+From: Francisco Jerez <currojerez@riseup.net>
+
+commit f3fc4884ebe6ae649d3723be14b219230d3b7fd2 upstream.
+
+Otherwise using any atomic memory operation will lock up the GPU due
+to a Haswell hardware bug.
+
+v2: Use the _MASKED_BIT_ENABLE macro.  Drop drm parameter definition.
+
+Signed-off-by: Francisco Jerez <currojerez@riseup.net>
+Reviewed-by: Ben Widawsky <ben@bwidawsk.net>
+Cc: Daniel Vetter <daniel@ffwll.ch>
+[danvet: Fix checkpatch fail.]
+Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/i915/i915_reg.h |    6 ++++++
+ drivers/gpu/drm/i915/intel_pm.c |    5 +++++
+ 2 files changed, 11 insertions(+)
+
+--- a/drivers/gpu/drm/i915/i915_reg.h
++++ b/drivers/gpu/drm/i915/i915_reg.h
+@@ -3791,6 +3791,9 @@
+ #define GEN7_SQ_CHICKEN_MBCUNIT_CONFIG                0x9030
+ #define  GEN7_SQ_CHICKEN_MBCUNIT_SQINTMOB     (1<<11)
++#define HSW_SCRATCH1                          0xb038
++#define  HSW_SCRATCH1_L3_DATA_ATOMICS_DISABLE (1<<27)
++
+ #define HSW_FUSE_STRAP                0x42014
+ #define  HSW_CDCLK_LIMIT      (1 << 24)
+@@ -4624,6 +4627,9 @@
+ #define GEN7_ROW_CHICKEN2_GT2         0xf4f4
+ #define   DOP_CLOCK_GATING_DISABLE    (1<<0)
++#define HSW_ROW_CHICKEN3              0xe49c
++#define  HSW_ROW_CHICKEN3_L3_GLOBAL_ATOMICS_DISABLE    (1 << 6)
++
+ #define G4X_AUD_VID_DID                       (dev_priv->info->display_mmio_offset + 0x62020)
+ #define INTEL_AUDIO_DEVCL             0x808629FB
+ #define INTEL_AUDIO_DEVBLC            0x80862801
+--- a/drivers/gpu/drm/i915/intel_pm.c
++++ b/drivers/gpu/drm/i915/intel_pm.c
+@@ -4699,6 +4699,11 @@ static void haswell_init_clock_gating(st
+       I915_WRITE(GEN7_L3_CHICKEN_MODE_REGISTER,
+                       GEN7_WA_L3_CHICKEN_MODE);
++      /* L3 caching of data atomics doesn't work -- disable it. */
++      I915_WRITE(HSW_SCRATCH1, HSW_SCRATCH1_L3_DATA_ATOMICS_DISABLE);
++      I915_WRITE(HSW_ROW_CHICKEN3,
++                 _MASKED_BIT_ENABLE(HSW_ROW_CHICKEN3_L3_GLOBAL_ATOMICS_DISABLE));
++
+       /* This is required by WaCatErrorRejectionIssue:hsw */
+       I915_WRITE(GEN7_SQ_CHICKEN_MBCUNIT_CONFIG,
+                       I915_READ(GEN7_SQ_CHICKEN_MBCUNIT_CONFIG) |
diff --git a/queue-3.11/drm-i915-only-apply-dpms-to-the-encoder-if-enabled.patch b/queue-3.11/drm-i915-only-apply-dpms-to-the-encoder-if-enabled.patch
new file mode 100644 (file)
index 0000000..e7c74f3
--- /dev/null
@@ -0,0 +1,97 @@
+From c9976dcf55c8aaa7037427b239f15e5acfc01a3a Mon Sep 17 00:00:00 2001
+From: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun, 29 Sep 2013 19:15:07 +0100
+Subject: drm/i915: Only apply DPMS to the encoder if enabled
+
+From: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit c9976dcf55c8aaa7037427b239f15e5acfc01a3a upstream.
+
+The current test for an attached enabled encoder fails if we have
+multiple connectors aliased to the same encoder - both connectors
+believe they own the enabled encoder and so we attempt to both enable
+and disable DPMS on the encoder, leading to hilarity and an OOPs:
+
+[  354.803064] WARNING: CPU: 0 PID: 482 at
+/usr/src/linux/dist/3.11.2/drivers/gpu/drm/i915/intel_display.c:3869 intel_modeset_check_state+0x764/0x770 [i915]()
+[  354.803064] wrong connector dpms state
+[  354.803084] Modules linked in: nfsd auth_rpcgss oid_registry exportfs nfs lockd sunrpc xt_nat iptable_nat nf_nat_ipv4 nf_nat xt_limit xt_LOG xt_tcpudp nf_conntrack_ipv4 nf_defrag_ipv4 ipt_REJECT ipv6 xt_recent xt_conntrack nf_conntrack iptable_filter ip_tables x_tables snd_hda_codec_realtek snd_hda_codec_hdmi x86_pkg_temp_thermal snd_hda_intel coretemp kvm_intel snd_hda_codec i915 kvm snd_hwdep snd_pcm_oss snd_mixer_oss crc32_pclmul snd_pcm crc32c_intel e1000e intel_agp igb ghash_clmulni_intel intel_gtt aesni_intel cfbfillrect aes_x86_64 cfbimgblt lrw cfbcopyarea drm_kms_helper ptp video thermal processor gf128mul snd_page_alloc drm snd_timer glue_helper 8250_pci snd pps_core ablk_helper agpgart cryptd sg soundcore fan i2c_algo_bit sr_mod thermal_sys 8250 i2c_i801 serial_core
+hwmon cdrom i2c_core evdev button
+[  354.803086] CPU: 0 PID: 482 Comm: kworker/0:1 Not tainted 3.11.2 #1
+[  354.803087] Hardware name: Supermicro X10SAE/X10SAE, BIOS 1.00 05/03/2013 [  354.803091] Workqueue: events console_callback
+[  354.803092]  0000000000000009 ffff88023611db48 ffffffff814048ac ffff88023611db90
+[  354.803093]  ffff88023611db80 ffffffff8103d4e3 ffff880230d82800 ffff880230f9b800
+[  354.803094]  ffff880230f99000 ffff880230f99448 ffff8802351c0e00 ffff88023611dbe0
+[  354.803094] Call Trace:
+[  354.803098]  [<ffffffff814048ac>] dump_stack+0x54/0x8d
+[  354.803101]  [<ffffffff8103d4e3>] warn_slowpath_common+0x73/0x90
+[  354.803103]  [<ffffffff8103d547>] warn_slowpath_fmt+0x47/0x50
+[  354.803109]  [<ffffffffa089f1be>] ? intel_ddi_connector_get_hw_state+0x5e/0x110 [i915]
+[  354.803114]  [<ffffffffa0896974>] intel_modeset_check_state+0x764/0x770 [i915]
+[  354.803117]  [<ffffffffa08969bb>] intel_connector_dpms+0x3b/0x60 [i915]
+[  354.803120]  [<ffffffffa037e1d0>] drm_fb_helper_dpms.isra.11+0x120/0x160 [drm_kms_helper]
+[  354.803122]  [<ffffffffa037e24e>] drm_fb_helper_blank+0x3e/0x80 [drm_kms_helper]
+[  354.803123]  [<ffffffff812116c2>] fb_blank+0x52/0xc0
+[  354.803125]  [<ffffffff8121e04b>] fbcon_blank+0x21b/0x2d0
+[  354.803127]  [<ffffffff81062243>] ? update_rq_clock.part.74+0x13/0x30
+[  354.803129]  [<ffffffff81047486>] ? lock_timer_base.isra.30+0x26/0x50
+[  354.803130]  [<ffffffff810472b2>] ? internal_add_timer+0x12/0x40
+[  354.803131]  [<ffffffff81047f48>] ? mod_timer+0xf8/0x1c0
+[  354.803133]  [<ffffffff81266d61>] do_unblank_screen+0xa1/0x1c0
+[  354.803134]  [<ffffffff81268087>] poke_blanked_console+0xc7/0xd0
+[  354.803136]  [<ffffffff812681cf>] console_callback+0x13f/0x160
+[  354.803137]  [<ffffffff81053258>] process_one_work+0x148/0x3d0
+[  354.803138]  [<ffffffff81053f19>] worker_thread+0x119/0x3a0
+[  354.803140]  [<ffffffff81053e00>] ? manage_workers.isra.30+0x2a0/0x2a0
+[  354.803141]  [<ffffffff8105994b>] kthread+0xbb/0xc0
+[  354.803142]  [<ffffffff81059890>] ? kthread_create_on_node+0x120/0x120
+[  354.803144]  [<ffffffff8140b32c>] ret_from_fork+0x7c/0xb0
+[  354.803145]  [<ffffffff81059890>] ? kthread_create_on_node+0x120/0x120
+
+This regression goes back to the big modeset rework and the conversion
+to the new dpms helpers which started with:
+
+commit 5ab432ef4997ce32c9406721b37ef6e97e57dae1
+Author: Daniel Vetter <daniel.vetter@ffwll.ch>
+Date:   Sat Jun 30 08:59:56 2012 +0200
+
+    drm/i915/hdmi: convert to encoder->disable/enable
+
+Fixes: igt/kms_flip/dpms-off-confusion
+Reported-and-tested-by: Wakko Warner <wakko@animx.eu.org>
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=68030
+Link:  http://lkml.kernel.org/r/20130928185023.GA21672@animx.eu.org
+Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+[danvet: Add regression citation, mention the igt testcase this fixes
+and slap a cc: stable on the patch.]
+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 |    8 ++------
+ 1 file changed, 2 insertions(+), 6 deletions(-)
+
+--- a/drivers/gpu/drm/i915/intel_display.c
++++ b/drivers/gpu/drm/i915/intel_display.c
+@@ -3890,8 +3890,6 @@ static void intel_connector_check_state(
+  * consider. */
+ void intel_connector_dpms(struct drm_connector *connector, int mode)
+ {
+-      struct intel_encoder *encoder = intel_attached_encoder(connector);
+-
+       /* All the simple cases only support two dpms states. */
+       if (mode != DRM_MODE_DPMS_ON)
+               mode = DRM_MODE_DPMS_OFF;
+@@ -3902,10 +3900,8 @@ void intel_connector_dpms(struct drm_con
+       connector->dpms = mode;
+       /* Only need to change hw state when actually enabled */
+-      if (encoder->base.crtc)
+-              intel_encoder_dpms(encoder, mode);
+-      else
+-              WARN_ON(encoder->connectors_active != false);
++      if (connector->encoder)
++              intel_encoder_dpms(to_intel_encoder(connector->encoder), mode);
+       intel_modeset_check_state(connector->dev);
+ }
diff --git a/queue-3.11/drm-radeon-dpm-off-by-one-in-si_set_mc_special_registers.patch b/queue-3.11/drm-radeon-dpm-off-by-one-in-si_set_mc_special_registers.patch
new file mode 100644 (file)
index 0000000..375663a
--- /dev/null
@@ -0,0 +1,50 @@
+From 5fd9c581862a4874c0bdaf16231d8873832bbb99 Mon Sep 17 00:00:00 2001
+From: Dan Carpenter <dan.carpenter@oracle.com>
+Date: Sat, 28 Sep 2013 12:35:31 +0300
+Subject: drm/radeon/dpm: off by one in si_set_mc_special_registers()
+
+From: Dan Carpenter <dan.carpenter@oracle.com>
+
+commit 5fd9c581862a4874c0bdaf16231d8873832bbb99 upstream.
+
+These checks should be ">=" instead of ">".  j is used as an offset into
+the table->mc_reg_address[] array and that has
+SMC_SISLANDS_MC_REGISTER_ARRAY_SIZE (16) elements.
+
+Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/radeon/si_dpm.c |    6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- a/drivers/gpu/drm/radeon/si_dpm.c
++++ b/drivers/gpu/drm/radeon/si_dpm.c
+@@ -5174,7 +5174,7 @@ static int si_set_mc_special_registers(s
+                                       table->mc_reg_table_entry[k].mc_data[j] |= 0x100;
+                       }
+                       j++;
+-                      if (j > SMC_SISLANDS_MC_REGISTER_ARRAY_SIZE)
++                      if (j >= SMC_SISLANDS_MC_REGISTER_ARRAY_SIZE)
+                               return -EINVAL;
+                       if (!pi->mem_gddr5) {
+@@ -5184,7 +5184,7 @@ static int si_set_mc_special_registers(s
+                                       table->mc_reg_table_entry[k].mc_data[j] =
+                                               (table->mc_reg_table_entry[k].mc_data[i] & 0xffff0000) >> 16;
+                               j++;
+-                              if (j > SMC_SISLANDS_MC_REGISTER_ARRAY_SIZE)
++                              if (j >= SMC_SISLANDS_MC_REGISTER_ARRAY_SIZE)
+                                       return -EINVAL;
+                       }
+                       break;
+@@ -5197,7 +5197,7 @@ static int si_set_mc_special_registers(s
+                                       (temp_reg & 0xffff0000) |
+                                       (table->mc_reg_table_entry[k].mc_data[i] & 0x0000ffff);
+                       j++;
+-                      if (j > SMC_SISLANDS_MC_REGISTER_ARRAY_SIZE)
++                      if (j >= SMC_SISLANDS_MC_REGISTER_ARRAY_SIZE)
+                               return -EINVAL;
+                       break;
+               default:
diff --git a/queue-3.11/drm-radeon-fix-hw-contexts-for-sumo2-asics.patch b/queue-3.11/drm-radeon-fix-hw-contexts-for-sumo2-asics.patch
new file mode 100644 (file)
index 0000000..8a1b31c
--- /dev/null
@@ -0,0 +1,33 @@
+From 50b8f5aec04ebec7dbdf2adb17220b9148c99e63 Mon Sep 17 00:00:00 2001
+From: wojciech kapuscinski <wojtask9@wp.pl>
+Date: Tue, 1 Oct 2013 19:54:33 -0400
+Subject: drm/radeon: fix hw contexts for SUMO2 asics
+
+From: wojciech kapuscinski <wojtask9@wp.pl>
+
+commit 50b8f5aec04ebec7dbdf2adb17220b9148c99e63 upstream.
+
+They have 4 rather than 8.
+
+Fixes:
+https://bugs.freedesktop.org/show_bug.cgi?id=63599
+
+Signed-off-by: wojciech kapuscinski <wojtask9@wp.pl>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/radeon/evergreen.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/gpu/drm/radeon/evergreen.c
++++ b/drivers/gpu/drm/radeon/evergreen.c
+@@ -3126,7 +3126,7 @@ static void evergreen_gpu_init(struct ra
+               rdev->config.evergreen.sx_max_export_size = 256;
+               rdev->config.evergreen.sx_max_export_pos_size = 64;
+               rdev->config.evergreen.sx_max_export_smx_size = 192;
+-              rdev->config.evergreen.max_hw_contexts = 8;
++              rdev->config.evergreen.max_hw_contexts = 4;
+               rdev->config.evergreen.sq_num_cf_insts = 2;
+               rdev->config.evergreen.sc_prim_fifo_size = 0x40;
diff --git a/queue-3.11/drm-radeon-fix-typo-in-cp-dma-register-headers.patch b/queue-3.11/drm-radeon-fix-typo-in-cp-dma-register-headers.patch
new file mode 100644 (file)
index 0000000..15466f8
--- /dev/null
@@ -0,0 +1,71 @@
+From aa3e146d04b6ae37939daeebaec060562b3db559 Mon Sep 17 00:00:00 2001
+From: Alex Deucher <alexander.deucher@amd.com>
+Date: Tue, 1 Oct 2013 16:40:45 -0400
+Subject: drm/radeon: fix typo in CP DMA register headers
+
+From: Alex Deucher <alexander.deucher@amd.com>
+
+commit aa3e146d04b6ae37939daeebaec060562b3db559 upstream.
+
+Wrong bit offset for SRC endian swapping.
+
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/radeon/evergreend.h |    4 ++--
+ drivers/gpu/drm/radeon/r600d.h      |    2 +-
+ drivers/gpu/drm/radeon/sid.h        |    4 ++--
+ 3 files changed, 5 insertions(+), 5 deletions(-)
+
+--- a/drivers/gpu/drm/radeon/evergreend.h
++++ b/drivers/gpu/drm/radeon/evergreend.h
+@@ -1494,7 +1494,7 @@
+  * 6. COMMAND [29:22] | BYTE_COUNT [20:0]
+  */
+ #              define PACKET3_CP_DMA_DST_SEL(x)    ((x) << 20)
+-                /* 0 - SRC_ADDR
++                /* 0 - DST_ADDR
+                * 1 - GDS
+                */
+ #              define PACKET3_CP_DMA_ENGINE(x)     ((x) << 27)
+@@ -1509,7 +1509,7 @@
+ #              define PACKET3_CP_DMA_CP_SYNC       (1 << 31)
+ /* COMMAND */
+ #              define PACKET3_CP_DMA_DIS_WC        (1 << 21)
+-#              define PACKET3_CP_DMA_CMD_SRC_SWAP(x) ((x) << 23)
++#              define PACKET3_CP_DMA_CMD_SRC_SWAP(x) ((x) << 22)
+                 /* 0 - none
+                * 1 - 8 in 16
+                * 2 - 8 in 32
+--- a/drivers/gpu/drm/radeon/r600d.h
++++ b/drivers/gpu/drm/radeon/r600d.h
+@@ -1487,7 +1487,7 @@
+  */
+ #              define PACKET3_CP_DMA_CP_SYNC       (1 << 31)
+ /* COMMAND */
+-#              define PACKET3_CP_DMA_CMD_SRC_SWAP(x) ((x) << 23)
++#              define PACKET3_CP_DMA_CMD_SRC_SWAP(x) ((x) << 22)
+                 /* 0 - none
+                * 1 - 8 in 16
+                * 2 - 8 in 32
+--- a/drivers/gpu/drm/radeon/sid.h
++++ b/drivers/gpu/drm/radeon/sid.h
+@@ -1490,7 +1490,7 @@
+  * 6. COMMAND [30:21] | BYTE_COUNT [20:0]
+  */
+ #              define PACKET3_CP_DMA_DST_SEL(x)    ((x) << 20)
+-                /* 0 - SRC_ADDR
++                /* 0 - DST_ADDR
+                * 1 - GDS
+                */
+ #              define PACKET3_CP_DMA_ENGINE(x)     ((x) << 27)
+@@ -1505,7 +1505,7 @@
+ #              define PACKET3_CP_DMA_CP_SYNC       (1 << 31)
+ /* COMMAND */
+ #              define PACKET3_CP_DMA_DIS_WC        (1 << 21)
+-#              define PACKET3_CP_DMA_CMD_SRC_SWAP(x) ((x) << 23)
++#              define PACKET3_CP_DMA_CMD_SRC_SWAP(x) ((x) << 22)
+                 /* 0 - none
+                * 1 - 8 in 16
+                * 2 - 8 in 32
diff --git a/queue-3.11/drm-radeon-forever-loop-on-error-in-radeon_do_test_moves.patch b/queue-3.11/drm-radeon-forever-loop-on-error-in-radeon_do_test_moves.patch
new file mode 100644 (file)
index 0000000..6256b6d
--- /dev/null
@@ -0,0 +1,36 @@
+From 89cd67b326fa95872cc2b4524cd807128db6071d Mon Sep 17 00:00:00 2001
+From: Dan Carpenter <dan.carpenter@oracle.com>
+Date: Mon, 1 Jul 2013 19:39:34 +0300
+Subject: drm/radeon: forever loop on error in radeon_do_test_moves()
+
+From: Dan Carpenter <dan.carpenter@oracle.com>
+
+commit 89cd67b326fa95872cc2b4524cd807128db6071d upstream.
+
+The error path does this:
+
+       for (--i; i >= 0; --i) {
+
+which is a forever loop because "i" is unsigned.
+
+Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/radeon/radeon_test.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/gpu/drm/radeon/radeon_test.c
++++ b/drivers/gpu/drm/radeon/radeon_test.c
+@@ -36,8 +36,8 @@ static void radeon_do_test_moves(struct
+       struct radeon_bo *vram_obj = NULL;
+       struct radeon_bo **gtt_obj = NULL;
+       uint64_t gtt_addr, vram_addr;
+-      unsigned i, n, size;
+-      int r, ring;
++      unsigned n, size;
++      int i, r, ring;
+       switch (flag) {
+       case RADEON_TEST_COPY_DMA:
index 8f76e3e6d486c896451e06909ce93690f3b079d1..56c3201fe74b74e17b19cbf13f29dde4fe6d3eaa 100644 (file)
@@ -20,3 +20,12 @@ watchdog-ts72xx_wdt-locking-bug-in-ioctl.patch
 watchdog-kempld_wdt-fix-bit-mask-definition.patch
 mips-stack-protector-fix-per-task-canary-switch.patch
 drm-radeon-dpm-btc-off-by-one-in-btc_set_mc_special_registers.patch
+compiler-gcc4-add-quirk-for-asm-goto-miscompilation-bug.patch
+0311-ALSA-hda-Fix-mono-speakers-and-headset-mic-on-Dell-V.patch
+drm-i915-hsw-disable-l3-caching-of-atomic-memory-operations.patch
+drm-i915-only-apply-dpms-to-the-encoder-if-enabled.patch
+drm-i915-fix-rps.vlv_work-initialization.patch
+drm-radeon-dpm-off-by-one-in-si_set_mc_special_registers.patch
+drm-radeon-forever-loop-on-error-in-radeon_do_test_moves.patch
+drm-radeon-fix-typo-in-cp-dma-register-headers.patch
+drm-radeon-fix-hw-contexts-for-sumo2-asics.patch