Created attachment 22326 [details] digicam photo of corruption I'm seeing a corrupt console on switching back to VGA text console from X on a Dell E4300. Most of the screen is black, but flickers to white at about 1Hz as if the VGA colormap is being overwritten, and the top few pixels (20 pixels? about half the height of one standard 80x25 VGA text cell) flickers at 20-60 Hz with VGA character fragments. I've attached a (really bad) digicam photo showing the corruption. The corruption is intermittently repeatable. It almost always happens on the first switch back to the console from X with C-A-F1. Generally, switching back to X and then back to the console gets me a working console, but not always. And, sometimes a later switch will result in corruption. The same corruption is observed with three methods of switching: 1. C-A-F1 2. kill Xorg with C-A-Backspace 3. kill Xorg with "sudo reboot". lspci says: 00:02.0 VGA compatible controller: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 07) Subsystem: Dell Device 024d 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 2296 Region 0: Memory at f6c00000 (64-bit, non-prefetchable) [size=4M] Region 2: Memory at e0000000 (64-bit, prefetchable) [size=256M] Region 4: I/O ports at ef70 [size=8] Xorg.0.log says: (II) intel(0): Integrated Graphics Chipset: Intel(R) Mobile Intel® GM45 Express Chipset (--) intel(0): Chipset: "Mobile Intel® GM45 Express Chipset" (--) intel(0): Linear framebuffer at 0xE0000000 (--) intel(0): IO registers at addr 0xF6C00000 (WW) intel(0): libpciaccess reported 0 rom size, guessing 64kB (==) intel(0): Using EXA for acceleration ... The kernel is 2.6.28.1 plus some patches (none of them should affect X I think) and the X packages are from Ubuntu xorg-edgers PPA: ii xserver-xorg 1:7.4~5ubuntu3 the X.Org X se ii xserver-xorg-core 2:1.5.3+git20081216+server-1.5-branch.4970d757-0ubuntu0tormod1 Xorg X server ii xserver-xorg-dev 2:1.5.3+git20081216+server-1.5-branch.4970d757-0ubuntu0tormod1 Xorg X server ii xserver-xorg-video-intel 2:2.6.0-1ubuntu0tormod X.Org X server
According to http://intellinuxgraphics.org/how_to_report_bug.html, please: -- attach the full Xorg.0.log. -- For VT switch problems, use intel_reg_dumper tool to dump the register info: 1) prior to VT switch 2) after VT switch.
dead bug...reopen only with required info, pls
(In reply to comment #2) > dead bug...reopen only with required info, pls My apologies, I didn't receive an email notification about comment #1. (In reply to comment #1) > According to http://intellinuxgraphics.org/how_to_report_bug.html, please: > -- attach the full Xorg.0.log. > -- For VT switch problems, use intel_reg_dumper tool to dump the register info: > 1) prior to VT switch 2) after VT switch. Before switch, X is running and functioning normally: (II): DumpRegsBegin (II): CHDECMISC: 0x00000000 (none, ch2 enh disabled, ch1 enh disabled, ch0 enh disabled, flex disabled, ep not present) (II): C0DRB0: 0x000f0002 (0x0002) (II): C0DRB1: 0x0010000f (0x000f) (II): C0DRB2: 0x00000010 (0x0010) (II): C0DRB3: 0x00600000 (0x0000) (II): C1DRB0: 0x00000000 (0x0000) (II): C1DRB1: 0x00000000 (0x0000) (II): C1DRB2: 0x00000000 (0x0000) (II): C1DRB3: 0x00000000 (0x0000) (II): C0DRA01: 0x00810060 (0x0060) (II): C0DRA23: 0x00060081 (0x0081) (II): C1DRA01: 0x00000000 (0x0000) (II): C1DRA23: 0x00000000 (0x0000) (II): VCLK_DIVISOR_VGA0: 0x00031108 (n = 3, m1 = 17, m2 = 8) (II): VCLK_DIVISOR_VGA1: 0x00031406 (n = 3, m1 = 20, m2 = 6) (II): VCLK_POST_DIV: 0x00020002 (vga0 p1 = 4, p2 = 2, vga1 p1 = 2, p2 = 2) (II): DPLL_TEST: 0x00010001 () (II): CACHE_MODE_0: 0x00006820 (II): D_STATE: 0x00000000 (II): DSPCLK_GATE_D: 0x1004000c (clock gates disabled: VRHUNIT DSSUNIT OVRUNIT OVCUNIT) (II): RENCLK_GATE_D1: 0x00000000 (II): RENCLK_GATE_D2: 0x000002c0 (II): SDVOB: 0x0000089c (disabled, pipe A, stall disabled, detected) (II): SDVOC: 0x0000089c (disabled, pipe A, stall disabled, detected) (II): SDVOUDI: 0x00000000 (II): DSPARB: 0x00000000 (II): DSPFW1: 0x3f8f0f0f (II): DSPFW2: 0x150f0f0f (II): DSPFW3: 0x00000000 (II): ADPA: 0x00000c00 (disabled, pipe A, -hsync, -vsync) (II): LVDS: 0xc2208300 (enabled, pipe B, 18 bit, 1 channel) (II): DVOA: 0x00000000 (disabled, pipe A, no stall, -hsync, -vsync) (II): DVOB: 0x0000089c (disabled, pipe A, no stall, +hsync, +vsync) (II): DVOC: 0x0000089c (disabled, pipe A, no stall, +hsync, +vsync) (II): DVOA_SRCDIM: 0x00000000 (II): DVOB_SRCDIM: 0x00000000 (II): DVOC_SRCDIM: 0x00000000 (II): PP_CONTROL: 0x00000001 (power target: on) (II): PP_STATUS: 0xc0000008 (on, ready, sequencing idle) (II): PP_ON_DELAYS: 0x01f408fc (II): PP_OFF_DELAYS: 0x019008fc (II): PP_DIVISOR: 0x003e7f06 (II): PFIT_CONTROL: 0x00000000 (II): PFIT_PGM_RATIOS: 0x0f5c042a (II): PORT_HOTPLUG_EN: 0x38000120 (II): PORT_HOTPLUG_STAT: 0x08000b00 (II): DSPACNTR: 0x58000400 (disabled, pipe A) (II): DSPASTRIDE: 0x00002e00 (11776 bytes) (II): DSPAPOS: 0x00000000 (0, 0) (II): DSPASIZE: 0x00000000 (1, 1) (II): DSPABASE: 0x00000000 (II): DSPASURF: 0x06100000 (II): DSPATILEOFF: 0x00000000 (II): PIPEACONF: 0x00000000 (disabled, inactive) (II): PIPEASRC: 0x04ff03ff (1280, 1024) (II): PIPEASTAT: 0x00040000 (status: SVBLANK_INT_ENABLE) (II): FPA0: 0x00020e08 (n = 2, m1 = 14, m2 = 8) (II): FPA1: 0x00031108 (n = 3, m1 = 17, m2 = 8) (II): DPLL_A: 0x14020003 (disabled, non-dvo, default clock, DAC/serial mode, p1 = 2, p2 = 10) (II): DPLL_A_MD: 0x00000000 (II): HTOTAL_A: 0x06af04ff (1280 active, 1712 total) (II): HBLANK_A: 0x06af04ff (1280 start, 1712 end) (II): HSYNC_A: 0x05d70557 (1368 start, 1496 end) (II): VTOTAL_A: 0x044f03ff (1024 active, 1104 total) (II): VBLANK_A: 0x044f03ff (1024 start, 1104 end) (II): VSYNC_A: 0x04090402 (1027 start, 1034 end) (II): BCLRPAT_A: 0x00000000 (II): VSYNCSHIFT_A: 0x00000000 (II): DSPBCNTR: 0xd9000400 (enabled, pipe B) (II): DSPBSTRIDE: 0x00002e00 (11776 bytes) (II): DSPBPOS: 0x00000000 (0, 0) (II): DSPBSIZE: 0x00000000 (1, 1) (II): DSPBBASE: 0x00000000 (II): DSPBSURF: 0x06100000 (II): DSPBTILEOFF: 0x00000000 (II): PIPEBCONF: 0xc0000000 (enabled, active) (II): PIPEBSRC: 0x04ff031f (1280, 800) (II): PIPEBSTAT: 0x00400206 (status: LBLC_EVENT_ENABLE VSYNC_INT_STATUS SVBLANK_INT_STATUS VBLANK_INT_STATUS) (II): FPB0: 0x00031309 (n = 3, m1 = 19, m2 = 9) (II): FPB1: 0x00031108 (n = 3, m1 = 17, m2 = 8) (II): DPLL_B: 0x98026000 (enabled, non-dvo, spread spectrum clock, LVDS mode, p1 = 2, p2 = 14) (II): DPLL_B_MD: 0x00000000 (II): HTOTAL_B: 0x067604ff (1280 active, 1655 total) (II): HBLANK_B: 0x067604ff (1280 start, 1655 end) (II): HSYNC_B: 0x05c70547 (1352 start, 1480 end) (II): VTOTAL_B: 0x033e031f (800 active, 831 total) (II): VBLANK_B: 0x033e031f (800 start, 831 end) (II): VSYNC_B: 0x03280322 (803 start, 809 end) (II): BCLRPAT_B: 0x00000000 (II): VSYNCSHIFT_B: 0x00000000 (II): VCLK_DIVISOR_VGA0: 0x00031108 (II): VCLK_DIVISOR_VGA1: 0x00031406 (II): VCLK_POST_DIV: 0x00020002 (II): VGACNTRL: 0xa0c4008e (disabled) (II): TV_CTL: 0x000c00d0 (II): TV_DAC: 0x70000000 (II): TV_CSC_Y: 0x0332012d (II): TV_CSC_Y2: 0x07d30104 (II): TV_CSC_U: 0x0733052d (II): TV_CSC_U2: 0x05c70200 (II): TV_CSC_V: 0x0340030c (II): TV_CSC_V2: 0x06d00200 (II): TV_CLR_KNOBS: 0x00404000 (II): TV_CLR_LEVEL: 0x010b00e1 (II): TV_H_CTL_1: 0x00400359 (II): TV_H_CTL_2: 0x80480022 (II): TV_H_CTL_3: 0x007c0344 (II): TV_V_CTL_1: 0x00f01415 (II): TV_V_CTL_2: 0x00060607 (II): TV_V_CTL_3: 0x80120001 (II): TV_V_CTL_4: 0x000900f0 (II): TV_V_CTL_5: 0x000a00f0 (II): TV_V_CTL_6: 0x000900f0 (II): TV_V_CTL_7: 0x000a00f0 (II): TV_SC_CTL_1: 0xc1710087 (II): TV_SC_CTL_2: 0x6b405140 (II): TV_SC_CTL_3: 0x00000000 (II): TV_WIN_POS: 0x00360024 (II): TV_WIN_SIZE: 0x02640198 (II): TV_FILTER_CTL_1: 0x8000085e (II): TV_FILTER_CTL_2: 0x00028283 (II): TV_FILTER_CTL_3: 0x00014141 (II): TV_CC_CONTROL: 0x00000000 (II): TV_CC_DATA: 0x00000000 (II): TV_H_LUMA_0: 0xb1403000 (II): TV_H_LUMA_59: 0x0000b060 (II): TV_H_CHROMA_0: 0xb1403000 (II): TV_H_CHROMA_59: 0x0000b060 (II): FBC_CFB_BASE: 0x00000000 (II): FBC_LL_BASE: 0x00000000 (II): FBC_CONTROL: 0x00000000 (II): FBC_COMMAND: 0x00000000 (II): FBC_STATUS: 0x00000000 (II): FBC_CONTROL2: 0x00000000 (II): FBC_FENCE_OFF: 0xc3010200 (II): FBC_MOD_NUM: 0x00000000 (II): MI_MODE: 0x00000200 (II): MI_ARB_STATE: 0x00000040 (II): MI_RDRET_STATE: 0x00000000 (II): ECOSKPD: 0x00000307 (II): DP_B: 0x0000001c (II): DPB_AUX_CH_CTL: 0x01450085 (II): DPB_AUX_CH_DATA1: 0x00000000 (II): DPB_AUX_CH_DATA2: 0x00000000 (II): DPB_AUX_CH_DATA3: 0x00000000 (II): DPB_AUX_CH_DATA4: 0x00000000 (II): DPB_AUX_CH_DATA5: 0x00000000 (II): DP_C: 0x0000001c (II): DPC_AUX_CH_CTL: 0x01450085 (II): DPC_AUX_CH_DATA1: 0x00000000 (II): DPC_AUX_CH_DATA2: 0x00000000 (II): DPC_AUX_CH_DATA3: 0x00000000 (II): DPC_AUX_CH_DATA4: 0x00000000 (II): DPC_AUX_CH_DATA5: 0x00000000 (II): DP_D: 0x0000001c (II): DPD_AUX_CH_CTL: 0x00050000 (II): DPD_AUX_CH_DATA1: 0x00000000 (II): DPD_AUX_CH_DATA2: 0x00000000 (II): DPD_AUX_CH_DATA3: 0x00000000 (II): DPD_AUX_CH_DATA4: 0x00000000 (II): DPD_AUX_CH_DATA5: 0x00000000 (II): SDVO phase shift 0 out of range -- probobly not an issue. (II): pipe A dot 108000 n 2 m1 14 m2 8 p1 2 p2 10 (II): SDVO phase shift 0 out of range -- probobly not an issue. (II): pipe B dot 82857 n 3 m1 19 m2 9 p1 2 p2 14 (II): DumpRegsEnd After stopping X server, text console is hosed: (II): DumpRegsBegin (II): CHDECMISC: 0x00000000 (none, ch2 enh disabled, ch1 enh disabled, ch0 enh disabled, flex disabled, ep not present) (II): C0DRB0: 0x000f0002 (0x0002) (II): C0DRB1: 0x0010000f (0x000f) (II): C0DRB2: 0x00000010 (0x0010) (II): C0DRB3: 0x00600000 (0x0000) (II): C1DRB0: 0x00000000 (0x0000) (II): C1DRB1: 0x00000000 (0x0000) (II): C1DRB2: 0x00000000 (0x0000) (II): C1DRB3: 0x00000000 (0x0000) (II): C0DRA01: 0x00810060 (0x0060) (II): C0DRA23: 0x00060081 (0x0081) (II): C1DRA01: 0x00000000 (0x0000) (II): C1DRA23: 0x00000000 (0x0000) (II): VCLK_DIVISOR_VGA0: 0x00031108 (n = 3, m1 = 17, m2 = 8) (II): VCLK_DIVISOR_VGA1: 0x00031406 (n = 3, m1 = 20, m2 = 6) (II): VCLK_POST_DIV: 0x00020002 (vga0 p1 = 4, p2 = 2, vga1 p1 = 2, p2 = 2) (II): DPLL_TEST: 0x00010001 () (II): CACHE_MODE_0: 0x00006820 (II): D_STATE: 0x00000000 (II): DSPCLK_GATE_D: 0x00040000 (clock gates disabled: DSSUNIT) (II): RENCLK_GATE_D1: 0x00000000 (II): RENCLK_GATE_D2: 0x00000000 (II): SDVOB: 0x0000089c (disabled, pipe A, stall disabled, detected) (II): SDVOC: 0x0000089c (disabled, pipe A, stall disabled, detected) (II): SDVOUDI: 0x00000000 (II): DSPARB: 0x00000000 (II): DSPFW1: 0x3f8f0f0f (II): DSPFW2: 0x150f0f0f (II): DSPFW3: 0x00000000 (II): ADPA: 0x40008c18 (disabled, pipe B, +hsync, +vsync) (II): LVDS: 0xc2208300 (enabled, pipe B, 18 bit, 1 channel) (II): DVOA: 0x00000000 (disabled, pipe A, no stall, -hsync, -vsync) (II): DVOB: 0x0000089c (disabled, pipe A, no stall, +hsync, +vsync) (II): DVOC: 0x0000089c (disabled, pipe A, no stall, +hsync, +vsync) (II): DVOA_SRCDIM: 0x00000000 (II): DVOB_SRCDIM: 0x00000000 (II): DVOC_SRCDIM: 0x00000000 (II): PP_CONTROL: 0x00000001 (power target: on) (II): PP_STATUS: 0xc0000008 (on, ready, sequencing idle) (II): PP_ON_DELAYS: 0x01f408fc (II): PP_OFF_DELAYS: 0x019008fc (II): PP_DIVISOR: 0x003e7f06 (II): PFIT_CONTROL: 0xa0000000 (II): PFIT_PGM_RATIOS: 0x08000800 (II): PORT_HOTPLUG_EN: 0x38000120 (II): PORT_HOTPLUG_STAT: 0x08000b00 (II): DSPACNTR: 0x00000000 (disabled, pipe A) (II): DSPASTRIDE: 0x00000000 (0 bytes) (II): DSPAPOS: 0x00000000 (0, 0) (II): DSPASIZE: 0x00000000 (1, 1) (II): DSPABASE: 0x00000000 (II): DSPASURF: 0x00000000 (II): DSPATILEOFF: 0x00000000 (II): PIPEACONF: 0x00000000 (disabled, inactive) (II): PIPEASRC: 0x027f01df (640, 480) (II): PIPEASTAT: 0x00000000 (status:) (II): FPA0: 0x00031108 (n = 3, m1 = 17, m2 = 8) (II): FPA1: 0x00031108 (n = 3, m1 = 17, m2 = 8) (II): DPLL_A: 0x04020c00 (disabled, non-dvo, VGA, default clock, DAC/serial mode, p1 = 2, p2 = 10) (II): DPLL_A_MD: 0x00000003 (II): HTOTAL_A: 0x031f027f (640 active, 800 total) (II): HBLANK_A: 0x03170287 (648 start, 792 end) (II): HSYNC_A: 0x02ef028f (656 start, 752 end) (II): VTOTAL_A: 0x020c01df (480 active, 525 total) (II): VBLANK_A: 0x020401e7 (488 start, 517 end) (II): VSYNC_A: 0x01eb01e9 (490 start, 492 end) (II): BCLRPAT_A: 0x00000000 (II): VSYNCSHIFT_A: 0x00000000 (II): DSPBCNTR: 0x19000000 (disabled, pipe B) (II): DSPBSTRIDE: 0x00000c80 (3200 bytes) (II): DSPBPOS: 0x00000000 (0, 0) (II): DSPBSIZE: 0x00000000 (1, 1) (II): DSPBBASE: 0x00000000 (II): DSPBSURF: 0x00000000 (II): DSPBTILEOFF: 0x00000000 (II): PIPEBCONF: 0xc0000000 (enabled, active) (II): PIPEBSRC: 0x027f018f (640, 400) (II): PIPEBSTAT: 0x80000206 (status: FIFO_UNDERRUN VSYNC_INT_STATUS SVBLANK_INT_STATUS VBLANK_INT_STATUS) (II): FPB0: 0x00011107 (n = 1, m1 = 17, m2 = 7) (II): FPB1: 0x00031108 (n = 3, m1 = 17, m2 = 8) (II): DPLL_B: 0x98046c00 (enabled, non-dvo, spread spectrum clock, LVDS mode, p1 = 3, p2 = 14) (II): DPLL_B_MD: 0x00000003 (II): HTOTAL_B: 0x067604ff (1280 active, 1655 total) (II): HBLANK_B: 0x067604ff (1280 start, 1655 end) (II): HSYNC_B: 0x05c70547 (1352 start, 1480 end) (II): VTOTAL_B: 0x033e031f (800 active, 831 total) (II): VBLANK_B: 0x033e031f (800 start, 831 end) (II): VSYNC_B: 0x03280322 (803 start, 809 end) (II): BCLRPAT_B: 0x00000000 (II): VSYNCSHIFT_B: 0x00000000 (II): VCLK_DIVISOR_VGA0: 0x00031108 (II): VCLK_DIVISOR_VGA1: 0x00031406 (II): VCLK_POST_DIV: 0x00020002 (II): VGACNTRL: 0x22c4008e (enabled) (II): TV_CTL: 0x000c00d0 (II): TV_DAC: 0x70000000 (II): TV_CSC_Y: 0x0332012d (II): TV_CSC_Y2: 0x07d30104 (II): TV_CSC_U: 0x0733052d (II): TV_CSC_U2: 0x05c70200 (II): TV_CSC_V: 0x0340030c (II): TV_CSC_V2: 0x06d00200 (II): TV_CLR_KNOBS: 0x00404000 (II): TV_CLR_LEVEL: 0x010b00e1 (II): TV_H_CTL_1: 0x00400359 (II): TV_H_CTL_2: 0x80480022 (II): TV_H_CTL_3: 0x007c0344 (II): TV_V_CTL_1: 0x00f01415 (II): TV_V_CTL_2: 0x00060607 (II): TV_V_CTL_3: 0x80120001 (II): TV_V_CTL_4: 0x000900f0 (II): TV_V_CTL_5: 0x000a00f0 (II): TV_V_CTL_6: 0x000900f0 (II): TV_V_CTL_7: 0x000a00f0 (II): TV_SC_CTL_1: 0xc1710087 (II): TV_SC_CTL_2: 0x6b405140 (II): TV_SC_CTL_3: 0x00000000 (II): TV_WIN_POS: 0x00360024 (II): TV_WIN_SIZE: 0x02640198 (II): TV_FILTER_CTL_1: 0x8000085e (II): TV_FILTER_CTL_2: 0x00028283 (II): TV_FILTER_CTL_3: 0x00014141 (II): TV_CC_CONTROL: 0x00000000 (II): TV_CC_DATA: 0x00000000 (II): TV_H_LUMA_0: 0xb1403000 (II): TV_H_LUMA_59: 0x0000b060 (II): TV_H_CHROMA_0: 0xb1403000 (II): TV_H_CHROMA_59: 0x0000b060 (II): FBC_CFB_BASE: 0x00000000 (II): FBC_LL_BASE: 0x00000000 (II): FBC_CONTROL: 0x00000000 (II): FBC_COMMAND: 0x00000000 (II): FBC_STATUS: 0x00000000 (II): FBC_CONTROL2: 0x00000000 (II): FBC_FENCE_OFF: 0xc3010200 (II): FBC_MOD_NUM: 0x00000000 (II): MI_MODE: 0x00000200 (II): MI_ARB_STATE: 0x00000040 (II): MI_RDRET_STATE: 0x00000000 (II): ECOSKPD: 0x00000307 (II): DP_B: 0x0000001c (II): DPB_AUX_CH_CTL: 0x01450085 (II): DPB_AUX_CH_DATA1: 0x00000000 (II): DPB_AUX_CH_DATA2: 0x00000000 (II): DPB_AUX_CH_DATA3: 0x00000000 (II): DPB_AUX_CH_DATA4: 0x00000000 (II): DPB_AUX_CH_DATA5: 0x00000000 (II): DP_C: 0x0000001c (II): DPC_AUX_CH_CTL: 0x01450085 (II): DPC_AUX_CH_DATA1: 0x00000000 (II): DPC_AUX_CH_DATA2: 0x00000000 (II): DPC_AUX_CH_DATA3: 0x00000000 (II): DPC_AUX_CH_DATA4: 0x00000000 (II): DPC_AUX_CH_DATA5: 0x00000000 (II): DP_D: 0x0000001c (II): DPD_AUX_CH_CTL: 0x00050000 (II): DPD_AUX_CH_DATA1: 0x00000000 (II): DPD_AUX_CH_DATA2: 0x00000000 (II): DPD_AUX_CH_DATA3: 0x00000000 (II): DPD_AUX_CH_DATA4: 0x00000000 (II): DPD_AUX_CH_DATA5: 0x00000000 (II): pipe A dot 100800 n 3 m1 17 m2 8 p1 2 p2 10 (II): pipe B dot 82539 n 1 m1 17 m2 7 p1 3 p2 14 (II): DumpRegsEnd Will attach xorg.0.log next.
Created attachment 23142 [details] Xorg.0.log log for session in which corruption was observed.
Here's the reg dump after a successful switch to text console: (II): DumpRegsBegin (II): CHDECMISC: 0x00000000 (none, ch2 enh disabled, ch1 enh disabled, ch0 enh disabled, flex disabled, ep not present) (II): C0DRB0: 0x000f0002 (0x0002) (II): C0DRB1: 0x0010000f (0x000f) (II): C0DRB2: 0x00000010 (0x0010) (II): C0DRB3: 0x00600000 (0x0000) (II): C1DRB0: 0x00000000 (0x0000) (II): C1DRB1: 0x00000000 (0x0000) (II): C1DRB2: 0x00000000 (0x0000) (II): C1DRB3: 0x00000000 (0x0000) (II): C0DRA01: 0x00810060 (0x0060) (II): C0DRA23: 0x00060081 (0x0081) (II): C1DRA01: 0x00000000 (0x0000) (II): C1DRA23: 0x00000000 (0x0000) (II): VCLK_DIVISOR_VGA0: 0x00031108 (n = 3, m1 = 17, m2 = 8) (II): VCLK_DIVISOR_VGA1: 0x00031406 (n = 3, m1 = 20, m2 = 6) (II): VCLK_POST_DIV: 0x00020002 (vga0 p1 = 4, p2 = 2, vga1 p1 = 2, p2 = 2) (II): DPLL_TEST: 0x00010001 () (II): CACHE_MODE_0: 0x00006820 (II): D_STATE: 0x00000000 (II): DSPCLK_GATE_D: 0x00040000 (clock gates disabled: DSSUNIT) (II): RENCLK_GATE_D1: 0x00000000 (II): RENCLK_GATE_D2: 0x00000000 (II): SDVOB: 0x0000089c (disabled, pipe A, stall disabled, detected) (II): SDVOC: 0x0000089c (disabled, pipe A, stall disabled, detected) (II): SDVOUDI: 0x00000000 (II): DSPARB: 0x00000000 (II): DSPFW1: 0x3f8f0f0f (II): DSPFW2: 0x150f0f0f (II): DSPFW3: 0x00000000 (II): ADPA: 0x40008c18 (disabled, pipe B, +hsync, +vsync) (II): LVDS: 0xc2208300 (enabled, pipe B, 18 bit, 1 channel) (II): DVOA: 0x00000000 (disabled, pipe A, no stall, -hsync, -vsync) (II): DVOB: 0x0000089c (disabled, pipe A, no stall, +hsync, +vsync) (II): DVOC: 0x0000089c (disabled, pipe A, no stall, +hsync, +vsync) (II): DVOA_SRCDIM: 0x00000000 (II): DVOB_SRCDIM: 0x00000000 (II): DVOC_SRCDIM: 0x00000000 (II): PP_CONTROL: 0x00000001 (power target: on) (II): PP_STATUS: 0xc0000008 (on, ready, sequencing idle) (II): PP_ON_DELAYS: 0x01f408fc (II): PP_OFF_DELAYS: 0x019008fc (II): PP_DIVISOR: 0x003e7f06 (II): PFIT_CONTROL: 0xa0000000 (II): PFIT_PGM_RATIOS: 0x08000800 (II): PORT_HOTPLUG_EN: 0x38000120 (II): PORT_HOTPLUG_STAT: 0x08000b00 (II): DSPACNTR: 0x00000000 (disabled, pipe A) (II): DSPASTRIDE: 0x00000000 (0 bytes) (II): DSPAPOS: 0x00000000 (0, 0) (II): DSPASIZE: 0x00000000 (1, 1) (II): DSPABASE: 0x00000000 (II): DSPASURF: 0x00000000 (II): DSPATILEOFF: 0x00000000 (II): PIPEACONF: 0x00000000 (disabled, inactive) (II): PIPEASRC: 0x027f01df (640, 480) (II): PIPEASTAT: 0x00000000 (status:) (II): FPA0: 0x00031108 (n = 3, m1 = 17, m2 = 8) (II): FPA1: 0x00031108 (n = 3, m1 = 17, m2 = 8) (II): DPLL_A: 0x04020c00 (disabled, non-dvo, VGA, default clock, DAC/serial mode, p1 = 2, p2 = 10) (II): DPLL_A_MD: 0x00000003 (II): HTOTAL_A: 0x031f027f (640 active, 800 total) (II): HBLANK_A: 0x03170287 (648 start, 792 end) (II): HSYNC_A: 0x02ef028f (656 start, 752 end) (II): VTOTAL_A: 0x020c01df (480 active, 525 total) (II): VBLANK_A: 0x020401e7 (488 start, 517 end) (II): VSYNC_A: 0x01eb01e9 (490 start, 492 end) (II): BCLRPAT_A: 0x00000000 (II): VSYNCSHIFT_A: 0x00000000 (II): DSPBCNTR: 0x19000000 (disabled, pipe B) (II): DSPBSTRIDE: 0x00000c80 (3200 bytes) (II): DSPBPOS: 0x00000000 (0, 0) (II): DSPBSIZE: 0x00000000 (1, 1) (II): DSPBBASE: 0x00000000 (II): DSPBSURF: 0x00000000 (II): DSPBTILEOFF: 0x00000000 (II): PIPEBCONF: 0xc0000000 (enabled, active) (II): PIPEBSRC: 0x027f018f (640, 400) (II): PIPEBSTAT: 0x00000206 (status: VSYNC_INT_STATUS SVBLANK_INT_STATUS VBLANK_INT_STATUS) (II): FPB0: 0x00011107 (n = 1, m1 = 17, m2 = 7) (II): FPB1: 0x00031108 (n = 3, m1 = 17, m2 = 8) (II): DPLL_B: 0x98046c00 (enabled, non-dvo, spread spectrum clock, LVDS mode, p1 = 3, p2 = 14) (II): DPLL_B_MD: 0x00000003 (II): HTOTAL_B: 0x067604ff (1280 active, 1655 total) (II): HBLANK_B: 0x067604ff (1280 start, 1655 end) (II): HSYNC_B: 0x05c70547 (1352 start, 1480 end) (II): VTOTAL_B: 0x033e031f (800 active, 831 total) (II): VBLANK_B: 0x033e031f (800 start, 831 end) (II): VSYNC_B: 0x03280322 (803 start, 809 end) (II): BCLRPAT_B: 0x00000000 (II): VSYNCSHIFT_B: 0x00000000 (II): VCLK_DIVISOR_VGA0: 0x00031108 (II): VCLK_DIVISOR_VGA1: 0x00031406 (II): VCLK_POST_DIV: 0x00020002 (II): VGACNTRL: 0x22c4008e (enabled) (II): TV_CTL: 0x000c00d0 (II): TV_DAC: 0x70000000 (II): TV_CSC_Y: 0x0332012d (II): TV_CSC_Y2: 0x07d30104 (II): TV_CSC_U: 0x0733052d (II): TV_CSC_U2: 0x05c70200 (II): TV_CSC_V: 0x0340030c (II): TV_CSC_V2: 0x06d00200 (II): TV_CLR_KNOBS: 0x00404000 (II): TV_CLR_LEVEL: 0x010b00e1 (II): TV_H_CTL_1: 0x00400359 (II): TV_H_CTL_2: 0x80480022 (II): TV_H_CTL_3: 0x007c0344 (II): TV_V_CTL_1: 0x00f01415 (II): TV_V_CTL_2: 0x00060607 (II): TV_V_CTL_3: 0x80120001 (II): TV_V_CTL_4: 0x000900f0 (II): TV_V_CTL_5: 0x000a00f0 (II): TV_V_CTL_6: 0x000900f0 (II): TV_V_CTL_7: 0x000a00f0 (II): TV_SC_CTL_1: 0xc1710087 (II): TV_SC_CTL_2: 0x6b405140 (II): TV_SC_CTL_3: 0x00000000 (II): TV_WIN_POS: 0x00360024 (II): TV_WIN_SIZE: 0x02640198 (II): TV_FILTER_CTL_1: 0x80000d63 (II): TV_FILTER_CTL_2: 0x0001e1e2 (II): TV_FILTER_CTL_3: 0x0000f0f1 (II): TV_CC_CONTROL: 0x00000000 (II): TV_CC_DATA: 0x00000000 (II): TV_H_LUMA_0: 0xb1403000 (II): TV_H_LUMA_59: 0x0000b060 (II): TV_H_CHROMA_0: 0xb1403000 (II): TV_H_CHROMA_59: 0x0000b060 (II): FBC_CFB_BASE: 0x00000000 (II): FBC_LL_BASE: 0x00000000 (II): FBC_CONTROL: 0x00000000 (II): FBC_COMMAND: 0x00000000 (II): FBC_STATUS: 0x00000000 (II): FBC_CONTROL2: 0x00000000 (II): FBC_FENCE_OFF: 0xc3010200 (II): FBC_MOD_NUM: 0x00000000 (II): MI_MODE: 0x00000200 (II): MI_ARB_STATE: 0x00000040 (II): MI_RDRET_STATE: 0x00000000 (II): ECOSKPD: 0x00000307 (II): DP_B: 0x0000001c (II): DPB_AUX_CH_CTL: 0x01450085 (II): DPB_AUX_CH_DATA1: 0x00000000 (II): DPB_AUX_CH_DATA2: 0x00000000 (II): DPB_AUX_CH_DATA3: 0x00000000 (II): DPB_AUX_CH_DATA4: 0x00000000 (II): DPB_AUX_CH_DATA5: 0x00000000 (II): DP_C: 0x0000001c (II): DPC_AUX_CH_CTL: 0x01450085 (II): DPC_AUX_CH_DATA1: 0x00000000 (II): DPC_AUX_CH_DATA2: 0x00000000 (II): DPC_AUX_CH_DATA3: 0x00000000 (II): DPC_AUX_CH_DATA4: 0x00000000 (II): DPC_AUX_CH_DATA5: 0x00000000 (II): DP_D: 0x0000001c (II): DPD_AUX_CH_CTL: 0x00050000 (II): DPD_AUX_CH_DATA1: 0x00000000 (II): DPD_AUX_CH_DATA2: 0x00000000 (II): DPD_AUX_CH_DATA3: 0x00000000 (II): DPD_AUX_CH_DATA4: 0x00000000 (II): DPD_AUX_CH_DATA5: 0x00000000 (II): pipe A dot 100800 n 3 m1 17 m2 8 p1 2 p2 10 (II): pipe B dot 82539 n 1 m1 17 m2 7 p1 3 p2 14 (II): DumpRegsEnd The diff between busted and working looks possibly interesting: --- /tmp/intel-regs.afterswitch-busted 2009-02-20 13:53:16.000000000 -0800 +++ /tmp/intel-regs.afterswitch-working 2009-02-20 14:00:40.000000000 -0800 @@ -76,7 +76,7 @@ (II): DSPBTILEOFF: 0x00000000 (II): PIPEBCONF: 0xc0000000 (enabled, active) (II): PIPEBSRC: 0x027f018f (640, 400) -(II): PIPEBSTAT: 0x80000206 (status: FIFO_UNDERRUN VSYNC_INT_STATUS SVBLANK_INT_STATUS VBLANK_INT_STATUS) +(II): PIPEBSTAT: 0x00000206 (status: VSYNC_INT_STATUS SVBLANK_INT_STATUS VBLANK_INT_STATUS) (II): FPB0: 0x00011107 (n = 1, m1 = 17, m2 = 7) (II): FPB1: 0x00031108 (n = 3, m1 = 17, m2 = 8) (II): DPLL_B: 0x98046c00 (enabled, non-dvo, spread spectrum clock, LVDS mode, p1 = 3, p2 = 14) @@ -118,9 +118,9 @@ (II): TV_SC_CTL_3: 0x00000000 (II): TV_WIN_POS: 0x00360024 (II): TV_WIN_SIZE: 0x02640198 -(II): TV_FILTER_CTL_1: 0x8000085e -(II): TV_FILTER_CTL_2: 0x00028283 -(II): TV_FILTER_CTL_3: 0x00014141 +(II): TV_FILTER_CTL_1: 0x80000d63 +(II): TV_FILTER_CTL_2: 0x0001e1e2 +(II): TV_FILTER_CTL_3: 0x0000f0f1 (II): TV_CC_CONTROL: 0x00000000 (II): TV_CC_DATA: 0x00000000 (II): TV_H_LUMA_0: 0xb1403000
(In reply to comment #0) > Created an attachment (id=22326) [details] > digicam photo of corruption > > I'm seeing a corrupt console on switching back to VGA text console from X on a > Dell E4300. The same failure mode is observed on Dell E6400, which has similar hardware.
I have the same issue with a Vaio VGN-FW235J, using the git version of intel driver and vanilla kernel 2.6.29 (32 bit). When I use NoAccel = true, the swith to vt (and back to X) works.
I confirm the same behavior on DELL Latitude E6400. 00:02.0 VGA compatible controller: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 07) Subsystem: Dell Device 0233 Flags: bus master, fast devsel, latency 0, IRQ 11 Memory at f6c00000 (64-bit, non-prefetchable) [size=4M] Memory at e0000000 (64-bit, prefetchable) [size=256M] I/O ports at ef70 [size=8] Capabilities: [90] Message Signalled Interrupts: Mask- 64bit- Queue=0/0 Enable- Capabilities: [d0] Power Management version 3 (--) PCI:*(0@0:2:0) Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller rev 7, Mem @ 0xf6c00000/4194304, 0xe0000000/268435456, I/O @ 0x0000ef70/8 (--) PCI: (0@0:2:1) Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller rev 7, Mem @ 0xf6b00000/1048576 linux-image-2.6.30-020630rc3-generic 2.6.30-020630rc3 xserver-xorg-core 2:1.6.1-1 xserver-xorg-video-intel 2:2.7.99.1+git20090424.106e4b44-0ubuntu0tormod libdrm-intel1 2.4.9-1ubuntu1~xup~1 libdrm2 2.4.9-1ubuntu1~xup~1
Does this still happen with the 2.7.0 driver?
(In reply to comment #9) > Does this still happen with the 2.7.0 driver? > Yes. I'm using the version 2.7.99 and I have the same issue. I don't know if this issue is related only with intel_drv. I need add a NoAccel in my xorg.conf to workaround, so I suppose that this problem is relates with dri driver too.
Hm weird... I've been using it on my GM45 w/o problems... I'll try to reproduce again with the latest bits.
(In reply to comment #10) > (In reply to comment #9) > > Does this still happen with the 2.7.0 driver? > > Yes. I'm using the version 2.7.99 and I have the same issue. > > I don't know if this issue is related only with intel_drv. > > I need add a NoAccel in my xorg.conf to workaround, so I suppose that this > problem is relates with dri driver too. Using xserver-xorg-video-intel 2:2.7.99.1+git20090503.8255cca2-0ubuntu0sarvatt I can't reproduce the failure on my Dell E4300. I did see at least one VT switch fail (and switch back to X), but Xorg never left the pipe in a failing state. I tested both with EXA and UXA, mostly UXA. So at least for me, 2.7.99.1 fixes this problem. My xorg.conf says: Section "Monitor" Identifier "Configured Monitor" EndSection Section "Screen" Identifier "Default Screen" Monitor "Configured Monitor" Device "Configured Video Device" EndSection Section "Device" Identifier "Configured Video Device" Option "AccelMethod" "UXA" EndSection
Ok, marking as fixed, thanks for the update Andy.
(In reply to comment #13) > Ok, marking as fixed, thanks for the update Andy. Unfortunately I just experienced a failure on shutdown: * Dell E4300 * xserver-xorg-video-intel 2:2.7.99.1+git20090503.8255cca2-0ubuntu0sarvatt * 2.6.28.10 (ish, it's actually an Ubuntu Jaunty git tree + some local patches) * more or less Ubuntu Jaunty userland (it was upgraded from Intrepid with apt) I did "sudo reboot" in an xterm and userland seemed to behave normally except that when the X server switched back to VT1 I saw the same failure mode as shown in http://bugs.freedesktop.org/attachment.cgi?id=22326 and the system seemed hung. I waited for maybe 30 seconds and tried to ssh in on eth0 but userland was sufficiently gone that nothing worked. Alt-Sysrq-B rebooted the system and there's very little useful in the logs; /var/log/kern.log says May 6 16:44:42 cvpe4300 kernel: [ 5324.206176] wlan0: associated May 6 16:44:42 cvpe4300 kernel: [ 5324.209676] wlan0: disassociating by local choice (reason=3) May 6 16:44:42 cvpe4300 kernel: [ 5324.213971] wlan0: No STA entry for own AP 00:0b:0e:46:5c:00 May 6 16:44:42 cvpe4300 kernel: [ 5324.404009] wlan0: No STA entry for own AP 00:0b:0e:46:5c:00 May 6 16:44:43 cvpe4300 kernel: [ 5325.327898] [drm:gm45_get_vblank_counter] *ERROR* trying to get vblank count for disabled pipe 0 May 6 16:44:43 cvpe4300 kernel: [ 5325.336895] mtrr: no MTRR for e0000000,10000000 found The xorg.0.log says: (II) UnloadModule: "synaptics" (II) DualPoint Stick: Close (II) UnloadModule: "evdev" (WW) intel(0): drmDropMaster failed: Invalid argument ddxSigGiveUp: Closing log so maybe the DRM errors are correlated, I dunno... I have seen "trying to get vblank count for disabled pipe 0" before, but haven't been watching for them post the 2.7.99 upgrade. I'll attach the complete Xorg.0.log.old from the crashed session just for completeness.
Created attachment 25577 [details] xorg log from hung session
Another interesting info: I using CONFIG_HIGHMEM64G. Building the kernel with CONFIG_NOHIGHMEM or CONFIG_HIGHMEM4G, I have a blank screen when *start* the X. The same blank screen when I switch from X to vt using the kernel with CONFIG_HIGHMEM64G. Maybe another issue, or the same with different symptoms. Tested with kernel 2.6.30-rc4-git3.
(In reply to comment #14) > Unfortunately I just experienced a failure on shutdown: > * Dell E4300 > * xserver-xorg-video-intel 2:2.7.99.1+git20090503.8255cca2-0ubuntu0sarvatt > * 2.6.28.10 (ish, it's actually an Ubuntu Jaunty git tree + some local patches) > * more or less Ubuntu Jaunty userland (it was upgraded from Intrepid with apt) > > I did "sudo reboot" in an xterm and userland seemed to behave normally except > that when the X server switched back to VT1 I saw the same failure mode as > shown in http://bugs.freedesktop.org/attachment.cgi?id=22326 and the system > seemed hung. I just had another "sudo reboot" result in the "8 pixels of raging snow" graphics glitch, but userland continued on to reboot successfully. Same kernel and xorg-video-intel as above. After reboot, Xorg.0.log.old ends with: (II) UnloadModule: "synaptics" (II) DualPoint Stick: Close (II) UnloadModule: "evdev" (WW) intel(0): drmDropMaster failed: Invalid argument ddxSigGiveUp: Closing log and the relevant chunk of syslog says: May 7 10:38:33 cvpe4300 kernel: [64357.669536] wlan0: RX AssocResp from 00:0b:0e:46:9e:00 (capab=0x421 status=0 aid=1) May 7 10:38:33 cvpe4300 kernel: [64357.669542] wlan0: associated May 7 10:38:33 cvpe4300 kernel: [64357.671593] wlan0: disassociating by local choice (reason=3) May 7 10:38:34 cvpe4300 kernel: [64358.790543] [drm:gm45_get_vblank_counter] *ERROR* trying to get vblank count for disabled pipe 0 May 7 10:38:34 cvpe4300 kernel: [64358.799245] mtrr: no MTRR for e0000000,10000000 found May 7 10:38:35 cvpe4300 console-kit-daemon[3879]: GLib-GObject-WARNING: instance of invalid non-instantiatable type `(null)' May 7 10:38:35 cvpe4300 console-kit-daemon[3879]: GLib-GObject-CRITICAL: g_signal_emit_valist: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed May 7 10:38:35 cvpe4300 pkcsslotd: Exiting on SIGTERM (15; 0xf)
(In reply to comment #17) > I just had another "sudo reboot" result in the "8 pixels of raging snow" > graphics glitch And after rebooting to 2.7.0, another "sudo reboot" triggered 8-rows-of-snow and a hang. Looks like I've got a pretty reliable reproduction case, so I'd be happy to try additional patches. (Easiest for me if they can be provided as a PPA, but I'm willing to give a shot at compiling my own from git, since apparently all I'll need to replace is intel_drv.so?)
Wow, weird. I'm not sure what's going on here... Could be some left over rendering clobbering VGA related memory, or maybe we're switching back to a mode we don't restore fully (are you using vesafb or anything underneath X?).
(In reply to comment #19) > Wow, weird. I'm not sure what's going on here... Could be some left over > rendering clobbering VGA related memory, or maybe we're switching back to a > mode we don't restore fully (are you using vesafb or anything underneath X?). Plain old vga console, although the ubuntu initscripts set some VGA font. The graphics corruption looks exactly the same as in comment #0. The other (seemingly related) behavior I'm seeing nowadays is that when I hit C-A-F1 to switch back to text console, sometimes the X server blinks away, switches modes, and then switches back to X. After a few tries it will stick on vcs1 and work fine. This behavior seemed to appear around the time of comment #12, when I upgraded to 2.7.99.1. (I'm now seeing it with 2.7.0.)
(In reply to comment #20) > (In reply to comment #19) > > Wow, weird. I'm not sure what's going on here... Could be some left over > > rendering clobbering VGA related memory, or maybe we're switching back to a > > mode we don't restore fully (are you using vesafb or anything underneath X?). > > Plain old vga console, although the ubuntu initscripts set some VGA font. The > graphics corruption looks exactly the same as in comment #0. > > The other (seemingly related) behavior I'm seeing nowadays is that when I hit > C-A-F1 to switch back to text console, sometimes the X server blinks away, > switches modes, and then switches back to X. After a few tries it will stick > on vcs1 and work fine. This behavior seemed to appear around the time of > comment #12, when I upgraded to 2.7.99.1. (I'm now seeing it with 2.7.0.) I'm still seeing these symptoms on multiple machines running 2.7.1. symptom 1: switching back to VGA text sometimes results in a flashing screen with random flickering text fragments in the top 8 rows of pixels. Sub-symptom 1.1: switching back to VGA text mode sometimes "fails" and ends up switching back to X. Hitting C-A-F1 a second or third time always works eventually. Symptom 2: occasional hangs during shutdown that appear to be due to X hanging during shutdown. I haven't gotten a backtrace as I've never seen this happen while able to ssh in.
Are you still seeing this Andy? I don't have any new ideas; I'm just hoping it magically went away with some other fix...
(In reply to comment #22) > Are you still seeing this Andy? I don't have any new ideas; I'm just hoping it > magically went away with some other fix... I am still seeing it with 2.7.1, sorry to say. :/ Trying 2.7.99 (git 6d025e67) now...
(In reply to comment #23) > Trying 2.7.99 (git 6d025e67) now... That was bizarre, it came back using vesa_drv -- never had that happen before. I did sudo apt-get install xserver-xorg-video-intel to install II xserver-xorg-video-intel 2:2.7.99.901+git20090623.6d025e67-0ubuntu0sarvatt~jaunty (previously: 2:2.7.1-0ubuntu1~xup~1) and rebooted. My xorg.conf says: Section "Device" Identifier "Configured Video Device" Option "AccelMethod" "UXA" EndSection Previously that's always resulted in autoloading intel_drv, but this time it loaded vesa_drv. So I added in: Driver "intel" and now it's back to loading intel_drv. And unfortunately, I just reproduced the console corruption switching back to VT1 with the new driver. xorg.0.log attached.
Created attachment 27068 [details] Xorg.0.log-2.7.99.901+git20090623.6d025e67
Hm, I know there's an fbdev related bug, but the server shouldn't be picking the vesa driver for your device... Can you capture register dumps from a fresh boot before starting X and then after you've switched VTs and see the corruption? I'd like to compare...
Created attachment 27092 [details] regs before running X (In reply to comment #26) > Hm, I know there's an fbdev related bug, but the server shouldn't be picking > the vesa driver for your device... Heh, I'll try to open a separate bug on that. > Can you capture register dumps from a fresh boot before starting X and then > after you've switched VTs and see the corruption? I'd like to compare... Attaching three files: 1. regs after a warm reboot 2. regs after starting X 3. regs after switching back to VT1 and seeing corruption
Created attachment 27093 [details] regs after running X
Created attachment 27094 [details] regs while displaying corruption
(In reply to comment #29) > Created an attachment (id=27094) [details] > regs while displaying corruption Jesse, We're still seeing this with 2:2.8.0+git20090806.62494407-0ubuntu0sarvatt~jaunty and I'd of course be happy to test out any patches you'd like me to try. Thanks, -andy
Maybe this commit fixed it? commit 376397c21eb9a7e4ea79d349af41da81c1af861f Author: Zhenyu Wang <zhenyuw@linux.intel.com> Date: Tue Aug 18 10:01:12 2009 +0800 Fix VGA plane disabling KMS should also work around the issue.
Sorry for the delay in responding, I was on vacation and then buried in email. (In reply to comment #31) > Maybe this commit fixed it? > > commit 376397c21eb9a7e4ea79d349af41da81c1af861f > Author: Zhenyu Wang <zhenyuw@linux.intel.com> > Date: Tue Aug 18 10:01:12 2009 +0800 > > Fix VGA plane disabling Alas, I just re-tested with xserver-xorg-video-intel 2:2.8.99.901~git20090915.b8c5c996-0ubuntu0tormod~jaunty from xorg-edgers and still see the display corruption when switching back to VGA text. I'm running 2.6.31-ish, ab86e5765d41a5eb4239a1c04d613db87bea5ed8 with some patches for dell-wmi that shouldn't affect anything, not using KMS. > KMS should also work around the issue. I'll give that a shot, but the software impact is ... nontrivial...
I'm still not able to reproduce this on my x200, and your logs unfortunately didn't help narrow things down too much (you had configs with DRI1 + GEM, DRI2 + GEM, and fake memory management). The only common thread was a lack of KMS support. Looking at LeaveVT in the non-KMS path it looks like we may have the hw state restore vs ring stop out of order, if you can reproduce the problem fairly easily, can you try this patch out? diff --git a/src/i830_driver.c b/src/i830_driver.c index 316a1fa..b45ed75 100644 --- a/src/i830_driver.c +++ b/src/i830_driver.c @@ -2871,7 +2871,6 @@ I830LeaveVT(int scrnIndex, int flags) I830Sync(pScrn); if (!pI830->use_drm_mode) { - RestoreHWState(pScrn); /* Evict everything from the bufmgr, as we're about to lose ownership of * the graphics memory. */ @@ -2884,6 +2883,7 @@ I830LeaveVT(int scrnIndex, int flags) i830CompareRegsToSnapshot(pScrn, "After LeaveVT"); i830DumpRegs (pScrn); } + RestoreHWState(pScrn); } intel_batch_teardown(pScrn);
(In reply to comment #33) > I'm still not able to reproduce this on my x200 I'm seeing it reliably on Dell (e4300, e6400) and HP, but I do not see it on Thinkpad gear, sorry for not making that clear earlier (I have a shortage of Thinkpads to test on). >, and your logs unfortunately > didn't help narrow things down too much (you had configs with DRI1 + GEM, DRI2 > + GEM, and fake memory management). The only common thread was a lack of KMS > support. Yes, that was kinda my point -- nothing I tried short of KMS fixed the problem. :) > Looking at LeaveVT in the non-KMS path it looks like we may have the > hw state restore vs ring stop out of order, if you can reproduce the problem > fairly easily, can you try this patch out? > > diff --git a/src/i830_driver.c b/src/i830_driver.c > index 316a1fa..b45ed75 100644 > --- a/src/i830_driver.c > +++ b/src/i830_driver.c > @@ -2871,7 +2871,6 @@ I830LeaveVT(int scrnIndex, int flags) > I830Sync(pScrn); > > if (!pI830->use_drm_mode) { > - RestoreHWState(pScrn); > /* Evict everything from the bufmgr, as we're about to lose ownership > of > * the graphics memory. > */ > @@ -2884,6 +2883,7 @@ I830LeaveVT(int scrnIndex, int flags) > i830CompareRegsToSnapshot(pScrn, "After LeaveVT"); > i830DumpRegs (pScrn); > } > + RestoreHWState(pScrn); > } > > intel_batch_teardown(pScrn); Thanks for the patch, I'll try it this afternoon.
(In reply to comment #34) > > diff --git a/src/i830_driver.c b/src/i830_driver.c > > index 316a1fa..b45ed75 100644 > > --- a/src/i830_driver.c > > +++ b/src/i830_driver.c > > @@ -2871,7 +2871,6 @@ I830LeaveVT(int scrnIndex, int flags) > > I830Sync(pScrn); > > > > if (!pI830->use_drm_mode) { > > - RestoreHWState(pScrn); > > /* Evict everything from the bufmgr, as we're about to lose ownership > > of > > * the graphics memory. > > */ > > @@ -2884,6 +2883,7 @@ I830LeaveVT(int scrnIndex, int flags) > > i830CompareRegsToSnapshot(pScrn, "After LeaveVT"); > > i830DumpRegs (pScrn); > > } > > + RestoreHWState(pScrn); > > } > > > > intel_batch_teardown(pScrn); > > Thanks for the patch, I'll try it this afternoon. With this patch I still get flickery snow on switching back to VGA textmode. It always reliably fails on first C-A-F1 rather than comment 20's "first switch fails and switches back to X" behavior, which is a difference from without this patch.
Created attachment 30128 [details] [review] re-enable dumping of vga regs Can you capture dumps after applying this patch? We may not be fully restoring VGA state, or your VGA fonts may be getting clobbered between the RestoreHW call and the end of LeaveVT (you could try moving it down even further than that last patch, below the GEM leavevt call as a test).
(In reply to comment #36) > Created an attachment (id=30128) [details] > re-enable dumping of vga regs > > Can you capture dumps after applying this patch? We may not be fully restoring > VGA state, or your VGA fonts may be getting clobbered between the RestoreHW > call and the end of LeaveVT (you could try moving it down even further than > that last patch, below the GEM leavevt call as a test). I applied your register-dumping patch and moved RestoreHWState to the very end of I830LeaveVT: @@ -2908,6 +2907,9 @@ I830LeaveVT(int scrnIndex, int flags) if (ret) xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "drmDropMaster failed: %s\n", strerror(errno)); + xf86DrvMsg(pScrn->scrnIndex, X_WARNING, + "calling RestoreHWState at the very last moment\n"); + RestoreHWState(pScrn); } (I also tried inserting it immediately before the call to gen4_render_state_cleanup().) In all cases I have seen at least one switch-back-to-VT fail with the same flickering snow. The failure rate on the first switch after Xorg starts up is 90% on this E4300 hardware; once, with RestoreHWState called before gen4_render_state_cleanup, I saw a new behavior -- most of the VGA 80x25 screen was OK, but the top left 8x4 characters were corrupted (showing various VGA characters including the box-drawing characters etc.) That same driver later gave the standard flickering snow behavior. I'll attach the log from "ModeDebug" "true" with your debug patch.
Created attachment 30131 [details] Xorg.0.log-reg-dumps Here's the log file with the requested register dumps. This is from immediately switching away to text console after X started; let me know if you'd like additional register dumps.
(In reply to comment #38) > Created an attachment (id=30131) [details] > Xorg.0.log-reg-dumps > > Here's the log file with the requested register dumps. This is from > immediately switching away to text console after X started; let me know if > you'd like additional register dumps. Just for completeness, here's the output from intel_reg_dumper during the flickering snow: (II): DumpRegsBegin (II): DCC: 0x000f0002 (dual channel interleaved, XOR randomization: enabled, XOR bit: 11) (II): CHDECMISC: 0x00000000 (none, ch2 enh disabled, ch1 enh disabled, ch0 enh disabled, flex disabled, ep not present) (II): C0DRB0: 0x000f0002 (0x0002) (II): C0DRB1: 0x0010000f (0x000f) (II): C0DRB2: 0x00000010 (0x0010) (II): C0DRB3: 0x00600000 (0x0000) (II): C1DRB0: 0x00000000 (0x0000) (II): C1DRB1: 0x00000000 (0x0000) (II): C1DRB2: 0x00000000 (0x0000) (II): C1DRB3: 0x00000000 (0x0000) (II): C0DRA01: 0x00810060 (0x0060) (II): C0DRA23: 0x00060081 (0x0081) (II): C1DRA01: 0x00000000 (0x0000) (II): C1DRA23: 0x00000000 (0x0000) (II): PGETBL_CTL: 0x00000001 (II): VCLK_DIVISOR_VGA0: 0x00031108 (n = 3, m1 = 17, m2 = 8) (II): VCLK_DIVISOR_VGA1: 0x00031406 (n = 3, m1 = 20, m2 = 6) (II): VCLK_POST_DIV: 0x00020002 (vga0 p1 = 4, p2 = 2, vga1 p1 = 2, p2 = 2) (II): DPLL_TEST: 0x00010001 () (II): CACHE_MODE_0: 0x00006820 (II): D_STATE: 0x00000000 (II): DSPCLK_GATE_D: 0x00040000 (clock gates disabled: DSSUNIT) (II): RENCLK_GATE_D1: 0x00000000 (II): RENCLK_GATE_D2: 0x00000000 (II): SDVOB: 0x0000089c (disabled, pipe A, stall disabled, detected) (II): SDVOC: 0x0000089c (disabled, pipe A, stall disabled, detected) (II): SDVOUDI: 0x00000000 (II): DSPARB: 0x00000000 (II): DSPFW1: 0x3f8f0f0f (II): DSPFW2: 0x150f0f0f (II): DSPFW3: 0x00000000 (II): ADPA: 0x40008c18 (disabled, pipe B, +hsync, +vsync) (II): LVDS: 0xc2208300 (enabled, pipe B, 18 bit, 1 channel) (II): DVOA: 0x00000000 (disabled, pipe A, no stall, -hsync, -vsync) (II): DVOB: 0x0000089c (disabled, pipe A, no stall, +hsync, +vsync) (II): DVOC: 0x0000089c (disabled, pipe A, no stall, +hsync, +vsync) (II): DVOA_SRCDIM: 0x00000000 (II): DVOB_SRCDIM: 0x00000000 (II): DVOC_SRCDIM: 0x00000000 (II): PP_CONTROL: 0x00000001 (power target: on) (II): PP_STATUS: 0xc0000008 (on, ready, sequencing idle) (II): PP_ON_DELAYS: 0x01f408fc (II): PP_OFF_DELAYS: 0x019008fc (II): PP_DIVISOR: 0x003e7f06 (II): PFIT_CONTROL: 0xa0000000 (II): PFIT_PGM_RATIOS: 0x08000800 (II): PORT_HOTPLUG_EN: 0x00000000 (II): PORT_HOTPLUG_STAT: 0x00000000 (II): DSPACNTR: 0x00000000 (disabled, pipe A) (II): DSPASTRIDE: 0x00000000 (0 bytes) (II): DSPAPOS: 0x00000000 (0, 0) (II): DSPASIZE: 0x00000000 (1, 1) (II): DSPABASE: 0x00000000 (II): DSPASURF: 0x00000000 (II): DSPATILEOFF: 0x00000000 (II): PIPEACONF: 0x00000000 (disabled, inactive) (II): PIPEASRC: 0x027f01df (640, 480) (II): PIPEASTAT: 0x00000000 (status:) (II): PIPEA_GMCH_DATA_M: 0x00000000 (II): PIPEA_GMCH_DATA_N: 0x00000000 (II): PIPEA_DP_LINK_M: 0x00000000 (II): PIPEA_DP_LINK_N: 0x00000000 (II): CURSOR_A_BASE: 0x00000000 (II): CURSOR_A_CONTROL: 0x00000000 (II): CURSOR_A_POSITION: 0x00000000 (II): FPA0: 0x00031108 (n = 3, m1 = 17, m2 = 8) (II): FPA1: 0x00031108 (n = 3, m1 = 17, m2 = 8) (II): DPLL_A: 0x04020c00 (disabled, non-dvo, VGA, default clock, DAC/serial mode, p1 = 2, p2 = 10) (II): DPLL_A_MD: 0x00000003 (II): HTOTAL_A: 0x031f027f (640 active, 800 total) (II): HBLANK_A: 0x03170287 (648 start, 792 end) (II): HSYNC_A: 0x02ef028f (656 start, 752 end) (II): VTOTAL_A: 0x020c01df (480 active, 525 total) (II): VBLANK_A: 0x020401e7 (488 start, 517 end) (II): VSYNC_A: 0x01eb01e9 (490 start, 492 end) (II): BCLRPAT_A: 0x00000000 (II): VSYNCSHIFT_A: 0x00000000 (II): DSPBCNTR: 0x19000000 (disabled, pipe B) (II): DSPBSTRIDE: 0x00000a00 (2560 bytes) (II): DSPBPOS: 0x00000000 (0, 0) (II): DSPBSIZE: 0x00000000 (1, 1) (II): DSPBBASE: 0x00000000 (II): DSPBSURF: 0x00000000 (II): DSPBTILEOFF: 0x00000000 (II): PIPEBCONF: 0xc0000000 (enabled, active) (II): PIPEBSRC: 0x027f018f (640, 400) (II): PIPEBSTAT: 0x80440346 (status: FIFO_UNDERRUN LBLC_EVENT_ENABLE SVBLANK_INT_ENABLE VSYNC_INT_STATUS DLINE_COMPARE_STATUS LBLC_EVENT_STATUS SVBLANK_INT_STATUS VBLANK_INT_STATUS) (II): PIPEB_GMCH_DATA_M: 0x00000000 (II): PIPEB_GMCH_DATA_N: 0x00000000 (II): PIPEB_DP_LINK_M: 0x00000000 (II): PIPEB_DP_LINK_N: 0x00000000 (II): CURSOR_B_BASE: 0x00000000 (II): CURSOR_B_CONTROL: 0x00000000 (II): CURSOR_B_POSITION: 0x00000000 (II): FPB0: 0x00011107 (n = 1, m1 = 17, m2 = 7) (II): FPB1: 0x00031108 (n = 3, m1 = 17, m2 = 8) (II): DPLL_B: 0x98046c00 (enabled, non-dvo, spread spectrum clock, LVDS mode, p1 = 3, p2 = 14) (II): DPLL_B_MD: 0x00000003 (II): HTOTAL_B: 0x067604ff (1280 active, 1655 total) (II): HBLANK_B: 0x067604ff (1280 start, 1655 end) (II): HSYNC_B: 0x05c70547 (1352 start, 1480 end) (II): VTOTAL_B: 0x033e031f (800 active, 831 total) (II): VBLANK_B: 0x033e031f (800 start, 831 end) (II): VSYNC_B: 0x03280322 (803 start, 809 end) (II): BCLRPAT_B: 0x00000000 (II): VSYNCSHIFT_B: 0x00000000 (II): VCLK_DIVISOR_VGA0: 0x00031108 (II): VCLK_DIVISOR_VGA1: 0x00031406 (II): VCLK_POST_DIV: 0x00020002 (II): VGACNTRL: 0x22c4008e (enabled) (II): TV_CTL: 0x000c0010 (II): TV_DAC: 0x70000000 (II): TV_CSC_Y: 0x0332012d (II): TV_CSC_Y2: 0x07d30104 (II): TV_CSC_U: 0x0733052d (II): TV_CSC_U2: 0x05c70200 (II): TV_CSC_V: 0x0340030c (II): TV_CSC_V2: 0x06d00200 (II): TV_CLR_KNOBS: 0x00303000 (II): TV_CLR_LEVEL: 0x010b00e1 (II): TV_H_CTL_1: 0x00400359 (II): TV_H_CTL_2: 0x80480022 (II): TV_H_CTL_3: 0x007c0344 (II): TV_V_CTL_1: 0x00f01415 (II): TV_V_CTL_2: 0x00060607 (II): TV_V_CTL_3: 0x80120001 (II): TV_V_CTL_4: 0x000900f0 (II): TV_V_CTL_5: 0x000a00f0 (II): TV_V_CTL_6: 0x000900f0 (II): TV_V_CTL_7: 0x000a00f0 (II): TV_SC_CTL_1: 0xc1710087 (II): TV_SC_CTL_2: 0x6b405140 (II): TV_SC_CTL_3: 0x00000000 (II): TV_WIN_POS: 0x00360024 (II): TV_WIN_SIZE: 0x02640198 (II): TV_FILTER_CTL_1: 0x8000085e (II): TV_FILTER_CTL_2: 0x00028283 (II): TV_FILTER_CTL_3: 0x00014141 (II): TV_CC_CONTROL: 0x00000000 (II): TV_CC_DATA: 0x00000000 (II): TV_H_LUMA_0: 0xb1403000 (II): TV_H_LUMA_59: 0x0000b060 (II): TV_H_CHROMA_0: 0xb1403000 (II): TV_H_CHROMA_59: 0x0000b060 (II): FBC_CFB_BASE: 0x00000000 (II): FBC_LL_BASE: 0x00000000 (II): FBC_CONTROL: 0x00000000 (II): FBC_COMMAND: 0x08c80032 (II): FBC_STATUS: 0x00000000 (II): FBC_CONTROL2: 0x00000000 (II): FBC_FENCE_OFF: 0x43011200 (II): FBC_MOD_NUM: 0x00000000 (II): MI_MODE: 0x00000200 (II): MI_ARB_STATE: 0x00000040 (II): MI_RDRET_STATE: 0x00000000 (II): ECOSKPD: 0x00000307 (II): DP_B: 0x0000001c (II): DPB_AUX_CH_CTL: 0x00050000 (II): DPB_AUX_CH_DATA1: 0x00000000 (II): DPB_AUX_CH_DATA2: 0x00000000 (II): DPB_AUX_CH_DATA3: 0x00000000 (II): DPB_AUX_CH_DATA4: 0x00000000 (II): DPB_AUX_CH_DATA5: 0x00000000 (II): DP_C: 0x0000001c (II): DPC_AUX_CH_CTL: 0x00050000 (II): DPC_AUX_CH_DATA1: 0x00000000 (II): DPC_AUX_CH_DATA2: 0x00000000 (II): DPC_AUX_CH_DATA3: 0x00000000 (II): DPC_AUX_CH_DATA4: 0x00000000 (II): DPC_AUX_CH_DATA5: 0x00000000 (II): DP_D: 0x0000001c (II): DPD_AUX_CH_CTL: 0x00050000 (II): DPD_AUX_CH_DATA1: 0x00000000 (II): DPD_AUX_CH_DATA2: 0x00000000 (II): DPD_AUX_CH_DATA3: 0x00000000 (II): DPD_AUX_CH_DATA4: 0x00000000 (II): DPD_AUX_CH_DATA5: 0x00000000 (II): AUD_CONFIG: 0x00000004 (II): AUD_HDMIW_STATUS: 0x00000000 (II): AUD_CONV_CHCNT: 0x00000000 (II): VIDEO_DIP_CTL: 0x20000600 (II): AUD_PINW_CNTR: 0x00000040 (II): AUD_CNTL_ST: 0x00002000 (II): AUD_PIN_CAP: 0x00000094 (II): AUD_PINW_CAP: 0x004073bd (II): AUD_PINW_UNSOLRESP: 0x80000008 (II): AUD_OUT_DIG_CNVT: 0x00000000 (II): AUD_OUT_CWCAP: 0x00006211 (II): AUD_GRP_CAP: 0x00000004 (II): FENCE START 0: 0x00000000 (disabled, X tile walk, 0 pitch, 0x00000000 start) (II): FENCE END 0: 0x00000000 ( 0x00000000 end) (II): FENCE START 1: 0x00000000 (disabled, X tile walk, 0 pitch, 0x00000000 start) (II): FENCE END 1: 0x00000000 ( 0x00000000 end) (II): FENCE START 2: 0x00000000 (disabled, X tile walk, 0 pitch, 0x00000000 start) (II): FENCE END 2: 0x00000000 ( 0x00000000 end) (II): FENCE START 3: 0x00000000 (disabled, X tile walk, 0 pitch, 0x00000000 start) (II): FENCE END 3: 0x00000000 ( 0x00000000 end) (II): FENCE START 4: 0x00000000 (disabled, X tile walk, 0 pitch, 0x00000000 start) (II): FENCE END 4: 0x00000000 ( 0x00000000 end) (II): FENCE START 5: 0x00000000 (disabled, X tile walk, 0 pitch, 0x00000000 start) (II): FENCE END 5: 0x00000000 ( 0x00000000 end) (II): FENCE START 6: 0x00000000 (disabled, X tile walk, 0 pitch, 0x00000000 start) (II): FENCE END 6: 0x00000000 ( 0x00000000 end) (II): FENCE START 7: 0x00000000 (disabled, X tile walk, 0 pitch, 0x00000000 start) (II): FENCE END 7: 0x00000000 ( 0x00000000 end) (II): FENCE START 8: 0x00000000 (disabled, X tile walk, 0 pitch, 0x00000000 start) (II): FENCE END 8: 0x00000000 ( 0x00000000 end) (II): FENCE START 9: 0x00000000 (disabled, X tile walk, 0 pitch, 0x00000000 start) (II): FENCE END 9: 0x00000000 ( 0x00000000 end) (II): FENCE START 10: 0x00000000 (disabled, X tile walk, 0 pitch, 0x00000000 start) (II): FENCE END 10: 0x00000000 ( 0x00000000 end) (II): FENCE START 11: 0x00000000 (disabled, X tile walk, 0 pitch, 0x00000000 start) (II): FENCE END 11: 0x00000000 ( 0x00000000 end) (II): FENCE START 12: 0x00000000 (disabled, X tile walk, 0 pitch, 0x00000000 start) (II): FENCE END 12: 0x00000000 ( 0x00000000 end) (II): FENCE START 13: 0x00000000 (disabled, X tile walk, 0 pitch, 0x00000000 start) (II): FENCE END 13: 0x00000000 ( 0x00000000 end) (II): FENCE START 14: 0x00000000 (disabled, X tile walk, 0 pitch, 0x00000000 start) (II): FENCE END 14: 0x00000000 ( 0x00000000 end) (II): FENCE START 15: 0x00000000 (disabled, X tile walk, 0 pitch, 0x00000000 start) (II): FENCE END 15: 0x00000000 ( 0x00000000 end) (II): SR00: 0x03 (II): SR01: 0x00 (II): SR02: 0x03 (II): SR03: 0x00 (II): SR04: 0x02 (II): SR05: 0x00 (II): SR06: 0x00 (II): SR07: 0x00 (II): MSR: 0x67 (II): ARX: 0x30 (II): AR00: 0x00 (II): AR01: 0x01 (II): AR02: 0x02 (II): AR03: 0x03 (II): AR04: 0x04 (II): AR05: 0x05 (II): AR06: 0x06 (II): AR07: 0x07 (II): AR08: 0x08 (II): AR09: 0x09 (II): AR0a: 0x0a (II): AR0b: 0x0b (II): AR0c: 0x0c (II): AR0d: 0x0d (II): AR0e: 0x0e (II): AR0f: 0x0f (II): AR10: 0x00 (II): AR11: 0x00 (II): AR12: 0x0f (II): AR13: 0x08 (II): AR14: 0x00 (II): CR00: 0x5f (II): CR01: 0x4f (II): CR02: 0x50 (II): CR03: 0x82 (II): CR04: 0x55 (II): CR05: 0x81 (II): CR06: 0xbf (II): CR07: 0x1f (II): CR08: 0x00 (II): CR09: 0x4f (II): CR0a: 0x1f (II): CR0b: 0x1e (II): CR0c: 0x00 (II): CR0d: 0x00 (II): CR0e: 0x07 (II): CR0f: 0x90 (II): CR10: 0x9c (II): CR11: 0x8e (II): CR12: 0x8f (II): CR13: 0x28 (II): CR14: 0x1f (II): CR15: 0x96 (II): CR16: 0xb9 (II): CR17: 0xa3 (II): CR18: 0xff (II): CR19: 0x00 (II): CR1a: 0x00 (II): CR1b: 0x00 (II): CR1c: 0x00 (II): CR1d: 0x00 (II): CR1e: 0x00 (II): CR1f: 0x00 (II): CR20: 0x00 (II): CR21: 0x00 (II): CR22: 0x20 (II): CR23: 0x00 (II): CR24: 0x00 (II): pipe A dot 100800 n 3 m1 17 m2 8 p1 2 p2 10 (II): pipe B dot 82539 n 1 m1 17 m2 7 p1 3 p2 14 (II): DumpRegsEnd
Marking as invalid now that the UMS code is gone. Death to graphics reset at VT switch!
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.