2222#define TAS2781_DRV_VER 1
2323#define SMARTAMP_MODULE_NAME "tas2781"
2424#define TAS2781_GLOBAL_ADDR 0x40
25+ #define TAS2563_GLOBAL_ADDR 0x48
2526#define TASDEVICE_RATES (SNDRV_PCM_RATE_44100 |\
2627 SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_96000 |\
2728 SNDRV_PCM_RATE_88200)
@@ -121,6 +122,8 @@ struct tasdevice_priv {
121122 bool force_fwload_status ;
122123 bool playback_started ;
123124 bool isacpi ;
125+ unsigned int global_addr ;
126+
124127 int (* fw_parse_variable_header )(struct tasdevice_priv * tas_priv ,
125128 const struct firmware * fmw , int offset );
126129 int (* fw_parse_program_data )(struct tasdevice_priv * tas_priv ,
@@ -131,6 +134,9 @@ struct tasdevice_priv {
131134 const struct firmware * fmw , int offset );
132135 int (* tasdevice_load_block )(struct tasdevice_priv * tas_priv ,
133136 struct tasdev_blk * block );
137+
138+ int (* save_calibration )(struct tasdevice_priv * tas_priv );
139+ void (* apply_calibration )(struct tasdevice_priv * tas_priv );
134140};
135141
136142void tas2781_reset (struct tasdevice_priv * tas_dev );
@@ -139,6 +145,8 @@ int tascodec_init(struct tasdevice_priv *tas_priv, void *codec,
139145struct tasdevice_priv * tasdevice_kzalloc (struct i2c_client * i2c );
140146int tasdevice_init (struct tasdevice_priv * tas_priv );
141147void tasdevice_remove (struct tasdevice_priv * tas_priv );
148+ int tasdevice_save_calibration (struct tasdevice_priv * tas_priv );
149+ void tasdevice_apply_calibration (struct tasdevice_priv * tas_priv );
142150int tasdevice_dev_read (struct tasdevice_priv * tas_priv ,
143151 unsigned short chn , unsigned int reg , unsigned int * value );
144152int tasdevice_dev_write (struct tasdevice_priv * tas_priv ,
0 commit comments