162306a36Sopenharmony_ci/* SPDX-License-Identifier: MIT */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (C) 2020 Red Hat, Inc.
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Authors:
662306a36Sopenharmony_ci * Hans de Goede <hdegoede@redhat.com>
762306a36Sopenharmony_ci */
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#ifndef __DRM_PRIVACY_SCREEN_MACHINE_H__
1062306a36Sopenharmony_ci#define __DRM_PRIVACY_SCREEN_MACHINE_H__
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci#include <linux/list.h>
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci/**
1562306a36Sopenharmony_ci * struct drm_privacy_screen_lookup -  static privacy-screen lookup list entry
1662306a36Sopenharmony_ci *
1762306a36Sopenharmony_ci * Used for the static lookup-list for mapping privacy-screen consumer
1862306a36Sopenharmony_ci * dev-connector pairs to a privacy-screen provider.
1962306a36Sopenharmony_ci */
2062306a36Sopenharmony_cistruct drm_privacy_screen_lookup {
2162306a36Sopenharmony_ci	/** @list: Lookup list list-entry. */
2262306a36Sopenharmony_ci	struct list_head list;
2362306a36Sopenharmony_ci	/** @dev_id: Consumer device name or NULL to match all devices. */
2462306a36Sopenharmony_ci	const char *dev_id;
2562306a36Sopenharmony_ci	/** @con_id: Consumer connector name or NULL to match all connectors. */
2662306a36Sopenharmony_ci	const char *con_id;
2762306a36Sopenharmony_ci	/** @provider: dev_name() of the privacy_screen provider. */
2862306a36Sopenharmony_ci	const char *provider;
2962306a36Sopenharmony_ci};
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_civoid drm_privacy_screen_lookup_add(struct drm_privacy_screen_lookup *lookup);
3262306a36Sopenharmony_civoid drm_privacy_screen_lookup_remove(struct drm_privacy_screen_lookup *lookup);
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci#if IS_ENABLED(CONFIG_DRM_PRIVACY_SCREEN) && IS_ENABLED(CONFIG_X86)
3562306a36Sopenharmony_civoid drm_privacy_screen_lookup_init(void);
3662306a36Sopenharmony_civoid drm_privacy_screen_lookup_exit(void);
3762306a36Sopenharmony_ci#else
3862306a36Sopenharmony_cistatic inline void drm_privacy_screen_lookup_init(void)
3962306a36Sopenharmony_ci{
4062306a36Sopenharmony_ci}
4162306a36Sopenharmony_cistatic inline void drm_privacy_screen_lookup_exit(void)
4262306a36Sopenharmony_ci{
4362306a36Sopenharmony_ci}
4462306a36Sopenharmony_ci#endif
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ci#endif
47