Re: DVI output not detected with kms
Date: Fri, 29 Mar 2013 13:24:58 +1100 From: Jonathan Gray j...@jsg.id.au On Fri, Mar 29, 2013 at 12:33:32PM +1100, Jonathan Gray wrote: On Thu, Mar 28, 2013 at 09:38:20AM +0100, Ralf Horstmann wrote: Hi, with current snapshot (i386) the DVI output of the docking station of my Fujitsu Lifebook T4215 is not detected anymore. Under Linux (Debian kernel 3.2) it's detected as DVI1. With older OpenBSD versions it was detected as TMDS-1. VGA on the docking station works fine as well as directly attached to the laptop. In contrast to VGA, there is no DVI output at the laptop, only at the docking station. Cheers, Ralf It sounds like your docking station has a SDVO output, which apparently requires bitbanging for gmbus which we don't yet do. Looking over the sdvo code it seems part of the i2c code is wrong, try this: That diff isn't quite right either. The following should be equivalent to what Linux is doing. Can't test this myself unfortunately. Index: intel_sdvo.c === RCS file: /cvs/src/sys/dev/pci/drm/i915/intel_sdvo.c,v retrieving revision 1.2 diff -u -p -r1.2 intel_sdvo.c --- intel_sdvo.c19 Mar 2013 03:58:10 - 1.2 +++ intel_sdvo.c29 Mar 2013 15:52:38 - @@ -392,10 +392,11 @@ intel_sdvo_write_sdvox(struct intel_sdvo bool intel_sdvo_read_byte(struct intel_sdvo *intel_sdvo, u8 addr, u8 *ch) { - uint8_t cmd = 0; + uint8_t cmd = addr; iic_acquire_bus(intel_sdvo-i2c, 0); - iic_exec(intel_sdvo-i2c, I2C_OP_READ_WITH_STOP, addr, cmd, 1, ch, 1, 0); + iic_exec(intel_sdvo-i2c, I2C_OP_READ_WITH_STOP, +intel_sdvo-slave_addr, cmd, 1, ch, 1, 0); iic_release_bus(intel_sdvo-i2c, 0); return true; @@ -571,7 +572,6 @@ intel_sdvo_write_cmd(struct intel_sdvo * u8 *buf, status; struct i2c_msg *msgs; int i, ret = true, x; - uint8_t c = 0; /* Would be simpler to allocate both in one go ? */ buf = (u8 *)malloc(args_len * 2 + 2, M_DRM, @@ -589,14 +589,14 @@ intel_sdvo_write_cmd(struct intel_sdvo * intel_sdvo_debug_write(intel_sdvo, cmd, args, args_len); for (i = 0; i args_len; i++) { - msgs[i].op = I2C_OP_WRITE_WITH_STOP; + msgs[i].op = I2C_OP_WRITE; msgs[i].addr = intel_sdvo-slave_addr; msgs[i].len = 2; msgs[i].buf = buf + 2 *i; buf[2*i + 0] = SDVO_I2C_ARG_0 - i; buf[2*i + 1] = ((u8*)args)[i]; } - msgs[i].op = I2C_OP_WRITE_WITH_STOP; + msgs[i].op = I2C_OP_WRITE; msgs[i].addr = intel_sdvo-slave_addr; msgs[i].len = 2; msgs[i].buf = buf + 2*i; @@ -605,7 +605,7 @@ intel_sdvo_write_cmd(struct intel_sdvo * /* the following two are to read the response */ status = SDVO_I2C_CMD_STATUS; - msgs[i+1].op = I2C_OP_WRITE_WITH_STOP; + msgs[i+1].op = I2C_OP_WRITE; msgs[i+1].addr = intel_sdvo-slave_addr; msgs[i+1].len = 1; msgs[i+1].buf = status; @@ -618,7 +618,7 @@ intel_sdvo_write_cmd(struct intel_sdvo * iic_acquire_bus(intel_sdvo-i2c, 0); for (x = 0; x i+3; x++) { ret = iic_exec(intel_sdvo-i2c, msgs[x].op, msgs[x].addr, - c, 1, msgs[x].buf, msgs[x].len, 0); + NULL, 0, msgs[x].buf, msgs[x].len, 0); if (ret) { DRM_DEBUG_KMS(sdvo i2c transfer failed\n); ret = false;
Re: DVI output not detected with kms
* Mark Kettenis mark.kette...@xs4all.nl [2013-03-29 14:52]: Date: Fri, 29 Mar 2013 13:24:58 +1100 From: Jonathan Gray j...@jsg.id.au On Fri, Mar 29, 2013 at 12:33:32PM +1100, Jonathan Gray wrote: On Thu, Mar 28, 2013 at 09:38:20AM +0100, Ralf Horstmann wrote: Hi, with current snapshot (i386) the DVI output of the docking station of my Fujitsu Lifebook T4215 is not detected anymore. Under Linux (Debian kernel 3.2) it's detected as DVI1. With older OpenBSD versions it was detected as TMDS-1. VGA on the docking station works fine as well as directly attached to the laptop. In contrast to VGA, there is no DVI output at the laptop, only at the docking station. Cheers, Ralf It sounds like your docking station has a SDVO output, which apparently requires bitbanging for gmbus which we don't yet do. Looking over the sdvo code it seems part of the i2c code is wrong, try this: That diff isn't quite right either. The following should be equivalent to what Linux is doing. Can't test this myself unfortunately. With this patch I get: [drm:pid0:intel_setup_outputs] probing SDVOB [drm:pid0:intel_sdvo_debug_write] SDVOB: W: 02 (SDVO_CMD_GET_DEVICE_CAPS) [drm:pid0:intel_sdvo_write_cmd] sdvo i2c transfer failed [drm:pid0:intel_setup_outputs] probing SDVOC [drm:pid0:intel_sdvo_debug_write] SDVOC: W: 02 (SDVO_CMD_GET_DEVICE_CAPS) [drm:pid0:intel_sdvo_write_cmd] sdvo i2c transfer failed Cheers, Ralf OpenBSD 5.3-current (GENERIC.MP) #3: Fri Mar 29 15:03:42 CET 2013 ralf@adams.internal:/usr/src/sys/arch/i386/compile/GENERIC.MP cpu0: Intel(R) Core(TM)2 CPU T7200 @ 2.00GHz (GenuineIntel 686-class) 2 GHz cpu0: FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,NXE,LONG,SSE3,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,LAHF,PERF real mem = 2136797184 (2037MB) avail mem = 2090307584 (1993MB) mainbus0 at root bios0 at mainbus0: AT/286+ BIOS, date 05/07/07, BIOS32 rev. 0 @ 0xfdbf4, SMBIOS rev. 2.4 @ 0xe5550 (53 entries) bios0: vendor FUJITSU // Phoenix Technologies Ltd. version Version 1.14 date 05/07/2007 bios0: FUJITSU SIEMENS LIFEBOOK T4215 acpi0 at bios0: rev 0 acpi0: sleep states S0 S3 S4 S5 acpi0: tables DSDT FACP SSDT MCFG SSDT SSDT APIC HPET BOOT SLIC acpi0: wakeup devices PCIB(S4) MODM(S3) HDEF(S3) PXS1(S4) PXS2(S4) LID_(S4) acpitimer0 at acpi0: 3579545 Hz, 24 bits acpimcfg0 at acpi0 addr 0xf800, bus 0-63 acpimadt0 at acpi0 addr 0xfee0: PC-AT compat cpu0 at mainbus0: apid 0 (boot processor) cpu0: apic clock running at 166MHz cpu1 at mainbus0: apid 1 (application processor) cpu1: Intel(R) Core(TM)2 CPU T7200 @ 2.00GHz (GenuineIntel 686-class) 2 GHz cpu1: FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,NXE,LONG,SSE3,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,LAHF,PERF ioapic0 at mainbus0: apid 2 pa 0xfec0, version 20, 24 pins acpihpet0 at acpi0: 14318179 Hz acpiprt0 at acpi0: bus 0 (PCI0) acpiprt1 at acpi0: bus 8 (PCIB) acpiprt2 at acpi0: bus 2 (RP01) acpiprt3 at acpi0: bus 3 (RP02) acpiprt4 at acpi0: bus 5 (RP03) acpiec0 at acpi0 acpicpu0 at acpi0: C3, C2, C1, PSS acpicpu1 at acpi0: C3, C2, C1, PSS acpitz0 at acpi0: critical temperature is 100 degC acpitz1 at acpi0: critical temperature is 100 degC acpifujitsu at acpi0 not configured acpibtn0 at acpi0: LID_ acpibtn1 at acpi0: PWRB acpiac0 at acpi0: AC unit online acpibat0 at acpi0: CMB1 model CP293420 serial 1 type LION oem Fujitsu acpibat1 at acpi0: CMB2 not present acpibtn2 at acpi0: SLPB acpidock0 at acpi0: REPL docked (15) bios0: ROM list: 0xc/0xec00! 0xcf000/0x1000 0xd0200/0x1000 0xdc000/0x1c00! cpu0: Enhanced SpeedStep 1996 MHz: speeds: 2000, 1667, 1333, 1000 MHz memory map conflict 0xfed0/0x400 pci0 at mainbus0 bus 0: configuration mode 1 (bios) pchb0 at pci0 dev 0 function 0 Intel 82945GM Host rev 0x03 vga1 at pci0 dev 2 function 0 Intel 82945GM Video rev 0x03 intagp0 at vga1 agp0 at intagp0: aperture at 0xe000, size 0x1000 inteldrm0 at vga1 drm0 at inteldrm0[drm:pid0:drm_agp_init] agp_available = 1 [drm:pid0:drm_ctxbitmap_next] drm_ctxbitmap_next bit : 0 [drm:pid0:drm_ctxbitmap_init] drm_ctxbitmap_init : 0 [drm:pid0:intel_detect_pch] No PCH detected inteldrm0: apic 2 int 16 [drm:pid0:drm_vblank_init] Supports vblank timestamp caching Rev 1 (10.10.2010). [drm:pid0:drm_vblank_init] Driver supports precise vblank timestamp query. [drm:pid0:intel_opregion_setup] graphic opregion physical addr: 0x0 [drm:pid0:intel_opregion_setup] ACPI OpRegion not supported! [drm:pid0:init_vbt_defaults] Set default to SSC at 100MHz [drm:pid0:parse_general_features] BDB_GENERAL_FEATURES int_tv_support 1 int_crt_support 1 lvds_use_ssc 1 lvds_ssc_freq 96 display_clock_mode 0 [drm:pid0:parse_general_definitions] crt_ddc_bus_pin: 2
X server crash with intel kms
Hi, with latest snapshot kernel, the X server crashes pretty reliably for me when opening new thumbnail tabs in Firefox (version 18.0.1p0). Sometimes it crashes on first new tab, sometimes I need to open a few of them. Xorg log says: [ 337.411] (EE) intel(0): Failed to submit batch buffer, expect rendering corruption or even a frozen display: Unknown error: -11. [ 337.415] (EE) intel(0): Failed to submit batch buffer, expect rendering corruption or even a frozen display: Unknown error: -11. [ 337.426] Segmentation fault at address 0x8d4239fc [ 337.426] Fatal server error: [ 337.426] Caught signal 11 (Segmentation fault). Server aborting The changeset adding i915_gem_execbuffer_reserve_object seems to trigger the bug. After backing out that changeset, the problem is gone. Regards, Ralf OpenBSD 5.3-current (GENERIC.MP) #98: Fri Mar 29 01:26:58 MDT 2013 dera...@i386.openbsd.org:/usr/src/sys/arch/i386/compile/GENERIC.MP cpu0: Intel(R) Core(TM)2 CPU T7200 @ 2.00GHz (GenuineIntel 686-class) 2 GHz cpu0: FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,NXE,LONG,SSE3,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,LAHF,PERF real mem = 2136797184 (2037MB) avail mem = 2090446848 (1993MB) mainbus0 at root bios0 at mainbus0: AT/286+ BIOS, date 05/07/07, BIOS32 rev. 0 @ 0xfdbf4, SMBIOS rev. 2.4 @ 0xe5550 (53 entries) bios0: vendor FUJITSU // Phoenix Technologies Ltd. version Version 1.14 date 05/07/2007 bios0: FUJITSU SIEMENS LIFEBOOK T4215 acpi0 at bios0: rev 0 acpi0: sleep states S0 S3 S4 S5 acpi0: tables DSDT FACP SSDT MCFG SSDT SSDT APIC HPET BOOT SLIC acpi0: wakeup devices PCIB(S4) MODM(S3) HDEF(S3) PXS1(S4) PXS2(S4) LID_(S4) acpitimer0 at acpi0: 3579545 Hz, 24 bits acpimcfg0 at acpi0 addr 0xf800, bus 0-63 acpimadt0 at acpi0 addr 0xfee0: PC-AT compat cpu0 at mainbus0: apid 0 (boot processor) cpu0: apic clock running at 166MHz cpu1 at mainbus0: apid 1 (application processor) cpu1: Intel(R) Core(TM)2 CPU T7200 @ 2.00GHz (GenuineIntel 686-class) 2 GHz cpu1: FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,NXE,LONG,SSE3,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,LAHF,PERF ioapic0 at mainbus0: apid 2 pa 0xfec0, version 20, 24 pins acpihpet0 at acpi0: 14318179 Hz acpiprt0 at acpi0: bus 0 (PCI0) acpiprt1 at acpi0: bus 8 (PCIB) acpiprt2 at acpi0: bus 2 (RP01) acpiprt3 at acpi0: bus 3 (RP02) acpiprt4 at acpi0: bus 5 (RP03) acpiec0 at acpi0 acpicpu0 at acpi0: C3, C2, C1, PSS acpicpu1 at acpi0: C3, C2, C1, PSS acpitz0 at acpi0: critical temperature is 100 degC acpitz1 at acpi0: critical temperature is 100 degC acpibtn0 at acpi0: LID_ acpibtn1 at acpi0: PWRB acpiac0 at acpi0: AC unit online acpibat0 at acpi0: CMB1 model CP293420 serial 1 type LION oem Fujitsu acpibat1 at acpi0: CMB2 not present acpibtn2 at acpi0: SLPB acpidock0 at acpi0: REPL docked (15) acpivideo0 at acpi0: GFX0 acpivout0 at acpivideo0: LCD_ bios0: ROM list: 0xc/0xec00! 0xcf000/0x1000 0xd0200/0x1000 0xdc000/0x1c00! cpu0: Enhanced SpeedStep 1996 MHz: speeds: 2000, 1667, 1333, 1000 MHz memory map conflict 0xfed0/0x400 pci0 at mainbus0 bus 0: configuration mode 1 (bios) pchb0 at pci0 dev 0 function 0 Intel 82945GM Host rev 0x03 vga1 at pci0 dev 2 function 0 Intel 82945GM Video rev 0x03 intagp0 at vga1 agp0 at intagp0: aperture at 0xe000, size 0x1000 inteldrm0 at vga1 drm0 at inteldrm0 inteldrm0: apic 2 int 16 wsdisplay0 at vga1 mux 1: console (std, vt100 emulation) wsdisplay0: screen 1-5 added (std, vt100 emulation) Intel 82945GM Video rev 0x03 at pci0 dev 2 function 1 not configured azalia0 at pci0 dev 27 function 0 Intel 82801GB HD Audio rev 0x02: msi azalia0: codecs: Sigmatel STAC9228X audio0 at azalia0 ppb0 at pci0 dev 28 function 0 Intel 82801GB PCIE rev 0x02: apic 2 int 22 pci1 at ppb0 bus 2 mskc0 at pci1 dev 0 function 0 Marvell Yukon 88E8055 rev 0x12, Yukon-2 EC Ultra rev. A1 (0x2): apic 2 int 16 msk0 at mskc0 port A: address 00:17:42:41:a8:2d eephy0 at msk0 phy 0: 88E1149 Gigabit PHY, rev. 1 ppb1 at pci0 dev 28 function 1 Intel 82801GB PCIE rev 0x02: apic 2 int 21 pci2 at ppb1 bus 3 ppb2 at pci0 dev 28 function 2 Intel 82801GB PCIE rev 0x02: apic 2 int 20 pci3 at ppb2 bus 5 5:0:0: mem address conflict 0xf010/0x1000 wpi0 at pci3 dev 0 function 0 Intel PRO/Wireless 3945ABG rev 0x02: msi, MoW2, address 00:1b:77:72:01:7c uhci0 at pci0 dev 29 function 0 Intel 82801GB USB rev 0x02: apic 2 int 23 uhci1 at pci0 dev 29 function 1 Intel 82801GB USB rev 0x02: apic 2 int 20 uhci2 at pci0 dev 29 function 2 Intel 82801GB USB rev 0x02: apic 2 int 18 uhci3 at pci0 dev 29 function 3 Intel 82801GB USB rev 0x02: apic 2 int 16 ehci0 at pci0 dev 29 function 7 Intel 82801GB USB rev 0x02: apic 2 int 23 usb0 at ehci0: USB revision 2.0 uhub0 at usb0 Intel EHCI root hub rev 2.00/1.00 addr 1 ppb3 at pci0 dev 30 function 0 Intel 82801BAM Hub-to-PCI rev 0xe2 pci4 at
Re: X server crash with intel kms
On Fri, Mar 29, 2013 at 07:20:26PM +0100, Ralf Horstmann wrote: Hi, with latest snapshot kernel, the X server crashes pretty reliably for me when opening new thumbnail tabs in Firefox (version 18.0.1p0). Sometimes it crashes on first new tab, sometimes I need to open a few of them. Xorg log says: [ 337.411] (EE) intel(0): Failed to submit batch buffer, expect rendering corruption or even a frozen display: Unknown error: -11. [ 337.415] (EE) intel(0): Failed to submit batch buffer, expect rendering corruption or even a frozen display: Unknown error: -11. [ 337.426] Segmentation fault at address 0x8d4239fc [ 337.426] Fatal server error: [ 337.426] Caught signal 11 (Segmentation fault). Server aborting The changeset adding i915_gem_execbuffer_reserve_object seems to trigger the bug. After backing out that changeset, the problem is gone. Thanks for tracking this down, I've backed out the parts that were calling i915_gem_execbuffer_reserve_object but kept the (now uncalled) functions there. Can you cvs up and check that everything is fine still?