|
@@ -1040,8 +1040,12 @@ static int snd_ctl_elem_user_info(struct snd_kcontrol *kcontrol,
|
|
|
struct snd_ctl_elem_info *uinfo)
|
|
|
{
|
|
|
struct user_element *ue = kcontrol->private_data;
|
|
|
+ unsigned int offset;
|
|
|
|
|
|
+ offset = snd_ctl_get_ioff(kcontrol, &uinfo->id);
|
|
|
*uinfo = ue->info;
|
|
|
+ snd_ctl_build_ioff(&uinfo->id, kcontrol, offset);
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -1051,10 +1055,13 @@ static int snd_ctl_elem_user_enum_info(struct snd_kcontrol *kcontrol,
|
|
|
struct user_element *ue = kcontrol->private_data;
|
|
|
const char *names;
|
|
|
unsigned int item;
|
|
|
+ unsigned int offset;
|
|
|
|
|
|
item = uinfo->value.enumerated.item;
|
|
|
|
|
|
+ offset = snd_ctl_get_ioff(kcontrol, &uinfo->id);
|
|
|
*uinfo = ue->info;
|
|
|
+ snd_ctl_build_ioff(&uinfo->id, kcontrol, offset);
|
|
|
|
|
|
item = min(item, uinfo->value.enumerated.items - 1);
|
|
|
uinfo->value.enumerated.item = item;
|