830GM still woes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Daniel, dear list,

just tried the latest nightly build of 3.15.0+, and I'm sorry to say that the watermark configuration of the 830GM is still off.

This is what I get from the kernel: (not to be taken too serious, but
humor is the only thing that keeps me from getting seriously anoyed after so much time of the same bug...)


May 16 15:15:42 pike kernel: [ 6.705950] [drm:drm_calc_vbltimestamp_from_scanoutpos] crtc 1: Noop due to uninitialized mode. May 16 15:15:42 pike kernel: [ 6.710930] [drm:i830_get_fifo_size] FIFO size - (0x00017e5f) A: 47 May 16 15:15:42 pike kernel: [ 6.710936] [drm:i830_get_fifo_size] FIFO size - (0x00017e5f) B: 48 May 16 15:15:42 pike kernel: [ 6.710942] [drm:i9xx_update_wm] FIFO watermarks - A: 45, B: 46 May 16 15:15:42 pike kernel: [ 6.710947] [drm:i9xx_update_wm] Setting FIFO watermarks - A: 45, B: 46, C: 2, SR 1 May 16 15:15:42 pike kernel: [ 6.710953] [drm:intel_sanitize_crtc] [CRTC:7] hw state adjusted, was enabled, now disabled

Watermarks of 45 and 46 upon initialization. Weird, but it gets weirder...

May 16 15:15:42 pike kernel: [ 6.842042] [drm:i830_get_fifo_size] FIFO size - (0x00017e5f) A: 47 May 16 15:15:42 pike kernel: [ 6.842046] [drm:i830_get_fifo_size] FIFO size - (0x00017e5f) B: 48 May 16 15:15:42 pike kernel: [ 6.842050] [drm:i9xx_update_wm] FIFO watermarks - A: 45, B: 46 May 16 15:15:42 pike kernel: [ 6.842053] [drm:i9xx_update_wm] Setting FIFO watermarks - A: 45, B: 46, C: 2, SR 1 May 16 15:15:42 pike kernel: [ 6.842061] [drm:drm_calc_timestamping_constants] crtc 5: hwmode: htotal 1688, vtotal 1066, vdisplay 1024 May 16 15:15:42 pike kernel: [ 6.842065] [drm:drm_calc_timestamping_constants] crtc 5: clock 108000 kHz framedur 16661185 linedur 15629, pixeldur 9 May 16 15:15:42 pike kernel: [ 6.847625] [drm:i9xx_update_primary_plane] Writing base 00060000 00000000 0 0 5120 May 16 15:15:42 pike kernel: [ 6.847633] [drm:intel_crtc_mode_set] [ENCODER:9:DAC-9] set [MODE:0:1280x1024] May 16 15:15:42 pike kernel: [ 6.848287] [drm:i830_get_fifo_size] FIFO size - (0x00017e5f) A: 47 May 16 15:15:42 pike kernel: [ 6.848290] [drm:intel_calculate_wm] FIFO entries required for mode: 68 May 16 15:15:42 pike kernel: [ 6.848292] [drm:intel_calculate_wm] FIFO watermark level: -23 May 16 15:15:42 pike kernel: [ 6.848295] [drm:i830_get_fifo_size] FIFO size - (0x00017e5f) B: 48 May 16 15:15:42 pike kernel: [ 6.848297] [drm:i9xx_update_wm] FIFO watermarks - A: 1, B: 46 May 16 15:15:42 pike kernel: [ 6.848300] [drm:i9xx_update_wm] Setting FIFO watermarks - A: 1, B: 46, C: 2, SR 1 May 16 15:15:42 pike kernel: [ 6.856893] [drm:intel_connector_check_state] [CONNECTOR:8:VGA-1] May 16 15:15:42 pike kernel: [ 6.856897] [drm:check_encoder_state] [ENCODER:9:DAC-9] May 16 15:15:42 pike kernel: [ 6.856901] [drm:check_encoder_state] [ENCODER:10:None-10]

Ok, so that computes a watermark of -23 for pipe A (WTF?) then rounded up to +1 (but still too small, needs to be +8), B remains at +46 even though an external monitor is connected.


May 16 15:15:42 pike kernel: [ 6.857023] [drm:intel_dump_pipe_config] adjusted mode: May 16 15:15:42 pike kernel: [ 6.857029] [drm:drm_mode_debug_printmodeline] Modeline 0:"1024x768" 60 65000 1024 1048 1184 1344 768 771 777 806 0x8 0x5 May 16 15:15:42 pike kernel: [ 6.857034] [drm:intel_dump_crtc_timings] crtc timings: 65000 1024 1048 1184 1344 768 771 777 806, type: 0x8 flags: 0x5 May 16 15:15:42 pike kernel: [ 6.857036] [drm:intel_dump_pipe_config] port clock: 65000 May 16 15:15:42 pike kernel: [ 6.857038] [drm:intel_dump_pipe_config] pipe src size: 1024x768 May 16 15:15:42 pike kernel: [ 6.857040] [drm:intel_dump_pipe_config] gmch pfit: control: 0x00000000, ratios: 0x00000000, lvds border: 0x00000000 May 16 15:15:42 pike kernel: [ 6.857043] [drm:intel_dump_pipe_config] pch pfit: pos: 0x00000000, size: 0x00000000, disabled May 16 15:15:42 pike kernel: [ 6.857045] [drm:intel_dump_pipe_config] ips: 0 May 16 15:15:42 pike kernel: [ 6.857047] [drm:intel_dump_pipe_config] double wide: 0 May 16 15:15:42 pike kernel: [ 6.857052] [drm:drm_calc_timestamping_constants] crtc 7: hwmode: htotal 1344, vtotal 806, vdisplay 768 May 16 15:15:42 pike kernel: [ 6.857055] [drm:drm_calc_timestamping_constants] crtc 7: clock 65000 kHz framedur 16665600 linedur 20676, pixeldur 15 May 16 15:15:42 pike kernel: [ 6.868773] [drm:i9xx_update_primary_plane] Writing base 00060000 00000000 0 0 5120 May 16 15:15:42 pike kernel: [ 6.868784] [drm:intel_crtc_mode_set] [ENCODER:10:None-10] set [MODE:0:1024x768] May 16 15:15:42 pike kernel: [ 6.869450] [drm:i830_get_fifo_size] FIFO size - (0x00017e5f) A: 47 May 16 15:15:42 pike kernel: [ 6.869454] [drm:intel_calculate_wm] FIFO entries required for mode: 68 May 16 15:15:42 pike kernel: [ 6.869456] [drm:intel_calculate_wm] FIFO watermark level: -23 May 16 15:15:42 pike kernel: [ 6.869459] [drm:i830_get_fifo_size] FIFO size - (0x00017e5f) B: 48 May 16 15:15:42 pike kernel: [ 6.869461] [drm:intel_calculate_wm] FIFO entries required for mode: 41 May 16 15:15:42 pike kernel: [ 6.869463] [drm:intel_calculate_wm] FIFO watermark level: 5 May 16 15:15:42 pike kernel: [ 6.869466] [drm:i9xx_update_wm] FIFO watermarks - A: 1, B: 5 May 16 15:15:42 pike kernel: [ 6.869469] [drm:i9xx_update_wm] Setting FIFO watermarks - A: 1, B: 5, C: 2, SR 1

Ah, finally the driver notes that there's an external monitor!
Watermark still at -23, rounded up to +1. Nice try, but no dice.

May 16 15:15:52 pike kernel: [ 31.091473] [drm:intel_dump_pipe_config] requested mode: May 16 15:15:52 pike kernel: [ 31.091481] [drm:drm_mode_debug_printmodeline] Modeline 0:"1024x768" 0 65000 1024 1048 1184 1344 768 771 777 806 0x0 0xa May 16 15:15:52 pike kernel: [ 31.091485] [drm:intel_dump_pipe_config] adjusted mode: May 16 15:15:52 pike kernel: [ 31.091493] [drm:drm_mode_debug_printmodeline] Modeline 0:"1024x768" 0 65000 1024 1048 1184 1344 768 771 777 806 0x0 0xa May 16 15:15:52 pike kernel: [ 31.091500] [drm:intel_dump_crtc_timings] crtc timings: 65000 1024 1048 1184 1344 768 771 777 806, type: 0x0 flags: 0xa May 16 15:15:52 pike kernel: [ 31.091504] [drm:intel_dump_pipe_config] port clock: 65000 May 16 15:15:52 pike kernel: [ 31.091508] [drm:intel_dump_pipe_config] pipe src size: 1024x768 May 16 15:15:52 pike kernel: [ 31.091513] [drm:intel_dump_pipe_config] gmch pfit: control: 0x00000000, ratios: 0x00000000, lvds border: 0x00000000 May 16 15:15:52 pike kernel: [ 31.091518] [drm:intel_dump_pipe_config] pch pfit: pos: 0x00000000, size: 0x00000000, disabled May 16 15:15:52 pike kernel: [ 31.091522] [drm:intel_dump_pipe_config] ips: 0 May 16 15:15:52 pike kernel: [ 31.091526] [drm:intel_dump_pipe_config] double wide: 0 May 16 15:15:52 pike kernel: [ 31.091546] [drm:drm_calc_vbltimestamp_from_scanoutpos] crtc 0 : v 5 p(0,73)@ 31.91540 -> 31.90400 [e 1 us, 0 rep] May 16 15:15:52 pike kernel: [ 31.112062] [drm:i830_get_fifo_size] FIFO size - (0x00017e5f) A: 47 May 16 15:15:52 pike kernel: [ 31.112071] [drm:i830_get_fifo_size] FIFO size - (0x00017e5f) B: 48 May 16 15:15:52 pike kernel: [ 31.112077] [drm:intel_calculate_wm] FIFO entries required for mode: 41 May 16 15:15:52 pike kernel: [ 31.112081] [drm:intel_calculate_wm] FIFO watermark level: 5 May 16 15:15:52 pike kernel: [ 31.112086] [drm:i9xx_update_wm] FIFO watermarks - A: 45, B: 5 May 16 15:15:52 pike kernel: [ 31.112091] [drm:i9xx_update_wm] Setting FIFO watermarks - A: 45, B: 5, C: 2, SR 1 May 16 15:15:52 pike kernel: [ 31.112102] [drm:drm_calc_timestamping_constants] crtc 5: hwmode: htotal 1344, vtotal 806, vdisplay 768 May 16 15:15:52 pike kernel: [ 31.112108] [drm:drm_calc_timestamping_constants] crtc 5: clock 65000 kHz framedur 16665600 linedur 20676, pixeldur 15 May 16 15:15:52 pike kernel: [ 31.126344] [drm:i9xx_update_primary_plane] Writing base 00800000 00000000 0 0 4096 May 16 15:15:52 pike kernel: [ 31.126365] [drm:intel_crtc_mode_set] [ENCODER:9:DAC-9] set [MODE:0:1024x768] May 16 15:15:52 pike kernel: [ 31.127030] [drm:i830_get_fifo_size] FIFO size - (0x00017e5f) A: 47 May 16 15:15:52 pike kernel: [ 31.127036] [drm:intel_calculate_wm] FIFO entries required for mode: 41 May 16 15:15:52 pike kernel: [ 31.127040] [drm:intel_calculate_wm] FIFO watermark level: 4 May 16 15:15:52 pike kernel: [ 31.127045] [drm:i830_get_fifo_size] FIFO size - (0x00017e5f) B: 48 May 16 15:15:52 pike kernel: [ 31.127049] [drm:intel_calculate_wm] FIFO entries required for mode: 41 May 16 15:15:52 pike kernel: [ 31.127053] [drm:intel_calculate_wm] FIFO watermark level: 5 May 16 15:15:52 pike kernel: [ 31.127058] [drm:i9xx_update_wm] FIFO watermarks - A: 4, B: 5 May 16 15:15:52 pike kernel: [ 31.127063] [drm:i9xx_update_wm] Setting FIFO watermarks - A: 4, B: 5, C: 2, SR 1 May 16 15:15:52 pike kernel: [ 31.132908] [drm:intel_connector_check_state] [CONNECTOR:11:LVDS-1] May 16 15:15:52 pike kernel: [ 31.132919] [drm:intel_connector_check_state] [CONNECTOR:8:VGA-1] May 16 15:15:52 pike kernel: [ 31.132925] [drm:check_encoder_state] [ENCODER:9:DAC-9] May 16 15:15:52 pike kernel: [ 31.132931] [drm:check_encoder_state] [ENCODER:10:None-10]
May 16 15:15:52 pike kernel: [   31.132936] [drm:check_crtc_state] [CRTC:5]
May 16 15:15:52 pike kernel: [   31.132953] [drm:check_crtc_state] [CRTC:7]

Still later: Ok, why should I use pipe A altogether... Probably because there are two monitors, maybe? Watermarks at +4 and +5. Better, but still wrong.

Later...

May 16 15:15:57 pike kernel: [ 36.435245] [drm:i830_get_fifo_size] FIFO size - (0x00017e5f) A: 47 May 16 15:15:57 pike kernel: [ 36.435261] [drm:intel_calculate_wm] FIFO entries required for mode: 41 May 16 15:15:57 pike kernel: [ 36.435265] [drm:intel_calculate_wm] FIFO watermark level: 4 May 16 15:15:57 pike kernel: [ 36.435270] [drm:i830_get_fifo_size] FIFO size - (0x00017e5f) B: 48 May 16 15:15:57 pike kernel: [ 36.435275] [drm:intel_calculate_wm] FIFO entries required for mode: 41 May 16 15:15:57 pike kernel: [ 36.435279] [drm:intel_calculate_wm] FIFO watermark level: 5 May 16 15:15:57 pike kernel: [ 36.435284] [drm:i9xx_update_wm] FIFO watermarks - A: 4, B: 5 May 16 15:15:57 pike kernel: [ 36.435289] [drm:i9xx_update_wm] Setting FIFO watermarks - A: 4, B: 5, C: 2, SR 1 May 16 15:15:57 pike kernel: [ 36.435320] [drm:drm_ioctl] pid=3040, dev=0xe200, auth=1, DRM_IOCTL_MODE_CURSOR May 16 15:15:57 pike kernel: [ 36.435333] [drm:drm_ioctl] pid=3040, dev=0xe200, auth=1, DRM_IOCTL_MODE_CURSOR May 16 15:15:57 pike kernel: [ 36.435682] [drm:i830_get_fifo_size] FIFO size - (0x00017e5f) A: 47 May 16 15:15:57 pike kernel: [ 36.435696] [drm:intel_calculate_wm] FIFO entries required for mode: 41 May 16 15:15:57 pike kernel: [ 36.435700] [drm:intel_calculate_wm] FIFO watermark level: 4 May 16 15:15:57 pike kernel: [ 36.435705] [drm:i830_get_fifo_size] FIFO size - (0x00017e5f) B: 48 May 16 15:15:57 pike kernel: [ 36.435710] [drm:intel_calculate_wm] FIFO entries required for mode: 41 May 16 15:15:57 pike kernel: [ 36.435713] [drm:intel_calculate_wm] FIFO watermark level: 5 May 16 15:15:57 pike kernel: [ 36.435719] [drm:i9xx_update_wm] FIFO watermarks - A: 4, B: 5 May 16 15:15:57 pike kernel: [ 36.435724] [drm:i9xx_update_wm] Setting FIFO watermarks - A: 4, B: 5, C: 2, SR 1

Ok, at least a bit of consistency. We're at +4,+5. Too bad, it's off...

Later...

May 16 15:35:34 pike kernel: [ 1213.520226] [drm:drm_calc_vbltimestamp_from_scanoutpos] crtc 1 : v 5 p(0,146)@ 1213.520193 -> 1213.517175 [e 1 us, 0 rep] May 16 15:35:34 pike kernel: [ 1213.575897] [drm:i830_get_fifo_size] FIFO size - (0x00017e5f) A: 47 May 16 15:35:34 pike kernel: [ 1213.575916] [drm:intel_calculate_wm] FIFO entries required for mode: 41 May 16 15:35:34 pike kernel: [ 1213.575920] [drm:intel_calculate_wm] FIFO watermark level: 4 May 16 15:35:34 pike kernel: [ 1213.575926] [drm:i830_get_fifo_size] FIFO size - (0x00017e5f) B: 48 May 16 15:35:34 pike kernel: [ 1213.575931] [drm:i9xx_update_wm] FIFO watermarks - A: 4, B: 46 May 16 15:35:34 pike kernel: [ 1213.575937] [drm:i9xx_update_wm] Setting FIFO watermarks - A: 4, B: 46, C: 2, SR 1 May 16 15:35:34 pike kernel: [ 1213.577316] [drm:intel_connector_check_state] [CONNECTOR:8:VGA-1] May 16 15:35:34 pike kernel: [ 1213.577328] [drm:check_encoder_state] [ENCODER:9:DAC-9] May 16 15:35:34 pike kernel: [ 1213.577334] [drm:check_encoder_state] [ENCODER:10:None-10]
May 16 15:35:34 pike kernel: [ 1213.577342] [drm:check_crtc_state] [CRTC:5]
May 16 15:35:34 pike kernel: [ 1213.577362] [drm:check_crtc_state] [CRTC:7]
May 16 15:35:34 pike kernel: [ 1213.577400] [drm:drm_ioctl] pid=3040, dev=0xe200, auth=1, DRM_IOCTL_MODE_GETPROPERTY May 16 15:35:34 pike kernel: [ 1213.577414] [drm:drm_ioctl] pid=3040, dev=0xe200, auth=1, DRM_IOCTL_MODE_GETPROPERTY May 16 15:35:34 pike kernel: [ 1213.577427] [drm:drm_ioctl] pid=3040, dev=0xe200, auth=1, DRM_IOCTL_MODE_GETPROPERTY May 16 15:35:34 pike kernel: [ 1213.577436] [drm:drm_ioctl] pid=3040, dev=0xe200, auth=1, DRM_IOCTL_MODE_GETPROPERTY May 16 15:35:34 pike kernel: [ 1213.577448] [drm:drm_ioctl] pid=3040, dev=0xe200, auth=1, DRM_IOCTL_MODE_SETPROPERTY May 16 15:35:34 pike kernel: [ 1213.577476] [drm:drm_calc_vbltimestamp_from_scanoutpos] crtc 0 : v 5 p(0,509)@ 1213.577468 -> 1213.566943 [e 1 us, 0 rep] May 16 15:35:34 pike kernel: [ 1213.584069] [drm:i830_get_fifo_size] FIFO size - (0x00017e5f) A: 47 May 16 15:35:34 pike kernel: [ 1213.584079] [drm:i830_get_fifo_size] FIFO size - (0x00017e5f) B: 48 May 16 15:35:34 pike kernel: [ 1213.584085] [drm:i9xx_update_wm] FIFO watermarks - A: 45, B: 46 May 16 15:35:34 pike kernel: [ 1213.584090] [drm:i9xx_update_wm] Setting FIFO watermarks - A: 45, B: 46, C: 2, SR 1 May 16 15:35:34 pike kernel: [ 1213.584957] [drm:check_encoder_state] [ENCODER:9:DAC-9] May 16 15:35:34 pike kernel: [ 1213.584964] [drm:check_encoder_state] [ENCODER:10:None-10]
May 16 15:35:34 pike kernel: [ 1213.584970] [drm:check_crtc_state] [CRTC:5]
May 16 15:35:34 pike kernel: [ 1213.584983] [drm:check_crtc_state] [CRTC:7]

Huh, let's try something completely new! +45,+46. Well, guess what, doesn't work...

May 16 15:35:34 pike kernel: [ 1213.650767] [drm:drm_ioctl] pid=3040, dev=0xe200, auth=1, DRM_IOCTL_MODE_GETPROPERTY May 16 15:35:34 pike kernel: [ 1213.650790] [drm:drm_ioctl] pid=3040, dev=0xe200, auth=1, DRM_IOCTL_MODE_GETPROPERTY May 16 15:35:34 pike kernel: [ 1213.650807] [drm:drm_ioctl] pid=3040, dev=0xe200, auth=1, DRM_IOCTL_MODE_GETPROPERTY May 16 15:35:34 pike kernel: [ 1213.650816] [drm:drm_ioctl] pid=3040, dev=0xe200, auth=1, DRM_IOCTL_MODE_GETPROPERTY May 16 15:35:34 pike kernel: [ 1213.650829] [drm:drm_ioctl] pid=3040, dev=0xe200, auth=1, DRM_IOCTL_MODE_SETPROPERTY May 16 15:35:34 pike kernel: [ 1213.651004] [drm:drm_ioctl] pid=3040, dev=0xe200, auth=1, DRM_IOCTL_MODE_GETPROPERTY May 16 15:35:34 pike kernel: [ 1213.651014] [drm:drm_ioctl] pid=3040, dev=0xe200, auth=1, DRM_IOCTL_MODE_GETPROPERTY May 16 15:35:34 pike kernel: [ 1213.651023] [drm:drm_ioctl] pid=3040, dev=0xe200, auth=1, DRM_IOCTL_MODE_GETPROPERTY May 16 15:35:34 pike kernel: [ 1213.651031] [drm:drm_ioctl] pid=3040, dev=0xe200, auth=1, DRM_IOCTL_MODE_GETPROPERTY May 16 15:35:34 pike kernel: [ 1213.651041] [drm:drm_ioctl] pid=3040, dev=0xe200, auth=1, DRM_IOCTL_MODE_SETPROPERTY May 16 15:35:34 pike kernel: [ 1213.651730] [drm:i830_get_fifo_size] FIFO size - (0x00017e5f) A: 47 May 16 15:35:34 pike kernel: [ 1213.651737] [drm:intel_calculate_wm] FIFO entries required for mode: 41 May 16 15:35:34 pike kernel: [ 1213.651741] [drm:intel_calculate_wm] FIFO watermark level: 4 May 16 15:35:34 pike kernel: [ 1213.651746] [drm:i830_get_fifo_size] FIFO size - (0x00017e5f) B: 48 May 16 15:35:34 pike kernel: [ 1213.651752] [drm:i9xx_update_wm] FIFO watermarks - A: 4, B: 46 May 16 15:35:34 pike kernel: [ 1213.651757] [drm:i9xx_update_wm] Setting FIFO watermarks - A: 4, B: 46, C: 2, SR 1 May 16 15:35:34 pike kernel: [ 1213.669006] [drm:intel_connector_check_state] [CONNECTOR:8:VGA-1] May 16 15:35:34 pike kernel: [ 1213.669024] [drm:check_encoder_state] [ENCODER:9:DAC-9] May 16 15:35:34 pike kernel: [ 1213.669030] [drm:check_encoder_state] [ENCODER:10:None-10]
May 16 15:35:34 pike kernel: [ 1213.669038] [drm:check_crtc_state] [CRTC:5]
May 16 15:35:34 pike kernel: [ 1213.669058] [drm:check_crtc_state] [CRTC:7]
May 16 15:35:34 pike kernel: [ 1213.669123] [drm:drm_ioctl] pid=3040, dev=0xe200, auth=1, I915_GEM_THROTTLE May 16 15:35:34 pike kernel: [ 1213.670062] [drm:drm_ioctl] pid=3040, dev=0xe200, auth=1, I915_GEM_PWRITE May 16 15:35:34 pike kernel: [ 1213.670104] [drm:drm_ioctl] pid=3040, dev=0xe200, auth=1, I915_GEM_EXECBUFFER2 May 16 15:35:34 pike kernel: [ 1213.670117] [drm:i915_gem_do_execbuffer] UXA submitting garbage DR4, fixing up May 16 15:35:34 pike kernel: [ 1213.670227] [drm:drm_ioctl] pid=3040, dev=0xe200, auth=1, I915_GEM_MADVISE

Ok, why not disable pipe B again, and use a wrong value for pipe A. Guess what... still not working...

Anyhow, you get the story. The fix is actually simple.

1) Detect that you have a 830GM or 835GM.
2) If the value for the watermark register is lower than 8, set it to 8.

Done. Added to the kernel, stuff works.

Know what? Basel isn't far from Stuttgart. I'm close to catch a train and promise a good "Schocki" just to get this fixed. (-; I'll bring the R31 along.

It's not that I haven't had a patch for it. Really trivial. I wonder what keeps you from adding this to the kernel and just make things working?

Thanks, enjoy, and have a nice weekend!

Greetings,
	Thomas
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux