struct i915_audio_component_ops — Ops implemented by i915 driver, called by hda driver


struct i915_audio_component_ops {
  struct module * owner;
  void (* get_power) (struct device *);
  void (* put_power) (struct device *);
  void (* codec_wake_override) (struct device *, bool enable);
  int (* get_cdclk_freq) (struct device *);
  int (* sync_audio_rate) (struct device *, int port, int rate);
  int (* get_eld) (struct device *, int port, bool *enabled,unsigned char *buf, int max_bytes);



i915 module


get the POWER_DOMAIN_AUDIO power well

Request the power well to be turned on.


put the POWER_DOMAIN_AUDIO power well

Allow the power well to be turned off.


Enable/disable codec wake signal


Get the Core Display Clock in kHz


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


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.