Re: DVI output not detected with kms

2013-03-29 Thread Mark Kettenis
 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

2013-03-29 Thread Ralf Horstmann
* 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

2013-03-29 Thread Ralf Horstmann
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

2013-03-29 Thread Jonathan Gray
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?