Bug 16068

Summary: Intel i915 drm driver doesnot correctly enumerates output
Product: Drivers Reporter: vadim (vadim.v.panov)
Component: Video(DRI - Intel)Assignee: drivers_video-dri-intel (drivers_video-dri-intel)
Status: RESOLVED CODE_FIX    
Severity: high CC: jbarnes, vadim.v.panov
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.34-rc7 Subsystem:
Regression: No Bisected commit-id:
Attachments: patch solving the problem

Description vadim 2010-05-28 13:32:27 UTC
Created attachment 26567 [details]
patch solving the problem

i915 cannot correctly attach svdo->vga converter.
the problem is in counting outputs of same type.
svdo output connector first created, but then output type is modified. But output type modification should follow "devices of that type" counter modification

patch solving this problem for i915 is applyed

need to check is modification required to other drm driver (just with grep -r connector_type * on /drivers/gpu/drm).

------------[ cut here ]------------
WARNING: at fs/sysfs/dir.c:451 sysfs_add_one+0xb2/0xc7()
Hardware name:  
sysfs: cannot create duplicate filename '/devices/pci0000:00/0000:00:02.0/drm/card0/card0-VGA-1'
Modules linked in: i915(+) drm_kms_helper drm i2c_algo_bit i2c_core video output
Pid: 71, comm: modprobe Not tainted 2.6.34-rc7 #4
Call Trace:
[<c043b1d6>] warn_slowpath_common+0x6a/0x81
[<c05257d0>] ? sysfs_add_one+0xb2/0xc7
[<c043b22b>] warn_slowpath_fmt+0x29/0x2c
[<c05257d0>] sysfs_add_one+0xb2/0xc7
[<c052582d>] create_dir+0x48/0x71
[<c0525888>] sysfs_create_dir+0x32/0x42
[<c07b77a2>] ? _raw_spin_unlock+0x22/0x25
[<c05bb320>] kobject_add_internal+0xef/0x1b3
[<c05bb495>] kobject_add_varg+0x31/0x3d
[<c05bb50b>] kobject_add+0x43/0x49
[<c06604fe>] device_add+0xba/0x4b1
[<c0667604>] ? pm_runtime_init+0xf4/0xfa
[<c066750d>] ? device_pm_init+0x33/0x36
[<c066090c>] device_register+0x17/0x1a
[<f82a19c6>] drm_sysfs_connector_add+0x92/0x193 [drm]
[<c0660358>] ? device_unregister+0x35/0x53
[<f8919e3b>] intel_sdvo_output_setup+0x291/0x2ac [i915]
[<f8910002>] ? ironlake_crtc_dpms+0x70/0xb5d [i915]
[<f891aeca>] intel_sdvo_detect+0xaf/0xd5 [i915]
[<f8352107>] drm_helper_probe_single_connector_modes+0x9f/0x23e [drm_kms_helper]
[<f83522dd>] drm_helper_probe_connector_modes+0x37/0x63 [drm_kms_helper]
[<f8353006>] drm_helper_initial_config+0x2a/0x52 [drm_kms_helper]
[<f890082e>] i915_driver_load+0xc54/0xd00 [i915]
[<f829fc1e>] drm_get_dev+0x31b/0x3f2 [drm]
[<f8920f3f>] i915_pci_probe+0x12/0xbc [i915]
[<c05d246c>] local_pci_probe+0x13/0x15
[<c05d3059>] pci_device_probe+0x48/0x6b
[<c066299b>] driver_probe_device+0xca/0x1d2
[<c0662aeb>] __driver_attach+0x48/0x64
[<c0661ff8>] bus_for_each_dev+0x42/0x6c
[<c0662789>] driver_attach+0x19/0x1b
[<c0662aa3>] ? __driver_attach+0x0/0x64
[<c066245d>] bus_add_driver+0xb6/0x201
[<c0662d56>] driver_register+0x81/0xe8
[<c05c4eae>] ? __raw_spin_lock_init+0x28/0x4e
[<c05d323c>] __pci_register_driver+0x51/0xae
[<f829b6e7>] drm_init+0x62/0xba [drm]
[<f893b000>] ? i915_init+0x0/0x8b [i915]
[<f893b089>] i915_init+0x89/0x8b [i915]
[<c0401154>] do_one_initcall+0x62/0x170
[<c046d8a6>] sys_init_module+0xae/0x1e6
[<c040331f>] sysenter_do_call+0x12/0x38
Comment 1 Jesse Barnes 2010-07-23 20:12:20 UTC
This should be fixed by the SDVO code currently upstream.