Loading include/drm/i915_component.h +51 −18 Original line number Diff line number Diff line Loading @@ -31,47 +31,80 @@ #define MAX_PORTS 5 /** * struct i915_audio_component_ops - callbacks defined in gfx driver * @owner: the module owner * @get_power: get the POWER_DOMAIN_AUDIO power well * @put_power: put the POWER_DOMAIN_AUDIO power well * @codec_wake_override: Enable/Disable generating the codec wake signal * @get_cdclk_freq: get the Core Display Clock in KHz * @sync_audio_rate: set n/cts based on the sample rate * struct i915_audio_component_ops - Ops implemented by i915 driver, called by hda driver */ struct i915_audio_component_ops { /** * @owner: i915 module */ 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 rate); }; /** * struct i915_audio_component_audio_ops - Ops implemented by hda driver, called by i915 driver */ struct i915_audio_component_audio_ops { /** * @audio_ptr: Pointer to be used in call to pin_eld_notify */ void *audio_ptr; /** * Call from i915 driver, notifying the HDA driver that * pin sense and/or ELD information has changed. * @audio_ptr: HDA driver object * @port: Which port has changed (PORTA / PORTB / PORTC etc) * @pin_eld_notify: Notify the HDA driver that pin sense and/or ELD information has changed * * Called when the i915 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); }; /** * struct i915_audio_component - used for audio video interaction * @dev: the device from gfx driver * @aud_sample_rate: the array of audio sample rate per port * @ops: callback for audio driver calling * @audio_ops: Call from i915 driver * struct i915_audio_component - Used for direct communication between i915 and hda drivers */ struct i915_audio_component { /** * @dev: i915 device, used as parameter for ops */ struct device *dev; /** * @aud_sample_rate: the array of audio sample rate per port */ int aud_sample_rate[MAX_PORTS]; /** * @ops: Ops implemented by i915 driver, called by hda driver */ const struct i915_audio_component_ops *ops; /** * @audio_ops: Ops implemented by hda driver, called by i915 driver */ const struct i915_audio_component_audio_ops *audio_ops; }; Loading Loading
include/drm/i915_component.h +51 −18 Original line number Diff line number Diff line Loading @@ -31,47 +31,80 @@ #define MAX_PORTS 5 /** * struct i915_audio_component_ops - callbacks defined in gfx driver * @owner: the module owner * @get_power: get the POWER_DOMAIN_AUDIO power well * @put_power: put the POWER_DOMAIN_AUDIO power well * @codec_wake_override: Enable/Disable generating the codec wake signal * @get_cdclk_freq: get the Core Display Clock in KHz * @sync_audio_rate: set n/cts based on the sample rate * struct i915_audio_component_ops - Ops implemented by i915 driver, called by hda driver */ struct i915_audio_component_ops { /** * @owner: i915 module */ 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 rate); }; /** * struct i915_audio_component_audio_ops - Ops implemented by hda driver, called by i915 driver */ struct i915_audio_component_audio_ops { /** * @audio_ptr: Pointer to be used in call to pin_eld_notify */ void *audio_ptr; /** * Call from i915 driver, notifying the HDA driver that * pin sense and/or ELD information has changed. * @audio_ptr: HDA driver object * @port: Which port has changed (PORTA / PORTB / PORTC etc) * @pin_eld_notify: Notify the HDA driver that pin sense and/or ELD information has changed * * Called when the i915 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); }; /** * struct i915_audio_component - used for audio video interaction * @dev: the device from gfx driver * @aud_sample_rate: the array of audio sample rate per port * @ops: callback for audio driver calling * @audio_ops: Call from i915 driver * struct i915_audio_component - Used for direct communication between i915 and hda drivers */ struct i915_audio_component { /** * @dev: i915 device, used as parameter for ops */ struct device *dev; /** * @aud_sample_rate: the array of audio sample rate per port */ int aud_sample_rate[MAX_PORTS]; /** * @ops: Ops implemented by i915 driver, called by hda driver */ const struct i915_audio_component_ops *ops; /** * @audio_ops: Ops implemented by hda driver, called by i915 driver */ const struct i915_audio_component_audio_ops *audio_ops; }; Loading