remarkable-linux/drivers/gpu/drm/radeon
Dave Airlie 7f98ca454a drm/radeon: fix hotplug race at startup
We apparantly get a hotplug irq before we've initialised
modesetting,

[drm] Loading R100 Microcode
BUG: unable to handle kernel NULL pointer dereference at   (null)
IP: [<c125f56f>] __mutex_lock_slowpath+0x23/0x91
*pde = 00000000
Oops: 0002 [#1]
Modules linked in: radeon(+) drm_kms_helper ttm drm i2c_algo_bit backlight pcspkr psmouse evdev sr_mod input_leds led_class cdrom sg parport_pc parport floppy intel_agp intel_gtt lpc_ich acpi_cpufreq processor button mfd_core agpgart uhci_hcd ehci_hcd rng_core snd_intel8x0 snd_ac97_codec ac97_bus snd_pcm usbcore usb_common i2c_i801 i2c_core snd_timer snd soundcore thermal_sys
CPU: 0 PID: 15 Comm: kworker/0:1 Not tainted 4.2.0-rc7-00015-gbf67402 #111
Hardware name: MicroLink                               /D850MV                         , BIOS MV85010A.86A.0067.P24.0304081124 04/08/2003
Workqueue: events radeon_hotplug_work_func [radeon]
task: f6ca5900 ti: f6d3e000 task.ti: f6d3e000
EIP: 0060:[<c125f56f>] EFLAGS: 00010282 CPU: 0
EIP is at __mutex_lock_slowpath+0x23/0x91
EAX: 00000000 EBX: f5e900fc ECX: 00000000 EDX: fffffffe
ESI: f6ca5900 EDI: f5e90100 EBP: f5e90000 ESP: f6d3ff0c
 DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068
CR0: 8005003b CR2: 00000000 CR3: 36f61000 CR4: 000006d0
Stack:
 f5e90100 00000000 c103c4c1 f6d2a5a0 f5e900fc f6df394c c125f162 f8b0faca
 f6d2a5a0 c138ca00 f6df394c f7395600 c1034741 00d40000 00000000 f6d2a5a0
 c138ca00 f6d2a5b8 c138ca10 c1034b58 00000001 f6d40000 f6ca5900 f6d0c940
Call Trace:
 [<c103c4c1>] ? dequeue_task_fair+0xa4/0xb7
 [<c125f162>] ? mutex_lock+0x9/0xa
 [<f8b0faca>] ? radeon_hotplug_work_func+0x17/0x57 [radeon]
 [<c1034741>] ? process_one_work+0xfc/0x194
 [<c1034b58>] ? worker_thread+0x18d/0x218
 [<c10349cb>] ? rescuer_thread+0x1d5/0x1d5
 [<c103742a>] ? kthread+0x7b/0x80
 [<c12601c0>] ? ret_from_kernel_thread+0x20/0x30
 [<c10373af>] ? init_completion+0x18/0x18
Code: 42 08 e8 8e a6 dd ff c3 57 56 53 83 ec 0c 8b 35 48 f7 37 c1 8b 10 4a 74 1a 89 c3 8d 78 04 8b 40 08 89 63

Reported-and-Tested-by: Meelis Roos <mroos@linux.ee>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2015-08-21 19:43:18 +10:00
..
reg_srcs
.gitignore
atom-bits.h
atom-names.h
atom-types.h
atom.c drm/radeon: add locking around atombios scratch space usage 2014-11-11 17:22:26 -05:00
atom.h drm/radeon: add locking around atombios scratch space usage 2014-11-11 17:22:26 -05:00
atombios.h drm/radeon: fix comment 2015-05-26 15:09:03 +02:00
atombios_crtc.c Revert "drm/radeon: adjust pll when audio is not enabled" 2015-06-11 10:27:01 -04:00
atombios_dp.c Linux 4.1-rc6 2015-06-04 09:23:51 +10:00
atombios_encoders.c drm/radeon: rework audio modeset to handle non-audio hdmi features 2015-07-29 15:50:28 -04:00
atombios_i2c.c drm/radeon: add locking around atombios scratch space usage 2014-11-11 17:22:26 -05:00
avivod.h
btc_dpm.c drm/radeon: remove some rv7xx leftovers from btc dpm code 2015-03-19 12:26:31 -04:00
btc_dpm.h Revert "drm/radeon: drop btc_get_max_clock_from_voltage_dependency_table" 2014-10-13 11:34:13 -04:00
btcd.h
cayman_blit_shaders.c
cayman_blit_shaders.h
ci_dpm.c drm/radeon/ci: silence a harmless PCC warning 2015-07-16 12:39:43 -04:00
ci_dpm.h drm/radeon: bind fan control on CI cards to hwmon interface (v2) 2015-01-22 10:38:48 -05:00
ci_smc.c drm/radeon: comment out some currently unused ci dpm code 2015-01-22 10:38:53 -05:00
cik.c drm/radeon: Handle irqs only based on irq ring, not irq status regs. 2015-07-08 12:41:36 -04:00
cik_blit_shaders.c
cik_blit_shaders.h
cik_reg.h drm/radeon: Add H/W debugger kfd->kgd functions 2015-06-03 11:31:12 +03:00
cik_sdma.c drm/radeon: SDMA fix hibernation (CI GPU family). 2015-06-29 11:21:41 -04:00
cikd.h drm/radeon: Add ATC VMID<-->PASID functions to kfd->kgd 2015-06-03 11:34:46 +03:00
clearstate_cayman.h drm/radeon: use NULL instead of zero in clearstate headers 2014-06-02 10:25:07 -04:00
clearstate_ci.h drm/radeon: use NULL instead of zero in clearstate headers 2014-06-02 10:25:07 -04:00
clearstate_defs.h
clearstate_evergreen.h
clearstate_si.h drm/radeon: use NULL instead of zero in clearstate headers 2014-06-02 10:25:07 -04:00
cypress_dpm.c drm/radeon: comment out some currently unused eg dpm code 2015-01-22 10:38:58 -05:00
cypress_dpm.h
dce3_1_afmt.c drm/radeon: use proper ACR regisiter for DCE3.2 2015-06-01 23:16:22 -04:00
dce6_afmt.c drm/radeon: rework audio detect (v4) 2015-07-29 15:48:05 -04:00
drm_buffer.c drm/radeon: move drm_buffer to drm/radeon/ 2014-09-10 17:11:21 +10:00
drm_buffer.h drm/radeon: move drm_buffer to drm/radeon/ 2014-09-10 17:11:21 +10:00
evergreen.c drm/radeon: Handle irqs only based on irq ring, not irq status regs. 2015-07-08 12:41:36 -04:00
evergreen_blit_shaders.c
evergreen_blit_shaders.h
evergreen_cs.c drm/radeon: evergreen/cayman indirect draw support (v2) 2015-01-22 10:38:46 -05:00
evergreen_dma.c drm/radeon: split semaphore and sync object handling v2 2014-11-20 13:00:16 -05:00
evergreen_hdmi.c drm/radeon/audio: make sure connector is valid in hotplug case 2015-05-27 13:14:59 -04:00
evergreen_reg.h radeon/audio: enable DP audio 2015-01-22 10:42:19 -05:00
evergreen_smc.h
evergreend.h drm/radeon: add get_allowed_info_register for EG/BTC 2015-03-19 12:26:39 -04:00
Kconfig drm/radeon: add userptr config option 2015-04-13 11:17:58 -04:00
kv_dpm.c drm/radeon/kv: implement get_current_sclk/mclk 2015-03-19 12:26:36 -04:00
kv_dpm.h
kv_smc.c
Makefile drm/radeon: add DisplayPort MST support (v2) 2015-03-19 12:26:51 -04:00
mkregtable.c Replace mentions of "list_struct" to "list_head" 2014-11-20 14:45:15 +01:00
ni.c drm/radeon: disable vce init on cayman (v2) 2015-07-09 11:40:12 -04:00
ni_dma.c drm/radeon: Remove rdev->gart.pages_addr array 2015-01-22 11:48:03 -05:00
ni_dpm.c drm/radeon/ni: implement get_current_sclk/mclk 2015-03-19 12:26:32 -04:00
ni_dpm.h
ni_reg.h drm/radeon: add DisplayPort MST support (v2) 2015-03-19 12:26:51 -04:00
nid.h drm/radeon: implement tn_set_vce_clocks 2015-05-26 10:31:21 -04:00
nislands_smc.h
ObjectID.h
ppsmc.h drm/radeon/dpm: add thermal dpm support for CI 2014-11-20 13:00:10 -05:00
pptable.h drm/radeon/dpm: add smc fan control for CI (v2) 2014-11-20 13:00:10 -05:00
r100.c radeon: Deinline indirect register accessor functions 2015-05-28 14:52:40 -04:00
r100_track.h
r100d.h
r200.c drm/radeon: rename radeon_cs_reloc to radeon_bo_list 2014-12-03 14:26:47 -05:00
r300.c radeon: Deinline indirect register accessor functions 2015-05-28 14:52:40 -04:00
r300_cmdbuf.c drm/radeon: move drm_buffer to drm/radeon/ 2014-09-10 17:11:21 +10:00
r300_reg.h
r300d.h
r420.c drm/radeon: Only flush HDP cache for indirect buffers from userspace 2014-08-18 17:09:44 -04:00
r420d.h
r500_reg.h drm/radeon: Bypass hw lut's for > 8 bpc framebuffer scanout. 2014-06-13 12:22:30 -04:00
r520.c
r520d.h
r600.c drm/radeon: Handle irqs only based on irq ring, not irq status regs. 2015-07-08 12:41:36 -04:00
r600_blit.c
r600_blit_shaders.c
r600_blit_shaders.h
r600_cp.c drm/radeon: fix underflow in r600_cp_dispatch_texture() 2015-07-08 12:41:43 -04:00
r600_cs.c drm/radeon: use pointers instead of indexes for CS chunks 2014-12-03 18:26:53 -05:00
r600_dma.c Linux 3.18-rc7 2014-12-02 10:58:33 +10:00
r600_dpm.c drm/radeon: use drm_mode_vrefresh() rather than mode->vrefresh 2015-02-25 16:06:05 -05:00
r600_dpm.h drm/radeon/dpm: add smc fan control for SI (v2) 2014-11-20 13:00:09 -05:00
r600_hdmi.c drm/radeon: fix ordering of AVI packet setup 2015-04-27 09:54:52 -04:00
r600_reg.h
r600d.h Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2014-10-14 09:39:08 +02:00
radeon.h drm/radeon: remove obsolete kfd_bo from radeon_device 2015-06-16 10:52:46 +03:00
radeon_acpi.c
radeon_acpi.h
radeon_agp.c radeon: Remove useless quirk for zx1/FireGL X1 combo introduced with fdo #7770 2014-06-02 10:25:08 -04:00
radeon_asic.c drm/radeon: add support for vce 1.0 clock gating 2015-05-26 10:31:24 -04:00
radeon_asic.h drm/radeon: add VCE 1.0 support v4 2015-05-26 10:31:23 -04:00
radeon_atombios.c drm/radeon: add DisplayPort MST support (v2) 2015-03-19 12:26:51 -04:00
radeon_atpx_handler.c ACPIPHP / radeon / nouveau: Remove acpi_bus_no_hotplug() 2014-09-15 13:15:34 -06:00
radeon_audio.c drm/radeon: rework audio modeset to handle non-audio hdmi features 2015-07-29 15:50:28 -04:00
radeon_audio.h drm/radeon: rework audio detect (v4) 2015-07-29 15:48:05 -04:00
radeon_benchmark.c drm/radeon: fix the crash in benchmark functions 2015-02-02 11:39:35 -05:00
radeon_bios.c radeon: Do not directly dereference pointers to BIOS area. 2015-03-27 10:17:42 -04:00
radeon_clocks.c
radeon_combios.c drm/radeon/combios: add some validation of lvds values 2015-07-29 15:50:36 -04:00
radeon_connectors.c drm/radeon: rework audio detect (v4) 2015-07-29 15:48:05 -04:00
radeon_cp.c drm: Move drm_memory.c map support declarations to <drm/drm_legacy.h> 2014-09-12 15:28:12 +02:00
radeon_cs.c drm/radeon: Use drm_calloc_ab for CS relocs 2015-04-27 09:54:50 -04:00
radeon_cursor.c drm/radeon: Fold radeon_set_cursor() into radeon_show_cursor() 2015-07-09 11:40:02 -04:00
radeon_device.c drm/radeon: unpin cursor BOs on suspend and pin them again on resume (v2) 2015-07-09 11:40:01 -04:00
radeon_display.c drm/radeon: implement output csc property for DCE5+ 2015-03-19 12:26:25 -04:00
radeon_dp_auxch.c drm/radeon: fix error flag checking in native aux path 2015-05-21 12:43:21 -04:00
radeon_dp_mst.c drm/radeon: don't probe MST on hw we don't support it on 2015-06-18 20:36:56 +02:00
radeon_drv.c drm/radeon: add a GPU reset counter queryable by userspace 2015-05-26 10:31:19 -04:00
radeon_drv.h drm: Create drm legacy driver header 2014-09-12 11:08:55 +02:00
radeon_encoders.c drm/radeon: add DisplayPort MST support (v2) 2015-03-19 12:26:51 -04:00
radeon_family.h drm/radeon: add Mullins chip family 2014-05-06 12:19:57 +02:00
radeon_fb.c Revert "Revert "drm/radeon: dont switch vt on suspend"" 2015-07-09 11:40:09 -04:00
radeon_fence.c drm/radeon: fix wait to actually occur after the signaling callback 2015-03-11 08:30:35 -04:00
radeon_gart.c drm/radeon: Don't flush the GART TLB if rdev->gart.ptr == NULL 2015-07-16 12:39:37 -04:00
radeon_gem.c drm/radeon: fix user ptr race condition 2015-07-16 12:39:37 -04:00
radeon_i2c.c drm/radeon/radeon_i2c: Remove unused function 2015-01-22 10:38:51 -05:00
radeon_ib.c drm/radeon: track VM update fences separately 2014-11-20 13:00:17 -05:00
radeon_ioc32.c drm: Remove DRM_ARRAY_SIZE() for ARRAY_SIZE() 2014-06-10 09:36:17 +10:00
radeon_irq.c
radeon_irq_kms.c drm/radeon: fix hotplug race at startup 2015-08-21 19:43:18 +10:00
radeon_kfd.c drm/radeon: Add ATC VMID<-->PASID functions to kfd->kgd 2015-06-03 11:34:46 +03:00
radeon_kfd.h drm/radeon: Don't use relative paths in #include 2015-01-02 23:32:49 +02:00
radeon_kms.c Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2015-06-26 13:18:51 -07:00
radeon_legacy_crtc.c drm/radeon: Re-show the cursor after a modeset 2014-12-03 14:26:44 -05:00
radeon_legacy_encoders.c drm/radeon: constify all struct drm_*_helper funcs pointers 2015-04-07 17:06:42 +02:00
radeon_legacy_tv.c
radeon_mem.c
radeon_mn.c drm/radeon: fix userptr lockup 2015-05-07 11:00:15 -04:00
radeon_mode.h drm/radeon: rework audio detect (v4) 2015-07-29 15:48:05 -04:00
radeon_object.c drm/radeon: fix user ptr race condition 2015-07-16 12:39:37 -04:00
radeon_object.h gpu: drm: radeon: radeon_object: Remove unused function 2015-01-22 10:38:52 -05:00
radeon_pm.c drm/radeon/dpm: fix 120hz handling harder 2015-03-27 10:17:42 -04:00
radeon_prime.c drm/radeon: export reservation_object from dmabuf to ttm 2014-10-03 09:19:17 -04:00
radeon_reg.h
radeon_ring.c drm/radeon: always dump the ring content if it's available 2015-03-27 10:17:43 -04:00
radeon_sa.c drm/radeon: export reservation_object from dmabuf to ttm 2014-10-03 09:19:17 -04:00
radeon_semaphore.c drm/radeon: split semaphore and sync object handling v2 2014-11-20 13:00:16 -05:00
radeon_state.c drm/radeon: integer underflow in radeon_cp_dispatch_texture() 2015-01-05 12:10:08 -05:00
radeon_sync.c drm/radeon: track VM update fences separately 2014-11-20 13:00:17 -05:00
radeon_test.c drm/radeon: fix the crash in test functions 2015-02-02 11:39:36 -05:00
radeon_trace.h tracing/drm: Remove unused TRACE_SYSTEM_STRING define 2015-04-07 12:29:23 -04:00
radeon_trace_points.c
radeon_ttm.c drm/radeon: use kzalloc for allocating one thing 2015-06-29 11:21:39 -04:00
radeon_ucode.c drm/radeon: add new firmware header definitions (v3) 2014-08-05 08:53:22 -04:00
radeon_ucode.h drm/radeon: add new firmware header definitions (v3) 2014-08-05 08:53:22 -04:00
radeon_uvd.c drm/radeon: stop trying to suspend UVD sessions 2015-05-07 11:00:18 -04:00
radeon_vce.c drm/radeon: add VCE 1.0 support v4 2015-05-26 10:31:23 -04:00
radeon_vm.c drm/radeon: check if BO_VA is set before adding it to the invalidation list 2015-07-09 11:40:10 -04:00
rs100d.h
rs400.c drm/radeon: Split off gart_get_page_entry ASIC hook from set_page_entry 2015-01-22 11:46:17 -05:00
rs400d.h
rs600.c drm/radeon: do a posting read in rs600_set_irq 2015-03-03 17:28:27 -05:00
rs600d.h
rs690.c radeon/audio: consolidate audio_fini() functions 2015-01-22 10:42:09 -05:00
rs690d.h
rs780_dpm.c drm/radeon/rs780: implement get_current_sclk/mclk 2015-03-19 12:26:29 -04:00
rs780_dpm.h
rs780d.h
rv6xx_dpm.c drm/radeon/rv6xx: implement get_current_sclk/mclk 2015-03-19 12:26:29 -04:00
rv6xx_dpm.h
rv6xxd.h
rv200d.h
rv250d.h
rv350d.h
rv515.c drm/radeon: make sure mode init is complete in bandwidth_update 2014-11-06 15:42:44 -05:00
rv515d.h
rv730_dpm.c
rv730d.h
rv740_dpm.c
rv740d.h
rv770.c drm/radeon: partially revert "fix VM_CONTEXT*_PAGE_TABLE_END_ADDR handling" 2015-05-28 09:54:43 -04:00
rv770_dma.c drm/radeon: split semaphore and sync object handling v2 2014-11-20 13:00:16 -05:00
rv770_dpm.c drm/radeon/rv7xx/eg: implement get_current_sclk/mclk 2015-03-19 12:26:30 -04:00
rv770_dpm.h drm/radeon: comment out some currently unused 7xx dpm code 2015-01-22 10:38:58 -05:00
rv770_smc.c
rv770_smc.h
rv770d.h drm/radeon: disable semaphores for UVD V1 (v2) 2015-05-04 15:03:56 -04:00
si.c drm/radeon: Handle irqs only based on irq ring, not irq status regs. 2015-07-08 12:41:36 -04:00
si_blit_shaders.c
si_blit_shaders.h
si_dma.c drm/radeon: Remove rdev->gart.pages_addr array 2015-01-22 11:48:03 -05:00
si_dpm.c drm/radeon: add a dpm quirk for Sapphire Radeon R9 270X 2GB GDDR5 2015-07-16 12:39:36 -04:00
si_dpm.h drm/radeon: bind fan control on SI cards to hwmon interface 2015-01-22 10:38:48 -05:00
si_reg.h
si_smc.c drm/radeon/si: Add support for new ucode format (v3) 2014-08-05 08:53:23 -04:00
sid.h drm/radeon: add support for vce 1.0 clock gating 2015-05-26 10:31:24 -04:00
sislands_smc.h drm/radeon/dpm: add smc fan control for SI (v2) 2014-11-20 13:00:09 -05:00
smu7.h
smu7_discrete.h drm/radeon/dpm: add smc fan control for CI (v2) 2014-11-20 13:00:10 -05:00
smu7_fusion.h
sumo_dpm.c drm/radeon/sumo: implement get_current_sclk/mclk 2015-03-19 12:26:34 -04:00
sumo_dpm.h drm/radeon: comment out some currently unused sumo dpm code 2015-01-22 10:38:57 -05:00
sumo_smc.c
sumod.h
trinity_dpm.c drm/radeon/tn/si: enable/disable vce cg when encoding v2 2015-05-26 10:31:25 -04:00
trinity_dpm.h
trinity_smc.c
trinityd.h
uvd_v1_0.c drm/radeon: disable semaphores for UVD V1 (v2) 2015-05-04 15:03:56 -04:00
uvd_v2_2.c drm/radeon: disable semaphores for UVD V1 (v2) 2015-05-04 15:03:56 -04:00
uvd_v3_1.c
uvd_v4_2.c
vce_v1_0.c drm/radeon: add support for vce 1.0 clock gating 2015-05-26 10:31:24 -04:00
vce_v2_0.c drm/radeon: rework VCE FW size calculation 2015-05-26 10:31:20 -04:00