WSL2-Linux-Kernel/drivers/gpu/drm
Tzung-Bi Shih f07980d4ed
drm/mediatek: fix race condition for HDMI jack status reporting
hdmi_conn_detect and mtk_hdmi_audio_hook_plugged_cb would be called
by different threads.

Imaging the following calling sequence:
           Thread A                            Thread B
--------------------------------------------------------------------
mtk_hdmi_audio_hook_plugged_cb()
mtk_cec_hpd_high() -> disconnected
                                     hdmi_conn_detect()
                                     mtk_cec_hpd_high() -> connected
                                     plugged_cb(connected)
plugged_cb(disconnected)

The latest disconnected is false reported.  Makes mtk_cec_hpd_high
and plugged_cb atomic to fix.

Also uses the same lock to protect read/write of plugged_cb and codec_dev.

Fixes: 5d3c644773 ("drm/mediatek: support HDMI jack status reporting")
Signed-off-by: Tzung-Bi Shih <tzungbi@google.com>
Acked-by: CK Hu <ck.hu@mediatek.com>
Link: https://lore.kernel.org/r/20200217105513.2.I477092c2f104fd589133436c3ae4590e6fc6323b@changeid
Signed-off-by: Mark Brown <broonie@kernel.org>
2020-02-17 17:39:13 +00:00
..
amd drm fixes for 5.6-rc1 2020-02-07 12:46:08 -08:00
arc DRM: ARC: PGU: add ARGB8888 format to supported format list 2019-12-16 13:53:05 +03:00
arm Linux 5.5-rc7 2020-01-20 11:42:57 +10:00
armada
aspeed
ast drm/vram-helper: Remove BO device from public interface 2020-01-07 11:53:19 +01:00
atmel-hlcdc Revert "drm: atmel-hlcdc: enable sys_clk during initalization." 2020-01-06 19:54:27 +01:00
bochs drm/bochs: Remove unneeded semicolon 2019-12-16 12:39:50 +01:00
bridge Revert "drm/bridge: Patch atomic hooks to take a drm_bridge_state" 2020-01-08 00:34:28 +01:00
cirrus
etnaviv drm pull for 5.6-rc1 2020-01-30 08:04:01 -08:00
exynos drm/exynos: Rename Exynos to lowercase 2020-01-21 09:09:42 +09:00
fsl-dcu
gma500 drm pull for 5.6-rc1 2020-01-30 08:04:01 -08:00
hisilicon drm pull for 5.6-rc1 2020-01-30 08:04:01 -08:00
i2c
i810
i915 drm pull for 5.6-rc1 2020-01-30 08:04:01 -08:00
imx
ingenic gpu/drm: ingenic: Add support for the JZ4770 2019-12-14 19:26:55 +01:00
lib
lima Merge tag 'amd-drm-next-5.6-2020-01-09' of git://people.freedesktop.org/~agd5f/linux into drm-next 2020-01-13 16:49:02 +10:00
mcde drm-misc-next for v5.6: 2020-01-03 11:43:44 +10:00
mediatek drm/mediatek: fix race condition for HDMI jack status reporting 2020-02-17 17:39:13 +00:00
meson drm: meson: fix address type confusion 2020-01-08 13:51:56 +01:00
mga
mgag200 drm/mgag200: Add module parameter to pin all buffers at offset 0 2020-01-07 11:53:19 +01:00
msm There are a few changes to the core framework this time around, in addition to 2020-02-03 22:10:18 +00:00
mxsfb
nouveau drm/nouveau/kms/gv100-: avoid sending a core update until the first modeset 2020-02-03 21:36:54 +10:00
omapdrm drm/omapdrm: use BUG_ON macro for error debugging. 2020-01-08 18:35:36 +01:00
panel drm/panel: simple: Add Satoz SAT050AT40H12R2 panel support 2020-01-09 20:27:06 +01:00
panfrost drm pull for 5.6-rc1 2020-01-30 08:04:01 -08:00
pl111
qxl
r128
radeon Kbuild updates for v5.6 (2nd) 2020-02-09 16:05:50 -08:00
rcar-du Revert "drm/bridge: Patch atomic hooks to take a drm_bridge_state" 2020-01-08 00:34:28 +01:00
rockchip Linux 5.5-rc7 2020-01-20 11:42:57 +10:00
savage
scheduler drm/amdgpu: fix doc by clarifying sched_list definition 2020-01-27 16:46:44 -05:00
selftests Merge tag 'amd-drm-next-5.6-2020-01-10-dp-mst-dsc' of git://people.freedesktop.org/~agd5f/linux into drm-next 2020-01-13 17:14:34 +10:00
shmobile
sis
sti drm pull for 5.6-rc1 2020-01-30 08:04:01 -08:00
stm drm/stm: ltdc: move pinctrl to encoder mode set 2019-12-20 13:30:42 +01:00
sun4i Linux 5.5-rc7 2020-01-20 11:42:57 +10:00
tdfx
tegra drm/tegra: Fixes for v5.6-rc1 2020-02-07 12:22:30 +10:00
tilcdc drm pull for 5.6-rc1 2020-01-30 08:04:01 -08:00
tiny
ttm drm ttm/mm changes for 5.6-rc1 2020-02-04 07:21:04 +00:00
tve200
udl drm/udl: Make udl driver depend on CONFIG_USB 2020-01-09 15:02:48 +01:00
v3d drm/scheduler: rework entity creation 2019-12-18 16:09:12 -05:00
vboxvideo
vc4 drm/vc4: dsi: Fix bridge chain handling 2020-01-08 09:09:48 +01:00
vgem
via Merge branch 'akpm' (patches from Andrew) 2020-01-31 12:16:36 -08:00
virtio Linux 5.5-rc7 2020-01-20 11:42:57 +10:00
vkms
vmwgfx drm/vmwgfx: Use VM_PFNMAP instead of VM_MIXEDMAP when possible 2020-01-15 14:34:49 +01:00
xen
zte drm: zte: Provide ddc symlink in vga connector sysfs directory 2020-01-07 20:26:02 +01:00
Kconfig drm/Kconfig: add missing 'depends on DRM' for DRM_DP_CEC 2020-01-09 10:16:35 +01:00
Makefile
drm_agpsupport.c
drm_atomic.c Revert "drm/bridge: Add a drm_bridge_state object" 2020-01-08 00:34:34 +01:00
drm_atomic_helper.c Revert "drm/bridge: Add a drm_bridge_state object" 2020-01-08 00:34:34 +01:00
drm_atomic_state_helper.c drm: Add __drm_atomic_helper_crtc_state_reset() & co. 2019-12-18 16:47:34 +02:00
drm_atomic_uapi.c drm/atomic: Spell CRTC consistently 2019-12-22 11:13:00 +01:00
drm_auth.c
drm_blend.c
drm_bridge.c Revert "drm/bridge: Add a drm_bridge_state object" 2020-01-08 00:34:34 +01:00
drm_bufs.c
drm_cache.c
drm_client.c drm/client: convert to drm device based logging 2019-12-19 15:52:44 +02:00
drm_client_modeset.c drm/fbdev: Fallback to non tiled mode if all tiles not present 2019-12-29 23:55:23 -08:00
drm_color_mgmt.c
drm_connector.c
drm_context.c
drm_crtc.c
drm_crtc_helper.c
drm_crtc_helper_internal.h
drm_crtc_internal.h
drm_damage_helper.c
drm_debugfs.c
drm_debugfs_crc.c drm: Set crc->opened to false before setting crc source to NULL. 2020-01-07 15:29:40 -05:00
drm_dma.c
drm_dp_aux_dev.c drm/dp_mst: Add MST support to DP DPCD R/W functions 2020-01-09 18:07:46 -05:00
drm_dp_cec.c
drm_dp_dual_mode_helper.c
drm_dp_helper.c drm: add dp helper to initialize remote aux channel. 2020-01-09 18:07:48 -05:00
drm_dp_mst_topology.c drm pull for 5.6-rc1 2020-01-30 08:04:01 -08:00
drm_dp_mst_topology_internal.h
drm_drv.c drm: remove duplicate check on parent and avoid BUG_ON 2019-12-17 17:26:08 +01:00
drm_dsc.c
drm_dumb_buffers.c
drm_edid.c drm: Fix a couple of typos, punctation and whitespace issues 2019-12-22 11:09:46 +01:00
drm_edid_load.c
drm_encoder.c
drm_encoder_slave.c
drm_fb_cma_helper.c drm/fb-cma-helpers: Fix include issue 2020-01-09 17:33:41 +01:00
drm_fb_helper.c Linux 5.5-rc7 2020-01-20 11:42:57 +10:00
drm_file.c i915 features for v5.6: 2019-12-27 15:25:04 +10:00
drm_flip_work.c
drm_format_helper.c
drm_fourcc.c
drm_framebuffer.c
drm_gem.c drm-misc-next for v5.6: 2019-12-17 13:57:54 +01:00
drm_gem_cma_helper.c
drm_gem_framebuffer_helper.c drm/gem-fb-helper: convert to drm device based logging 2019-12-19 15:55:10 +02:00
drm_gem_shmem_helper.c
drm_gem_ttm_helper.c
drm_gem_vram_helper.c drm/vram-helper: Support struct drm_driver.gem_create_object 2020-01-07 11:53:19 +01:00
drm_hashtab.c
drm_hdcp.c
drm_internal.h
drm_ioc32.c
drm_ioctl.c
drm_irq.c
drm_kms_helper_common.c
drm_lease.c
drm_legacy.h
drm_legacy_misc.c
drm_lock.c gpu/drm: clean up white space in drm_legacy_lock_master_cleanup() 2020-01-08 19:51:11 +01:00
drm_memory.c
drm_mipi_dbi.c drm/mipi_dbi: Fix off-by-one bugs in mipi_dbi_blank() 2020-01-02 15:35:56 +01:00
drm_mipi_dsi.c
drm_mm.c
drm_mode_config.c
drm_mode_object.c
drm_modes.c drm/modes: tag unused variables to avoid warnings 2020-01-09 17:17:28 +01:00
drm_modeset_helper.c
drm_modeset_lock.c
drm_of.c drm: of: Add drm_of_lvds_get_dual_link_pixel_order 2019-12-18 02:40:16 +02:00
drm_panel.c drm/drm_panel: Fix EXPORT of drm_panel_of_backlight() one more time 2019-12-17 20:39:33 +01:00
drm_panel_orientation_quirks.c
drm_pci.c
drm_plane.c
drm_plane_helper.c
drm_prime.c
drm_print.c
drm_probe_helper.c
drm_property.c
drm_rect.c
drm_scatter.c
drm_scdc_helper.c
drm_self_refresh_helper.c
drm_simple_kms_helper.c
drm_syncobj.c
drm_sysfs.c
drm_trace.h
drm_trace_points.c
drm_vblank.c
drm_vm.c
drm_vma_manager.c
drm_vram_helper_common.c
drm_writeback.c