2019-01-29 00:43:33 -05:00
|
|
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
2018-04-26 08:28:58 -04:00
|
|
|
/*
|
2020-01-24 20:55:04 -05:00
|
|
|
* Copyright (c) 2014, 2018, 2020 The Linux Foundation. All rights reserved.
|
2018-04-26 08:28:58 -04:00
|
|
|
*/
|
|
|
|
#ifndef __Q6AFECAL_HWDEP_H__
|
|
|
|
#define __Q6AFECAL_HWDEP_H__
|
2020-05-01 04:10:04 -04:00
|
|
|
#include <audio/sound/msmcal-hwdep.h>
|
2018-04-26 08:28:58 -04:00
|
|
|
|
|
|
|
enum q6afe_cal_states {
|
|
|
|
Q6AFECAL_UNINITIALISED,
|
|
|
|
Q6AFECAL_INITIALISED,
|
|
|
|
Q6AFECAL_RECEIVED
|
|
|
|
};
|
|
|
|
|
|
|
|
struct afe_fw_info {
|
|
|
|
struct firmware_cal *fw[Q6AFE_MAX_CAL];
|
|
|
|
DECLARE_BITMAP(cal_bit, Q6AFE_MAX_CAL);
|
|
|
|
/* for calibration tracking */
|
|
|
|
unsigned long q6afecal_state[Q6AFE_MAX_CAL];
|
|
|
|
struct mutex lock;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct firmware_cal {
|
|
|
|
u8 *data;
|
|
|
|
size_t size;
|
|
|
|
};
|
|
|
|
|
|
|
|
#if IS_ENABLED(CONFIG_AFE_HWDEP)
|
2020-01-24 20:55:04 -05:00
|
|
|
#if IS_ENABLED(CONFIG_AUDIO_QGKI)
|
2018-04-26 08:28:58 -04:00
|
|
|
int q6afe_cal_create_hwdep(void *fw, int node, void *card);
|
2020-01-24 20:55:04 -05:00
|
|
|
#else
|
|
|
|
int q6afe_cal_create_hwdep(void *fw, int node, void *card)
|
|
|
|
{
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
#endif /* CONFIG_AUDIO_QGKI */
|
2018-04-26 08:28:58 -04:00
|
|
|
struct firmware_cal *q6afecal_get_fw_cal(struct afe_fw_info *fw_data,
|
|
|
|
enum q6afe_cal_type type);
|
|
|
|
#else /* CONFIG_AFE_HWDEP */
|
|
|
|
static inline int q6afe_cal_create_hwdep(void *fw, int node, void *card)
|
|
|
|
{
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
static inline struct firmware_cal *q6afecal_get_fw_cal(
|
|
|
|
struct afe_fw_info *fw_data,
|
|
|
|
enum q6afe_cal_type type)
|
|
|
|
{
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
#endif /* CONFIG_AFE_HWDEP */
|
|
|
|
#endif /* __Q6AFECAL_HWDEP_H__ */
|