162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 OR MIT
262306a36Sopenharmony_ci
362306a36Sopenharmony_ci#ifndef __DRM_PROBE_HELPER_H__
462306a36Sopenharmony_ci#define __DRM_PROBE_HELPER_H__
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#include <drm/drm_modes.h>
762306a36Sopenharmony_ci
862306a36Sopenharmony_cistruct drm_connector;
962306a36Sopenharmony_cistruct drm_crtc;
1062306a36Sopenharmony_cistruct drm_device;
1162306a36Sopenharmony_cistruct drm_modeset_acquire_ctx;
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ciint drm_helper_probe_single_connector_modes(struct drm_connector
1462306a36Sopenharmony_ci					    *connector, uint32_t maxX,
1562306a36Sopenharmony_ci					    uint32_t maxY);
1662306a36Sopenharmony_ciint drm_helper_probe_detect(struct drm_connector *connector,
1762306a36Sopenharmony_ci			    struct drm_modeset_acquire_ctx *ctx,
1862306a36Sopenharmony_ci			    bool force);
1962306a36Sopenharmony_civoid drm_kms_helper_poll_init(struct drm_device *dev);
2062306a36Sopenharmony_civoid drm_kms_helper_poll_fini(struct drm_device *dev);
2162306a36Sopenharmony_cibool drm_helper_hpd_irq_event(struct drm_device *dev);
2262306a36Sopenharmony_cibool drm_connector_helper_hpd_irq_event(struct drm_connector *connector);
2362306a36Sopenharmony_civoid drm_kms_helper_hotplug_event(struct drm_device *dev);
2462306a36Sopenharmony_civoid drm_kms_helper_connector_hotplug_event(struct drm_connector *connector);
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_civoid drm_kms_helper_poll_disable(struct drm_device *dev);
2762306a36Sopenharmony_civoid drm_kms_helper_poll_enable(struct drm_device *dev);
2862306a36Sopenharmony_civoid drm_kms_helper_poll_reschedule(struct drm_device *dev);
2962306a36Sopenharmony_cibool drm_kms_helper_is_poll_worker(void);
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_cienum drm_mode_status drm_crtc_helper_mode_valid_fixed(struct drm_crtc *crtc,
3262306a36Sopenharmony_ci						      const struct drm_display_mode *mode,
3362306a36Sopenharmony_ci						      const struct drm_display_mode *fixed_mode);
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ciint drm_connector_helper_get_modes_from_ddc(struct drm_connector *connector);
3662306a36Sopenharmony_ciint drm_connector_helper_get_modes_fixed(struct drm_connector *connector,
3762306a36Sopenharmony_ci					 const struct drm_display_mode *fixed_mode);
3862306a36Sopenharmony_ciint drm_connector_helper_get_modes(struct drm_connector *connector);
3962306a36Sopenharmony_ciint drm_connector_helper_tv_get_modes(struct drm_connector *connector);
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci#endif
42