linux/drivers/gpu/drm
Douglas Anderson 31e25395d8 drm/panel: panel-simple: Power the panel when reading the EDID
I don't believe that it ever makes sense to read the EDID when a panel
is not powered and the powering on of the panel is the job of
prepare(). Let's make sure that this happens before we try to read the
EDID. We use the pm_runtime functions directly rather than directly
calling the normal prepare() function because the pm_runtime functions
are definitely refcounted whereas it's less clear if the prepare() one
is.

NOTE: I'm not 100% sure how EDID reading was working for folks in the
past, but I can only assume that it was failing on the initial attempt
and then working only later. This patch, presumably, will fix that. If
some panel out there really can read the EDID without powering up and
it's a big advantage to preserve the old behavior we can add a
per-panel flag. It appears that providing the DDC bus to the panel in
the past was somewhat uncommon in any case.

Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Reviewed-by: Sean Paul <seanpaul@chromium.org>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20210423095743.v5.17.Ibd31b8f7c73255d68c5c9f5b611b4bfaa036f727@changeid
2021-05-03 13:21:09 -07:00
..
amd drm/ttm: always initialize the full ttm_resource v2 2021-05-03 12:50:41 +02:00
arm drm/komeda: Fix bit check to import to value of proper type 2021-04-01 13:48:48 +01:00
armada drm/aperture: Convert drivers to aperture interfaces 2021-04-14 09:00:04 +02:00
aspeed drm/gem: Move drm_gem_fb_prepare_fb() to GEM atomic helpers 2021-02-23 08:54:22 +01:00
ast drm/ast: Remove reference to struct drm_device.pdev 2021-04-29 21:19:10 +02:00
atmel-hlcdc drm: Use state helper instead of the plane state pointer 2021-02-25 08:05:28 +01:00
bochs drm/bochs: Add screen blanking support 2021-04-27 14:14:12 +02:00
bridge drm/bridge: ti-sn65dsi86: If refclk, DP AUX can happen w/out pre-enable 2021-05-03 13:21:08 -07:00
etnaviv Merge drm/drm-fixes into drm-next 2021-04-13 23:15:09 +02:00
exynos Merge drm/drm-next into drm-misc-next 2021-04-26 14:03:09 +02:00
fsl-dcu drm: Use state helper instead of the plane state pointer 2021-02-25 08:05:28 +01:00
gma500 drm/gma500: remove trailing whitespaces 2021-04-22 01:11:39 +02:00
gud drm/gud: cleanup coding style a bit 2021-04-27 13:13:19 +02:00
hisilicon drm/aperture: Convert drivers to aperture interfaces 2021-04-14 09:00:04 +02:00
i2c
i810 drm/i810: Remove references to struct drm_device.pdev 2021-05-03 19:48:15 +02:00
i915 drm/i915: Use the correct max source link rate for MST 2021-04-30 18:47:45 -04:00
imx Merge drm/drm-next into drm-misc-next 2021-04-26 14:03:09 +02:00
ingenic drm/ingenic: Register devm action to cleanup encoders 2021-03-29 16:47:12 +01:00
kmb drm: Use state helper instead of the plane state pointer 2021-02-25 08:05:28 +01:00
lib
lima Revert "drm/scheduler: Job timeout handler returns status (v3)" 2021-02-10 15:26:00 +01:00
mcde drm/mcde/panel: Inverse misunderstood flag 2021-03-04 14:31:06 +01:00
mediatek Mediatek DRM Next for Linux 5.13 2021-04-08 12:42:14 +10:00
meson drm/meson: dw-hdmi: disable DW-HDMI CEC sub-driver 2021-04-20 17:22:44 +02:00
mga drm/mga: Remove references to struct drm_device.pdev 2021-05-03 19:48:24 +02:00
mgag200 drm/format-helper: Pass destination pitch to drm_fb_memcpy_dstclip() 2021-05-01 12:45:03 +02:00
msm drm/dp: Pass drm_dp_aux to drm_dp*_link_train_channel_eq_delay() 2021-04-27 18:43:42 -04:00
mxsfb drm/mxsfb: Don't select DRM_KMS_FB_HELPER 2021-04-26 12:42:57 +02:00
nouveau drm/dp_mst: Use Extended Base Receiver Capability DPCD space 2021-04-29 19:11:27 -04:00
omapdrm Merge drm/drm-fixes into drm-next 2021-04-13 23:15:09 +02:00
panel drm/panel: panel-simple: Power the panel when reading the EDID 2021-05-03 13:21:09 -07:00
panfrost drm/panfrost: Stay in the threaded MMU IRQ handler until we've handled all IRQs 2021-02-15 09:43:33 +01:00
pl111 drm-misc-next for 5.13: 2021-03-16 17:08:46 +10:00
qxl drm/aperture: Convert drivers to aperture interfaces 2021-04-14 09:00:04 +02:00
r128 drm/r128: Remove references to struct drm_device.pdev 2021-05-03 19:48:27 +02:00
radeon drm/dp_mst: Use Extended Base Receiver Capability DPCD space 2021-04-29 19:11:27 -04:00
rcar-du Merge drm/drm-fixes into drm-next 2021-04-13 23:15:09 +02:00
rockchip drm/rockchip: Remove unused variable 2021-03-24 09:31:22 +01:00
savage drm/savage: Remove references to struct drm_device.pdev 2021-05-03 19:48:30 +02:00
scheduler Merge drm/drm-next into drm-misc-next 2021-04-26 14:03:09 +02:00
selftests
shmobile
sis drm/sis: Remove references to struct drm_device.pdev 2021-05-03 19:48:33 +02:00
sti drm: Use state helper instead of the plane state pointer 2021-02-25 08:05:28 +01:00
stm drm/stm: dsi: Avoid printing errors for -EPROBE_DEFER 2021-03-08 15:06:56 +01:00
sun4i drm/aperture: Convert drivers to aperture interfaces 2021-04-14 09:00:04 +02:00
tdfx
tegra drm/dp: Add backpointer to drm_device in drm_dp_aux 2021-04-27 18:43:42 -04:00
tidss drm: Use state helper instead of the plane state pointer 2021-02-25 08:05:28 +01:00
tilcdc drm/tilcdc: fix pixel clock setting warning message 2021-03-24 12:05:28 +02:00
tiny drm/simpledrm: Acquire memory aperture for framebuffer 2021-05-01 12:45:04 +02:00
ttm drm/ttm: properly allocate sys resource during swapout 2021-05-03 12:50:41 +02:00
tve200 drm/gem: Move drm_gem_fb_prepare_fb() to GEM atomic helpers 2021-02-23 08:54:22 +01:00
udl drm-misc-next for 5.13: 2021-03-16 17:08:46 +10:00
v3d Revert "drm/scheduler: Job timeout handler returns status (v3)" 2021-02-10 15:26:00 +01:00
vboxvideo drm/aperture: Convert drivers to aperture interfaces 2021-04-14 09:00:04 +02:00
vc4 drm/vc4: fix argument ordering in vc4_crtc_get_margins() 2021-04-29 12:18:54 +02:00
vgem
via drm/via: Remove references to drm_device.pdev 2021-05-03 19:48:37 +02:00
virtio drm/virtio: Create Dumb BOs as guest Blobs (v3) 2021-04-15 10:55:18 +02:00
vkms drm/vkms: add overlay support 2021-04-29 18:53:05 -03:00
vmwgfx drm/vmwgfx: replace idr_init() by idr_init_base() 2021-04-29 14:54:54 -04:00
xen Merge drm/drm-fixes into drm-next 2021-04-13 23:15:09 +02:00
xlnx drm/dp: Pass drm_dp_aux to drm_dp*_link_train_channel_eq_delay() 2021-04-27 18:43:42 -04:00
zte drm/zte: Don't select DRM_KMS_FB_HELPER 2021-04-26 12:43:04 +02:00
drm_agpsupport.c
drm_aperture.c drm/aperture: Add infrastructure for aperture ownership 2021-05-01 12:45:03 +02:00
drm_atomic.c Merge drm/drm-next into drm-misc-next 2021-04-26 14:03:09 +02:00
drm_atomic_helper.c drm: drm_atomic_helper.c: Correct comments format 2021-04-12 17:57:14 +02:00
drm_atomic_state_helper.c
drm_atomic_uapi.c drm: drm_atomic_uapi.c: Use tabs for code indents 2021-04-22 10:46:00 +02:00
drm_auth.c drm: drm_auth.c: Adjust end of block comment 2021-04-22 10:26:35 +02:00
drm_blend.c drm: drm_blend.c: Use tabs for code indents 2021-04-22 10:46:35 +02:00
drm_bridge.c drm/bridge: Fix the stop condition of drm_bridge_chain_pre_enable() 2021-04-20 08:56:44 -07:00
drm_bridge_connector.c
drm_bufs.c drm: remove usage of drm_pci_alloc/free 2021-04-26 18:19:15 +02:00
drm_cache.c
drm_client.c
drm_client_modeset.c drm: replace drm_modeset_lock_all() in drm_client_modeset_dpms_legacy() 2021-02-09 17:16:57 +01:00
drm_color_mgmt.c
drm_connector.c drm/connector: demote connector force-probes for non-master clients 2021-05-03 12:08:37 +02:00
drm_context.c drm: drm_context.c: Adjust end of block comment 2021-04-22 10:45:23 +02:00
drm_crtc.c drm: Switch to %p4cc format modifier 2021-02-17 12:52:59 +01:00
drm_crtc_helper.c
drm_crtc_helper_internal.h drm: remove drm_fb_helper_modinit 2021-02-08 12:20:38 +01:00
drm_crtc_internal.h
drm_damage_helper.c
drm_debugfs.c
drm_debugfs_crc.c
drm_displayid.c drm/displayid: rename displayid_hdr to displayid_header 2021-03-31 15:42:39 +03:00
drm_dma.c drm: remove usage of drm_pci_alloc/free 2021-04-26 18:19:15 +02:00
drm_dp_aux_dev.c drm/dp: Add backpointer to drm_device in drm_dp_aux 2021-04-27 18:43:42 -04:00
drm_dp_cec.c
drm_dp_dual_mode_helper.c drm/dp_dual_mode: Convert drm_dp_dual_mode_helper.c to using drm_err/drm_dbg_kms() 2021-04-27 18:43:45 -04:00
drm_dp_helper.c drm/dp: Convert drm_dp_helper.c to using drm_err/drm_dbg_*() 2021-04-27 18:43:45 -04:00
drm_dp_mst_topology.c drm/dp_mst: Use Extended Base Receiver Capability DPCD space 2021-04-29 19:11:27 -04:00
drm_dp_mst_topology_internal.h
drm_drv.c drm/drv: Remove initialization of static variables 2021-02-21 19:49:17 -05:00
drm_dsc.c
drm_dumb_buffers.c
drm_edid.c drm/edid: use the new displayid iterator for tile info 2021-03-31 15:42:02 +03:00
drm_edid_load.c
drm_encoder.c
drm_encoder_slave.c
drm_fb_cma_helper.c
drm_fb_helper.c drm/fb-helper: only unmap if buffer not null 2021-03-11 11:08:14 +01:00
drm_file.c drm/drm_file.c: Define drm_send_event_helper() as 'static' 2021-04-27 14:23:12 +02:00
drm_flip_work.c
drm_format_helper.c drm/format-helper: Add blitter functions 2021-05-01 12:45:03 +02:00
drm_fourcc.c
drm_framebuffer.c drm: Switch to %p4cc format modifier 2021-02-17 12:52:59 +01:00
drm_gem.c drm/gem: Export drm_gem_vmap() and drm_gem_vunmap() 2021-02-08 13:00:06 +01:00
drm_gem_atomic_helper.c drm/gem: Move drm_gem_fb_prepare_fb() to GEM atomic helpers 2021-02-23 08:54:22 +01:00
drm_gem_cma_helper.c
drm_gem_framebuffer_helper.c drm/gem: Move drm_gem_fb_prepare_fb() to GEM atomic helpers 2021-02-23 08:54:22 +01:00
drm_gem_shmem_helper.c drm/shmem-helpers: vunmap: Don't put pages for dma-buf 2021-03-11 11:11:33 +01:00
drm_gem_ttm_helper.c drm/gem-ttm-helper: Provide helper for struct drm_driver.dumb_map_offset 2021-04-11 20:14:45 +02:00
drm_gem_vram_helper.c drm/vram-helper: Use drm_gem_ttm_dumb_map_offset() 2021-04-11 20:15:06 +02:00
drm_hashtab.c
drm_hdcp.c
drm_internal.h drm/drm_internal.h: Remove repeated struct declaration 2021-04-08 13:05:38 +02:00
drm_ioc32.c drm/compat: Clear bounce structures 2021-03-11 11:11:33 +01:00
drm_ioctl.c
drm_irq.c
drm_kms_helper_common.c drm: remove drm_fb_helper_modinit 2021-02-08 12:20:38 +01:00
drm_lease.c
drm_legacy.h
drm_legacy_misc.c
drm_lock.c
drm_managed.c
drm_memory.c
drm_mipi_dbi.c drm: Switch to %p4cc format modifier 2021-02-17 12:52:59 +01:00
drm_mipi_dsi.c
drm_mm.c
drm_mode_config.c
drm_mode_object.c
drm_modes.c drm: Refuse to create zero width/height cmdline modes 2021-04-01 20:29:16 +03:00
drm_modeset_helper.c
drm_modeset_lock.c
drm_of.c
drm_panel.c
drm_panel_orientation_quirks.c
drm_pci.c drm: Remove pdev field from struct drm_device 2021-05-03 19:48:40 +02:00
drm_plane.c drm-misc-next for 5.13: 2021-03-16 17:08:46 +10:00
drm_plane_helper.c
drm_prime.c
drm_print.c
drm_probe_helper.c drm/probe-helper: Check epoch counter in output_poll_execute() 2021-03-16 12:45:52 +01:00
drm_property.c drm: Few typo fixes 2021-03-18 14:22:50 +01:00
drm_rect.c
drm_scatter.c
drm_scdc_helper.c
drm_self_refresh_helper.c
drm_simple_kms_helper.c drm/atomic: Pass the full state to planes atomic disable and update 2021-02-25 08:05:28 +01:00
drm_syncobj.c drm/syncobj: use newly allocated stub fences 2021-04-08 12:21:13 +02:00
drm_sysfs.c drm/sysfs: Convert sysfs sprintf/snprintf family to sysfs_emit 2021-03-23 07:41:39 -04:00
drm_trace.h
drm_trace_points.c
drm_vblank.c drm/vblank: Do not store a new vblank timestamp in drm_vblank_restore() 2021-04-01 20:29:17 +03:00
drm_vblank_work.c
drm_vm.c
drm_vma_manager.c
drm_writeback.c
Kconfig drm: Remove DRM_KMS_FB_HELPER Kconfig option 2021-04-26 12:43:20 +02:00
Makefile drm/aperture: Add infrastructure for aperture ownership 2021-04-14 09:00:04 +02:00