[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#661696: drm/i915: wrong fifo size due to uncareful refactoring which results in an xserver crash at 800x600



Package: linux-2.6
Version: 2.6.32-41
Severity: important
Tags: upstream patch

Hi,

I've encountered a nasty bug in the drm/i915 part of Debian's stable kernel. The code is also present in 2.6.33.20, which is the latest stable upstream release of 2.6.33.y at the time of writing.

During a refactoring of the i915 driver a regression has been introduced (http://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=commit;h=e70236a8d3d0a4c100a0b9f7d394d9bda9c56aca): For some chipsets the wrong fifo size is determined which results in lot's of pixel errors when starting the xserver and choosing 800x600 as a resolution. If another resolution is used (eg. 1024x768 or 1280x1024), I don't encounter this problem.

I've attached a patch that fixes the problem (no pixel errors anymore) and determines the correct fifo size.

--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -4828,15 +4828,15 @@ static void intel_init_display(struct drm_device *dev)
                dev_priv->display.update_wm = i965_update_wm;
        else if (IS_I9XX(dev) || IS_MOBILE(dev)) {
                dev_priv->display.update_wm = i9xx_update_wm;
-               dev_priv->display.get_fifo_size = i9xx_get_fifo_size;
-       } else {
                if (IS_I85X(dev))
                        dev_priv->display.get_fifo_size = i85x_get_fifo_size;
                else if (IS_845G(dev))
                        dev_priv->display.get_fifo_size = i845_get_fifo_size;
                else
-                       dev_priv->display.get_fifo_size = i830_get_fifo_size;
+                       dev_priv->display.get_fifo_size = i9xx_get_fifo_size;
+       } else {
                dev_priv->display.update_wm = i830_update_wm;
+               dev_priv->display.get_fifo_size = i830_get_fifo_size;
        }   
 }

Regards,

Lukas

-- Package-specific info:
** Version:
Linux version 2.6.32-5-686 (Debian 2.6.32-41) (ben@decadent.org.uk) (gcc version 4.3.5 (Debian 4.3.5-4) ) #1 SMP Mon Jan 16 16:04:25 UTC 2012

** Command line:
BOOT_IMAGE=/boot/vmlinuz-2.6.32-5-686 root=UUID=08a419ad-d4d1-47ff-94fd-6d7c8c5321de ro quiet

** Not tainted

** Kernel log:
[    1.637921] sd 0:0:0:0: [sda] 8027712 512-byte logical blocks: (4.11 GB/3.82 GiB)
[    1.638005] sd 0:0:0:0: [sda] Write Protect is off
[    1.638010] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    1.638045] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[    1.638258]  sda: sda1 sda2
[    1.639892] sd 0:0:0:0: [sda] Attached SCSI disk
[    1.740461] usb 1-1: new full speed USB device using uhci_hcd and address 2
[    1.744283] kjournald starting.  Commit interval 5 seconds
[    1.744299] EXT3-fs: mounted filesystem with ordered data mode.
[    1.897098] usb 1-1: New USB device found, idVendor=1a40, idProduct=0201
[    1.897104] usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[    1.897109] usb 1-1: Product: USB 2.0 Hub [MTT]
[    1.897256] usb 1-1: configuration #1 chosen from 1 choice
[    1.900120] hub 1-1:1.0: USB hub found
[    1.902075] hub 1-1:1.0: 7 ports detected
[    2.006518] udev[254]: starting version 164
[    2.020066] usb 1-2: new full speed USB device using uhci_hcd and address 3
[    2.194232] usb 1-2: New USB device found, idVendor=9710, idProduct=7830
[    2.194239] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    2.194244] usb 1-2: Product: USB-MAC Controller   
[    2.194247] usb 1-2: Manufacturer: Moschip Semiconductor
[    2.194251] usb 1-2: SerialNumber: 3b00043d
[    2.194414] usb 1-2: configuration #1 chosen from 1 choice
[    2.274033] usb 1-1.2: new full speed USB device using uhci_hcd and address 4
[    2.350298] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
[    2.388923] input: PC Speaker as /devices/platform/pcspkr/input/input0
[    2.403022] Marking TSC unstable due to TSC halts in idle
[    2.405028] processor LNXCPU:00: registered as cooling_device1
[    2.419214] Switching to clocksource acpi_pm
[    2.456113] intel_rng: FWH not detected
[    2.470309] ACPI: AC Adapter [ADP1] (off-line)
[    2.470506] input: Power Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input1
[    2.470522] ACPI: Power Button [PWRB]
[    2.470618] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input2
[    2.470624] ACPI: Power Button [PWRF]
[    2.488242] i801_smbus 0000:00:1f.3: PCI INT B -> GSI 17 (level, low) -> IRQ 17
[    2.499895] shpchp: Standard Hot Plug PCI Controller Driver version: 0.4
[    2.529165] usb 1-1.3: new low speed USB device using uhci_hcd and address 5
[    2.542981] usb 1-2: applying rev.C fixup
[    2.549198] usb 1-2: applying rev.C fixup
[    2.561229] eth1: register 'MOSCHIP usb-ethernet driver' at usb-0000:00:1d.0-2, MOSCHIP 7830/7730 usb-NET adapter, 00:13:3b:00:04:3d
[    2.561269] usbcore: registered new interface driver MOSCHIP usb-ethernet driver
[    2.618157] [drm] Initialized drm 1.1.0 20060810
[    2.714449] i915 0000:00:02.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[    2.714459] i915 0000:00:02.0: setting latency timer to 64
[    2.719367] [drm] set up 3M of stolen space
[    2.786929] usb 1-1.4: new low speed USB device using uhci_hcd and address 6
[    2.810044] [drm] initialized overlay support
[    3.017929] usb 1-1.4: New USB device found, idVendor=046d, idProduct=c312
[    3.017936] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    3.017941] usb 1-1.4: Product: USB Multimedia Keyboard
[    3.017945] usb 1-1.4: Manufacturer: LITEON Technology
[    3.018172] usb 1-1.4: configuration #1 chosen from 1 choice
[    3.064696] usbcore: registered new interface driver usbserial
[    3.065060] USB Serial support registered for generic
[    3.065322] usbcore: registered new interface driver usbserial_generic
[    3.065325] usbserial: USB Serial Driver core
[    3.105820] Console: switching to colour frame buffer device 160x64
[    3.106212] USB Serial support registered for FTDI USB Serial Device
[    3.120640] fb0: inteldrmfb frame buffer device
[    3.120643] registered panic notifier
[    3.131269] usb 1-1.2: FTDI USB Serial Device converter now attached to ttyUSB0
[    3.131332] usbcore: registered new interface driver ftdi_sio
[    3.131336] ftdi_sio: v1.5.0:USB FTDI Serial Converters Driver
[    3.134135] usbcore: registered new interface driver hiddev
[    3.137738] [drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0
[    3.137813] Intel ICH 0000:00:1f.5: PCI INT B -> GSI 17 (level, low) -> IRQ 17
[    3.137849] Intel ICH 0000:00:1f.5: setting latency timer to 64
[    3.149671] input: LITEON Technology USB Multimedia Keyboard as /devices/pci0000:00/0000:00:1d.0/usb1/1-1/1-1.4/1-1.4:1.0/input/input3
[    3.149953] generic-usb 0003:046D:C312.0001: input,hidraw0: USB HID v1.10 Keyboard [LITEON Technology USB Multimedia Keyboard] on usb-0000:00:1d.0-1.4/input0
[    3.150007] usbcore: registered new interface driver usbhid
[    3.150305] usbhid: v2.6:USB HID core driver
[    3.460056] intel8x0_measure_ac97_clock: measured 54690 usecs (2635 samples)
[    3.460062] intel8x0: clocking to 48000
[    3.765560] Adding 524280k swap on /dev/sda2.  Priority:-1 extents:1 across:524280k 
[    3.845241] EXT3 FS on sda1, internal journal
[    4.165025] ADDRCONF(NETDEV_UP): eth0: link is not ready
[    4.168163] e100: eth0 NIC Link is Up 100 Mbps Full Duplex
[    4.168463] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[    7.849201] [drm:intel_crtc_mode_set] *ERROR* Couldn't find PLL settings for mode!
[    7.849209] [drm:drm_crtc_helper_set_config] *ERROR* failed to set mode on crtc ce96d000
[   14.552037] eth0: no IPv6 routers present

** Model information
not available

** Loaded modules:
Module                  Size  Used by
usbhid                 28016  0 
ftdi_sio               28887  0 
hid                    50909  1 usbhid
usbserial              22100  1 ftdi_sio
snd_intel8x0           19595  2 
snd_ac97_codec         79200  1 snd_intel8x0
ac97_bus                 710  1 snd_ac97_codec
snd_pcm                47226  2 snd_intel8x0,snd_ac97_codec
snd_seq                35463  0 
i915                  223022  1 
snd_timer              12270  2 snd_pcm,snd_seq
drm_kms_helper         18569  1 i915
snd_seq_device          3673  1 snd_seq
drm                   111992  2 i915,drm_kms_helper
i2c_algo_bit            3493  1 i915
snd                    34423  10 snd_intel8x0,snd_ac97_codec,snd_pcm,snd_seq,snd_timer,snd_seq_device
mcs7830                 4077  0 
shpchp                 21200  0 
i2c_i801                6462  0 
evdev                   5609  0 
video                  14605  1 i915
usbnet                  9527  1 mcs7830
soundcore               3450  1 snd
psmouse                44809  0 
ac                      1640  0 
button                  3598  1 i915
processor              26327  1 
pcspkr                  1207  0 
i2c_core               12787  5 i915,drm_kms_helper,drm,i2c_algo_bit,i2c_i801
snd_page_alloc          5045  2 snd_intel8x0,snd_pcm
rng_core                2178  0 
serio_raw               2916  0 
output                  1204  1 video
pci_hotplug            18545  1 shpchp
ext3                   94396  1 
jbd                    32401  1 ext3
mbcache                 3762  1 ext3
sd_mod                 26013  3 
crc_t10dif              1012  1 sd_mod
ata_generic             2247  0 
fan                     2586  0 
ata_piix               17736  2 
thermal                 9206  0 
uhci_hcd               16057  0 
libata                115889  2 ata_generic,ata_piix
e100                   22317  0 
ehci_hcd               28689  0 
thermal_sys             9378  4 video,processor,fan,thermal
usbcore                99329  9 usbhid,ftdi_sio,usbserial,mcs7830,usbnet,uhci_hcd,ehci_hcd
mii                     2714  3 mcs7830,usbnet,e100
scsi_mod              105001  2 sd_mod,libata
nls_base                4541  1 usbcore

** PCI devices:
00:00.0 Host bridge [0600]: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller [8086:3580] (rev 02)
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
	Latency: 0
	Region 0: Memory at <unassigned> (32-bit, prefetchable)
	Capabilities: [40] Vendor Specific Information: Len=05 <?>
	Kernel driver in use: agpgart-intel

00:00.1 System peripheral [0880]: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller [8086:3584] (rev 02)
	Subsystem: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller [8086:3584]
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0

00:00.3 System peripheral [0880]: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller [8086:3585] (rev 02)
	Subsystem: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller [8086:3585]
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0

00:02.0 VGA compatible controller [0300]: Intel Corporation 82852/855GM Integrated Graphics Device [8086:3582] (rev 02) (prog-if 00 [VGA controller])
	Subsystem: Intel Corporation 82852/855GM Integrated Graphics Device [8086:3582]
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 16
	Region 0: Memory at f0000000 (32-bit, prefetchable) [size=128M]
	Region 1: Memory at ffa80000 (32-bit, non-prefetchable) [size=512K]
	Region 2: I/O ports at ec00 [size=8]
	Expansion ROM at <unassigned> [disabled]
	Capabilities: [d0] Power Management version 1
		Flags: PMEClk- DSI+ D1+ D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Kernel driver in use: i915

00:1d.0 USB Controller [0c03]: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 [8086:24c2] (rev 02) (prog-if 00 [UHCI])
	Subsystem: Intel Corporation Device [8086:24c0]
	Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 16
	Region 4: I/O ports at e080 [size=32]
	Kernel driver in use: uhci_hcd

00:1d.1 USB Controller [0c03]: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 [8086:24c4] (rev 02) (prog-if 00 [UHCI])
	Subsystem: Intel Corporation Device [8086:24c0]
	Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin B routed to IRQ 19
	Region 4: I/O ports at e400 [size=32]
	Kernel driver in use: uhci_hcd

00:1e.0 PCI bridge [0604]: Intel Corporation 82801 PCI Bridge [8086:244e] (rev 82) (prog-if 00 [Normal decode])
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR+ INTx-
	Latency: 0
	Bus: primary=00, secondary=01, subordinate=01, sec-latency=64
	I/O behind bridge: 0000d000-0000dfff
	Memory behind bridge: ff800000-ff8fffff
	Secondary status: 66MHz- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- <SERR- <PERR-
	BridgeCtl: Parity- SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-

00:1f.0 ISA bridge [0601]: Intel Corporation 82801DB/DBL (ICH4/ICH4-L) LPC Interface Bridge [8086:24c0] (rev 02)
	Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0

00:1f.1 IDE interface [0101]: Intel Corporation 82801DB (ICH4) IDE Controller [8086:24cb] (rev 02) (prog-if 8a [Master SecP PriP])
	Subsystem: Intel Corporation Device [8086:24c0]
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 18
	Region 0: I/O ports at 01f0 [size=8]
	Region 1: I/O ports at 03f4 [size=1]
	Region 2: I/O ports at 0170 [size=8]
	Region 3: I/O ports at 0374 [size=1]
	Region 4: I/O ports at fc00 [size=16]
	Region 5: Memory at 10000000 (32-bit, non-prefetchable) [size=1K]
	Kernel driver in use: ata_piix

00:1f.3 SMBus [0c05]: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller [8086:24c3] (rev 02)
	Subsystem: Intel Corporation Device [8086:24c0]
	Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Interrupt: pin B routed to IRQ 17
	Region 4: I/O ports at 0400 [size=32]
	Kernel driver in use: i801_smbus

00:1f.5 Multimedia audio controller [0401]: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller [8086:24c5] (rev 02)
	Subsystem: Device [414c:4760]
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin B routed to IRQ 17
	Region 0: I/O ports at e800 [size=256]
	Region 1: I/O ports at e480 [size=64]
	Region 2: Memory at ffa7bc00 (32-bit, non-prefetchable) [size=512]
	Region 3: Memory at ffa7b800 (32-bit, non-prefetchable) [size=256]
	Capabilities: [50] Power Management version 2
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Kernel driver in use: Intel ICH

01:08.0 Ethernet controller [0200]: Intel Corporation 82801DB PRO/100 VE (CNR) Ethernet Controller [8086:103a] (rev 82)
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 64 (2000ns min, 14000ns max), Cache Line Size: 32 bytes
	Interrupt: pin A routed to IRQ 20
	Region 0: Memory at ff8ff000 (32-bit, non-prefetchable) [size=4K]
	Region 1: I/O ports at dc00 [size=64]
	Capabilities: [dc] Power Management version 2
		Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=2 PME-
	Kernel driver in use: e100


** USB devices:
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 006: ID 046d:c312 Logitech, Inc. DeLuxe 250 Keyboard
Bus 001 Device 002: ID 1a40:0201 TERMINUS TECHNOLOGY INC. 
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub


-- System Information:
Debian Release: 6.0.4
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: i386 (i686)

Kernel: Linux 2.6.32-5-686 (SMP w/1 CPU core)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages linux-image-2.6.32-5-686 depends on:
ii  debconf [debconf-2.0]         1.5.36.1   Debian configuration management sy
ii  initramfs-tools [linux-initra 0.98.8     tools for generating an initramfs
ii  linux-base                    2.6.32-41  Linux image base package
ii  module-init-tools             3.12-2+b1  tools for managing Linux kernel mo

Versions of packages linux-image-2.6.32-5-686 recommends:
ii  firmware-linux-free           2.6.32-41  Binary firmware for various driver
pn  libc6-i686                    <none>     (no description available)

Versions of packages linux-image-2.6.32-5-686 suggests:
pn  grub | lilo                   <none>     (no description available)
pn  linux-doc-2.6.32              <none>     (no description available)

Versions of packages linux-image-2.6.32-5-686 is related to:
pn  firmware-bnx2              <none>        (no description available)
pn  firmware-bnx2x             <none>        (no description available)
pn  firmware-ipw2x00           <none>        (no description available)
pn  firmware-ivtv              <none>        (no description available)
pn  firmware-iwlwifi           <none>        (no description available)
ii  firmware-linux             0.28+squeeze1 Binary firmware for various driver
ii  firmware-linux-nonfree     0.28+squeeze1 Binary firmware for various driver
pn  firmware-qlogic            <none>        (no description available)
pn  firmware-ralink            <none>        (no description available)
pn  xen-hypervisor             <none>        (no description available)

-- debconf information excluded



Reply to: