mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 18:09:56 +00:00
drm/i915: provide interface for audio driver to query cdclk
commit c149dcb5c6 upstream.
For Haswell and Broadwell, if the display power well has been disabled,
the display audio controller divider values EM4 M VALUE and EM5 N VALUE
will have been lost. The CDCLK frequency is required for reprogramming them
to generate 24MHz HD-A link BCLK. So provide a private interface for the
audio driver to query CDCLK.
This is a stopgap solution until a more generic interface between audio
and display drivers has been implemented.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Mengdong Lin <mengdong.lin@intel.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
This commit is contained in:
@@ -5378,6 +5378,26 @@ int i915_release_power_well(void)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(i915_release_power_well);
|
||||
|
||||
/*
|
||||
* Private interface for the audio driver to get CDCLK in kHz.
|
||||
*
|
||||
* Caller must request power well using i915_request_power_well() prior to
|
||||
* making the call.
|
||||
*/
|
||||
int i915_get_cdclk_freq(void)
|
||||
{
|
||||
struct drm_i915_private *dev_priv;
|
||||
|
||||
if (!hsw_pwr)
|
||||
return -ENODEV;
|
||||
|
||||
dev_priv = container_of(hsw_pwr, struct drm_i915_private,
|
||||
power_well);
|
||||
|
||||
return intel_ddi_get_cdclk_freq(dev_priv);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(i915_get_cdclk_freq);
|
||||
|
||||
int i915_init_power_well(struct drm_device *dev)
|
||||
{
|
||||
struct drm_i915_private *dev_priv = dev->dev_private;
|
||||
|
||||
@@ -32,5 +32,6 @@
|
||||
/* For use by hda_i915 driver */
|
||||
extern int i915_request_power_well(void);
|
||||
extern int i915_release_power_well(void);
|
||||
extern int i915_get_cdclk_freq(void);
|
||||
|
||||
#endif /* _I915_POWERWELL_H_ */
|
||||
|
||||
Reference in New Issue
Block a user