forked from microsoft/WSL2-Linux-Kernel
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
drm/i915: Split audio component to a generic type
For allowing other drivers to use the DRM audio component, rename the i915_audio_component_* with drm_audio_component_*, and split the generic part into drm_audio_component.h. The i915 specific stuff remains in struct i915_audio_component, which contains drm_audio_component as the base. The license of drm_audio_component.h is kept to MIT as same as the the original i915_component.h. This is a preliminary change for further development, and no functional changes by this patch itself, merely code-split and renames. v1->v2: Use SPDX for drm_audio_component.h, fix remaining i915 argument in drm_audio_component.h Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
- Loading branch information
Showing
8 changed files
with
144 additions
and
120 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
// SPDX-License-Identifier: MIT | ||
// Copyright © 2014 Intel Corporation | ||
|
||
#ifndef _DRM_AUDIO_COMPONENT_H_ | ||
#define _DRM_AUDIO_COMPONENT_H_ | ||
|
||
/** | ||
* struct drm_audio_component_ops - Ops implemented by DRM driver, called by hda driver | ||
*/ | ||
struct drm_audio_component_ops { | ||
/** | ||
* @owner: drm module to pin down | ||
*/ | ||
struct module *owner; | ||
/** | ||
* @get_power: get the POWER_DOMAIN_AUDIO power well | ||
* | ||
* Request the power well to be turned on. | ||
*/ | ||
void (*get_power)(struct device *); | ||
/** | ||
* @put_power: put the POWER_DOMAIN_AUDIO power well | ||
* | ||
* Allow the power well to be turned off. | ||
*/ | ||
void (*put_power)(struct device *); | ||
/** | ||
* @codec_wake_override: Enable/disable codec wake signal | ||
*/ | ||
void (*codec_wake_override)(struct device *, bool enable); | ||
/** | ||
* @get_cdclk_freq: Get the Core Display Clock in kHz | ||
*/ | ||
int (*get_cdclk_freq)(struct device *); | ||
/** | ||
* @sync_audio_rate: set n/cts based on the sample rate | ||
* | ||
* Called from audio driver. After audio driver sets the | ||
* sample rate, it will call this function to set n/cts | ||
*/ | ||
int (*sync_audio_rate)(struct device *, int port, int pipe, int rate); | ||
/** | ||
* @get_eld: fill the audio state and ELD bytes for the given port | ||
* | ||
* Called from audio driver to get the HDMI/DP audio state of the given | ||
* digital port, and also fetch ELD bytes to the given pointer. | ||
* | ||
* It returns the byte size of the original ELD (not the actually | ||
* copied size), zero for an invalid ELD, or a negative error code. | ||
* | ||
* Note that the returned size may be over @max_bytes. Then it | ||
* implies that only a part of ELD has been copied to the buffer. | ||
*/ | ||
int (*get_eld)(struct device *, int port, int pipe, bool *enabled, | ||
unsigned char *buf, int max_bytes); | ||
}; | ||
|
||
/** | ||
* struct drm_audio_component_audio_ops - Ops implemented by hda driver, called by DRM driver | ||
*/ | ||
struct drm_audio_component_audio_ops { | ||
/** | ||
* @audio_ptr: Pointer to be used in call to pin_eld_notify | ||
*/ | ||
void *audio_ptr; | ||
/** | ||
* @pin_eld_notify: Notify the HDA driver that pin sense and/or ELD information has changed | ||
* | ||
* Called when the DRM driver has set up audio pipeline or has just | ||
* begun to tear it down. This allows the HDA driver to update its | ||
* status accordingly (even when the HDA controller is in power save | ||
* mode). | ||
*/ | ||
void (*pin_eld_notify)(void *audio_ptr, int port, int pipe); | ||
}; | ||
|
||
/** | ||
* struct drm_audio_component - Used for direct communication between DRM and hda drivers | ||
*/ | ||
struct drm_audio_component { | ||
/** | ||
* @dev: DRM device, used as parameter for ops | ||
*/ | ||
struct device *dev; | ||
/** | ||
* @ops: Ops implemented by DRM driver, called by hda driver | ||
*/ | ||
const struct drm_audio_component_ops *ops; | ||
/** | ||
* @audio_ops: Ops implemented by hda driver, called by DRM driver | ||
*/ | ||
const struct drm_audio_component_audio_ops *audio_ops; | ||
}; | ||
|
||
#endif /* _DRM_AUDIO_COMPONENT_H_ */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.