|
|
@@ -1204,12 +1204,14 @@ static int wmfw_add_ctl(struct wm_adsp *dsp, struct wm_coeff_ctl *ctl)
|
|
|
kcontrol->put = wm_coeff_put_acked;
|
|
|
break;
|
|
|
default:
|
|
|
- kcontrol->get = wm_coeff_get;
|
|
|
- kcontrol->put = wm_coeff_put;
|
|
|
-
|
|
|
- ctl->bytes_ext.max = ctl->len;
|
|
|
- ctl->bytes_ext.get = wm_coeff_tlv_get;
|
|
|
- ctl->bytes_ext.put = wm_coeff_tlv_put;
|
|
|
+ if (kcontrol->access & SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK) {
|
|
|
+ ctl->bytes_ext.max = ctl->len;
|
|
|
+ ctl->bytes_ext.get = wm_coeff_tlv_get;
|
|
|
+ ctl->bytes_ext.put = wm_coeff_tlv_put;
|
|
|
+ } else {
|
|
|
+ kcontrol->get = wm_coeff_get;
|
|
|
+ kcontrol->put = wm_coeff_put;
|
|
|
+ }
|
|
|
break;
|
|
|
}
|
|
|
|