include/drm/drm_client.h

Source file repositories/reference/linux-study-clean/include/drm/drm_client.h

File Facts

System
Linux kernel
Corpus path
include/drm/drm_client.h
Extension
.h
Size
6363 bytes
Lines
246
Domain
Repository Root And Misc
Bucket
include
Inferred role
Repository Root And Misc: implementation source
Status
source implementation candidate

Why This File Exists

Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.

Dependency Surface

Detected Declarations

Annotated Snippet

struct drm_client_funcs {
	/**
	 * @owner: The module owner
	 */
	struct module *owner;

	/**
	 * @free:
	 *
	 * Called when the client gets unregistered. Implementations should
	 * release all client-specific data and free the memory.
	 *
	 * This callback is optional.
	 */
	void (*free)(struct drm_client_dev *client);

	/**
	 * @unregister:
	 *
	 * Called when &drm_device is unregistered. The client should respond by
	 * releasing its resources using drm_client_release().
	 *
	 * This callback is optional.
	 */
	void (*unregister)(struct drm_client_dev *client);

	/**
	 * @restore:
	 *
	 * Called on drm_lastclose(). The first client instance in the list that
	 * returns zero gets the privilege to restore and no more clients are
	 * called. This callback is not called after @unregister has been called.
	 *
	 * Note that the core does not guarantee exclusion against concurrent
	 * drm_open(). Clients need to ensure this themselves, for example by
	 * using drm_master_internal_acquire() and drm_master_internal_release().
	 *
	 * If the caller passes force, the client should ignore any present DRM
	 * master and restore the display anyway.
	 *
	 * This callback is optional.
	 */
	int (*restore)(struct drm_client_dev *client, bool force);

	/**
	 * @hotplug:
	 *
	 * Called on drm_kms_helper_hotplug_event().
	 * This callback is not called after @unregister has been called.
	 *
	 * This callback is optional.
	 */
	int (*hotplug)(struct drm_client_dev *client);

	/**
	 * @suspend:
	 *
	 * Called when suspending the device.
	 *
	 * This callback is optional.
	 */
	int (*suspend)(struct drm_client_dev *client);

	/**
	 * @resume:
	 *
	 * Called when resuming the device from suspend.
	 *
	 * This callback is optional.
	 */
	int (*resume)(struct drm_client_dev *client);
};

/**
 * struct drm_client_dev - DRM client instance
 */
struct drm_client_dev {
	/**
	 * @dev: DRM device
	 */
	struct drm_device *dev;

	/**
	 * @name: Name of the client.
	 */
	const char *name;

	/**
	 * @list:
	 *

Annotation

Implementation Notes