1fcd70cd3SDaniel Vetter // SPDX-License-Identifier: GPL-2.0 OR MIT
2fcd70cd3SDaniel Vetter 
3fcd70cd3SDaniel Vetter #ifndef __DRM_PROBE_HELPER_H__
4fcd70cd3SDaniel Vetter #define __DRM_PROBE_HELPER_H__
5fcd70cd3SDaniel Vetter 
6216b9bbaSThomas Zimmermann #include <drm/drm_modes.h>
7fcd70cd3SDaniel Vetter 
8fcd70cd3SDaniel Vetter struct drm_connector;
9216b9bbaSThomas Zimmermann struct drm_crtc;
10fcd70cd3SDaniel Vetter struct drm_device;
11fcd70cd3SDaniel Vetter struct drm_modeset_acquire_ctx;
12fcd70cd3SDaniel Vetter 
13fcd70cd3SDaniel Vetter int drm_helper_probe_single_connector_modes(struct drm_connector
14fcd70cd3SDaniel Vetter 					    *connector, uint32_t maxX,
15fcd70cd3SDaniel Vetter 					    uint32_t maxY);
16fcd70cd3SDaniel Vetter int drm_helper_probe_detect(struct drm_connector *connector,
17fcd70cd3SDaniel Vetter 			    struct drm_modeset_acquire_ctx *ctx,
18fcd70cd3SDaniel Vetter 			    bool force);
19fcd70cd3SDaniel Vetter void drm_kms_helper_poll_init(struct drm_device *dev);
20fcd70cd3SDaniel Vetter void drm_kms_helper_poll_fini(struct drm_device *dev);
21fcd70cd3SDaniel Vetter bool drm_helper_hpd_irq_event(struct drm_device *dev);
220464ed1aSMaxime Ripard bool drm_connector_helper_hpd_irq_event(struct drm_connector *connector);
23fcd70cd3SDaniel Vetter void drm_kms_helper_hotplug_event(struct drm_device *dev);
24710074bbSSimon Ser void drm_kms_helper_connector_hotplug_event(struct drm_connector *connector);
25fcd70cd3SDaniel Vetter 
26fcd70cd3SDaniel Vetter void drm_kms_helper_poll_disable(struct drm_device *dev);
27fcd70cd3SDaniel Vetter void drm_kms_helper_poll_enable(struct drm_device *dev);
28*c67b06f1SImre Deak void drm_kms_helper_poll_reschedule(struct drm_device *dev);
29fcd70cd3SDaniel Vetter bool drm_kms_helper_is_poll_worker(void);
30fcd70cd3SDaniel Vetter 
31216b9bbaSThomas Zimmermann enum drm_mode_status drm_crtc_helper_mode_valid_fixed(struct drm_crtc *crtc,
32216b9bbaSThomas Zimmermann 						      const struct drm_display_mode *mode,
33216b9bbaSThomas Zimmermann 						      const struct drm_display_mode *fixed_mode);
34216b9bbaSThomas Zimmermann 
3516f14564SThomas Zimmermann int drm_connector_helper_get_modes_from_ddc(struct drm_connector *connector);
36d25654b3SThomas Zimmermann int drm_connector_helper_get_modes_fixed(struct drm_connector *connector,
37d25654b3SThomas Zimmermann 					 const struct drm_display_mode *fixed_mode);
38964893d3SJani Nikula int drm_connector_helper_get_modes(struct drm_connector *connector);
391e4a91dbSNoralf Trønnes int drm_connector_helper_tv_get_modes(struct drm_connector *connector);
4016f14564SThomas Zimmermann 
41fcd70cd3SDaniel Vetter #endif
42