OpenCloudOS-Kernel/drivers/gpu/drm
Marc Zyngier 5f9e93fed4 drm/rockchip: Clear all interrupts before requesting the IRQ
Calling request_irq() followed by disable_irq() is usually a bad idea,
specially if the interrupt can be pending, and you're not yet in a
position to handle it.

This is exactly what happens on my kevin system when rebooting in a
second kernel using kexec: Some interrupt is left pending from
the previous kernel, and we take it too early, before disable_irq()
could do anything.

Let's clear the pending interrupts as we initialize the HW, and move
the interrupt request after that point. This ensures that we're in
a sane state when the interrupt is requested.

Cc: stable@vger.kernel.org
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
[adapted to recent rockchip-drm changes]
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20180220130120.5254-2-marc.zyngier@arm.com
2018-03-14 14:02:05 +01:00
..
amd vga_switcheroo: Use device link for HDA controller 2018-03-13 22:58:09 +01:00
arc drm/arcpgu: remove drm_encoder_slave 2018-01-30 18:05:25 +01:00
arm drm: Don't pass clip to drm_atomic_helper_check_plane_state() 2018-03-05 20:48:25 +02:00
armada drm: Don't pass clip to drm_atomic_helper_check_plane_state() 2018-03-05 20:48:25 +02:00
ast drm/ast: Load lut in crtc_commit 2018-02-01 11:35:46 +10:00
atmel-hlcdc drm/atmel-hlcdc: Use the alpha format field in drm_format_info 2018-01-29 12:08:37 +01:00
bochs drm/bochs: make structure bochs_bo_driver static 2018-02-19 10:43:44 +01:00
bridge drm/bridge: analogix_dp: Only wait for panel ACK on PSR entry 2018-03-14 12:24:50 +01:00
cirrus drm/ttm: use an operation ctx for ttm_tt_populate in ttm_bo_driver (v2) 2017-12-28 09:48:19 -05:00
etnaviv drm/etnaviv: use memset32 to init pagetable 2018-01-02 17:36:53 +01:00
exynos drm/bridge: analogix_dp: Don't create useless connectors 2018-03-07 16:18:00 +01:00
fsl-dcu
gma500 pci-v4.16-changes 2018-02-06 09:59:40 -08:00
hisilicon drm/ttm: use an operation ctx for ttm_tt_populate in ttm_bo_driver (v2) 2017-12-28 09:48:19 -05:00
i2c drm/i2c: tda998x: Remove duplicate NULL check 2018-01-18 16:24:38 +02:00
i810
i915 drm: Don't pass clip to drm_atomic_helper_check_plane_state() 2018-03-05 20:48:25 +02:00
imx drm: Don't pass clip to drm_atomic_helper_check_plane_state() 2018-03-05 20:48:25 +02:00
lib
mediatek drm: Don't pass clip to drm_atomic_helper_check_plane_state() 2018-03-05 20:48:25 +02:00
meson drm/meson: Add support for DMT modes on HDMI 2018-03-13 11:50:23 +01:00
mga
mgag200 drm/mgag200: fix a test in mga_vga_mode_valid() 2018-01-30 18:05:25 +01:00
msm drm: Don't pass clip to drm_atomic_helper_check_plane_state() 2018-03-05 20:48:25 +02:00
mxsfb drm/mxsfb: Do not use deprecated drm_driver.{enable|disable)_vblank 2018-02-22 17:58:59 +01:00
nouveau drm/nouveau: Runtime suspend despite HDA being unbound 2018-03-13 22:58:56 +01:00
omapdrm drm/omapdrm: Use of_find_backlight helper 2018-02-20 11:07:22 -05:00
panel drm/panel: rm68200: Add backlight dependency 2018-03-14 11:51:24 +01:00
pl111 drm/pl111: Use max memory bandwidth for resolution 2018-03-07 23:14:24 +01:00
qxl drm/ttm: use an operation ctx for ttm_tt_populate in ttm_bo_driver (v2) 2017-12-28 09:48:19 -05:00
r128 r128: don't open-code memdup_user() 2017-12-27 19:00:09 -05:00
radeon vga_switcheroo: Use device link for HDA controller 2018-03-13 22:58:09 +01:00
rcar-du drm: Don't pass clip to drm_atomic_helper_check_plane_state() 2018-03-05 20:48:25 +02:00
rockchip drm/rockchip: Clear all interrupts before requesting the IRQ 2018-03-14 14:02:05 +01:00
savage
scheduler drm/scheduler: add license to the Makefile 2017-12-07 11:52:29 -05:00
selftests
shmobile
sis
sti drm/sti: Use drm_fb_cma_fbdev_init/fini() 2017-12-08 14:47:41 +01:00
stm drm/stm: check pitch and size calculations even if !CONFIG_MMU 2018-02-23 09:37:12 +01:00
sun4i drm/sun4i: Handle DRM_BUS_FLAG_PIXDATA_*EDGE 2018-03-14 09:16:08 +01:00
tdfx
tegra drm: Don't pass clip to drm_atomic_helper_check_plane_state() 2018-03-05 20:48:25 +02:00
tilcdc drm/tilcdc changes for 4.16 2017-12-21 11:10:20 +10:00
tinydrm tinydrm: add backlight dependency 2018-02-28 15:08:56 -05:00
ttm drm/ttm: Fix 'buf' pointer update in ttm_bo_vm_access_kmap() (v2) 2018-01-29 23:09:31 -05:00
tve200 drm/tve200: Do not use deprecated drm_driver.{enable|disable)_vblank 2018-02-22 17:58:59 +01:00
udl
vc4 drm/vc4: Enable background color fill when necessary 2018-03-09 11:25:11 -08:00
vgem
via
virtio drm/virtio: Add spaces around operators 2018-02-27 08:40:42 +01:00
vmwgfx drm: Don't pass clip to drm_atomic_helper_check_plane_state() 2018-03-05 20:48:25 +02:00
zte drm: Don't pass clip to drm_atomic_helper_check_plane_state() 2018-03-05 20:48:25 +02:00
Kconfig Fixes for 4.16: 2018-01-25 11:42:25 +10:00
Makefile drm: fix gpu scheduler link order 2018-01-24 15:49:04 -05:00
ati_pcigart.c
drm_agpsupport.c
drm_atomic.c drm/atomic: Include color encoding/range in plane state dump 2018-03-02 14:41:21 +02:00
drm_atomic_helper.c drm: Don't pass clip to drm_atomic_helper_check_plane_state() 2018-03-05 20:48:25 +02:00
drm_auth.c drm: Check for lessee in DROP_MASTER ioctl 2018-01-31 09:27:51 +01:00
drm_blend.c drm/docs: Align layout of optional plane blending properties 2018-02-20 12:10:46 +01:00
drm_bridge.c
drm_bufs.c
drm_cache.c
drm_color_mgmt.c drm/atomic: Include color encoding/range in plane state dump 2018-03-02 14:41:21 +02:00
drm_connector.c drm/docs: Document "scaling mode" property better 2018-02-20 12:10:46 +01:00
drm_context.c
drm_crtc.c drm: Check that the plane supports the request format+modifier combo 2018-02-26 16:29:47 +02:00
drm_crtc_helper.c
drm_crtc_helper_internal.h
drm_crtc_internal.h drm/atomic: Include color encoding/range in plane state dump 2018-03-02 14:41:21 +02:00
drm_debugfs.c
drm_debugfs_crc.c drm/crc: Add support for polling on the data fd. 2018-02-05 13:22:44 +01:00
drm_dma.c
drm_dp_aux_dev.c
drm_dp_dual_mode_helper.c
drm_dp_helper.c drm/dp: Add HBR3 support in existing DRM DP helpers 2018-01-26 13:36:53 +02:00
drm_dp_mst_topology.c drm: NULL pointer dereference [null-pointer-deref] (CWE 476) problem 2018-02-19 12:58:20 +01:00
drm_drv.c drm: NULL pointer dereference [null-pointer-deref] (CWE 476) problem 2018-03-06 08:14:16 +01:00
drm_dumb_buffers.c
drm_edid.c drm: NULL pointer dereference [null-pointer-deref] (CWE 476) problem 2018-02-19 13:01:20 +01:00
drm_edid_load.c
drm_encoder.c drm: Warn if plane/crtc/encoder/connector index exceeds our 32bit bitmasks 2018-01-29 18:46:53 +02:00
drm_encoder_slave.c
drm_fb_cma_helper.c drm/cma-helper: Add drm_fb_cma_fbdev_init/fini() 2017-12-08 14:27:47 +01:00
drm_fb_helper.c drm/framebuffer: Print task that allocated the fb in debug info. 2017-12-20 15:30:17 +01:00
drm_file.c vfs: do bulk POLL* -> EPOLL* replacement 2018-02-11 14:34:03 -08:00
drm_flip_work.c
drm_fourcc.c drm/fourcc: Add a alpha field to drm_format_info 2018-01-29 12:07:47 +01:00
drm_framebuffer.c drm: Fix some coding style issues 2018-03-12 22:25:44 +02:00
drm_gem.c drm: Use idr_init_base(1) when using id==0 for invalid 2018-02-19 12:21:24 +00:00
drm_gem_cma_helper.c
drm_gem_framebuffer_helper.c drm/gem-fb-helper: drm_gem_fbdev_fb_create() make funcs optional 2017-12-08 14:26:00 +01:00
drm_global.c
drm_hashtab.c
drm_info.c
drm_internal.h
drm_ioc32.c
drm_ioctl.c drm: Print the pid when debug logging an ioctl error. 2018-02-10 22:23:10 +00:00
drm_irq.c
drm_kms_helper_common.c
drm_lease.c drm: Fix kerneldoc warnings for drm_lease 2018-02-19 10:49:59 +01:00
drm_legacy.h
drm_lock.c
drm_memory.c drm: fix drm_get_max_iomem type mismatch 2018-02-22 11:18:58 -05:00
drm_mipi_dsi.c drm/dsi: Fix improper use of mipi_dsi_device_transfer() return value 2018-01-16 17:10:14 -05:00
drm_mm.c drm/mm: Fix caching of leftmost node in the interval tree 2018-02-20 16:38:26 +00:00
drm_mode_config.c Linux 4.15-rc4 2017-12-19 21:37:24 +10:00
drm_mode_object.c
drm_modes.c drm/doc: Polish for drm_mode_parse_command_line_for_connector 2018-02-20 12:10:46 +01:00
drm_modeset_helper.c
drm_modeset_lock.c drm/atomic: Call ww_acquire_done after drm_modeset_lock_all 2018-03-05 10:35:32 +01:00
drm_of.c drm: of: simplify component probe code 2018-03-06 14:05:00 +05:30
drm_panel.c
drm_panel_orientation_quirks.c drm: Include the header with the prototype for drm_get_panel_orientation_quirk() 2018-02-26 17:39:59 +02:00
drm_pci.c
drm_plane.c drm: Check that the plane supports the request format+modifier combo 2018-02-26 16:29:47 +02:00
drm_plane_helper.c drm: Don't pass clip to drm_atomic_helper_check_plane_state() 2018-03-05 20:48:25 +02:00
drm_prime.c drm/prime: make the pages array optional for drm_prime_sg_to_page_addr_arrays 2018-03-06 12:24:52 -05:00
drm_print.c
drm_probe_helper.c drm/modes: Provide global mode_valid hook 2018-01-29 21:51:51 +02:00
drm_property.c drm: Reject bad property flag combinations 2018-03-07 18:28:34 +02:00
drm_rect.c
drm_scatter.c
drm_scdc_helper.c
drm_simple_kms_helper.c drm: Don't pass clip to drm_atomic_helper_check_plane_state() 2018-03-05 20:48:25 +02:00
drm_syncobj.c drm: Use idr_init_base(1) when using id==0 for invalid 2018-02-19 12:21:24 +00:00
drm_sysfs.c
drm_trace.h
drm_trace_points.c
drm_vblank.c drm: NULL pointer dereference [null-pointer-deref] (CWE 476) problem 2018-03-06 08:14:16 +01:00
drm_vm.c
drm_vma_manager.c