i915_component.h has wrong prototype for function pin_eld_notify causing HDMI audio driver build problems

Bug #1755309 reported by Ubfan on 2018-03-12
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux-lts-xenial (Ubuntu)
Undecided
Unassigned

Bug Description

With kernel 4.4, HDMI audio code, e.g. intel_audio.c, cannot build because of the compiler error of a wrong number of arguments for function pin_eld_notify.
The Ubuntu kernel headers for the kernel 4.4 series have a file, .../drm/i915_component.h which contains a wrong prototype for function pin_eld_notify -- an extra argument, "pipe" which should not be present until the 4.10 kernel headers. The site bootlin shows the header without the extra argument for the kernels 4.4-4.9, only appearing in the 4.10 kernel code.
 https://elixir.bootlin.com/linux/v4.4.121/source/include/drm/i915_component.h
From i915_comnponent.h
...
struct i915_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 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, int pipe);
/* =====================================================^^^^^^^^^^ BAD CODE
};

Remove the ",int pipe", and the HDMI audio driver code using intel_audio.c may be built with the 4.4 kernel. This header fix is needed for the Intel Compute Stick STK1A8LFC running Ubuntu 14.04 when upgraded to the 4.4 kernel.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers