From d387b6ace0e01779d08174a594622f9f32e83a01 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 10 Feb 2014 16:31:27 -0800 Subject: [PATCH] 3.10-stable patches added patches: drm-cirrus-correct-register-values-for-16bpp.patch drm-i915-fix-the-offset-issue-for-the-stolen-gem-objects.patch drm-i915-flush-outstanding-requests-before-allocating-new-seqno.patch drm-i915-vlv2-fix-hotplug-detect-bits.patch drm-mgag200-fix-typo-causing-bw-limits-to-be-ignored-on-some-chips.patch drm-nouveau-fix-m2mf-copy-to-tiled-gart.patch i2c-i801-smbus-patch-for-intel-coleto-creek-deviceids.patch i915-remove-pm_qos-request-on-error.patch mfd-lpc_ich-add-support-for-intel-avoton-soc.patch mfd-lpc_ich-itco_wdt-patch-for-intel-coleto-creek-deviceids.patch --- ...us-correct-register-values-for-16bpp.patch | 39 +++++++ ...set-issue-for-the-stolen-gem-objects.patch | 42 ++++++++ ...requests-before-allocating-new-seqno.patch | 78 ++++++++++++++ ...rm-i915-vlv2-fix-hotplug-detect-bits.patch | 100 ++++++++++++++++++ ...w-limits-to-be-ignored-on-some-chips.patch | 36 +++++++ ...-nouveau-fix-m2mf-copy-to-tiled-gart.patch | 96 +++++++++++++++++ ...tch-for-intel-coleto-creek-deviceids.patch | 68 ++++++++++++ .../i915-remove-pm_qos-request-on-error.patch | 49 +++++++++ ...ich-add-support-for-intel-avoton-soc.patch | 61 +++++++++++ ...tch-for-intel-coleto-creek-deviceids.patch | 58 ++++++++++ queue-3.10/series | 10 ++ 11 files changed, 637 insertions(+) create mode 100644 queue-3.10/drm-cirrus-correct-register-values-for-16bpp.patch create mode 100644 queue-3.10/drm-i915-fix-the-offset-issue-for-the-stolen-gem-objects.patch create mode 100644 queue-3.10/drm-i915-flush-outstanding-requests-before-allocating-new-seqno.patch create mode 100644 queue-3.10/drm-i915-vlv2-fix-hotplug-detect-bits.patch create mode 100644 queue-3.10/drm-mgag200-fix-typo-causing-bw-limits-to-be-ignored-on-some-chips.patch create mode 100644 queue-3.10/drm-nouveau-fix-m2mf-copy-to-tiled-gart.patch create mode 100644 queue-3.10/i2c-i801-smbus-patch-for-intel-coleto-creek-deviceids.patch create mode 100644 queue-3.10/i915-remove-pm_qos-request-on-error.patch create mode 100644 queue-3.10/mfd-lpc_ich-add-support-for-intel-avoton-soc.patch create mode 100644 queue-3.10/mfd-lpc_ich-itco_wdt-patch-for-intel-coleto-creek-deviceids.patch diff --git a/queue-3.10/drm-cirrus-correct-register-values-for-16bpp.patch b/queue-3.10/drm-cirrus-correct-register-values-for-16bpp.patch new file mode 100644 index 00000000000..34a45ccaa71 --- /dev/null +++ b/queue-3.10/drm-cirrus-correct-register-values-for-16bpp.patch @@ -0,0 +1,39 @@ +From 2510538fa000dd13a3e57b79bf073ffb1748976c Mon Sep 17 00:00:00 2001 +From: Takashi Iwai +Date: Tue, 21 Jan 2014 14:34:51 -0800 +Subject: drm/cirrus: correct register values for 16bpp + +From: Takashi Iwai + +commit 2510538fa000dd13a3e57b79bf073ffb1748976c upstream. + +When the mode is set with 16bpp on QEMU, the output gets totally broken. +The culprit is the bogus register values set for 16bpp, which was likely +copied from from a wrong place. + +Addresses https://bugzilla.novell.com/show_bug.cgi?id=799216 + +Signed-off-by: Takashi Iwai +Signed-off-by: Jiri Slaby +Cc: David Airlie +Signed-off-by: Andrew Morton +Signed-off-by: Dave Airlie +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/cirrus/cirrus_mode.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/drivers/gpu/drm/cirrus/cirrus_mode.c ++++ b/drivers/gpu/drm/cirrus/cirrus_mode.c +@@ -273,8 +273,8 @@ static int cirrus_crtc_mode_set(struct d + sr07 |= 0x11; + break; + case 16: +- sr07 |= 0xc1; +- hdr = 0xc0; ++ sr07 |= 0x17; ++ hdr = 0xc1; + break; + case 24: + sr07 |= 0x15; diff --git a/queue-3.10/drm-i915-fix-the-offset-issue-for-the-stolen-gem-objects.patch b/queue-3.10/drm-i915-fix-the-offset-issue-for-the-stolen-gem-objects.patch new file mode 100644 index 00000000000..1a62a1350ff --- /dev/null +++ b/queue-3.10/drm-i915-fix-the-offset-issue-for-the-stolen-gem-objects.patch @@ -0,0 +1,42 @@ +From ec14ba47791965d2c08e0a681ff44eacbf3c4553 Mon Sep 17 00:00:00 2001 +From: Akash Goel +Date: Mon, 13 Jan 2014 16:24:45 +0530 +Subject: drm/i915: Fix the offset issue for the stolen GEM objects + +From: Akash Goel + +commit ec14ba47791965d2c08e0a681ff44eacbf3c4553 upstream. + +The 'offset' field of the 'scatterlist' structure was wrongly +programmed with the offset value from the base of stolen area, +whereas this field indicates the offset from where the interested +data starts within the first PAGE pointed to by 'scattterlist' +structure. As a result when a new GEM object allocated from stolen +area is mapped to GTT, it could lead to an overwrite of GTT entries +as the page count calculation will go wrong, refer the function +'sg_page_count'. + +v2: Modified the commit message. (Chris) + +Signed-off-by: Akash Goel +Reviewed-by: Jesse Barnes +Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=71908 +Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=69104 +Signed-off-by: Daniel Vetter +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/i915/i915_gem_stolen.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/gpu/drm/i915/i915_gem_stolen.c ++++ b/drivers/gpu/drm/i915/i915_gem_stolen.c +@@ -222,7 +222,7 @@ i915_pages_create_for_stolen(struct drm_ + } + + sg = st->sgl; +- sg->offset = offset; ++ sg->offset = 0; + sg->length = size; + + sg_dma_address(sg) = (dma_addr_t)dev_priv->mm.stolen_base + offset; diff --git a/queue-3.10/drm-i915-flush-outstanding-requests-before-allocating-new-seqno.patch b/queue-3.10/drm-i915-flush-outstanding-requests-before-allocating-new-seqno.patch new file mode 100644 index 00000000000..36ec13de790 --- /dev/null +++ b/queue-3.10/drm-i915-flush-outstanding-requests-before-allocating-new-seqno.patch @@ -0,0 +1,78 @@ +From 304d695c3dc8eb65206b9eaf16f8d1a41510d1cf Mon Sep 17 00:00:00 2001 +From: Chris Wilson +Date: Thu, 2 Jan 2014 14:32:35 +0000 +Subject: drm/i915: Flush outstanding requests before allocating new seqno + +From: Chris Wilson + +commit 304d695c3dc8eb65206b9eaf16f8d1a41510d1cf upstream. + +In very rare cases (such as a memory failure stress test) it is possible +to fill the entire ring without emitting a request. Under this +circumstance, the outstanding request is flushed and waited upon. After +space on the ring is cleared, we return to emitting the new command - +except that we just cleared the seqno allocated for this operation and +trigger the sanity check that a request is only ever emitted with a +valid seqno. The fix is to rearrange the code to make sure the +allocation of the seqno for this operation is after any required flushes +of outstanding operations. + +The bug exists since the preallocation was introduced in +commit 9d7730914f4cd496e356acfab95b41075aa8eae8 +Author: Chris Wilson +Date: Tue Nov 27 16:22:52 2012 +0000 + + drm/i915: Preallocate next seqno before touching the ring + +Signed-off-by: Chris Wilson +Cc: Mika Kuoppala +Cc: Daniel Vetter +Signed-off-by: Chris Wilson +Reviewed-by: Jani Nikula +Signed-off-by: Daniel Vetter +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/i915/intel_ringbuffer.c | 12 ++++++++---- + 1 file changed, 8 insertions(+), 4 deletions(-) + +--- a/drivers/gpu/drm/i915/intel_ringbuffer.c ++++ b/drivers/gpu/drm/i915/intel_ringbuffer.c +@@ -1459,8 +1459,8 @@ intel_ring_alloc_seqno(struct intel_ring + return i915_gem_get_seqno(ring->dev, &ring->outstanding_lazy_request); + } + +-static int __intel_ring_begin(struct intel_ring_buffer *ring, +- int bytes) ++static int __intel_ring_prepare(struct intel_ring_buffer *ring, ++ int bytes) + { + int ret; + +@@ -1476,7 +1476,6 @@ static int __intel_ring_begin(struct int + return ret; + } + +- ring->space -= bytes; + return 0; + } + +@@ -1491,12 +1490,17 @@ int intel_ring_begin(struct intel_ring_b + if (ret) + return ret; + ++ ret = __intel_ring_prepare(ring, num_dwords * sizeof(uint32_t)); ++ if (ret) ++ return ret; ++ + /* Preallocate the olr before touching the ring */ + ret = intel_ring_alloc_seqno(ring); + if (ret) + return ret; + +- return __intel_ring_begin(ring, num_dwords * sizeof(uint32_t)); ++ ring->space -= num_dwords * sizeof(uint32_t); ++ return 0; + } + + void intel_ring_init_seqno(struct intel_ring_buffer *ring, u32 seqno) diff --git a/queue-3.10/drm-i915-vlv2-fix-hotplug-detect-bits.patch b/queue-3.10/drm-i915-vlv2-fix-hotplug-detect-bits.patch new file mode 100644 index 00000000000..b235442d3c6 --- /dev/null +++ b/queue-3.10/drm-i915-vlv2-fix-hotplug-detect-bits.patch @@ -0,0 +1,100 @@ +From 232a6ee9af8adb185640f67fcaaa9014a9aa0573 Mon Sep 17 00:00:00 2001 +From: Todd Previte +Date: Thu, 23 Jan 2014 00:13:41 -0700 +Subject: drm/i915: VLV2 - Fix hotplug detect bits + +From: Todd Previte + +commit 232a6ee9af8adb185640f67fcaaa9014a9aa0573 upstream. + +Add new definitions for hotplug live status bits for VLV2 since they're +in reverse order from the gen4x ones. + +Changelog: +- Restored gen4 bit definitions +- Added new definitions for VLV2 +- Added platform check for IS_VALLEYVIEW() in dp_detect to use the correct + bit defintions +- Replaced a lost trailing brace for the added switch() + +Signed-off-by: Todd Previte +Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=73951 +[danvet: Switch to _VLV postfix instead of prefix and regroupg +comments again so that the g4x warning is right next to those defines. +Also add a _G4X suffix for those special ones. Also cc stable.] +Signed-off-by: Daniel Vetter +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/i915/i915_reg.h | 10 +++++++--- + drivers/gpu/drm/i915/intel_dp.c | 40 ++++++++++++++++++++++++++++------------ + 2 files changed, 35 insertions(+), 15 deletions(-) + +--- a/drivers/gpu/drm/i915/i915_reg.h ++++ b/drivers/gpu/drm/i915/i915_reg.h +@@ -1682,9 +1682,13 @@ + * Please check the detailed lore in the commit message for for experimental + * evidence. + */ +-#define PORTD_HOTPLUG_LIVE_STATUS (1 << 29) +-#define PORTC_HOTPLUG_LIVE_STATUS (1 << 28) +-#define PORTB_HOTPLUG_LIVE_STATUS (1 << 27) ++#define PORTD_HOTPLUG_LIVE_STATUS_G4X (1 << 29) ++#define PORTC_HOTPLUG_LIVE_STATUS_G4X (1 << 28) ++#define PORTB_HOTPLUG_LIVE_STATUS_G4X (1 << 27) ++/* VLV DP/HDMI bits again match Bspec */ ++#define PORTD_HOTPLUG_LIVE_STATUS_VLV (1 << 27) ++#define PORTC_HOTPLUG_LIVE_STATUS_VLV (1 << 28) ++#define PORTB_HOTPLUG_LIVE_STATUS_VLV (1 << 29) + #define PORTD_HOTPLUG_INT_STATUS (3 << 21) + #define PORTC_HOTPLUG_INT_STATUS (3 << 19) + #define PORTB_HOTPLUG_INT_STATUS (3 << 17) +--- a/drivers/gpu/drm/i915/intel_dp.c ++++ b/drivers/gpu/drm/i915/intel_dp.c +@@ -2277,18 +2277,34 @@ g4x_dp_detect(struct intel_dp *intel_dp) + return status; + } + +- switch (intel_dig_port->port) { +- case PORT_B: +- bit = PORTB_HOTPLUG_LIVE_STATUS; +- break; +- case PORT_C: +- bit = PORTC_HOTPLUG_LIVE_STATUS; +- break; +- case PORT_D: +- bit = PORTD_HOTPLUG_LIVE_STATUS; +- break; +- default: +- return connector_status_unknown; ++ if (IS_VALLEYVIEW(dev)) { ++ switch (intel_dig_port->port) { ++ case PORT_B: ++ bit = PORTB_HOTPLUG_LIVE_STATUS_VLV; ++ break; ++ case PORT_C: ++ bit = PORTC_HOTPLUG_LIVE_STATUS_VLV; ++ break; ++ case PORT_D: ++ bit = PORTD_HOTPLUG_LIVE_STATUS_VLV; ++ break; ++ default: ++ return connector_status_unknown; ++ } ++ } else { ++ switch (intel_dig_port->port) { ++ case PORT_B: ++ bit = PORTB_HOTPLUG_LIVE_STATUS_G4X; ++ break; ++ case PORT_C: ++ bit = PORTC_HOTPLUG_LIVE_STATUS_G4X; ++ break; ++ case PORT_D: ++ bit = PORTD_HOTPLUG_LIVE_STATUS_G4X; ++ break; ++ default: ++ return connector_status_unknown; ++ } + } + + if ((I915_READ(PORT_HOTPLUG_STAT) & bit) == 0) diff --git a/queue-3.10/drm-mgag200-fix-typo-causing-bw-limits-to-be-ignored-on-some-chips.patch b/queue-3.10/drm-mgag200-fix-typo-causing-bw-limits-to-be-ignored-on-some-chips.patch new file mode 100644 index 00000000000..b19422c065b --- /dev/null +++ b/queue-3.10/drm-mgag200-fix-typo-causing-bw-limits-to-be-ignored-on-some-chips.patch @@ -0,0 +1,36 @@ +From ec22b4aa993abbd18f5bbbcb20a1c56be3b1d38b Mon Sep 17 00:00:00 2001 +From: Dave Airlie +Date: Wed, 5 Feb 2014 14:13:56 +1000 +Subject: drm/mgag200: fix typo causing bw limits to be ignored on some chips + +From: Dave Airlie + +commit ec22b4aa993abbd18f5bbbcb20a1c56be3b1d38b upstream. + +mode->mdev otherwise the bw limits never kick in. + +Reported in RHEL testing. + +Signed-off-by: Dave Airlie +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/mgag200/mgag200_mode.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/drivers/gpu/drm/mgag200/mgag200_mode.c ++++ b/drivers/gpu/drm/mgag200/mgag200_mode.c +@@ -1477,11 +1477,11 @@ static int mga_vga_mode_valid(struct drm + (mga_vga_calculate_mode_bandwidth(mode, bpp) + > (32700 * 1024))) { + return MODE_BANDWIDTH; +- } else if (mode->type == G200_EH && ++ } else if (mdev->type == G200_EH && + (mga_vga_calculate_mode_bandwidth(mode, bpp) + > (37500 * 1024))) { + return MODE_BANDWIDTH; +- } else if (mode->type == G200_ER && ++ } else if (mdev->type == G200_ER && + (mga_vga_calculate_mode_bandwidth(mode, + bpp) > (55000 * 1024))) { + return MODE_BANDWIDTH; diff --git a/queue-3.10/drm-nouveau-fix-m2mf-copy-to-tiled-gart.patch b/queue-3.10/drm-nouveau-fix-m2mf-copy-to-tiled-gart.patch new file mode 100644 index 00000000000..aaace84f287 --- /dev/null +++ b/queue-3.10/drm-nouveau-fix-m2mf-copy-to-tiled-gart.patch @@ -0,0 +1,96 @@ +From ce8f7699f2b6ffe4aa8368b8d9d370875accaa5f Mon Sep 17 00:00:00 2001 +From: Maarten Lankhorst +Date: Tue, 12 Nov 2013 13:34:08 +0100 +Subject: drm/nouveau: fix m2mf copy to tiled gart + +From: Maarten Lankhorst + +commit ce8f7699f2b6ffe4aa8368b8d9d370875accaa5f upstream. + +Commit de7b7d59d54852c introduced tiled GART, but a linear copy is +still performed. This may result in errors on eviction, fix it by +checking tiling from memtype. + +Signed-off-by: Maarten Lankhorst +Signed-off-by: Ben Skeggs +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/nouveau/nouveau_bo.c | 33 ++++++++------------------------- + 1 file changed, 8 insertions(+), 25 deletions(-) + +--- a/drivers/gpu/drm/nouveau/nouveau_bo.c ++++ b/drivers/gpu/drm/nouveau/nouveau_bo.c +@@ -788,25 +788,25 @@ nv50_bo_move_m2mf(struct nouveau_channel + struct ttm_mem_reg *old_mem, struct ttm_mem_reg *new_mem) + { + struct nouveau_mem *node = old_mem->mm_node; +- struct nouveau_bo *nvbo = nouveau_bo(bo); + u64 length = (new_mem->num_pages << PAGE_SHIFT); + u64 src_offset = node->vma[0].offset; + u64 dst_offset = node->vma[1].offset; ++ int src_tiled = !!node->memtype; ++ int dst_tiled = !!((struct nouveau_mem *)new_mem->mm_node)->memtype; + int ret; + + while (length) { + u32 amount, stride, height; + ++ ret = RING_SPACE(chan, 18 + 6 * (src_tiled + dst_tiled)); ++ if (ret) ++ return ret; ++ + amount = min(length, (u64)(4 * 1024 * 1024)); + stride = 16 * 4; + height = amount / stride; + +- if (old_mem->mem_type == TTM_PL_VRAM && +- nouveau_bo_tile_layout(nvbo)) { +- ret = RING_SPACE(chan, 8); +- if (ret) +- return ret; +- ++ if (src_tiled) { + BEGIN_NV04(chan, NvSubCopy, 0x0200, 7); + OUT_RING (chan, 0); + OUT_RING (chan, 0); +@@ -816,19 +816,10 @@ nv50_bo_move_m2mf(struct nouveau_channel + OUT_RING (chan, 0); + OUT_RING (chan, 0); + } else { +- ret = RING_SPACE(chan, 2); +- if (ret) +- return ret; +- + BEGIN_NV04(chan, NvSubCopy, 0x0200, 1); + OUT_RING (chan, 1); + } +- if (new_mem->mem_type == TTM_PL_VRAM && +- nouveau_bo_tile_layout(nvbo)) { +- ret = RING_SPACE(chan, 8); +- if (ret) +- return ret; +- ++ if (dst_tiled) { + BEGIN_NV04(chan, NvSubCopy, 0x021c, 7); + OUT_RING (chan, 0); + OUT_RING (chan, 0); +@@ -838,18 +829,10 @@ nv50_bo_move_m2mf(struct nouveau_channel + OUT_RING (chan, 0); + OUT_RING (chan, 0); + } else { +- ret = RING_SPACE(chan, 2); +- if (ret) +- return ret; +- + BEGIN_NV04(chan, NvSubCopy, 0x021c, 1); + OUT_RING (chan, 1); + } + +- ret = RING_SPACE(chan, 14); +- if (ret) +- return ret; +- + BEGIN_NV04(chan, NvSubCopy, 0x0238, 2); + OUT_RING (chan, upper_32_bits(src_offset)); + OUT_RING (chan, upper_32_bits(dst_offset)); diff --git a/queue-3.10/i2c-i801-smbus-patch-for-intel-coleto-creek-deviceids.patch b/queue-3.10/i2c-i801-smbus-patch-for-intel-coleto-creek-deviceids.patch new file mode 100644 index 00000000000..c1a68f117a8 --- /dev/null +++ b/queue-3.10/i2c-i801-smbus-patch-for-intel-coleto-creek-deviceids.patch @@ -0,0 +1,68 @@ +From f39901c1befa556bc91902516a3e2e460000b4a8 Mon Sep 17 00:00:00 2001 +From: Seth Heasley +Date: Wed, 19 Jun 2013 16:59:57 -0700 +Subject: i2c: i801: SMBus patch for Intel Coleto Creek DeviceIDs + +From: Seth Heasley + +commit f39901c1befa556bc91902516a3e2e460000b4a8 upstream. + +This patch adds the i801 SMBus Controller DeviceIDs for the Intel Coleto Creek PCH. + +Signed-off-by: Seth Heasley +Signed-off-by: Wolfram Sang +Cc: "Chan, Wei Sern" +Signed-off-by: Greg Kroah-Hartman + +--- + Documentation/i2c/busses/i2c-i801 | 1 + + drivers/i2c/busses/Kconfig | 1 + + drivers/i2c/busses/i2c-i801.c | 3 +++ + 3 files changed, 5 insertions(+) + +--- a/Documentation/i2c/busses/i2c-i801 ++++ b/Documentation/i2c/busses/i2c-i801 +@@ -24,6 +24,7 @@ Supported adapters: + * Intel Lynx Point-LP (PCH) + * Intel Avoton (SOC) + * Intel Wellsburg (PCH) ++ * Intel Coleto Creek (PCH) + Datasheets: Publicly available at the Intel website + + On Intel Patsburg and later chipsets, both the normal host SMBus controller +--- a/drivers/i2c/busses/Kconfig ++++ b/drivers/i2c/busses/Kconfig +@@ -108,6 +108,7 @@ config I2C_I801 + Lynx Point-LP (PCH) + Avoton (SOC) + Wellsburg (PCH) ++ Coleto Creek (PCH) + + This driver can also be built as a module. If so, the module + will be called i2c-i801. +--- a/drivers/i2c/busses/i2c-i801.c ++++ b/drivers/i2c/busses/i2c-i801.c +@@ -58,6 +58,7 @@ + Wellsburg (PCH) MS 0x8d7d 32 hard yes yes yes + Wellsburg (PCH) MS 0x8d7e 32 hard yes yes yes + Wellsburg (PCH) MS 0x8d7f 32 hard yes yes yes ++ Coleto Creek (PCH) 0x23b0 32 hard yes yes yes + + Features supported by this driver: + Software PEC no +@@ -169,6 +170,7 @@ + #define PCI_DEVICE_ID_INTEL_PANTHERPOINT_SMBUS 0x1e22 + #define PCI_DEVICE_ID_INTEL_AVOTON_SMBUS 0x1f3c + #define PCI_DEVICE_ID_INTEL_DH89XXCC_SMBUS 0x2330 ++#define PCI_DEVICE_ID_INTEL_COLETOCREEK_SMBUS 0x23b0 + #define PCI_DEVICE_ID_INTEL_5_3400_SERIES_SMBUS 0x3b30 + #define PCI_DEVICE_ID_INTEL_LYNXPOINT_SMBUS 0x8c22 + #define PCI_DEVICE_ID_INTEL_WELLSBURG_SMBUS 0x8d22 +@@ -817,6 +819,7 @@ static DEFINE_PCI_DEVICE_TABLE(i801_ids) + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_WELLSBURG_SMBUS_MS0) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_WELLSBURG_SMBUS_MS1) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_WELLSBURG_SMBUS_MS2) }, ++ { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_COLETOCREEK_SMBUS) }, + { 0, } + }; + diff --git a/queue-3.10/i915-remove-pm_qos-request-on-error.patch b/queue-3.10/i915-remove-pm_qos-request-on-error.patch new file mode 100644 index 00000000000..510c00799c3 --- /dev/null +++ b/queue-3.10/i915-remove-pm_qos-request-on-error.patch @@ -0,0 +1,49 @@ +From 22accca01713b13dac386ca90b787aadf88f6551 Mon Sep 17 00:00:00 2001 +From: Stanislaw Gruszka +Date: Sat, 25 Jan 2014 10:13:37 +0100 +Subject: i915: remove pm_qos request on error + +From: Stanislaw Gruszka + +commit 22accca01713b13dac386ca90b787aadf88f6551 upstream. + +Not removing pm qos request and free memory for it can cause crash, +when some other driver use pm qos. For example, this oops: + +BUG: unable to handle kernel paging request at fffffffffffffff8 +IP: [] plist_add+0x5b/0xd0 +Call Trace: + [] pm_qos_update_target+0x125/0x1e0 + [] pm_qos_add_request+0x91/0x100 + [] e1000_open+0xe4/0x5b0 [e1000e] + +was caused by earlier i915 probe failure: + +[drm:i915_report_and_clear_eir] *ERROR* EIR stuck: 0x00000010, masking +[drm:init_ring_common] *ERROR* render ring initialization failed ctl 0001f001 head 00003004 tail 00000000 start 00003000 +[drm:i915_driver_load] *ERROR* failed to init modeset +i915: probe of 0000:00:02.0 failed with error -5 + +Bug report: +http://bugzilla.redhat.com/show_bug.cgi?id=1057533 + +Reported-by: Giandomenico De Tullio +Signed-off-by: Stanislaw Gruszka +[danvet: Drop unnecessary code movement.] +Signed-off-by: Daniel Vetter +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/i915/i915_dma.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/gpu/drm/i915/i915_dma.c ++++ b/drivers/gpu/drm/i915/i915_dma.c +@@ -1687,6 +1687,7 @@ out_gem_unload: + + intel_teardown_gmbus(dev); + intel_teardown_mchbar(dev); ++ pm_qos_remove_request(&dev_priv->pm_qos); + destroy_workqueue(dev_priv->wq); + out_mtrrfree: + if (dev_priv->mm.gtt_mtrr >= 0) { diff --git a/queue-3.10/mfd-lpc_ich-add-support-for-intel-avoton-soc.patch b/queue-3.10/mfd-lpc_ich-add-support-for-intel-avoton-soc.patch new file mode 100644 index 00000000000..c3d2ad5f247 --- /dev/null +++ b/queue-3.10/mfd-lpc_ich-add-support-for-intel-avoton-soc.patch @@ -0,0 +1,61 @@ +From 8477128fe0c3c455e9dfb1ba7ad7e6d09489d33c Mon Sep 17 00:00:00 2001 +From: James Ralston +Date: Thu, 9 May 2013 12:38:53 -0700 +Subject: mfd: lpc_ich: Add support for Intel Avoton SoC + +From: James Ralston + +commit 8477128fe0c3c455e9dfb1ba7ad7e6d09489d33c upstream. + +This patch adds the LPC Controller Device IDs for Watchdog and GPIO for +Intel Avoton SoC, to the lpc_ich driver. + +Signed-off-by: James Ralston +Signed-off-by: Samuel Ortiz +Cc: "Chan, Wei Sern" +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/mfd/lpc_ich.c | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +--- a/drivers/mfd/lpc_ich.c ++++ b/drivers/mfd/lpc_ich.c +@@ -51,6 +51,7 @@ + * document number TBD : Lynx Point + * document number TBD : Lynx Point-LP + * document number TBD : Wellsburg ++ * document number TBD : Avoton SoC + */ + + #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt +@@ -207,6 +208,7 @@ enum lpc_chipsets { + LPC_LPT, /* Lynx Point */ + LPC_LPT_LP, /* Lynx Point-LP */ + LPC_WBG, /* Wellsburg */ ++ LPC_AVN, /* Avoton SoC */ + }; + + struct lpc_ich_info lpc_chipset_info[] = { +@@ -491,6 +493,10 @@ struct lpc_ich_info lpc_chipset_info[] = + .name = "Wellsburg", + .iTCO_version = 2, + }, ++ [LPC_AVN] = { ++ .name = "Avoton SoC", ++ .iTCO_version = 1, ++ }, + }; + + /* +@@ -704,6 +710,10 @@ static DEFINE_PCI_DEVICE_TABLE(lpc_ich_i + { PCI_VDEVICE(INTEL, 0x8d5d), LPC_WBG}, + { PCI_VDEVICE(INTEL, 0x8d5e), LPC_WBG}, + { PCI_VDEVICE(INTEL, 0x8d5f), LPC_WBG}, ++ { PCI_VDEVICE(INTEL, 0x1f38), LPC_AVN}, ++ { PCI_VDEVICE(INTEL, 0x1f39), LPC_AVN}, ++ { PCI_VDEVICE(INTEL, 0x1f3a), LPC_AVN}, ++ { PCI_VDEVICE(INTEL, 0x1f3b), LPC_AVN}, + { 0, }, /* End of list */ + }; + MODULE_DEVICE_TABLE(pci, lpc_ich_ids); diff --git a/queue-3.10/mfd-lpc_ich-itco_wdt-patch-for-intel-coleto-creek-deviceids.patch b/queue-3.10/mfd-lpc_ich-itco_wdt-patch-for-intel-coleto-creek-deviceids.patch new file mode 100644 index 00000000000..c25618887b7 --- /dev/null +++ b/queue-3.10/mfd-lpc_ich-itco_wdt-patch-for-intel-coleto-creek-deviceids.patch @@ -0,0 +1,58 @@ +From 283aae8ab88e695a660c610d6535ca44bc5b8835 Mon Sep 17 00:00:00 2001 +From: Seth Heasley +Date: Wed, 19 Jun 2013 17:04:25 -0700 +Subject: mfd: lpc_ich: iTCO_wdt patch for Intel Coleto Creek DeviceIDs + +From: Seth Heasley + +commit 283aae8ab88e695a660c610d6535ca44bc5b8835 upstream. + +This patch adds the LPC Controller DeviceIDs for iTCO Watchdog for +the Intel Coleto Creek PCH. + +Signed-off-by: Seth Heasley +Signed-off-by: Samuel Ortiz +Cc: "Chan, Wei Sern" +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/mfd/lpc_ich.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +--- a/drivers/mfd/lpc_ich.c ++++ b/drivers/mfd/lpc_ich.c +@@ -52,6 +52,7 @@ + * document number TBD : Lynx Point-LP + * document number TBD : Wellsburg + * document number TBD : Avoton SoC ++ * document number TBD : Coleto Creek + */ + + #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt +@@ -209,6 +210,7 @@ enum lpc_chipsets { + LPC_LPT_LP, /* Lynx Point-LP */ + LPC_WBG, /* Wellsburg */ + LPC_AVN, /* Avoton SoC */ ++ LPC_COLETO, /* Coleto Creek */ + }; + + struct lpc_ich_info lpc_chipset_info[] = { +@@ -497,6 +499,10 @@ struct lpc_ich_info lpc_chipset_info[] = + .name = "Avoton SoC", + .iTCO_version = 1, + }, ++ [LPC_COLETO] = { ++ .name = "Coleto Creek", ++ .iTCO_version = 2, ++ }, + }; + + /* +@@ -714,6 +720,7 @@ static DEFINE_PCI_DEVICE_TABLE(lpc_ich_i + { PCI_VDEVICE(INTEL, 0x1f39), LPC_AVN}, + { PCI_VDEVICE(INTEL, 0x1f3a), LPC_AVN}, + { PCI_VDEVICE(INTEL, 0x1f3b), LPC_AVN}, ++ { PCI_VDEVICE(INTEL, 0x2390), LPC_COLETO}, + { 0, }, /* End of list */ + }; + MODULE_DEVICE_TABLE(pci, lpc_ich_ids); diff --git a/queue-3.10/series b/queue-3.10/series index 6aee1b6e32e..7db15cc6ceb 100644 --- a/queue-3.10/series +++ b/queue-3.10/series @@ -56,3 +56,13 @@ drm-radeon-set-the-full-cache-bit-for-fences-on-r7xx.patch drm-radeon-fix-dac-interrupt-handling-on-dce5.patch drm-radeon-dce4-clear-bios-scratch-dpms-bit-v2.patch dm-sysfs-fix-a-module-unload-race.patch +drm-nouveau-fix-m2mf-copy-to-tiled-gart.patch +drm-i915-flush-outstanding-requests-before-allocating-new-seqno.patch +drm-i915-fix-the-offset-issue-for-the-stolen-gem-objects.patch +drm-i915-vlv2-fix-hotplug-detect-bits.patch +i915-remove-pm_qos-request-on-error.patch +drm-cirrus-correct-register-values-for-16bpp.patch +drm-mgag200-fix-typo-causing-bw-limits-to-be-ignored-on-some-chips.patch +mfd-lpc_ich-add-support-for-intel-avoton-soc.patch +mfd-lpc_ich-itco_wdt-patch-for-intel-coleto-creek-deviceids.patch +i2c-i801-smbus-patch-for-intel-coleto-creek-deviceids.patch -- 2.47.2