Re: inteldrm(4) tests needed

2018-01-20 Thread Mike Belopuhov
On Mon, Jan 15, 2018 at 01:02 +0100, Mark Kettenis wrote:
> The diff below adopts more of the Linux code to manage i2c
> transactions on hardware supported by inteldrm(4).  The i2c stuff is
> reponsible for detecting panels and monitors, so it is somewhat
> important that this works right.  And the Linux code developed some
> quirks over the years that my rewrite of the code to use OpenBSD APIs
> didn't have.
> 
> So I'm looking for testers.  I'm especially interested in tests of
> external displays on all sorts of connector types (VGA, DVI, HDMI,
> DP).  It would be really great to get some tests on older stuff with
> (S)DVO.  Please let me know if there are regressions or if this fixes
> things that are currently broken.  But all reports are welcome.
> Please include a dmesg and some information about the display and
> connector type.
> 

Hi,

I've been running with this since it hit the tree and it has fixed
a major issue for me: an external HDMI output was marked 'disconnected'
only a few minutes after being connected.  The output worked fine,
but I presume X was notified that something changed and my window
manager would restrict the area for popups and drop down menus to the
main screen, as in they would only appear on the panel of the laptop,
regardless of where the actual window was.  So huge thanks for that!

In the meantime (somewhere around Mesa update and a backout), another
issue got fixed.  If a test 60fps video would've been displayed on the
panel, a visible tearing artefact would be visible in the upper portion
of the screen.  And now it's gone.  Thanks Jonathan and Mark for your
work on this, it's greatly appreciated!

My hardware is an X1 Carbon 2017 (Kaby Lake) with a WQHD (2560x1440)
panel and a 1920x1080 external monitor.

Cheers,
Mike



Re: inteldrm(4) tests needed

2018-01-16 Thread Mike Larkin
On Sun, Jan 14, 2018 at 11:15:39PM -0800, Mike Larkin wrote:
> On Mon, Jan 15, 2018 at 01:02:58AM +0100, Mark Kettenis wrote:
> > The diff below adopts more of the Linux code to manage i2c
> > transactions on hardware supported by inteldrm(4).  The i2c stuff is
> > reponsible for detecting panels and monitors, so it is somewhat
> > important that this works right.  And the Linux code developed some
> > quirks over the years that my rewrite of the code to use OpenBSD APIs
> > didn't have.
> > 
> > So I'm looking for testers.  I'm especially interested in tests of
> > external displays on all sorts of connector types (VGA, DVI, HDMI,
> > DP).  It would be really great to get some tests on older stuff with
> > (S)DVO.  Please let me know if there are regressions or if this fixes
> > things that are currently broken.  But all reports are welcome.
> > Please include a dmesg and some information about the display and
> > connector type.
> > 
> 
> For my Dell Precision 7520, with:
> 
> inteldrm0 at pci0 dev 2 function 0 "Intel HD Graphics P630" rev 0x04
> 
> ... no issues seen on eDP-1 local 4K panel. I will be able to test the
> dock and DP-1 outputs on Tuesday when I go to the office. The HDMI-2 output
> worked fine when connected to my living room TV @ 1920x1080 (xrandr output
> below).

Tested today on the DP dock, no issues seen. Thanks Mark.

-ml

> 
> Screen 0: minimum 320 x 200, current 3840 x 2160, maximum 8192 x 8192
> eDP-1 connected primary 3840x2160+0+0 (normal left inverted right x axis y a
>3840x2160 60.00*+  48.02  
>2048x1536 60.00  
>1920x1440 60.00  
>1856x1392 60.01  
>1792x1344 60.01  
>1600x1200 60.00  
>1400x1050 59.98  
>1280x1024 60.02  
>1280x960  60.00  
>1024x768  60.0460.00  
>960x720   60.00  
>928x696   60.05  
>896x672   60.01  
>800x600   60.0060.3256.25  
>700x525   59.98  
>640x512   60.02  
>640x480   60.0059.94  
>512x384   60.00  
>400x300   60.3256.34  
>320x240   60.05  
> DP-1 disconnected (normal left inverted right x axis y axis)
> HDMI-1 disconnected (normal left inverted right x axis y axis)
> DP-2 disconnected (normal left inverted right x axis y axis)
> HDMI-2 connected (normal left inverted right x axis y axis)
>1920x1080 60.00 +  59.9430.0024.0029.9723.98  
>1920x1080i60.0059.94  
>1600x1200 60.00  
>1280x1024 75.0260.02  
>1360x768  60.02  
>1280x768  59.87  
>1280x720  60.0059.94  
>1024x768  75.0870.0760.00  
>800x600   72.1975.0060.3256.25  
>720x480   60.0059.94  
>640x480   75.0072.8160.0059.94  
>720x400   70.08  
> DP-3 disconnected (normal left inverted right x axis y axis)
> HDMI-3 disconnected (normal left inverted right x axis y axis)
> 
> dmesg follows.
> 
> -ml
> 
> OpenBSD 6.2-current (GENERIC.MP) #5: Sun Jan 14 22:54:57 PST 2018
> 
> mlar...@innsmouth.int.azathoth.net:/export/bin/src/OpenBSD/clean/src/sys/arch/amd64/compile/GENERIC.MP
> real mem = 68545306624 (65369MB)
> avail mem = 66456842240 (63378MB)
> mpath0 at root
> scsibus0 at mpath0: 256 targets
> mainbus0 at root
> bios0 at mainbus0: SMBIOS rev. 3.0 @ 0xe0030 (110 entries)
> bios0: vendor Dell Inc. version "1.9.0" date 12/13/2017
> bios0: Dell Inc. Precision 7520
> acpi0 at bios0: rev 2
> acpi0: sleep states S0 S3 S4 S5
> acpi0: tables DSDT FACP APIC FPDT FIDT MCFG HPET SSDT SSDT SSDT HPET SSDT 
> UEFI SSDT LPIT WSMT SSDT SSDT SSDT SSDT DBGP DBG2 SSDT SSDT SSDT DMAR BGRT 
> SSDT ASF! SSDT
> acpi0: wakeup devices PEGP(S4) PEG0(S4) PEGP(S4) PEG1(S4) PEGP(S4) PEG2(S4) 
> PXSX(S4) RP09(S4) PXSX(S4) RP10(S4) PXSX(S4) RP11(S4) PXSX(S4) RP12(S4) 
> PXSX(S4) RP13(S4) [...]
> acpitimer0 at acpi0: 3579545 Hz, 24 bits
> acpimadt0 at acpi0 addr 0xfee0: PC-AT compat
> cpu0 at mainbus0: apid 0 (boot processor)
> cpu0: Intel(R) Xeon(R) CPU E3-1505M v6 @ 3.00GHz, 2295.57 MHz
> cpu0: 
> FPU,VME,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,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,3DNOWP,PERF,ITSC,FSGSBASE,SGX,BMI1,HLE,AVX2,SMEP,BMI2,ERMS,INVPCID,RTM,MPX,RDSEED,ADX,SMAP,CLFLUSHOPT,PT,IBRS,IBPB,STIBP,SENSOR,ARAT
> cpu0: 256KB 64b/line 8-way L2 cache
> cpu0: smt 0, core 0, package 0
> mtrr: Pentium Pro MTRR support, 10 var ranges, 88 fixed ranges
> cpu0: apic clock running at 23MHz
> cpu0: mwait min=64, max=64, C-substates=0.2.1.2.4.1.1.1, IBE
> cpu1 at mainbus0: apid 2 (application processor)
> cpu1: Intel(R) Xeon(R) CPU E3-1505M v6 @ 3.00GHz, 2294.65 MHz
> cpu1: 
> FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,

Re: inteldrm(4) tests needed

2018-01-15 Thread Paul Irofti
On Mon, Jan 15, 2018 at 01:02:58AM +0100, Mark Kettenis wrote:
> The diff below adopts more of the Linux code to manage i2c
> transactions on hardware supported by inteldrm(4).  The i2c stuff is
> reponsible for detecting panels and monitors, so it is somewhat
> important that this works right.  And the Linux code developed some
> quirks over the years that my rewrite of the code to use OpenBSD APIs
> didn't have.
> 
> So I'm looking for testers.  I'm especially interested in tests of
> external displays on all sorts of connector types (VGA, DVI, HDMI,
> DP).  It would be really great to get some tests on older stuff with
> (S)DVO.  Please let me know if there are regressions or if this fixes
> things that are currently broken.  But all reports are welcome.
> Please include a dmesg and some information about the display and
> connector type.

Does not fix the external monitor through docking station issue I am
currently trying to fix on the t460, nor does it brake it.

(Sadly, it does not even help my monstrous WIP DP training diff that I
hope to send out soon.)

I will also test this on an x250 soon.



Re: inteldrm(4) tests needed

2018-01-15 Thread Sebastian Benoit
Mark Kettenis(mark.kette...@xs4all.nl) on 2018.01.15 01:02:58 +0100:
> The diff below adopts more of the Linux code to manage i2c
> transactions on hardware supported by inteldrm(4).  The i2c stuff is
> reponsible for detecting panels and monitors, so it is somewhat
> important that this works right.  And the Linux code developed some
> quirks over the years that my rewrite of the code to use OpenBSD APIs
> didn't have.
> 
> So I'm looking for testers.  I'm especially interested in tests of
> external displays on all sorts of connector types (VGA, DVI, HDMI,
> DP).  It would be really great to get some tests on older stuff with
> (S)DVO.  Please let me know if there are regressions or if this fixes
> things that are currently broken.  But all reports are welcome.
> Please include a dmesg and some information about the display and
> connector type.

x270.

without your diff, external hdmi was only recognized on boot.
with this diff, i can plug it in and xrandr --auto works.

OpenBSD 6.2-current (GENERIC.MP) #12: Mon Jan 15 21:25:01 CET 2018
ben...@blap.berlin.hsgate.de:/usr/src/sys/arch/amd64/compile/GENERIC.MP
real mem = 17053855744 (16263MB)
avail mem = 16530087936 (15764MB)
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root
bios0 at mainbus0: SMBIOS rev. 3.0 @ 0xca6cf000 (62 entries)
bios0: vendor LENOVO version "R0IET42W (1.20 )" date 08/09/2017
bios0: LENOVO 20HN0015GE
acpi0 at bios0: rev 2
acpi0: sleep states S0 S3 S4 S5
acpi0: tables DSDT FACP UEFI SSDT SSDT HPET APIC MCFG ECDT SSDT SSDT BOOT BATB 
SLIC SSDT SSDT SSDT WSMT SSDT SSDT DBGP DBG2 MSDM DMAR ASF! FPDT UEFI
acpi0: wakeup devices GLAN(S4) XHC_(S3) XDCI(S4) HDAS(S4) RP01(S4) RP02(S4) 
RP04(S4) RP05(S4) RP06(S4) RP07(S4) RP08(S4) RP09(S4) RP10(S4) RP11(S4) 
RP12(S4) RP13(S4) [...]
acpitimer0 at acpi0: 3579545 Hz, 24 bits
acpihpet0 at acpi0: 2399 Hz
acpimadt0 at acpi0 addr 0xfee0: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz, 1393.42 MHz
cpu0: 
FPU,VME,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,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,3DNOWP,PERF,ITSC,FSGSBASE,SGX,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,MPX,RDSEED,ADX,SMAP,CLFLUSHOPT,PT,SENSOR,ARAT
cpu0: 256KB 64b/line 8-way L2 cache
cpu0: smt 0, core 0, package 0
mtrr: Pentium Pro MTRR support, 10 var ranges, 88 fixed ranges
cpu0: apic clock running at 23MHz
cpu0: mwait min=64, max=64, C-substates=0.2.1.2.4.1.1.1, IBE
cpu1 at mainbus0: apid 2 (application processor)
cpu1: Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz, 1128.48 MHz
cpu1: 
FPU,VME,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,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,3DNOWP,PERF,ITSC,FSGSBASE,SGX,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,MPX,RDSEED,ADX,SMAP,CLFLUSHOPT,PT,SENSOR,ARAT
cpu1: 256KB 64b/line 8-way L2 cache
cpu1: smt 0, core 1, package 0
cpu1: failed to identify
cpu2 at mainbus0: apid 1 (application processor)
cpu2: Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz, 1097.44 MHz
cpu2: 
FPU,VME,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,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,3DNOWP,PERF,ITSC,FSGSBASE,SGX,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,MPX,RDSEED,ADX,SMAP,CLFLUSHOPT,PT,SENSOR,ARAT
cpu2: 256KB 64b/line 8-way L2 cache
cpu2: smt 1, core 0, package 0
cpu2: failed to identify
cpu3 at mainbus0: apid 3 (application processor)
cpu3: Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz, 1097.44 MHz
cpu3: 
FPU,VME,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,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,3DNOWP,PERF,ITSC,FSGSBASE,SGX,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,MPX,RDSEED,ADX,SMAP,CLFLUSHOPT,PT,SENSOR,ARAT
cpu3: 256KB 64b/line 8-way L2 cache
cpu3: smt 1, core 1, package 0
cpu3: failed to identify
ioapic0 at mainbus0: apid 2 pa 0xfec0, version 20, 120 pins
acpimcfg0 at acpi0 addr 0xf000, bus 0-63
acpiec0 at acpi0
acpiprt0 at acpi0: bus 0 (PCI0)
acpiprt1 at acpi0: bus 2 (RP01)
acpiprt2 at acpi0: bus -1 (RP02)
acpiprt3 at acpi0: bus 3 (RP03)
acpiprt4 at acpi0: bus -1 (RP04)
acpiprt5 at acpi0: bus 4 (RP05)
acpiprt6 at acpi0: bus -1 (RP06)
acpiprt7 at acpi0: bus -1 (RP07)
acpiprt8 at acpi0: bus -1 (RP08)
acpiprt9 at acpi0: bus -1 (RP09)
acpiprt10 at acpi0: bus -1 (RP10)
ac

Re: inteldrm(4) tests needed

2018-01-15 Thread Florian Obser
On Mon, Jan 15, 2018 at 01:02:58AM +0100, Mark Kettenis wrote:
> The diff below adopts more of the Linux code to manage i2c
> transactions on hardware supported by inteldrm(4).  The i2c stuff is
> reponsible for detecting panels and monitors, so it is somewhat
> important that this works right.  And the Linux code developed some
> quirks over the years that my rewrite of the code to use OpenBSD APIs
> didn't have.
> 
> So I'm looking for testers.  I'm especially interested in tests of
> external displays on all sorts of connector types (VGA, DVI, HDMI,
> DP).  It would be really great to get some tests on older stuff with
> (S)DVO.  Please let me know if there are regressions or if this fixes
> things that are currently broken.  But all reports are welcome.
> Please include a dmesg and some information about the display and
> connector type.
> 

No changes on my X1 gen2.

I have a LG 27UD88 connected via HDMI.
On bootup the external monitor comes up (in mirror mode) once inteldrm attaches.
X comes up like this:

-

Screen 0: minimum 320 x 200, current 6400 x 2160, maximum 8192 x 8192
eDP-1 connected primary 2560x1440+0+0 (normal left inverted right x axis y 
axis) 310mm x 174mm
   2560x1440 60.00*+
   1920x1440 60.00  
   1856x1392 60.01  
   1792x1344 60.01  
   1600x1200 60.00  
   1400x1050 59.98  
   1280x1024 60.02  
   1280x960  60.00  
   1024x768  60.0460.00  
   960x720   60.00  
   928x696   60.05  
   896x672   60.01  
   800x600   60.0060.3256.25  
   700x525   59.98  
   640x512   60.02  
   640x480   60.0059.94  
   512x384   60.00  
   400x300   60.3256.34  
   320x240   60.05  
DP-1 disconnected (normal left inverted right x axis y axis)
HDMI-1 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
HDMI-2 connected 3840x2160+2560+0 (normal left inverted right x axis y axis) 
600mm x 340mm
   3840x2160 30.00*+  25.0024.0029.9723.98  
   2560x1440 59.95  
   1920x1080 60.0059.9430.0029.97  
   1920x1080i60.0059.94  
   1600x900  60.00  
   1280x1024 60.02  
   1280x800  59.91  
   1152x864  59.97  
   1280x720  60.0059.94  
   1024x768  60.00  
   800x600   60.32  
   720x480   60.0059.94  
   640x480   60.0059.94  

-

and I then switch to HDMI only, which is my normal workstation setup:

-

Screen 0: minimum 320 x 200, current 3840 x 2160, maximum 8192 x 8192
eDP-1 connected primary (normal left inverted right x axis y axis)
   2560x1440 60.00 +
   1920x1440 60.00  
   1856x1392 60.01  
   1792x1344 60.01  
   1600x1200 60.00  
   1400x1050 59.98  
   1280x1024 60.02  
   1280x960  60.00  
   1024x768  60.0460.00  
   960x720   60.00  
   928x696   60.05  
   896x672   60.01  
   800x600   60.0060.3256.25  
   700x525   59.98  
   640x512   60.02  
   640x480   60.0059.94  
   512x384   60.00  
   400x300   60.3256.34  
   320x240   60.05  
DP-1 disconnected (normal left inverted right x axis y axis)
HDMI-1 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
HDMI-2 connected 3840x2160+0+0 (normal left inverted right x axis y axis) 600mm 
x 340mm
   3840x2160 30.00*+  25.0024.0029.9723.98  
   2560x1440 59.95  
   1920x1080 60.0059.9430.0029.97  
   1920x1080i60.0059.94  
   1600x900  60.00  
   1280x1024 60.02  
   1280x800  59.91  
   1152x864  59.97  
   1280x720  60.0059.94  
   1024x768  60.00  
   800x600   60.32  
   720x480   60.0059.94  
   640x480   60.0059.94

-

DP does not work on this machine with this monitor. Neither without nor with 
your diff.
(I have no other monitor to test with and I never investigated why it doesn't 
work)
-

Screen 0: minimum 320 x 200, current 6400 x 2160, maximum 8192 x 8192
eDP-1 connected primary 2560x1440+0+0 (normal left inverted right x axis y 
axis) 310mm x 174mm
   2560x1440 60.00*+
   1920x1440 60.00  
   1856x1392 60.01  
   1792x1344 60.01  
   1600x1200 60.00  
   1400x1050 59.98  
   1280x1024 60.02  
   1280x960  60.00  
   1024x768  60.0460.00  
   960x720   60.00  
   928x696   60.05  
   896x672   60.01  
   800x600   60.0060.3256.25  
   700x525   59.98  
   640x512   60.02  
   640x480   60.0059.94  
   512x384   60.00  
   400x300   60.3256.34  
   320x240   60.05  
DP-1 connected 3840x2160+2560+0 (normal left inverted right x axis y axis) 
600mm x 340mm
   3840x2160 60.00*+  30.00  
   2560x1440 59.95  
   1920x1080 60.0059.94  
   1600x900  60.00  
   1280x1024 60.02  
   1280x800  59.81  
   11

Re: inteldrm(4) tests needed

2018-01-15 Thread Matthias Schmidt
Hi,

* Benjamin Baier wrote:
> 
> Thinkpad X220 here, with an external monitor(HDMI) connected throught
> a docking station.
> The external monitor is now working on the first boot, before I had
> to do one suspend/resume cycle to get it recognized, great.

Also a Thinkpad X220 and I can confirm that my external LCD is now
available during boot and it stays connected after zzz cycles.  This
works if I connect the LCD via Displayport and via VGA.

If I boot the machine w/o an external display and connect it via VGA it
works as expected.  If I connect it via Displayport nothing happens.
I tried suspend/resume but nothing changed.

Cheers

Matthias

Internal + external via Displayport (dunno why it shows HDMI-1)

Screen 0: minimum 320 x 200, current 3286 x 1080, maximum 8192 x 8192
LVDS-1 connected primary 1366x768+0+0 (normal left inverted right x axis y 
axis) 277mm x 156mm
   1366x768  60.02*+
   1024x768  60.0460.00  
   960x720   60.00  
   928x696   60.05  
   896x672   60.01  
   800x600   60.0060.3256.25  
   700x525   59.98  
   640x512   60.02  
   640x480   60.0059.94  
   512x384   60.00  
   400x300   60.3256.34  
   320x240   60.05  
VGA-1 disconnected (normal left inverted right x axis y axis)
HDMI-1 connected 1920x1080+1366+0 (normal left inverted right x axis y axis) 
160mm x 90mm
   1920x1080 60.00*+  50.0059.94  
   1920x1080i60.0050.0059.94  
   1600x1200 60.00  
   1680x1050 59.88  
   1280x1024 60.02  
   1440x900  59.90  
   1280x960  60.00  
   1280x800  59.91  
   1280x720  60.0050.0059.94  
   1024x768  60.00  
   800x600   60.3256.25  
   720x576   50.00  
   720x480   60.0059.94  
   640x480   60.0059.94  
DP-1 disconnected (normal left inverted right x axis y axis)
HDMI-2 disconnected (normal left inverted right x axis y axis)
HDMI-3 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
DP-3 disconnected (normal left inverted right x axis y axis)

Internal + external via VGA

Screen 0: minimum 320 x 200, current 1366 x 768, maximum 8192 x 8192
LVDS-1 connected primary 1366x768+0+0 (normal left inverted right x axis y 
axis) 277mm x 156mm
   1366x768  60.02*+
   1024x768  60.0460.00  
   960x720   60.00  
   928x696   60.05  
   896x672   60.01  
   800x600   60.0060.3256.25  
   700x525   59.98  
   640x512   60.02  
   640x480   60.0059.94  
   512x384   60.00  
   400x300   60.3256.34  
   320x240   60.05  
VGA-1 connected 1024x768+0+0 (normal left inverted right x axis y axis) 0mm x 
0mm
   1024x768  60.00* 
   800x600   60.3256.25  
   848x480   60.00  
   640x480   59.94  
HDMI-1 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)
HDMI-2 disconnected (normal left inverted right x axis y axis)
HDMI-3 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
DP-3 disconnected (normal left inverted right x axis y axis)

OpenBSD 6.2-current (GENERIC.MP) #0: Mon Jan 15 18:46:41 CET 2018
x...@x220.fritz.box:/usr/src/sys/arch/amd64/compile/GENERIC.MP
real mem = 17041059840 (16251MB)
avail mem = 16517677056 (15752MB)
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root
bios0 at mainbus0: SMBIOS rev. 2.6 @ 0xdae9c000 (64 entries)
bios0: vendor LENOVO version "8DET73WW (1.43 )" date 10/12/2016
bios0: LENOVO 4290W1B
acpi0 at bios0: rev 2
acpi0: sleep states S0 S3 S4 S5
acpi0: tables DSDT FACP SLIC SSDT SSDT SSDT HPET APIC MCFG ECDT ASF! TCPA SSDT 
SSDT DMAR UEFI UEFI UEFI
acpi0: wakeup devices LID_(S3) SLPB(S3) IGBE(S4) EXP4(S4) EXP7(S4) EHC1(S3) 
EHC2(S3) HDEF(S4)
acpitimer0 at acpi0: 3579545 Hz, 24 bits
acpihpet0 at acpi0: 14318179 Hz
acpimadt0 at acpi0 addr 0xfee0: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz, 2492.29 MHz
cpu0: 
FPU,VME,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,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,DEADLINE,AES,XSAVE,AVX,NXE,RDTSCP,LONG,LAHF,PERF,ITSC,SENSOR,ARAT
cpu0: 256KB 64b/line 8-way L2 cache
acpihpet0: recalibrated TSC frequency 2491911252 Hz
cpu0: smt 0, core 0, package 0
mtrr: Pentium Pro MTRR support, 10 var ranges, 88 fixed ranges
cpu0: apic clock running at 99MHz
cpu0: mwait min=64, max=64, C-substates=0.2.1.1.2, IBE
cpu1 at mainbus0: apid 1 (application processor)
cpu1: Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz, 2491.91 MHz
cpu1: 
FPU,VME,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,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID

Re: inteldrm(4) tests needed

2018-01-15 Thread Kevin Chadwick
On Mon, 15 Jan 2018 01:02:58 +0100 (CET)


> So I'm looking for testers.  I'm especially interested in tests of
> external displays on all sorts of connector types (VGA, DVI, HDMI,
> DP).  It would be really great to get some tests on older stuff with
> (S)DVO.  Please let me know if there are regressions or if this fixes
> things that are currently broken.  But all reports are welcome.
> Please include a dmesg and some information about the display and
> connector type.

I have no time till Thu but can test it on an apollo lake then with DP
and HDMI. Also intending on seeing if inteldrm on apollo lake works with
LVDS fpga conversion to DSI MIPI some time soon. However the wsfb seems
to work (most of the time or maybe with right bios config) which is
good enough for us (seemingly even plays youtube OK fullscreen in
firefox).



Re: inteldrm(4) tests needed

2018-01-15 Thread Benjamin Baier
On Mon, 15 Jan 2018 01:02:58 +0100 (CET)
Mark Kettenis  wrote:

> The diff below adopts more of the Linux code to manage i2c
> transactions on hardware supported by inteldrm(4).  The i2c stuff is
> reponsible for detecting panels and monitors, so it is somewhat
> important that this works right.  And the Linux code developed some
> quirks over the years that my rewrite of the code to use OpenBSD APIs
> didn't have.
> 
> So I'm looking for testers.  I'm especially interested in tests of
> external displays on all sorts of connector types (VGA, DVI, HDMI,
> DP).  It would be really great to get some tests on older stuff with
> (S)DVO.  Please let me know if there are regressions or if this fixes
> things that are currently broken.  But all reports are welcome.
> Please include a dmesg and some information about the display and
> connector type.
> 

Thinkpad X220 here, with an external monitor(HDMI) connected throught
a docking station.
The external monitor is now working on the first boot, before I had
to do one suspend/resume cycle to get it recognized, great.
No regression so far, even after some zzz/ZZZ cycles.

Greetings Ben

OpenBSD 6.2-current (GENERIC.MP) #12: Mon Jan 15 10:01:50 CET 2018
b...@x220.home.netzbasis.de:/usr/src/sys/arch/amd64/compile/GENERIC.MP
real mem = 8451125248 (8059MB)
avail mem = 8188071936 (7808MB)
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root
bios0 at mainbus0: SMBIOS rev. 2.6 @ 0xdae9c000 (64 entries)
bios0: vendor LENOVO version "8DET69WW (1.39 )" date 07/18/2013
bios0: LENOVO 4287CTO
acpi0 at bios0: rev 2
acpi0: sleep states S0 S3 S4 S5
acpi0: tables DSDT FACP SLIC SSDT SSDT SSDT HPET APIC MCFG ECDT ASF! TCPA SSDT 
SSDT DMAR UEFI UEFI UEFI
acpi0: wakeup devices LID_(S3) SLPB(S3) IGBE(S4) EXP4(S4) EXP7(S4) EHC1(S3) 
EHC2(S3) HDEF(S4)
acpitimer0 at acpi0: 3579545 Hz, 24 bits
acpihpet0 at acpi0: 14318179 Hz
acpimadt0 at acpi0 addr 0xfee0: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz, 2492.26 MHz
cpu0: 
FPU,VME,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,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,DEADLINE,AES,XSAVE,AVX,NXE,RDTSCP,LONG,LAHF,PERF,ITSC,SENSOR,ARAT
cpu0: 256KB 64b/line 8-way L2 cache
acpihpet0: recalibrated TSC frequency 2491907253 Hz
cpu0: smt 0, core 0, package 0
mtrr: Pentium Pro MTRR support, 10 var ranges, 88 fixed ranges
cpu0: apic clock running at 99MHz
cpu0: mwait min=64, max=64, C-substates=0.2.1.1.2, IBE
cpu1 at mainbus0: apid 1 (application processor)
cpu1: Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz, 2491.92 MHz
cpu1: 
FPU,VME,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,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,DEADLINE,AES,XSAVE,AVX,NXE,RDTSCP,LONG,LAHF,PERF,ITSC,SENSOR,ARAT
cpu1: 256KB 64b/line 8-way L2 cache
cpu1: smt 1, core 0, package 0
cpu2 at mainbus0: apid 2 (application processor)
cpu2: Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz, 2491.92 MHz
cpu2: 
FPU,VME,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,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,DEADLINE,AES,XSAVE,AVX,NXE,RDTSCP,LONG,LAHF,PERF,ITSC,SENSOR,ARAT
cpu2: 256KB 64b/line 8-way L2 cache
cpu2: smt 0, core 1, package 0
cpu3 at mainbus0: apid 3 (application processor)
cpu3: Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz, 2491.92 MHz
cpu3: 
FPU,VME,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,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,DEADLINE,AES,XSAVE,AVX,NXE,RDTSCP,LONG,LAHF,PERF,ITSC,SENSOR,ARAT
cpu3: 256KB 64b/line 8-way L2 cache
cpu3: smt 1, core 1, package 0
ioapic0 at mainbus0: apid 2 pa 0xfec0, version 20, 24 pins
acpimcfg0 at acpi0 addr 0xf800, bus 0-63
acpiec0 at acpi0
acpiprt0 at acpi0: bus 0 (PCI0)
acpiprt1 at acpi0: bus -1 (PEG_)
acpiprt2 at acpi0: bus 2 (EXP1)
acpiprt3 at acpi0: bus 3 (EXP2)
acpiprt4 at acpi0: bus 5 (EXP4)
acpiprt5 at acpi0: bus 13 (EXP5)
acpiprt6 at acpi0: bus -1 (EXP7)
acpicpu0 at acpi0: C3(350@104 io@0x415), C1(1000@1 halt), PSS
acpicpu1 at acpi0: C3(350@104 io@0x415), C1(1000@1 halt), PSS
acpicpu2 at acpi0: C3(350@104 io@0x415), C1(1000@1 halt), PSS
acpicpu3 at acpi0: C3(350@104 io@0x415), C1(1000@1 halt), PSS
acpipwrres0 at acpi0: PUBS, resource for EHC1, EHC2
acpitz0 at acpi0: critical temperature is 99 degC
acpibtn0 at acpi0: LID_
acpibtn1 at acpi0: SLPB
"LEN0020" at acpi0 not configured
acpibat0 at acpi0: BAT0 model "42T4861" serial 12675 type LION oem "SANYO"
acpiac0 at acpi0: AC unit online
acpithinkpad0 at acpi0
"IBM0079" at acpi0 not configured
"PNP0C14" at acpi0 not configured
"

Re: inteldrm(4) tests needed

2018-01-14 Thread Mike Larkin
On Mon, Jan 15, 2018 at 01:02:58AM +0100, Mark Kettenis wrote:
> The diff below adopts more of the Linux code to manage i2c
> transactions on hardware supported by inteldrm(4).  The i2c stuff is
> reponsible for detecting panels and monitors, so it is somewhat
> important that this works right.  And the Linux code developed some
> quirks over the years that my rewrite of the code to use OpenBSD APIs
> didn't have.
> 
> So I'm looking for testers.  I'm especially interested in tests of
> external displays on all sorts of connector types (VGA, DVI, HDMI,
> DP).  It would be really great to get some tests on older stuff with
> (S)DVO.  Please let me know if there are regressions or if this fixes
> things that are currently broken.  But all reports are welcome.
> Please include a dmesg and some information about the display and
> connector type.
> 

For my Dell Precision 7520, with:

inteldrm0 at pci0 dev 2 function 0 "Intel HD Graphics P630" rev 0x04

... no issues seen on eDP-1 local 4K panel. I will be able to test the
dock and DP-1 outputs on Tuesday when I go to the office. The HDMI-2 output
worked fine when connected to my living room TV @ 1920x1080 (xrandr output
below).

Screen 0: minimum 320 x 200, current 3840 x 2160, maximum 8192 x 8192
eDP-1 connected primary 3840x2160+0+0 (normal left inverted right x axis y a
   3840x2160 60.00*+  48.02  
   2048x1536 60.00  
   1920x1440 60.00  
   1856x1392 60.01  
   1792x1344 60.01  
   1600x1200 60.00  
   1400x1050 59.98  
   1280x1024 60.02  
   1280x960  60.00  
   1024x768  60.0460.00  
   960x720   60.00  
   928x696   60.05  
   896x672   60.01  
   800x600   60.0060.3256.25  
   700x525   59.98  
   640x512   60.02  
   640x480   60.0059.94  
   512x384   60.00  
   400x300   60.3256.34  
   320x240   60.05  
DP-1 disconnected (normal left inverted right x axis y axis)
HDMI-1 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
HDMI-2 connected (normal left inverted right x axis y axis)
   1920x1080 60.00 +  59.9430.0024.0029.9723.98  
   1920x1080i60.0059.94  
   1600x1200 60.00  
   1280x1024 75.0260.02  
   1360x768  60.02  
   1280x768  59.87  
   1280x720  60.0059.94  
   1024x768  75.0870.0760.00  
   800x600   72.1975.0060.3256.25  
   720x480   60.0059.94  
   640x480   75.0072.8160.0059.94  
   720x400   70.08  
DP-3 disconnected (normal left inverted right x axis y axis)
HDMI-3 disconnected (normal left inverted right x axis y axis)

dmesg follows.

-ml

OpenBSD 6.2-current (GENERIC.MP) #5: Sun Jan 14 22:54:57 PST 2018

mlar...@innsmouth.int.azathoth.net:/export/bin/src/OpenBSD/clean/src/sys/arch/amd64/compile/GENERIC.MP
real mem = 68545306624 (65369MB)
avail mem = 66456842240 (63378MB)
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root
bios0 at mainbus0: SMBIOS rev. 3.0 @ 0xe0030 (110 entries)
bios0: vendor Dell Inc. version "1.9.0" date 12/13/2017
bios0: Dell Inc. Precision 7520
acpi0 at bios0: rev 2
acpi0: sleep states S0 S3 S4 S5
acpi0: tables DSDT FACP APIC FPDT FIDT MCFG HPET SSDT SSDT SSDT HPET SSDT UEFI 
SSDT LPIT WSMT SSDT SSDT SSDT SSDT DBGP DBG2 SSDT SSDT SSDT DMAR BGRT SSDT ASF! 
SSDT
acpi0: wakeup devices PEGP(S4) PEG0(S4) PEGP(S4) PEG1(S4) PEGP(S4) PEG2(S4) 
PXSX(S4) RP09(S4) PXSX(S4) RP10(S4) PXSX(S4) RP11(S4) PXSX(S4) RP12(S4) 
PXSX(S4) RP13(S4) [...]
acpitimer0 at acpi0: 3579545 Hz, 24 bits
acpimadt0 at acpi0 addr 0xfee0: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: Intel(R) Xeon(R) CPU E3-1505M v6 @ 3.00GHz, 2295.57 MHz
cpu0: 
FPU,VME,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,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,3DNOWP,PERF,ITSC,FSGSBASE,SGX,BMI1,HLE,AVX2,SMEP,BMI2,ERMS,INVPCID,RTM,MPX,RDSEED,ADX,SMAP,CLFLUSHOPT,PT,IBRS,IBPB,STIBP,SENSOR,ARAT
cpu0: 256KB 64b/line 8-way L2 cache
cpu0: smt 0, core 0, package 0
mtrr: Pentium Pro MTRR support, 10 var ranges, 88 fixed ranges
cpu0: apic clock running at 23MHz
cpu0: mwait min=64, max=64, C-substates=0.2.1.2.4.1.1.1, IBE
cpu1 at mainbus0: apid 2 (application processor)
cpu1: Intel(R) Xeon(R) CPU E3-1505M v6 @ 3.00GHz, 2294.65 MHz
cpu1: 
FPU,VME,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,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,3DNOWP,PERF,ITSC,FSGSBASE,SGX,BMI1,HLE,AVX2,SMEP,BMI2,ERMS,INVPCID,RTM,MPX,RDSEED,ADX,SMAP,CLFLUSHOPT,PT,IBRS,IBPB,STIBP,SENSOR

inteldrm(4) tests needed

2018-01-14 Thread Mark Kettenis
The diff below adopts more of the Linux code to manage i2c
transactions on hardware supported by inteldrm(4).  The i2c stuff is
reponsible for detecting panels and monitors, so it is somewhat
important that this works right.  And the Linux code developed some
quirks over the years that my rewrite of the code to use OpenBSD APIs
didn't have.

So I'm looking for testers.  I'm especially interested in tests of
external displays on all sorts of connector types (VGA, DVI, HDMI,
DP).  It would be really great to get some tests on older stuff with
(S)DVO.  Please let me know if there are regressions or if this fixes
things that are currently broken.  But all reports are welcome.
Please include a dmesg and some information about the display and
connector type.


Index: dev/pci/drm/drm_linux.c
===
RCS file: /cvs/src/sys/dev/pci/drm/drm_linux.c,v
retrieving revision 1.17
diff -u -p -r1.17 drm_linux.c
--- dev/pci/drm/drm_linux.c 13 Jan 2018 13:03:42 -  1.17
+++ dev/pci/drm/drm_linux.c 14 Jan 2018 23:40:01 -
@@ -552,16 +552,13 @@ sg_copy_from_buffer(struct scatterlist *
 }
 
 int
-i2c_transfer(struct i2c_adapter *adap, struct i2c_msg *msgs, int num)
+i2c_master_xfer(struct i2c_adapter *adap, struct i2c_msg *msgs, int num)
 {
void *cmd = NULL;
int cmdlen = 0;
int err, ret = 0;
int op;
 
-   if (adap->algo)
-   return adap->algo->master_xfer(adap, msgs, num);
-
iic_acquire_bus(&adap->ic, 0);
 
while (num > 2) {
@@ -585,8 +582,10 @@ i2c_transfer(struct i2c_adapter *adap, s
ret++;
}
 
-   op = (msgs->flags & I2C_M_RD) ? I2C_OP_READ_WITH_STOP : 
I2C_OP_WRITE_WITH_STOP;
-   err = iic_exec(&adap->ic, op, msgs->addr, cmd, cmdlen, msgs->buf, 
msgs->len, 0);
+   op = (msgs->flags & I2C_M_RD) ?
+   I2C_OP_READ_WITH_STOP : I2C_OP_WRITE_WITH_STOP;
+   err = iic_exec(&adap->ic, op, msgs->addr, cmd, cmdlen,
+   msgs->buf, msgs->len, 0);
if (err) {
ret = -err;
goto fail;
@@ -599,6 +598,38 @@ fail:
 
return ret;
 }
+
+int
+i2c_transfer(struct i2c_adapter *adap, struct i2c_msg *msgs, int num)
+{
+   if (adap->algo)
+   return adap->algo->master_xfer(adap, msgs, num);
+
+   return i2c_master_xfer(adap, msgs, num);
+}
+
+int
+i2c_bb_master_xfer(struct i2c_adapter *adap, struct i2c_msg *msgs, int num)
+{
+   struct i2c_algo_bit_data *algo = adap->algo_data;
+   struct i2c_adapter bb;
+
+   memset(&bb, 0, sizeof(bb));
+   bb.ic = algo->ic;
+   bb.retries = adap->retries;
+   return i2c_master_xfer(&bb, msgs, num);
+}
+
+uint32_t
+i2c_bb_functionality(struct i2c_adapter *adap)
+{
+   return I2C_FUNC_I2C | I2C_FUNC_SMBUS_EMUL;
+}
+
+struct i2c_algorithm i2c_bit_algo = {
+   .master_xfer = i2c_bb_master_xfer,
+   .functionality = i2c_bb_functionality
+};
 
 #if defined(__amd64__) || defined(__i386__)
 
Index: dev/pci/drm/drm_linux.h
===
RCS file: /cvs/src/sys/dev/pci/drm/drm_linux.h,v
retrieving revision 1.66
diff -u -p -r1.66 drm_linux.h
--- dev/pci/drm/drm_linux.h 13 Jan 2018 14:15:07 -  1.66
+++ dev/pci/drm/drm_linux.h 14 Jan 2018 23:40:01 -
@@ -1199,6 +1199,11 @@ finish_wait(wait_queue_head_t *wq, wait_
 static inline long
 schedule_timeout(long timeout, wait_queue_head_t **wait)
 {
+   if (cold) {
+   delay((timeout * 100) / hz);
+   return -ETIMEDOUT;
+   }
+
return -msleep(*wait, &(*wait)->lock, PZERO, "schto", timeout);
 }
 
@@ -1609,8 +1614,14 @@ struct i2c_msg {
 #define I2C_M_NOSTART  0x0002
 
 struct i2c_algorithm {
-   u32 (*functionality)(struct i2c_adapter *);
int (*master_xfer)(struct i2c_adapter *, struct i2c_msg *, int);
+   u32 (*functionality)(struct i2c_adapter *);
+};
+
+extern struct i2c_algorithm i2c_bit_algo;
+
+struct i2c_algo_bit_data {
+   struct i2c_controller ic;
 };
 
 int i2c_transfer(struct i2c_adapter *, struct i2c_msg *, int);
Index: dev/pci/drm/i915/i915_drv.h
===
RCS file: /cvs/src/sys/dev/pci/drm/i915/i915_drv.h,v
retrieving revision 1.78
diff -u -p -r1.78 i915_drv.h
--- dev/pci/drm/i915/i915_drv.h 30 Sep 2017 07:36:56 -  1.78
+++ dev/pci/drm/i915/i915_drv.h 14 Jan 2018 23:40:01 -
@@ -1102,9 +1102,7 @@ struct intel_gmbus {
u32 force_bit;
u32 reg0;
u32 gpio_reg;
-#ifdef __linux__
struct i2c_algo_bit_data bit_algo;
-#endif
struct drm_i915_private *dev_priv;
 };
 
Index: dev/pci/drm/i915/intel_i2c.c
===
RCS file: /cvs/src/sys/dev/pci/drm/i915/intel_i2c.c,v
retrieving revision 1.12
diff -u -p -r1.12 intel_i2c.c
--- dev/pci/drm/i915/intel_i2c.c30 Sep 2017 07:36:56 -  1.1