Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 254eade1 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "audio: hal: add DSP clock recovery support"

parents 1b7375bd 6160c712
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -108,6 +108,7 @@ AM_CONDITIONAL([KEEP_ALIVE], [test x$AUDIO_FEATURE_ENABLED_KEEP_ALIVE = xtrue])
AM_CONDITIONAL([GEF], [test x$AUDIO_FEATURE_ENABLED_GEF_SUPPORT = xtrue])
AM_CONDITIONAL([APTX_DECODER], [test x$AUDIO_FEATURE_ENABLED_APTX_DECODER = xtrue])
AM_CONDITIONAL([ADSP_HDLR], [test x$AUDIO_FEATURE_ADSP_HDLR_ENABLED = xtrue])
AM_CONDITIONAL([SPLIT_A2DP], [test x$AUDIO_FEATURE_ENABLED_SPLIT_A2DP = xtrue])

AC_CONFIG_FILES([ \
        Makefile \
+5 −0
Original line number Diff line number Diff line
@@ -162,6 +162,11 @@ AM_CFLAGS += -DAUDIO_EXTN_ADSP_HDLR_ENABLED
c_sources += audio_extn/adsp_hdlr.c
endif

if SPLIT_A2DP
AM_CFLAGS += -DSPLIT_A2DP_ENABLED
c_sources += audio_extn/a2dp.c
endif

h_sources = audio_extn/audio_defs.h \
            audio_extn/audio_extn.h \
            audio_hw.h \
+20 −1
Original line number Diff line number Diff line
@@ -177,6 +177,19 @@ struct audio_out_start_delay_param {
   uint64_t        start_delay; /* session start delay in microseconds*/
};

struct audio_out_enable_drift_correction {
   bool        enable; /* enable drift correction*/
};

struct audio_out_correct_drift {
    /*
     * adjust time in microseconds, a positive value
     * to advance the clock or a negative value to
     * delay the clock.
     */
    int64_t        adjust_time;
};

/* type of asynchronous write callback events. Mutually exclusive
 * event enums append those defined for stream_callback_event_t in audio.h */
typedef enum {
@@ -203,6 +216,8 @@ typedef union {
    struct audio_avt_device_drift_param drift_params;
    struct audio_out_render_window_param render_window_param;
    struct audio_out_start_delay_param start_delay;
    struct audio_out_enable_drift_correction drift_enable_param;
    struct audio_out_correct_drift drift_correction_param;
    struct audio_adsp_event adsp_event_params;
} audio_extn_param_payload;

@@ -213,6 +228,10 @@ typedef enum {
    AUDIO_EXTN_PARAM_AVT_DEVICE_DRIFT,
    AUDIO_EXTN_PARAM_OUT_RENDER_WINDOW, /* PARAM to set render window */
    AUDIO_EXTN_PARAM_OUT_START_DELAY,
    /* enable adsp drift correction this must be called before out_write */
    AUDIO_EXTN_PARAM_OUT_ENABLE_DRIFT_CORRECTION,
    /* param to set drift value to be adjusted by dsp */
    AUDIO_EXTN_PARAM_OUT_CORRECT_DRIFT,
    AUDIO_EXTN_PARAM_ADSP_STREAM_CMD
} audio_extn_param_id;

+9 −1
Original line number Diff line number Diff line
@@ -1367,6 +1367,14 @@ int audio_extn_out_set_param_data(struct stream_out *out,
            ret = audio_extn_utils_compress_set_start_delay(out,
                    (struct audio_out_start_delay_param *)(payload));
            break;
        case AUDIO_EXTN_PARAM_OUT_ENABLE_DRIFT_CORRECTION:
            ret = audio_extn_utils_compress_enable_drift_correction(out,
                    (struct audio_out_enable_drift_correction *)(payload));
            break;
        case AUDIO_EXTN_PARAM_OUT_CORRECT_DRIFT:
            ret = audio_extn_utils_compress_correct_drift(out,
                    (struct audio_out_correct_drift *)(payload));
            break;
        case AUDIO_EXTN_PARAM_ADSP_STREAM_CMD:
            ret = audio_extn_adsp_hdlr_stream_set_param(out->adsp_hdlr_stream_handle,
                    ADSP_HDLR_STREAM_CMD_REGISTER_EVENT,
+6 −0
Original line number Diff line number Diff line
@@ -864,4 +864,10 @@ int audio_extn_utils_compress_set_render_window(
int audio_extn_utils_compress_set_start_delay(
            struct stream_out *out,
            struct audio_out_start_delay_param *start_delay_param);
int audio_extn_utils_compress_enable_drift_correction(
            struct stream_out *out,
            struct audio_out_enable_drift_correction *drift_enable);
int audio_extn_utils_compress_correct_drift(
            struct stream_out *out,
            struct audio_out_correct_drift *drift_correction_param);
#endif /* AUDIO_EXTN_H */
Loading