Re: More questions and patches for 835GM/ns2501 DVO

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

 



On 03.11.2013 18:13, Daniel Vetter wrote:

Have you tried my patch to reorder the dvo sequence a bit? That /should/
get all these things right:

http://www.spinics.net/lists/intel-gfx/msg34349.html
There's also a follow-up patch for you to test:

http://www.spinics.net/lists/intel-gfx/msg34350.html

That would prove that the first patch does indeed work. Note that patch 1
in this series is already merged.

Sorry, but using an external monitor is still not working correctly. When booting with an external monitor connected, I either get no image at all (bios = internal) or flickering on the external monitor and nothing internally (bios = shared). When connecting the external monitor after X has started, I can get a working image on the monitor, but not on the internal panel. The DVO locks up again. If I configure the internal panel, then reconfigure the VGA, I get a stable image. If I try to change the internal panel dimensions then, I get a flickering external screen. The DVO is locked up in either case.

I get the following when switching internally from 800x600 to 1024x768 (just as an example):

/* snip */

Nov 3 20:12:20 tyleet kernel: [ 1399.497881] [drm:drm_mode_setcrtc], [CRTC:4] Nov 3 20:12:20 tyleet kernel: [ 1399.497890] [drm:drm_framebuffer_reference], FB ID: 39 Nov 3 20:12:20 tyleet kernel: [ 1399.497907] [drm:drm_mode_setcrtc], [CONNECTOR:8:DVI-I-1] Nov 3 20:12:20 tyleet kernel: [ 1399.497916] [drm:intel_crtc_set_config], [CRTC:4] [FB:39] #connectors=1 (x y) (0 0) Nov 3 20:12:20 tyleet kernel: [ 1399.497928] [drm:intel_set_config_compute_mode_changes], modes are different, full mode set Nov 3 20:12:20 tyleet kernel: [ 1399.497935] [drm:drm_mode_debug_printmodeline], Modeline 16:"" 0 40000 800 840 968 1056 600 601 605 628 0x0 0x5 Nov 3 20:12:20 tyleet kernel: [ 1399.497948] [drm:drm_mode_debug_printmodeline], Modeline 16:"" 0 65000 1024 1048 1184 1344 768 771 777 806 0x0 0xa Nov 3 20:12:20 tyleet kernel: [ 1399.497960] [drm:intel_set_config_compute_mode_changes], computed changes for [CRTC:4], mode_changed=1, fb_changed=0 Nov 3 20:12:20 tyleet kernel: [ 1399.497970] [drm:intel_modeset_stage_output_state], [CONNECTOR:5:VGA-1] to [CRTC:3] Nov 3 20:12:20 tyleet kernel: [ 1399.497978] [drm:intel_modeset_stage_output_state], [CONNECTOR:8:DVI-I-1] to [CRTC:4] Nov 3 20:12:20 tyleet kernel: [ 1399.497991] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 2, prepare: 2, disable: 0 Nov 3 20:12:20 tyleet kernel: [ 1399.498008] [drm:connected_sink_compute_bpp], [CONNECTOR:8:DVI-I-1] checking for sink bpp constrains Nov 3 20:12:20 tyleet kernel: [ 1399.498020] [drm:intel_modeset_pipe_config], plane bpp: 24, pipe bpp: 24, dithering: 0 Nov 3 20:12:20 tyleet kernel: [ 1399.498028] [drm:intel_dump_pipe_config], [CRTC:4][modeset] config for pipe B Nov 3 20:12:20 tyleet kernel: [ 1399.498036] [drm:intel_dump_pipe_config], cpu_transcoder: B Nov 3 20:12:20 tyleet kernel: [ 1399.498042] [drm:intel_dump_pipe_config], pipe bpp: 24, dithering: 0 Nov 3 20:12:20 tyleet kernel: [ 1399.498049] [drm:intel_dump_pipe_config], fdi/pch: 0, lanes: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0 Nov 3 20:12:20 tyleet kernel: [ 1399.498058] [drm:intel_dump_pipe_config], dp: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0 Nov 3 20:12:20 tyleet kernel: [ 1399.498066] [drm:intel_dump_pipe_config], requested mode: Nov 3 20:12:20 tyleet kernel: [ 1399.498072] [drm:drm_mode_debug_printmodeline], Modeline 0:"" 0 65000 1024 1048 1184 1344 768 771 777 806 0x0 0xa Nov 3 20:12:20 tyleet kernel: [ 1399.498084] [drm:intel_dump_pipe_config], adjusted mode: Nov 3 20:12:20 tyleet kernel: [ 1399.498090] [drm:drm_mode_debug_printmodeline], Modeline 0:"" 0 65000 1024 1048 1184 1344 768 771 777 806 0x0 0xa Nov 3 20:12:20 tyleet kernel: [ 1399.498102] [drm:intel_dump_crtc_timings], crtc timings: 65000 1024 1048 1184 1344 768 771 777 806, type: 0x0 flags: 0xa Nov 3 20:12:20 tyleet kernel: [ 1399.498112] [drm:intel_dump_pipe_config], port clock: 65000 Nov 3 20:12:20 tyleet kernel: [ 1399.498118] [drm:intel_dump_pipe_config], pipe src size: 1024x768 Nov 3 20:12:20 tyleet kernel: [ 1399.498125] [drm:intel_dump_pipe_config], gmch pfit: control: 0x00000000, ratios: 0x00000000, lvds border: 0x00000000 Nov 3 20:12:20 tyleet kernel: [ 1399.498132] [drm:intel_dump_pipe_config], pch pfit: pos: 0x00000000, size: 0x00000000, disabled Nov 3 20:12:20 tyleet kernel: [ 1399.498140] [drm:intel_dump_pipe_config], ips: 0 Nov 3 20:12:20 tyleet kernel: [ 1399.498145] [drm:intel_dump_pipe_config], double wide: 0 Nov 3 20:12:20 tyleet kernel: [ 1399.498158] [drm:ns2501_dpms], ns2501_dpms: Trying set the dpms of the DVO to 0 Nov 3 20:12:20 tyleet kernel: [ 1399.498438] [drm:ns2501_writeb], Unable to write register 0x08 to i915 gmbus dpb:56 Nov 3 20:12:20 tyleet kernel: [ 1399.498703] [drm:ns2501_writeb], Unable to write register 0x34 to i915 gmbus dpb:56 Nov 3 20:12:20 tyleet kernel: [ 1399.498968] [drm:ns2501_writeb], Unable to write register 0x35 to i915 gmbus dpb:56 Nov 3 20:12:20 tyleet kernel: [ 1399.498976] [drm:enable_dvo], enable_dvo: Trying to re-enable the DVO Nov 3 20:12:20 tyleet kernel: [ 1399.498985] [drm:enable_dvo], DVOA ctrl 0x00000000 Nov 3 20:12:20 tyleet kernel: [ 1399.498991] [drm:enable_dvo], DVOB ctrl 0x80004084 Nov 3 20:12:20 tyleet kernel: [ 1399.499006] [drm:enable_dvo], DVOC ctrl 0xd000409c Nov 3 20:12:20 tyleet kernel: [ 1399.499013] [drm:enable_dvo], PLL A ctrl 0x90a00000 Nov 3 20:12:20 tyleet kernel: [ 1399.499021] [drm:enable_dvo], PLL B ctrl 0xd0840000 Nov 3 20:12:20 tyleet kernel: [ 1399.501050] [drm:drm_calc_vbltimestamp_from_scanoutpos], crtc 1 : v 5 p(0,111)@ 1399.501043 -> 1399.498113 [e 6 us, 0 rep] Nov 3 20:12:20 tyleet kernel: [ 1399.521076] [drm:i830_get_fifo_size], FIFO size - (0x00017e5f) A: 47 Nov 3 20:12:20 tyleet kernel: [ 1399.521103] [drm:intel_calculate_wm], FIFO entries required for mode: 99 Nov 3 20:12:20 tyleet kernel: [ 1399.521110] [drm:intel_calculate_wm], FIFO watermark level: -54 Nov 3 20:12:20 tyleet kernel: [ 1399.521116] [drm:i830_update_wm], Setting FIFO watermarks - A: 1 Nov 3 20:12:20 tyleet kernel: [ 1399.521139] [drm:drm_vblank_get], enabling vblank on crtc 1, ret: -22 Nov 3 20:12:20 tyleet kernel: [ 1399.529131] [drm:i8xx_update_pll], computed PLL value is 0xd0820000 Nov 3 20:12:20 tyleet kernel: [ 1399.529139] [drm:i8xx_update_pll], clock P1 is 4 Nov 3 20:12:20 tyleet kernel: [ 1399.529150] [drm:i8xx_update_pll], clock P2 is 4 Nov 3 20:12:20 tyleet kernel: [ 1399.529279] [drm:i9xx_update_plane], Writing base 02C00000 00000000 0 0 8192 Nov 3 20:12:20 tyleet kernel: [ 1399.529301] [drm:intel_crtc_mode_set], [ENCODER:7:None-7] set [MODE:0:] Nov 3 20:12:20 tyleet kernel: [ 1399.552060] [drm:ns2501_mode_set], ns2501_mode_set: set mode (hdisplay=1024,htotal=1344,vdisplay=768,vtotal=806). Nov 3 20:12:20 tyleet kernel: [ 1399.552081] [drm:ns2501_mode_set], ns2501_mode_set: switching to 1024x768 Nov 3 20:12:20 tyleet kernel: [ 1399.552375] [drm:ns2501_writeb], Unable to write register 0x37 to i915 gmbus dpb:56 Nov 3 20:12:20 tyleet kernel: [ 1399.552641] [drm:ns2501_writeb], Unable to write register 0x08 to i915 gmbus dpb:56 Nov 3 20:12:20 tyleet kernel: [ 1399.552650] [drm:enable_dvo], enable_dvo: Trying to re-enable the DVO Nov 3 20:12:20 tyleet kernel: [ 1399.552659] [drm:enable_dvo], DVOA ctrl 0x00000000 Nov 3 20:12:20 tyleet kernel: [ 1399.552665] [drm:enable_dvo], DVOB ctrl 0x80004084 Nov 3 20:12:20 tyleet kernel: [ 1399.552675] [drm:enable_dvo], DVOC ctrl 0xd0004084 Nov 3 20:12:20 tyleet kernel: [ 1399.552682] [drm:enable_dvo], PLL A ctrl 0x90a00000 Nov 3 20:12:20 tyleet kernel: [ 1399.552689] [drm:enable_dvo], PLL B ctrl 0xd0820000 Nov 3 20:12:20 tyleet kernel: [ 1399.552697] [drm:ns2501_mode_set], ns2501_mode_set: switching to 1024x768 Nov 3 20:12:20 tyleet kernel: [ 1399.554019] [drm:ns2501_dpms], ns2501_dpms: Trying set the dpms of the DVO to 1 Nov 3 20:12:20 tyleet kernel: [ 1399.554282] [drm:ns2501_writeb], Unable to write register 0x08 to i915 gmbus dpb:56 Nov 3 20:12:20 tyleet kernel: [ 1399.554546] [drm:ns2501_writeb], Unable to write register 0x34 to i915 gmbus dpb:56 Nov 3 20:12:20 tyleet kernel: [ 1399.554810] [drm:ns2501_writeb], Unable to write register 0x35 to i915 gmbus dpb:56 Nov 3 20:12:20 tyleet kernel: [ 1399.554817] [drm:enable_dvo], enable_dvo: Trying to re-enable the DVO Nov 3 20:12:20 tyleet kernel: [ 1399.554825] [drm:enable_dvo], DVOA ctrl 0x00000000 Nov 3 20:12:20 tyleet kernel: [ 1399.554831] [drm:enable_dvo], DVOB ctrl 0x80004084 Nov 3 20:12:20 tyleet kernel: [ 1399.554839] [drm:enable_dvo], DVOC ctrl 0xd0004084 Nov 3 20:12:20 tyleet kernel: [ 1399.554846] [drm:enable_dvo], PLL A ctrl 0x90a00000 Nov 3 20:12:20 tyleet kernel: [ 1399.554853] [drm:enable_dvo], PLL B ctrl 0xd0820000 Nov 3 20:12:20 tyleet kernel: [ 1399.558625] [drm:drm_calc_timestamping_constants], crtc 4: hwmode: htotal 1344, vtotal 806, vdisplay 768 Nov 3 20:12:20 tyleet kernel: [ 1399.558646] [drm:drm_calc_timestamping_constants], crtc 4: clock 65000 kHz framedur 16665600 linedur 20676, pixeldur 15 Nov 3 20:12:20 tyleet kernel: [ 1399.558673] [drm:intel_connector_check_state], [CONNECTOR:5:VGA-1] Nov 3 20:12:20 tyleet kernel: [ 1399.558943] [drm:ns2501_readb], Unable to read register 0x08 from i915 gmbus dpb:0x38. Nov 3 20:12:20 tyleet kernel: [ 1399.558955] [drm:check_encoder_state], [ENCODER:6:DAC-6] Nov 3 20:12:20 tyleet kernel: [ 1399.558964] [drm:check_encoder_state], [ENCODER:7:None-7] Nov 3 20:12:20 tyleet kernel: [ 1399.558972] [drm:check_crtc_state], [CRTC:3] Nov 3 20:12:20 tyleet kernel: [ 1399.559005] [drm:check_crtc_state], [CRTC:4] Nov 3 20:12:20 tyleet kernel: [ 1399.559027] [drm:drm_framebuffer_reference], FB ID: 39 Nov 3 20:12:20 tyleet kernel: [ 1399.559036] [drm:drm_framebuffer_unreference], FB ID: 39 Nov 3 20:12:20 tyleet kernel: [ 1399.559042] [drm:drm_framebuffer_reference], FB ID: 39 Nov 3 20:12:20 tyleet kernel: [ 1399.559047] [drm:drm_framebuffer_unreference], FB ID: 39 Nov 3 20:12:20 tyleet kernel: [ 1399.559059] [drm:drm_framebuffer_unreference], FB ID: 39

/* snip */

The drm:enable_dvo lines are from my current version of the patch and dump the corresponding i835 registers.

Note the following: Assuming that the internal panel is feed by pipe B (I hope I assume right) then the PLL registers are off. They should be 0xd0820000, but the PLL for pipe B is configured to 0xd0840000.

I'll check later what this bit precisely means. One way or another, the PLL configuration is not correct to feed the DVO,
and hence I'll get a frozen DVO again. )-:

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