linux/drivers
Daniel Vetter 2406e63c32 drm/i915: hold forcewake around ring hw init
commit b7884eb45e upstream.

Empirical evidence suggests that we need to: On at least one ivb
machine when running the hangman i-g-t test, the rings don't properly
initialize properly - the RING_START registers seems to be stuck at
all zeros.

Holding forcewake around this register init sequences makes chip reset
reliable again. Note that this is not the first such issue:

commit f01db988ef
Author: Sean Paul <seanpaul@chromium.org>
Date:   Fri Mar 16 12:43:22 2012 -0400

    drm/i915: Add wait_for in init_ring_common

added delay loops to make RING_START and RING_CTL initialization
reliable on the blt ring at boot-up. So I guess it won't hurt if we do
this unconditionally for all force_wake needing gpus.

To avoid copy&pasting of the HAS_FORCE_WAKE check I've added a new
intel_info bit for that.

v2: Fixup missing commas in static struct and properly handling the
error case in init_ring_common, both noticed by Jani Nikula.

Reported-and-tested-by: Yang Guang <guang.a.yang@intel.com>
Reviewed-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=50522
Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
[bwh: Backported to 3.2:
 - drop changes to Haswell device information
 - NEEDS_FORCE_WAKE didn't refer to Valley View anyway]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
[jcristau: further context adjustments for 3.4]
Signed-off-by: Julien Cristau <jcristau@debian.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-17 08:51:07 -08:00
..
accessibility
acpi ACPI : do not use Lid and Sleep button for S5 wakeup 2013-01-17 08:50:53 -08:00
amba ARM: 7366/3: amba: Remove AMBA level regulator support 2012-04-13 14:04:08 +01:00
ata libata: fix Null pointer dereference on disk error 2013-01-17 08:50:44 -08:00
atm solos-pci: fix double-free of TX skb in DMA mode 2013-01-11 09:07:16 -08:00
auxdisplay
base regmap: debugfs: Avoid overflows for very small reads 2013-01-17 08:50:54 -08:00
bcma bcma: mips: fix clearing device IRQ 2013-01-17 08:50:41 -08:00
block aoe: do not call bdi_init after blk_alloc_queue 2013-01-17 08:50:53 -08:00
bluetooth Bluetooth: ath3k: Add support for VAIO VPCEH [0489:e027] 2013-01-11 09:07:17 -08:00
cdrom
char tpm: Propagate error from tpm_transmit to fix a timeout hang 2012-10-21 09:28:01 -07:00
clk clk: Check parent for NULL in clk_change_rate 2012-07-19 08:58:59 -07:00
clocksource Revert "clocksource: Load the ACPI PM clocksource asynchronously" 2012-04-12 00:05:05 +02:00
connector
cpufreq cpufreq / powernow-k8: Remove usage of smp_processor_id() in preemptible code 2012-10-31 10:03:03 -07:00
cpuidle Merge branches 'idle-fix' and 'misc' into release 2012-04-06 21:48:59 -04:00
crypto crypto: mv_cesa requires on CRYPTO_HASH to build 2012-05-15 01:10:06 +00:00
dca
devfreq
dio
dma dmaengine: imx-dma: fix missing unlock on error in imxdma_xfer_desc() 2012-10-31 10:03:02 -07:00
edac i7300_edac: Fix error flag testing 2012-12-10 10:59:40 -08:00
eisa
firewire firewire: net: Fix handling of fragmented multicast/broadcast packets. 2013-01-17 08:50:43 -08:00
firmware firmware: Add missing attributes to EFI variable attribute print out from sysfs 2012-10-07 08:32:26 -07:00
gpio gpiolib: Don't return -EPROBE_DEFER to sysfs, or for invalid gpios 2012-11-05 09:50:41 +01:00
gpu drm/i915: hold forcewake around ring hw init 2013-01-17 08:51:07 -08:00
hid HID: add quirk for Freescale i.MX23 ROM recovery 2013-01-17 08:50:54 -08:00
hsi HSI: hsi_char: Remove max_data_size from sysfs 2012-04-23 14:23:32 +03:00
hv Drivers: hv: Cleanup error handling in vmbus_open() 2012-10-31 10:02:58 -07:00
hwmon hwmon: (lm73} Detect and report i2c bus errors 2013-01-17 08:50:52 -08:00
hwspinlock hwspinlock/core: use global ID to register hwspinlocks on multiple devices 2012-07-16 09:04:25 -07:00
i2c i2c-i801: Add Device IDs for Intel Lynx Point-LP PCH 2012-09-14 10:00:33 -07:00
ide Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
idle simple_open: automatically convert to simple_open() 2012-04-05 15:25:50 -07:00
ieee802154
infiniband RDMA/nes: Fix for terminate timer crash 2013-01-17 08:50:51 -08:00
input Input: sentelic - only report position of first finger as ST coordinates 2013-01-11 09:06:56 -08:00
iommu intel-iommu: Free old page tables before creating superpage 2013-01-17 08:50:46 -08:00
isdn bas_gigaset: fix pre_reset handling 2012-12-03 11:47:11 -08:00
leds drivers/leds/leds-lp5521.c: fix lp5521_read() error handling 2012-12-03 11:46:36 -08:00
lguest
macintosh Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
mca
md dm ioctl: prevent unsafe change to dm_ioctl data_size 2013-01-17 08:50:51 -08:00
media media: au0828: fix case where STREAMOFF being called on stopped stream causes BUG() 2012-10-28 10:14:15 -07:00
memstick
message Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
mfd mfd: Only unregister platform devices allocated by the mfd core 2013-01-17 08:50:45 -08:00
misc SGI-XP: handle non-fatal traps 2013-01-11 09:06:29 -08:00
mmc mmc: sh-mmcif: avoid oops on spurious interrupts (second try) 2012-12-17 10:37:43 -08:00
mtd mtd: nand: gpmi: reset BCH earlier, too, to avoid NAND startup problems 2013-01-17 08:50:45 -08:00
net b43: Fix firmware loading when driver is built into the kernel 2013-01-17 08:51:04 -08:00
nfc NFC: pn533: Fix mem leak in pn533_in_dep_link_up 2012-12-03 11:47:12 -08:00
nubus Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
of gpio: Fix range check in of_gpio_simple_xlate() 2012-04-10 14:20:56 -06:00
oprofile oprofile: perf: use NR_CPUS instead or nr_cpumask_bits for static array 2012-07-16 09:04:21 -07:00
parisc parisc: move definition of PAGE0 to asm/page.h 2012-05-10 15:12:08 -07:00
parport
pci PCI: Reduce Ricoh 0xe822 SD card reader base clock frequency to 50MHz 2013-01-11 09:07:16 -08:00
pcmcia pcmcia: sharpsl: don't discard sharpsl_pcmcia_ops 2012-10-28 10:14:13 -07:00
pinctrl pinctrl: tegra: set low power mode bank width to 2 2012-10-28 10:14:14 -07:00
platform samsung-laptop: Add quirk for broken acpi_video backlight on N250P 2013-01-17 08:50:52 -08:00
pnp pnpacpi: fix incorrect TEST_ALPHA() test 2013-01-11 09:06:29 -08:00
power Various small bugfixes and enhancements, plus two new drivers: 2012-03-30 16:09:02 -07:00
pps
ps3
ptp ptp_pch: Add missing #include <linux/slab.h> 2012-05-16 14:44:44 -04:00
rapidio rapidio/tsi721: fix unused variable compiler warning 2012-09-14 10:00:20 -07:00
regulator regulator: wm831x: Set the new rather than old value for DVS VSEL 2013-01-17 08:50:41 -08:00
remoteproc remoteproc: fix a potential NULL-dereference on cleanup 2012-10-07 08:32:28 -07:00
rpmsg rpmsg: fix dependency on initialization order 2012-07-19 08:58:57 -07:00
rtc drivers/rtc/rtc-vt8500.c: fix handling of data passed in struct rtc_time 2013-01-11 09:07:18 -08:00
s390 s390/cio: fix pgid reserved check 2013-01-17 08:50:42 -08:00
sbus Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
scsi SCSI: qla2xxx: Test and clear FCPORT_UPDATE_NEEDED atomically. 2013-01-17 08:50:44 -08:00
sfi
sh SuperH updates for 3.4 merge window 2012-03-30 00:09:17 -07:00
sn
spi spi/pl022: disable port when unused 2012-08-09 08:31:38 -07:00
ssb
staging staging: speakup: avoid out-of-range access in synth_add() 2013-01-17 08:51:03 -08:00
target target/tcm_fc: fix the lockdep warning due to inconsistent lock state 2013-01-17 08:50:45 -08:00
tc
thermal
tty Revert "serial: omap: fix software flow control" 2012-11-26 11:38:44 -08:00
uio
usb xhci: Handle HS bulk/ctrl endpoints that don't NAK. 2013-01-17 08:51:06 -08:00
uwb uwb: fix error handling 2012-04-18 13:15:51 -07:00
vhost vhost: fix mergeable bufs on BE hosts 2012-10-31 10:03:01 -07:00
video video: mxsfb: fix crash when unblanking the display 2013-01-17 08:50:52 -08:00
virt
virtio virtio: force vring descriptors to be allocated from lowmem 2013-01-11 09:06:47 -08:00
vlynq
w1
watchdog hpwdt: Fix kdump issue in hpwdt 2012-10-02 10:30:08 -07:00
xen xen/events: fix RCU warning, or Call idle notifier after irq_enter() 2012-11-26 11:37:47 -08:00
zorro
Kconfig Merge branch 'for-next' of git://gitorious.org/kernel-hsi/kernel-hsi 2012-04-02 09:50:40 -07:00
Makefile Merge branch 'for-next' of git://gitorious.org/kernel-hsi/kernel-hsi 2012-04-02 09:50:40 -07:00