• Pandiyan, Dhinakaran's avatar
    drm/i915/dp: DP audio API changes for MST · f9318941
    Pandiyan, Dhinakaran authored
    DP MST provides the capability to send multiple video and audio streams
    through a single port. This requires the API's between i915 and audio
    drivers to distinguish between multiple audio capable displays that can be
    connected to a port. Currently only the port identity is shared in the
    APIs. This patch adds support for MST with an additional parameter
    'int pipe'. The existing parameter 'port' does not change it's meaning.
    
    pipe =
    	MST	: display pipe that the stream originates from
    	Non-MST	: -1
    
    Affected APIs:
    struct i915_audio_component_ops
    -       int (*sync_audio_rate)(struct device *, int port, int rate);
    +	int (*sync_audio_rate)(struct device *, int port, int pipe,
    +	     int rate);
    
    -       int (*get_eld)(struct device *, int port, bool *enabled,
    -                       unsigned char *buf, int max_bytes);
    +       int (*get_eld)(struct device *, int port, int pipe,
    +		       bool *enabled, unsigned char *buf, int max_bytes);
    
    struct i915_audio_component_audio_ops
    -       void (*pin_eld_notify)(void *audio_ptr, int port);
    +       void (*pin_eld_notify)(void *audio_ptr, int port, int pipe);
    
    This patch makes dummy changes in the audio drivers (thanks Libin) for
    build to succeed. The audio side drivers will send the right 'pipe' values
    for MST in patches that will follow.
    
    v2:
    Renamed the new API parameter from 'dev_id' to 'pipe'. (Jim, Ville)
    Included Asoc driver API compatibility changes from Jeeja.
    Added WARN_ON() for invalid pipe in get_saved_encoder(). (Takashi)
    Added comment for av_enc_map[] definition. (Takashi)
    
    v3:
    Fixed logic error introduced while renaming 'dev_id' as 'pipe' (Ville)
    Renamed get_saved_encoder() to get_saved_enc() to reduce line length
    
    v4:
    Rebased.
    Parameter check for pipe < -1 values in get_saved_enc() (Ville)
    Switched to for_each_pipe() in get_saved_enc() (Ville)
    Renamed 'pipe' to 'dev_id' in audio side code (Takashi)
    
    v5:
    Included a comment for the dev_id arg. (Libin)
    Signed-off-by: default avatarDhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
    Reviewed-by: default avatarTakashi Iwai <tiwai@suse.de>
    Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
    Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
    Link: http://patchwork.freedesktop.org/patch/msgid/1474488168-2343-1-git-send-email-dhinakaran.pandiyan@intel.com
    f9318941
i915_drv.h 119 KB