|
@@ -713,6 +713,19 @@ static u32 query_amp_caps(struct hda_codec *codec, hda_nid_t nid, int direction)
|
|
|
return info->amp_caps;
|
|
|
}
|
|
|
|
|
|
+int snd_hda_override_amp_caps(struct hda_codec *codec, hda_nid_t nid, int dir,
|
|
|
+ unsigned int caps)
|
|
|
+{
|
|
|
+ struct hda_amp_info *info;
|
|
|
+
|
|
|
+ info = get_alloc_amp_hash(codec, HDA_HASH_KEY(nid, dir, 0));
|
|
|
+ if (!info)
|
|
|
+ return -EINVAL;
|
|
|
+ info->amp_caps = caps;
|
|
|
+ info->status |= INFO_AMP_CAPS;
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
/*
|
|
|
* read the current volume to info
|
|
|
* if the cache exists, read the cache value.
|