Bug 18342
Summary: | [regression] i915 incorrectly detects bogus LVDS connection instead of LVDS1 | ||
---|---|---|---|
Product: | Drivers | Reporter: | Maciej Rutecki (maciej.rutecki) |
Component: | Video(DRI - Intel) | Assignee: | drivers_video-dri-intel (drivers_video-dri-intel) |
Status: | CLOSED CODE_FIX | ||
Severity: | normal | CC: | chris, maciej.rutecki, rjw, terraluna977 |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 2.6.36-rc4 | Subsystem: | |
Regression: | Yes | Bisected commit-id: | |
Bug Depends on: | |||
Bug Blocks: | 16444 | ||
Attachments: |
Cleanup after failure correctly.
Don't bail for an unsupported command. |
Description
Maciej Rutecki
2010-09-12 18:43:34 UTC
Problem still present in 2.6.36-rc4 Not fixed in 2.6.36-rc5 nor 2.6.36-rc5-git1 Actually the problem is probably more significant then just incorrect display selection - I am pretty sure that the system is crashed, except there is no way to investigate - no screen and USB kbd seems dead - even NUMLK does not work... To get more data, I have rebuilt the kernel with DRM in modules. Once in the ramdisk I have started insmod'ing (by hand) the DRM modules, I have managed to collect a dmsg output as follows: [ 193.760859] [drm] Initialized drm 1.1.0 20060810 [ 273.297522] i915 0000:00:02.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16 [ 273.297543] i915 0000:00:02.0: setting latency timer to 64 [ 273.383280] [drm] set up 7M of stolen space [ 273.688286] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+me m,decodes=io+mem:owns=io+mem [ 273.688813] [drm] initialized overlay support [ 273.836070] BUG: unable to handle kernel NULL pointer dereference at 0000004c [ 273.836086] IP: [<f831c3a8>] 0xf831c3a8 [ 273.836101] *pde = 00000000 [ 273.836111] Oops: 0000 [#1] SMP [ 273.836120] last sysfs file: [ 273.836129] Modules linked in: i915(+) drm_kms_helper drm i2c_algo_bit usb_st orage usb_libusual ohci_hcd uhci_hcd ehci_hcd usbhid usbcore [ 273.836164] [ 273.836177] Pid: 1190, comm: insmod Not tainted 2.6.36-mini #3 To be filled b y O.E.M./To be filled by O.E.M. [ 273.836191] EIP: 0060:[<f831c3a8>] EFLAGS: 00010286 CPU: 1 [ 273.836202] EAX: 00000000 EBX: 00001000 ECX: 00000000 EDX: 0000000b [ 273.836213] ESI: 00000000 EDI: 0000000b EBP: 00000000 ESP: f688fb5c [ 273.836224] DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068 [ 273.836236] Process insmod (pid: 1190, ti=f688e000 task=f70eb7e0 task.ti=f688e000) [ 273.836245] Stack: [ 273.836251] c013bf3e c030861b f688fb84 f827dd89 c013bf00 f7064000 00000000 0000000b [ 273.836274] <0> 00001000 00000000 00000000 f69ad800 f831c552 00000000 00000001 00000000 [ 273.836297] <0> 0b91e27c e0e0e0e0 f8276f68 f69ad800 00001000 00001000 00000000 f69ad800 [ 273.836322] Call Trace: [ 273.836333] [<c013bf3e>] ? 0xc013bf3e [ 273.836343] [<c030861b>] ? 0xc030861b [ 273.836354] [<c013bf00>] ? 0xc013bf00 [ 273.836364] [<f831c552>] ? 0xf831c552 [ 273.836374] [<f8276f68>] ? 0xf8276f68 [ 273.836384] [<f831fea2>] ? 0xf831fea2 [ 273.836394] [<c030953b>] ? 0xc030953b [ 273.836404] [<f827828d>] ? 0xf827828d [ 273.836414] [<f829dfd8>] ? 0xf829dfd8 [ 273.836426] [<f829c047>] ? 0xf829c047 [ 273.836438] [<c01a7c66>] ? 0xc01a7c66 [ 273.836447] [<c01a7d14>] ? 0xc01a7d14 [ 273.836458] [<f83205e1>] ? 0xf83205e1 [ 273.836468] [<f82fddc2>] ? 0xf82fddc2 [ 273.836477] [<f82fd5f0>] ? 0xf82fd5f0 [ 273.836490] [<f8272f23>] ? 0xf8272f23 [ 273.836500] [<c01f28d3>] ? 0xc01f28d3 [ 273.836511] [<c031e88b>] ? 0xc031e88b [ 273.836521] [<c031f601>] ? 0xc031f601 [ 273.836531] [<c03924b3>] ? 0xc03924b3 [ 273.836540] [<c01f335e>] ? 0xc01f335e [ 273.836550] [<c031e946>] ? 0xc031e946 [ 273.836560] [<c0392639>] ? 0xc0392639 [ 273.836569] [<c031f540>] ? 0xc031f540 [ 273.836579] [<c0391dc9>] ? 0xc0391dc9 [ 273.836589] [<c031f540>] ? 0xc031f540 [ 273.836598] [<c0392356>] ? 0xc0392356 [ 273.836608] [<c03925c0>] ? 0xc03925c0 [ 273.836617] [<c03916ff>] ? 0xc03916ff [ 273.836627] [<c031f540>] ? 0xc031f540 [ 273.836637] [<c039287c>] ? 0xc039287c [ 273.836648] [<f8338000>] ? 0xf8338000 [ 273.836657] [<c031f82d>] ? 0xc031f82d [ 273.836667] [<c010112b>] ? 0xc010112b [ 273.836677] [<c015c68b>] ? 0xc015c68b [ 273.836696] [<c0478325>] ? 0xc0478325 [ 273.836704] Code: 0f 00 83 e0 c0 88 45 0e 83 c4 4c 5b 5e 5f 5d c3 8d 76 00 55 57 89 d7 56 0f b6 d2 53 83 ec 20 89 4c 24 18 8b 6c 24 34 89 54 24 1c <8b> 40 4c 3d 40 11 06 00 0f 84 32 01 00 00 3d 40 11 0e 00 ba 4b [ 273.836823] EIP: [<f831c3a8>] SS:ESP 0068:f688fb5c [ 273.836834] CR2: 000000000000004c [ 273.836844] ---[ end trace 443791986a317ac9 ]--- The kernel addresses on stack seem consistent - I have run the experiment twice. Unfortunately they do not tell me much: c013bf3e is in "msleep" c030861b is in "string" The way I have collected dmesg output may explain the msleep: insmod i915.ko ; sleep 1 ; dmesg > /mnt/dmesg.log ; umount /mnt What other useful traces could I collect? Try including debugging symbols when compiling the kernel and enable frame pointers. OK, rebuilt kernel with framepointer and debugging. Insmoded drm.ko with debug=255 [ 14.537478] kobject: 'i2c_algo_bit' (f832ade8): kobject_add_internal: parent: 'module', set: 'module' [ 14.537518] kobject: 'holders' (f6960380): kobject_add_internal: parent: 'i2c_algo_bit', set: '<NULL>' [ 14.537549] kobject: 'i2c_algo_bit' (f832ade8): kobject_uevent_env [ 14.537574] kobject: 'i2c_algo_bit' (f832ade8): fill_kobj_path: path = '/module/i2c_algo_bit' [ 36.868238] kobject: 'drm' (f841dd48): kobject_add_internal: parent: 'module', set: 'module' [ 36.868281] kobject: 'holders' (f69602c0): kobject_add_internal: parent: 'drm', set: '<NULL>' [ 36.868317] kobject: 'drm' (f841dd48): kobject_uevent_env [ 36.868346] kobject: 'drm' (f841dd48): fill_kobj_path: path = '/module/drm' [ 36.868784] kobject: 'drm' (f69ac20c): kobject_add_internal: parent: 'class', set: 'class' [ 36.868814] kobject: 'drm' (f69ac20c): kobject_uevent_env [ 36.868836] kobject: 'drm' (f69ac20c): fill_kobj_path: path = '/class/drm' [ 36.869037] [drm] Initialized drm 1.1.0 20060810 [ 50.546226] kobject: 'drm_kms_helper' (f844c848): kobject_add_internal: parent: 'module', set: 'module' [ 50.546267] kobject: 'holders' (f6960140): kobject_add_internal: parent: 'drm_kms_helper', set: '<NULL>' [ 50.546307] kobject: 'drm_kms_helper' (f844c848): kobject_uevent_env [ 50.546332] kobject: 'drm_kms_helper' (f844c848): fill_kobj_path: path = '/module/drm_kms_helper' [ 108.862990] kobject: 'i915' (f85db648): kobject_add_internal: parent: 'module', set: 'module' [ 108.863037] kobject: 'holders' (f69354c0): kobject_add_internal: parent: 'i915', set: '<NULL>' [ 108.863096] kobject: 'i915' (f85db648): kobject_uevent_env [ 108.863126] kobject: 'i915' (f85db648): fill_kobj_path: path = '/module/i915' [ 108.863663] [drm:drm_init], [ 108.863692] kobject: 'i915' (f68bc0c0): kobject_add_internal: parent: 'drivers', set: 'drivers' [ 108.863739] [drm:drm_get_pci_dev], [ 108.863788] i915 0000:00:02.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16 [ 108.863806] i915 0000:00:02.0: setting latency timer to 64 [ 108.868158] [drm:drm_get_minor], [ 108.868385] kobject: 'drm' (f6935580): kobject_add_internal: parent: '0000:00:02.0', set: '(null)' [ 108.868419] kobject: 'controlD64' (f6945214): kobject_add_internal: parent: 'drm', set: 'devices' [ 108.868791] kobject: 'controlD64' (f6945214): kobject_uevent_env [ 108.868821] kobject: 'controlD64' (f6945214): fill_kobj_path: path = '/devices/pci0000:00/0000:00:02.0/drm/controlD64' [ 108.869102] [drm:drm_get_minor], new minor assigned 64 [ 108.869118] [drm:drm_get_minor], [ 108.869325] kobject: 'card0' (f6945414): kobject_add_internal: parent: 'drm', set: 'devices' [ 108.869591] kobject: 'card0' (f6945414): kobject_uevent_env [ 108.869618] kobject: 'card0' (f6945414): fill_kobj_path: path = '/devices/pci0000:00/0000:00:02.0/drm/card0' [ 108.869835] [drm:drm_get_minor], new minor assigned 0 [ 108.947540] [drm:i915_init_phys_hws], Enabled hardware status page [ 108.947575] [drm] set up 7M of stolen space [ 108.947832] [drm:drm_agp_bind_pages], [ 108.948186] [drm:parse_general_definitions], crt_ddc_bus_pin: 2 [ 108.948211] [drm:parse_lfp_panel_data], Found panel mode in BIOS VBT tables: [ 108.948224] [drm:drm_mode_debug_printmodeline], Modeline 0:"840x1050" 0 59600 840 840 840 920 1050 1050 1050 1080 0x8 0xa [ 108.948289] [drm:parse_sdvo_device_mapping], the SDVO device with slave addr 70 is found on SDVOB port [ 108.948343] [drm:intel_modeset_init], 2 display pipes available. [ 108.948372] [drm:intel_crtc_init], swapping pipes & planes for FBC [ 108.948398] [drm:intel_crtc_init], swapping pipes & planes for FBC [ 108.948423] [drm:intel_lvds_init], LVDS is not present in VBT [ 108.948471] kobject: 'i2c-0' (f6945844): kobject_add_internal: parent: '0000:00:02.0', set: 'devices' [ 108.948532] kobject: 'i2c-0' (f6945844): kobject_uevent_env [ 108.948557] kobject: 'i2c-0' (f6945844): fill_kobj_path: path = '/devices/pci0000:00/0000:00:02.0/i2c-0' [ 108.948873] [drm:drm_sysfs_connector_add], adding "VGA-1" to sysfs [ 108.948899] kobject: 'card0-VGA-1' (f699840c): kobject_add_internal: parent: 'card0', set: 'devices' [ 108.948939] kobject: 'card0-VGA-1' (f699840c): kobject_uevent_env [ 108.948964] kobject: 'card0-VGA-1' (f699840c): fill_kobj_path: path = '/devices/pci0000:00/0000:00:02.0/drm/card0/card0-VGA-1' [ 108.949150] [drm:drm_sysfs_hotplug_event], generating hotplug event [ 108.949165] kobject: 'card0' (f6945414): kobject_uevent_env [ 108.949189] kobject: 'card0' (f6945414): fill_kobj_path: path = '/devices/pci0000:00/0000:00:02.0/drm/card0' [ 108.949359] [drm:intel_setup_outputs], probing SDVOB [ 108.949393] kobject: 'i2c-1' (f6945a44): kobject_add_internal: parent: '0000:00:02.0', set: 'devices' [ 108.949438] kobject: 'i2c-1' (f6945a44): kobject_uevent_env [ 108.949461] kobject: 'i2c-1' (f6945a44): fill_kobj_path: path = '/devices/pci0000:00/0000:00:02.0/i2c-1' [ 109.195090] kobject: 'i2c-2' (f6926e44): kobject_add_internal: parent: '0000:00:02.0', set: 'devices' [ 109.195146] kobject: 'i2c-2' (f6926e44): kobject_uevent_env [ 109.195170] kobject: 'i2c-2' (f6926e44): fill_kobj_path: path = '/devices/pci0000:00/0000:00:02.0/i2c-2' [ 109.195457] kobject: 'i2c-3' (f6926c44): kobject_add_internal: parent: '0000:00:02.0', set: 'devices' [ 109.195501] kobject: 'i2c-3' (f6926c44): kobject_uevent_env [ 109.195525] kobject: 'i2c-3' (f6926c44): fill_kobj_path: path = '/devices/pci0000:00/0000:00:02.0/i2c-3' [ 109.195787] [drm:intel_sdvo_debug_write], SDVOB: W: 02 (SDVO_CMD_GET_DEVICE_CAPS) [ 109.233258] [drm:intel_sdvo_debug_response], SDVOB: R: 02 41 01 01 01 5D 40 00 (Success) [ 109.233300] [drm:drm_sysfs_connector_add], adding "LVDS-1" to sysfs [ 109.233326] kobject: 'card0-LVDS-1' (f69ae80c): kobject_add_internal: parent: 'card0', set: 'devices' [ 109.233367] kobject: 'card0-LVDS-1' (f69ae80c): kobject_uevent_env [ 109.233392] kobject: 'card0-LVDS-1' (f69ae80c): fill_kobj_path: path = '/devices/pci0000:00/0000:00:02.0/drm/card0/card0-LVDS-1' [ 109.233581] [drm:drm_sysfs_hotplug_event], generating hotplug event [ 109.233596] kobject: 'card0' (f6945414): kobject_uevent_env [ 109.233620] kobject: 'card0' (f6945414): fill_kobj_path: path = '/devices/pci0000:00/0000:00:02.0/drm/card0' [ 109.233788] [drm:intel_sdvo_debug_write], SDVOB: W: 84 (SDVO_CMD_GET_SUPPORTED_ENHANCEMENTS) [ 109.248280] [drm:intel_sdvo_debug_response], SDVOB: R: 00 00 (Not supported) [ 109.248310] [drm:intel_sdvo_init], SDVO output failed to setup on SDVOB [ 109.248358] kobject: 'i2c-3' (f6926c44): kobject_uevent_env [ 109.248382] kobject: 'i2c-3' (f6926c44): fill_kobj_path: path = '/devices/pci0000:00/0000:00:02.0/i2c-3' [ 109.248552] kobject: 'i2c-3' (f6926c44): kobject_cleanup [ 109.248566] kobject: 'i2c-3' (f6926c44): calling ktype release [ 109.248576] kobject: 'i2c-3': free name [ 109.248611] kobject: 'i2c-2' (f6926e44): kobject_uevent_env [ 109.248635] kobject: 'i2c-2' (f6926e44): fill_kobj_path: path = '/devices/pci0000:00/0000:00:02.0/i2c-2' [ 109.248802] kobject: 'i2c-2' (f6926e44): kobject_cleanup [ 109.248815] kobject: 'i2c-2' (f6926e44): calling ktype release [ 109.248825] kobject: 'i2c-2': free name [ 109.248858] kobject: 'i2c-1' (f6945a44): kobject_uevent_env [ 109.248882] kobject: 'i2c-1' (f6945a44): fill_kobj_path: path = '/devices/pci0000:00/0000:00:02.0/i2c-1' [ 109.249045] kobject: 'i2c-1' (f6945a44): kobject_cleanup [ 109.249058] kobject: 'i2c-1' (f6945a44): calling ktype release [ 109.249068] kobject: 'i2c-1': free name [ 109.249080] [drm:intel_setup_outputs], probing SDVOC [ 109.249107] kobject: 'i2c-1' (f6945a44): kobject_add_internal: parent: '0000:00:02.0', set: 'devices' [ 109.249153] kobject: 'i2c-1' (f6945a44): kobject_uevent_env [ 109.249177] kobject: 'i2c-1' (f6945a44): fill_kobj_path: path = '/devices/pci0000:00/0000:00:02.0/i2c-1' [ 109.253877] [drm:intel_sdvo_read_byte], i2c transfer returned -6 [ 109.253892] [drm:intel_sdvo_init], No SDVO device found on SDVOC [ 109.253929] kobject: 'i2c-1' (f6945a44): kobject_uevent_env [ 109.253953] kobject: 'i2c-1' (f6945a44): fill_kobj_path: path = '/devices/pci0000:00/0000:00:02.0/i2c-1' [ 109.254131] kobject: 'i2c-1' (f6945a44): kobject_cleanup [ 109.254144] kobject: 'i2c-1' (f6945a44): calling ktype release [ 109.254154] kobject: 'i2c-1': free name [ 109.254169] [drm:intel_tv_init], Integrated TV is not present. [ 109.254193] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=io+mem:owns=io+mem [ 109.254720] [drm] initialized overlay support [ 109.254733] [drm:drm_irq_install], irq=16 [ 109.254775] [drm:i915_get_vblank_counter], trying to get vblank count for disabled pipe 0 [ 109.374179] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:5:VGA-1] [ 109.388103] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:5:VGA-1] disconnected [ 109.388123] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:8:LVDS-1] [ 109.388148] BUG: unable to handle kernel NULL pointer dereference at 0000004c [ 109.388162] IP: [<f85c1ea4>] 0xf85c1ea4 [ 109.388176] *pde = 00000000 [ 109.388186] Oops: 0000 [#1] SMP [ 109.388196] last sysfs file: [ 109.388205] Modules linked in: i915(+) drm_kms_helper drm i2c_algo_bit ohci_hcd uhci_hcd ehci_hcd usbhid usbcore [ 109.388237] [ 109.388250] Pid: 1151, comm: insmod Not tainted 2.6.36-mini #4 To be filled by O.E.M./To be filled by O.E.M. [ 109.388265] EIP: 0060:[<f85c1ea4>] EFLAGS: 00010282 CPU: 1 [ 109.388277] EAX: 00000000 EBX: 00001000 ECX: 00000000 EDX: 0000000b [ 109.388288] ESI: 00000000 EDI: 0000000b EBP: f70dbac4 ESP: f70dba98 [ 109.388301] DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068 [ 109.388314] Process insmod (pid: 1151, ti=f70da000 task=f70eaa60 task.ti=f70da000) [ 109.388323] Stack: [ 109.388329] 00000000 c05eeea0 c05eeeb5 f70dbb18 00000246 f70dbb44 00000000 0000000b [ 109.388353] <0> 00001000 00000000 00000000 f70dbafc f85c2051 00000000 f6998a7c e0e0e0e0 [ 109.388378] <0> 00000000 0b40ed67 00000007 f69ae800 00001000 f69ae800 00001000 00000000 [ 109.388404] Call Trace: [ 109.388419] [<f85c2051>] ? 0xf85c2051 [ 109.388430] [<f85c5855>] ? 0xf85c5855 [ 109.388442] [<f8408caa>] ? 0xf8408caa [ 109.388452] [<f844b031>] ? 0xf844b031 [ 109.388465] [<f8448e06>] ? 0xf8448e06 [ 109.388477] [<c01aa127>] ? 0xc01aa127 [ 109.388487] [<c01aa1c7>] ? 0xc01aa1c7 [ 109.388498] [<f85c5faf>] ? 0xf85c5faf [ 109.388509] [<f85a3d82>] ? 0xf85a3d82 [ 109.388519] [<f85a35e0>] ? 0xf85a35e0 [ 109.388533] [<f840ac81>] ? 0xf840ac81 [ 109.388545] [<f85cd9c8>] ? 0xf85cd9c8 [ 109.388555] [<c031ba2e>] ? 0xc031ba2e [ 109.388566] [<c031c780>] ? 0xc031c780 [ 109.388577] [<c0391a26>] ? 0xc0391a26 [ 109.388587] [<c031bbb6>] ? 0xc031bbb6 [ 109.388598] [<c0391cb9>] ? 0xc0391cb9 [ 109.388608] [<c03911c3>] ? 0xc03911c3 [ 109.388619] [<c031c6c0>] ? 0xc031c6c0 [ 109.388629] [<c0391809>] ? 0xc0391809 [ 109.388639] [<c0391c40>] ? 0xc0391c40 [ 109.388649] [<c0390ac7>] ? 0xc0390ac7 [ 109.388660] [<c031c6c0>] ? 0xc031c6c0 [ 109.388670] [<c0391f09>] ? 0xc0391f09 [ 109.388681] [<f85de000>] ? 0xf85de000 [ 109.388691] [<c031c9b0>] ? 0xc031c9b0 [ 109.388702] [<f85de000>] ? 0xf85de000 [ 109.388712] [<f840ae35>] ? 0xf840ae35 [ 109.388723] [<f85de000>] ? 0xf85de000 [ 109.388733] [<f84044ff>] ? 0xf84044ff [ 109.388744] [<f85de06a>] ? 0xf85de06a [ 109.388754] [<c010112b>] ? 0xc010112b [ 109.388766] [<c015eef5>] ? 0xc015eef5 [ 109.388786] [<c047a2b5>] ? 0xc047a2b5 [ 109.388794] Code: 0f 00 83 e0 c0 88 47 0e 83 c4 60 5b 5e 5f 5d c3 8d b4 26 00 00 00 00 55 89 e5 57 89 d7 56 0f b6 d2 53 83 ec 20 89 4d ec 89 55 f0 <8b> 40 4c 3d 40 11 06 00 0f 84 36 01 00 00 3d 40 11 0e 00 ba cb [ 109.388922] EIP: [<f85c1ea4>] SS:ESP 0068:f70dba98 [ 109.388934] CR2: 000000000000004c [ 109.388945] ---[ end trace 013b02ae31ef17dd ]--- [ 109.389749] [drm:i915_driver_irq_handler], pipe a underrun [ 109.389762] [drm:i915_driver_irq_handler], pipe b underrun Unfortunately I am not sure if I will be able to access the hardware anymore as I am moving to a different job... Thanks for the drm.debug dmesg, it showed exactly where the problem was. Created attachment 31092 [details]
Cleanup after failure correctly.
Created attachment 31102 [details]
Don't bail for an unsupported command.
The first corrects the error path not to trigger the OOPS. The second patch should restore your LVDS connection.
I have built a kernel with both patches, boots OK. Please add it to the 2.6.36 release... Included in drm-intel-fixes, soon to be featured in a pull request. Available from linus/master. Fix is present in 2.6.36-rc6 Tested on the actual hardware... |