[Intel-gfx] Subject: [PATCH 1/1] drm/i915: move audio component intialization before audio
Jani Nikula
jani.nikula at linux.intel.com
Thu Mar 29 09:58:51 UTC 2018
On Thu, 29 Mar 2018, "Shi, Yang A" <yang.a.shi at intel.com> wrote:
> snd_hdac driver would use the component interface from i915 driver.
> if i915 driver do the audio component intialization too late, snd_hdac
> driver will meet ipanic.
Please include the oops.
What is it about this patch that fixes the issue? Based on the
description I presume it has nothing to do with i915 internal ordering,
and everything to do with i915 and hdac probe racing. In that case, this
is not a fix, just something to make the race a bit less likely. Is that
the case?
We try hard to make sure our driver has properly been set up internally
before we go ahead and reveal ourselves to the userspace and the rest of
the kernel. This is the i915_driver_register() part. We aren't ready to
register the component ops before that. We aren't ready to handle calls
from audio drivers before that.
What's the problem you have exactly?
BR,
Jani.
>
> Signed-off-by: Bo He <bo.he at intel.com>
> Signed-off-by: Yang Shi <yang.a.shi at intel.com>
> ---
> drivers/gpu/drm/i915/i915_drv.c | 2 --
> drivers/gpu/drm/i915/intel_display.c | 2 ++
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> index 2f5209d..9d25d7e 100644
> --- a/drivers/gpu/drm/i915/i915_drv.c
> +++ b/drivers/gpu/drm/i915/i915_drv.c
> @@ -1243,8 +1243,6 @@ static void i915_driver_register(struct drm_i915_private *dev_priv)
> if (IS_GEN5(dev_priv))
> intel_gpu_ips_init(dev_priv);
>
> - intel_audio_init(dev_priv);
> -
> /*
> * Some ports require correctly set-up hpd registers for detection to
> * work properly (leading to ghost connected connector status), e.g. VGA
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index f288bcc..a471c88 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -14468,6 +14468,8 @@ int intel_modeset_init(struct drm_device *dev)
>
> dev->mode_config.funcs = &intel_mode_funcs;
>
> + intel_audio_init(dev_priv);
> +
> init_llist_head(&dev_priv->atomic_helper.free_list);
> INIT_WORK(&dev_priv->atomic_helper.free_work,
> intel_atomic_helper_free_state_worker);
--
Jani Nikula, Intel Open Source Technology Center
More information about the Intel-gfx
mailing list