<div dir="ltr"><div><div><div><div><div><div><div><div>Hello!<br><br></div>In a nutshell:<br></div>I have a problem where my linux box hooked up to my sharp lcd tv can only output 1080p@30hz OR 1080i@60hz under linux (opensuse 13.2), but CAN output 1080p@60hz under windows. (meaning in the kde display configuration, 30hz is the highest value)<br></div><div>Also:<br></div><div>xrandr --verbose gives me an edid:<br>00 ff ff ff ff ff ff 00 4d 10 99 10 01 01 01 01 <br>ff 15 01 03 80 59 32 78 0a 68 37 a4 54 48 9a 25 <br>0f 4a 4c 3f ef 80 d1 00 d1 c0 81 19 90 59 01 01 <br>01 01 01 01 01 01 01 1d 80 18 71 1c 16 20 58 2c <br>25 00 10 09 00 00 00 9e 01 1d 00 72 51 d0 1e 20 <br>6e 28 55 00 10 09 00 00 00 1e 00 00 00 fc 00 53 <br>48 41 52 50 20 4c 43 44 0a 0a 20 20 00 00 00 fd <br>00 31 3d 0f 2e 08 00 0a 20 20 20 20 20 20 01 53 <br>02 03 24 71 50 01 02 04 85 06 11 13 14 15 03 07 <br>12 16 1f 20 10 23 09 07 01 83 01 00 00 66 03 0c <br>00 20 00 80 8c 0a d0 8a 20 e0 2d 10 10 3e 96 00 <br>04 03 00 00 00 18 8c 0a a0 14 51 f0 16 00 26 7c <br>43 00 04 03 00 00 00 99 01 1d 80 d0 72 1c 16 20 <br>10 2c 25 80 10 09 00 00 00 9f 01 1d 00 bc 52 d0 <br>1e 20 b8 28 55 40 10 09 00 00 00 1e 00 00 00 00 <br>00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e2 <br></div><div><br></div><div>This pasted to: <a href="http://www.edidreader.com/">http://www.edidreader.com/</a><br></div><div>Shows that I have this mode: (block1/video data block, last entry)<br>Native: FALSE <br>
  VIC: 16 <br>
  Format: 1920x1080p <br>
  Field Rate: 59.94Hz/60Hz <br>
  Picture AR: 16:9 <br>
  Pixel AR: 1:1 <br><br></div><div>Yet after the edid listing, xrandr --verbose only shows these 1080 modes:<br>  1920x1080i (0x48) 74.250MHz +HSync +VSync Interlace +preferred<br>        h: width  1920 start 2008 end 2052 total 2200 skew    0 clock  33.75KHz<br>        v: height 1080 start 1084 end 1094 total 1125           clock  60.00Hz<br>  1920x1080i (0xa8) 74.250MHz +HSync +VSync Interlace<br>        h: width  1920 start 2448 end 2492 total 2640 skew    0 clock  28.12KHz<br>        v: height 1080 start 1084 end 1094 total 1125           clock  50.00Hz<br>  1920x1080 (0xa9) 74.250MHz +HSync +VSync<br>        h: width  1920 start 2558 end 2602 total 2750 skew    0 clock  27.00KHz<br>        v: height 1080 start 1084 end 1089 total 1125           clock  24.00Hz<br>  1920x1080i (0xaa) 74.176MHz +HSync +VSync Interlace *current<br>        h: width  1920 start 2008 end 2052 total 2200 skew    0 clock  33.72KHz<br>        v: height 1080 start 1084 end 1094 total 1125           clock  59.94Hz<br>  1920x1080 (0xab) 74.176MHz +HSync +VSync<br>        h: width  1920 start 2558 end 2602 total 2750 skew    0 clock  26.97KHz<br>        v: height 1080 start 1084 end 1089 total 1125           clock  23.98Hz<br><br></div><div><br></div>So since I've a c/c++ background I thought I'd investigate the problem myself:<br></div><div>I've built the srpm with a small logging addition:<br></div><div>In intel_display_c: I've added a log line each to:<br>mode_from_kmode() and intel_output_panel_edid(),<br>since they both are called from intel_output_get_modes().<br></div><div>(I'm logging with:<br></div><div>    mylog("%s: %ix%i@%f\n", mode->name, mode->HTotal, mode->VTotal, calculate_refresh(mode->HTotal, mode->VTotal, mode->Clock, mode->Flags));<br></div><div>This will save the log message to a text file in my home directory. Since xorg is running as root, it should have access to it, right?)<br><br></div><div>Now, after overwriting /usr/lib64/xorg/modules/drivers/intel_drv.so with my version, xorg immediately crashed:<br></div><div>(xorg.log.old)<br></div><div>[ 16177.244] (II) LoadModule: "fbdevhw"<br>[ 16177.244] (II) Loading /usr/lib64/xorg/modules/libfbdevhw.so<br>[ 16177.244] (II) Module fbdevhw: vendor="X.Org Foundation"<br>[ 16177.244]     compiled for 1.16.1, module version = 0.0.2<br>[ 16177.244]     ABI class: X.Org Video Driver, version 18.0<br>[ 16177.244] (WW) Falling back to old probe method for vesa<br>[ 16179.440] (EE) intel(0): [drm] failed to set drm interface version: Permission denied [13].<br>[ 16179.440] (II) intel(0): [drm] Contents of '/sys/kernel/debug/dri/0/clients':<br>[ 16179.440] (II) intel(0): [drm] a dev    pid    uid    magic<br>[ 16179.440] (II) intel(0): [drm] <br>[ 16179.440] (II) intel(0): [drm] y   0  6360     0          0<br>[ 16179.440] (II) intel(0): [drm] y   0   638     0          0<br>[ 16179.440] (EE) intel(0): Failed to claim DRM device.<br>[ 16179.440] (II) UnloadModule: "intel"<br>[ 16179.440] (EE) Screen(s) found, but none have a usable configuration.<br></div><div><br></div><div>Strangely, xorg shows no error after a reboot (so my module seems to be working), yet I do not see my log entries when calling xrandr --verbose again.<br></div><div><br></div><div>So my questions are:<br></div><div>-Am I looking at the right location? (I'm looking for the deepest location where the supported resolution list is assembled/calculated/parsed)<br></div><div>-Is there a way to dynamically reload the intel_drv module?<br></div><div><br></div>Thanks:<br></div></div></div></div>Bálint<br></div>